<?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>49246</bug_id>
          
          <creation_ts>2010-11-09 04:26:36 -0800</creation_ts>
          <short_desc>Main resource should be cached in the memory cache</short_desc>
          <delta_ts>2013-01-17 13:54:57 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>86787</dependson>
    
    <dependson>99361</dependson>
    
    <dependson>99366</dependson>
    
    <dependson>99769</dependson>
    
    <dependson>99864</dependson>
    
    <dependson>103907</dependson>
    
    <dependson>104771</dependson>
          <blocked>17998</blocked>
    
    <blocked>60017</blocked>
    
    <blocked>103927</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>abarth</cc>
    
    <cc>adamk</cc>
    
    <cc>alex</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>marshall</cc>
    
    <cc>mjs</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pan.deng</cc>
    
    <cc>psolanki</cc>
    
    <cc>simonjam</cc>
    
    <cc>svillar</cc>
    
    <cc>thorton</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>tonyg</cc>
    
    <cc>vsevik</cc>
    
    <cc>wangxianzhu</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>306700</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-11-09 04:26:36 -0800</bug_when>
    <thetext>Currently the document main resource is loaded using a ResourceLoader directly while the subresources are loaded through the memory cache. There are several reasons why it would be good to also load the main resource through the memory cache.

- Less reliance on the networking layer level cache. This might for example allow disabling the networking layer level memory caching, saving memory.
- Opens up new optimization possibilities (for example caching processed forms like token streams).
- Utilize the loader level HTTP revalidation mechanism for the main resource too.
- More unified loading mechanism may be less bug-prone and easier to understand.
- Would allow main resources participate in the (hypothetical) WebCore level persistent caching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314385</commentid>
    <comment_count>1</comment_count>
      <attachid>75022</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-11-29 07:05:22 -0800</bug_when>
    <thetext>Created attachment 75022
current patch

Current patch.

With this approach the MainResourceLoader is not needed at all anymore. This will make it possible to also eliminate SubresourceLoader (by merging it with the super class) and possibly eventually eliminate ResourceLoaders completely (in favor of using ResourceHandles directly).

There is still quite a bit of missing stuff especially for app cache, inspector and web archive support. 

General web browsing mostly works. Pass rate for HTTP layout tests is 86% with most failures in app cache, inspector, back-forward navigation and security tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319712</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-09 14:14:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/6497260&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382299</commentid>
    <comment_count>3</comment_count>
      <attachid>88831</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-04-08 09:45:00 -0700</bug_when>
    <thetext>Created attachment 88831
Work in progress - April 8

I took Antti&apos;s patch and have been messing around with it on and off over the last several weeks.

This patch fails about 200 tests on chromium-win (including the non-http tests). Interestingly, a bunch of the tests pass when run manually, but fail in DRT because of timing changes. I&apos;m not sure how many of these are acceptable and how many we should consider regressions.

There&apos;s probably a separate cleanup patch that can be extracted from the SubresourceLoader/CachedResourceRequest pieces of this to centralize our multipart content handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382349</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-04-08 10:27:59 -0700</bug_when>
    <thetext>Perhaps we should do subframes only as the first step. That should reduce the API related complexity. It would allow preloader to init subframe loads which should be a significant win (especially since you can then preload scan the received html too).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382362</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-04-08 10:37:25 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Perhaps we should do subframes only as the first step. That should reduce the API related complexity. It would allow preloader to init subframe loads which should be a significant win (especially since you can then preload scan the received html too).

I believe simonjam has been thinking about preloading subframes as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455279</commentid>
    <comment_count>6</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-08-23 02:57:17 -0700</bug_when>
    <thetext>Antti and Nate, are you still working on this bug?

Besides the benefits listed, fixing this bug seems it could also save memory that is used to hold the main resource data in DocumentLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461021</commentid>
    <comment_count>7</comment_count>
      <attachid>106086</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-01 20:13:30 -0700</bug_when>
    <thetext>Created attachment 106086
patch that can be applied on ToT

FYI. Resolved conflicts and made it compile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461022</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 20:15:22 -0700</bug_when>
    <thetext>Attachment 106086 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/W...&quot; exit_code: 1

Source/WebCore/loader/cache/CachedMainResource.cpp:43:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/loader/cache/CachedMainResource.cpp:83:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebCore/loader/cache/CachedResourceLoader.cpp:417:  Should have a space between // and comment  [whitespace/comments] [4]
Source/WebCore/loader/DocumentLoader.h:273:  The parameter name &quot;resource&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/loader/DocumentLoader.cpp:57:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/loader/DocumentLoader.cpp:58:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/loader/DocumentLoader.cpp:291:  Line contains only semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
Source/WebCore/loader/cache/CachedResource.cpp:56:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 8 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524781</commentid>
    <comment_count>9</comment_count>
      <attachid>120066</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-12-20 13:12:41 -0800</bug_when>
    <thetext>Created attachment 120066
New attempt - see comment #9 for details

The attached patch has undergone no cleanup, is largely uncommented, and has about a dozen ugly hacks, but passes all but ~10 layout tests (which should mostly be tests where callbacks were reordered in benign ways).

Some notes:
* This patch routes main resource loads through CachedRawResource, rather than a new CachedMainResource type.  I&apos;m not sure whether this is sane or whether we should copy CachedRawResource over and use it as a starting point for a CachedMainResource, but the logic is close enough that I&apos;d lean toward just using CachedRawResource.
* MainResourceLoader is now a CachedResourceClient and should be renamed.  MainResourceLoader is the main part of this patch that needs a lot of cleanup, as well as a thorough inspection for now-dead code.
* It&apos;s possible DocumentLoader and MainResourceLoader could be merged, as in previous works-in-progress.
* This patch does NOT use a ENABLE(CACHED_MAIN_RESOURCE) flag.
* I haven&apos;t spent any time actually browsing with a debug build including this patch, so no guarantees that it won&apos;t assert all over the place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627059</commentid>
    <comment_count>10</comment_count>
      <attachid>142571</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-05-17 15:36:59 -0700</bug_when>
    <thetext>Created attachment 142571
WIP - May 17, 2012

Attached is my current work in progress.

I think I&apos;ve got something that is relatively sane.  I&apos;m going to try to start breaking this into pieces and get some patches landed on trunk over the coming weeks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627063</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 15:39:59 -0700</bug_when>
    <thetext>Attachment 142571 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/fast/loader/subframe-removes-i...&quot; exit_code: 1
Source/WebCore/loader/MainResourceLoader.cpp:640:  Use 0 or null instead of NULL (even in *comments*).  [readability/null] [4]
Source/WebCore/loader/cache/CachedResource.cpp:58:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 2 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627287</commentid>
    <comment_count>12</comment_count>
      <attachid>142571</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 20:33:22 -0700</bug_when>
    <thetext>Comment on attachment 142571
WIP - May 17, 2012

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

New failing tests:
svg/dynamic-updates/SVGUseElement-dom-href1-attr.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627288</commentid>
    <comment_count>13</comment_count>
      <attachid>142622</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 20:33:27 -0700</bug_when>
    <thetext>Created attachment 142622
Archive of layout-test-results from ec2-cr-linux-04

The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-04  Port: &lt;class &apos;webkitpy.common.config.ports.ChromiumXVFBPort&apos;&gt;  Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746373</commentid>
    <comment_count>14</comment_count>
      <attachid>169636</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-19 09:36:45 -0700</bug_when>
    <thetext>Created attachment 169636
WIP - Oct 19</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752561</commentid>
    <comment_count>15</comment_count>
      <attachid>171043</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-26 16:29:34 -0700</bug_when>
    <thetext>Created attachment 171043
Reviewable Attempt #1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752930</commentid>
    <comment_count>16</comment_count>
      <attachid>171043</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-28 03:07:23 -0700</bug_when>
    <thetext>Comment on attachment 171043
Reviewable Attempt #1

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

New failing tests:
http/tests/misc/will-send-request-returns-null-on-redirect.html
svg/dynamic-updates/SVGUseElement-dom-href1-attr.html
http/tests/navigation/new-window-redirect-history.html
svg/text/textpath-reference-crash.html
fast/replaced/border-radius-clip-content-edge.html
fast/forms/access-key.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758919</commentid>
    <comment_count>17</comment_count>
      <attachid>171043</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-05 14:45:57 -0800</bug_when>
    <thetext>Comment on attachment 171043
Reviewable Attempt #1

Do you still want review on this, even though there&apos;s failing layout tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758922</commentid>
    <comment_count>18</comment_count>
      <attachid>171043</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-05 14:48:03 -0800</bug_when>
    <thetext>Comment on attachment 171043
Reviewable Attempt #1

No, sorry, I&apos;m working on fixing this and will upload a new patch sometime this week hopefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769525</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-16 11:45:39 -0800</bug_when>
    <thetext>Any update?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769529</commentid>
    <comment_count>20</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-16 11:46:52 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Any update?

I&apos;ve been focusing on https://bugs.webkit.org/show_bug.cgi?id=101512, once I get that re-landed, I&apos;ll be back to working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769546</commentid>
    <comment_count>21</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2012-11-16 12:01:22 -0800</bug_when>
    <thetext>I asked Antti to look into this too if he has time - he might be able to help finish it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777075</commentid>
    <comment_count>22</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-27 12:02:05 -0800</bug_when>
    <thetext>I&apos;m taking a look at this as of this morning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777410</commentid>
    <comment_count>23</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-27 17:32:22 -0800</bug_when>
    <thetext>There&apos;s three classes of changes in the layouttest results:

1 - WebInspector resource counting changes.  

These seem noncontroversial.

2 - A reordering of didReceiveServerRedirectForProvisionalLoadForFrame and willSendRequest.  

This is due to subtle interaction between the loading layer and DocumentLoader and happens because DocumentLoader is - bizarrely - in charge of calling dispatchDidReceiveServerRedirectForProvisionalLoadForFrame.

The reordering is most definitely *NOT* desirable, and fixing up who actually does the dispatchDidReceiveServerRedirectForProvisionalLoadForFrame seems noncontroversal.&apos;

3 - about:blank callbacks not getting sent out.

In the X-Frame-Options cases the failed iframe navigation has the fallback behavior of loading about:blank into the frame.  This load is scheduled.  The code that schedules it *is* getting hit with the patch but the fact that we don&apos;t see the output implies that LayoutTestController is not waiting around for the navigation to happen.  

This is probably due to subtle change in checkLoadComplete() at some level.

I haven&apos;t had a chance to fully vet the http/tests/loading/redirect-methods case yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777431</commentid>
    <comment_count>24</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-11-27 18:03:25 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; There&apos;s three classes of changes in the layouttest results:
&gt; 
&gt; 1 - WebInspector resource counting changes.  
&gt; 
&gt; These seem noncontroversial.
I&apos;m not sure these changes are correct, to me this looks like network panel is missing main resource request now. Nate, could you please check that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777442</commentid>
    <comment_count>25</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-27 18:20:15 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; There&apos;s three classes of changes in the layouttest results:
&gt; &gt; 
&gt; &gt; 1 - WebInspector resource counting changes.  
&gt; &gt; 
&gt; &gt; These seem noncontroversial.
&gt; I&apos;m not sure these changes are correct, to me this looks like network panel is missing main resource request now. Nate, could you please check that?

I was operating on the premise Nate had actually tested the patch in browser and this was just a regression test change.  I&apos;ll take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777684</commentid>
    <comment_count>26</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-11-28 03:13:26 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; 2 - A reordering of didReceiveServerRedirectForProvisionalLoadForFrame and willSendRequest.  
&gt; 3 - about:blank callbacks not getting sent out.

I wonder if we should just disable the main resource caching with WebKit1 clients on Mac? So much of the internal behavior is exposed to the clients there. Having very different behavior with WebKit1 and WebKit2 will be annoying too though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777714</commentid>
    <comment_count>27</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2012-11-28 03:49:12 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #23)
&gt; &gt; 2 - A reordering of didReceiveServerRedirectForProvisionalLoadForFrame and willSendRequest.  
&gt; &gt; 3 - about:blank callbacks not getting sent out.
&gt; 
&gt; I wonder if we should just disable the main resource caching with WebKit1 clients on Mac? So much of the internal behavior is exposed to the clients there. Having very different behavior with WebKit1 and WebKit2 will be annoying too though.

WK2 has callbacks equivalent to (2) above, and it would probably be bad to reverse their order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777717</commentid>
    <comment_count>28</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-11-28 03:56:07 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; WK2 has callbacks equivalent to (2) above, and it would probably be bad to reverse their order.

With WK2 it would be easier to fix all clients to not depend on details like this (I don&apos;t know if the new order is actually wrong or not).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777741</commentid>
    <comment_count>29</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-28 04:30:52 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #23)
&gt; &gt; 2 - A reordering of didReceiveServerRedirectForProvisionalLoadForFrame and willSendRequest.  
&gt; &gt; 3 - about:blank callbacks not getting sent out.
&gt; 
&gt; I wonder if we should just disable the main resource caching with WebKit1 clients on Mac? So much of the internal behavior is exposed to the clients there. Having very different behavior with WebKit1 and WebKit2 will be annoying too though.

I didn&apos;t raise these to proclaim there&apos;s humongous problems with the patch.  I actually have a precise understanding of what is causing each of these and both should be fairly simple to resolve.

I&apos;m disposed with unpredicted personal business for the next few days but hope to fix them soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778341</commentid>
    <comment_count>30</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-28 14:23:14 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; There&apos;s three classes of changes in the layouttest results:
&gt; 
&gt; 1 - WebInspector resource counting changes.

I&apos;m still looking into this, will report back soon.

&gt; 
&gt; 2 - A reordering of didReceiveServerRedirectForProvisionalLoadForFrame and willSendRequest.  

I agree that this is trivial. The only potentially controversial part is that, given the architecture in this patch, the simplest place to put the call to didReceiveServerRedirectForProvisionalLoadForFrame is in SubresourceLoader::willSendRequest(). I personally don&apos;t think this is a problem, but it&apos;s a little weird.

I guess the alternative is to add a new CachedRawResourceClient callback and make the call in MainResourceLoader.

&gt; 
&gt; 3 - about:blank callbacks not getting sent out.
&gt; 
&gt; In the X-Frame-Options cases the failed iframe navigation has the fallback behavior of loading about:blank into the frame.  This load is scheduled.  The code that schedules it *is* getting hit with the patch but the fact that we don&apos;t see the output implies that LayoutTestController is not waiting around for the navigation to happen.  

All of the about:blank callbacks disappearing are the result of how MainResourceLoader handled empty loads in https://bugs.webkit.org/attachment.cgi?id=171043. Because a ResourceLoader isn&apos;t being created for these loads, ResourceLoadNotifier callbacks aren&apos;t being sent. I ended up making those changes to empty loads as part of https://bugs.webkit.org/show_bug.cgi?id=101512, so these diffs shouldn&apos;t be part of a new version of this patch.

In the case of the X-Frame-Options loads, I believe the tests would be timing out if we were not performing the about:blank fallback load. Each test uses the following function as its load event for the iframe:

function checkIfDone()
{
    if (document.getElementsByTagName(&quot;iframe&quot;)[0].contentWindow.location == &quot;about:blank&quot;)
        testRunner.notifyDone();
}

This shouldn&apos;t return true until the empty document is loaded and has replaced the blocked document.


The changes http/tests/loading/redirect-methods.html are a combination of (2) and (3). The portion caused by (3) are landed in https://bugs.webkit.org/show_bug.cgi?id=101512, and the portion caused by (2) will be unnecessary with the changes to didReceiveServerRedirectForProvisionalLoadForFrame timing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778368</commentid>
    <comment_count>31</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-28 14:47:48 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #23)

&gt; &gt; 
&gt; &gt; 3 - about:blank callbacks not getting sent out.
&gt; &gt; 
&gt; &gt; In the X-Frame-Options cases the failed iframe navigation has the fallback behavior of loading about:blank into the frame.  This load is scheduled.  The code that schedules it *is* getting hit with the patch but the fact that we don&apos;t see the output implies that LayoutTestController is not waiting around for the navigation to happen.  
&gt; 
&gt; All of the about:blank callbacks disappearing are the result of how MainResourceLoader handled empty loads in https://bugs.webkit.org/attachment.cgi?id=171043. Because a ResourceLoader isn&apos;t being created for these loads, ResourceLoadNotifier callbacks aren&apos;t being sent. I ended up making those changes to empty loads as part of https://bugs.webkit.org/show_bug.cgi?id=101512, so these diffs shouldn&apos;t be part of a new version of this patch.

A little fuzzy now on no sleep.  I think what you&apos;re saying is that if 101512 lands (and sticks) then these callbacks start coming through?

&gt; In the case of the X-Frame-Options loads, I believe the tests would be timing out if we were not performing the about:blank fallback load. Each test uses the following function as its load event for the iframe:
&gt; 
&gt; function checkIfDone()
&gt; {
&gt;     if (document.getElementsByTagName(&quot;iframe&quot;)[0].contentWindow.location == &quot;about:blank&quot;)
&gt;         testRunner.notifyDone();
&gt; }
&gt; 
&gt; This shouldn&apos;t return true until the empty document is loaded and has replaced the blocked document.
&gt; 
&gt; 
&gt; The changes http/tests/loading/redirect-methods.html are a combination of (2) and (3). The portion caused by (3) are landed in https://bugs.webkit.org/show_bug.cgi?id=101512, and the portion caused by (2) will be unnecessary with the changes to didReceiveServerRedirectForProvisionalLoadForFrame timing.

This further supports my &quot;what I think you&apos;re saying is...&quot; above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778390</commentid>
    <comment_count>32</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-28 14:57:56 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; (In reply to comment #30)
&gt; &gt; (In reply to comment #23)
&gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; 3 - about:blank callbacks not getting sent out.
&gt; &gt; &gt; 
&gt; &gt; &gt; In the X-Frame-Options cases the failed iframe navigation has the fallback behavior of loading about:blank into the frame.  This load is scheduled.  The code that schedules it *is* getting hit with the patch but the fact that we don&apos;t see the output implies that LayoutTestController is not waiting around for the navigation to happen.  
&gt; &gt; 
&gt; &gt; All of the about:blank callbacks disappearing are the result of how MainResourceLoader handled empty loads in https://bugs.webkit.org/attachment.cgi?id=171043. Because a ResourceLoader isn&apos;t being created for these loads, ResourceLoadNotifier callbacks aren&apos;t being sent. I ended up making those changes to empty loads as part of https://bugs.webkit.org/show_bug.cgi?id=101512, so these diffs shouldn&apos;t be part of a new version of this patch.
&gt; 
&gt; A little fuzzy now on no sleep.  I think what you&apos;re saying is that if 101512 lands (and sticks) then these callbacks start coming through?
&gt; 
&gt; &gt; In the case of the X-Frame-Options loads, I believe the tests would be timing out if we were not performing the about:blank fallback load. Each test uses the following function as its load event for the iframe:
&gt; &gt; 
&gt; &gt; function checkIfDone()
&gt; &gt; {
&gt; &gt;     if (document.getElementsByTagName(&quot;iframe&quot;)[0].contentWindow.location == &quot;about:blank&quot;)
&gt; &gt;         testRunner.notifyDone();
&gt; &gt; }
&gt; &gt; 
&gt; &gt; This shouldn&apos;t return true until the empty document is loaded and has replaced the blocked document.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; The changes http/tests/loading/redirect-methods.html are a combination of (2) and (3). The portion caused by (3) are landed in https://bugs.webkit.org/show_bug.cgi?id=101512, and the portion caused by (2) will be unnecessary with the changes to didReceiveServerRedirectForProvisionalLoadForFrame timing.
&gt; 
&gt; This further supports my &quot;what I think you&apos;re saying is...&quot; above.

https://bugs.webkit.org/show_bug.cgi?id=101512 landed, we&apos;ll see whether it sticks...

I believe that, with https://bugs.webkit.org/show_bug.cgi?id=101512 on trunk, the callbacks are gone and won&apos;t be coming back. My point was that the layout test result changes occurred in that patch, and they shouldn&apos;t be necessary in this bug.

Does that make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778408</commentid>
    <comment_count>33</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-28 15:25:56 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; There&apos;s three classes of changes in the layouttest results:
&gt; &gt; &gt; 
&gt; &gt; &gt; 1 - WebInspector resource counting changes.  
&gt; &gt; &gt; 
&gt; &gt; &gt; These seem noncontroversial.
&gt; &gt; I&apos;m not sure these changes are correct, to me this looks like network panel is missing main resource request now. Nate, could you please check that?
&gt; 
&gt; I was operating on the premise Nate had actually tested the patch in browser and this was just a regression test change.  I&apos;ll take a look.

I just tested it with my patch, and see the main resource on both the Resources and Network tabs. Is there anywhere else I need to check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778478</commentid>
    <comment_count>34</comment_count>
      <attachid>176599</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-28 16:33:30 -0800</bug_when>
    <thetext>Created attachment 176599
Merged to trunk, addressed server redirect concerns, etc

I&apos;m still running a broader group of tests, so not marking for review yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778527</commentid>
    <comment_count>35</comment_count>
      <attachid>176599</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-28 17:24:11 -0800</bug_when>
    <thetext>Comment on attachment 176599
Merged to trunk, addressed server redirect concerns, etc

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

New failing tests:
fast/loader/onload-willSendRequest-null-for-frame.html
plugins/plugin-document-willSendRequest-null.html
fast/replaced/border-radius-clip-content-edge.html
fast/loader/javascript-url-iframe-remove-on-navigate.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778612</commentid>
    <comment_count>36</comment_count>
      <attachid>176599</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 19:27:01 -0800</bug_when>
    <thetext>Comment on attachment 176599
Merged to trunk, addressed server redirect concerns, etc

Attachment 176599 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15013693

New failing tests:
svg/foreignObject/viewport-foreignobject-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779491</commentid>
    <comment_count>37</comment_count>
      <attachid>176829</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-29 15:16:39 -0800</bug_when>
    <thetext>Created attachment 176829
Fix EWS failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779601</commentid>
    <comment_count>38</comment_count>
      <attachid>176829</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-29 17:04:46 -0800</bug_when>
    <thetext>Comment on attachment 176829
Fix EWS failures

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

&gt; Source/WebCore/loader/MainResourceLoader.h:33
&gt; +#include &quot;Frame.h&quot;

Is this include unavoidable? Is it just so we can inline the frameLoader() function?

&gt; Source/WebCore/loader/MainResourceLoader.h:75
&gt; +    unsigned long identifier() const;

Strange choice of type here. WebKit is used on platforms where unsigned and unsigned long are the same size, so we almost never use unsigned long. Is there some reason to use it here?

&gt; Source/WebCore/loader/MainResourceLoader.h:86
&gt; +    virtual void redirectReceived(CachedResource*, ResourceRequest&amp;, const ResourceResponse&amp;);
&gt; +    virtual void responseReceived(CachedResource*, const ResourceResponse&amp;);
&gt; +    virtual void dataReceived(CachedResource*, const char* data, int dataLength);
&gt; +    virtual void notifyFinished(CachedResource*);

Why no OVERRIDE on these?

&gt; Source/WebCore/loader/MainResourceLoader.h:125
&gt; +    RefPtr&lt;Frame&gt; m_frame;
&gt; +    RefPtr&lt;DocumentLoader&gt; m_documentLoader;

Adding these seems really unfortunate. Is this really needed?

&gt; Source/WebCore/loader/MainResourceLoader.cpp:-381
&gt; -    // There is a bug in CFNetwork where callbacks can be dispatched even when loads are deferred.
&gt; -    // See &lt;rdar://problem/6304600&gt; for more details.
&gt; -#if !USE(CF)
&gt; -    ASSERT(!defersLoading());
&gt; -#endif

Where did this assertion go?

&gt; Source/WebCore/loader/MainResourceLoader.cpp:-496
&gt; -    // There is a bug in CFNetwork where callbacks can be dispatched even when loads are deferred.
&gt; -    // See &lt;rdar://problem/6304600&gt; for more details.
&gt; -#if !USE(CF)
&gt; -    ASSERT(!defersLoading() || InspectorInstrumentation::isDebuggerPaused(m_frame.get()));
&gt; -#endif

Where did this assertion go?

&gt; Source/WebCore/loader/MainResourceLoader.cpp:-542
&gt; -    // There is a bug in CFNetwork where callbacks can be dispatched even when loads are deferred.
&gt; -    // See &lt;rdar://problem/6304600&gt; for more details.
&gt; -#if !USE(CF)
&gt; -    ASSERT(!defersLoading());
&gt; -#endif

Where did this assertion go?

&gt; Source/WebCore/loader/archive/Archive.h:57
&gt; +    void addSubresource(PassRefPtr&lt;ArchiveResource&gt; subResource);

Should remove the (miscapitalized) argument name.

&gt; Source/WebCore/loader/archive/Archive.cpp:38
&gt; +void Archive::addSubresource(PassRefPtr&lt;ArchiveResource&gt; subResource)

The word “subresource” should not have a capital letter in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779603</commentid>
    <comment_count>39</comment_count>
      <attachid>176829</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-29 17:05:32 -0800</bug_when>
    <thetext>Comment on attachment 176829
Fix EWS failures

Can this be broken into smaller patches? I don’t think all these changes necessarily go together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779605</commentid>
    <comment_count>40</comment_count>
      <attachid>176829</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-29 17:06:20 -0800</bug_when>
    <thetext>Comment on attachment 176829
Fix EWS failures

Thanks very much for taking this on; there are things here that generally look good. I am a bit puzzled by the overall direction, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779694</commentid>
    <comment_count>41</comment_count>
      <attachid>176829</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 18:09:06 -0800</bug_when>
    <thetext>Comment on attachment 176829
Fix EWS failures

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

New failing tests:
fast/replaced/border-radius-clip-content-edge.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779827</commentid>
    <comment_count>42</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-29 22:41:26 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=101512 landed, we&apos;ll see whether it sticks...
&gt; 
&gt; I believe that, with https://bugs.webkit.org/show_bug.cgi?id=101512 on trunk, the callbacks are gone and won&apos;t be coming back. My point was that the layout test result changes occurred in that patch, and they shouldn&apos;t be necessary in this bug.
&gt; 
&gt; Does that make sense?

I see.  I wasn&apos;t following 101512 as closely as I could have/should have.  Removing the about:blank callbacks might be problematic for WebKit apps.  Was any sort of archeological effort made through their history to determine that the about:blank behavior was not actually important?

If we didn&apos;t need them, then we didn&apos;t need them.  But in the past even the most subtle changes to loading delegate callbacks have rendered high visibility WebKit applications broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779830</commentid>
    <comment_count>43</comment_count>
      <attachid>176829</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-29 22:46:10 -0800</bug_when>
    <thetext>Comment on attachment 176829
Fix EWS failures

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

&gt;&gt; Source/WebCore/loader/MainResourceLoader.h:75
&gt;&gt; +    unsigned long identifier() const;
&gt; 
&gt; Strange choice of type here. WebKit is used on platforms where unsigned and unsigned long are the same size, so we almost never use unsigned long. Is there some reason to use it here?

Currently all &quot;loading identifiers&quot; in WebCore are &quot;unsigned long&quot;.  The includes the ResourceLoader and WebInspector machineries in addition to FrameLoaderClient callbacks.

This actually drives me crazy and has been a thorn in my side recently.  I&apos;d strongly prefer to use uint64_t as at least some users strongly expect greater than 32-bit fidelity.

I started to work on a patch to replace it all, but it turned in to a *much* larger task than I had time for.

My point here is that Nate is simply following a *large* amount of momentum with this choice and I&apos;m perfectly okay with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779884</commentid>
    <comment_count>44</comment_count>
      <attachid>176829</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-30 00:24:06 -0800</bug_when>
    <thetext>Comment on attachment 176829
Fix EWS failures

Attachment 176829 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15036854

New failing tests:
svg/foreignObject/viewport-foreignobject-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780161</commentid>
    <comment_count>45</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-30 09:20:01 -0800</bug_when>
    <thetext>(In reply to comment #42)
&gt; (In reply to comment #32)
&gt; &gt; (In reply to comment #31)
&gt; &gt; 
&gt; &gt; https://bugs.webkit.org/show_bug.cgi?id=101512 landed, we&apos;ll see whether it sticks...
&gt; &gt; 
&gt; &gt; I believe that, with https://bugs.webkit.org/show_bug.cgi?id=101512 on trunk, the callbacks are gone and won&apos;t be coming back. My point was that the layout test result changes occurred in that patch, and they shouldn&apos;t be necessary in this bug.
&gt; &gt; 
&gt; &gt; Does that make sense?
&gt; 
&gt; I see.  I wasn&apos;t following 101512 as closely as I could have/should have.  Removing the about:blank callbacks might be problematic for WebKit apps.  Was any sort of archeological effort made through their history to determine that the about:blank behavior was not actually important?
&gt; 
&gt; If we didn&apos;t need them, then we didn&apos;t need them.  But in the past even the most subtle changes to loading delegate callbacks have rendered high visibility WebKit applications broken.

I didn&apos;t do a ton of archaeology, based on https://bugs.webkit.org/show_bug.cgi?id=101512#c10. I&apos;d be happy to do so now if you have pointers as to where I should be looking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780203</commentid>
    <comment_count>46</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-30 10:19:02 -0800</bug_when>
    <thetext>(In reply to comment #39)
&gt; (From update of attachment 176829 [details])
&gt; Can this be broken into smaller patches? I don’t think all these changes necessarily go together.

I&apos;ve already broken off several pieces (see the blocking bugs), but I can certainly try to find other pieces to break off.

(In reply to comment #38)
&gt; (From update of attachment 176829 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176829&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/MainResourceLoader.h:33
&gt; &gt; +#include &quot;Frame.h&quot;
&gt; 
&gt; Is this include unavoidable? Is it just so we can inline the frameLoader() function?

I think it is just for the inline, will fix.

&gt; 
&gt; &gt; Source/WebCore/loader/MainResourceLoader.h:125
&gt; &gt; +    RefPtr&lt;Frame&gt; m_frame;
&gt; &gt; +    RefPtr&lt;DocumentLoader&gt; m_documentLoader;
&gt; 
&gt; Adding these seems really unfortunate. Is this really needed?

It&apos;s because MainResourceLoader no longer inherits from ResourceLoader. Previously, these were members of ResourceLoader. We really need at least m_documentLoader, but we could probably do without m_frame and just use m_documentLoader-&gt;frame() if you think that&apos;s cleaner.

&gt; 
&gt; &gt; Source/WebCore/loader/MainResourceLoader.cpp:-381
&gt; &gt; -    // There is a bug in CFNetwork where callbacks can be dispatched even when loads are deferred.
&gt; &gt; -    // See &lt;rdar://problem/6304600&gt; for more details.
&gt; &gt; -#if !USE(CF)
&gt; &gt; -    ASSERT(!defersLoading());
&gt; &gt; -#endif
&gt; 
&gt; Where did this assertion go?

For these, I was working on the premise that there is no longer a defersLoading() on this class, it was by definition always false. Perhaps I should add back in defersLoading(), and have it reach into the underlying ResourceLoader to approximate the current behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780526</commentid>
    <comment_count>47</comment_count>
      <attachid>177046</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-11-30 16:24:15 -0800</bug_when>
    <thetext>Created attachment 177046
Address darin&apos;s comments

I&apos;ve got a split-out subset that I&apos;m still testing, will post it separately when it&apos;s ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780943</commentid>
    <comment_count>48</comment_count>
      <attachid>177046</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-02 05:48:06 -0800</bug_when>
    <thetext>Comment on attachment 177046
Address darin&apos;s comments

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

New failing tests:
fast/replaced/border-radius-clip-content-edge.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781605</commentid>
    <comment_count>49</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-03 10:31:33 -0800</bug_when>
    <thetext>(In reply to comment #46)
&gt; It&apos;s because MainResourceLoader no longer inherits from ResourceLoader. Previously, these were members of ResourceLoader. We really need at least m_documentLoader, but we could probably do without m_frame and just use m_documentLoader-&gt;frame() if you think that&apos;s cleaner.

I do.

&gt; For these, I was working on the premise that there is no longer a defersLoading() on this class, it was by definition always false. Perhaps I should add back in defersLoading(), and have it reach into the underlying ResourceLoader to approximate the current behavior.

Here’s my take: The assertions about loading deferral are not about the internal contract of just this single class. I believe we’d want those assertions even if they had to grope through other objects to find out what the deferral status is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781837</commentid>
    <comment_count>50</comment_count>
      <attachid>177317</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-03 13:42:56 -0800</bug_when>
    <thetext>Created attachment 177317
Merged in r136412, rebase the failing cr-linux test

The cr-linux ews results change appears to be a symptom of an unrelated off-by-one error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782240</commentid>
    <comment_count>51</comment_count>
      <attachid>177317</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-03 22:56:44 -0800</bug_when>
    <thetext>Comment on attachment 177317
Merged in r136412, rebase the failing cr-linux test

Attachment 177317 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15101893

New failing tests:
svg/foreignObject/viewport-foreignobject-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782726</commentid>
    <comment_count>52</comment_count>
      <attachid>177515</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-04 11:04:41 -0800</bug_when>
    <thetext>Created attachment 177515
Attempt of the day, Dec 4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783997</commentid>
    <comment_count>53</comment_count>
      <attachid>177515</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-05 12:33:23 -0800</bug_when>
    <thetext>Comment on attachment 177515
Attempt of the day, Dec 4.

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

&gt; Source/WebCore/loader/DocumentLoader.cpp:815
&gt;      m_subresourceLoaders.add(loader);

Should we ASSERT that loader isn&apos;t in m_subresourceLoaders?

We might also want to ASSERT that m_mainResourceLoader-&gt;loader() != loader given that we&apos;re trying to filter that one out.

&gt; Source/WebCore/loader/DocumentLoader.cpp:821
&gt; +    if (!m_subresourceLoaders.contains(loader))
&gt; +        return;

Should we ASSERT that loader == m_mainResourceLoader-&gt;loader() in this branch?

&gt; Source/WebCore/loader/MainResourceLoader.cpp:641
&gt; +        CachedResourceRequest cachedResourceRequest(request, ResourceLoaderOptions(SendCallbacks, SniffContent, BufferData,
&gt; +            AllowStoredCredentials, AskClientForCrossOriginCredentials, SkipSecurityCheck));

nit: I might have made ResourceLoaderOptions a named local variable since it&apos;s constructor is long.

&gt; Source/WebCore/loader/MainResourceLoader.cpp:643
&gt; +        if (!m_resource) {

When does this occur?  I guess if the CachedResourceLoader blocks the request for some sort of policy reason?

&gt; Source/WebCore/loader/MainResourceLoader.cpp:655
&gt; +        if (url != request.url())
&gt; +            request.setURL(url);

Is URL the only think that can change?  It looks like url is a const reference to r.url() and request is a copy of r.  I guess request can be mutated somewhere in here?

Is it essential to use url instead of r.url()?  This appears to be the only use of |url|, so I assume you had a reason for using it.  Is it important that url is a reference rather than a copy of r.url()?  I guess what I&apos;m saying is that I find these two lines of code confusing.

&gt; Source/WebCore/loader/MainResourceLoader.h:54
&gt; -class MainResourceLoader : public ResourceLoader {
&gt; +class MainResourceLoader : public RefCounted&lt;MainResourceLoader&gt;, public CachedRawResourceClient {

Crazy!  I wonder if we&apos;ll want to rename MainResourceLoader in a future patch now that its not a subclass of ResourceLoader.

&gt; Source/WebCore/loader/archive/Archive.cpp:40
&gt; +    if (m_mainResource-&gt;url() != subresource-&gt;url())

Is it a valid assumption for archives that their sub resources never have the same URL as their main resources?  That&apos;s not a valid assumption for web sites, but I&apos;m not sure about archives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783998</commentid>
    <comment_count>54</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-05 12:33:53 -0800</bug_when>
    <thetext>Looks almost sane, which is saying something.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784030</commentid>
    <comment_count>55</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-05 13:01:37 -0800</bug_when>
    <thetext>(In reply to comment #53)
&gt; (From update of attachment 177515 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177515&amp;action=review

&gt; 
&gt; &gt; Source/WebCore/loader/MainResourceLoader.cpp:643
&gt; &gt; +        if (!m_resource) {
&gt; 
&gt; When does this occur?  I guess if the CachedResourceLoader blocks the request for some sort of policy reason?

Yeah, most commonly it will be because the load failed synchronously, perhaps because it was cancelled via an embedder&apos;s willSendRequest() call.

&gt; 
&gt; &gt; Source/WebCore/loader/MainResourceLoader.cpp:655
&gt; &gt; +        if (url != request.url())
&gt; &gt; +            request.setURL(url);
&gt; 
&gt; Is URL the only think that can change?  It looks like url is a const reference to r.url() and request is a copy of r.  I guess request can be mutated somewhere in here?

The request will be modified within requestMainResource() by the embedder&apos;s willSendRequest(), by headers added in CachedResource::load(), etc. We want all those headers, but we still want the fragment identifier. Is there anything I can do to make the comment just above your snip more clear?

&gt; 
&gt; Is it essential to use url instead of r.url()?  This appears to be the only use of |url|, so I assume you had a reason for using it.  Is it important that url is a reference rather than a copy of r.url()?  I guess what I&apos;m saying is that I find these two lines of code confusing.

I don&apos;t think url is necessary, I think I copy/pasted it from the old way. r should probably be renamed, too.

&gt; 
&gt; &gt; Source/WebCore/loader/MainResourceLoader.h:54
&gt; &gt; -class MainResourceLoader : public ResourceLoader {
&gt; &gt; +class MainResourceLoader : public RefCounted&lt;MainResourceLoader&gt;, public CachedRawResourceClient {
&gt; 
&gt; Crazy!  I wonder if we&apos;ll want to rename MainResourceLoader in a future patch now that its not a subclass of ResourceLoader.

Possibly. I&apos;ve been trying to come up with something better, but I haven&apos;t found it yet. I suppose there&apos;s also the more ambitious idea of merging it with DocumentLoader.

&gt; 
&gt; &gt; Source/WebCore/loader/archive/Archive.cpp:40
&gt; &gt; +    if (m_mainResource-&gt;url() != subresource-&gt;url())
&gt; 
&gt; Is it a valid assumption for archives that their sub resources never have the same URL as their main resources?  That&apos;s not a valid assumption for web sites, but I&apos;m not sure about archives.

I don&apos;t know for sure. If subresources can have the same url as the main resource, we don&apos;t have test coverage for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784132</commentid>
    <comment_count>56</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-05 14:44:02 -0800</bug_when>
    <thetext>(In reply to comment #53)
&gt; (From update of attachment 177515 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177515&amp;action=review
&gt; &gt; Source/WebCore/loader/DocumentLoader.cpp:821
&gt; &gt; +    if (!m_subresourceLoaders.contains(loader))
&gt; &gt; +        return;
&gt; 
&gt; Should we ASSERT that loader == m_mainResourceLoader-&gt;loader() in this branch?

Turns out this doesn&apos;t work. m_mainResourceLoader is sometimes (maybe always) cleared by the time removeSubresourceLoader() is called.

(In reply to comment #55)
&gt; (In reply to comment #53)
&gt; &gt; (From update of attachment 177515 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177515&amp;action=review
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/archive/Archive.cpp:40
&gt; &gt; &gt; +    if (m_mainResource-&gt;url() != subresource-&gt;url())
&gt; &gt; 
&gt; &gt; Is it a valid assumption for archives that their sub resources never have the same URL as their main resources?  That&apos;s not a valid assumption for web sites, but I&apos;m not sure about archives.
&gt; 
&gt; I don&apos;t know for sure. If subresources can have the same url as the main resource, we don&apos;t have test coverage for it.

It appears that a cleaner, simpler way of preventing duplication of the main resource is to skip main resources by their CachedResource::Type in DocumentLoader::subresource(). Will do that instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784160</commentid>
    <comment_count>57</comment_count>
      <attachid>177839</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-05 15:07:49 -0800</bug_when>
    <thetext>Created attachment 177839
Address abarth&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784411</commentid>
    <comment_count>58</comment_count>
      <attachid>177839</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-05 18:11:18 -0800</bug_when>
    <thetext>Comment on attachment 177839
Address abarth&apos;s comments

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

&gt; Source/WebCore/loader/MainResourceLoader.cpp:653
&gt; +        // We need to wait until after requestMainResource() is called to setRequest(), because there are a bunch of headers set when
&gt; +        // the underlying ResourceLoader is created, and DocumentLoader::m_request needs to include those. However, the cache will
&gt; +        // strip the fragment identifier (which DocumentLoader::m_request should also include), so add that back in.
&gt; +        if (loader())
&gt; +            request = loader()-&gt;originalRequest();
&gt; +        if (initialRequest.url() != request.url())
&gt; +            request.setURL(initialRequest.url());

Maybe we should ASSERT that the URLs differ only in their fragment identifier?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784419</commentid>
    <comment_count>59</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-05 18:14:40 -0800</bug_when>
    <thetext>I&apos;m happy with this patch.  I don&apos;t fully understand all of its consequences, but I think we should try landing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784422</commentid>
    <comment_count>60</comment_count>
      <attachid>177839</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-05 18:17:29 -0800</bug_when>
    <thetext>Comment on attachment 177839
Address abarth&apos;s comments

I&apos;m not sure if other folks have feedback for you, but I&apos;m going to mark this patch r+.  Please use you judgement as to whether you&apos;d like other folks to look at the patch as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785083</commentid>
    <comment_count>61</comment_count>
      <attachid>177839</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-12-06 11:30:34 -0800</bug_when>
    <thetext>Comment on attachment 177839
Address abarth&apos;s comments

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

The patch is hard to follow partly due to general messiness of the loader code and also because it is not clear what the end state looks like (since it doesn&apos;t enable caching). It is sad that we haven&apos;t made much progress in refactoring the code before attempting this. At minimum it seems to me that we at least should get the layering right.

&gt; Source/WebCore/loader/MainResourceLoader.cpp:372
&gt; -void MainResourceLoader::didReceiveResponse(const ResourceResponse&amp; r)
&gt; +void MainResourceLoader::responseReceived(CachedResource* resource, const ResourceResponse&amp; r)

CachedResource is a higher level concept than ResourceLoader. Making the latter depend on the former seems architecturally wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785088</commentid>
    <comment_count>62</comment_count>
      <attachid>177839</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-06 11:34:42 -0800</bug_when>
    <thetext>Comment on attachment 177839
Address abarth&apos;s comments

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

&gt;&gt; Source/WebCore/loader/MainResourceLoader.cpp:372
&gt;&gt; +void MainResourceLoader::responseReceived(CachedResource* resource, const ResourceResponse&amp; r)
&gt; 
&gt; CachedResource is a higher level concept than ResourceLoader. Making the latter depend on the former seems architecturally wrong.

I don&apos;t really understand this comment.  MainResourceLoader is no longer a subclass of ResourceLoader, so I don&apos;t think there is any dependency being added from ResourceLoader to CachedResource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785102</commentid>
    <comment_count>63</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-06 11:44:06 -0800</bug_when>
    <thetext>(In reply to comment #61)
&gt; (From update of attachment 177839 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177839&amp;action=review
&gt; 
&gt; The patch is hard to follow partly due to general messiness of the loader code and also because it is not clear what the end state looks like (since it doesn&apos;t enable caching). It is sad that we haven&apos;t made much progress in refactoring the code before attempting this. At minimum it seems to me that we at least should get the layering right.

I haven&apos;t written the patch to turn caching on yet, but in theory it should be as simple as removing the if statement at http://trac.webkit.org/browser/trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp?rev=136861#L545 .

In practice, there may be subtle issues to work out, but given that main resources will reuse the plumbing for cached XHRs, I&apos;m optimistic that the issues will be minimal.

&gt; 
&gt; &gt; Source/WebCore/loader/MainResourceLoader.cpp:372
&gt; &gt; -void MainResourceLoader::didReceiveResponse(const ResourceResponse&amp; r)
&gt; &gt; +void MainResourceLoader::responseReceived(CachedResource* resource, const ResourceResponse&amp; r)
&gt; 
&gt; CachedResource is a higher level concept than ResourceLoader. Making the latter depend on the former seems architecturally wrong.

As abarth mentioned, in this patch, MainResourceLoader is no longer a ResourceLoader. It is a subsidiary of DocumentLoader, sitting above the cache. It has been suggested in multiple places (namely comments #9 and #53) that MainResourceLoader should probably be renamed, but I haven&apos;t come up with anything suitable yet.

Have I misunderstood your concern?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785121</commentid>
    <comment_count>64</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-12-06 12:02:47 -0800</bug_when>
    <thetext>(In reply to comment #62)
&gt; I don&apos;t really understand this comment.  MainResourceLoader is no longer a subclass of ResourceLoader, 

Ok. Do you know where the confusion might originate from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785125</commentid>
    <comment_count>65</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-12-06 12:06:00 -0800</bug_when>
    <thetext>(In reply to comment #63)
&gt; As abarth mentioned, in this patch, MainResourceLoader is no longer a ResourceLoader. It is a subsidiary of DocumentLoader, sitting above the cache. It has been suggested in multiple places (namely comments #9 and #53) that MainResourceLoader should probably be renamed, but I haven&apos;t come up with anything suitable yet.
&gt; 
&gt; Have I misunderstood your concern?

Probably not. It sounds the class really needs a new name though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785160</commentid>
    <comment_count>66</comment_count>
      <attachid>177839</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-12-06 12:48:37 -0800</bug_when>
    <thetext>Comment on attachment 177839
Address abarth&apos;s comments

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

r+&apos;d back since this is mainly a naming concern. The current MainResourceLoader still seems like an odd type (besides the name) with ill-defined purpose so I think this is going to need more work.

&gt; Source/WebCore/loader/MainResourceLoader.cpp:637
&gt; +    if (m_substituteData.isValid())
&gt; +        handleSubstituteDataLoadSoon(request);
&gt; +    else {
&gt; +        DEFINE_STATIC_LOCAL(ResourceLoaderOptions, mainResourceLoadOptions,

Looks like this could do early return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787679</commentid>
    <comment_count>67</comment_count>
      <attachid>178623</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-10 13:36:46 -0800</bug_when>
    <thetext>Created attachment 178623
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788522</commentid>
    <comment_count>68</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-11 09:46:06 -0800</bug_when>
    <thetext>(In reply to comment #67)
&gt; Created an attachment (id=178623) [details]
&gt; Patch for landing

The commit queue failed because of incompatibility with http://trac.webkit.org/changeset/136439. This is a simple fix, temporarily leaving resource timing off for main resources. I&apos;ll coordinate with simonjam to get it turned on once this patch has stuck.

Also, chromium asan indicates that CachedRawResource::willSendRequest() needs to protect(this), as main resources may cancel their loads re-entrantly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788543</commentid>
    <comment_count>69</comment_count>
      <attachid>178826</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-11 10:00:50 -0800</bug_when>
    <thetext>Created attachment 178826
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788575</commentid>
    <comment_count>70</comment_count>
      <attachid>178826</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 10:29:26 -0800</bug_when>
    <thetext>Comment on attachment 178826
Patch for landing

Clearing flags on attachment: 178826

Committed r137333: &lt;http://trac.webkit.org/changeset/137333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788576</commentid>
    <comment_count>71</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 10:29:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789249</commentid>
    <comment_count>72</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 23:40:04 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 104771</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789255</commentid>
    <comment_count>73</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-12-11 23:44:22 -0800</bug_when>
    <thetext>The failure that broke the camel&apos;s back (and caused the WebKit roll to get reverted) was this one:

ExtensionResourceRequestPolicyTest.Iframe: 
ASSERTION FAILED: equalIgnoringFragmentIdentifier(initialRequest.url(), request.url())
../../third_party/WebKit/Source/WebCore/loader/MainResourceLoader.cpp(656) : void WebCore::MainResourceLoader::load(const WebCore::ResourceRequest &amp;, const WebCore::SubstituteData &amp;)
[3510:-1256083456:1211/172350:916009739873:WARNING:extension_protocols.cc(344)] Failed to GetPathForExtension: invalid
[3510:-1256083456:1211/172350:916009829652:WARNING:url_request_job_manager.cc(131)] Failed to map: chrome-extension://invalid/
1 0x12883e9e WebCore::MainResourceLoader::load(WebCore::ResourceRequest const&amp;, WebCore::SubstituteData const&amp;)
[3510:-1408298304:1211/172350:916021817738:INFO:CONSOLE(0)] &quot;Denying load of chrome-extension://pbkkcbgdkliohhfaeefcijaghglkahja/inaccessible-iframe-contents.html. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.&quot;, source: about:blank (0)
2 0x1281e972 WebCore::DocumentLoader::startLoadingMainResource()
3 0x1286293c WebCore::FrameLoader::continueLoadAfterWillSubmitForm()

See rollout codereview for more links: https://codereview.chromium.org/11548010/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790008</commentid>
    <comment_count>74</comment_count>
      <attachid>179139</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-12 15:55:49 -0800</bug_when>
    <thetext>Created attachment 179139
Re-land after revert

Differences from r137333:

* clearResource() is called in MainResourceLoader&apos;s destructor, so we don&apos;t leak m_resource
* No modifications to http/tests/inspector/resource-parameters.html
* Fragment identifier reconstruction is no longer necessary at the end of MainResourceLoader::load().

Note that until bug 104721 lands, http/tests/inspector/resource-parameters.html will fail, so EWS for this patch is not excepted to be 100% green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790059</commentid>
    <comment_count>75</comment_count>
      <attachid>179139</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-12 16:41:22 -0800</bug_when>
    <thetext>Comment on attachment 179139
Re-land after revert

Changes look reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790145</commentid>
    <comment_count>76</comment_count>
      <attachid>179139</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 17:57:44 -0800</bug_when>
    <thetext>Comment on attachment 179139
Re-land after revert

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

New failing tests:
http/tests/navigation/anchor-basic.html
http/tests/navigation/anchor-frames-same-origin.html
http/tests/history/redirect-200-refresh-2-seconds.pl
http/tests/history/redirect-js-location-assign-before-load.html
http/tests/history/redirect-js-location-2-seconds.html
http/tests/history/redirect-js-location-0-seconds.html
http/tests/history/redirect-js-location-href-2-seconds.html
http/tests/history/redirect-js-location-replace-before-load.html
http/tests/history/redirect-js-document-location-before-load.html
http/tests/history/redirect-js-location-assign-0-seconds.html
http/tests/navigation/anchor-frames.html
http/tests/history/redirect-js-document-location-2-seconds.html
http/tests/misc/will-send-request-returns-null-on-redirect.html
http/tests/history/redirect-js-form-submit-before-load.html
http/tests/history/redirect-meta-refresh-0-seconds.html
http/tests/history/redirect-js-location-href-0-seconds.html
http/tests/history/redirect-js-form-submit-2-seconds.html
http/tests/history/redirect-js-document-location-0-seconds.html
http/tests/history/redirect-js-location-href-before-load.html
http/tests/history/redirect-200-refresh-0-seconds.pl
http/tests/history/redirect-js-form-submit-0-seconds.html
http/tests/history/redirect-js-location-before-load.html
http/tests/history/redirect-meta-refresh-2-seconds.html
http/tests/css/cross-fade-reload.html
http/tests/history/redirect-js-location-replace-0-seconds.html
http/tests/navigation/anchor-goback.html
http/tests/history/redirect-js-location-replace-2-seconds.html
http/tests/inspector/resource-parameters.html
http/tests/history/redirect-js-location-assign-2-seconds.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790539</commentid>
    <comment_count>77</comment_count>
      <attachid>179139</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-13 06:09:14 -0800</bug_when>
    <thetext>Comment on attachment 179139
Re-land after revert

Attachment 179139 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15317252

New failing tests:
http/tests/history/redirect-js-location-2-seconds.html
http/tests/history/redirect-200-refresh-2-seconds.pl
http/tests/history/redirect-js-location-assign-before-load.html
http/tests/history/redirect-js-location-0-seconds.html
http/tests/history/redirect-js-location-href-2-seconds.html
http/tests/history/redirect-js-location-replace-before-load.html
http/tests/history/redirect-js-document-location-before-load.html
http/tests/history/redirect-js-location-assign-0-seconds.html
http/tests/history/redirect-js-document-location-2-seconds.html
http/tests/history/redirect-js-form-submit-before-load.html
http/tests/history/redirect-meta-refresh-0-seconds.html
http/tests/history/redirect-js-location-href-0-seconds.html
http/tests/history/redirect-js-form-submit-2-seconds.html
http/tests/history/redirect-js-document-location-0-seconds.html
http/tests/history/redirect-js-location-href-before-load.html
http/tests/history/redirect-200-refresh-0-seconds.pl
http/tests/history/redirect-js-form-submit-0-seconds.html
fast/css/font-face-data-uri.html
http/tests/history/redirect-meta-refresh-2-seconds.html
http/tests/css/cross-fade-reload.html
http/tests/history/redirect-js-location-replace-0-seconds.html
http/tests/history/redirect-js-location-replace-2-seconds.html
fast/loader/javascript-url-in-object.html
http/tests/history/redirect-js-location-before-load.html
http/tests/history/redirect-js-location-assign-2-seconds.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790706</commentid>
    <comment_count>78</comment_count>
      <attachid>179293</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-13 09:58:27 -0800</bug_when>
    <thetext>Created attachment 179293
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790708</commentid>
    <comment_count>79</comment_count>
      <attachid>179294</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-12-13 10:00:58 -0800</bug_when>
    <thetext>Created attachment 179294
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790732</commentid>
    <comment_count>80</comment_count>
      <attachid>179294</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 10:28:53 -0800</bug_when>
    <thetext>Comment on attachment 179294
Patch for landing

Clearing flags on attachment: 179294

Committed r137607: &lt;http://trac.webkit.org/changeset/137607&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790733</commentid>
    <comment_count>81</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 10:29:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792350</commentid>
    <comment_count>82</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-16 11:26:34 -0800</bug_when>
    <thetext>I&apos;m not sure why yet but r137607 seems to have broken EFL&apos;s test_ewk2_download API test (basically, just testing a PDF file download).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792689</commentid>
    <comment_count>83</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-12-17 06:43:10 -0800</bug_when>
    <thetext>(In reply to comment #82)
&gt; I&apos;m not sure why yet but r137607 seems to have broken EFL&apos;s test_ewk2_download API test (basically, just testing a PDF file download).

After this patch, we are getting ::cancel() on the ResourceHandleSoup. Probably GTK is broken as well. A fix was provided only for Mac at bug 105044.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793451</commentid>
    <comment_count>84</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-18 01:25:52 -0800</bug_when>
    <thetext>(In reply to comment #83)
&gt; (In reply to comment #82)
&gt; &gt; I&apos;m not sure why yet but r137607 seems to have broken EFL&apos;s test_ewk2_download API test (basically, just testing a PDF file download).
&gt; 
&gt; After this patch, we are getting ::cancel() on the ResourceHandleSoup. Probably GTK is broken as well. A fix was provided only for Mac at bug 105044.

Yes, GTK is broken too, it seems that after this patch callbacks didCommitLoadForFrame and didFinishLoadForFrame are never called for the main resource when loaded using loadHTML(). I have to look at it in more detail, but this causes that most of our unit tests timeout because they wait forever until load finishes. We didn&apos;t notice it, because of a bug in our unit tests script, that doesn&apos;t consider timeout tests as failures, so bots are green :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793532</commentid>
    <comment_count>85</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-18 04:04:16 -0800</bug_when>
    <thetext>(In reply to comment #84)
&gt; (In reply to comment #83)
&gt; &gt; (In reply to comment #82)
&gt; &gt; &gt; I&apos;m not sure why yet but r137607 seems to have broken EFL&apos;s test_ewk2_download API test (basically, just testing a PDF file download).
&gt; &gt; 
&gt; &gt; After this patch, we are getting ::cancel() on the ResourceHandleSoup. Probably GTK is broken as well. A fix was provided only for Mac at bug 105044.
&gt; 
&gt; Yes, GTK is broken too, it seems that after this patch callbacks didCommitLoadForFrame and didFinishLoadForFrame are never called for the main resource when loaded using loadHTML(). I have to look at it in more detail, but this causes that most of our unit tests timeout because they wait forever until load finishes. We didn&apos;t notice it, because of a bug in our unit tests script, that doesn&apos;t consider timeout tests as failures, so bots are green :-(

After looking at it in more detail, frame loader callbacks are indeed called, the ones that are no longer called for the main resource when using substitute data are the resource loader client ones, WKPageResourceLoadClient in WebKit2  API. In WebKit2 GTK+ API we always wait for the main resource, and that&apos;s why unit tests timeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793535</commentid>
    <comment_count>86</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-12-18 04:08:28 -0800</bug_when>
    <thetext>We have a fix candidate at bug 105044.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793541</commentid>
    <comment_count>87</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-18 04:15:45 -0800</bug_when>
    <thetext>(In reply to comment #86)
&gt; We have a fix candidate at bug 105044.

That&apos;s a bug with downloads, the bug I&apos;m talking about is that resource load client callbacks are not called anymore for the main resource when loading with substitute data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809743</commentid>
    <comment_count>88</comment_count>
    <who name="Marshall Greenblatt">marshall</who>
    <bug_when>2013-01-17 13:54:57 -0800</bug_when>
    <thetext>Bug 107175 ([Chromium] Incorrect |isRedirect| value passed to decidePolicyForNavigation) is also related to this issue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75022</attachid>
            <date>2010-11-29 07:05:22 -0800</date>
            <delta_ts>2012-12-10 13:36:28 -0800</delta_ts>
            <desc>current patch</desc>
            <filename>cached-main-resource-11.patch</filename>
            <type>text/plain</type>
            <size>42849</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkocmV2aXNpb24gNzI3NDEpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjAxLDMgKzE2MDEsNyBAQCBfX1pON1dlYkNvcmUyM0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlMzZyCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
NWVtcHR5RXYKIF9fWk5LN1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTFtYXhpbXVt
U2l6ZUV2CiAjZW5kaWYKKworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKK19fWk43
V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxNG5vdGlmeUZpbmlzaGVkRVBOU18xNENhY2hlZFJlc291
cmNlRQorI2VuZGlmCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gNzI3NDEpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTQ1Myw2ICs1NDUzLDggQEAKIAkJRTFGMUU4
MzAwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEgLyog
WFNMVEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJRTFGRjU3QTMwRjAxMjU1QjAwODkxRUJCIC8qIFRo
cmVhZEdsb2JhbERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRkY1N0EyMEYwMTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGRjU3QTYw
RjAxMjU2QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjU3QTUwRjAxMjU2QjAwODkxRUJCIC8q
IFRocmVhZEdsb2JhbERhdGEuY3BwICovOyB9OworCQlFNDA0MEVENTEyODAzMTNCMDBFODNENDgg
LyogQ2FjaGVkTWFpblJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDA0MEVENDEyODAzMTNCMDBFODNENDggLyogQ2FjaGVkTWFpblJlc291
cmNlLmggKi87IH07CisJCUU0MDQwRkY3MTI4MTg2MzgwMEU4M0Q0OCAvKiBDYWNoZWRNYWluUmVz
b3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQwNDBGRjYxMjgxODYzODAwRTgzRDQ4IC8qIENhY2hlZE1haW5SZXNvdXJjZS5jcHAgKi87IH07
CiAJCUU0MTVGMTY5MEQ5QTE2NUQwMDMzQ0U5NyAvKiBET01FbGVtZW50VGltZUNvbnRyb2wuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MTVGMTY4MEQ5
QTE2NUQwMDMzQ0U5NyAvKiBET01FbGVtZW50VGltZUNvbnRyb2wuaCAqLzsgfTsKIAkJRTQxNUYx
ODQwRDlBMUE4MzAwMzNDRTk3IC8qIEVsZW1lbnRUaW1lQ29udHJvbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxNUYxODMwRDlBMUE4MzAwMzNDRTk3
IC8qIEVsZW1lbnRUaW1lQ29udHJvbC5oICovOyB9OwogCQlFNDQ2MTNBMTBDRDYzMzEwMDBGQURB
NzUgLyogSFRNTEF1ZGlvRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM4RjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxl
bWVudC5jcHAgKi87IH07CkBAIC0xMTU0NSw2ICsxMTU0Nyw4IEBACiAJCUUxRjFFODJFMEMzQzJC
QjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBYU0xURXh0ZW5zaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MUZGNTdBMjBGMDEyNTVCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxRkY1N0E1MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxE
YXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZEdsb2Jh
bERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDA0MEVENDEyODAzMTNC
MDBFODNENDggLyogQ2FjaGVkTWFpblJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IENhY2hlZE1haW5SZXNvdXJjZS5oOyBwYXRoID0gL1VzZXJzL2FudHRpL3dlYmtp
dC9PcGVuU291cmNlL1dlYkNvcmUvbG9hZGVyL0NhY2hlZE1haW5SZXNvdXJjZS5oOyBzb3VyY2VU
cmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQlFNDA0MEZGNjEyODE4NjM4MDBFODNENDggLyogQ2Fj
aGVkTWFpblJlc291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IENhY2hlZE1haW5SZXNvdXJjZS5jcHA7IHBhdGggPSAvVXNlcnMvYW50dGkvd2Via2l0L09wZW5T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkTWFpblJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9
ICI8YWJzb2x1dGU+IjsgfTsKIAkJRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVT
dHJpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY1R5cGVT
dHJpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNkYzRkIxMTk4MzA3
RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDE1
RjEwQzBEOUEwNTg3MDAzM0NFOTcgLyogRWxlbWVudFRpbWVDb250cm9sLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBFbGVtZW50VGltZUNvbnRyb2wuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTc0MjEsNiArMTc0MjUsOCBAQAogCQkJCTBCOTA1NjE4MEYyNTc4QkUwMDk1
RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJMEI5MDU2RjYwRjI2ODVG
MzAwOTVGRjZBIC8qIFdvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwICovLAogCQkJCTBCOTA1NkY3
MEYyNjg1RjMwMDk1RkY2QSAvKiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmggKi8sCisJCQkJRTQw
NDBFRDQxMjgwMzEzQjAwRTgzRDQ4IC8qIENhY2hlZE1haW5SZXNvdXJjZS5oICovLAorCQkJCUU0
MDQwRkY2MTI4MTg2MzgwMEU4M0Q0OCAvKiBDYWNoZWRNYWluUmVzb3VyY2UuY3BwICovLAogCQkJ
KTsKIAkJCXBhdGggPSBsb2FkZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTg2
NTAsNiArMTg2NTYsNyBAQAogCQkJCTUxQzBBQTM5MEYyQUExMEEwMDE2NDhDMiAvKiBDYWNoZWRG
cmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFDQkZDOTkwRDEwRTQ4MzAwMkRCRjUxIC8qIENh
Y2hlZEZyYW1lUGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMxQzA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0MDQwRUQ1
MTI4MDMxM0IwMEU4M0Q0OCAvKiBDYWNoZWRNYWluUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMDE4NDY5MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0IxNkMyMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRkIyRTVFMDk3OUU0NjQwMEJBNzAzRCAvKiBDYWNoZWRSZXNvdXJj
ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTgxNCw2ICsyMTgyMSw3IEBACiAJCQkJQkM2
NEI0Q0IwQ0I0Mjk1RDAwNUYyQjYyIC8qIENhY2hlZEZvbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFDMEFBNDEwRjJBQTE1RTAwMTY0OEMyIC8qIENhY2hlZEZyYW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQjE2QzFCMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRJbWFnZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFNDA0MEZGNzEyODE4NjM4MDBFODNENDggLyogQ2FjaGVkTWFpblJl
c291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMDE4NDZBMEIwODYwMkEwMDRBODI1RiAv
KiBDYWNoZWRQYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzFGMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyMTA5
NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA3Mjc0MSkKKysrIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQwLDcgKzQ0MCwxNSBAQCBEb2N1bWVudDo6
RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLCiAKICAgICBtX21hcmtlcnMgPSBuZXcgRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyKCk7CiAKKyNpZiAhRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09V
UkNFKQogICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBuZXcgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIodGhpcyk7CisjZWxzZQorICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBtX2ZyYW1lID8g
bV9mcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnJlbGVhc2VDYWNoZWRSZXNvdXJj
ZUxvYWRlcigpIDogMDsKKyAgICBpZiAobV9jYWNoZWRSZXNvdXJjZUxvYWRlcikKKyAgICAgICAg
bV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+bW92ZVRvRG9jdW1lbnQodGhpcyk7CisgICAgZWxzZQor
ICAgICAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyID0gbmV3IENhY2hlZFJlc291cmNlTG9hZGVy
KHRoaXMpOworI2VuZGlmCiAKICAgICBtX3Zpc3VhbGx5T3JkZXJlZCA9IGZhbHNlOwogICAgIG1f
YlBhcnNpbmcgPSBmYWxzZTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAJKHJldmlzaW9uIDcy
NzQxKQorKysgV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05OSw4ICs5OSw5IEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnQK
ICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUp
CiAgICAgICAgIHJldHVybjsKLQorI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCiAg
ICAgZnJhbWUtPmxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VM
b2FkZXIoKS0+c2V0U2hvdWxkQnVmZmVyRGF0YShmYWxzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBN
ZWRpYURvY3VtZW50UGFyc2VyOjphcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciosIGNvbnN0IGNo
YXIqLCBpbnQsIGJvb2wpCkluZGV4OiBXZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDcy
NzQxKQorKysgV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE4LDEwICsxMTgsMTIgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0
ZXMoRAogICAgIGlmIChSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1fZW1iZWRFbGVtZW50LT5yZW5k
ZXJQYXJ0KCkpIHsKICAgICAgICAgaWYgKFdpZGdldCogd2lkZ2V0ID0gcmVuZGVyZXItPndpZGdl
dCgpKSB7CiAgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5yZWRpcmVjdERh
dGFUb1BsdWdpbih3aWRnZXQpOworI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCiAg
ICAgICAgICAgICAvLyBJbiBhIHBsdWdpbiBkb2N1bWVudCwgdGhlIG1haW4gcmVzb3VyY2UgaXMg
dGhlIHBsdWdpbi4gSWYgd2UgaGF2ZSBhIG51bGwgd2lkZ2V0LCB0aGF0IG1lYW5zCiAgICAgICAg
ICAgICAvLyB0aGUgbG9hZGluZyBvZiB0aGUgcGx1Z2luIHdhcyBjYW5jZWxsZWQsIHdoaWNoIGdp
dmVzIHVzIGEgbnVsbCBtYWluUmVzb3VyY2VMb2FkZXIoKSwgc28gd2UKICAgICAgICAgICAgIC8v
IG5lZWQgdG8gaGF2ZSB0aGlzIGNhbGwgaW4gYSBudWxsIGNoZWNrIG9mIHRoZSB3aWRnZXQgb3Ig
b2YgbWFpblJlc291cmNlTG9hZGVyKCkuCiAgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmFj
dGl2ZURvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5zZXRTaG91bGRCdWZm
ZXJEYXRhKGZhbHNlKTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQogCkBAIC0xNjksNyArMTcx
LDkgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6Y2FuY2VsTWFudWFsUGx1Z2luTAogICAgIGlmICgh
c2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmICFFTkFC
TEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCiAgICAgZnJhbWUoKS0+bG9hZGVyKCktPmFjdGl2ZURv
Y3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5jYW5jZWwoKTsKKyNlbmRpZgog
ICAgIHNldFNob3VsZExvYWRQbHVnaW5NYW51YWxseShmYWxzZSk7CiB9CiAKSW5kZXg6IFdlYkNv
cmUvbG9hZGVyL0NhY2hlZE1haW5SZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9s
b2FkZXIvQ2FjaGVkTWFpblJlc291cmNlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvbG9h
ZGVyL0NhY2hlZE1haW5SZXNvdXJjZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTI4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNhY2hlZE1haW5S
ZXNvdXJjZS5oIgorCisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorCisjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgImxvYWRlci5oIgorI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCisjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0
Zi9VbnVzZWRQYXJhbS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQ2FjaGVkTWFp
blJlc291cmNlOjpDYWNoZWRNYWluUmVzb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwpCisgICAgOiBD
YWNoZWRSZXNvdXJjZSh1cmwsIE1haW5SZXNvdXJjZSkKKyAgICAsIG1faWRlbnRpZmllcigwKQor
eworLy8gICAgc2V0QWNjZXB0KCIqLyoiKTsKK30KKworQ2FjaGVkTWFpblJlc291cmNlOjp+Q2Fj
aGVkTWFpblJlc291cmNlKCkKK3sKK30KKwordm9pZCBDYWNoZWRNYWluUmVzb3VyY2U6OmxvYWQo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKQoreyAKKyAgICBDYWNo
ZWRSZXNvdXJjZTo6bG9hZChjYWNoZWRSZXNvdXJjZUxvYWRlciwgLyppbmNyZW1lbnRhbCovIHRy
dWUsIFNraXBTZWN1cml0eUNoZWNrLCAvKnNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MqLyB0cnVl
KTsgCit9CisKK3ZvaWQgQ2FjaGVkTWFpblJlc291cmNlOjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKK3sKKyAgICBVTlVTRURfUEFSQU0o
YWxsRGF0YVJlY2VpdmVkKTsKKworICAgIHNpemVfdCBvbGRTaXplID0gZW5jb2RlZFNpemUoKTsK
KyAgICBtX2RhdGEgPSBkYXRhOworCisgICAgc2l6ZV90IG5ld1NpemUgPSBtX2RhdGEgPyBtX2Rh
dGEtPnNpemUoKSA6IDA7CisgICAgc2V0RW5jb2RlZFNpemUobmV3U2l6ZSk7CisgICAgCisgICAg
TE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZE1haW5SZXNvdXJjZSAlcCB1cmw9JXMgZGF0YSBz
aXplPSVkIGFsbERhdGFSZWNlaXZlZD0lZCIsIHRoaXMsIHVybCgpLmxhdGluMSgpLmRhdGEoKSwg
KGludCluZXdTaXplLCBhbGxEYXRhUmVjZWl2ZWQpOworCisgICAgQ2FjaGVkUmVzb3VyY2VDbGll
bnRXYWxrZXIgdyhtX2NsaWVudHMpOworICAgIHdoaWxlIChDYWNoZWRSZXNvdXJjZUNsaWVudCog
YyA9IHcubmV4dCgpKSB7CisgICAgICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9
IHN0YXRpY19jYXN0PERvY3VtZW50TG9hZGVyKj4oYyk7CisgICAgICAgIGlmICghb2xkU2l6ZSkK
KyAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyLT5zZXRSZXNwb25zZShtX3Jlc3BvbnNlKTsKKyAg
ICAgICAgaWYgKG5ld1NpemUgPiBvbGRTaXplKQorICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIt
PnJlY2VpdmVkRGF0YShtX2RhdGEtPmRhdGEoKSArIG9sZFNpemUsIG5ld1NpemUgLSBvbGRTaXpl
KTsKKyAgICAgICAgaWYgKGFsbERhdGFSZWNlaXZlZCkgeworICAgICAgICAgICAgc2V0TG9hZGlu
ZyhmYWxzZSk7CisgICAgICAgICAgICBjLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAgICAg
fQorICAgIH0KK30KKwordm9pZCBDYWNoZWRNYWluUmVzb3VyY2U6OmRpZEFkZENsaWVudChDYWNo
ZWRSZXNvdXJjZUNsaWVudCogYykKK3sKKyAgICBpZiAoaXNMb2FkaW5nKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkTWFpblJlc291cmNlICVwIHVy
bD0lcyBkaWRBZGRDbGllbnQgY2FjaGUgcmVzdG9yZSIsIHRoaXMsIHVybCgpLmxhdGluMSgpLmRh
dGEoKSk7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gc3RhdGljX2Nhc3Q8
RG9jdW1lbnRMb2FkZXIqPihjKTsKKyAgICBkb2N1bWVudExvYWRlci0+c2V0UmVzcG9uc2UobV9y
ZXNwb25zZSk7CisgICAgaWYgKG1fZGF0YSkKKyAgICAgICAgZG9jdW1lbnRMb2FkZXItPnJlY2Vp
dmVkRGF0YShtX2RhdGEtPmRhdGEoKSwgbV9kYXRhLT5zaXplKCkpOworICAgIGMtPm5vdGlmeUZp
bmlzaGVkKHRoaXMpOworfQorCit2b2lkIENhY2hlZE1haW5SZXNvdXJjZTo6ZXJyb3IoQ2FjaGVk
UmVzb3VyY2U6OlN0YXR1cyBzdGF0dXMpCit7CisgICAgc2V0U3RhdHVzKHN0YXR1cyk7CisgICAg
c2V0TG9hZGluZyhmYWxzZSk7CisgCisgICAgLy8gRklYTUU6IHBhc3MgZXJyb3JzCisgICAgY29u
c3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvciA9IGNhY2hlKCktPmxvYWRlcigpLT5jdXJy
ZW50UmVzb3VyY2VFcnJvcigpOworICAgIGlmIChyZXNvdXJjZUVycm9yLmlzTnVsbCgpKQorICAg
ICAgICByZXR1cm47CisgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIgdyhtX2NsaWVudHMp
OworICAgIHdoaWxlIChDYWNoZWRSZXNvdXJjZUNsaWVudCogYyA9IHcubmV4dCgpKSB7CisgICAg
ICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IHN0YXRpY19jYXN0PERvY3VtZW50
TG9hZGVyKj4oYyk7CisgICAgICAgIGlmIChGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBkb2N1
bWVudExvYWRlci0+ZnJhbWVMb2FkZXIoKSkgeworICAgICAgICAgICAgZnJhbWVMb2FkZXItPnJl
Y2VpdmVkTWFpblJlc291cmNlRXJyb3IocmVzb3VyY2VFcnJvciwgdHJ1ZSk7CisgICAgICAgICAg
ICBmcmFtZUxvYWRlci0+Y2hlY2tMb2FkQ29tcGxldGUoKTsKKyAgICAgICAgfQorLyoKKyAgICAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICBwYWdlLT5w
cm9ncmVzcygpLT5jb21wbGV0ZVByb2dyZXNzKGxvYWRlci0+aWRlbnRpZmllcigpKTsKKyAgICAg
ICAgCisgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpCisgICAgICAgICAgICBtX2ZyYW1lLT5s
b2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkRmFpbExvYWRpbmcobG9hZGVyLT5kb2N1bWVu
dExvYWRlcigpLCBsb2FkZXItPmlkZW50aWZpZXIoKSwgZXJyb3IpOworICAgICAgICAKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2Uo
KSkKKyAgICAgICAgICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlkRmFpbExvYWRp
bmcobG9hZGVyLT5pZGVudGlmaWVyKCksIGVycm9yKTsKKyNlbmRpZiovCisgICAgfQorfQorCisj
ZW5kaWYKKwpJbmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkTWFpblJlc291cmNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvQ2FjaGVkTWFpblJlc291cmNlLmgJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRNYWluUmVzb3VyY2UuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2FjaGVkTWFpblJlc291cmNlX2gK
KyNkZWZpbmUgQ2FjaGVkTWFpblJlc291cmNlX2gKKworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9S
RVNPVVJDRSkKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisjaW5jbHVkZSAiVGltZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgQ2FjaGVkTWFpblJlc291cmNl
Q2xpZW50OworCitjbGFzcyBDYWNoZWRNYWluUmVzb3VyY2UgOiBwdWJsaWMgQ2FjaGVkUmVzb3Vy
Y2UgeworcHVibGljOgorICAgIENhY2hlZE1haW5SZXNvdXJjZShjb25zdCBTdHJpbmcmIHVybCk7
CisgICAgdmlydHVhbCB+Q2FjaGVkTWFpblJlc291cmNlKCk7CisgICAgCisgICAgdmlydHVhbCB2
b2lkIGxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKKworICAgIFNoYXJlZEJ1ZmZlciogZGF0
YSgpIGNvbnN0IHsgcmV0dXJuIENhY2hlZFJlc291cmNlOjpkYXRhKCk7IH0KKyAgICAKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50Kik7CisgICAgdmly
dHVhbCB2b2lkIGRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0
YVJlY2VpdmVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OlN0YXR1
cyk7CisgICAgCisgICAgdmlydHVhbCB1bnNpZ25lZCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRJZGVudGlmaWVyKHVuc2lnbmVkIGlkZW50
aWZpZXIpIHsgbV9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsgfQorICAgIAorcHJpdmF0ZToKKyAg
ICAKKyAgICB1bnNpZ25lZCBtX2lkZW50aWZpZXI7CisKK307Cit9CisKKyNlbmRpZgorCisjZW5k
aWYKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHJldmlzaW9uIDcyNzQxKQorKysg
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJB
cmNoaXZlRmFjdG9yeS5oIgogI2luY2x1ZGUgIkFyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24uaCIK
KyNpbmNsdWRlICJDYWNoZWRNYWluUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cu
aCIKQEAgLTQ1LDEyICs0NiwxNyBAQAogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
Ik1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiAjaW5jbHVkZSA8d3RmL0Fz
c2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCkBAIC0x
MDQsMTUgKzExMCwyNCBAQCBGcmFtZUxvYWRlciogRG9jdW1lbnRMb2FkZXI6OmZyYW1lTG9hZGVy
CiAKIERvY3VtZW50TG9hZGVyOjp+RG9jdW1lbnRMb2FkZXIoKQogeworI2lmIEVOQUJMRShDQUNI
RURfTUFJTl9SRVNPVVJDRSkKKyAgICBpZiAobV9jYWNoZWRNYWluUmVzb3VyY2UpCisgICAgICAg
IG1fY2FjaGVkTWFpblJlc291cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7CisjZW5kaWYKICAgICBB
U1NFUlQoIW1fZnJhbWUgfHwgZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSAh
PSB0aGlzIHx8ICFmcmFtZUxvYWRlcigpLT5pc0xvYWRpbmcoKSk7CiB9CiAKIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBEb2N1bWVudExvYWRlcjo6bWFpblJlc291cmNlRGF0YSgpIGNvbnN0CiB7
CisjaWYgIUVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKICAgICBpZiAobV9tYWluUmVzb3Vy
Y2VEYXRhKQogICAgICAgICByZXR1cm4gbV9tYWluUmVzb3VyY2VEYXRhOwogICAgIGlmIChtX21h
aW5SZXNvdXJjZUxvYWRlcikKICAgICAgICAgcmV0dXJuIG1fbWFpblJlc291cmNlTG9hZGVyLT5y
ZXNvdXJjZURhdGEoKTsKKyNlbHNlCisgICAgaWYgKG1fY2FjaGVkTWFpblJlc291cmNlKQorICAg
ICAgICByZXR1cm4gbV9jYWNoZWRNYWluUmVzb3VyY2UtPmRhdGEoKTsKKyNlbmRpZgogICAgIHJl
dHVybiAwOwogfQogCkBAIC0yMzYsOSArMjUxLDE0IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0
b3BMb2FkaW5nKERhdGFiYXMKIAogICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IERvY3Vt
ZW50TG9hZGVyOjpmcmFtZUxvYWRlcigpOwogICAgIAorI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5f
UkVTT1VSQ0UpCiAgICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyKQogICAgICAgICAvLyBTdG9w
IHRoZSBtYWluIHJlc291cmNlIGxvYWRlciBhbmQgbGV0IGl0IHNlbmQgdGhlIGNhbmNlbGxlZCBt
ZXNzYWdlLgogICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+Y2FuY2VsKCk7CisjZWxzZQor
ICAgIGlmIChtX2NhY2hlZE1haW5SZXNvdXJjZSAmJiBtX2NhY2hlZE1haW5SZXNvdXJjZS0+aXNM
b2FkaW5nKCkpCisgICAgICAgIDsgLy8gVGhlIGxvYWRlciBmb3IgdGhlIG1haW4gcmVzb3VyY2Ug
aXMgaW4gdGhlIHN1YnJlc291cmNlIGxvYWRlciBhcnJheSBzbyBzdG9wTG9hZGluZ1N1YnJlc291
cmNlcygpIHdpbGwgY2FuY2VsIGl0IHRvby4KKyNlbmRpZgogICAgIGVsc2UgaWYgKCFtX3N1YnJl
c291cmNlTG9hZGVycy5pc0VtcHR5KCkpCiAgICAgICAgIC8vIFRoZSBtYWluIHJlc291cmNlIGxv
YWRlciBhbHJlYWR5IGZpbmlzaGVkIGxvYWRpbmcuIFNldCB0aGUgY2FuY2VsbGVkIGVycm9yIG9u
IHRoZSAKICAgICAgICAgLy8gZG9jdW1lbnQgYW5kIGxldCB0aGUgc3VicmVzb3VyY2VMb2FkZXJz
IHNlbmQgaW5kaXZpZHVhbCBjYW5jZWxsZWQgbWVzc2FnZXMgYmVsb3cuCkBAIC0yNTAsNiArMjcw
LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcoRGF0YWJhcwogICAgIAogICAg
IHN0b3BMb2FkaW5nU3VicmVzb3VyY2VzKCk7CiAgICAgc3RvcExvYWRpbmdQbHVnSW5zKCk7Cisg
ICAgdXBkYXRlTG9hZGluZygpOwogICAgIAogICAgIG1faXNTdG9wcGluZyA9IGZhbHNlOwogfQpA
QCAtNDAxLDE4ICs0MjIsMTkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cHJlcGFyZUZvckxvYWRT
dGFydAogICAgIGZyYW1lTG9hZGVyKCktPnByZXBhcmVGb3JMb2FkU3RhcnQoKTsKIH0KIAotdm9p
ZCBEb2N1bWVudExvYWRlcjo6c2V0UHJpbWFyeUxvYWRDb21wbGV0ZShib29sIGZsYWcpCit2b2lk
IERvY3VtZW50TG9hZGVyOjpzZXRQcmltYXJ5TG9hZENvbXBsZXRlKGJvb2wgY29tcGxldGUpCiB7
Ci0gICAgbV9wcmltYXJ5TG9hZENvbXBsZXRlID0gZmxhZzsKLSAgICBpZiAoZmxhZykgewotICAg
ICAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIpIHsKLSAgICAgICAgICAgIG1fbWFpblJlc291
cmNlRGF0YSA9IG1fbWFpblJlc291cmNlTG9hZGVyLT5yZXNvdXJjZURhdGEoKTsKLSAgICAgICAg
ICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0
aGlzID09IGZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkpCi0gICAgICAgICAg
ICB1cGRhdGVMb2FkaW5nKCk7CisgICAgbV9wcmltYXJ5TG9hZENvbXBsZXRlID0gY29tcGxldGU7
CisgICAgaWYgKCFtX3ByaW1hcnlMb2FkQ29tcGxldGUpCisgICAgICAgIHJldHVybjsKKyNpZiAh
RU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRl
cikgeworICAgICAgICBtX21haW5SZXNvdXJjZURhdGEgPSBtX21haW5SZXNvdXJjZUxvYWRlci0+
cmVzb3VyY2VEYXRhKCk7CisgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0gMDsKICAgICB9
CisjZW5kaWYKKyAgICBpZiAodGhpcyA9PSBmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExv
YWRlcigpKQorICAgICAgICB1cGRhdGVMb2FkaW5nKCk7CiB9CiAKIGJvb2wgRG9jdW1lbnRMb2Fk
ZXI6OmlzTG9hZGluZ0luQVBJU2Vuc2UoKSBjb25zdApAQCAtNjk1LDggKzcxNywxMCBAQCBjb25z
dCBLVVJMJiBEb2N1bWVudExvYWRlcjo6dW5yZWFjaGFibGVVCiAKIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7CisjaWYgIUVOQUJMRShDQUNIRURf
TUFJTl9SRVNPVVJDRSkKICAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1f
bWFpblJlc291cmNlTG9hZGVyLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CisjZW5kaWYKICAg
ICBzZXRBbGxEZWZlcnNMb2FkaW5nKG1fc3VicmVzb3VyY2VMb2FkZXJzLCBkZWZlcnMpOwogICAg
IHNldEFsbERlZmVyc0xvYWRpbmcobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBkZWZlcnMpOwogICAg
IGlmICghZGVmZXJzKQpAQCAtNzQxLDcgKzc2NSwxMSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpy
ZW1vdmVQbHVnSW5TdHJlYW1MCiAKIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ01haW5S
ZXNvdXJjZSgpIGNvbnN0CiB7CisjaWYgIUVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKICAg
ICByZXR1cm4gISFtX21haW5SZXNvdXJjZUxvYWRlcjsKKyNlbHNlCisgICAgcmV0dXJuIG1fY2Fj
aGVkTWFpblJlc291cmNlICYmIG1fY2FjaGVkTWFpblJlc291cmNlLT5pc0xvYWRpbmcoKTsKKyNl
bmRpZgogfQogCiBib29sIERvY3VtZW50TG9hZGVyOjppc0xvYWRpbmdTdWJyZXNvdXJjZXMoKSBj
b25zdApAQCAtNzU2LDE5ICs3ODQsMjQgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5n
UGx1Z0lucygpIAogCiBib29sIERvY3VtZW50TG9hZGVyOjppc0xvYWRpbmdNdWx0aXBhcnRDb250
ZW50KCkgY29uc3QKIHsKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgcmV0
dXJuIGZhbHNlOworI2Vsc2UKICAgICByZXR1cm4gbV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9t
YWluUmVzb3VyY2VMb2FkZXItPmlzTG9hZGluZ011bHRpcGFydENvbnRlbnQoKTsKKyNlbmRpZgog
fQogCiBib29sIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2UodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyKQogeworI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0Up
CiAgICAgQVNTRVJUKCFtX21haW5SZXNvdXJjZUxvYWRlcik7CiAgICAgbV9tYWluUmVzb3VyY2VM
b2FkZXIgPSBNYWluUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShtX2ZyYW1lKTsKICAgICBtX21haW5S
ZXNvdXJjZUxvYWRlci0+c2V0SWRlbnRpZmllcihpZGVudGlmaWVyKTsKLQorICAgIAogICAgIC8v
IEZJWE1FOiBJcyB0aGVyZSBhbnkgd2F5IHRoZSBleHRyYSBmaWVsZHMgY291bGQgaGF2ZSBub3Qg
YmVlbiBhZGRlZCBieSBub3c/Ci0gICAgLy8gSWYgbm90LCBpdCB3b3VsZCBiZSBncmVhdCB0byBy
ZW1vdmUgdGhpcyBsaW5lIG9mIGNvZGUuCisgICAgLy8gSWYgbm90LCBpdCB3b3VsZCBiZSBncmVh
dCB0byByZW1vdmUgdGhpcyBsaW5lIG9mIAogICAgIGZyYW1lTG9hZGVyKCktPmFkZEV4dHJhRmll
bGRzVG9NYWluUmVzb3VyY2VSZXF1ZXN0KG1fcmVxdWVzdCk7Ci0KKyAgICAKICAgICBpZiAoIW1f
bWFpblJlc291cmNlTG9hZGVyLT5sb2FkKG1fcmVxdWVzdCwgbV9zdWJzdGl0dXRlRGF0YSkpIHsK
ICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgc2hvdWxkIHJlYWxseSBiZSBjYXVnaHQsIHdlIHNo
b3VsZCBqdXN0IEFTU0VSVCB0aGlzIGRvZXNuJ3QgaGFwcGVuOwogICAgICAgICAvLyBzaG91bGQg
aXQgYmUgY2F1Z2h0IGJ5IG90aGVyIHBhcnRzIG9mIFdlYktpdCBvciBvdGhlciBwYXJ0cyBvZiB0
aGUgYXBwPwpAQCAtNzc2LDEzICs4MDksNDEgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6c3RhcnRM
b2FkaW5nTWFpblJlcwogICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlciA9IDA7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVy
KTsKKworICAgIEFTU0VSVCghbV9jYWNoZWRNYWluUmVzb3VyY2UpOworICAgIAorICAgIC8vIFdo
ZW4gdGhlIGRvY3VtZW50IGlzIGNyZWF0ZWQsIHRoZSBvd25lcnNoaXAgb2YgdGhlIENhY2hlZFJl
c291cmNlTG9hZGVyIHdpbGwgbW92ZSB0byB0aGUgRG9jdW1lbnQKKyAgICBtX2NhY2hlZFJlc291
cmNlTG9hZGVyID0gbmV3IENhY2hlZFJlc291cmNlTG9hZGVyKHRoaXMpOworICAgIAorICAgIG1f
Y2FjaGVkTWFpblJlc291cmNlID0gbV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdE1haW5S
ZXNvdXJjZShtX3JlcXVlc3QudXJsKCkpOworICAgIG1fY2FjaGVkTWFpblJlc291cmNlLT5zZXRJ
ZGVudGlmaWVyKGlkZW50aWZpZXIpOworICAgIAorICAgIC8vIEZJWE1FOiBJcyB0aGVyZSBhbnkg
d2F5IHRoZSBleHRyYSBmaWVsZHMgY291bGQgaGF2ZSBub3QgYmVlbiBhZGRlZCBieSBub3c/Cisg
ICAgLy8gSWYgbm90LCBpdCB3b3VsZCBiZSBncmVhdCB0byByZW1vdmUgdGhpcyBsaW5lIG9mIGNv
ZGUuCisgICAgLy8gICAgZnJhbWVMb2FkZXIoKS0+YWRkRXh0cmFGaWVsZHNUb01haW5SZXNvdXJj
ZVJlcXVlc3QobV9yZXF1ZXN0KTsKKyAgICAKKyAgICAvL2lmICghbV9tYWluUmVzb3VyY2VMb2Fk
ZXItPmxvYWQobV9yZXF1ZXN0LCBtX3N1YnN0aXR1dGVEYXRhKSkgCisgICAgaWYgKCFtX2NhY2hl
ZE1haW5SZXNvdXJjZSkgeworICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyBzaG91bGQgcmVhbGx5
IGJlIGNhdWdodCwgd2Ugc2hvdWxkIGp1c3QgQVNTRVJUIHRoaXMgZG9lc24ndCBoYXBwZW47Cisg
ICAgICAgIC8vIHNob3VsZCBpdCBiZSBjYXVnaHQgYnkgb3RoZXIgcGFydHMgb2YgV2ViS2l0IG9y
IG90aGVyIHBhcnRzIG9mIHRoZSBhcHA/CisgICAgICAgIExPR19FUlJPUigiY291bGQgbm90IGNy
ZWF0ZSBXZWJSZXNvdXJjZUhhbmRsZSBmb3IgVVJMICVzIC0tIHNob3VsZCBiZSBjYXVnaHQgYnkg
cG9saWN5IGhhbmRsZXIgbGV2ZWwiLCBtX3JlcXVlc3QudXJsKCkuc3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG1fY2FjaGVkTWFpblJl
c291cmNlLT5hZGRDbGllbnQodGhpcyk7ICAgIAorI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6Y2FuY2VsTWFpblJlc291cmNlTG9hZChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0Up
CisgICAgVU5VU0VEX1BBUkFNKGVycm9yKTsKKyNlbHNlCiAgICAgbV9tYWluUmVzb3VyY2VMb2Fk
ZXItPmNhbmNlbChlcnJvcik7CisjZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6c3Vi
cmVzb3VyY2VMb2FkZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KFJlc291cmNlTG9hZGVyKiBsb2Fk
ZXIpCkBAIC03OTYsNiArODU3LDkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3VicmVzb3VyY2VM
b2FkZXJGaQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZXNG
cm9tUGFnZShQYWdlKiBvbGRQYWdlKQogeworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJD
RSkKKyAgICBVTlVTRURfUEFSQU0ob2xkUGFnZSk7CisjZWxzZQogICAgIEFTU0VSVChvbGRQYWdl
ICE9IG1fZnJhbWUtPnBhZ2UoKSk7CiAKICAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gZnJhbWVM
b2FkZXIoKTsKQEAgLTgxNSw2ICs4NzksNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjp0cmFuc2Zl
ckxvYWRpbmdSZXNvCiAgICAgICAgICAgICAgICAgKCppdCktPmlkZW50aWZpZXIoKSwgdGhpcywg
cmVxdWVzdCwgb2xkUGFnZSk7CiAgICAgICAgIH0KICAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBE
b2N1bWVudExvYWRlcjo6aWNvbkxvYWREZWNpc2lvbkF2YWlsYWJsZSgpCkBAIC04MjIsNSArODg3
LDI2IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6Omljb25Mb2FkRGVjaXNpb25BdmEKICAgICBpZiAo
bV9mcmFtZSkKICAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmljb25Mb2FkRGVjaXNpb25BdmFp
bGFibGUoKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCit2b2lk
IERvY3VtZW50TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Up
Cit7CisgICAgQVNTRVJUKHJlc291cmNlID09IG1fY2FjaGVkTWFpblJlc291cmNlKTsKKworICAg
IGRvdWJsZSB0aW1lID0gY3VycmVudFRpbWUoKTsKKyAgICB0aW1pbmcoKS0+cmVzcG9uc2VFbmQg
PSB0aW1lOworICAgIAorICAgIGlmIChtX2ZyYW1lKSB7CisgICAgICAgIGZyYW1lTG9hZGVyKCkt
PmZpbmlzaGVkTG9hZGluZygpOworICAgICAgICAKKyAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBt
X2ZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICBwYWdlLT5wcm9ncmVzcygpLT5jb21wbGV0ZVBy
b2dyZXNzKG1fY2FjaGVkTWFpblJlc291cmNlLT5pZGVudGlmaWVyKCkpOworICAgICAgICBmcmFt
ZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaXNwYXRjaERpZEZpbmlzaExvYWRpbmcodGhpcywgbV9j
YWNoZWRNYWluUmVzb3VyY2UtPmlkZW50aWZpZXIoKSwgdGltZSk7CisgICAgfQorI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgYXBwbGljYXRpb25DYWNoZUhvc3QoKS0+
ZmluaXNoZWRMb2FkaW5nTWFpblJlc291cmNlKCk7CisjZW5kaWYKK30KKyNlbmRpZgogCiB9Cklu
ZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgJKHJldmlzaW9uIDcyNzQxKQorKysgV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOSBAQAog
I2lmbmRlZiBEb2N1bWVudExvYWRlcl9oCiAjZGVmaW5lIERvY3VtZW50TG9hZGVyX2gKIAorI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VI
YW5kbGUuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZFRpbWluZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb24uaCIKICNpbmNs
dWRlICJSZXNvdXJjZUVycm9yLmgiCkBAIC00NSw2ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBBcmNoaXZlUmVzb3VyY2VDb2xsZWN0aW9uOwogICAgIGNsYXNzIEZyYW1l
OwogICAgIGNsYXNzIEZyYW1lTG9hZGVyOworICAgIGNsYXNzIENhY2hlZE1haW5SZXNvdXJjZTsK
ICAgICBjbGFzcyBNYWluUmVzb3VyY2VMb2FkZXI7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFz
cyBSZXNvdXJjZUxvYWRlcjsKQEAgLTU0LDggKzU4LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8UmVzb3VyY2VMb2FkZXI+ID4gUmVzb3VyY2VM
b2FkZXJTZXQ7CiAgICAgdHlwZWRlZiBWZWN0b3I8UmVzb3VyY2VSZXNwb25zZT4gUmVzcG9uc2VW
ZWN0b3I7Ci0KKyAgICAKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgY2xh
c3MgRG9jdW1lbnRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxEb2N1bWVudExvYWRlcj4sIHB1
YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisjZWxzZQogICAgIGNsYXNzIERvY3VtZW50TG9h
ZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RG9jdW1lbnRMb2FkZXI+IHsKKyNlbmRpZgogICAgIHB1
YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRh
KQogICAgICAgICB7CkBAIC03MCw3ICs3OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaEZyb21GcmFtZSgpOwogCiAgICAgICAgIEZyYW1lTG9hZGVy
KiBmcmFtZUxvYWRlcigpIGNvbnN0OworI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0Up
CiAgICAgICAgIE1haW5SZXNvdXJjZUxvYWRlciogbWFpblJlc291cmNlTG9hZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9tYWluUmVzb3VyY2VMb2FkZXIuZ2V0KCk7IH0KKyNlbmRpZgogICAgICAgICBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbWFpblJlc291cmNlRGF0YSgpIGNvbnN0OwogCiAgICAg
ICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0KCkgY29uc3Q7CkBAIC0y
MjEsNyArMjMxLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQogICAgICAgICBBcHBsaWNhdGlvbkNhY2hlSG9zdCogYXBwbGljYXRp
b25DYWNoZUhvc3QoKSBjb25zdCB7IHJldHVybiBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0LmdldCgp
OyB9CiAjZW5kaWYKLQorICAgICAgCisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQor
ICAgICAgICBQYXNzT3duUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiByZWxlYXNlQ2FjaGVkUmVz
b3VyY2VMb2FkZXIoKSB7IHJldHVybiBtX2NhY2hlZFJlc291cmNlTG9hZGVyLnJlbGVhc2UoKTsg
fQorI2VuZGlmCisgICAgICAgIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgRG9jdW1lbnRMb2Fk
ZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKIApAQCAt
MjM3LDE1ICsyNTEsMjggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgZGVs
aXZlclN1YnN0aXR1dGVSZXNvdXJjZXNBZnRlckRlbGF5KCk7CiAgICAgICAgIHZvaWQgc3Vic3Rp
dHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50TG9hZGVyPiopOwor
ICAgICAgICAKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgICAgIC8vIENh
Y2hlZFJlc291cmNlQ2xpZW50CisgICAgICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UqKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIAogICAgICAgICBGcmFtZSogbV9mcmFt
ZTsKIAorI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICAgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkTWFpblJlc291cmNlPiBtX2NhY2hlZE1haW5SZXNvdXJjZTsKKyNl
bHNlCiAgICAgICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IG1fbWFpblJlc291cmNlTG9h
ZGVyOworI2VuZGlmCisgICAgICAgIE93blB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4gbV9jYWNo
ZWRSZXNvdXJjZUxvYWRlcjsKKwogICAgICAgICBSZXNvdXJjZUxvYWRlclNldCBtX3N1YnJlc291
cmNlTG9hZGVyczsKICAgICAgICAgUmVzb3VyY2VMb2FkZXJTZXQgbV9tdWx0aXBhcnRTdWJyZXNv
dXJjZUxvYWRlcnM7CiAgICAgICAgIFJlc291cmNlTG9hZGVyU2V0IG1fcGx1Z0luU3RyZWFtTG9h
ZGVyczsKIAorI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCiAgICAgICAgIFJlZlB0
cjxTaGFyZWRCdWZmZXI+IG1fbWFpblJlc291cmNlRGF0YTsKKyNlbmRpZgogCiAgICAgICAgIC8v
IEEgcmVmZXJlbmNlIHRvIGFjdHVhbCByZXF1ZXN0IHVzZWQgdG8gY3JlYXRlIHRoZSBkYXRhIHNv
dXJjZS4KICAgICAgICAgLy8gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGJ5IHRoZSByZXNvdXJj
ZUxvYWREZWxlZ2F0ZSdzCkluZGV4OiBXZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHAJKHJldmlzaW9uIDcyNzQxKQorKysgV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsOSArODEsMTEgQEAgUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpSZXNvdXJjZUxvYWRTY2hlZAogI2VuZGlmCiB9CiAKLVBhc3NSZWZQdHI8U3Vi
cmVzb3VyY2VMb2FkZXI+IFJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVTdWJyZXNvdXJj
ZUxvYWQoRnJhbWUqIGZyYW1lLCBTdWJyZXNvdXJjZUxvYWRlckNsaWVudCogY2xpZW50LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFByaW9yaXR5IHByaW9yaXR5LCBTZWN1cml0eUNo
ZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2ssIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYpCitQYXNzUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBS
ZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKEZyYW1lKiBmcmFt
ZSwgU3VicmVzb3VyY2VMb2FkZXJDbGllbnQqIGNsaWVudCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBQcmlvcml0eSBwcmlvcml0eSwgU2VjdXJpdHlDaGVja1BvbGljeSBzZWN1cml0
eUNoZWNrLCBib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmLCB1bnNpZ25lZCBpZGVudGlmaWVyKQogewogICAgIFBhc3NSZWZQdHI8U3VicmVzb3Vy
Y2VMb2FkZXI+IGxvYWRlciA9IFN1YnJlc291cmNlTG9hZGVyOjpjcmVhdGUoZnJhbWUsIGNsaWVu
dCwgcmVxdWVzdCwgc2VjdXJpdHlDaGVjaywgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgc2hv
dWxkQ29udGVudFNuaWZmKTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgbG9hZGVyLT5z
ZXRJZGVudGlmaWVyKGlkZW50aWZpZXIpOwogICAgIGlmIChsb2FkZXIpCiAgICAgICAgIHNjaGVk
dWxlTG9hZChsb2FkZXIuZ2V0KCksIHByaW9yaXR5KTsKICAgICByZXR1cm4gbG9hZGVyOwpJbmRl
eDogV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgJKHJldmlzaW9uIDcyNzQxKQor
KysgV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ3LDggKzQ3LDggQEAgY2xhc3MgUmVzb3VyY2VMb2FkU2NoZWR1bGVyIDogcHVibGljIE5v
bgogcHVibGljOgogICAgIGZyaWVuZCBSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9h
ZFNjaGVkdWxlcigpOwogCi0gICAgZW51bSBQcmlvcml0eSB7IFZlcnlMb3csIExvdywgTWVkaXVt
LCBIaWdoLCBMb3dlc3RQcmlvcml0eSA9IFZlcnlMb3csIEhpZ2hlc3RQcmlvcml0eSA9IEhpZ2gg
fTsKLSAgICBQYXNzUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBzY2hlZHVsZVN1YnJlc291cmNl
TG9hZChGcmFtZSosIFN1YnJlc291cmNlTG9hZGVyQ2xpZW50KiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUHJpb3JpdHkgPSBMb3csIFNlY3VyaXR5Q2hlY2tQb2xpY3kgPSBEb1NlY3VyaXR5Q2hl
Y2ssIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcyA9IHRydWUsIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmID0gdHJ1ZSk7CisgICAgZW51bSBQcmlvcml0eSB7IFZlcnlMb3csIExvdywgTWVk
aXVtLCBIaWdoLCBWZXJ5SGlnaCwgTG93ZXN0UHJpb3JpdHkgPSBWZXJ5TG93LCBIaWdoZXN0UHJp
b3JpdHkgPSBWZXJ5SGlnaCB9OworICAgIFBhc3NSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IHNj
aGVkdWxlU3VicmVzb3VyY2VMb2FkKEZyYW1lKiwgU3VicmVzb3VyY2VMb2FkZXJDbGllbnQqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQcmlvcml0eSA9IExvdywgU2VjdXJpdHlDaGVja1BvbGlj
eSA9IERvU2VjdXJpdHlDaGVjaywgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzID0gdHJ1
ZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYgPSB0cnVlLCB1bnNpZ25lZCBpZGVudGlmaWVyID0g
MCk7CiAgICAgUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4gc2NoZWR1bGVQ
bHVnaW5TdHJlYW1Mb2FkKEZyYW1lKiwgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXJDbGllbnQq
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGFkZE1haW5SZXNvdXJjZUxvYWQo
UmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIHJlbW92ZShSZXNvdXJjZUxvYWRlciopOwpJbmRl
eDogV2ViQ29yZS9sb2FkZXIvbG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRl
ci9sb2FkZXIuY3BwCShyZXZpc2lvbiA3Mjc0MykKKysrIFdlYkNvcmUvbG9hZGVyL2xvYWRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDEwIEBAIExvYWRlcjo6fkxvYWRlcigpCiBz
dGF0aWMgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFy
Z2V0VHlwZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkg
eworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpNYWluUmVzb3VyY2U6CisgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdl
dElzTWFpbkZyYW1lOworI2VuZGlmCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVT
aGVldDoKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHls
ZVNoZWV0OgpAQCAtNzMsNiArNzcsMTAgQEAgc3RhdGljIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0
VHlwZSBjYWNoZQogc3RhdGljIFJlc291cmNlTG9hZFNjaGVkdWxlcjo6UHJpb3JpdHkgZGV0ZXJt
aW5lUHJpb3JpdHkoY29uc3QgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewogICAgIHN3aXRj
aCAocmVzb3VyY2UtPnR5cGUoKSkgeworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkK
KyAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgorICAgICAgICAgICAg
cmV0dXJuIFJlc291cmNlTG9hZFNjaGVkdWxlcjo6VmVyeUhpZ2g7CisjZW5kaWYKICAgICAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKICNpZiBFTkFCTEUoWFNMVCkKICAg
ICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKQEAgLTEyOCw4ICsxMzYs
OCBAQCB2b2lkIExvYWRlcjo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogCiAgICAgICAgIHJl
c291cmNlUmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoIlgtUHVycG9zZSIsICJwcmVmZXRjaCIp
OwogI2VuZGlmCiAKLSAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9IHJlc291
cmNlTG9hZFNjaGVkdWxlcigpLT5zY2hlZHVsZVN1YnJlc291cmNlTG9hZChjYWNoZWRSZXNvdXJj
ZUxvYWRlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSwKLSAgICAgICAgdGhpcywgcmVzb3VyY2VSZXF1
ZXN0LCBkZXRlcm1pbmVQcmlvcml0eShyZXNvdXJjZSksIHJlcXVlc3QtPnNob3VsZERvU2VjdXJp
dHlDaGVjaygpLCByZXF1ZXN0LT5zZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkpOworICAgIFJl
ZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gbG9hZGVyID0gcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkt
PnNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLT5mcmFtZSgpLAor
ICAgICAgICB0aGlzLCByZXNvdXJjZVJlcXVlc3QsIGRldGVybWluZVByaW9yaXR5KHJlc291cmNl
KSwgcmVxdWVzdC0+c2hvdWxkRG9TZWN1cml0eUNoZWNrKCksIHJlcXVlc3QtPnNlbmRSZXNvdXJj
ZUxvYWRDYWxsYmFja3MoKSwgcmVzb3VyY2UtPmlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGxvYWRl
ciAmJiAhbG9hZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpKQogICAgICAgICBtX3JlcXVlc3Rz
TG9hZGluZy5hZGQobG9hZGVyLnJlbGVhc2UoKSwgcmVxdWVzdCk7CiAgICAgZWxzZSB7CkBAIC0y
MDcsOSArMjE1LDExIEBAIHZvaWQgTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFN1YnJlc291cmMK
ICAgICBjYWNoZWRSZXNvdXJjZUxvYWRlci0+Y2hlY2tGb3JQZW5kaW5nUHJlbG9hZHMoKTsKIH0K
IAotdm9pZCBMb2FkZXI6OmRpZEZhaWwoU3VicmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3Qg
UmVzb3VyY2VFcnJvciYpCit2b2lkIExvYWRlcjo6ZGlkRmFpbChTdWJyZXNvdXJjZUxvYWRlciog
bG9hZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogeworICAgIG1fY3Vy
cmVudFJlc291cmNlRXJyb3IgPSByZXNvdXJjZUVycm9yOwogICAgIGRpZEZhaWwobG9hZGVyKTsK
KyAgICBtX2N1cnJlbnRSZXNvdXJjZUVycm9yID0gUmVzb3VyY2VFcnJvcigpOwogfQogCiB2b2lk
IExvYWRlcjo6ZGlkRmFpbChTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBib29sIGNhbmNlbGxl
ZCkKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2xvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
bG9hZGVyL2xvYWRlci5oCShyZXZpc2lvbiA3Mjc0MSkKKysrIFdlYkNvcmUvbG9hZGVyL2xvYWRl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAjZGVmaW5lIGxvYWRlcl9oCiAK
ICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5o
IgogI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VM
b2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDEsNiArNDIsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBsb2FkKENhY2hlZFJlc291cmNl
TG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2UqLCBib29sIGluY3JlbWVudGFsID0gdHJ1ZSwgU2VjdXJp
dHlDaGVja1BvbGljeSA9IERvU2VjdXJpdHlDaGVjaywgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzID0gdHJ1ZSk7CiAgICAgICAgIHZvaWQgY2FuY2VsUmVxdWVzdHMoQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIqKTsKKyAgICAgICAgCisgICAgICAgIGNvbnN0IFJlc291cmNlRXJyb3ImIGN1cnJl
bnRSZXNvdXJjZUVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UmVzb3VyY2VFcnJvcjsg
fQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChT
dWJyZXNvdXJjZUxvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKQEAgLTUzLDYgKzU2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAKICAg
ICAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4sIFJlcXVlc3Qq
PiBSZXF1ZXN0TWFwOwogICAgICAgICBSZXF1ZXN0TWFwIG1fcmVxdWVzdHNMb2FkaW5nOworICAg
ICAgICAKKyAgICAgICAgUmVzb3VyY2VFcnJvciBtX2N1cnJlbnRSZXNvdXJjZUVycm9yOwogICAg
IH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVI
b3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlSG9zdC5jcHAJKHJldmlzaW9uIDcyNzQxKQorKysgV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsOCArMTA0
LDEwIEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZEZhbGwKICAgICAgICAg
aWYgKGlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKSkgewogICAgICAgICAgICAgbV9tYWluUmVz
b3VyY2VBcHBsaWNhdGlvbkNhY2hlID0gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpmYWxsYmFja0Nh
Y2hlRm9yTWFpblJlcXVlc3QocmVxdWVzdCwgZG9jdW1lbnRMb2FkZXIoKSk7CiAKKyNpZiAhRU5B
QkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZh
bGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWlu
UmVzb3VyY2VMb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQog
ICAgIHJldHVybiBmYWxzZTsKQEAgLTExOCw4ICsxMjAsMTAgQEAgYm9vbCBBcHBsaWNhdGlvbkNh
Y2hlSG9zdDo6bWF5YmVMb2FkRmFsbAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZCgpKSB7CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0
LCBtX2RvY3VtZW50TG9hZGVyKTsKIAorI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0Up
CiAgICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNh
dGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBtX21haW5S
ZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworI2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDog
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCShyZXZpc2lvbiA3Mjc0MykKKysrIFdl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDYgKzU1LDkgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2UgOiBwdWJsaWMgTm9uY29weWFibAogICAg
IAogcHVibGljOgogICAgIGVudW0gVHlwZSB7CisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09V
UkNFKQorICAgICAgICBNYWluUmVzb3VyY2UsCisjZW5kaWYKICAgICAgICAgSW1hZ2VSZXNvdXJj
ZSwKICAgICAgICAgQ1NTU3R5bGVTaGVldCwKICAgICAgICAgU2NyaXB0LApAQCAtODcsNiArOTAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0
dXMpIHsgfQogCiAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9yZUhUVFBTdGF0dXNDb2RlRXJy
b3JzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKICAgICBjb25zdCBTdHJpbmcgJnVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8VHlwZT4obV90eXBlKTsgfQpJbmRleDogV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gNzI3NDEpCisrKyBXZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDExICszMCwxMyBAQAogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRl
ICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJDYWNo
ZWRNYWluUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJD
YWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKQEAgLTQ5LDEwICs1MSwyNSBAQAogI2RlZmluZSBQ
UkVMT0FEX0RFQlVHIDAKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorI2lmIEVOQUJMRShD
QUNIRURfTUFJTl9SRVNPVVJDRSkKK0NhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcihEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpCisgICAgOiBtX2NhY2hlKGNh
Y2hlKCkpCisgICAgLCBtX2RvY3VtZW50KDApCisgICAgLCBtX2RvY3VtZW50TG9hZGVyKGRvY3Vt
ZW50TG9hZGVyKQorICAgICwgbV9yZXF1ZXN0Q291bnQoMCkKKyAgICAsIG1fYXV0b0xvYWRJbWFn
ZXModHJ1ZSkKKyAgICAsIG1fbG9hZEluUHJvZ3Jlc3MoZmFsc2UpCisgICAgLCBtX2FsbG93U3Rh
bGVSZXNvdXJjZXMoZmFsc2UpCit7CisgICAgbV9jYWNoZS0+YWRkQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIodGhpcyk7Cit9CisjZW5kaWYKIAogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291
cmNlTG9hZGVyKERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IG1fY2FjaGUoY2FjaGUoKSkKICAg
ICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2RvY3VtZW50TG9hZGVyKDApCiAgICAg
LCBtX3JlcXVlc3RDb3VudCgwKQogICAgICwgbV9hdXRvTG9hZEltYWdlcyh0cnVlKQogICAgICwg
bV9sb2FkSW5Qcm9ncmVzcyhmYWxzZSkKQEAgLTc1LDEwICs5MiwyMSBAQCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6fkNhY2hlZFJlc291cmNlTG9hCiAgICAgLy8gTWFrZSBzdXJlIG5vIHJlcXVlc3Rz
IHN0aWxsIHBvaW50IHRvIHRoaXMgQ2FjaGVkUmVzb3VyY2VMb2FkZXIKICAgICBBU1NFUlQobV9y
ZXF1ZXN0Q291bnQgPT0gMCk7CiB9CisgICAgCisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09V
UkNFKQordm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bW92ZVRvRG9jdW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIEFTU0VSVChtX2RvY3VtZW50TG9hZGVyKTsKKyAgICBBU1NFUlQo
IW1fZG9jdW1lbnQpOworICAgIEFTU0VSVChkb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRv
Y3VtZW50TG9hZGVyKCkgPT0gbV9kb2N1bWVudExvYWRlcik7CisgICAgbV9kb2N1bWVudCA9IGRv
Y3VtZW50OworICAgIG1fZG9jdW1lbnRMb2FkZXIgPSAwOworfQorI2VuZGlmCiAKIEZyYW1lKiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6ZnJhbWUoKSBjb25zdAogewotICAgIHJldHVybiBtX2RvY3Vt
ZW50LT5mcmFtZSgpOworICAgIHJldHVybiBtX2RvY3VtZW50ID8gbV9kb2N1bWVudC0+ZnJhbWUo
KSA6IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCk7CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmNoZWNrRm9yUmVsb2FkKGNvbnN0IEtVUkwmIGZ1bGxVUkwpCkBAIC05NSw2ICsxMjMs
MTIgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JSZWxvYQogICAgIENhY2hl
ZFJlc291cmNlKiBleGlzdGluZyA9IGNhY2hlKCktPnJlc291cmNlRm9yVVJMKGZ1bGxVUkwuc3Ry
aW5nKCkpOwogICAgIGlmICghZXhpc3RpbmcgfHwgZXhpc3RpbmctPmlzUHJlbG9hZGVkKCkpCiAg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBGSVhNRTogTWFpbiByZXNvdXJjZXMgY2FuJ3Qg
eWV0IHNhZmVseSBiZSBsb2FkZWQgd2l0aCBtdWx0aXBsZSBjbGllbnRzIChEb2N1bWVudExvYWRl
ciBsZXZlbCBjb2RlIGFzc3VtZXMgYSBSZXNvdXJjZUxvYWRlciBwZXIgbWFpbiByZXNvdXJjZSku
CisgICAgaWYgKGV4aXN0aW5nICYmIGV4aXN0aW5nLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6
Ok1haW5SZXNvdXJjZSAmJiBleGlzdGluZy0+aXNMb2FkaW5nKCkpIHsKKyAgICAgICAgY2FjaGUo
KS0+cmVtb3ZlKGV4aXN0aW5nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHN3aXRj
aCAoY2FjaGVQb2xpY3koKSkgewogICAgIGNhc2UgQ2FjaGVQb2xpY3lWZXJpZnk6CkBAIC0xMTks
NiArMTUzLDE1IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrRm9yUmVsb2EKIAog
ICAgIG1fcmVsb2FkZWRVUkxzLmFkZChmdWxsVVJMLnN0cmluZygpKTsKIH0KKyAgICAKKyNpZiBF
TkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCitDYWNoZWRNYWluUmVzb3VyY2UqIENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0TWFpblJlc291cmNlKGNvbnN0IFN0cmluZyYgdXJsKQorewor
ICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZTo6TWFpblJlc291cmNlLCB1cmwsIFN0cmluZygpKTsKKyAgICBBU1NFUlQoIXJlc291cmNl
IHx8IHJlc291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZE1haW5SZXNvdXJjZSo+KHJlc291cmNlKTsKK30K
KyNlbmRpZgogCiBDYWNoZWRJbWFnZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFn
ZShjb25zdCBTdHJpbmcmIHVybCkKIHsKQEAgLTE4Myw2ICsyMjYsOSBAQCBib29sIENhY2hlZFJl
c291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhCiAgICAgLy8gdHlwZXMgb2YgcmVzb3VyY2VzLCBs
aWtlIEltYWdlcywgU2NyaXB0cywgYW5kIENTUywgY2FuIGJlIGxvYWRlZCBmcm9tCiAgICAgLy8g
YW55IFVSTC4KICAgICBzd2l0Y2ggKHR5cGUpIHsKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVT
T1VSQ0UpCisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgorI2VuZGlmCiAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpDU1NTdHlsZVNoZWV0OgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoK
QEAgLTIxNCw2ICsyNjAsMTAgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVz
dChDYQogICAgIC8vICAgICAgIHVwZGF0ZSBhbnkgc2VjdXJpdHkgaW5kaWNhdG9ycy4KICAgICAv
LyAKICAgICBzd2l0Y2ggKHR5cGUpIHsKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0Up
CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgorICAgICAgICBicmVhazsK
KyNlbmRpZgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKICNpZiBFTkFCTEUoWFNM
VCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgpAQCAtMjQ3LDcgKzI5
Nyw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2EKIAogQ2FjaGVk
UmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCwgYm9vbCBpc1ByZWxvYWQpCiB7Ci0gICAgS1VSTCBmdWxsVVJMID0gbV9kb2N1bWVudC0+Y29t
cGxldGVVUkwodXJsKTsKKyAgICBLVVJMIGZ1bGxVUkwgPSBtX2RvY3VtZW50ID8gbV9kb2N1bWVu
dC0+Y29tcGxldGVVUkwodXJsKSA6IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOwogCiAgICAg
aWYgKCFmdWxsVVJMLmlzVmFsaWQoKSB8fCAhY2FuUmVxdWVzdCh0eXBlLCBmdWxsVVJMKSkKICAg
ICAgICAgcmV0dXJuIDA7CkBAIC0yODksNyArMzM5LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cHJpbnRBY2Nlc3NEZQogICAgIGlmICghc2V0dGluZ3MgfHwgc2V0dGluZ3MtPnByaXZh
dGVCcm93c2luZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIG1lc3Nh
Z2UgPSBtX2RvY3VtZW50LT51cmwoKS5pc051bGwoKSA/CisgICAgU3RyaW5nIG1lc3NhZ2UgPSAo
bV9kb2N1bWVudCAmJiBtX2RvY3VtZW50LT51cmwoKS5pc051bGwoKSkgPwogICAgICAgICBtYWtl
U3RyaW5nKCJVbnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCAiLCB1cmwuc3RyaW5nKCksICcuJykg
OgogICAgICAgICBtYWtlU3RyaW5nKCJVbnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCAiLCB1cmwu
c3RyaW5nKCksICIgZnJvbSBmcmFtZSB3aXRoIFVSTCAiLCBtX2RvY3VtZW50LT51cmwoKS5zdHJp
bmcoKSwgIi4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLlxuIik7CiAK
SW5kZXg6IFdlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAkocmV2
aXNpb24gNzI3NDEpCisrKyBXZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw5ICszOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0OwogY2xhc3MgQ2FjaGVkRm9udDsKIGNsYXNzIENh
Y2hlZEltYWdlOworY2xhc3MgQ2FjaGVkTWFpblJlc291cmNlOwogY2xhc3MgQ2FjaGVkU2NyaXB0
OwogY2xhc3MgQ2FjaGVkWFNMU3R5bGVTaGVldDsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRG9j
dW1lbnRMb2FkZXI7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEltYWdlTG9hZGVyOwogY2xhc3MgS1VS
TDsKQEAgLTUyLDkgKzU0LDE3IEBAIGZyaWVuZCBjbGFzcyBNZW1vcnlDYWNoZTsKIGZyaWVuZCBj
bGFzcyBJbWFnZUxvYWRlcjsKIAogcHVibGljOgorI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNP
VVJDRSkKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciopOworI2VuZGlm
CiAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnQqKTsKICAgICB+Q2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKTsKKyAgICAKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAg
dm9pZCBtb3ZlVG9Eb2N1bWVudChEb2N1bWVudCopOwogCisgICAgQ2FjaGVkTWFpblJlc291cmNl
KiByZXF1ZXN0TWFpblJlc291cmNlKGNvbnN0IFN0cmluZyYgdXJsKTsKKyNlbmRpZgogICAgIENh
Y2hlZEltYWdlKiByZXF1ZXN0SW1hZ2UoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIENhY2hlZENT
U1N0eWxlU2hlZXQqIHJlcXVlc3RDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25z
dCBTdHJpbmcmIGNoYXJzZXQpOwogICAgIENhY2hlZENTU1N0eWxlU2hlZXQqIHJlcXVlc3RVc2Vy
Q1NTU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsK
QEAgLTExMyw2ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlbG9h
ZGVkVVJMczsKICAgICBtdXRhYmxlIERvY3VtZW50UmVzb3VyY2VNYXAgbV9kb2N1bWVudFJlc291
cmNlczsKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKKyAgICBEb2N1bWVudExvYWRlciogbV9k
b2N1bWVudExvYWRlcjsKICAgICAKICAgICBpbnQgbV9yZXF1ZXN0Q291bnQ7CiAgICAgCkluZGV4
OiBXZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCShyZXZpc2lvbiA3Mjc0MSkKKysrIFdl
YkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJD
YWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJDYWNoZWRN
YWluUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNo
ZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKQEAg
LTcxLDYgKzcyLDEwIEBAIE1lbW9yeUNhY2hlOjpNZW1vcnlDYWNoZSgpCiBzdGF0aWMgQ2FjaGVk
UmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQogewogICAgIHN3aXRjaCAodHlwZSkg
eworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpNYWluUmVzb3VyY2U6CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkTWFpblJlc291cmNl
KHVybC5zdHJpbmcoKSk7CisjZW5kaWYKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJl
c291cmNlOgogICAgICAgICByZXR1cm4gbmV3IENhY2hlZEltYWdlKHVybC5zdHJpbmcoKSk7CiAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKQEAgLTEyMCw3ICsxMjUsNyBA
QCBDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlcXVlc3RSZXNvCiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KIAotICAgIGlmICghY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCktPmNhbkRpc3BsYXkodXJsKSkgeworICAgIGlmIChjYWNoZWRSZXNv
dXJjZUxvYWRlci0+ZG9jdW1lbnQoKSAmJiAhY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkRpc3BsYXkodXJsKSkgewogICAgICAgICBMT0coUmVz
b3VyY2VMb2FkaW5nLCAiLi4uVVJMIHdhcyBub3QgYWxsb3dlZCBieSBTZWN1cml0eU9yaWdpbiIp
OwogICAgICAgICBpZiAoIXJlcXVlc3RJc1ByZWxvYWQpCiAgICAgICAgICAgICBGcmFtZUxvYWRl
cjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKGNhY2hlZFJlc291cmNlTG9hZGVyLT5kb2N1bWVudCgp
LT5mcmFtZSgpLCB1cmwuc3RyaW5nKCkpOwpJbmRleDogV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3Vt
ZW50TG9hZGVyTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1l
bnRMb2FkZXJNYWMuY3BwCShyZXZpc2lvbiA3Mjc0MSkKKysrIFdlYkNvcmUvbG9hZGVyL21hYy9E
b2N1bWVudExvYWRlck1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDEwIEBAIHN0
YXRpYyB2b2lkIHVuc2NoZWR1bGVBbGwoY29uc3QgUmVzb3VyY2UKIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OnNjaGVkdWxlKFNjaGVkdWxlUGFpciogcGFpcikKIHsKICNpZm5kZWYgQlVJTERJTkdfT05f
VElHRVIKKyNpZiAhRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgIGlmIChtX21haW5S
ZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkpCiAgICAgICAg
IG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+c2NoZWR1bGUocGFpcik7CisjZW5kaWYK
ICAgICBzY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAgICAgc2NoZWR1
bGVBbGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX211
bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkBAIC03MSw4ICs3MywxMCBAQCB2b2lk
IERvY3VtZW50TG9hZGVyOjpzY2hlZHVsZShTY2hlZHVsZVBhCiB2b2lkIERvY3VtZW50TG9hZGVy
Ojp1bnNjaGVkdWxlKFNjaGVkdWxlUGFpciogcGFpcikKIHsKICNpZm5kZWYgQlVJTERJTkdfT05f
VElHRVIKKyNpZiAhRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgIGlmIChtX21haW5S
ZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkpCiAgICAgICAg
IG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+dW5zY2hlZHVsZShwYWlyKTsKKyNlbmRp
ZgogICAgIHVuc2NoZWR1bGVBbGwobV9zdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwogICAgIHVu
c2NoZWR1bGVBbGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICB1bnNjaGVkdWxl
QWxsKG1fbXVsdGlwYXJ0U3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88831</attachid>
            <date>2011-04-08 09:45:00 -0700</date>
            <delta_ts>2012-05-17 15:36:59 -0700</delta_ts>
            <desc>Work in progress - April 8</desc>
            <filename>cmr_0408.txt</filename>
            <type>text/plain</type>
            <size>80134</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BcHBsaWNhdGlvbkNh
Y2hlSG9zdC5jcHAJKHJldmlzaW9uIDgzMTgwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3
IEBACiB7CiB9CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZE1haW5SZXNv
dXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN1YnN0aXR1dGVEYXRhJikKK3ZvaWQgQXBw
bGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZE1haW5SZXNvdXJjZShSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJikKIHsKICAgICAvLyBXZSBkZWZlciBjcmVh
dGluZyB0aGUgb3V0ZXIgaG9zdCBvYmplY3QgdG8gYXZvaWQgc3B1cmlvdXMgY3JlYXRpb24vZGVz
dHJ1Y3Rpb24KICAgICAvLyBhcm91bmQgY3JlYXRpbmcgZW1wdHkgZG9jdW1lbnRzLiBBdCB0aGlz
IHBvaW50LCB3ZSdyZSBpbml0aWF0aW5nIGEgbWFpbiByZXNvdXJjZQpAQCAtMTE0LDcgKzExNCw3
IEBACiAgICAgfQogfQogCi12b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRNYWlu
UmVzb3VyY2VGb3JSZWRpcmVjdChSZXNvdXJjZVJlcXVlc3QmLCBTdWJzdGl0dXRlRGF0YSYpCit2
b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRNYWluUmVzb3VyY2VGb3JSZWRpcmVj
dChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpCiB7CiAgICAgLy8gTi9B
IHRvIHRoZSBjaHJvbWl1bSBwb3J0CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNp
b24gODMxODApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5
KQpAQCAtMTg0Nyw2ICsxODQ3LDEwIEBACiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE4aGFu
ZGxlR2VzdHVyZUV2ZW50RVJLTlNfMjBQbGF0Zm9ybUdlc3R1cmVFdmVudEUKICNlbmRpZgogCisj
aWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorX19aTjdXZWJDb3JlMTREb2N1bWVudExv
YWRlcjE0bm90aWZ5RmluaXNoZWRFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFCisjZW5kaWYKKwogI2lm
IFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGU0
NnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2VFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjlwcml2YXRlQnJvd3NpbmdTdG9y
YWdlU2Vzc2lvbkV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gODMxODApCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzI3LDYg
KzcyNyw3IEBACiAgICAgRXZlbnRMaXN0ZW5lciogZ2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0
ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CiAgICAgdm9pZCBkaXNwYXRjaFdp
bmRvd0V2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiA9IDAp
OwogICAgIHZvaWQgZGlzcGF0Y2hXaW5kb3dMb2FkRXZlbnQoKTsKKyAgICBib29sIHdpbmRvd0xv
YWRFdmVudEZpcmVkKCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dMb2FkRXZlbnRGaXJlZDsgfQog
CiAgICAgUGFzc1JlZlB0cjxFdmVudD4gY3JlYXRlRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudFR5
cGUsIEV4Y2VwdGlvbkNvZGUmKTsKIApAQCAtMTQwMiw2ICsxNDAzLDcgQEAKICAgICBSZWZQdHI8
TWVkaWFRdWVyeU1hdGNoZXI+IG1fbWVkaWFRdWVyeU1hdGNoZXI7CiAgICAgYm9vbCBtX3dyaXRl
UmVjdXJzaW9uSXNUb29EZWVwOwogICAgIHVuc2lnbmVkIG1fd3JpdGVSZWN1cnNpb25EZXB0aDsK
KyAgICBib29sIG1fd2luZG93TG9hZEV2ZW50RmlyZWQ7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpCiAgICAgT3duUHRyPFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcj4g
bV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHJldmlzaW9uIDgzMTgwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDM2LDYgKzQzNiw3IEBACiAgICAgLCBtX3dyaXRpbmdNb2RlU2V0
T25Eb2N1bWVudEVsZW1lbnQoZmFsc2UpCiAgICAgLCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVw
KGZhbHNlKQogICAgICwgbV93cml0ZVJlY3Vyc2lvbkRlcHRoKDApCisgICAgLCBtX3dpbmRvd0xv
YWRFdmVudEZpcmVkKGZhbHNlKQogewogICAgIG1fZG9jdW1lbnQgPSB0aGlzOwogCkBAIC00NjEs
NyArNDYyLDE1IEBACiAKICAgICBtX21hcmtlcnMgPSBuZXcgRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyKCk7CiAKKyNpZiAhRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgIG1fY2FjaGVk
UmVzb3VyY2VMb2FkZXIgPSBuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIodGhpcyk7CisjZWxzZQor
ICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBtX2ZyYW1lID8gbV9mcmFtZS0+bG9hZGVyKCkt
PmRvY3VtZW50TG9hZGVyKCktPnJlbGVhc2VDYWNoZWRSZXNvdXJjZUxvYWRlcigpIDogMDsKKyAg
ICBpZiAobV9jYWNoZWRSZXNvdXJjZUxvYWRlcikKKyAgICAgICAgbV9jYWNoZWRSZXNvdXJjZUxv
YWRlci0+bW92ZVRvRG9jdW1lbnQodGhpcyk7CisgICAgZWxzZQorICAgICAgICBtX2NhY2hlZFJl
c291cmNlTG9hZGVyID0gbmV3IENhY2hlZFJlc291cmNlTG9hZGVyKHRoaXMpOworI2VuZGlmCiAK
ICAgICBtX3Zpc3VhbGx5T3JkZXJlZCA9IGZhbHNlOwogICAgIG1fYlBhcnNpbmcgPSBmYWxzZTsK
QEAgLTM1MDEsNiArMzUxMCw3IEBACiB2b2lkIERvY3VtZW50OjpkaXNwYXRjaFdpbmRvd0xvYWRF
dmVudCgpCiB7CiAgICAgQVNTRVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOworICAgIG1f
d2luZG93TG9hZEV2ZW50RmlyZWQgPSB0cnVlOwogICAgIERPTVdpbmRvdyogZG9tV2luZG93ID0g
dGhpcy0+ZG9tV2luZG93KCk7CiAgICAgaWYgKCFkb21XaW5kb3cpCiAgICAgICAgIHJldHVybjsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkUHJpb3Jp
dHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlTG9hZFByaW9yaXR5LmgJKHJldmlzaW9uIDgzMTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRQcmlvcml0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw5ICszMiwxMCBAQAogICAgIFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdywgCiAgICAgUmVz
b3VyY2VMb2FkUHJpb3JpdHlMb3csIAogICAgIFJlc291cmNlTG9hZFByaW9yaXR5TWVkaXVtLCAK
LSAgICBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2gsIAorICAgIFJlc291cmNlTG9hZFByaW9yaXR5
SGlnaCwKKyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlIaWdoLAogICAgIFJlc291cmNlTG9h
ZFByaW9yaXR5TG93ZXN0ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93LCAKLSAgICBSZXNv
dXJjZUxvYWRQcmlvcml0eUhpZ2hlc3QgPSBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2gsIAorICAg
IFJlc291cmNlTG9hZFByaW9yaXR5SGlnaGVzdCA9IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUhp
Z2gsIAogICAgIC8vIFRoZSB1bnJlc29sdmVkIHByaW9yaXR5IGlzIGhlcmUgZm9yIHRoZSBjb252
ZW5pZW5jZSBvZiB0aGUgY2xpZW50cy4gSXQgc2hvdWxkIG5vdCBiZSBwYXNzZWQgdG8gdGhlIFJl
c291cmNlTG9hZFNjaGVkdWxlci4KICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQs
CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJl
cXVlc3RDRk5ldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaAkocmV2aXNpb24gODMxODApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU0LDYgKzU0LDggQEAKICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFBy
aW9yaXR5TWVkaXVtOwogICAgIGNhc2UgMzoKICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFBy
aW9yaXR5SGlnaDsKKyAgICBjYXNlIDQ6CisgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlv
cml0eVZlcnlIaWdoOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3dlc3Q7CkBAIC03Myw2ICs3
NSw4IEBACiAgICAgICAgIHJldHVybiAyOwogICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlI
aWdoOgogICAgICAgICByZXR1cm4gMzsKKyAgICBjYXNlIFJlc291cmNlTG9hZFByaW9yaXR5VmVy
eUhpZ2g6CisgICAgICAgIHJldHVybiA0OwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gODMxODApCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTMzMjcsNiArMzMyNyw4IEBACiAg
ICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwJywKICAgICAgICAgICAgICds
b2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkSW1hZ2UuY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkTWFpblJlc291
cmNlLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZE1haW5SZXNvdXJjZS5o
JywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuY3BwJywKICAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCcsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAkocmV2aXNpb24gODMxODAp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTI2LDEwICsxMjYsMTQgQEAKICAgICBpZiAoUmVuZGVyUGFydCogcmVuZGVyZXIgPSBt
X2VtYmVkRWxlbWVudC0+cmVuZGVyUGFydCgpKSB7CiAgICAgICAgIGlmIChXaWRnZXQqIHdpZGdl
dCA9IHJlbmRlcmVyLT53aWRnZXQoKSkgewogICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5j
bGllbnQoKS0+cmVkaXJlY3REYXRhVG9QbHVnaW4od2lkZ2V0KTsKKyNpZiBFTkFCTEUoQ0FDSEVE
X01BSU5fUkVTT1VSQ0UpCisgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmFjdGl2ZURvY3Vt
ZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZVNob3VsZE5vdEJ1ZmZlckRhdGEoKTsKKyNlbHNlCiAg
ICAgICAgICAgICAvLyBJbiBhIHBsdWdpbiBkb2N1bWVudCwgdGhlIG1haW4gcmVzb3VyY2UgaXMg
dGhlIHBsdWdpbi4gSWYgd2UgaGF2ZSBhIG51bGwgd2lkZ2V0LCB0aGF0IG1lYW5zCiAgICAgICAg
ICAgICAvLyB0aGUgbG9hZGluZyBvZiB0aGUgcGx1Z2luIHdhcyBjYW5jZWxsZWQsIHdoaWNoIGdp
dmVzIHVzIGEgbnVsbCBtYWluUmVzb3VyY2VMb2FkZXIoKSwgc28gd2UKICAgICAgICAgICAgIC8v
IG5lZWQgdG8gaGF2ZSB0aGlzIGNhbGwgaW4gYSBudWxsIGNoZWNrIG9mIHRoZSB3aWRnZXQgb3Ig
b2YgbWFpblJlc291cmNlTG9hZGVyKCkuCiAgICAgICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmFj
dGl2ZURvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5zZXRTaG91bGRCdWZm
ZXJEYXRhKGZhbHNlKTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQogCkBAIC0xNzcsNyArMTgx
LDExIEBACiAgICAgaWYgKCFzaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoKSkKICAgICAgICAgcmV0
dXJuOwogCisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgIGZyYW1lKCktPmxv
YWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKFJl
c291cmNlRXJyb3IoKSk7CisjZWxzZQogICAgIGZyYW1lKCktPmxvYWRlcigpLT5hY3RpdmVEb2N1
bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+Y2FuY2VsKCk7CisjZW5kaWYKICAg
ICBzZXRTaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoZmFsc2UpOwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAJKHJldmlzaW9uIDgzMTgwKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksOCArOTks
MTEgQEAKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlmICgh
ZnJhbWUpCiAgICAgICAgIHJldHVybjsKLQorI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJD
RSkKKyAgICBmcmFtZS0+bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPm1haW5SZXNv
dXJjZVNob3VsZE5vdEJ1ZmZlckRhdGEoKTsKKyNlbHNlCiAgICAgZnJhbWUtPmxvYWRlcigpLT5h
Y3RpdmVEb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+c2V0U2hvdWxkQnVm
ZmVyRGF0YShmYWxzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjph
cHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciosIGNvbnN0IGNoYXIqLCBpbnQsIGJvb2wpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiA4MzE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTQyOCw2ICs1NDI4LDggQEAKIAkJRDAw
MEVEMjgxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDAwRUQyNjExQzFCOUNEMDBDNDc3MjYg
LyogU3ViZnJhbWVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlEMDFBMjdBRDEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmlu
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDFB
MjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi87IH07CiAJCUQw
MUEyN0FFMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDFBMjdBQzEwQzlCRkQ4MDAwMjZB
NDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUQwMjYyN0I1MTJGMzY3MDEwMDhBRTY1RiAvKiBDYWNoZWRNYWlu
UmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDAyNjI3QjMxMkYzNjcwMTAwOEFFNjVGIC8qIENhY2hlZE1haW5SZXNvdXJjZS5jcHAgKi87
IH07CisJCUQwMjYyN0I2MTJGMzY3MDEwMDhBRTY1RiAvKiBDYWNoZWRNYWluUmVzb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwMjYyN0I0MTJG
MzY3MDEwMDhBRTY1RiAvKiBDYWNoZWRNYWluUmVzb3VyY2UuaCAqLzsgfTsKIAkJRDA1Q0VEMjkw
QTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDVDRUQyNzBBNDBCQjJDMDBDNUFGMzgg
LyogRm9ybWF0QmxvY2tDb21tYW5kLmNwcCAqLzsgfTsKIAkJRDA1Q0VEMkEwQTQwQkIyQzAwQzVB
RjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRDA1Q0VEMjgwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2Nr
Q29tbWFuZC5oICovOyB9OwogCQlEMDZDMEQ4RjBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9y
bWF0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLzsg
fTsKQEAgLTExOTEzLDYgKzExOTE1LDggQEAKIAkJRDAwMEVEMjYxMUMxQjlDRDAwQzQ3NzI2IC8q
IFN1YmZyYW1lTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1YmZy
YW1lTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMUEyN0FCMTBDOUJG
RDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwYWNlU3BsaXRTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEMDFBMjdBQzEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGFjZVNwbGl0U3RyaW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQwMjYyN0IzMTJGMzY3MDEwMDhBRTY1RiAvKiBD
YWNoZWRNYWluUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ2FjaGVkTWFpblJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RDAyNjI3QjQxMkYzNjcwMTAwOEFFNjVGIC8qIENhY2hlZE1haW5SZXNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRNYWluUmVzb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA1Q0VEMjcwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJs
b2NrQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9y
bWF0QmxvY2tDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA1Q0VE
MjgwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybWF0QmxvY2tDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRD
b21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW92ZUZvcm1hdENv
bW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDk3LDYgKzE3MTAxLDgg
QEAKIAkJQThEMkIyNTIxMjg3QTU2MDAwQUY0RERBIC8qIGNhY2hlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlEMDI2MjdCMzEyRjM2NzAxMDA4QUU2NUYg
LyogQ2FjaGVkTWFpblJlc291cmNlLmNwcCAqLywKKwkJCQlEMDI2MjdCNDEyRjM2NzAxMDA4QUU2
NUYgLyogQ2FjaGVkTWFpblJlc291cmNlLmggKi8sCiAJCQkJQkNCMTZDMDAwOTc5QzNCRDAwNDY3
NzQxIC8qIENhY2hlZENTU1N0eWxlU2hlZXQuY3BwICovLAogCQkJCUJDQjE2QzAxMDk3OUMzQkQw
MDQ2Nzc0MSAvKiBDYWNoZWRDU1NTdHlsZVNoZWV0LmggKi8sCiAJCQkJQkM2NEI0QzkwQ0I0Mjk1
RDAwNUYyQjYyIC8qIENhY2hlZEZvbnQuY3BwICovLApJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAJKHJldmlzaW9uIDgzMTgwKQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU4LDggKzU4LDEwIEBACiB2b2lkIERvY3VtZW50TG9hZGVyOjpzY2hlZHVsZShT
Y2hlZHVsZVBhaXIqIHBhaXIpCiB7CiAjaWZuZGVmIEJVSUxESU5HX09OX1RJR0VSCisjaWYgIUVO
QUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKICAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIg
JiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpKQogICAgICAgICBtX21haW5SZXNvdXJj
ZUxvYWRlci0+aGFuZGxlKCktPnNjaGVkdWxlKHBhaXIpOworI2VuZGlmCiAgICAgc2NoZWR1bGVB
bGwobV9zdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fcGx1Z0lu
U3RyZWFtTG9hZGVycywgcGFpcik7CiAgICAgc2NoZWR1bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNv
dXJjZUxvYWRlcnMsIHBhaXIpOwpAQCAtNzEsOCArNzMsMTAgQEAKIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OnVuc2NoZWR1bGUoU2NoZWR1bGVQYWlyKiBwYWlyKQogewogI2lmbmRlZiBCVUlMRElOR19P
Tl9USUdFUgorI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCiAgICAgaWYgKG1fbWFp
blJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKSkKICAgICAg
ICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLT51bnNjaGVkdWxlKHBhaXIpOworI2Vu
ZGlmCiAgICAgdW5zY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAgICAg
dW5zY2hlZHVsZUFsbChtX3BsdWdJblN0cmVhbUxvYWRlcnMsIHBhaXIpOwogICAgIHVuc2NoZWR1
bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA4MzE4MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwODcsNiAr
MTA4Nyw5IEBACiAgICAgICAgIG9wZW5lci0+bG9hZGVyKCktPm1fb3BlbmVkRnJhbWVzLmFkZCht
X2ZyYW1lKTsKICAgICBtX29wZW5lciA9IG9wZW5lcjsKIAorICAgIGlmIChvcGVuZXIgJiYgb3Bl
bmVyLT5kb2N1bWVudCgpKQorICAgICAgICBzZXRPdXRnb2luZ1JlZmVycmVyKG9wZW5lci0+ZG9j
dW1lbnQoKS0+dXJsKCkpOworCiAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKICAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5pdFNlY3VyaXR5Q29udGV4dCgpOwogICAgICAgICBt
X2ZyYW1lLT5kb21XaW5kb3coKS0+c2V0U2VjdXJpdHlPcmlnaW4obV9mcmFtZS0+ZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSk7CkBAIC0yNDQyLDcgKzI0NDUsNyBAQAogICAgICAgICAKICAg
ICAgICAgY2FzZSBGcmFtZVN0YXRlQ29tbWl0dGVkUGFnZTogewogICAgICAgICAgICAgRG9jdW1l
bnRMb2FkZXIqIGRsID0gbV9kb2N1bWVudExvYWRlci5nZXQoKTsgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGlmICghZGwgfHwgKGRsLT5pc0xvYWRpbmdJbkFQSVNlbnNlKCkgJiYgIWRsLT5pc1N0
b3BwaW5nKCkpKQorICAgICAgICAgICAgaWYgKCFkbCB8fCAoZGwtPmlzTG9hZGluZ0luQVBJU2Vu
c2UoKSAmJiAhZGwtPmlzU3RvcHBpbmcoKSkgfHwgIW1fZnJhbWUtPmRvY3VtZW50KCktPndpbmRv
d0xvYWRFdmVudEZpcmVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAg
ICBtYXJrTG9hZENvbXBsZXRlKCk7CkBAIC0yNTgzLDggKzI1ODYsNiBAQAogLy8gQ2FsbGVkIGV2
ZXJ5IHRpbWUgYSByZXNvdXJjZSBpcyBjb21wbGV0ZWx5IGxvYWRlZCwgb3IgYW4gZXJyb3IgaXMg
cmVjZWl2ZWQuCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZSgpCiB7Ci0gICAg
QVNTRVJUKG1fY2xpZW50LT5oYXNXZWJWaWV3KCkpOwotICAgIAogICAgIG1fc2hvdWxkQ2FsbENo
ZWNrTG9hZENvbXBsZXRlID0gZmFsc2U7CiAKICAgICAvLyBGSVhNRTogQWx3YXlzIHRyYXZlcnNp
bmcgdGhlIGVudGlyZSBmcmFtZSB0cmVlIGlzIGEgYml0IGluZWZmaWNpZW50LCBidXQgCkBAIC0y
NzI3LDcgKzI3MjgsNyBAQAogICAgIC8vIEFsd2F5cyB0cnkgVVRGLTguIElmIHRoYXQgZmFpbHMs
IHRyeSBmcmFtZSBlbmNvZGluZyAoaWYgYW55KSBhbmQgdGhlbiB0aGUgZGVmYXVsdC4KICAgICAv
LyBGb3IgYSBuZXdseSBvcGVuZWQgZnJhbWUgd2l0aCBhbiBlbXB0eSBVUkwsIGVuY29kaW5nKCkg
c2hvdWxkIG5vdCBiZSB1c2VkLCBiZWNhdXNlIHRoaXMgbWV0aG9kcyBhc2tzIGRlY29kZXIsIHdo
aWNoIHVzZXMgSVNPLTg4NTktMS4KICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ZyYW1lLT5z
ZXR0aW5ncygpOwotICAgIHJlcXVlc3Quc2V0UmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNv
ZGluZ0ZhbGxiYWNrQXJyYXkoIlVURi04IiwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVy
KCktPmRlcHJlY2F0ZWRGcmFtZUVuY29kaW5nKCksIHNldHRpbmdzID8gc2V0dGluZ3MtPmRlZmF1
bHRUZXh0RW5jb2RpbmdOYW1lKCkgOiBTdHJpbmcoKSk7CisgICAgcmVxdWVzdC5zZXRSZXNwb25z
ZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheSgiVVRGLTgiLCBhY3RpdmVE
b2N1bWVudExvYWRlcigpID8gYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCktPmRlcHJl
Y2F0ZWRGcmFtZUVuY29kaW5nKCkgOiBTdHJpbmcoKSwgc2V0dGluZ3MgPyBzZXR0aW5ncy0+ZGVm
YXVsdFRleHRFbmNvZGluZ05hbWUoKSA6IFN0cmluZygpKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRl
cjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RyaW5n
IG9yaWdpbikKQEAgLTMxMTUsNiArMzExNiw4IEBACiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICBpZiAocmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNl
KQorICAgICAgICByZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmZpcnN0UGFydHlGb3JDb29raWVzKCkpOwogICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllcjsKICAgICBSZXNvdXJjZUVycm9yIGVycm9yOwogICAgIHJlcXVlc3RGcm9tRGVsZWdhdGUo
cmVxdWVzdCwgaWRlbnRpZmllciwgZXJyb3IpOwpAQCAtMzMzMCw2ICszMzMzLDcgQEAKIHZvaWQg
RnJhbWVMb2FkZXI6Om1haW5SZWNlaXZlZENvbXBsZXRlRXJyb3IoRG9jdW1lbnRMb2FkZXIqIGxv
YWRlciwgY29uc3QgUmVzb3VyY2VFcnJvciYpCiB7CiAgICAgbG9hZGVyLT5zZXRQcmltYXJ5TG9h
ZENvbXBsZXRlKHRydWUpOworICAgIGxvYWRlci0+c3RvcExvYWRpbmcoKTsKICAgICBtX2NsaWVu
dC0+ZGlzcGF0Y2hEaWRMb2FkTWFpblJlc291cmNlKGFjdGl2ZURvY3VtZW50TG9hZGVyKCkpOwog
ICAgIGNoZWNrQ29tcGxldGVkKCk7CiAgICAgaWYgKG1fZnJhbWUtPnBhZ2UoKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmNwcAkocmV2aXNpb24gODMxODApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIK
ICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkNhY2hlZE1haW5SZXNvdXJjZS5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNj
cmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKQEAgLTM3LDYgKzM4LDcg
QEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01XaW5k
b3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC01OCw2ICs2MCwxMCBAQAogc3RhdGljIENhY2hlZFJl
c291cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBL
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsK
KyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6TWFpblJlc291cmNlOgorICAgICAgICByZXR1cm4gbmV3IENhY2hlZE1haW5SZXNvdXJjZSh1
cmwuc3RyaW5nKCkpOworI2VuZGlmCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNv
dXJjZToKICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRJbWFnZSh1cmwuc3RyaW5nKCkpOwogICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6CkBAIC03OSw4ICs4NSwyMiBAQAog
ICAgIHJldHVybiAwOwogfQogCisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBk
b2N1bWVudExvYWRlcikKKyAgICA6IG1fZG9jdW1lbnQoMCkKKyAgICAsIG1fZG9jdW1lbnRMb2Fk
ZXIoZG9jdW1lbnRMb2FkZXIpCisgICAgLCBtX3JlcXVlc3RDb3VudCgwKQorICAgICwgbV9sb2Fk
RG9uZUFjdGlvblRpbWVyKHRoaXMsICZDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZERvbmVBY3Rp
b25UaW1lckZpcmVkKQorICAgICwgbV9hdXRvTG9hZEltYWdlcyh0cnVlKQorICAgICwgbV9sb2Fk
RmluaXNoaW5nKGZhbHNlKQorICAgICwgbV9hbGxvd1N0YWxlUmVzb3VyY2VzKGZhbHNlKQorewor
fQorI2VuZGlmCisgICAgCiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAs
IG1fZG9jdW1lbnRMb2FkZXIoMCkKICAgICAsIG1fcmVxdWVzdENvdW50KDApCiAgICAgLCBtX2xv
YWREb25lQWN0aW9uVGltZXIodGhpcywgJkNhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkRG9uZUFj
dGlvblRpbWVyRmlyZWQpCiAgICAgLCBtX2F1dG9Mb2FkSW1hZ2VzKHRydWUpCkBAIC0xMTQsMTIg
KzEzNCwzNCBAQAogICAgIEtVUkwgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRl
bnRpZmllcklmTmVlZGVkKHJlc291cmNlVVJMKTsKICAgICByZXR1cm4gbV9kb2N1bWVudFJlc291
cmNlcy5nZXQodXJsKS5nZXQoKTsgCiB9CisgICAgCisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JF
U09VUkNFKQordm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bW92ZVRvRG9jdW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChtX2RvY3VtZW50TG9hZGVyKTsKKyAgICBBU1NF
UlQoIW1fZG9jdW1lbnQpOworICAgIEFTU0VSVChkb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCkt
PmRvY3VtZW50TG9hZGVyKCkgPT0gbV9kb2N1bWVudExvYWRlcik7CisgICAgbV9kb2N1bWVudCA9
IGRvY3VtZW50OworICAgIG1fZG9jdW1lbnRMb2FkZXIgPSAwOworfQorI2VuZGlmCiAKIEZyYW1l
KiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZnJhbWUoKSBjb25zdAogeworICAgIEFTU0VSVCghbV9k
b2N1bWVudExvYWRlciB8fCAhbV9kb2N1bWVudCk7CisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIp
CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpOwogICAgIHJldHVybiBt
X2RvY3VtZW50ID8gbV9kb2N1bWVudC0+ZnJhbWUoKSA6IDA7CiB9CiAKK0RvY3VtZW50TG9hZGVy
KiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZG9jdW1lbnRMb2FkZXIoKSBjb25zdAoreworICAgIEFT
U0VSVCghbV9kb2N1bWVudExvYWRlciB8fCAhbV9kb2N1bWVudCk7CisgICAgaWYgKG1fZG9jdW1l
bnRMb2FkZXIpCisgICAgICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVyOworICAgIHJldHVybiBt
X2RvY3VtZW50ID8gbV9kb2N1bWVudC0+bG9hZGVyKCkgOiAwOworfQorCiBDYWNoZWRJbWFnZSog
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShjb25zdCBTdHJpbmcmIHVybCkKIHsK
ICAgICBpZiAoRnJhbWUqIGYgPSBmcmFtZSgpKSB7CkBAIC0yMDEsNiArMjQzLDkgQEAKICAgICAv
LyB0eXBlcyBvZiByZXNvdXJjZXMsIGxpa2UgSW1hZ2VzLCBTY3JpcHRzLCBhbmQgQ1NTLCBjYW4g
YmUgbG9hZGVkIGZyb20KICAgICAvLyBhbnkgVVJMLgogICAgIHN3aXRjaCAodHlwZSkgeworI2lm
IEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpN
YWluUmVzb3VyY2U6CisjZW5kaWYKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291
cmNlOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6CiAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6U2NyaXB0OgpAQCAtMjI5LDYgKzI3NCwxMCBAQAogICAgIC8vICAgICAg
IHVwZGF0ZSBhbnkgc2VjdXJpdHkgaW5kaWNhdG9ycy4KICAgICAvLyAKICAgICBzd2l0Y2ggKHR5
cGUpIHsKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6TWFpblJlc291cmNlOgorICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgpAQCAtMjYzLDcgKzMxMiw3IEBACiAKIENhY2hlZFJl
c291cmNlKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291
cmNlOjpUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkwsIGNvbnN0IFN0cmluZyYg
Y2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHksIGJvb2wgZm9yUHJlbG9hZCkK
IHsKLSAgICBLVVJMIHVybCA9IG1fZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHJlc291cmNlVVJMKTsK
KyAgICBLVVJMIHVybCA9IG1fZG9jdW1lbnQgPyBtX2RvY3VtZW50LT5jb21wbGV0ZVVSTChyZXNv
dXJjZVVSTCkgOiBLVVJMKFBhcnNlZFVSTFN0cmluZywgcmVzb3VyY2VVUkwpOwogICAgIAogICAg
IExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291
cmNlICclcycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwu
c3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCBjaGFyc2V0LmxhdGluMSgpLmRhdGEoKSwgcHJpb3Jp
dHksIGZvclByZWxvYWQpOwogICAgIApAQCAtMjc3LDcgKzMyNiw3IEBACiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCBpcyB0aGUgY29ycmVjdCB3YXkg
dG8gbWVyZ2UgdGhpcyBzZWN1cml0eSBjaGVjayB3aXRoIHRoZSBvbmUgYWJvdmUuCi0gICAgaWYg
KCFkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNwbGF5KHVybCkpIHsKKyAgICBp
ZiAoZG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxh
eSh1cmwpKSB7CiAgICAgICAgIGlmICghZm9yUHJlbG9hZCkKICAgICAgICAgICAgIEZyYW1lTG9h
ZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgdXJsLnN0cmlu
ZygpKTsKICAgICAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0UmVzb3VyY2UgVVJMIHdhcyBub3QgYWxsb3dlZCBieSBTZWN1cml0eU9yaWdpbjo6
Y2FuRGlzcGxheSIpOwpAQCAtMzE1LDcgKzM2NCw3IEBACiAgICAgaWYgKCFyZXNvdXJjZSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICBBU1NFUlQocmVzb3VyY2UtPnVybCgpID09IHVybC5zdHJp
bmcoKSk7CisgICAgLy9BU1NFUlQocmVzb3VyY2UtPnVybCgpID09IHVybC5zdHJpbmcoKSk7CiAg
ICAgbV9kb2N1bWVudFJlc291cmNlcy5zZXQocmVzb3VyY2UtPnVybCgpLCByZXNvdXJjZSk7CiAg
ICAgCiAgICAgcmV0dXJuIHJlc291cmNlOwpAQCAtMzk2LDYgKzQ0NSwxMiBAQAogICAgICAgICBM
T0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRldGVybWluZVJldmFs
aWRhdGlvblBvbGljeSByZWxvYWRpbmcgZHVlIHRvIHR5cGUgbWlzbWF0Y2guIik7CiAgICAgICAg
IHJldHVybiBSZWxvYWQ7CiAgICAgfQorCisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNF
KQorICAgIC8vIEZJWE1FOiBNYWluIHJlc291cmNlcyBjYW4ndCB5ZXQgc2FmZWx5IGJlIGxvYWRl
ZCB3aXRoIG11bHRpcGxlIGNsaWVudHMgKERvY3VtZW50TG9hZGVyIGxldmVsIGNvZGUgYXNzdW1l
cyBhIFJlc291cmNlTG9hZGVyIHBlciBtYWluIHJlc291cmNlKS4KKyAgICBpZiAoZXhpc3RpbmdS
ZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UgJiYgZXhpc3Rp
bmdSZXNvdXJjZS0+aXNMb2FkaW5nKCkpCisgICAgICAgIHJldHVybiBSZWxvYWQ7CisjZW5kaWYK
ICAgICAKICAgICAvLyBEb24ndCByZWxvYWQgcmVzb3VyY2VzIHdoaWxlIHBhc3RpbmcuCiAgICAg
aWYgKG1fYWxsb3dTdGFsZVJlc291cmNlcykKQEAgLTQ2MSwxMyArNTE2LDIyIEBACiAgICAgaWYg
KCFzZXR0aW5ncyB8fCBzZXR0aW5ncy0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBTdHJpbmcgbWVzc2FnZSA9IG1fZG9jdW1lbnQtPnVybCgpLmlzTnVs
bCgpID8KKyAgICBTdHJpbmcgbWVzc2FnZSA9IChtX2RvY3VtZW50ICYmIG1fZG9jdW1lbnQtPnVy
bCgpLmlzTnVsbCgpKSA/CiAgICAgICAgIG1ha2VTdHJpbmcoIlVuc2FmZSBhdHRlbXB0IHRvIGxv
YWQgVVJMICIsIHVybC5zdHJpbmcoKSwgJy4nKSA6CiAgICAgICAgIG1ha2VTdHJpbmcoIlVuc2Fm
ZSBhdHRlbXB0IHRvIGxvYWQgVVJMICIsIHVybC5zdHJpbmcoKSwgIiBmcm9tIGZyYW1lIHdpdGgg
VVJMICIsIG1fZG9jdW1lbnQtPnVybCgpLnN0cmluZygpLCAiLiBEb21haW5zLCBwcm90b2NvbHMg
YW5kIHBvcnRzIG11c3QgbWF0Y2guXG4iKTsKIAogICAgIC8vIEZJWE1FOiBwcm92aWRlIGEgcmVh
bCBsaW5lIG51bWJlciBhbmQgc291cmNlIFVSTC4KICAgICBmcmFtZSgpLT5kb21XaW5kb3coKS0+
Y29uc29sZSgpLT5hZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7CiB9CisgICAgCisjaWYg
RU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorQ2FjaGVkTWFpblJlc291cmNlKiBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdE1haW5SZXNvdXJjZShjb25zdCBTdHJpbmcmIHVybCkKK3sK
KyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6Ok1haW5SZXNvdXJjZSwgdXJsLCBTdHJpbmcoKSk7CisgICAgQVNTRVJUKCFyZXNvdXJj
ZSB8fCByZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRNYWluUmVzb3VyY2UqPihyZXNvdXJjZSk7Cit9
CisjZW5kaWYKIAogdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2V0QXV0b0xvYWRJbWFnZXMo
Ym9vbCBlbmFibGUpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gODMxODApCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNDIsMTAgKzQyLDEyIEBACiBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0OwogY2xhc3MgQ2Fj
aGVkRm9udDsKIGNsYXNzIENhY2hlZEltYWdlOworY2xhc3MgQ2FjaGVkTWFpblJlc291cmNlOwog
Y2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3Mg
Q2FjaGVkWFNMU3R5bGVTaGVldDsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRG9jdW1lbnRMb2Fk
ZXI7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEltYWdlTG9hZGVyOwogY2xhc3MgS1VSTDsKQEAgLTU2
LDkgKzU4LDE3IEBACiBmcmllbmQgY2xhc3MgSW1hZ2VMb2FkZXI7CiAKIHB1YmxpYzoKKyNpZiBF
TkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9j
dW1lbnRMb2FkZXIqKTsKKyNlbmRpZgogICAgIENhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50
Kik7CiAgICAgfkNhY2hlZFJlc291cmNlTG9hZGVyKCk7CisgICAgCisjaWYgRU5BQkxFKENBQ0hF
RF9NQUlOX1JFU09VUkNFKQorICAgIHZvaWQgbW92ZVRvRG9jdW1lbnQoRG9jdW1lbnQqKTsKIAor
ICAgIENhY2hlZE1haW5SZXNvdXJjZSogcmVxdWVzdE1haW5SZXNvdXJjZShjb25zdCBTdHJpbmcm
IHVybCk7CisjZW5kaWYKICAgICBDYWNoZWRJbWFnZSogcmVxdWVzdEltYWdlKGNvbnN0IFN0cmlu
ZyYgdXJsKTsKICAgICBDYWNoZWRDU1NTdHlsZVNoZWV0KiByZXF1ZXN0Q1NTU3R5bGVTaGVldChj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CiAgICAgQ2Fj
aGVkQ1NTU3R5bGVTaGVldCogcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwpAQCAtODgsNiArOTgsNyBAQAogICAgIAogICAg
IEZyYW1lKiBmcmFtZSgpIGNvbnN0OyAvLyBDYW4gYmUgTlVMTAogICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICBEb2N1bWVudExvYWRlciog
ZG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKIAogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkUmVzb3VyY2Uo
Q2FjaGVkUmVzb3VyY2UqKSBjb25zdDsKIApAQCAtMTI3LDYgKzEzOCw3IEBACiAgICAgSGFzaFNl
dDxTdHJpbmc+IG1fdmFsaWRhdGVkVVJMczsKICAgICBtdXRhYmxlIERvY3VtZW50UmVzb3VyY2VN
YXAgbV9kb2N1bWVudFJlc291cmNlczsKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKKyAgICBE
b2N1bWVudExvYWRlciogbV9kb2N1bWVudExvYWRlcjsKIAogICAgIHR5cGVkZWYgSGFzaFNldDxS
ZWZQdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0PiA+IFJlcXVlc3RTZXQ7CiAgICAgUmVxdWVzdFNl
dCBtX3JlcXVlc3RzOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCShyZXZpc2lvbiA4MzE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDEw
IEBACiBzdGF0aWMgUmVzb3VyY2VMb2FkUHJpb3JpdHkgZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3Vy
Y2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7
CisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpNYWluUmVzb3VyY2U6CisgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJp
b3JpdHlWZXJ5SGlnaDsKKyNlbmRpZgogICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NT
dHlsZVNoZWV0OgogI2lmIEVOQUJMRShYU0xUKQogICAgICAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpYU0xTdHlsZVNoZWV0OgpAQCAtNDAxLDEwICs0MDUsMTMgQEAKICAgICAvLyBUaGUgZm9sbG93
aW5nIGFzc2VydCBzaG91bGQgYmUgaW52ZXN0aWdhdGVkIHdoZW5ldmVyIGl0IG9jY3Vycy4gQWx0
aG91Z2ggaXQgc2hvdWxkIG5ldmVyIGZpcmUsIGl0IGN1cnJlbnRseSBkb2VzIGluIHJhcmUgY2ly
Y3Vtc3RhbmNlcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjg2MDQuCiAgICAgLy8gU28gdGhlIGNvZGUgbmVlZHMgdG8gYmUgcm9idXN0IHRvIHRoaXMg
YXNzZXJ0IGZhaWxpbmcgdGh1cyB0aGUgImlmIChtX3Jlc291cmNlVG9SZXZhbGlkYXRlLT5tX3By
b3h5UmVzb3VyY2UgPT0gdGhpcykiIGluIENhY2hlZFJlc291cmNlOjpjbGVhclJlc291cmNlVG9S
ZXZhbGlkYXRlLgotICAgIEFTU0VSVCghcmVzb3VyY2UtPm1fcHJveHlSZXNvdXJjZSk7CisgICAg
QVNTRVJUKCFyZXNvdXJjZS0+bV9wcm94eVJlc291cmNlIHx8IHJlc291cmNlLT5tX3Byb3h5UmVz
b3VyY2UgIT0gdGhpcyk7CiAKICAgICByZXNvdXJjZS0+bV9wcm94eVJlc291cmNlID0gdGhpczsK
ICAgICBtX3Jlc291cmNlVG9SZXZhbGlkYXRlID0gcmVzb3VyY2U7CisKKyAgICBpZiAocmVzb3Vy
Y2UtPm1fcHJveHlSZXNvdXJjZSAmJiByZXNvdXJjZS0+bV9wcm94eVJlc291cmNlICE9IHRoaXMp
CisgICAgICAgIG1lbW9yeUNhY2hlKCktPnJldmFsaWRhdGlvblN1Y2NlZWRlZCh0aGlzLCByZXNv
dXJjZS0+cmVzcG9uc2UoKSk7CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmNsZWFyUmVzb3Vy
Y2VUb1JldmFsaWRhdGUoKSAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5oCShyZXZpc2lvbiA4MzE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBA
CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEluc3BlY3RvclJlc291cmNlOwogY2xhc3MgUHVyZ2VhYmxl
QnVmZmVyOworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCiAvLyBBIHJlc291cmNlIHRoYXQgaXMg
aGVsZCBpbiB0aGUgY2FjaGUuIENsYXNzZXMgd2hvIHdhbnQgdG8gdXNlIHRoaXMgb2JqZWN0IHNo
b3VsZCBkZXJpdmUKIC8vIGZyb20gQ2FjaGVkUmVzb3VyY2VDbGllbnQsIHRvIGdldCB0aGUgZnVu
Y3Rpb24gY2FsbHMgaW4gY2FzZSB0aGUgcmVxdWVzdGVkIGRhdGEgaGFzIGFycml2ZWQuCkBAIC01
Nyw2ICs1OCw5IEBACiAgICAgCiBwdWJsaWM6CiAgICAgZW51bSBUeXBlIHsKKyNpZiBFTkFCTEUo
Q0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgICAgIE1haW5SZXNvdXJjZSwKKyNlbmRpZgogICAg
ICAgICBJbWFnZVJlc291cmNlLAogICAgICAgICBDU1NTdHlsZVNoZWV0LAogICAgICAgICBTY3Jp
cHQsCkBAIC04OSw2ICs5Myw3IEBACiAgICAgdmlydHVhbCB2b2lkIGVycm9yKENhY2hlZFJlc291
cmNlOjpTdGF0dXMpOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9yZUhUVFBTdGF0dXND
b2RlRXJyb3JzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVk
IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKICAgICBjb25zdCBTdHJpbmcgJnVy
bCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8VHlwZT4obV90eXBlKTsgfQpAQCAtMTQxLDYgKzE0Niw4IEBACiAgICAg
dW5zaWduZWQgYWNjZXNzQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc0NvdW50OyB9CiAg
ICAgdm9pZCBpbmNyZWFzZUFjY2Vzc0NvdW50KCkgeyBtX2FjY2Vzc0NvdW50Kys7IH0KIAorICAg
IHZpcnR1YWwgQ2FjaGVkUmVzb3VyY2UqIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyByZXR1cm4gdGhpczsgfQorCiAgICAgLy8gQ29t
cHV0ZXMgdGhlIHN0YXR1cyBvZiBhbiBvYmplY3QgYWZ0ZXIgbG9hZGluZy4gIAogICAgIC8vIFVw
ZGF0ZXMgdGhlIGV4cGlyZSBkYXRlIG9uIHRoZSBjYWNoZSBlbnRyeSBmaWxlCiAgICAgdm9pZCBm
aW5pc2goKTsKQEAgLTE1OSw3ICsxNjYsNyBAQAogCiAgICAgU2hhcmVkQnVmZmVyKiBkYXRhKCkg
Y29uc3QgeyBBU1NFUlQoIW1fcHVyZ2VhYmxlRGF0YSk7IHJldHVybiBtX2RhdGEuZ2V0KCk7IH0K
IAotICAgIHZvaWQgc2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNl
OyB9CiAKICAgICAvLyBTZXRzIHRoZSBzZXJpYWxpemVkIG1ldGFkYXRhIHJldHJpZXZlZCBmcm9t
IHRoZSBwbGF0Zm9ybSdzIGNhY2hlLgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZE1haW5SZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZE1haW5SZXNvdXJjZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkTWFpblJlc291cmNlLmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ2FjaGVkTWFpblJlc291cmNlLmgiCisKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVT
T1VSQ0UpCisKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
Ik1lbW9yeUNhY2hlLmgiCisjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJT
aGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8
d3RmL1VudXNlZFBhcmFtLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMg
Ym9vbCBzaG91bGRMb2FkQXNFbXB0eURvY3VtZW50KGNvbnN0IEtVUkwmIHVybCkKK3sKKyNpZiBQ
TEFURk9STShUT1JDSE1PQklMRSkKKyAgICByZXR1cm4gdXJsLmlzRW1wdHkoKSB8fCAodXJsLnBy
b3RvY29sSXMoImFib3V0IikgJiYgZXF1YWxJZ25vcmluZ1JlZih1cmwsIGJsYW5rVVJMKCkpKTsK
KyNlbHNlIAorICAgIHJldHVybiB1cmwuaXNFbXB0eSgpIHx8IFNjaGVtZVJlZ2lzdHJ5OjpzaG91
bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KHVybC5wcm90b2NvbCgpKTsKKyNlbmRpZgor
fQorCitDYWNoZWRNYWluUmVzb3VyY2U6OkNhY2hlZE1haW5SZXNvdXJjZShjb25zdCBTdHJpbmcm
IHVybCkKKyAgICA6IENhY2hlZFJlc291cmNlKHVybCwgTWFpblJlc291cmNlKQorICAgICwgbV9p
ZGVudGlmaWVyKDApCisgICAgLCBtX2luRGlkQWRkQ2xpZW50KGZhbHNlKQorICAgICwgbV9maW5p
c2hlZChmYWxzZSkKK3sKK30KKworQ2FjaGVkTWFpblJlc291cmNlOjp+Q2FjaGVkTWFpblJlc291
cmNlKCkKK3sKK30KKwordm9pZCBDYWNoZWRNYWluUmVzb3VyY2U6OmNsZWFyKCkKK3sKKyAgICBt
X2RhdGEgPSAwOworICAgIHNldEVuY29kZWRTaXplKDApOworfQorCit2b2lkIENhY2hlZE1haW5S
ZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIp
Cit7CisgICAgS1VSTCB1cmwoUGFyc2VkVVJMU3RyaW5nLCBtX3VybCk7CisgICAgaWYgKHNob3Vs
ZExvYWRBc0VtcHR5RG9jdW1lbnQodXJsKSkgeworICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlKHVybCwgY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmZyYW1l
TG9hZGVyKCktPmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKHVybC5wcm90b2NvbCgpKSwg
MCwgU3RyaW5nKCksIFN0cmluZygpKTsKKyAgICAgICAgc2V0UmVzcG9uc2UocmVzcG9uc2UpOwor
ICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbXB0eURhdGEgPSBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZSgiIiwgMCk7CisgICAgICAgIGRhdGEoZW1wdHlEYXRhLCB0cnVlKTsKKyAgICB9IGVsc2Ug
aWYgKGNhY2hlZFJlc291cmNlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5zdWJzdGl0dXRlRGF0
YSgpLmlzVmFsaWQoKSkgeworICAgICAgICBkYXRhKGNhY2hlZFJlc291cmNlTG9hZGVyLT5kb2N1
bWVudExvYWRlcigpLT5zdWJzdGl0dXRlRGF0YSgpLmNvbnRlbnQoKS0+Y29weSgpLCB0cnVlKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoY2FjaGVkUmVzb3VyY2VM
b2FkZXIsIC8qaW5jcmVtZW50YWwqLyB0cnVlLCBTa2lwU2VjdXJpdHlDaGVjaywgLypzZW5kUmVz
b3VyY2VMb2FkQ2FsbGJhY2tzKi8gdHJ1ZSk7IAorfQorCit2b2lkIENhY2hlZE1haW5SZXNvdXJj
ZTo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2
ZWQpCit7CisgICAgc2l6ZV90IG9sZFNpemUgPSBlbmNvZGVkU2l6ZSgpOworICAgIG1fZGF0YSA9
IGRhdGE7CisKKyAgICBzaXplX3QgbmV3U2l6ZSA9IG1fZGF0YSA/IG1fZGF0YS0+c2l6ZSgpIDog
MDsKKyAgICBzZXRFbmNvZGVkU2l6ZShuZXdTaXplKTsKKyAgICAKKyAgICBMT0coUmVzb3VyY2VM
b2FkaW5nLCAiQ2FjaGVkTWFpblJlc291cmNlICVwIHVybD0lcyBkYXRhIHNpemU9JWQgYWxsRGF0
YVJlY2VpdmVkPSVkIiwgdGhpcywgdXJsKCkubGF0aW4xKCkuZGF0YSgpLCAoaW50KW5ld1NpemUs
IGFsbERhdGFSZWNlaXZlZCk7CisKKyAgICBDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlciB3KG1f
Y2xpZW50cyk7CisgICAgd2hpbGUgKENhY2hlZFJlc291cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkp
IHsKKyAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gc3RhdGljX2Nhc3Q8
RG9jdW1lbnRMb2FkZXIqPihjKTsKKyAgICAgICAgaWYgKG5ld1NpemUgPiBvbGRTaXplIHx8ICht
X2RhdGEgJiYgYWxsRGF0YVJlY2VpdmVkKSkKKyAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyLT5y
ZWNlaXZlZERhdGEobV9kYXRhLT5kYXRhKCkgKyBvbGRTaXplLCBuZXdTaXplIC0gb2xkU2l6ZSk7
CisgICAgICAgIGlmIChhbGxEYXRhUmVjZWl2ZWQpIHsKKyAgICAgICAgICAgIHNldExvYWRpbmco
ZmFsc2UpOworICAgICAgICAgICAgbV9maW5pc2hlZCA9IHRydWU7CisgICAgICAgICAgICBjLT5u
b3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gRklYTUU6IGRp
ZEFkZENsaWVudCBjYW4gZ28gcmUtZW50cmFudC4gTm90IHN1cmUgd2hhdCB0aGUgcmlnaHQgZml4
IGlzLCBidXQgdGhpcyBxdWljayBoYWNrIGF0IGxlYXN0CisvLyBtYWtlcyB0aGluZ3MgdGltZW91
dCByYXRoZXIgdGhhbiBjcmFzaCAoZmFzdC9kb20vRG9jdW1lbnQvZG9jdW1lbnQtY2xvc2UtaWZy
YW1lLWxvYWQuaHRtbCB3YXMgdGhlIG9mZmVuZGVyIGlpcmMpLgorc3RhdGljIGJvb2wgc19pbkRp
ZEFkZENsaWVudCA9IGZhbHNlOworCit2b2lkIENhY2hlZE1haW5SZXNvdXJjZTo6ZGlkQWRkQ2xp
ZW50KENhY2hlZFJlc291cmNlQ2xpZW50KiBjKQoreworICAgIGlmIChpc0xvYWRpbmcoKSB8fCBz
X2luRGlkQWRkQ2xpZW50KQorICAgICAgICByZXR1cm47CisgICAgc19pbkRpZEFkZENsaWVudCA9
IHRydWU7CisgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZE1haW5SZXNvdXJjZSAlcCB1
cmw9JXMgZGlkQWRkQ2xpZW50IGNhY2hlIHJlc3RvcmUiLCB0aGlzLCB1cmwoKS5sYXRpbjEoKS5k
YXRhKCkpOworICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IHN0YXRpY19jYXN0
PERvY3VtZW50TG9hZGVyKj4oYyk7CisgICAgZG9jdW1lbnRMb2FkZXItPnNldFJlc3BvbnNlKG1f
cmVzcG9uc2UpOworCisgICAgaWYgKG1fZGF0YSkgeworICAgICAgICBpZiAoZG9jdW1lbnRMb2Fk
ZXItPmZyYW1lTG9hZGVyKCktPnF1aWNrUmVkaXJlY3RDb21pbmcoKSkKKyAgICAgICAgICAgIGRv
Y3VtZW50TG9hZGVyLT5zZXRJc0NsaWVudFJlZGlyZWN0KHRydWUpOworICAgICAgICBkb2N1bWVu
dExvYWRlci0+cmVjZWl2ZWREYXRhKG1fZGF0YS0+ZGF0YSgpLCBtX2RhdGEtPnNpemUoKSk7Cisg
ICAgfQorCisgICAgLy8gV2hpbGUgd2UgY2FuIGZpbmlzaCB0aGUgbG9hZCBzeW5jaHJvbm91c2x5
IGlmIHRoZSBDYWNoZWRNYWluUmVzb3VyY2UgaXMgaW4gbWVtb3J5LAorICAgIC8vIHRoZSBsb2Fk
IGV2ZW50IHNob3VsZG4ndCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5LgorICAgIGlmIChtX2RhdGEg
fHwgbV9maW5pc2hlZCkKKyAgICAgICAgYy0+bm90aWZ5RmluaXNoZWQodGhpcyk7CisgICAgc19p
bkRpZEFkZENsaWVudCA9IGZhbHNlOworfQorCit2b2lkIENhY2hlZE1haW5SZXNvdXJjZTo6ZXJy
b3IoQ2FjaGVkUmVzb3VyY2U6OlN0YXR1cyBzdGF0dXMpCit7CisgICAgc2V0U3RhdHVzKHN0YXR1
cyk7CisgICAgc2V0TG9hZGluZyhmYWxzZSk7CisKKyAgICAvLyBGSVhNRTogcGFzcyBlcnJvcnMK
KyAgICBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yID0gbV9yZXF1ZXN0ID8gbV9y
ZXF1ZXN0LT5jdXJyZW50UmVzb3VyY2VFcnJvcigpIDogUmVzb3VyY2VFcnJvcigpOworCisgICAg
Q2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIgdyhtX2NsaWVudHMpOworICAgIHdoaWxlIChDYWNo
ZWRSZXNvdXJjZUNsaWVudCogYyA9IHcubmV4dCgpKSB7CisgICAgICAgIERvY3VtZW50TG9hZGVy
KiBkb2N1bWVudExvYWRlciA9IHN0YXRpY19jYXN0PERvY3VtZW50TG9hZGVyKj4oYyk7CisKKyNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAgICBkb2N1bWVudExvYWRl
ci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluRXJyb3Io
ZG9jdW1lbnRMb2FkZXItPnJlcXVlc3QoKSwgcmVzb3VyY2VFcnJvcik7CisjZW5kaWYKKworICAg
ICAgICBpZiAoRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gZG9jdW1lbnRMb2FkZXItPmZyYW1l
TG9hZGVyKCkpIHsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gTG9hZEVycm9yKQorICAgICAg
ICAgICAgICAgIGZyYW1lTG9hZGVyLT5oYW5kbGVGYWxsYmFja0NvbnRlbnQoKTsKKyAgICAgICAg
ICAgIGlmICghcmVzb3VyY2VFcnJvci5pc051bGwoKSkKKyAgICAgICAgICAgICAgICBmcmFtZUxv
YWRlci0+cmVjZWl2ZWRNYWluUmVzb3VyY2VFcnJvcihyZXNvdXJjZUVycm9yLCB0cnVlKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgJiYgZG9jdW1lbnRM
b2FkZXItPmZyYW1lKCktPnBhZ2UoKSkKKyAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyLT5mcmFt
ZUxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOworICAgIH0KK30KKwordm9pZCBDYWNoZWRN
YWluUmVzb3VyY2U6OnNldFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQoreworICAgIENhY2hlZFJlc291cmNlOjpzZXRSZXNwb25zZShyZXNwb25zZSk7CisgICAgQ2Fj
aGVkUmVzb3VyY2VDbGllbnRXYWxrZXIgdyhtX2NsaWVudHMpOworICAgIHdoaWxlIChDYWNoZWRS
ZXNvdXJjZUNsaWVudCogYyA9IHcubmV4dCgpKQorICAgICAgICBzdGF0aWNfY2FzdDxEb2N1bWVu
dExvYWRlcio+KGMpLT5zZXRSZXNwb25zZShyZXNwb25zZSk7Cit9CisKK0NhY2hlZFJlc291cmNl
KiBDYWNoZWRNYWluUmVzb3VyY2U6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAg
aWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7CisgICAgICAgIHJlcXVlc3Quc2V0Rmly
c3RQYXJ0eUZvckNvb2tpZXMoS1VSTChQYXJzZWRVUkxTdHJpbmcsIHJlcXVlc3QudXJsKCkpKTsK
KyAgICAgICAgc2V0UmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAgIHNldFJlcXVl
c3QoMCk7CisgICAgICAgIENhY2hlZE1haW5SZXNvdXJjZSogbmV3UmVzb3VyY2UgPSBuZXcgQ2Fj
aGVkTWFpblJlc291cmNlKHJlcXVlc3QudXJsKCkpOworICAgICAgICBuZXdSZXNvdXJjZS0+c2V0
SWRlbnRpZmllcihtX2lkZW50aWZpZXIpOworICAgICAgICAKKyAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnRXYWxrZXIgdyhtX2NsaWVudHMpOworICAgICAgICB3aGlsZSAoQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQqIGMgPSB3Lm5leHQoKSkgeworICAgICAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGRv
Y3VtZW50TG9hZGVyID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnRMb2FkZXIqPihjKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50TG9hZGVyLT5zZXRDYWNoZWRNYWluUmVzb3VyY2UobmV3UmVzb3VyY2UpOwor
ICAgICAgICAgICAgbmV3UmVzb3VyY2UtPmFkZENsaWVudChkb2N1bWVudExvYWRlcik7CisgICAg
ICAgICAgICBkb2N1bWVudExvYWRlci0+c2V0UmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiBuZXdSZXNvdXJjZTsKKyAgICB9CisKKyAgICBDYWNoZWRSZXNvdXJj
ZUNsaWVudFdhbGtlciB3KG1fY2xpZW50cyk7CisgICAgd2hpbGUgKENhY2hlZFJlc291cmNlQ2xp
ZW50KiBjID0gdy5uZXh0KCkpCisgICAgICAgIHN0YXRpY19jYXN0PERvY3VtZW50TG9hZGVyKj4o
YyktPnNldFJlcXVlc3QocmVxdWVzdCk7CisgICAgcmV0dXJuIHRoaXM7Cit9CisKK2Jvb2wgQ2Fj
aGVkTWFpblJlc291cmNlOjptdWx0aXBhcnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVl
c3QgJiYgbV9yZXF1ZXN0LT5tdWx0aXBhcnQoKTsKK30KKworI2VuZGlmCisKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
Y3BwCShyZXZpc2lvbiA4MzE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMyArMjQsMTUgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIK
IAotI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNp
bmNsdWRlICJDYWNoZWRNYWluUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTQ1LDYgKzQ3LDEwIEBACiBzdGF0aWMgUmVz
b3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgeworI2lmIEVO
QUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWlu
UmVzb3VyY2U6CisgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzTWFpbkZy
YW1lOworI2VuZGlmCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKICNp
ZiBFTkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgpA
QCAtODQsNyArOTAsMTUgQEAKIHsKICAgICBSZWZQdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0PiBy
ZXF1ZXN0ID0gYWRvcHRSZWYobmV3IENhY2hlZFJlc291cmNlUmVxdWVzdChjYWNoZWRSZXNvdXJj
ZUxvYWRlciwgcmVzb3VyY2UsIGluY3JlbWVudGFsKSk7CiAKKyNpZiBFTkFCTEUoQ0FDSEVEX01B
SU5fUkVTT1VSQ0UpCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdDsKKyAgICBp
ZiAocmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKQorICAg
ICAgICByZXNvdXJjZVJlcXVlc3QgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnRMb2Fk
ZXIoKS0+cmVxdWVzdCgpOworICAgIGVsc2UKKyAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldFVS
TChLVVJMKFBhcnNlZFVSTFN0cmluZywgcmVzb3VyY2UtPnVybCgpKSk7CisjZWxzZQogICAgIFJl
c291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QocmVzb3VyY2UtPnVybCgpKTsKKyNlbmRpZgog
ICAgIHJlc291cmNlUmVxdWVzdC5zZXRUYXJnZXRUeXBlKGNhY2hlZFJlc291cmNlVHlwZVRvVGFy
Z2V0VHlwZShyZXNvdXJjZS0+dHlwZSgpKSk7CiAKICAgICBpZiAoIXJlc291cmNlLT5hY2NlcHQo
KS5pc0VtcHR5KCkpCkBAIC0xMTUsOCArMTI5LDggQEAKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0
eSBwcmlvcml0eSA9IHJlc291cmNlLT5sb2FkUHJpb3JpdHkoKTsKICAgICByZXNvdXJjZVJlcXVl
c3Quc2V0UHJpb3JpdHkocHJpb3JpdHkpOwogCi0gICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVy
PiBsb2FkZXIgPSByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJjZUxv
YWQoY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPmZyYW1lKCksCi0gICAgICAgIHJl
cXVlc3QuZ2V0KCksIHJlc291cmNlUmVxdWVzdCwgcHJpb3JpdHksIHNlY3VyaXR5Q2hlY2ssIHNl
bmRSZXNvdXJjZUxvYWRDYWxsYmFja3MpOworICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4g
bG9hZGVyID0gcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPnNjaGVkdWxlU3VicmVzb3VyY2VMb2Fk
KGNhY2hlZFJlc291cmNlTG9hZGVyLT5mcmFtZSgpLAorICAgICAgICByZXF1ZXN0LmdldCgpLCBy
ZXNvdXJjZVJlcXVlc3QsIHByaW9yaXR5LCBzZWN1cml0eUNoZWNrLCBzZW5kUmVzb3VyY2VMb2Fk
Q2FsbGJhY2tzLCByZXNvdXJjZS0+aWRlbnRpZmllcigpKTsKICAgICBpZiAoIWxvYWRlciB8fCBs
b2FkZXItPnJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFdoYXQg
aWYgcmVzb3VyY2VzIGluIG90aGVyIGZyYW1lcyB3ZXJlIHdhaXRpbmcgZm9yIHRoaXMgcmV2YWxp
ZGF0aW9uPwogICAgICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2Fubm90IHN0YXJ0IGxvYWRp
bmcgJyVzJyIsIHJlc291cmNlLT51cmwoKS5sYXRpbjEoKS5kYXRhKCkpOwpAQCAtMTMyLDkgKzE0
NiwxMiBAQAogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRlciosIFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQordm9pZCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3Q6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRlciosIFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkK
IHsKICAgICBtX3Jlc291cmNlLT5zZXRSZXF1ZXN0ZWRGcm9tTmV0d29ya2luZ0xheWVyKCk7Cisg
ICAgUmVmUHRyPENhY2hlZFJlc291cmNlUmVxdWVzdD4gcHJvdGVjdCh0aGlzKTsKKyAgICBpZiAo
IXJlcXVlc3QuaXNOdWxsKCkpCisgICAgICAgIG1fcmVzb3VyY2UgPSBtX3Jlc291cmNlLT53aWxs
U2VuZFJlcXVlc3QocmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiB9CiAKIHZvaWQgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKFN1YnJlc291cmNlTG9hZGVyKiBsb2Fk
ZXIsIGRvdWJsZSkKQEAgLTE1NSwzMiArMTcyLDM4IEBACiAKICAgICAvLyBJZiB3ZSBnb3QgYSA0
eHggcmVzcG9uc2UsIHdlJ3JlIHByZXRlbmRpbmcgdG8gaGF2ZSByZWNlaXZlZCBhIG5ldHdvcmsK
ICAgICAvLyBlcnJvciwgc28gd2UgY2FuJ3Qgc2VuZCB0aGUgc3VjY2Vzc2Z1bCBkYXRhKCkgYW5k
IGZpbmlzaCgpIGNhbGxiYWNrcy4KLSAgICBpZiAoIW1fcmVzb3VyY2UtPmVycm9yT2NjdXJyZWQo
KSkgeworICAgIGlmICghbV9yZXNvdXJjZS0+ZXJyb3JPY2N1cnJlZCgpIHx8IG1fcmVzb3VyY2Ut
PnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKSB7CiAgICAgICAgIG1fY2Fj
aGVkUmVzb3VyY2VMb2FkZXItPmxvYWRGaW5pc2hpbmcoKTsKLSAgICAgICAgbV9yZXNvdXJjZS0+
ZGF0YShsb2FkZXItPnJlc291cmNlRGF0YSgpLCB0cnVlKTsKKyAgICAgICAgaWYgKGxvYWRlci0+
YnVmZmVyaW5nRGF0YSgpKQorICAgICAgICAgICAgbV9yZXNvdXJjZS0+ZGF0YShsb2FkZXItPnJl
c291cmNlRGF0YSgpLCB0cnVlKTsKICAgICAgICAgaWYgKCFtX3Jlc291cmNlLT5lcnJvck9jY3Vy
cmVkKCkpCiAgICAgICAgICAgICBtX3Jlc291cmNlLT5maW5pc2goKTsKICAgICB9CiAgICAgbV9j
YWNoZWRSZXNvdXJjZUxvYWRlci0+bG9hZERvbmUodGhpcyk7CiB9CiAKLXZvaWQgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0OjpkaWRGYWlsKFN1YnJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpCit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6ZGlkRmFpbChTdWJyZXNvdXJjZUxv
YWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgaWYgKCFt
X2xvYWRlcikKICAgICAgICAgcmV0dXJuOwotICAgIGRpZEZhaWwoKTsKKyAgICBkaWRGYWlsKGZh
bHNlLCByZXNvdXJjZUVycm9yKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmRp
ZEZhaWwoYm9vbCBjYW5jZWxsZWQpCit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6ZGlkRmFp
bChib29sIGNhbmNlbGxlZCwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKIHsK
ICAgICBpZiAobV9maW5pc2hpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIExPRyhSZXNvdXJj
ZUxvYWRpbmcsICJGYWlsZWQgdG8gbG9hZCAnJXMnIChjYW5jZWxsZWQ9JWQpLlxuIiwgbV9yZXNv
dXJjZS0+dXJsKCkubGF0aW4xKCkuZGF0YSgpLCBjYW5jZWxsZWQpOwogCi0gICAgLy8gUHJldmVu
dCB0aGUgZG9jdW1lbnQgZnJvbSBiZWluZyBkZXN0cm95ZWQgYmVmb3JlIHdlIGFyZSBkb25lIHdp
dGgKLSAgICAvLyB0aGUgY2FjaGVkUmVzb3VyY2VMb2FkZXIgdGhhdCBpdCB3aWxsIGRlbGV0ZSB3
aGVuIHRoZSBkb2N1bWVudCBnZXRzIGRlbGV0ZWQuCi0gICAgUmVmUHRyPERvY3VtZW50PiBwcm90
ZWN0b3IobV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKSk7CisgICAgbV9jdXJyZW50
UmVzb3VyY2VFcnJvciA9IHJlc291cmNlRXJyb3I7CisKKyAgICAvLyBQcmV2ZW50IHRoZSBkb2N1
bWVudCBhbmQgZG9jdW1lbnRMb2FkZXIgZnJvbSBiZWluZyBkZXN0cm95ZWQgYmVmb3JlIHdlIGFy
ZSBkb25lIHdpdGgKKyAgICAvLyB0aGUgY2FjaGVkUmVzb3VyY2VMb2FkZXIgdGhhdCB3aWxsIGJl
IGRlbGV0ZWQgd2hlbiB0aGV5IGdldCBkZWxldGVkLgorICAgIC8vIE5vdGUgdGhhdCBvbmx5IG9u
ZSBvZiB0aGVzZSB3aWxsIGJlIG5vbi1udWxsLgorICAgIC8vIEZJWE1FOiBTaGVuYW5pZ2Fucy4g
V2Ugc2hvdWxkIGp1c3QgbWFrZSBDYWNoZWRSZXNvdXJjZUxvYWRlciBiZSBSZWZDb3VudGVkIGFu
ZCBlbmQgdGhpcyBzaWxsaW5lc3MuCisgICAgUmVmUHRyPERvY3VtZW50PiBwcm90ZWN0b3JEb2N1
bWVudChtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5kb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8RG9j
dW1lbnRMb2FkZXI+IHByb3RlY3RvckRvY3VtZW50TG9hZGVyKG1fY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPmRvY3VtZW50TG9hZGVyKCkpOwogICAgIGlmICghbV9tdWx0aXBhcnQpCiAgICAgICAgIG1f
Y2FjaGVkUmVzb3VyY2VMb2FkZXItPmRlY3JlbWVudFJlcXVlc3RDb3VudChtX3Jlc291cmNlKTsK
ICAgICBtX2ZpbmlzaGluZyA9IHRydWU7CkBAIC0yMjQsNTEgKzI0Nyw2NCBAQAogICAgICAgICBt
ZW1vcnlDYWNoZSgpLT5yZXZhbGlkYXRpb25GYWlsZWQobV9yZXNvdXJjZSk7CiAgICAgfQogCisg
ICAgUmVmUHRyPENhY2hlZFJlc291cmNlUmVxdWVzdD4gcHJvdGVjdCh0aGlzKTsKICAgICBtX3Jl
c291cmNlLT5zZXRSZXNwb25zZShyZXNwb25zZSk7CisgICAgLy8gc2V0UmVzcG9uc2UoKSBjYW4g
dHJpZ2dlciBhIGNhbmNlbGxhdGlvbiBvZiB0aGlzIHJlcXVlc3QuCisgICAgaWYgKG1fZmluaXNo
aW5nKQorICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcgZW5jb2RpbmcgPSByZXNwb25zZS50
ZXh0RW5jb2RpbmdOYW1lKCk7CiAgICAgaWYgKCFlbmNvZGluZy5pc051bGwoKSkKICAgICAgICAg
bV9yZXNvdXJjZS0+c2V0RW5jb2RpbmcoZW5jb2RpbmcpOworCisgICAgaWYgKG1fcmVzb3VyY2Ut
PnJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDAgJiYgIW1fcmVzb3VyY2UtPnNob3Vs
ZElnbm9yZUhUVFBTdGF0dXNDb2RlRXJyb3JzKCkpCisgICAgICAgIG1fcmVzb3VyY2UtPmVycm9y
KENhY2hlZFJlc291cmNlOjpMb2FkRXJyb3IpOwogICAgIAogICAgIGlmIChtX211bHRpcGFydCkg
ewotICAgICAgICBBU1NFUlQobV9yZXNvdXJjZS0+aXNJbWFnZSgpKTsKLSAgICAgICAgc3RhdGlj
X2Nhc3Q8Q2FjaGVkSW1hZ2UqPihtX3Jlc291cmNlKS0+Y2xlYXIoKTsKLSAgICAgICAgaWYgKG1f
Y2FjaGVkUmVzb3VyY2VMb2FkZXItPmZyYW1lKCkpCi0gICAgICAgICAgICBtX2NhY2hlZFJlc291
cmNlTG9hZGVyLT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2hlY2tDb21wbGV0ZWQoKTsKKyAgICAgICAg
QVNTRVJUKG1fcmVzb3VyY2UtPmlzSW1hZ2UoKSB8fCBtX3Jlc291cmNlLT50eXBlKCkgPT0gQ2Fj
aGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSk7CisgICAgICAgIGlmICghbV9pbmNyZW1lbnRhbCkg
eworICAgICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gbG9hZGVyLT5yZXNv
dXJjZURhdGEoKTsKKyAgICAgICAgICAgIGlmIChidWZmZXIpCisgICAgICAgICAgICAgICAgZGlk
UmVjZWl2ZURhdGEobG9hZGVyLCBidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOworICAg
ICAgICB9CisgICAgICAgIGlmIChtX3Jlc291cmNlLT5pc0ltYWdlKCkpIHsKKyAgICAgICAgICAg
IHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4obV9yZXNvdXJjZSktPmNsZWFyKCk7CisgICAgICAg
ICAgICBpZiAobV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSkKKyAgICAgICAgICAgICAg
ICBtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2hlY2tDb21wbGV0
ZWQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChtX3Jlc291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVz
b3VyY2U6Ok1haW5SZXNvdXJjZSkgeworICAgICAgICAgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRl
ci0+ZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWVMb2FkZXIoKS0+c2V0dXBGb3JSZXBsYWNlQnlNSU1F
VHlwZShyZXNwb25zZS5taW1lVHlwZSgpKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PENhY2hl
ZE1haW5SZXNvdXJjZSo+KG1fcmVzb3VyY2UpLT5jbGVhcigpOworICAgICAgICB9CisgICAgICAg
IGxvYWRlci0+Y2xlYXJSZXNvdXJjZURhdGEoKTsKICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmlz
TXVsdGlwYXJ0KCkpIHsKICAgICAgICAgbV9tdWx0aXBhcnQgPSB0cnVlOworCisgICAgICAgIGlm
IChtX3Jlc291cmNlLT5pc0ltYWdlKCkpCisgICAgICAgICAgICBtX2luY3JlbWVudGFsID0gZmFs
c2U7CiAgICAgICAgIAogICAgICAgICAvLyBXZSBkb24ndCBjb3VudCBtdWx0aVBhcnRzIGluIGEg
Q2FjaGVkUmVzb3VyY2VMb2FkZXIncyByZXF1ZXN0IGNvdW50CiAgICAgICAgIG1fY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmRlY3JlbWVudFJlcXVlc3RDb3VudChtX3Jlc291cmNlKTsKIAogICAgICAg
ICAvLyBJZiB3ZSBnZXQgYSBtdWx0aXBhcnQgcmVzcG9uc2UsIHdlIG11c3QgaGF2ZSBhIGhhbmRs
ZQogICAgICAgICBBU1NFUlQobG9hZGVyLT5oYW5kbGUoKSk7Ci0gICAgICAgIGlmICghbV9yZXNv
dXJjZS0+aXNJbWFnZSgpKQorICAgICAgICBpZiAoIW1fcmVzb3VyY2UtPmlzSW1hZ2UoKSAmJiBt
X3Jlc291cmNlLT50eXBlKCkgIT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSkKICAgICAg
ICAgICAgIGxvYWRlci0+aGFuZGxlKCktPmNhbmNlbCgpOwogICAgIH0KKworICAgIGlmIChtX3Jl
c291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSAmJiAhbV9tdWx0
aXBhcnQpCisgICAgICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50TG9hZGVyKCkt
PmNoZWNrQ29udGVudFBvbGljeSgpOwogfQogCiB2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6
ZGlkUmVjZWl2ZURhdGEoU3VicmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QgY2hhciogZGF0
YSwgaW50IHNpemUpCiB7CiAgICAgQVNTRVJUKGxvYWRlciA9PSBtX2xvYWRlci5nZXQoKSk7CiAg
ICAgQVNTRVJUKCFtX3Jlc291cmNlLT5pc0NhY2hlVmFsaWRhdG9yKCkpOwotICAgIAotICAgIGlm
IChtX3Jlc291cmNlLT5lcnJvck9jY3VycmVkKCkpCi0gICAgICAgIHJldHVybjsKIAotICAgIGlm
IChtX3Jlc291cmNlLT5yZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSB7Ci0gICAg
ICAgIGlmICghbV9yZXNvdXJjZS0+c2hvdWxkSWdub3JlSFRUUFN0YXR1c0NvZGVFcnJvcnMoKSkK
LSAgICAgICAgICAgIG1fcmVzb3VyY2UtPmVycm9yKENhY2hlZFJlc291cmNlOjpMb2FkRXJyb3Ip
OworICAgIGlmIChtX3Jlc291cmNlLT5lcnJvck9jY3VycmVkKCkgJiYgbV9yZXNvdXJjZS0+dHlw
ZSgpICE9IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCiAgICAgICAgIHJldHVybjsKLSAg
ICB9CiAKICAgICAvLyBTZXQgdGhlIGRhdGEuCi0gICAgaWYgKG1fbXVsdGlwYXJ0KSB7Ci0gICAg
ICAgIC8vIFRoZSBsb2FkZXIgZGVsaXZlcnMgdGhlIGRhdGEgaW4gYSBtdWx0aXBhcnQgc2VjdGlv
biBhbGwgYXQgb25jZSwgc2VuZCBlb2YuCi0gICAgICAgIC8vIFRoZSByZXNvdXJjZSBkYXRhIHdp
bGwgY2hhbmdlIGFzIHRoZSBuZXh0IHBhcnQgaXMgbG9hZGVkLCBzbyB3ZSBuZWVkIHRvIG1ha2Ug
YSBjb3B5LgotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBjb3BpZWREYXRhID0gU2hhcmVk
QnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSk7Ci0gICAgICAgIG1fcmVzb3VyY2UtPmRhdGEoY29w
aWVkRGF0YS5yZWxlYXNlKCksIHRydWUpOwotICAgIH0gZWxzZSBpZiAobV9pbmNyZW1lbnRhbCkK
KyAgICBpZiAobV9pbmNyZW1lbnRhbCkKICAgICAgICAgbV9yZXNvdXJjZS0+ZGF0YShsb2FkZXIt
PnJlc291cmNlRGF0YSgpLCBmYWxzZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRNYWluUmVzb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkTWFpblJlc291cmNlLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkTWFpblJlc291cmNlLmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENhY2hlZE1haW5SZXNvdXJj
ZV9oCisjZGVmaW5lIENhY2hlZE1haW5SZXNvdXJjZV9oCisKKyNpZiBFTkFCTEUoQ0FDSEVEX01B
SU5fUkVTT1VSQ0UpCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgorI2luY2x1ZGUgIlRp
bWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIENhY2hlZE1haW5SZXNv
dXJjZUNsaWVudDsKK2NsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNl
UmVzcG9uc2U7CisKK2NsYXNzIENhY2hlZE1haW5SZXNvdXJjZSA6IHB1YmxpYyBDYWNoZWRSZXNv
dXJjZSB7CitwdWJsaWM6CisgICAgQ2FjaGVkTWFpblJlc291cmNlKGNvbnN0IFN0cmluZyYgdXJs
KTsKKyAgICB2aXJ0dWFsIH5DYWNoZWRNYWluUmVzb3VyY2UoKTsKKyAgIAorICAgIHZvaWQgY2xl
YXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciopOworCisg
ICAgU2hhcmVkQnVmZmVyKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gQ2FjaGVkUmVzb3VyY2U6OmRh
dGEoKTsgfQorICAgIAorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOworICAgIHZpcnR1YWwgdm9pZCBlcnJvcihD
YWNoZWRSZXNvdXJjZTo6U3RhdHVzKTsKKyAgICB2aXJ0dWFsIENhY2hlZFJlc291cmNlUmVxdWVz
dCogcmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVxdWVzdDt9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZpcnR1YWwgQ2FjaGVkUmVz
b3VyY2UqIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7CisgICAgCisgICAgdmlydHVhbCB1bnNpZ25lZCBpZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRJZGVudGlmaWVyKHVuc2lnbmVk
IGlkZW50aWZpZXIpIHsgbV9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsgfQorCisgICAgdmlydHVh
bCBib29sIG11bHRpcGFydCgpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBt
X2lkZW50aWZpZXI7CisgICAgYm9vbCBtX2luRGlkQWRkQ2xpZW50IDogMTsKKyAgICBib29sIG1f
ZmluaXNoZWQgOiAxOworCit9OworfQorCisjZW5kaWYKKworI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCShy
ZXZpc2lvbiA4MzE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBD
YWNoZWRSZXNvdXJjZVJlcXVlc3RfaAogCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgor
I2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5o
IgogI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KQEAgLTM5LDkgKzQwLDEyIEBACiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3Q+IGxvYWQoQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqLCBDYWNoZWRSZXNvdXJjZSosIGJvb2wgaW5jcmVtZW50YWwsIFNlY3VyaXR5Q2hlY2tQb2xp
Y3ksIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcyk7CiAgICAgICAgIH5DYWNoZWRSZXNv
dXJjZVJlcXVlc3QoKTsKLSAgICAgICAgdm9pZCBkaWRGYWlsKGJvb2wgY2FuY2VsbGVkID0gZmFs
c2UpOworICAgICAgICB2b2lkIGRpZEZhaWwoYm9vbCBjYW5jZWxsZWQgPSBmYWxzZSwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgPSBSZXNvdXJjZUVycm9yKCkpOwogCiAgICAgICAgIENhY2hlZFJlc291
cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVk
UmVzb3VyY2VMb2FkZXI7IH0KKyAgICAgICAgUmVzb3VyY2VMb2FkZXIqIGxvYWRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fbG9hZGVyLmdldCgpOyB9CisgICAgICAgIGNvbnN0IFJlc291cmNlRXJyb3Im
IGN1cnJlbnRSZXNvdXJjZUVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UmVzb3VyY2VF
cnJvcjsgfQorICAgICAgICBib29sIG11bHRpcGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fbXVsdGlw
YXJ0OyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIqLCBDYWNoZWRSZXNvdXJjZSosIGJvb2wgaW5jcmVtZW50YWwpOwpA
QCAtNTgsNiArNjIsNyBAQAogICAgICAgICBib29sIG1faW5jcmVtZW50YWw7CiAgICAgICAgIGJv
b2wgbV9tdWx0aXBhcnQ7CiAgICAgICAgIGJvb2wgbV9maW5pc2hpbmc7CisgICAgICAgIFJlc291
cmNlRXJyb3IgbV9jdXJyZW50UmVzb3VyY2VFcnJvcjsKICAgICB9OwogCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAkocmV2aXNp
b24gODMxODApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsOSArODQsMTEgQEAKIH0KIAogUGFzc1JlZlB0cjxT
dWJyZXNvdXJjZUxvYWRlcj4gUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVN1YnJlc291
cmNlTG9hZChGcmFtZSogZnJhbWUsIFN1YnJlc291cmNlTG9hZGVyQ2xpZW50KiBjbGllbnQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3Jp
dHksIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjaywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZiwgY29uc3QgU3RyaW5nJiBvcHRpb25hbE91dGdvaW5nUmVmZXJyZXIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgYm9vbCBzaG91bGRDb250ZW50
U25pZmYsIHVuc2lnbmVkIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3B0aW9uYWxPdXRnb2lu
Z1JlZmVycmVyKQogewogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gbG9hZGVyID0gU3Vi
cmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCByZXF1ZXN0LCBzZWN1cml0eUNo
ZWNrLCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzLCBzaG91bGRDb250ZW50U25pZmYsIG9wdGlv
bmFsT3V0Z29pbmdSZWZlcnJlcik7CisgICAgaWYgKGlkZW50aWZpZXIpCisgICAgICAgIGxvYWRl
ci0+c2V0SWRlbnRpZmllcihpZGVudGlmaWVyKTsKICAgICBpZiAobG9hZGVyKQogICAgICAgICBz
Y2hlZHVsZUxvYWQobG9hZGVyLmdldCgpLCBwcmlvcml0eSk7CiAgICAgcmV0dXJuIGxvYWRlci5y
ZWxlYXNlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkocmV2
aXNpb24gODMxODApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksMTEgQEAKICNpZm5kZWYgRG9jdW1lbnRMb2FkZXJf
aAogI2RlZmluZSBEb2N1bWVudExvYWRlcl9oCiAKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVT
T1VSQ0UpCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUhhbmRsZS5oIgorI2VuZGlmCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRUaW1pbmcuaCIKICNpbmNsdWRlICJEb2N1bWVu
dFdyaXRlci5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZUJhc2UuaCIKQEAgLTUzLDYgKzU4LDcg
QEAKICAgICBjbGFzcyBBcmNoaXZlUmVzb3VyY2VDb2xsZWN0aW9uOwogICAgIGNsYXNzIEZyYW1l
OwogICAgIGNsYXNzIEZyYW1lTG9hZGVyOworICAgIGNsYXNzIENhY2hlZE1haW5SZXNvdXJjZTsK
ICAgICBjbGFzcyBNYWluUmVzb3VyY2VMb2FkZXI7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFz
cyBSZXNvdXJjZUxvYWRlcjsKQEAgLTYzLDcgKzY5LDEyIEBACiAgICAgdHlwZWRlZiBIYXNoU2V0
PFJlZlB0cjxSZXNvdXJjZUxvYWRlcj4gPiBSZXNvdXJjZUxvYWRlclNldDsKICAgICB0eXBlZGVm
IFZlY3RvcjxSZXNvdXJjZVJlc3BvbnNlPiBSZXNwb25zZVZlY3RvcjsKIAorI2lmIEVOQUJMRShD
QUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICBjbGFzcyBEb2N1bWVudExvYWRlciA6IHB1YmxpYyBD
YWNoZWRSZXNvdXJjZUNsaWVudCwgcHVibGljIFJlZkNvdW50ZWQ8RG9jdW1lbnRMb2FkZXI+IHsK
KyAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisjZWxzZQogICAgIGNsYXNzIERvY3Vt
ZW50TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RG9jdW1lbnRMb2FkZXI+IHsKKyNlbmRpZgog
ICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGNy
ZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRh
JiBkYXRhKQogICAgICAgICB7CkBAIC03OCw3ICs4OSw5IEBACiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2hGcm9tRnJhbWUoKTsKIAogICAgICAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIo
KSBjb25zdDsKKyNpZiAhRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgICAgICBNYWlu
UmVzb3VyY2VMb2FkZXIqIG1haW5SZXNvdXJjZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fbWFp
blJlc291cmNlTG9hZGVyLmdldCgpOyB9CisjZW5kaWYKICAgICAgICAgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+IG1haW5SZXNvdXJjZURhdGEoKSBjb25zdDsKICAgICAgICAgCiAgICAgICAgIERv
Y3VtZW50V3JpdGVyKiB3cml0ZXIoKSBjb25zdCB7IHJldHVybiAmbV93cml0ZXI7IH0KQEAgLTEx
NCw3ICsxMjcsNyBAQAogICAgICAgICBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2U7IH0KICAgICAgICAgY29uc3QgUmVzb3VyY2VFcnJv
ciYgbWFpbkRvY3VtZW50RXJyb3IoKSBjb25zdCB7IHJldHVybiBtX21haW5Eb2N1bWVudEVycm9y
OyB9CiAgICAgICAgIHZvaWQgbWFpblJlY2VpdmVkRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYs
IGJvb2wgaXNDb21wbGV0ZSk7Ci0gICAgICAgIHZvaWQgc2V0UmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpIHsgbV9yZXNwb25zZSA9IHJlc3BvbnNlOyB9CisgICAgICAg
IHZvaWQgc2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2b2lk
IHByZXBhcmVGb3JMb2FkU3RhcnQoKTsKICAgICAgICAgYm9vbCBpc0NsaWVudFJlZGlyZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV9pc0NsaWVudFJlZGlyZWN0OyB9CiAgICAgICAgIHZvaWQgc2V0SXND
bGllbnRSZWRpcmVjdChib29sIGlzQ2xpZW50UmVkaXJlY3QpIHsgbV9pc0NsaWVudFJlZGlyZWN0
ID0gaXNDbGllbnRSZWRpcmVjdDsgfQpAQCAtMjQzLDYgKzI1NiwxNyBAQAogICAgICAgICBBcHBs
aWNhdGlvbkNhY2hlSG9zdCogYXBwbGljYXRpb25DYWNoZUhvc3QoKSBjb25zdCB7IHJldHVybiBt
X2FwcGxpY2F0aW9uQ2FjaGVIb3N0LmdldCgpOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDQUNI
RURfTUFJTl9SRVNPVVJDRSkKKyAgICAgICAgLy8gVXNlZCBkdXJpbmcgcmVkaXJlY3RzIHRvIGVu
c3VyZSB0aGF0IHdlIGhhdmUgc2VwYXJhdGUgQ2FjaGVkUmVzb3VyY2VzIGZvciB0aGUgcmVkaXJl
Y3Qgc291cmNlCisgICAgICAgIC8vIGFuZCB0aGUgcmVkaXJlY3QgdGFyZ2V0LgorICAgICAgICB2
b2lkIHNldENhY2hlZE1haW5SZXNvdXJjZShDYWNoZWRNYWluUmVzb3VyY2UqIHJlc291cmNlKTsK
KworICAgICAgICBQYXNzT3duUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiByZWxlYXNlQ2FjaGVk
UmVzb3VyY2VMb2FkZXIoKSB7IHJldHVybiBtX2NhY2hlZFJlc291cmNlTG9hZGVyLnJlbGVhc2Uo
KTsgfQorCisgICAgICAgIHZvaWQgbWFpblJlc291cmNlU2hvdWxkTm90QnVmZmVyRGF0YSgpOwor
ICAgICAgICB2b2lkIGNoZWNrQ29udGVudFBvbGljeSgpOworI2VuZGlmCisgICAgICAgIAogICAg
IHByb3RlY3RlZDoKICAgICAgICAgRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKIApAQCAtMjU4LDE1ICsyODIsMzAgQEAKIAogICAg
ICAgICB2b2lkIGRlbGl2ZXJTdWJzdGl0dXRlUmVzb3VyY2VzQWZ0ZXJEZWxheSgpOwogICAgICAg
ICB2b2lkIHN1YnN0aXR1dGVSZXNvdXJjZURlbGl2ZXJ5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVu
dExvYWRlcj4qKTsKLSAgICAgICAgICAgICAgICAKKworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9S
RVNPVVJDRSkKKyAgICAgICAgLy8gQ2FjaGVkUmVzb3VyY2VDbGllbnQKKyAgICAgICAgdm9pZCBu
b3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgICAgICB2b2lkIGNvbnRpbnVlQWZ0
ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlvbik7CisgICAgICAgIHN0YXRpYyB2b2lkIGNhbGxD
b250aW51ZUFmdGVyQ29udGVudFBvbGljeSh2b2lkKiBhcmd1bWVudCwgUG9saWN5QWN0aW9uKTsK
KyNlbmRpZgorCiAgICAgICAgIEZyYW1lKiBtX2ZyYW1lOwogCisjaWYgRU5BQkxFKENBQ0hFRF9N
QUlOX1JFU09VUkNFKQorICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRNYWluUmVz
b3VyY2U+IG1fY2FjaGVkTWFpblJlc291cmNlOworI2Vsc2UKICAgICAgICAgUmVmUHRyPE1haW5S
ZXNvdXJjZUxvYWRlcj4gbV9tYWluUmVzb3VyY2VMb2FkZXI7CisjZW5kaWYKKyAgICAgICAgT3du
UHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBtX2NhY2hlZFJlc291cmNlTG9hZGVyOworCiAgICAg
ICAgIFJlc291cmNlTG9hZGVyU2V0IG1fc3VicmVzb3VyY2VMb2FkZXJzOwogICAgICAgICBSZXNv
dXJjZUxvYWRlclNldCBtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVyczsKICAgICAgICAgUmVz
b3VyY2VMb2FkZXJTZXQgbV9wbHVnSW5TdHJlYW1Mb2FkZXJzOwogCisjaWYgIUVOQUJMRShDQUNI
RURfTUFJTl9SRVNPVVJDRSkKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9tYWluUmVz
b3VyY2VEYXRhOworI2VuZGlmCiAgICAgICAgIAogICAgICAgICBtdXRhYmxlIERvY3VtZW50V3Jp
dGVyIG1fd3JpdGVyOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIu
aAkocmV2aXNpb24gODMxODApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsNyBAQAogICAgIFN0cmluZyBtX21pbWVU
eXBlOwogCiAgICAgYm9vbCBtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyOworICAgIGJvb2wgbV9l
bmRpbmc7CiAgICAgU3RyaW5nIG1fZW5jb2Rpbmc7CiAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURl
Y29kZXI+IG1fZGVjb2RlcjsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHJldmlzaW9uIDgzMTgw
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQAogICAgIEFwcGxpY2F0aW9uQ2Fj
aGVHcm91cDo6c2VsZWN0Q2FjaGUobV9kb2N1bWVudExvYWRlci0+ZnJhbWUoKSwgbWFuaWZlc3RV
UkwpOwogfQogCi12b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRNYWluUmVzb3Vy
Y2UoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURh
dGEpCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRNYWluUmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURh
dGEpCiB7CiAgICAgLy8gQ2hlY2sgaWYgdGhpcyByZXF1ZXN0IHNob3VsZCBiZSBsb2FkZWQgZnJv
bSB0aGUgYXBwbGljYXRpb24gY2FjaGUKICAgICBpZiAoIXN1YnN0aXR1dGVEYXRhLmlzVmFsaWQo
KSAmJiBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsKQEAgLTkxLDcgKzkxLDcgQEAKICAg
ICB9CiB9CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZE1haW5SZXNvdXJj
ZUZvclJlZGlyZWN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3Vic3RpdHV0ZURhdGEmIHN1
YnN0aXR1dGVEYXRhKQordm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkTWFpblJl
c291cmNlRm9yUmVkaXJlY3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0
dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCiB7CiAgICAgQVNTRVJUKHN0YXR1cygpID09IFVOQ0FD
SEVEKTsKICAgICBtYXliZUxvYWRNYWluUmVzb3VyY2UocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEp
OwpAQCAtMTA0LDggKzEwNCwxMCBAQAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZCgpKSB7CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0
LCBkb2N1bWVudExvYWRlcigpKTsKIAorI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0Up
CiAgICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNh
dGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBtX21haW5S
ZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworI2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTE4
LDggKzEyMCwxMCBAQAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpKSB7
CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0LCBtX2RvY3Vt
ZW50TG9hZGVyKTsKIAorI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCiAgICAgICAg
ICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNhY2hl
KGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFw
cGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworI2Vu
ZGlmCiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgJ
KHJldmlzaW9uIDgzMTgwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw4ICsxMjIsOCBAQAogICAg
ICAgICB2b2lkIHNlbGVjdENhY2hlV2l0aG91dE1hbmlmZXN0KCk7CiAgICAgICAgIHZvaWQgc2Vs
ZWN0Q2FjaGVXaXRoTWFuaWZlc3QoY29uc3QgS1VSTCYgbWFuaWZlc3RVUkwpOwogCi0gICAgICAg
IHZvaWQgbWF5YmVMb2FkTWFpblJlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFN1YnN0aXR1dGVE
YXRhJik7Ci0gICAgICAgIHZvaWQgbWF5YmVMb2FkTWFpblJlc291cmNlRm9yUmVkaXJlY3QoUmVz
b3VyY2VSZXF1ZXN0JiwgU3Vic3RpdHV0ZURhdGEmKTsKKyAgICAgICAgdm9pZCBtYXliZUxvYWRN
YWluUmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKKyAg
ICAgICAgdm9pZCBtYXliZUxvYWRNYWluUmVzb3VyY2VGb3JSZWRpcmVjdChSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogICAgICAgICBib29sIG1heWJlTG9hZEZhbGxi
YWNrRm9yTWFpblJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKICAgICAgICAgYm9vbCBtYXliZUxvYWRGYWxsYmFja0Zvck1haW5FcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgICAgIHZv
aWQgbWFpblJlc291cmNlRGF0YVJlY2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgs
IGxvbmcgbG9uZyBsZW5ndGhSZWNlaXZlZCwgYm9vbCBhbGxBdE9uY2UpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAkocmV2aXNpb24gODMx
ODApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAKIHB1YmxpYzoKICAgICBmcmllbmQgUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKTsKIAotICAgIFBhc3NSZWZQ
dHI8U3VicmVzb3VyY2VMb2FkZXI+IHNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKEZyYW1lKiwgU3Vi
cmVzb3VyY2VMb2FkZXJDbGllbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxv
YWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5TG93LCBTZWN1cml0eUNoZWNrUG9saWN5
ID0gRG9TZWN1cml0eUNoZWNrLCBib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MgPSB0cnVl
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IHRydWUsIGNvbnN0IFN0cmluZyYgb3B0aW9uYWxP
dXRnb2luZ1JlZmVycmVyID0gU3RyaW5nKCkpOworICAgIFBhc3NSZWZQdHI8U3VicmVzb3VyY2VM
b2FkZXI+IHNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKEZyYW1lKiwgU3VicmVzb3VyY2VMb2FkZXJD
bGllbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJl
c291cmNlTG9hZFByaW9yaXR5TG93LCBTZWN1cml0eUNoZWNrUG9saWN5ID0gRG9TZWN1cml0eUNo
ZWNrLCBib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MgPSB0cnVlLCBib29sIHNob3VsZENv
bnRlbnRTbmlmZiA9IHRydWUsIHVuc2lnbmVkIGlkZW50aWZpZXIgPSAwLCBjb25zdCBTdHJpbmcm
IG9wdGlvbmFsT3V0Z29pbmdSZWZlcnJlciA9IFN0cmluZygpKTsKICAgICBQYXNzUmVmUHRyPE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiBzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUq
LCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCosIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpOwogICAgIHZvaWQgYWRkTWFpblJlc291cmNlTG9hZChSZXNvdXJjZUxvYWRlciopOwogICAg
IHZvaWQgcmVtb3ZlKFJlc291cmNlTG9hZGVyKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAJKHJldmlzaW9uIDgzMTgwKQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEsMTAg
QEAKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCiAjaW5jbHVkZSAiQXJjaGl2
ZVJlc291cmNlQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkNhY2hlZE1haW5SZXNvdXJjZS5oIgog
I2luY2x1ZGUgIkNhY2hlZFBhZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIK
QEAgLTQyLDE1ICs0NCwyMyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKKyNpbmNsdWRlICJI
VE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJNYWluUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJNZW1v
cnlDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVy
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9V
bnVzZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKQEAgLTY5LDYgKzc5LDE3IEBACiAgICAgICAgIGxvYWRl
cnNDb3B5W2ldLT5jYW5jZWwoKTsKIH0KIAorc3RhdGljIHZvaWQgY2FuY2VsQWxsQnV0KGNvbnN0
IFJlc291cmNlTG9hZGVyU2V0JiBsb2FkZXJzLCBSZXNvdXJjZUxvYWRlciogbG9hZGVyVG9Ta2lw
KQoreworICAgIFZlY3RvcjxSZWZQdHI8UmVzb3VyY2VMb2FkZXI+ID4gbG9hZGVyc0NvcHk7Cisg
ICAgY29weVRvVmVjdG9yKGxvYWRlcnMsIGxvYWRlcnNDb3B5KTsKKyAgICBzaXplX3Qgc2l6ZSA9
IGxvYWRlcnNDb3B5LnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsr
aSkgeworICAgICAgICBpZiAobG9hZGVyVG9Ta2lwICE9IGxvYWRlcnNDb3B5W2ldKQorICAgICAg
ICAgICAgbG9hZGVyc0NvcHlbaV0tPmNhbmNlbCgpOworICAgIH0KK30KKwogc3RhdGljIHZvaWQg
c2V0QWxsRGVmZXJzTG9hZGluZyhjb25zdCBSZXNvdXJjZUxvYWRlclNldCYgbG9hZGVycywgYm9v
bCBkZWZlcnMpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxSZXNvdXJjZUxvYWRlcj4gPiBsb2FkZXJz
Q29weTsKQEAgLTExMSw2ICsxMzIsMTAgQEAKIAogRG9jdW1lbnRMb2FkZXI6On5Eb2N1bWVudExv
YWRlcigpCiB7CisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgIGlmIChtX2Nh
Y2hlZE1haW5SZXNvdXJjZSkKKyAgICAgICAgbV9jYWNoZWRNYWluUmVzb3VyY2UtPnJlbW92ZUNs
aWVudCh0aGlzKTsKKyNlbmRpZgogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBmcmFtZUxvYWRlcigp
LT5hY3RpdmVEb2N1bWVudExvYWRlcigpICE9IHRoaXMgfHwgIWZyYW1lTG9hZGVyKCktPmlzTG9h
ZGluZygpKTsKICAgICBpZiAobV9pY29uTG9hZERlY2lzaW9uQ2FsbGJhY2spCiAgICAgICAgIG1f
aWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CkBAIC0xMjAsMTAgKzE0NSwx
NSBAQAogCiBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRG9jdW1lbnRMb2FkZXI6Om1haW5SZXNv
dXJjZURhdGEoKSBjb25zdAogeworI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCiAg
ICAgaWYgKG1fbWFpblJlc291cmNlRGF0YSkKICAgICAgICAgcmV0dXJuIG1fbWFpblJlc291cmNl
RGF0YTsKICAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIHJldHVybiBtX21h
aW5SZXNvdXJjZUxvYWRlci0+cmVzb3VyY2VEYXRhKCk7CisjZWxzZQorICAgIGlmIChtX2NhY2hl
ZE1haW5SZXNvdXJjZSkKKyAgICAgICAgcmV0dXJuIG1fY2FjaGVkTWFpblJlc291cmNlLT5kYXRh
KCk7CisjZW5kaWYKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMjQ3LDkgKzI3NywxNCBAQAogCiAg
ICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gRG9jdW1lbnRMb2FkZXI6OmZyYW1lTG9hZGVy
KCk7CiAgICAgCisjaWYgIUVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKICAgICBpZiAobV9t
YWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIC8vIFN0b3AgdGhlIG1haW4gcmVzb3VyY2UgbG9h
ZGVyIGFuZCBsZXQgaXQgc2VuZCB0aGUgY2FuY2VsbGVkIG1lc3NhZ2UuCiAgICAgICAgIG1fbWFp
blJlc291cmNlTG9hZGVyLT5jYW5jZWwoKTsKKyNlbHNlCisgICAgaWYgKG1fY2FjaGVkTWFpblJl
c291cmNlICYmIG1fY2FjaGVkTWFpblJlc291cmNlLT5pc0xvYWRpbmcoKSkKKyAgICAgICAgOyAv
LyBUaGUgbG9hZGVyIGZvciB0aGUgbWFpbiByZXNvdXJjZSBpcyBpbiB0aGUgc3VicmVzb3VyY2Ug
bG9hZGVyIGFycmF5IHNvIHN0b3BMb2FkaW5nU3VicmVzb3VyY2VzKCkgd2lsbCBjYW5jZWwgaXQg
dG9vLgorI2VuZGlmCiAgICAgZWxzZSBpZiAoIW1fc3VicmVzb3VyY2VMb2FkZXJzLmlzRW1wdHko
KSkKICAgICAgICAgLy8gVGhlIG1haW4gcmVzb3VyY2UgbG9hZGVyIGFscmVhZHkgZmluaXNoZWQg
bG9hZGluZy4gU2V0IHRoZSBjYW5jZWxsZWQgZXJyb3Igb24gdGhlIAogICAgICAgICAvLyBkb2N1
bWVudCBhbmQgbGV0IHRoZSBzdWJyZXNvdXJjZUxvYWRlcnMgc2VuZCBpbmRpdmlkdWFsIGNhbmNl
bGxlZCBtZXNzYWdlcyBiZWxvdy4KQEAgLTI2MSw2ICsyOTYsNyBAQAogICAgIAogICAgIHN0b3BM
b2FkaW5nU3VicmVzb3VyY2VzKCk7CiAgICAgc3RvcExvYWRpbmdQbHVnSW5zKCk7CisgICAgdXBk
YXRlTG9hZGluZygpOwogICAgIAogICAgIG1faXNTdG9wcGluZyA9IGZhbHNlOwogfQpAQCAtMzA5
LDYgKzM0NSwxMSBAQAogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpjb21taXREYXRhKGNvbnN0IGNo
YXIqIGJ5dGVzLCBpbnQgbGVuZ3RoKQogeworI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCisgICAgLy8gRklYTUU6IExhc3QgdHdvIHBhcmFtcyBhcmUgZHVtbWllcyBhbmQgY2Fu
IHByb2JhYmx5IGJlIHJlbW92ZWQgZnJvbSB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbgorICAgIGFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNlaXZlZChieXRlcywgbGVu
Z3RoLCAwLCBmYWxzZSk7CisjZW5kaWYKKwogICAgIC8vIFNldCB0aGUgdGV4dCBlbmNvZGluZy4g
IFRoaXMgaXMgc2FmZSB0byBjYWxsIG11bHRpcGxlIHRpbWVzLgogICAgIGJvb2wgdXNlckNob3Nl
biA9IHRydWU7CiAgICAgU3RyaW5nIGVuY29kaW5nID0gb3ZlcnJpZGVFbmNvZGluZygpOwpAQCAt
MzU3LDggKzM5OCwxMiBAQAogICAgICAgICBmcmFtZUxvYWRlcigpLT5yZXZlcnRUb1Byb3Zpc2lv
bmFsKHRoaXMpOwogICAgICAgICBzZXR1cEZvclJlcGxhY2UoKTsKICAgICB9Ci0gICAgCi0gICAg
c3RvcExvYWRpbmdTdWJyZXNvdXJjZXMoKTsKKworICAgIC8vIFNhdmUgb2ZmIHRoZSBSZXNvdXJj
ZUxvYWRlciBmb3IgdGhlIG1haW4gcmVzb3VyY2Ugc28gaXQgZG9lc24ndCBnZXQgY2FuY2VsbGVk
CisgICAgLy8gaW4gc3RvcExvYWRpbmdTdWJyZXNvdXJjZXMoKS4KKyAgICBSZWZQdHI8UmVzb3Vy
Y2VMb2FkZXI+IG1haW5SZXNvdXJjZUxvYWRlciA9IG1fY2FjaGVkTWFpblJlc291cmNlLT5yZXF1
ZXN0KCktPmxvYWRlcigpOworICAgIGNhbmNlbEFsbEJ1dChtX3N1YnJlc291cmNlTG9hZGVycywg
bWFpblJlc291cmNlTG9hZGVyLmdldCgpKTsKKwogICAgIHN0b3BMb2FkaW5nUGx1Z0lucygpOwog
I2lmIEVOQUJMRShXRUJfQVJDSElWRSkKICAgICBjbGVhckFyY2hpdmVSZXNvdXJjZXMoKTsKQEAg
LTQwNSw2ICs0NTAsMjYgQEAKICAgICBtX2ZyYW1lID0gMDsKIH0KIAordm9pZCBEb2N1bWVudExv
YWRlcjo6c2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7Cisg
ICAgQVNTRVJUKG1fZnJhbWUpOworCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKKyAgICBpZiAoYXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tGb3JN
YWluUmVzcG9uc2UobV9yZXF1ZXN0LCByZXNwb25zZSkpCisgICAgICAgIHJldHVybjsKKyNlbmRp
ZgorCisgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSByZXNwb25zZS5odHRw
SGVhZGVyRmllbGRzKCkuZmluZChBdG9taWNTdHJpbmcoIngtZnJhbWUtb3B0aW9ucyIpKTsKKyAg
ICBpZiAoaXQgIT0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygpLmVuZCgpKSB7CisgICAgICAg
IFN0cmluZyBjb250ZW50ID0gaXQtPnNlY29uZDsKKyAgICAgICAgaWYgKG1fZnJhbWUtPmxvYWRl
cigpLT5zaG91bGRJbnRlcnJ1cHRMb2FkRm9yWEZyYW1lT3B0aW9ucyhjb250ZW50LCByZXNwb25z
ZS51cmwoKSkpIHsKKyAgICAgICAgICAgIHN0b3BMb2FkaW5nU3VicmVzb3VyY2VzKCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgbV9yZXNwb25zZSA9IHJlc3Bv
bnNlOworfQorCiB2b2lkIERvY3VtZW50TG9hZGVyOjpwcmVwYXJlRm9yTG9hZFN0YXJ0KCkKIHsK
ICAgICBBU1NFUlQoIW1faXNTdG9wcGluZyk7CkBAIC00MTcsMTggKzQ4MiwxOSBAQAogICAgIGZy
YW1lTG9hZGVyKCktPnByZXBhcmVGb3JMb2FkU3RhcnQoKTsKIH0KIAotdm9pZCBEb2N1bWVudExv
YWRlcjo6c2V0UHJpbWFyeUxvYWRDb21wbGV0ZShib29sIGZsYWcpCit2b2lkIERvY3VtZW50TG9h
ZGVyOjpzZXRQcmltYXJ5TG9hZENvbXBsZXRlKGJvb2wgY29tcGxldGUpCiB7Ci0gICAgbV9wcmlt
YXJ5TG9hZENvbXBsZXRlID0gZmxhZzsKLSAgICBpZiAoZmxhZykgewotICAgICAgICBpZiAobV9t
YWluUmVzb3VyY2VMb2FkZXIpIHsKLSAgICAgICAgICAgIG1fbWFpblJlc291cmNlRGF0YSA9IG1f
bWFpblJlc291cmNlTG9hZGVyLT5yZXNvdXJjZURhdGEoKTsKLSAgICAgICAgICAgIG1fbWFpblJl
c291cmNlTG9hZGVyID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0aGlzID09IGZyYW1l
TG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkpCi0gICAgICAgICAgICB1cGRhdGVMb2Fk
aW5nKCk7CisgICAgbV9wcmltYXJ5TG9hZENvbXBsZXRlID0gY29tcGxldGU7CisgICAgaWYgKCFt
X3ByaW1hcnlMb2FkQ29tcGxldGUpCisgICAgICAgIHJldHVybjsKKyNpZiAhRU5BQkxFKENBQ0hF
RF9NQUlOX1JFU09VUkNFKQorICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlcikgeworICAgICAg
ICBtX21haW5SZXNvdXJjZURhdGEgPSBtX21haW5SZXNvdXJjZUxvYWRlci0+cmVzb3VyY2VEYXRh
KCk7CisgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0gMDsKICAgICB9CisjZW5kaWYKKyAg
ICBpZiAodGhpcyA9PSBmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKQorICAg
ICAgICB1cGRhdGVMb2FkaW5nKCk7CiB9CiAKIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGlu
Z0luQVBJU2Vuc2UoKSBjb25zdApAQCAtNzE1LDggKzc4MSwxMCBAQAogCiB2b2lkIERvY3VtZW50
TG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogeworI2lmICFFTkFCTEUoQ0FD
SEVEX01BSU5fUkVTT1VSQ0UpCiAgICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyKQogICAgICAg
ICBtX21haW5SZXNvdXJjZUxvYWRlci0+c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOworI2VuZGlm
CiAgICAgc2V0QWxsRGVmZXJzTG9hZGluZyhtX3N1YnJlc291cmNlTG9hZGVycywgZGVmZXJzKTsK
ICAgICBzZXRBbGxEZWZlcnNMb2FkaW5nKG1fcGx1Z0luU3RyZWFtTG9hZGVycywgZGVmZXJzKTsK
ICAgICBpZiAoIWRlZmVycykKQEAgLTc2MSw3ICs4MjksMTEgQEAKIAogYm9vbCBEb2N1bWVudExv
YWRlcjo6aXNMb2FkaW5nTWFpblJlc291cmNlKCkgY29uc3QKIHsKKyNpZiAhRU5BQkxFKENBQ0hF
RF9NQUlOX1JFU09VUkNFKQogICAgIHJldHVybiAhIW1fbWFpblJlc291cmNlTG9hZGVyOworI2Vs
c2UKKyAgICByZXR1cm4gbV9jYWNoZWRNYWluUmVzb3VyY2UgJiYgbV9jYWNoZWRNYWluUmVzb3Vy
Y2UtPmlzTG9hZGluZygpOworI2VuZGlmCiB9CiAKIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9h
ZGluZ1N1YnJlc291cmNlcygpIGNvbnN0CkBAIC03NzYsMTEgKzg0OCwxNiBAQAogCiBib29sIERv
Y3VtZW50TG9hZGVyOjppc0xvYWRpbmdNdWx0aXBhcnRDb250ZW50KCkgY29uc3QKIHsKKyNpZiBF
TkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgcmV0dXJuIG1fY2FjaGVkTWFpblJlc291
cmNlICYmIG1fY2FjaGVkTWFpblJlc291cmNlLT5tdWx0aXBhcnQoKTsKKyNlbHNlCiAgICAgcmV0
dXJuIG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5pc0xvYWRp
bmdNdWx0aXBhcnRDb250ZW50KCk7CisjZW5kaWYKIH0KIAogYm9vbCBEb2N1bWVudExvYWRlcjo6
c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKKyNp
ZiAhRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgIEFTU0VSVCghbV9tYWluUmVzb3Vy
Y2VMb2FkZXIpOwogICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0gTWFpblJlc291cmNlTG9hZGVy
OjpjcmVhdGUobV9mcmFtZSk7CiAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPnNldElkZW50aWZp
ZXIoaWRlbnRpZmllcik7CkBAIC03OTYsMTMgKzg3Myw1MSBAQAogICAgICAgICBtX21haW5SZXNv
dXJjZUxvYWRlciA9IDA7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisjZWxzZQorICAg
IEFTU0VSVCghbV9jYWNoZWRNYWluUmVzb3VyY2UpOworICAgIEFTU0VSVChtX2RvY3VtZW50TG9h
ZFRpbWluZy5uYXZpZ2F0aW9uU3RhcnQpOworICAgIEFTU0VSVCghbV9kb2N1bWVudExvYWRUaW1p
bmcuZmV0Y2hTdGFydCk7CiAKKyAgICBtX2RvY3VtZW50TG9hZFRpbWluZy5mZXRjaFN0YXJ0ID0g
Y3VycmVudFRpbWUoKTsKKyAgICAKKyAgICAvLyBXaGVuIHRoZSBkb2N1bWVudCBpcyBjcmVhdGVk
LCB0aGUgb3duZXJzaGlwIG9mIHRoZSBDYWNoZWRSZXNvdXJjZUxvYWRlciB3aWxsIG1vdmUgdG8g
dGhlIERvY3VtZW50CisgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlciA9IG5ldyBDYWNoZWRSZXNv
dXJjZUxvYWRlcih0aGlzKTsKKworICAgIGlmIChtX3JlcXVlc3QudXJsKCkuaXNFbXB0eSgpKSB7
CisgICAgICAgIHJlY2VpdmVkRGF0YSgiIiwgMCk7CisgICAgICAgIGZyYW1lTG9hZGVyKCktPmZp
bmlzaGVkTG9hZGluZygpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBGcmFt
ZSogdG9wID0gbV9mcmFtZS0+dHJlZSgpLT50b3AoKTsKKyAgICBpZiAodG9wICE9IG1fZnJhbWUp
CisgICAgICAgIGZyYW1lTG9hZGVyKCktPmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KHRv
cC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbV9yZXF1ZXN0LnVybCgpKTsKKyAgICAK
KyAgICBtX2NhY2hlZE1haW5SZXNvdXJjZSA9IG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVl
c3RNYWluUmVzb3VyY2UobV9yZXF1ZXN0LnVybCgpKTsKKyAgICBpZiAoIW1fY2FjaGVkTWFpblJl
c291cmNlKSB7CisgICAgICAgIExPR19FUlJPUigiY291bGQgbm90IGNyZWF0ZSBXZWJSZXNvdXJj
ZUhhbmRsZSBmb3IgVVJMICVzIC0tIHNob3VsZCBiZSBjYXVnaHQgYnkgcG9saWN5IGhhbmRsZXIg
bGV2ZWwiLCBtX3JlcXVlc3QudXJsKCkuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKKyAgICBhcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRNYWluUmVzb3VyY2Uo
bV9yZXF1ZXN0LCBtX3N1YnN0aXR1dGVEYXRhKTsKKyNlbmRpZgorCisgICAgbV9jYWNoZWRNYWlu
UmVzb3VyY2UtPnNldElkZW50aWZpZXIoaWRlbnRpZmllcik7CisgICAgbV9jYWNoZWRNYWluUmVz
b3VyY2UtPmFkZENsaWVudCh0aGlzKTsgICAgCisjZW5kaWYKKwogICAgIHJldHVybiB0cnVlOwog
fQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpjYW5jZWxNYWluUmVzb3VyY2VMb2FkKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQogeworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkK
KyAgICBpZiAobV9jYWNoZWRNYWluUmVzb3VyY2UgJiYgbV9jYWNoZWRNYWluUmVzb3VyY2UtPnJl
cXVlc3QoKSkKKyAgICAgICAgbV9jYWNoZWRNYWluUmVzb3VyY2UtPnJlcXVlc3QoKS0+ZGlkRmFp
bCh0cnVlLCBlcnJvcik7CisjZWxzZQogICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5jYW5jZWwo
ZXJyb3IpOworI2VuZGlmCiB9CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN1YnJlc291cmNlTG9h
ZGVyRmluaXNoZWRMb2FkaW5nT25lUGFydChSZXNvdXJjZUxvYWRlciogbG9hZGVyKQpAQCAtODE2
LDYgKzkzMSw5IEBACiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnRyYW5zZmVyTG9hZGluZ1Jlc291
cmNlc0Zyb21QYWdlKFBhZ2UqIG9sZFBhZ2UpCiB7CisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JF
U09VUkNFKQorICAgIFVOVVNFRF9QQVJBTShvbGRQYWdlKTsKKyNlbHNlCiAgICAgQVNTRVJUKG9s
ZFBhZ2UgIT0gbV9mcmFtZS0+cGFnZSgpKTsKIAogICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBm
cmFtZUxvYWRlcigpOwpAQCAtODM1LDYgKzk1Myw3IEBACiAgICAgICAgICAgICAgICAgKCppdCkt
PmlkZW50aWZpZXIoKSwgdGhpcywgcmVxdWVzdCwgb2xkUGFnZSk7CiAgICAgICAgIH0KICAgICB9
CisjZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6aWNvbkxvYWREZWNpc2lvbkF2YWls
YWJsZSgpCkBAIC04NDIsNyArOTYxLDEyOCBAQAogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBt
X2ZyYW1lLT5sb2FkZXIoKS0+aWNvbkxvYWREZWNpc2lvblJlY2VpdmVkKGljb25EYXRhYmFzZSgp
LnN5bmNocm9ub3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChLVVJMKGZyYW1lTG9hZGVyKCktPmlj
b25VUkwoKSksIHRoaXMpKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VS
Q0UpCit2b2lkIERvY3VtZW50TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UpCit7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9j
YWNoZWRNYWluUmVzb3VyY2UpOwogCisgICAgZG91YmxlIHRpbWUgPSBjdXJyZW50VGltZSgpOwor
ICAgIHRpbWluZygpLT5yZXNwb25zZUVuZCA9IHRpbWU7CisKKyAgICAvLyBGcmFtZUxvYWRlcjo6
ZmluaXNoZWRMb2FkaW5nKCkgY2FuIGRlbGV0ZSB0aGlzLgorICAgIFJlZlB0cjxEb2N1bWVudExv
YWRlcj4gcHJvdGVjdCh0aGlzKTsKKyAgICBpZiAobV9mcmFtZSkgeworICAgICAgICBmcmFtZUxv
YWRlcigpLT5maW5pc2hlZExvYWRpbmcoKTsKKyAgICAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFt
ZS0+cGFnZSgpKQorICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jb21w
bGV0ZVByb2dyZXNzKG1fY2FjaGVkTWFpblJlc291cmNlLT5pZGVudGlmaWVyKCkpOworICAgIH0K
KyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGFwcGxpY2F0aW9uQ2Fj
aGVIb3N0KCktPmZpbmlzaGVkTG9hZGluZ01haW5SZXNvdXJjZSgpOworI2VuZGlmCit9CisKKwor
c3RhdGljIHZvaWQgY29udGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3kodm9pZCogYXJndW1lbnQs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91
bGRDb250aW51ZSkKK3sKKyAgICBpZiAoIXNob3VsZENvbnRpbnVlKQorICAgICAgICBzdGF0aWNf
Y2FzdDxEb2N1bWVudExvYWRlcio+KGFyZ3VtZW50KS0+c3RvcExvYWRpbmdTdWJyZXNvdXJjZXMo
KTsKK30KKwordm9pZCBEb2N1bWVudExvYWRlcjo6Y2FsbENvbnRpbnVlQWZ0ZXJDb250ZW50UG9s
aWN5KHZvaWQqIGFyZ3VtZW50LCBQb2xpY3lBY3Rpb24gcG9saWN5KQoreworICAgIHN0YXRpY19j
YXN0PERvY3VtZW50TG9hZGVyKj4oYXJndW1lbnQpLT5jb250aW51ZUFmdGVyQ29udGVudFBvbGlj
eShwb2xpY3kpOworfQorCit2b2lkIERvY3VtZW50TG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3ko
KQoreworI2lmIEVOQUJMRShGVFBESVIpCisgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFt
ZS0+c2V0dGluZ3MoKTsKKyAgICBpZiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmZvcmNlRlRQRGly
ZWN0b3J5TGlzdGluZ3MoKSAmJiBtX3Jlc3BvbnNlLm1pbWVUeXBlKCkgPT0gImFwcGxpY2F0aW9u
L3gtZnRwLWRpcmVjdG9yeSIpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorICAgIGZyYW1lTG9h
ZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIGNh
bGxDb250aW51ZUFmdGVyQ29udGVudFBvbGljeSwgdGhpcyk7Cit9CisKK3ZvaWQgRG9jdW1lbnRM
b2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlvbiBjb250ZW50UG9s
aWN5KQoreworICAgIEtVUkwgdXJsID0gbV9yZXF1ZXN0LnVybCgpOworICAgIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUgPSBtX3Jlc3BvbnNlLm1pbWVUeXBlKCk7CisgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0KiByZXF1ZXN0ID0gbV9jYWNoZWRNYWluUmVzb3VyY2UgPyBtX2NhY2hlZE1haW5SZXNv
dXJjZS0+cmVxdWVzdCgpIDogMDsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsK
KyAgICBSZXNvdXJjZUxvYWRlciogbWFpblJlc291cmNlTG9hZGVyID0gcmVxdWVzdC0+bG9hZGVy
KCk7CisgICAgCisgICAgc3dpdGNoIChjb250ZW50UG9saWN5KSB7CisgICAgY2FzZSBQb2xpY3lV
c2U6IHsKKyAgICAgICAgLy8gUHJldmVudCByZW1vdGUgd2ViIGFyY2hpdmVzIGZyb20gbG9hZGlu
ZyBiZWNhdXNlIHRoZXkgY2FuIGNsYWltIHRvIGJlIGZyb20gYW55IGRvbWFpbiBhbmQgdGh1cyBh
dm9pZCBjcm9zcy1kb21haW4gc2VjdXJpdHkgY2hlY2tzICg0MTIwMjU1KS4KKyAgICAgICAgYm9v
bCBpc1JlbW90ZVdlYkFyY2hpdmUgPSBlcXVhbElnbm9yaW5nQ2FzZSgiYXBwbGljYXRpb24veC13
ZWJhcmNoaXZlIiwgbWltZVR5cGUpICYmICFtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSAmJiAh
dXJsLmlzTG9jYWxGaWxlKCk7CisgICAgICAgIGlmICghZnJhbWVMb2FkZXIoKS0+Y2FuU2hvd01J
TUVUeXBlKG1pbWVUeXBlKSB8fCBpc1JlbW90ZVdlYkFyY2hpdmUpIHsKKyAgICAgICAgICAgIGZy
YW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2Fubm90U2hvd01JTUVUeXBlKG1fcmVzcG9u
c2UpOworICAgICAgICAgICAgLy8gQ2hlY2sgcmVhY2hlZFRlcm1pbmFsU3RhdGUgc2luY2UgdGhl
IGxvYWQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNhbmNlbGxlZCBpbnNpZGUgb2YgX2hhbmRsZVVu
aW1wbGVtZW50YWJsZVBvbGljeVdpdGhFcnJvckNvZGU6Oi4KKyAgICAgICAgICAgIGlmICghbWFp
blJlc291cmNlTG9hZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpKQorICAgICAgICAgICAgICAg
IHJlcXVlc3QtPmRpZEZhaWwodHJ1ZSwgZnJhbWVMb2FkZXIoKS0+aW50ZXJydXB0aW9uRm9yUG9s
aWN5Q2hhbmdlRXJyb3IobV9yZXF1ZXN0KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBjYXNlIFBvbGljeURvd25sb2FkOgorICAgICAgICAvLyBtX2hhbmRsZSBjYW4g
YmUgbnVsbCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBw
bGljYXRpb24gY2FjaGUuCisgICAgICAgIGlmICghbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUo
KSkgeworICAgICAgICAgICAgcmVxdWVzdC0+ZGlkRmFpbChmYWxzZSwgZnJhbWVMb2FkZXIoKS0+
Y2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5kb3dubG9hZChtYWluUmVz
b3VyY2VMb2FkZXItPmhhbmRsZSgpLCBtX3JlcXVlc3QsIG1haW5SZXNvdXJjZUxvYWRlci0+aGFu
ZGxlKCktPmZpcnN0UmVxdWVzdCgpLCBtX3Jlc3BvbnNlKTsKKyAgICAgICAgLy8gSXQgbWlnaHQg
aGF2ZSBnb25lIG1pc3NpbmcKKyAgICAgICAgaWYgKGZyYW1lTG9hZGVyKCkpCisgICAgICAgICAg
ICByZXF1ZXN0LT5kaWRGYWlsKHRydWUsIGZyYW1lTG9hZGVyKCktPmludGVycnVwdGlvbkZvclBv
bGljeUNoYW5nZUVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBQ
b2xpY3lJZ25vcmU6IHsKKyAgICAgICAgcmVxdWVzdC0+ZGlkRmFpbCh0cnVlLCBmcmFtZUxvYWRl
cigpLT5pbnRlcnJ1cHRpb25Gb3JQb2xpY3lDaGFuZ2VFcnJvcihtX3JlcXVlc3QpKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9Cit9CisKK3ZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldENhY2hlZE1haW5SZXNv
dXJjZShDYWNoZWRNYWluUmVzb3VyY2UqIHJlc291cmNlKQoreworI2lmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIC8vIFdlIGNoZWNrZWQgYXBwbGljYXRpb24gY2Fj
aGUgZm9yIGluaXRpYWwgVVJMLCBub3cgd2UgbmVlZCB0byBjaGVjayBpdCBmb3IgcmVkaXJlY3Rl
ZCBvbmUuCisgICAgICAgIEFTU0VSVCghbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpOworICAg
ICAgICBhcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRNYWluUmVzb3VyY2VGb3JSZWRp
cmVjdChtX3JlcXVlc3QsIG1fc3Vic3RpdHV0ZURhdGEpOworI2VuZGlmCisKKyAgICAvLyBDaGVj
ayBpZiB0aGUgcmVkaXJlY3RlZCB1cmwgaXMgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHJlZGlyZWN0
aW5nIHVybCdzIHRpbWluZyBpbmZvcm1hdGlvbi4KKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShLVVJMKFBhcnNlZFVSTFN0
cmluZywgcmVzb3VyY2UtPnVybCgpKSk7CisgICAgaWYgKCFzZWN1cml0eU9yaWdpbi0+Y2FuUmVx
dWVzdChLVVJMKFBhcnNlZFVSTFN0cmluZywgbV9jYWNoZWRNYWluUmVzb3VyY2UtPnVybCgpKSkp
CisgICAgICAgIG1fZG9jdW1lbnRMb2FkVGltaW5nLmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSB0
cnVlOworICAgIG1fZG9jdW1lbnRMb2FkVGltaW5nLnJlZGlyZWN0Q291bnQrKzsKKyAgICBpZiAo
IW1fZG9jdW1lbnRMb2FkVGltaW5nLnJlZGlyZWN0U3RhcnQpCisgICAgICAgIG1fZG9jdW1lbnRM
b2FkVGltaW5nLnJlZGlyZWN0U3RhcnQgPSBtX2RvY3VtZW50TG9hZFRpbWluZy5mZXRjaFN0YXJ0
OworICAgIG1fZG9jdW1lbnRMb2FkVGltaW5nLnJlZGlyZWN0RW5kID0gY3VycmVudFRpbWUoKTsK
KyAgICBtX2RvY3VtZW50TG9hZFRpbWluZy5mZXRjaFN0YXJ0ID0gbV9kb2N1bWVudExvYWRUaW1p
bmcucmVkaXJlY3RFbmQ7CisKKyAgICBtX2NhY2hlZE1haW5SZXNvdXJjZS0+cmVtb3ZlQ2xpZW50
KHRoaXMpOworICAgIG1fY2FjaGVkTWFpblJlc291cmNlID0gcmVzb3VyY2U7CisKKyAgICAvLyBG
SVhNRTogSWRlYWxseSB3ZSdkIHN0b3AgdGhlIEkvTyB1bnRpbCB3ZSBoZWFyIGJhY2sgZnJvbSB0
aGUgbmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUKKyAgICAvLyBsaXN0ZW5lci4gQnV0IHRoZXJl
J3Mgbm8gd2F5IHRvIGRvIHRoYXQgaW4gcHJhY3RpY2UuIFNvIGluc3RlYWQgd2UgY2FuY2VsIGxh
dGVyIGlmIHRoZQorICAgIC8vIGxpc3RlbmVyIHRlbGxzIHVzIHRvLiBJbiBwcmFjdGljZSB0aGF0
IG1lYW5zIHRoZSBuYXZpZ2F0aW9uIHBvbGljeSBuZWVkcyB0byBiZSBkZWNpZGVkCisgICAgLy8g
c3luY2hyb25vdXNseSBmb3IgdGhlc2UgcmVkaXJlY3QgY2FzZXMuCisgICAgZnJhbWVMb2FkZXIo
KS0+cG9saWN5Q2hlY2tlcigpLT5jaGVja05hdmlnYXRpb25Qb2xpY3kobV9yZXF1ZXN0LCBjb250
aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeSwgdGhpcyk7Cit9CisKK3ZvaWQgRG9jdW1lbnRMb2Fk
ZXI6Om1haW5SZXNvdXJjZVNob3VsZE5vdEJ1ZmZlckRhdGEoKQoreworICAgIGlmICghbV9jYWNo
ZWRNYWluUmVzb3VyY2UgfHwgIW1fY2FjaGVkTWFpblJlc291cmNlLT5yZXF1ZXN0KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChSZXNvdXJjZUxvYWRlciogbWFpblJlc291cmNlTG9hZGVy
ID0gbV9jYWNoZWRNYWluUmVzb3VyY2UtPnJlcXVlc3QoKS0+bG9hZGVyKCkpCisgICAgICAgIG1h
aW5SZXNvdXJjZUxvYWRlci0+c2V0U2hvdWxkQnVmZmVyRGF0YShmYWxzZSk7Cit9CisjZW5kaWYK
Kwogc3RhdGljIHZvaWQgaWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKEljb25Mb2FkRGVjaXNpb24g
ZGVjaXNpb24sIHZvaWQqIGNvbnRleHQpCiB7CiAgICAgc3RhdGljX2Nhc3Q8RG9jdW1lbnRMb2Fk
ZXIqPihjb250ZXh0KS0+Y29udGludWVJY29uTG9hZFdpdGhEZWNpc2lvbihkZWNpc2lvbik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAJKHJldmlzaW9uIDgz
MTgwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTgsNiArNTgsNyBAQAogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1f
cmVjZWl2ZWREYXRhKGZhbHNlKQogICAgICwgbV9lbmNvZGluZ1dhc0Nob3NlbkJ5VXNlcihmYWxz
ZSkKKyAgICAsIG1fZW5kaW5nKGZhbHNlKQogewogfQogCkBAIC0yMTEsOSArMjEyLDExIEBACiAK
IHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZElmTm90TG9hZGluZ01haW5SZXNvdXJjZSgpCiB7Ci0g
ICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpLT5pc0xvYWRpbmdNYWluUmVzb3VyY2UoKSB8fCAhbV9m
cmFtZS0+cGFnZSgpIHx8ICFtX2ZyYW1lLT5kb2N1bWVudCgpKQorICAgIGlmIChtX2ZyYW1lLT5s
b2FkZXIoKS0+aXNMb2FkaW5nTWFpblJlc291cmNlKCkgfHwgIW1fZnJhbWUtPnBhZ2UoKSB8fCAh
bV9mcmFtZS0+ZG9jdW1lbnQoKSB8fCBtX2VuZGluZykKICAgICAgICAgcmV0dXJuOwogCisgICAg
bV9lbmRpbmcgPSB0cnVlOworCiAgICAgLy8gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4NTQKICAgICAvLyBUaGUgZnJhbWUncyBsYXN0IHJlZiBtYXkgYmUgcmVtb3Zl
ZCBhbmQgaXQgY2FuIGJlIGRlbGV0ZWQgYnkgY2hlY2tDb21wbGV0ZWQoKSwgCiAgICAgLy8gc28g
d2UnbGwgYWRkIGEgcHJvdGVjdGl2ZSByZWZjb3VudApAQCAtMjIyLDYgKzIyNSw3IEBACiAgICAg
Ly8gbWFrZSBzdXJlIG5vdGhpbmcncyBsZWZ0IGluIHRoZXJlCiAgICAgYWRkRGF0YSgwLCAwLCB0
cnVlKTsKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5maW5pc2hQYXJzaW5nKCk7CisgICAgbV9l
bmRpbmcgPSBmYWxzZTsKIH0KIAogU3RyaW5nIERvY3VtZW50V3JpdGVyOjplbmNvZGluZygpIGNv
bnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24g
ODMxODApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBACiAgICAgICAgIGJvb2wgcmVhY2hlZFRlcm1pbmFs
U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWNoZWRUZXJtaW5hbFN0YXRlOyB9CiAKICAgICAg
ICAgdm9pZCBzZXRTaG91bGRCdWZmZXJEYXRhKGJvb2wgc2hvdWxkQnVmZmVyRGF0YSk7CisgICAg
ICAgIGJvb2wgYnVmZmVyaW5nRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQnVmZmVyRGF0
YTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBSZXNvdXJjZUxvYWRlcihGcmFtZSosIGJv
b2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCShyZXZp
c2lvbiA4MzE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDYgQEAKIFN1YnJlc291cmNlTG9hZGVyOjpT
dWJyZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUsIFN1YnJlc291cmNlTG9hZGVyQ2xpZW50KiBj
bGllbnQsIGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgYm9vbCBzaG91bGRDb250ZW50
U25pZmYpCiAgICAgOiBSZXNvdXJjZUxvYWRlcihmcmFtZSwgc2VuZFJlc291cmNlTG9hZENhbGxi
YWNrcywgc2hvdWxkQ29udGVudFNuaWZmKQogICAgICwgbV9jbGllbnQoY2xpZW50KQotICAgICwg
bV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudChmYWxzZSkKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAg
c3VicmVzb3VyY2VMb2FkZXJDb3VudGVyLmluY3JlbWVudCgpOwpAQCAtNzgsMTIgKzc3LDEyIEBA
CiAKICAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJlcjsKICAgICBTdHJpbmcgb3V0Z29pbmdPcmln
aW47Ci0gICAgaWYgKG9wdGlvbmFsT3V0Z29pbmdSZWZlcnJlci5pc051bGwoKSkgewotICAgICAg
ICBvdXRnb2luZ1JlZmVycmVyID0gZmwtPm91dGdvaW5nUmVmZXJyZXIoKTsKLSAgICAgICAgb3V0
Z29pbmdPcmlnaW4gPSBmbC0+b3V0Z29pbmdPcmlnaW4oKTsKLSAgICB9IGVsc2UgeworICAgIGlm
ICghb3B0aW9uYWxPdXRnb2luZ1JlZmVycmVyLmlzTnVsbCgpKSB7CiAgICAgICAgIG91dGdvaW5n
UmVmZXJyZXIgPSBvcHRpb25hbE91dGdvaW5nUmVmZXJyZXI7CiAgICAgICAgIG91dGdvaW5nT3Jp
Z2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3V0Z29pbmdSZWZlcnJlcikt
PnRvU3RyaW5nKCk7CisgICAgfSBlbHNlIGlmICghZnJhbWUtPmxvYWRlcigpLT5zdXBwcmVzc09w
ZW5lckluTmV3RnJhbWUoKSkgeworICAgICAgICBvdXRnb2luZ1JlZmVycmVyID0gZmwtPm91dGdv
aW5nUmVmZXJyZXIoKTsKKyAgICAgICAgb3V0Z29pbmdPcmlnaW4gPSBmbC0+b3V0Z29pbmdPcmln
aW4oKTsKICAgICB9CiAKICAgICBpZiAoU2VjdXJpdHlPcmlnaW46OnNob3VsZEhpZGVSZWZlcnJl
cihyZXF1ZXN0LnVybCgpLCBvdXRnb2luZ1JlZmVycmVyKSkKQEAgLTEwNiw5ICsxMDUsMTMgQEAK
IHsKICAgICAvLyBTdG9yZSB0aGUgcHJldmlvdXMgVVJMIGJlY2F1c2UgdGhlIGNhbGwgdG8gUmVz
b3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCB3aWxsIG1vZGlmeSBpdC4KICAgICBLVVJMIHBy
ZXZpb3VzVVJMID0gcmVxdWVzdCgpLnVybCgpOwotICAgIAorCisgICAgaWYgKG1fZG9jdW1lbnRM
b2FkZXItPnJlcXVlc3QoKS51cmwoKSA9PSByZXF1ZXN0KCkudXJsKCkgJiYgIW1fZnJhbWUtPnRy
ZWUoKS0+cGFyZW50KCkpCisgICAgICAgIG5ld1JlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tp
ZXMobmV3UmVxdWVzdC51cmwoKSk7CisKKyAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IHBy
b3RlY3QodGhpcyk7CiAgICAgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChuZXdSZXF1
ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKLSAgICBpZiAoIXByZXZpb3VzVVJMLmlzTnVsbCgpICYm
ICFuZXdSZXF1ZXN0LmlzTnVsbCgpICYmIHByZXZpb3VzVVJMICE9IG5ld1JlcXVlc3QudXJsKCkg
JiYgbV9jbGllbnQpCisgICAgaWYgKG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+d2lsbFNl
bmRSZXF1ZXN0KHRoaXMsIG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogfQogCkBAIC0x
MjQsOSArMTI3LDYgQEAKIHsKICAgICBBU1NFUlQoIXIuaXNOdWxsKCkpOwogCi0gICAgaWYgKHIu
aXNNdWx0aXBhcnQoKSkKLSAgICAgICAgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCA9IHRydWU7
Ci0KICAgICAvLyBSZWZlcmVuY2UgdGhlIG9iamVjdCBpbiB0aGlzIG1ldGhvZCBzaW5jZSB0aGUg
YWRkaXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbwogICAgIC8vIGFueXRoaW5nIGluY2x1ZGluZyBy
ZW1vdmluZyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9m
IHRoaXMgaXMgMzI2NjIxNi4KICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IHByb3RlY3Qo
dGhpcyk7CkBAIC0xMzgsMjAgKzEzOCw2IEBACiAgICAgaWYgKHJlYWNoZWRUZXJtaW5hbFN0YXRl
KCkpCiAgICAgICAgIHJldHVybjsKICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKHIpOwotICAgIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IHJlc291cmNl
RGF0YSgpOwotICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50ICYmIGJ1ZmZlciAmJiBi
dWZmZXItPnNpemUoKSkgewotICAgICAgICAvLyBTaW5jZSBhIHN1YnJlc291cmNlIGxvYWRlciBk
b2VzIG5vdCBsb2FkIG11bHRpcGFydCBzZWN0aW9ucyBwcm9ncmVzc2l2ZWx5LAotICAgICAgICAv
LyBkZWxpdmVyIHRoZSBwcmV2aW91c2x5IHJlY2VpdmVkIGRhdGEgdG8gdGhlIGxvYWRlciBhbGwg
YXQgb25jZSBub3cuCi0gICAgICAgIC8vIFRoZW4gY2xlYXIgdGhlIGRhdGEgdG8gbWFrZSB3YXkg
Zm9yIHRoZSBuZXh0IG11bHRpcGFydCBzZWN0aW9uLgotICAgICAgICBpZiAobV9jbGllbnQpCi0g
ICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZURhdGEodGhpcywgYnVmZmVyLT5kYXRhKCks
IGJ1ZmZlci0+c2l6ZSgpKTsKLSAgICAgICAgY2xlYXJSZXNvdXJjZURhdGEoKTsKLSAgICAgICAg
Ci0gICAgICAgIC8vIEFmdGVyIHRoZSBmaXJzdCBtdWx0aXBhcnQgc2VjdGlvbiBpcyBjb21wbGV0
ZSwgc2lnbmFsIHRvIGRlbGVnYXRlcyB0aGF0IHRoaXMgbG9hZCBpcyAiZmluaXNoZWQiIAotICAg
ICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdWJyZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGluZ09u
ZVBhcnQodGhpcyk7Ci0gICAgICAgIGRpZEZpbmlzaExvYWRpbmdPbmVQYXJ0KDApOwotICAgIH0K
IH0KIAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGxlbmd0aFJlY2VpdmVkLCBib29sIGFsbEF0T25j
ZSkKQEAgLTE2Miw5ICsxNDgsNyBAQAogICAgIAogICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YShkYXRhLCBsZW5ndGgsIGxlbmd0aFJlY2VpdmVkLCBhbGxBdE9uY2UpOwogCi0gICAg
Ly8gQSBzdWJyZXNvdXJjZSBsb2FkZXIgZG9lcyBub3QgbG9hZCBtdWx0aXBhcnQgc2VjdGlvbnMg
cHJvZ3Jlc3NpdmVseS4KLSAgICAvLyBTbyBkb24ndCBkZWxpdmVyIGFueSBkYXRhIHRvIHRoZSBs
b2FkZXIgeWV0LgotICAgIGlmICghbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCAmJiBtX2NsaWVu
dCkKKyAgICBpZiAobV9jbGllbnQgJiYgYnVmZmVyaW5nRGF0YSgpKQogICAgICAgICBtX2NsaWVu
dC0+ZGlkUmVjZWl2ZURhdGEodGhpcywgZGF0YSwgbGVuZ3RoKTsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDgzMTgwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NiwxMCArMTc2LDExIEBACiAgICAgICAg
IG1fbG9hZGVyLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotdm9pZCBEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVy
LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UpCit2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6d2lsbFNlbmRSZXF1
ZXN0KFN1YnJlc291cmNlTG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQogewogICAgIEFTU0VSVChtX2NsaWVu
dCk7Ci0gICAgQVNTRVJUX1VOVVNFRChsb2FkZXIsIGxvYWRlciA9PSBtX2xvYWRlcik7CisgICAg
aWYgKHJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpCisgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghaXNBbGxvd2VkUmVkaXJlY3QocmVxdWVzdC51cmwoKSkpIHsKICAgICAgICAgUmVmUHRyPERv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKQEAgLTM0NiwxMSArMzQ3LDEz
IEBACiAgICAgICAgIC8vIERvbid0IHNuaWZmIGNvbnRlbnQgb3Igc2VuZCBsb2FkIGNhbGxiYWNr
cyBmb3IgdGhlIHByZWZsaWdodCByZXF1ZXN0LgogICAgICAgICBib29sIHNlbmRMb2FkQ2FsbGJh
Y2tzID0gbV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzICYmICFtX2FjdHVhbFJlcXVlc3Q7CiAg
ICAgICAgIGJvb2wgc25pZmZDb250ZW50ID0gbV9vcHRpb25zLnNuaWZmQ29udGVudCAmJiAhbV9h
Y3R1YWxSZXF1ZXN0OworICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdChyZXF1ZXN0
KTsKKyAgICAgICAgbmV3UmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIobV9kb2N1bWVudC0+ZnJhbWUo
KS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSk7CiAKICAgICAgICAgLy8gQ2xlYXIgdGhl
IGxvYWRlciBzbyB0aGF0IGFueSBjYWxsYmFja3MgZnJvbSBTdWJyZXNvdXJjZUxvYWRlcjo6Y3Jl
YXRlIHdpbGwgbm90IGhhdmUgdGhlIG9sZCBsb2FkZXIuCiAgICAgICAgIG1fbG9hZGVyID0gMDsK
LSAgICAgICAgbV9sb2FkZXIgPSByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+c2NoZWR1bGVTdWJy
ZXNvdXJjZUxvYWQobV9kb2N1bWVudC0+ZnJhbWUoKSwgdGhpcywgcmVxdWVzdCwgUmVzb3VyY2VM
b2FkUHJpb3JpdHlNZWRpdW0sIHNlY3VyaXR5Q2hlY2ssIHNlbmRMb2FkQ2FsbGJhY2tzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzbmlmZkNvbnRlbnQsIG1fb3B0aW9uYWxPdXRnb2luZ1JlZmVycmVyKTsKKyAgICAg
ICAgbV9sb2FkZXIgPSByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJj
ZUxvYWQobV9kb2N1bWVudC0+ZnJhbWUoKSwgdGhpcywgbmV3UmVxdWVzdCwgUmVzb3VyY2VMb2Fk
UHJpb3JpdHlNZWRpdW0sIHNlY3VyaXR5Q2hlY2ssIHNlbmRMb2FkQ2FsbGJhY2tzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzbmlmZkNvbnRlbnQsIDAsIG1fb3B0aW9uYWxPdXRnb2luZ1JlZmVycmVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJy
ZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJy
ZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiA4MzE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw2IEBACiAj
ZW5kaWYKIAogICAgICAgICBTdWJyZXNvdXJjZUxvYWRlckNsaWVudCogbV9jbGllbnQ7Ci0gICAg
ICAgIGJvb2wgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudDsKICAgICB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106086</attachid>
            <date>2011-09-01 20:13:30 -0700</date>
            <delta_ts>2012-05-17 15:36:59 -0700</delta_ts>
            <desc>patch that can be applied on ToT</desc>
            <filename>patch-49246a</filename>
            <type>text/plain</type>
            <size>80495</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA5NDMwMSkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xODgyLDYgKzE4ODIsMTAgQEAg
X19aTjdXZWJDb3JlNkVkaXRvcjE0Y2FwaXRhbGl6ZVdvcmRFdgogX19aTjdXZWJDb3JlMTJFdmVu
dEhhbmRsZXIxOGhhbmRsZUdlc3R1cmVFdmVudEVSS05TXzIwUGxhdGZvcm1HZXN0dXJlRXZlbnRF
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKK19fWk43V2ViQ29y
ZTE0RG9jdW1lbnRMb2FkZXIxNG5vdGlmeUZpbmlzaGVkRVBOU18xNENhY2hlZFJlc291cmNlRQor
I2VuZGlmCisKICNpZiBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMpCiBfX1pON1dlYkNvcmUxNFJl
c291cmNlSGFuZGxlNDZzZXRQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJC
YXNlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTIxY3VycmVu
dFN0b3JhZ2VTZXNzaW9uRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk0MzAxKQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yODEzLDYg
KzI4MTMsOCBAQAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0Nh
Y2hlZE1haW5SZXNvdXJjZS5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRN
YWluUmVzb3VyY2UuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50V2Fs
a2VyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50
V2Fsa2VyLmgnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gOTQzMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU0NTcsNiAr
NTQ1Nyw4IEBACiAJCUQwMDBFRDI4MTFDMUI5Q0QwMEM0NzcyNiAvKiBTdWJmcmFtZUxvYWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDAwMEVEMjYx
MUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRDAxQTI3QUQxMEM5QkZEODAwMDI2QTQyIC8q
IFNwYWNlU3BsaXRTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDAxQTI3QUIxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcu
Y3BwICovOyB9OwogCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDAxQTI3
QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlEMDI2MjdCNTEyRjM2NzAxMDA4QUU2
NUYgLyogQ2FjaGVkTWFpblJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQwMjYyN0IzMTJGMzY3MDEwMDhBRTY1RiAvKiBDYWNoZWRNYWlu
UmVzb3VyY2UuY3BwICovOyB9OworCQlEMDI2MjdCNjEyRjM2NzAxMDA4QUU2NUYgLyogQ2FjaGVk
TWFpblJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMDI2MjdCNDEyRjM2NzAxMDA4QUU2NUYgLyogQ2FjaGVkTWFpblJlc291cmNlLmggKi87
IH07CiAJCUQwNUNFRDI5MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDA1Q0VEMjcw
QTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5jcHAgKi87IH07CiAJCUQwNUNF
RDJBMEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwNUNFRDI4MEE0MEJCMkMwMEM1QUYz
OCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCAqLzsgfTsKIAkJRDA2QzBEOEYwQ0ZEMTE0NjAwNjVG
NDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3Jt
YXRDb21tYW5kLmggKi87IH07CkBAIC0xMjIxNSw2ICsxMjIxNyw4IEBACiAJCUQwMDBFRDI2MTFD
MUI5Q0QwMEM0NzcyNiAvKiBTdWJmcmFtZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdWJmcmFtZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGFjZVNwbGl0U3RyaW5nLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNw
YWNlU3BsaXRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BhY2VT
cGxpdFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDI2MjdCMzEyRjM2
NzAxMDA4QUU2NUYgLyogQ2FjaGVkTWFpblJlc291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZE1haW5SZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUQwMjYyN0I0MTJGMzY3MDEwMDhBRTY1RiAvKiBDYWNoZWRNYWluUmVz
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkTWFpblJlc291
cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwNUNFRDI3MEE0MEJCMkMwMEM1
QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZvcm1hdEJsb2NrQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUQwNUNFRDI4MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1hdEJsb2NrQ29tbWFuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDZDMEQ4RDBDRkQxMTQ2MDA2NUY0M0Yg
LyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdmVGb3JtYXRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NzU3Niw2ICsxNzU4MCw4IEBACiAJCUE4RDJCMjUyMTI4N0E1NjAwMEFGNEREQSAvKiBjYWNoZSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRDAyNjI3QjMx
MkYzNjcwMTAwOEFFNjVGIC8qIENhY2hlZE1haW5SZXNvdXJjZS5jcHAgKi8sCisJCQkJRDAyNjI3
QjQxMkYzNjcwMTAwOEFFNjVGIC8qIENhY2hlZE1haW5SZXNvdXJjZS5oICovLAogCQkJCUJDQjE2
QzAwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCAqLywKIAkJCQlC
Q0IxNkMwMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkQ1NTU3R5bGVTaGVldC5oICovLAogCQkJ
CUJDNjRCNEM5MENCNDI5NUQwMDVGMkI2MiAvKiBDYWNoZWRGb250LmNwcCAqLywKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gOTQzMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjQsNiArNDI0LDcgQEAgRG9jdW1l
bnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgSwogICAgICwgbV93cml0aW5nTW9kZVNl
dE9uRG9jdW1lbnRFbGVtZW50KGZhbHNlKQogICAgICwgbV93cml0ZVJlY3Vyc2lvbklzVG9vRGVl
cChmYWxzZSkKICAgICAsIG1fd3JpdGVSZWN1cnNpb25EZXB0aCgwKQorICAgICwgbV93aW5kb3dM
b2FkRXZlbnRGaXJlZChmYWxzZSkKICAgICAsIG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCgwKQog
ewogICAgIG1fZG9jdW1lbnQgPSB0aGlzOwpAQCAtNDQ5LDcgKzQ1MCwxNiBAQCBEb2N1bWVudDo6
RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLCiAKICAgICBtX21hcmtlcnMgPSBhZG9wdFB0
cihuZXcgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKTsKIAorI2lmIEVOQUJMRShDQUNIRURfTUFJ
Tl9SRVNPVVJDRSkKKyAgICBpZiAobV9mcmFtZSkKKyAgICAgICAgbV9jYWNoZWRSZXNvdXJjZUxv
YWRlciA9IG1fZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5yZWxlYXNlQ2FjaGVk
UmVzb3VyY2VMb2FkZXIoKTsKKyAgICBpZiAobV9jYWNoZWRSZXNvdXJjZUxvYWRlcikKKyAgICAg
ICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+bW92ZVRvRG9jdW1lbnQodGhpcyk7CisgICAgZWxz
ZQorICAgICAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyID0gYWRvcHRQdHIobmV3IENhY2hlZFJl
c291cmNlTG9hZGVyKHRoaXMpKTsKKyNlbHNlCiAgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlciA9
IGFkb3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJjZUxvYWRlcih0aGlzKSk7CisjZW5kaWYKIAogICAg
IG1fdmlzdWFsbHlPcmRlcmVkID0gZmFsc2U7CiAgICAgbV9iUGFyc2luZyA9IGZhbHNlOwpAQCAt
MzQxMiw2ICszNDIyLDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hXaW5kb3dFdmVudChQYXNz
Ugogdm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hXaW5kb3dMb2FkRXZlbnQoKQogewogICAgIEFTU0VS
VCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKKyAgICBtX3dpbmRvd0xvYWRFdmVudEZpcmVk
ID0gdHJ1ZTsKICAgICBET01XaW5kb3cqIGRvbVdpbmRvdyA9IHRoaXMtPmRvbVdpbmRvdygpOwog
ICAgIGlmICghZG9tV2luZG93KQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAkocmV2aXNpb24gOTQzMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNzQxLDYgKzc0MSw3IEBAIHB1YmxpYzoKICAgICBFdmVudExpc3Rl
bmVyKiBnZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlKTsKICAgICB2b2lkIGRpc3BhdGNoV2luZG93RXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4sIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+ID0gMCk7CiAgICAgdm9pZCBkaXNwYXRjaFdpbmRv
d0xvYWRFdmVudCgpOworICAgIGJvb2wgd2luZG93TG9hZEV2ZW50RmlyZWQoKSBjb25zdCB7IHJl
dHVybiBtX3dpbmRvd0xvYWRFdmVudEZpcmVkOyB9CiAKICAgICBQYXNzUmVmUHRyPEV2ZW50PiBj
cmVhdGVFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgRXhjZXB0aW9uQ29kZSYpOwogCkBA
IC0xMzk0LDYgKzEzOTUsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TWF0Y2hl
cj4gbV9tZWRpYVF1ZXJ5TWF0Y2hlcjsKICAgICBib29sIG1fd3JpdGVSZWN1cnNpb25Jc1Rvb0Rl
ZXA7CiAgICAgdW5zaWduZWQgbV93cml0ZVJlY3Vyc2lvbkRlcHRoOworICAgIGJvb2wgbV93aW5k
b3dMb2FkRXZlbnRGaXJlZDsKICAgICAKICAgICB1bnNpZ25lZCBtX3doZWVsRXZlbnRIYW5kbGVy
Q291bnQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAkocmV2aXNp
b24gOTQzMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDExIEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6
Y3JlYXRlRG9jdW1lbnQKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKKyNpZiBF
TkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgZnJhbWUtPmxvYWRlcigpLT5hY3RpdmVE
b2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VTaG91bGROb3RCdWZmZXJEYXRhKCk7CisjZWxz
ZQogICAgIGZyYW1lLT5sb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291
cmNlTG9hZGVyKCktPnNldFNob3VsZEJ1ZmZlckRhdGEoRG9Ob3RCdWZmZXJEYXRhKTsKKyNlbmRp
ZgogfQogCiB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3Jp
dGVyKiwgY29uc3QgY2hhciosIHNpemVfdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2lu
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiA5NDMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksMTAgKzEyOSwxNCBAQCB2b2lk
IFBsdWdpbkRvY3VtZW50UGFyc2VyOjphcHBlbmRCeXRlcyhECiAgICAgaWYgKFJlbmRlclBhcnQq
IHJlbmRlcmVyID0gbV9lbWJlZEVsZW1lbnQtPnJlbmRlclBhcnQoKSkgewogICAgICAgICBpZiAo
V2lkZ2V0KiB3aWRnZXQgPSByZW5kZXJlci0+d2lkZ2V0KCkpIHsKICAgICAgICAgICAgIGZyYW1l
LT5sb2FkZXIoKS0+Y2xpZW50KCktPnJlZGlyZWN0RGF0YVRvUGx1Z2luKHdpZGdldCk7CisjaWYg
RU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigp
LT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VTaG91bGROb3RCdWZmZXJEYXRh
KCk7CisjZWxzZQogICAgICAgICAgICAgLy8gSW4gYSBwbHVnaW4gZG9jdW1lbnQsIHRoZSBtYWlu
IHJlc291cmNlIGlzIHRoZSBwbHVnaW4uIElmIHdlIGhhdmUgYSBudWxsIHdpZGdldCwgdGhhdCBt
ZWFucwogICAgICAgICAgICAgLy8gdGhlIGxvYWRpbmcgb2YgdGhlIHBsdWdpbiB3YXMgY2FuY2Vs
bGVkLCB3aGljaCBnaXZlcyB1cyBhIG51bGwgbWFpblJlc291cmNlTG9hZGVyKCksIHNvIHdlCiAg
ICAgICAgICAgICAvLyBuZWVkIHRvIGhhdmUgdGhpcyBjYWxsIGluIGEgbnVsbCBjaGVjayBvZiB0
aGUgd2lkZ2V0IG9yIG9mIG1haW5SZXNvdXJjZUxvYWRlcigpLgogICAgICAgICAgICAgZnJhbWUt
PmxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+
c2V0U2hvdWxkQnVmZmVyRGF0YShEb05vdEJ1ZmZlckRhdGEpOworI2VuZGlmCiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTE4MCw3ICsxODQsMTEgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6Y2FuY2Vs
TWFudWFsUGx1Z2luTAogICAgIGlmICghc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KCkpCiAgICAg
ICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICBmcmFt
ZSgpLT5sb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+Y2FuY2VsTWFpblJlc291cmNl
TG9hZChSZXNvdXJjZUVycm9yKCkpOworI2Vsc2UKICAgICBmcmFtZSgpLT5sb2FkZXIoKS0+YWN0
aXZlRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCktPmNhbmNlbCgpOworI2Vu
ZGlmCiAgICAgc2V0U2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KGZhbHNlKTsKIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCShyZXZpc2lvbiA5NDMwMSkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDggKzMxLDEwIEBACiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5o
IgogI2luY2x1ZGUgIkFyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJDYWNo
ZWRNYWluUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50UGFyc2VyLmgiCkBAIC00MiwxNiArNDQsMjYgQEAKICNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVU
cmVlLmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0
ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTWFpblJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiTWVt
b3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRl
ci5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgorI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlN1YnJlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8
d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIApAQCAtNzAsNiArODIsMTkgQEAgc3RhdGljIHZv
aWQgY2FuY2VsQWxsKGNvbnN0IFJlc291cmNlTG9hZAogICAgICAgICBsb2FkZXJzQ29weVtpXS0+
Y2FuY2VsKCk7CiB9CiAKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCitzdGF0aWMg
dm9pZCBjYW5jZWxBbGxCdXQoY29uc3QgUmVzb3VyY2VMb2FkZXJTZXQmIGxvYWRlcnMsIFJlc291
cmNlTG9hZGVyKiBsb2FkZXJUb1NraXApCit7CisgICAgVmVjdG9yPFJlZlB0cjxSZXNvdXJjZUxv
YWRlcj4gPiBsb2FkZXJzQ29weTsKKyAgICBjb3B5VG9WZWN0b3IobG9hZGVycywgbG9hZGVyc0Nv
cHkpOworICAgIHNpemVfdCBzaXplID0gbG9hZGVyc0NvcHkuc2l6ZSgpOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGlmIChsb2FkZXJUb1NraXAgIT0g
bG9hZGVyc0NvcHlbaV0pCisgICAgICAgICAgICBsb2FkZXJzQ29weVtpXS0+Y2FuY2VsKCk7Cisg
ICAgfQorfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIHNldEFsbERlZmVyc0xvYWRpbmcoY29uc3Qg
UmVzb3VyY2VMb2FkZXJTZXQmIGxvYWRlcnMsIGJvb2wgZGVmZXJzKQogewogICAgIFZlY3RvcjxS
ZWZQdHI8UmVzb3VyY2VMb2FkZXI+ID4gbG9hZGVyc0NvcHk7CkBAIC0xMTIsNiArMTM3LDEwIEBA
IEZyYW1lTG9hZGVyKiBEb2N1bWVudExvYWRlcjo6ZnJhbWVMb2FkZXIKIAogRG9jdW1lbnRMb2Fk
ZXI6On5Eb2N1bWVudExvYWRlcigpCiB7CisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNF
KQorICAgIGlmIChtX2NhY2hlZE1haW5SZXNvdXJjZSkKKyAgICAgICAgbV9jYWNoZWRNYWluUmVz
b3VyY2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyNlbmRpZgogICAgIEFTU0VSVCghbV9mcmFtZSB8
fCBmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpICE9IHRoaXMgfHwgIWZyYW1l
TG9hZGVyKCktPmlzTG9hZGluZygpKTsKICAgICBpZiAobV9pY29uTG9hZERlY2lzaW9uQ2FsbGJh
Y2spCiAgICAgICAgIG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CkBA
IC0xMjEsMTAgKzE1MCwxNSBAQCBEb2N1bWVudExvYWRlcjo6fkRvY3VtZW50TG9hZGVyKCkKIAog
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IERvY3VtZW50TG9hZGVyOjptYWluUmVzb3VyY2VEYXRh
KCkgY29uc3QKIHsKKyNpZiAhRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgIGlmICht
X21haW5SZXNvdXJjZURhdGEpCiAgICAgICAgIHJldHVybiBtX21haW5SZXNvdXJjZURhdGE7CiAg
ICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyKQogICAgICAgICByZXR1cm4gbV9tYWluUmVzb3Vy
Y2VMb2FkZXItPnJlc291cmNlRGF0YSgpOworI2Vsc2UKKyAgICBpZiAobV9jYWNoZWRNYWluUmVz
b3VyY2UpCisgICAgICAgIHJldHVybiBtX2NhY2hlZE1haW5SZXNvdXJjZS0+ZGF0YSgpOworI2Vu
ZGlmCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTI0OCw5ICsyODIsMTQgQEAgdm9pZCBEb2N1bWVu
dExvYWRlcjo6c3RvcExvYWRpbmcoKQogCiAgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0g
RG9jdW1lbnRMb2FkZXI6OmZyYW1lTG9hZGVyKCk7CiAgICAgCisjaWYgIUVOQUJMRShDQUNIRURf
TUFJTl9SRVNPVVJDRSkKICAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIC8v
IFN0b3AgdGhlIG1haW4gcmVzb3VyY2UgbG9hZGVyIGFuZCBsZXQgaXQgc2VuZCB0aGUgY2FuY2Vs
bGVkIG1lc3NhZ2UuCiAgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5jYW5jZWwoKTsKKyNl
bHNlCisgICAgaWYgKG1fY2FjaGVkTWFpblJlc291cmNlICYmIG1fY2FjaGVkTWFpblJlc291cmNl
LT5pc0xvYWRpbmcoKSkKKyAgICAgICAgOyAvLyBUaGUgbG9hZGVyIGZvciB0aGUgbWFpbiByZXNv
dXJjZSBpcyBpbiB0aGUgc3VicmVzb3VyY2UgbG9hZGVyIGFycmF5IHNvIHN0b3BMb2FkaW5nU3Vi
cmVzb3VyY2VzKCkgd2lsbCBjYW5jZWwgaXQgdG9vLgorI2VuZGlmCiAgICAgZWxzZSBpZiAoIW1f
c3VicmVzb3VyY2VMb2FkZXJzLmlzRW1wdHkoKSkKICAgICAgICAgLy8gVGhlIG1haW4gcmVzb3Vy
Y2UgbG9hZGVyIGFscmVhZHkgZmluaXNoZWQgbG9hZGluZy4gU2V0IHRoZSBjYW5jZWxsZWQgZXJy
b3Igb24gdGhlIAogICAgICAgICAvLyBkb2N1bWVudCBhbmQgbGV0IHRoZSBzdWJyZXNvdXJjZUxv
YWRlcnMgc2VuZCBpbmRpdmlkdWFsIGNhbmNlbGxlZCBtZXNzYWdlcyBiZWxvdy4KQEAgLTI2Miw2
ICszMDEsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZygpCiAgICAgCiAgICAg
c3RvcExvYWRpbmdTdWJyZXNvdXJjZXMoKTsKICAgICBzdG9wTG9hZGluZ1BsdWdJbnMoKTsKKyAg
ICB1cGRhdGVMb2FkaW5nKCk7CiAgICAgCiAgICAgbV9pc1N0b3BwaW5nID0gZmFsc2U7CiB9CkBA
IC0zMTAsNiArMzUwLDExIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmNvbW1pdExvYWQoY29uc3Qg
Y2gKIAogdm9pZCBEb2N1bWVudExvYWRlcjo6Y29tbWl0RGF0YShjb25zdCBjaGFyKiBieXRlcywg
c2l6ZV90IGxlbmd0aCkKIHsKKyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQor
ICAgIC8vIEZJWE1FOiBMYXN0IHR3byBwYXJhbXMgYXJlIGR1bW1pZXMgYW5kIGNhbiBwcm9iYWJs
eSBiZSByZW1vdmVkIGZyb20gdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24KKyAgICBhcHBsaWNhdGlv
bkNhY2hlSG9zdCgpLT5tYWluUmVzb3VyY2VEYXRhUmVjZWl2ZWQoYnl0ZXMsIGxlbmd0aCwgMCwg
ZmFsc2UpOworI2VuZGlmCisKICAgICAvLyBTZXQgdGhlIHRleHQgZW5jb2RpbmcuICBUaGlzIGlz
IHNhZmUgdG8gY2FsbCBtdWx0aXBsZSB0aW1lcy4KICAgICBib29sIHVzZXJDaG9zZW4gPSB0cnVl
OwogICAgIFN0cmluZyBlbmNvZGluZyA9IG92ZXJyaWRlRW5jb2RpbmcoKTsKQEAgLTM1OCw4ICs0
MDMsMTYgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c2V0dXBGb3JSZXBsYWNlQnlNSQogICAgICAg
ICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+cmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKHRoaXMp
OwogICAgICAgICBzZXR1cEZvclJlcGxhY2UoKTsKICAgICB9Ci0gICAgCisKKyNpZiBFTkFCTEUo
Q0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgLy8gU2F2ZSBvZmYgdGhlIFJlc291cmNlTG9hZGVy
IGZvciB0aGUgbWFpbiByZXNvdXJjZSBzbyBpdCBkb2Vzbid0IGdldCBjYW5jZWxsZWQKKyAgICAv
LyBpbiBzdG9wTG9hZGluZ1N1YnJlc291cmNlcygpLgorICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRl
cj4gbWFpblJlc291cmNlTG9hZGVyID0gbV9jYWNoZWRNYWluUmVzb3VyY2UtPnJlcXVlc3QoKS0+
bG9hZGVyKCk7CisgICAgY2FuY2VsQWxsQnV0KG1fc3VicmVzb3VyY2VMb2FkZXJzLCBtYWluUmVz
b3VyY2VMb2FkZXIuZ2V0KCkpOworI2Vsc2UKICAgICBzdG9wTG9hZGluZ1N1YnJlc291cmNlcygp
OworI2VuZGlmCisKICAgICBzdG9wTG9hZGluZ1BsdWdJbnMoKTsKICNpZiBFTkFCTEUoV0VCX0FS
Q0hJVkUpIHx8IEVOQUJMRShNSFRNTCkKICAgICBjbGVhckFyY2hpdmVSZXNvdXJjZXMoKTsKQEAg
LTQwOCw2ICs0NjEsMjYgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKCkK
ICAgICBtX2ZyYW1lID0gMDsKIH0KIAordm9pZCBEb2N1bWVudExvYWRlcjo6c2V0UmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgQVNTRVJUKG1fZnJhbWUp
OworCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICBpZiAoYXBwbGlj
YXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluUmVzcG9uc2UobV9yZXF1
ZXN0LCByZXNwb25zZSkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCisgICAgSFRUUEhlYWRl
ck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkuZmlu
ZChBdG9taWNTdHJpbmcoIngtZnJhbWUtb3B0aW9ucyIpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9u
c2UuaHR0cEhlYWRlckZpZWxkcygpLmVuZCgpKSB7CisgICAgICAgIFN0cmluZyBjb250ZW50ID0g
aXQtPnNlY29uZDsKKyAgICAgICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpLT5zaG91bGRJbnRlcnJ1
cHRMb2FkRm9yWEZyYW1lT3B0aW9ucyhjb250ZW50LCByZXNwb25zZS51cmwoKSkpIHsKKyAgICAg
ICAgICAgIHN0b3BMb2FkaW5nU3VicmVzb3VyY2VzKCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9CisgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOworfQorCiB2b2lkIERv
Y3VtZW50TG9hZGVyOjpwcmVwYXJlRm9yTG9hZFN0YXJ0KCkKIHsKICAgICBBU1NFUlQoIW1faXNT
dG9wcGluZyk7CkBAIC00MjAsMTggKzQ5MywxOSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpwcmVw
YXJlRm9yTG9hZFN0YXJ0CiAgICAgZnJhbWVMb2FkZXIoKS0+cHJlcGFyZUZvckxvYWRTdGFydCgp
OwogfQogCi12b2lkIERvY3VtZW50TG9hZGVyOjpzZXRQcmltYXJ5TG9hZENvbXBsZXRlKGJvb2wg
ZmxhZykKK3ZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldFByaW1hcnlMb2FkQ29tcGxldGUoYm9vbCBj
b21wbGV0ZSkKIHsKLSAgICBtX3ByaW1hcnlMb2FkQ29tcGxldGUgPSBmbGFnOwotICAgIGlmIChm
bGFnKSB7Ci0gICAgICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlcikgewotICAgICAgICAgICAg
bV9tYWluUmVzb3VyY2VEYXRhID0gbV9tYWluUmVzb3VyY2VMb2FkZXItPnJlc291cmNlRGF0YSgp
OwotICAgICAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXIgPSAwOwotICAgICAgICB9Ci0KLSAg
ICAgICAgaWYgKHRoaXMgPT0gZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSkK
LSAgICAgICAgICAgIHVwZGF0ZUxvYWRpbmcoKTsKKyAgICBtX3ByaW1hcnlMb2FkQ29tcGxldGUg
PSBjb21wbGV0ZTsKKyAgICBpZiAoIW1fcHJpbWFyeUxvYWRDb21wbGV0ZSkKKyAgICAgICAgcmV0
dXJuOworI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgaWYgKG1fbWFpblJl
c291cmNlTG9hZGVyKSB7CisgICAgICAgIG1fbWFpblJlc291cmNlRGF0YSA9IG1fbWFpblJlc291
cmNlTG9hZGVyLT5yZXNvdXJjZURhdGEoKTsKKyAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXIg
PSAwOwogICAgIH0KKyNlbmRpZgorICAgIGlmICh0aGlzID09IGZyYW1lTG9hZGVyKCktPmFjdGl2
ZURvY3VtZW50TG9hZGVyKCkpCisgICAgICAgIHVwZGF0ZUxvYWRpbmcoKTsKIH0KIAogYm9vbCBE
b2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSgpIGNvbnN0CkBAIC03NTMsOCArODI3
LDEwIEBAIGNvbnN0IEtVUkwmIERvY3VtZW50TG9hZGVyOjp1bnJlYWNoYWJsZVUKIAogdm9pZCBE
b2N1bWVudExvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKIHsKKyNpZiAhRU5B
QkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlcikK
ICAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsK
KyNlbmRpZgogICAgIHNldEFsbERlZmVyc0xvYWRpbmcobV9zdWJyZXNvdXJjZUxvYWRlcnMsIGRl
ZmVycyk7CiAgICAgc2V0QWxsRGVmZXJzTG9hZGluZyhtX3BsdWdJblN0cmVhbUxvYWRlcnMsIGRl
ZmVycyk7CiAgICAgaWYgKCFkZWZlcnMpCkBAIC03OTksNyArODc1LDExIEBAIHZvaWQgRG9jdW1l
bnRMb2FkZXI6OnJlbW92ZVBsdWdJblN0cmVhbUwKIAogYm9vbCBEb2N1bWVudExvYWRlcjo6aXNM
b2FkaW5nTWFpblJlc291cmNlKCkgY29uc3QKIHsKKyNpZiAhRU5BQkxFKENBQ0hFRF9NQUlOX1JF
U09VUkNFKQogICAgIHJldHVybiAhIW1fbWFpblJlc291cmNlTG9hZGVyOworI2Vsc2UKKyAgICBy
ZXR1cm4gbV9jYWNoZWRNYWluUmVzb3VyY2UgJiYgbV9jYWNoZWRNYWluUmVzb3VyY2UtPmlzTG9h
ZGluZygpOworI2VuZGlmCiB9CiAKIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ1N1YnJl
c291cmNlcygpIGNvbnN0CkBAIC04MTQsMTEgKzg5NCwxNiBAQCBib29sIERvY3VtZW50TG9hZGVy
Ojppc0xvYWRpbmdQbHVnSW5zKCkgCiAKIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ011
bHRpcGFydENvbnRlbnQoKSBjb25zdAogeworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJD
RSkKKyAgICByZXR1cm4gbV9jYWNoZWRNYWluUmVzb3VyY2UgJiYgbV9jYWNoZWRNYWluUmVzb3Vy
Y2UtPm11bHRpcGFydCgpOworI2Vsc2UKICAgICByZXR1cm4gbV9tYWluUmVzb3VyY2VMb2FkZXIg
JiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmlzTG9hZGluZ011bHRpcGFydENvbnRlbnQoKTsKKyNl
bmRpZgogfQogCiBib29sIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2Uo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQogeworI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVT
T1VSQ0UpCiAgICAgQVNTRVJUKCFtX21haW5SZXNvdXJjZUxvYWRlcik7CiAgICAgbV9tYWluUmVz
b3VyY2VMb2FkZXIgPSBNYWluUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShtX2ZyYW1lKTsKICAgICBt
X21haW5SZXNvdXJjZUxvYWRlci0+c2V0SWRlbnRpZmllcihpZGVudGlmaWVyKTsKQEAgLTgzNCwx
MyArOTE5LDUxIEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9hZGluZ01haW5SZXMKICAg
ICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXIgPSAwOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQorI2Vsc2UKKyAgICBBU1NFUlQoIW1fY2FjaGVkTWFpblJlc291cmNlKTsKKyAgICBBU1NF
UlQobV9kb2N1bWVudExvYWRUaW1pbmcubmF2aWdhdGlvblN0YXJ0KTsKKyAgICBBU1NFUlQoIW1f
ZG9jdW1lbnRMb2FkVGltaW5nLmZldGNoU3RhcnQpOworCisgICAgbV9kb2N1bWVudExvYWRUaW1p
bmcuZmV0Y2hTdGFydCA9IGN1cnJlbnRUaW1lKCk7CisgICAgCisgICAgLy8gV2hlbiB0aGUgZG9j
dW1lbnQgaXMgY3JlYXRlZCwgdGhlIG93bmVyc2hpcCBvZiB0aGUgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIgd2lsbCBtb3ZlIHRvIHRoZSBEb2N1bWVudAorICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIg
PSBhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIodGhpcykpOworCisgICAgaWYgKG1f
cmVxdWVzdC51cmwoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgcmVjZWl2ZWREYXRhKCIiLCAwKTsK
KyAgICAgICAgZnJhbWVMb2FkZXIoKS0+ZmluaXNoZWRMb2FkaW5nKCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIEZyYW1lKiB0b3AgPSBtX2ZyYW1lLT50cmVlKCktPnRvcCgp
OworICAgIGlmICh0b3AgIT0gbV9mcmFtZSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tJ
ZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQodG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LCBtX3JlcXVlc3QudXJsKCkpOworICAgIAorICAgIG1fY2FjaGVkTWFpblJlc291cmNlID0gbV9j
YWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdE1haW5SZXNvdXJjZShtX3JlcXVlc3QpOworICAg
IGlmICghbV9jYWNoZWRNYWluUmVzb3VyY2UpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjb3VsZCBu
b3QgY3JlYXRlIFdlYlJlc291cmNlSGFuZGxlIGZvciBVUkwgJXMgLS0gc2hvdWxkIGJlIGNhdWdo
dCBieSBwb2xpY3kgaGFuZGxlciBsZXZlbCIsIG1fcmVxdWVzdC51cmwoKS5zdHJpbmcoKS5hc2Np
aSgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1h
eWJlTG9hZE1haW5SZXNvdXJjZShtX3JlcXVlc3QsIG1fc3Vic3RpdHV0ZURhdGEpOworI2VuZGlm
CisKKyAgICBtX2NhY2hlZE1haW5SZXNvdXJjZS0+c2V0SWRlbnRpZmllcihpZGVudGlmaWVyKTsK
KyAgICBtX2NhY2hlZE1haW5SZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOyAgICAKKyNlbmRpZgog
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmNhbmNlbE1haW5S
ZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CisjaWYgRU5BQkxFKENB
Q0hFRF9NQUlOX1JFU09VUkNFKQorICAgIGlmIChtX2NhY2hlZE1haW5SZXNvdXJjZSAmJiBtX2Nh
Y2hlZE1haW5SZXNvdXJjZS0+cmVxdWVzdCgpKQorICAgICAgICBtX2NhY2hlZE1haW5SZXNvdXJj
ZS0+cmVxdWVzdCgpLT5sb2FkZXIoKS0+Y2FuY2VsKGVycm9yKTsKKyNlbHNlCiAgICAgbV9tYWlu
UmVzb3VyY2VMb2FkZXItPmNhbmNlbChlcnJvcik7CisjZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVu
dExvYWRlcjo6c3VicmVzb3VyY2VMb2FkZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KFJlc291cmNl
TG9hZGVyKiBsb2FkZXIpCkBAIC04NTQsNiArOTc3LDkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6
c3VicmVzb3VyY2VMb2FkZXJGaQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjp0cmFuc2ZlckxvYWRp
bmdSZXNvdXJjZXNGcm9tUGFnZShQYWdlKiBvbGRQYWdlKQogeworI2lmIEVOQUJMRShDQUNIRURf
TUFJTl9SRVNPVVJDRSkKKyAgICBVTlVTRURfUEFSQU0ob2xkUGFnZSk7CisjZWxzZQogICAgIEFT
U0VSVChvbGRQYWdlICE9IG1fZnJhbWUtPnBhZ2UoKSk7CiAKICAgICBGcmFtZUxvYWRlciogbG9h
ZGVyID0gZnJhbWVMb2FkZXIoKTsKQEAgLTg2OCw2ICs5OTQsNyBAQCB2b2lkIERvY3VtZW50TG9h
ZGVyOjp0cmFuc2ZlckxvYWRpbmdSZXNvCiAgICAgICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQp
CiAgICAgICAgICAgICBsb2FkZXItPmRpc3BhdGNoVHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9t
UGFnZSgoKml0KS5nZXQoKSwgKCppdCktPm9yaWdpbmFsUmVxdWVzdCgpLCBvbGRQYWdlKTsKICAg
ICB9CisjZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6aWNvbkxvYWREZWNpc2lvbkF2
YWlsYWJsZSgpCkBAIC04NzUsNiArMTAwMiwxMjcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6aWNv
bkxvYWREZWNpc2lvbkF2YQogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2ZyYW1lLT5sb2Fk
ZXIoKS0+aWNvbigpLT5sb2FkRGVjaXNpb25SZWNlaXZlZChpY29uRGF0YWJhc2UoKS5zeW5jaHJv
bm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoZnJhbWVMb2FkZXIoKS0+aWNvbigpLT51cmwoKSwg
dGhpcykpOwogfQorICAgIAorI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKK3ZvaWQg
RG9jdW1lbnRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkK
K3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJjZSA9PSBtX2NhY2hlZE1haW5S
ZXNvdXJjZSk7CisKKyAgICBkb3VibGUgdGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgdGltaW5n
KCktPnJlc3BvbnNlRW5kID0gdGltZTsKKworICAgIC8vIEZyYW1lTG9hZGVyOjpmaW5pc2hlZExv
YWRpbmcoKSBjYW4gZGVsZXRlIHRoaXMuCisgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBwcm90
ZWN0KHRoaXMpOworICAgIGlmIChtX2ZyYW1lKSB7CisgICAgICAgIGZyYW1lTG9hZGVyKCktPmZp
bmlzaGVkTG9hZGluZygpOworICAgICAgICBpZiAobV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCkp
CisgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPnByb2dyZXNzKCktPmNvbXBsZXRlUHJvZ3Jl
c3MobV9jYWNoZWRNYWluUmVzb3VyY2UtPmlkZW50aWZpZXIoKSk7CisgICAgfQorI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgYXBwbGljYXRpb25DYWNoZUhvc3QoKS0+
ZmluaXNoZWRMb2FkaW5nTWFpblJlc291cmNlKCk7CisjZW5kaWYKK30KKworCitzdGF0aWMgdm9p
ZCBjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeSh2b2lkKiBhcmd1bWVudCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBib29sIHNob3VsZENvbnRpbnVl
KQoreworICAgIGlmICghc2hvdWxkQ29udGludWUpCisgICAgICAgIHN0YXRpY19jYXN0PERvY3Vt
ZW50TG9hZGVyKj4oYXJndW1lbnQpLT5zdG9wTG9hZGluZ1N1YnJlc291cmNlcygpOworfQorCit2
b2lkIERvY3VtZW50TG9hZGVyOjpjYWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3kodm9pZCog
YXJndW1lbnQsIFBvbGljeUFjdGlvbiBwb2xpY3kpCit7CisgICAgc3RhdGljX2Nhc3Q8RG9jdW1l
bnRMb2FkZXIqPihhcmd1bWVudCktPmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7
Cit9CisKK3ZvaWQgRG9jdW1lbnRMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeSgpCit7CisjaWYg
RU5BQkxFKEZUUERJUikKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5n
cygpOworICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+Zm9yY2VGVFBEaXJlY3RvcnlMaXN0
aW5ncygpICYmIG1fcmVzcG9uc2UubWltZVR5cGUoKSA9PSAiYXBwbGljYXRpb24veC1mdHAtZGly
ZWN0b3J5IikKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisgICAgZnJhbWVMb2FkZXIoKS0+cG9s
aWN5Q2hlY2tlcigpLT5jaGVja0NvbnRlbnRQb2xpY3kobV9yZXNwb25zZSwgY2FsbENvbnRpbnVl
QWZ0ZXJDb250ZW50UG9saWN5LCB0aGlzKTsKK30KKwordm9pZCBEb2N1bWVudExvYWRlcjo6Y29u
dGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uIGNvbnRlbnRQb2xpY3kpCit7Cisg
ICAgS1VSTCB1cmwgPSBtX3JlcXVlc3QudXJsKCk7CisgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSA9IG1fcmVzcG9uc2UubWltZVR5cGUoKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QqIHJl
cXVlc3QgPSBtX2NhY2hlZE1haW5SZXNvdXJjZSA/IG1fY2FjaGVkTWFpblJlc291cmNlLT5yZXF1
ZXN0KCkgOiAwOworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworICAgIFJlc291
cmNlTG9hZGVyKiBtYWluUmVzb3VyY2VMb2FkZXIgPSByZXF1ZXN0LT5sb2FkZXIoKTsKKyAgICAK
KyAgICBzd2l0Y2ggKGNvbnRlbnRQb2xpY3kpIHsKKyAgICBjYXNlIFBvbGljeVVzZTogeworICAg
ICAgICAvLyBQcmV2ZW50IHJlbW90ZSB3ZWIgYXJjaGl2ZXMgZnJvbSBsb2FkaW5nIGJlY2F1c2Ug
dGhleSBjYW4gY2xhaW0gdG8gYmUgZnJvbSBhbnkgZG9tYWluIGFuZCB0aHVzIGF2b2lkIGNyb3Nz
LWRvbWFpbiBzZWN1cml0eSBjaGVja3MgKDQxMjAyNTUpLgorICAgICAgICBib29sIGlzUmVtb3Rl
V2ViQXJjaGl2ZSA9IGVxdWFsSWdub3JpbmdDYXNlKCJhcHBsaWNhdGlvbi94LXdlYmFyY2hpdmUi
LCBtaW1lVHlwZSkgJiYgIW1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpICYmICF1cmwuaXNMb2Nh
bEZpbGUoKTsKKyAgICAgICAgaWYgKCFmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+Y2FuU2hvd01J
TUVUeXBlKG1pbWVUeXBlKSB8fCBpc1JlbW90ZVdlYkFyY2hpdmUpIHsKKyAgICAgICAgICAgIGZy
YW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2Fubm90U2hvd01JTUVUeXBlKG1fcmVzcG9u
c2UpOworICAgICAgICAgICAgLy8gQ2hlY2sgcmVhY2hlZFRlcm1pbmFsU3RhdGUgc2luY2UgdGhl
IGxvYWQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNhbmNlbGxlZCBpbnNpZGUgb2YgX2hhbmRsZVVu
aW1wbGVtZW50YWJsZVBvbGljeVdpdGhFcnJvckNvZGU6Oi4KKyAgICAgICAgICAgIGlmICghbWFp
blJlc291cmNlTG9hZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpKQorICAgICAgICAgICAgICAg
IG1haW5SZXNvdXJjZUxvYWRlci0+Y2FuY2VsKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5pbnRl
cnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBQb2xpY3lEb3dubG9hZDoKKyAgICAgICAgLy8g
bV9oYW5kbGUgY2FuIGJlIG51bGwsIGUuZy4gd2hlbiBsb2FkaW5nIGEgc3Vic3RpdHV0ZSByZXNv
dXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLgorICAgICAgICBpZiAoIW1haW5SZXNvdXJjZUxv
YWRlci0+aGFuZGxlKCkpIHsKKyAgICAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+ZGlkRmFp
bChmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+Y2Fubm90U2hvd1VSTEVycm9yKG1fcmVxdWVzdCkp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZyYW1lTG9hZGVyKCkt
PmNsaWVudCgpLT5kb3dubG9hZChtYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLCBtX3JlcXVl
c3QsIG1haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCktPmZpcnN0UmVxdWVzdCgpLCBtX3Jlc3Bv
bnNlKTsKKyAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBnb25lIG1pc3NpbmcKKyAgICAgICAgaWYg
KGZyYW1lTG9hZGVyKCkpCisgICAgICAgICAgICBtYWluUmVzb3VyY2VMb2FkZXItPmNhbmNlbChm
cmFtZUxvYWRlcigpLT5jbGllbnQoKS0+aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvciht
X3JlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgUG9saWN5SWdub3JlOiB7Cisg
ICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+Y2FuY2VsKGZyYW1lTG9hZGVyKCktPmNsaWVudCgp
LT5pbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKG1fcmVxdWVzdCkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KK30KKwordm9pZCBEb2N1bWVudExvYWRlcjo6c2V0Q2FjaGVkTWFpblJlc291cmNl
KENhY2hlZE1haW5SZXNvdXJjZSogcmVzb3VyY2UpCit7CisjaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKKyAgICAgICAgLy8gV2UgY2hlY2tlZCBhcHBsaWNhdGlvbiBjYWNoZSBm
b3IgaW5pdGlhbCBVUkwsIG5vdyB3ZSBuZWVkIHRvIGNoZWNrIGl0IGZvciByZWRpcmVjdGVkIG9u
ZS4KKyAgICAgICAgQVNTRVJUKCFtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSk7CisgICAgICAg
IGFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZE1haW5SZXNvdXJjZUZvclJlZGlyZWN0
KG1fcmVxdWVzdCwgbV9zdWJzdGl0dXRlRGF0YSk7CisjZW5kaWYKKworICAgIC8vIENoZWNrIGlm
IHRoZSByZWRpcmVjdGVkIHVybCBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgcmVkaXJlY3Rpbmcg
dXJsJ3MgdGltaW5nIGluZm9ybWF0aW9uLgorICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2Vj
dXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKEtVUkwoUGFyc2VkVVJMU3RyaW5n
LCByZXNvdXJjZS0+dXJsKCkpKTsKKyAgICBpZiAoIXNlY3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0
KEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBtX2NhY2hlZE1haW5SZXNvdXJjZS0+dXJsKCkpKSkKKyAg
ICAgICAgbV9kb2N1bWVudExvYWRUaW1pbmcuaGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCA9IHRydWU7
CisgICAgbV9kb2N1bWVudExvYWRUaW1pbmcucmVkaXJlY3RDb3VudCsrOworICAgIGlmICghbV9k
b2N1bWVudExvYWRUaW1pbmcucmVkaXJlY3RTdGFydCkKKyAgICAgICAgbV9kb2N1bWVudExvYWRU
aW1pbmcucmVkaXJlY3RTdGFydCA9IG1fZG9jdW1lbnRMb2FkVGltaW5nLmZldGNoU3RhcnQ7Cisg
ICAgbV9kb2N1bWVudExvYWRUaW1pbmcucmVkaXJlY3RFbmQgPSBjdXJyZW50VGltZSgpOworICAg
IG1fZG9jdW1lbnRMb2FkVGltaW5nLmZldGNoU3RhcnQgPSBtX2RvY3VtZW50TG9hZFRpbWluZy5y
ZWRpcmVjdEVuZDsKKworICAgIG1fY2FjaGVkTWFpblJlc291cmNlLT5yZW1vdmVDbGllbnQodGhp
cyk7CisgICAgbV9jYWNoZWRNYWluUmVzb3VyY2UgPSByZXNvdXJjZTsKKworICAgIC8vIEZJWE1F
OiBJZGVhbGx5IHdlJ2Qgc3RvcCB0aGUgSS9PIHVudGlsIHdlIGhlYXIgYmFjayBmcm9tIHRoZSBu
YXZpZ2F0aW9uIHBvbGljeSBkZWxlZ2F0ZQorICAgIC8vIGxpc3RlbmVyLiBCdXQgdGhlcmUncyBu
byB3YXkgdG8gZG8gdGhhdCBpbiBwcmFjdGljZS4gU28gaW5zdGVhZCB3ZSBjYW5jZWwgbGF0ZXIg
aWYgdGhlCisgICAgLy8gbGlzdGVuZXIgdGVsbHMgdXMgdG8uIEluIHByYWN0aWNlIHRoYXQgbWVh
bnMgdGhlIG5hdmlnYXRpb24gcG9saWN5IG5lZWRzIHRvIGJlIGRlY2lkZWQKKyAgICAvLyBzeW5j
aHJvbm91c2x5IGZvciB0aGVzZSByZWRpcmVjdCBjYXNlcy4KKyAgICBmcmFtZUxvYWRlcigpLT5w
b2xpY3lDaGVja2VyKCktPmNoZWNrTmF2aWdhdGlvblBvbGljeShtX3JlcXVlc3QsIGNvbnRpbnVl
QWZ0ZXJOYXZpZ2F0aW9uUG9saWN5LCB0aGlzKTsKK30KKwordm9pZCBEb2N1bWVudExvYWRlcjo6
bWFpblJlc291cmNlU2hvdWxkTm90QnVmZmVyRGF0YSgpCit7CisgICAgaWYgKCFtX2NhY2hlZE1h
aW5SZXNvdXJjZSB8fCAhbV9jYWNoZWRNYWluUmVzb3VyY2UtPnJlcXVlc3QoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKFJlc291cmNlTG9hZGVyKiBtYWluUmVzb3VyY2VMb2FkZXIgPSBt
X2NhY2hlZE1haW5SZXNvdXJjZS0+cmVxdWVzdCgpLT5sb2FkZXIoKSkKKyAgICAgICAgbWFpblJl
c291cmNlTG9hZGVyLT5zZXRTaG91bGRCdWZmZXJEYXRhKERvTm90QnVmZmVyRGF0YSk7Cit9Cisj
ZW5kaWYKIAogc3RhdGljIHZvaWQgaWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKEljb25Mb2FkRGVj
aXNpb24gZGVjaXNpb24sIHZvaWQqIGNvbnRleHQpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuaAkocmV2aXNpb24gOTQzMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksMTEgQEAK
ICNpZm5kZWYgRG9jdW1lbnRMb2FkZXJfaAogI2RlZmluZSBEb2N1bWVudExvYWRlcl9oCiAKKyNp
ZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VD
bGllbnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2VuZGlmCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRUaW1p
bmcuaCIKICNpbmNsdWRlICJEb2N1bWVudFdyaXRlci5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFz
ZUJhc2UuaCIKQEAgLTU0LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IEFyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb247CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3Mg
RnJhbWVMb2FkZXI7CisgICAgY2xhc3MgQ2FjaGVkTWFpblJlc291cmNlOwogICAgIGNsYXNzIE1h
aW5SZXNvdXJjZUxvYWRlcjsKICAgICBjbGFzcyBQYWdlOwogICAgIGNsYXNzIFJlc291cmNlTG9h
ZGVyOwpAQCAtNjQsNyArNzAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHR5cGVkZWYg
SGFzaFNldDxSZWZQdHI8UmVzb3VyY2VMb2FkZXI+ID4gUmVzb3VyY2VMb2FkZXJTZXQ7CiAgICAg
dHlwZWRlZiBWZWN0b3I8UmVzb3VyY2VSZXNwb25zZT4gUmVzcG9uc2VWZWN0b3I7CiAKKyNpZiBF
TkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgY2xhc3MgRG9jdW1lbnRMb2FkZXIgOiBw
dWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQsIHB1YmxpYyBSZWZDb3VudGVkPERvY3VtZW50TG9h
ZGVyPiB7CisgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworI2Vsc2UKICAgICBjbGFz
cyBEb2N1bWVudExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPERvY3VtZW50TG9hZGVyPiB7Cisj
ZW5kaWYKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50TG9h
ZGVyPiBjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0
dXRlRGF0YSYgZGF0YSkKICAgICAgICAgewpAQCAtNzksNyArOTAsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hGcm9tRnJhbWUoKTsKIAogICAgICAg
ICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIoKSBjb25zdDsKKyNpZiAhRU5BQkxFKENBQ0hFRF9N
QUlOX1JFU09VUkNFKQogICAgICAgICBNYWluUmVzb3VyY2VMb2FkZXIqIG1haW5SZXNvdXJjZUxv
YWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fbWFpblJlc291cmNlTG9hZGVyLmdldCgpOyB9CisjZW5k
aWYKICAgICAgICAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IG1haW5SZXNvdXJjZURhdGEoKSBj
b25zdDsKICAgICAgICAgCiAgICAgICAgIERvY3VtZW50V3JpdGVyKiB3cml0ZXIoKSBjb25zdCB7
IHJldHVybiAmbV93cml0ZXI7IH0KQEAgLTExOSw3ICsxMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNwb25zZTsgfQogICAgICAgICBjb25zdCBSZXNvdXJjZUVycm9yJiBtYWluRG9j
dW1lbnRFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkRvY3VtZW50RXJyb3I7IH0KICAgICAg
ICAgdm9pZCBtYWluUmVjZWl2ZWRFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiwgYm9vbCBpc0Nv
bXBsZXRlKTsKLSAgICAgICAgdm9pZCBzZXRSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkgeyBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7IH0KKyAgICAgICAgdm9pZCBzZXRS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgICAgIHZvaWQgcHJlcGFyZUZv
ckxvYWRTdGFydCgpOwogICAgICAgICBib29sIGlzQ2xpZW50UmVkaXJlY3QoKSBjb25zdCB7IHJl
dHVybiBtX2lzQ2xpZW50UmVkaXJlY3Q7IH0KICAgICAgICAgdm9pZCBzZXRJc0NsaWVudFJlZGly
ZWN0KGJvb2wgaXNDbGllbnRSZWRpcmVjdCkgeyBtX2lzQ2xpZW50UmVkaXJlY3QgPSBpc0NsaWVu
dFJlZGlyZWN0OyB9CkBAIC0yNTQsNiArMjY3LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgQXBwbGljYXRpb25DYWNoZUhvc3QqIGFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkgY29uc3Qg
eyByZXR1cm4gbV9hcHBsaWNhdGlvbkNhY2hlSG9zdC5nZXQoKTsgfQogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgICAgIC8vIFVzZWQgZHVyaW5nIHJlZGly
ZWN0cyB0byBlbnN1cmUgdGhhdCB3ZSBoYXZlIHNlcGFyYXRlIENhY2hlZFJlc291cmNlcyBmb3Ig
dGhlIHJlZGlyZWN0IHNvdXJjZQorICAgICAgICAvLyBhbmQgdGhlIHJlZGlyZWN0IHRhcmdldC4K
KyAgICAgICAgdm9pZCBzZXRDYWNoZWRNYWluUmVzb3VyY2UoQ2FjaGVkTWFpblJlc291cmNlKiBy
ZXNvdXJjZSk7CisKKyAgICAgICAgUGFzc093blB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4gcmVs
ZWFzZUNhY2hlZFJlc291cmNlTG9hZGVyKCkgeyByZXR1cm4gbV9jYWNoZWRSZXNvdXJjZUxvYWRl
ci5yZWxlYXNlKCk7IH0KKworICAgICAgICB2b2lkIG1haW5SZXNvdXJjZVNob3VsZE5vdEJ1ZmZl
ckRhdGEoKTsKKyAgICAgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koKTsKKyNlbmRpZgorICAg
ICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIERvY3VtZW50TG9hZGVyKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJik7CiAKQEAgLTI2OSwxNSArMjkzLDMw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGRlbGl2ZXJTdWJzdGl0dXRl
UmVzb3VyY2VzQWZ0ZXJEZWxheSgpOwogICAgICAgICB2b2lkIHN1YnN0aXR1dGVSZXNvdXJjZURl
bGl2ZXJ5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudExvYWRlcj4qKTsKLSAgICAgICAgICAgICAg
ICAKKworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICAgICAgLy8gQ2FjaGVk
UmVzb3VyY2VDbGllbnQKKyAgICAgICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJj
ZSopOworICAgICAgICB2b2lkIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlv
bik7CisgICAgICAgIHN0YXRpYyB2b2lkIGNhbGxDb250aW51ZUFmdGVyQ29udGVudFBvbGljeSh2
b2lkKiBhcmd1bWVudCwgUG9saWN5QWN0aW9uKTsKKyNlbmRpZgorCiAgICAgICAgIEZyYW1lKiBt
X2ZyYW1lOwogCisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgICAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRNYWluUmVzb3VyY2U+IG1fY2FjaGVkTWFpblJlc291cmNl
OworI2Vsc2UKICAgICAgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gbV9tYWluUmVzb3Vy
Y2VMb2FkZXI7CisjZW5kaWYKKyAgICAgICAgT3duUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBt
X2NhY2hlZFJlc291cmNlTG9hZGVyOworCiAgICAgICAgIFJlc291cmNlTG9hZGVyU2V0IG1fc3Vi
cmVzb3VyY2VMb2FkZXJzOwogICAgICAgICBSZXNvdXJjZUxvYWRlclNldCBtX211bHRpcGFydFN1
YnJlc291cmNlTG9hZGVyczsKICAgICAgICAgUmVzb3VyY2VMb2FkZXJTZXQgbV9wbHVnSW5TdHJl
YW1Mb2FkZXJzOwogCisjaWYgIUVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKICAgICAgICAg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9tYWluUmVzb3VyY2VEYXRhOworI2VuZGlmCiAgICAgICAg
IAogICAgICAgICBtdXRhYmxlIERvY3VtZW50V3JpdGVyIG1fd3JpdGVyOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAko
cmV2aXNpb24gOTQzMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDEwICsxNTQsMTEgQEAgdm9pZCBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OnNldERlZmVycwogICAgICAgICBtX2xvYWRlci0+c2V0
RGVmZXJzTG9hZGluZyh2YWx1ZSk7CiB9CiAKLXZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
Ojp3aWxsU2VuZFJlcXVlc3QoU3VicmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQor
dm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJj
ZUxvYWRlciosIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICBBU1NFUlQobV9jbGllbnQpOwotICAgIEFTU0VS
VF9VTlVTRUQobG9hZGVyLCBsb2FkZXIgPT0gbV9sb2FkZXIpOworICAgIGlmIChyZWRpcmVjdFJl
c3BvbnNlLmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIWlzQWxsb3dlZFJl
ZGlyZWN0KHJlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXI+IHByb3RlY3QodGhpcyk7CkBAIC0zNDksOSArMzUwLDEyIEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWUKICAgICAgICAgfQogI2VuZGlmCiAKKyAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCk7CisgICAgICAgIG5ld1JlcXVl
c3Quc2V0SFRUUFJlZmVycmVyKG1fZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLT5vdXRnb2lu
Z1JlZmVycmVyKCkpOworCiAgICAgICAgIC8vIENsZWFyIHRoZSBsb2FkZXIgc28gdGhhdCBhbnkg
Y2FsbGJhY2tzIGZyb20gU3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSB3aWxsIG5vdCBoYXZlIHRo
ZSBvbGQgbG9hZGVyLgogICAgICAgICBtX2xvYWRlciA9IDA7Ci0gICAgICAgIG1fbG9hZGVyID0g
cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPnNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKG1fZG9jdW1l
bnQtPmZyYW1lKCksIHRoaXMsIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5TWVkaXVtLCBz
ZWN1cml0eUNoZWNrLCBvcHRpb25zKTsKKyAgICAgICAgbV9sb2FkZXIgPSByZXNvdXJjZUxvYWRT
Y2hlZHVsZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQobV9kb2N1bWVudC0+ZnJhbWUoKSwg
dGhpcywgbmV3UmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHlNZWRpdW0sIHNlY3VyaXR5Q2hl
Y2ssIG9wdGlvbnMsIDApOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCShyZXZpc2lvbiA5NDMwMSkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDYgKzU4LDcgQEAgRG9jdW1lbnRXcml0ZXI6OkRvY3VtZW50V3JpdGVyKEZyYW1lKiBm
cgogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1faGFzUmVjZWl2ZWRTb21lRGF0YShmYWxz
ZSkKICAgICAsIG1fZW5jb2RpbmdXYXNDaG9zZW5CeVVzZXIoZmFsc2UpCisgICAgLCBtX2VuZGlu
ZyhmYWxzZSkKIHsKIH0KIApAQCAtMjE4LDIyICsyMTksMjkgQEAgdm9pZCBEb2N1bWVudFdyaXRl
cjo6ZW5kSWZOb3RMb2FkaW5nTWFpbgogewogICAgIC8vIEZJWE1FOiBUaGlzIGlzbid0IHJlYWxs
eSB0aGUgY2hlY2sgd2Ugc2hvdWxkIGJlIGRvaW5nLiBXZSBzaG91bGQgcmUtd29yawogICAgIC8v
IGhvdyB3ZSBlbmQgcGFyc2luZyB0byBtYXRjaCB0aGUgbW9kZWwgaW4gSFRNTDUuCi0gICAgaWYg
KG1fZnJhbWUtPmxvYWRlcigpLT5pc0xvYWRpbmdNYWluUmVzb3VyY2UoKSB8fCAhbV9mcmFtZS0+
cGFnZSgpIHx8ICFtX2ZyYW1lLT5kb2N1bWVudCgpKQorICAgIGlmIChtX2ZyYW1lLT5sb2FkZXIo
KS0+aXNMb2FkaW5nTWFpblJlc291cmNlKCkgfHwgIW1fZnJhbWUtPnBhZ2UoKSB8fCAhbV9mcmFt
ZS0+ZG9jdW1lbnQoKSB8fCBtX2VuZGluZykKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9lbmRp
bmcgPSB0cnVlOworCiAgICAgLy8gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA4NTQKICAgICAvLyBUaGUgZnJhbWUncyBsYXN0IHJlZiBtYXkgYmUgcmVtb3ZlZCBhbmQg
aXQgY2FuIGJlIGRlbGV0ZWQgYnkgY2hlY2tDb21wbGV0ZWQoKSwgCiAgICAgLy8gc28gd2UnbGwg
YWRkIGEgcHJvdGVjdGl2ZSByZWZjb3VudAogICAgIFJlZlB0cjxGcmFtZT4gcHJvdGVjdG9yKG1f
ZnJhbWUpOwogCi0gICAgaWYgKCFtX3BhcnNlcikKKyAgICBpZiAoIW1fcGFyc2VyKSB7CisgICAg
ICAgIG1fZW5kaW5nID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgLy8gRklY
TUU6IG1fcGFyc2VyLT5maW5pc2goKSBzaG91bGQgaW1wbHkgbV9wYXJzZXItPmZsdXNoKCkuCiAg
ICAgbV9wYXJzZXItPmZsdXNoKHRoaXMpOwotICAgIGlmICghbV9wYXJzZXIpCisgICAgaWYgKCFt
X3BhcnNlcikgeworICAgICAgICBtX2VuZGluZyA9IGZhbHNlOwogICAgICAgICByZXR1cm47Cisg
ICAgfQogICAgIG1fcGFyc2VyLT5maW5pc2goKTsKICAgICBtX3BhcnNlciA9IDA7CisgICAgbV9l
bmRpbmcgPSBmYWxzZTsKIH0KIAogU3RyaW5nIERvY3VtZW50V3JpdGVyOjplbmNvZGluZygpIGNv
bnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuaAkocmV2aXNpb24g
OTQzMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21pbWVUeXBl
OwogCiAgICAgYm9vbCBtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyOworICAgIGJvb2wgbV9lbmRp
bmc7CiAgICAgU3RyaW5nIG1fZW5jb2Rpbmc7CiAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29k
ZXI+IG1fZGVjb2RlcjsKICAgICBSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IG1fcGFyc2VyOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA5NDMwMSkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJCZWZvcmVVbmxvYWRFdmVudC5oIgogI2luY2x1ZGUg
Ik1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUGFnZS5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRl
ICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKQEAgLTk1MCw2ICs5NTEsOSBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpzZXRPcGVuZXIoRnJhbWUqIG9wZW5lCiAgICAgICAgIG9wZW5l
ci0+bG9hZGVyKCktPm1fb3BlbmVkRnJhbWVzLmFkZChtX2ZyYW1lKTsKICAgICBtX29wZW5lciA9
IG9wZW5lcjsKIAorICAgIGlmIChvcGVuZXIgJiYgb3BlbmVyLT5kb2N1bWVudCgpKQorICAgICAg
ICBzZXRPdXRnb2luZ1JlZmVycmVyKG9wZW5lci0+ZG9jdW1lbnQoKS0+dXJsKCkpOworCiAgICAg
aWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
aW5pdFNlY3VyaXR5Q29udGV4dCgpOwogICAgICAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+c2V0
U2VjdXJpdHlPcmlnaW4obV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSk7CkBA
IC0yMjY2LDcgKzIyNzAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZv
clRoCiAgICAgICAgIAogICAgICAgICBjYXNlIEZyYW1lU3RhdGVDb21taXR0ZWRQYWdlOiB7CiAg
ICAgICAgICAgICBEb2N1bWVudExvYWRlciogZGwgPSBtX2RvY3VtZW50TG9hZGVyLmdldCgpOyAg
ICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCFkbCB8fCAoZGwtPmlzTG9hZGluZ0luQVBJU2Vu
c2UoKSAmJiAhZGwtPmlzU3RvcHBpbmcoKSkpCisgICAgICAgICAgICBpZiAoIWRsIHx8IChkbC0+
aXNMb2FkaW5nSW5BUElTZW5zZSgpICYmICFkbC0+aXNTdG9wcGluZygpKSB8fCAhbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+d2luZG93TG9hZEV2ZW50RmlyZWQoKSkKICAgICAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgICAgIHNldFN0YXRlKEZyYW1lU3RhdGVDb21wbGV0ZSk7CkBAIC0yMzk3
LDggKzI0MDEsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjbG9zZUFuZFJlbW92ZUNoaWxkKEZyCiAv
LyBDYWxsZWQgZXZlcnkgdGltZSBhIHJlc291cmNlIGlzIGNvbXBsZXRlbHkgbG9hZGVkIG9yIGFu
IGVycm9yIGlzIHJlY2VpdmVkLgogdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGUo
KQogewotICAgIEFTU0VSVChtX2NsaWVudC0+aGFzV2ViVmlldygpKTsKLSAgICAKICAgICBtX3No
b3VsZENhbGxDaGVja0xvYWRDb21wbGV0ZSA9IGZhbHNlOwogCiAgICAgLy8gRklYTUU6IEFsd2F5
cyB0cmF2ZXJzaW5nIHRoZSBlbnRpcmUgZnJhbWUgdHJlZSBpcyBhIGJpdCBpbmVmZmljaWVudCwg
YnV0IApAQCAtMjU0Myw3ICsyNTQ1LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFGaWVs
ZHNUb1JlcXVlcwogICAgIC8vIEFsd2F5cyB0cnkgVVRGLTguIElmIHRoYXQgZmFpbHMsIHRyeSBm
cmFtZSBlbmNvZGluZyAoaWYgYW55KSBhbmQgdGhlbiB0aGUgZGVmYXVsdC4KICAgICAvLyBGb3Ig
YSBuZXdseSBvcGVuZWQgZnJhbWUgd2l0aCBhbiBlbXB0eSBVUkwsIGVuY29kaW5nKCkgc2hvdWxk
IG5vdCBiZSB1c2VkLCBiZWNhdXNlIHRoaXMgbWV0aG9kcyBhc2tzIGRlY29kZXIsIHdoaWNoIHVz
ZXMgSVNPLTg4NTktMS4KICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5n
cygpOwotICAgIHJlcXVlc3Quc2V0UmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0Zh
bGxiYWNrQXJyYXkoIlVURi04IiwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCktPmRl
cHJlY2F0ZWRGcmFtZUVuY29kaW5nKCksIHNldHRpbmdzID8gc2V0dGluZ3MtPmRlZmF1bHRUZXh0
RW5jb2RpbmdOYW1lKCkgOiBTdHJpbmcoKSk7CisgICAgcmVxdWVzdC5zZXRSZXNwb25zZUNvbnRl
bnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheSgiVVRGLTgiLCBhY3RpdmVEb2N1bWVu
dExvYWRlcigpID8gYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+d3JpdGVyKCktPmRlcHJlY2F0ZWRG
cmFtZUVuY29kaW5nKCkgOiBTdHJpbmcoKSwgc2V0dGluZ3MgPyBzZXR0aW5ncy0+ZGVmYXVsdFRl
eHRFbmNvZGluZ05hbWUoKSA6IFN0cmluZygpKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6YWRk
SFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5n
JiBvcmlnaW4pCkBAIC0yOTM1LDYgKzI5MzcsMTAgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZGVk
UmVzb3VyY2VGcm9tTWVtbwogICAgICAgICByZXR1cm47CiAgICAgfQogCisjaWYgRU5BQkxFKENB
Q0hFRF9NQUlOX1JFU09VUkNFKQorICAgIGlmIChyZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJl
c291cmNlOjpNYWluUmVzb3VyY2UpCisgICAgICAgIHJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNv
b2tpZXMobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSk7CisjZW5k
aWYKICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXI7CiAgICAgUmVzb3VyY2VFcnJvciBlcnJv
cjsKICAgICByZXF1ZXN0RnJvbURlbGVnYXRlKHJlcXVlc3QsIGlkZW50aWZpZXIsIGVycm9yKTsK
QEAgLTMxMzMsNiArMzEzOSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJ
dGVtKiAKIHZvaWQgRnJhbWVMb2FkZXI6Om1haW5SZWNlaXZlZENvbXBsZXRlRXJyb3IoRG9jdW1l
bnRMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VFcnJvciYpCiB7CiAgICAgbG9hZGVyLT5z
ZXRQcmltYXJ5TG9hZENvbXBsZXRlKHRydWUpOworICAgIGxvYWRlci0+c3RvcExvYWRpbmcoKTsK
ICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRMb2FkTWFpblJlc291cmNlKGFjdGl2ZURvY3VtZW50
TG9hZGVyKCkpOwogICAgIGNoZWNrQ29tcGxldGVkKCk7CiAgICAgaWYgKG1fZnJhbWUtPnBhZ2Uo
KSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwCShyZXZpc2lvbiA5NDMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw5ICs4NSwxMSBAQCBSZXNv
dXJjZUxvYWRTY2hlZHVsZXI6OlJlc291cmNlTG9hZFNjaGVkCiAjZW5kaWYKIH0KIAotUGFzc1Jl
ZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVN1
YnJlc291cmNlTG9hZChGcmFtZSogZnJhbWUsIFN1YnJlc291cmNlTG9hZGVyQ2xpZW50KiBjbGll
bnQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkg
cHJpb3JpdHksIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjaywgY29uc3QgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQorUGFzc1JlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4g
UmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVN1YnJlc291cmNlTG9hZChGcmFtZSogZnJh
bWUsIFN1YnJlc291cmNlTG9hZGVyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHksIFNlY3VyaXR5Q2hlY2tQ
b2xpY3kgc2VjdXJpdHlDaGVjaywgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25z
LCB1bnNpZ25lZCBpZGVudGlmaWVyKQogewogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4g
bG9hZGVyID0gU3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCByZXF1ZXN0
LCBzZWN1cml0eUNoZWNrLCBvcHRpb25zKTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAg
bG9hZGVyLT5zZXRJZGVudGlmaWVyKGlkZW50aWZpZXIpOwogICAgIGlmIChsb2FkZXIpCiAgICAg
ICAgIHNjaGVkdWxlTG9hZChsb2FkZXIuZ2V0KCksIHByaW9yaXR5KTsKICAgICByZXR1cm4gbG9h
ZGVyLnJlbGVhc2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmgJKHJldmlzaW9uIDk0MzAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZFNjaGVkdWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBA
IGNsYXNzIFJlc291cmNlTG9hZFNjaGVkdWxlciB7CiBwdWJsaWM6CiAgICAgZnJpZW5kIFJlc291
cmNlTG9hZFNjaGVkdWxlciogcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCk7CiAKLSAgICBQYXNzUmVm
UHRyPFN1YnJlc291cmNlTG9hZGVyPiBzY2hlZHVsZVN1YnJlc291cmNlTG9hZChGcmFtZSosIFN1
YnJlc291cmNlTG9hZGVyQ2xpZW50KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdywgU2VjdXJpdHlDaGVja1BvbGlj
eSA9IERvU2VjdXJpdHlDaGVjaywgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiA9IFJlc291
cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEs
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpKTsKKyAgICBQYXNzUmVmUHRyPFN1YnJlc291cmNlTG9h
ZGVyPiBzY2hlZHVsZVN1YnJlc291cmNlTG9hZChGcmFtZSosIFN1YnJlc291cmNlTG9hZGVyQ2xp
ZW50KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNv
dXJjZUxvYWRQcmlvcml0eUxvdywgU2VjdXJpdHlDaGVja1BvbGljeSA9IERvU2VjdXJpdHlDaGVj
aywgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiA9IFJlc291cmNlTG9hZGVyT3B0aW9ucyhT
ZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVu
dGlhbHMpLCB1bnNpZ25lZCBpZGVudGlmaWVyID0gMCk7CiAgICAgUGFzc1JlZlB0cjxOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlcj4gc2NoZWR1bGVQbHVnaW5TdHJlYW1Mb2FkKEZyYW1lKiwgTmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXJDbGllbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
ICAgICB2b2lkIGFkZE1haW5SZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lk
IHJlbW92ZShSZXNvdXJjZUxvYWRlciopOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmgJKHJldmlzaW9uIDk0MzAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MCw2ICsxNDAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3JlYWNoZWRUZXJtaW5hbFN0YXRlOyB9CiAKICAgICAgICAgdm9pZCBzZXRTaG91
bGRCdWZmZXJEYXRhKERhdGFCdWZmZXJpbmdQb2xpY3kpOworICAgICAgICBEYXRhQnVmZmVyaW5n
UG9saWN5IHNob3VsZEJ1ZmZlckRhdGEoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc2hvdWxk
QnVmZmVyRGF0YTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBSZXNvdXJjZUxvYWRlcihG
cmFtZSosIFJlc291cmNlTG9hZGVyT3B0aW9ucyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDk0MzAxKQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcs
NyArNDcsNiBAQCBzdGF0aWMgV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIgc3VicmVzCiBTdWJy
ZXNvdXJjZUxvYWRlcjo6U3VicmVzb3VyY2VMb2FkZXIoRnJhbWUqIGZyYW1lLCBTdWJyZXNvdXJj
ZUxvYWRlckNsaWVudCogY2xpZW50LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlv
bnMpCiAgICAgOiBSZXNvdXJjZUxvYWRlcihmcmFtZSwgb3B0aW9ucykKICAgICAsIG1fY2xpZW50
KGNsaWVudCkKLSAgICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiB7CiAjaWZu
ZGVmIE5ERUJVRwogICAgIHN1YnJlc291cmNlTG9hZGVyQ291bnRlci5pbmNyZW1lbnQoKTsKQEAg
LTgzLDEyICs4MiwxMiBAQCBQYXNzUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBTdWJyZXNvdXJj
CiAKICAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJlcjsKICAgICBTdHJpbmcgb3V0Z29pbmdPcmln
aW47Ci0gICAgaWYgKHJlcXVlc3QuaHR0cFJlZmVycmVyKCkuaXNOdWxsKCkpIHsKLSAgICAgICAg
b3V0Z29pbmdSZWZlcnJlciA9IGZsLT5vdXRnb2luZ1JlZmVycmVyKCk7Ci0gICAgICAgIG91dGdv
aW5nT3JpZ2luID0gZmwtPm91dGdvaW5nT3JpZ2luKCk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAo
IXJlcXVlc3QuaHR0cFJlZmVycmVyKCkuaXNOdWxsKCkpIHsKICAgICAgICAgb3V0Z29pbmdSZWZl
cnJlciA9IHJlcXVlc3QuaHR0cFJlZmVycmVyKCk7CiAgICAgICAgIG91dGdvaW5nT3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3V0Z29pbmdSZWZlcnJlciktPnRvU3Ry
aW5nKCk7CisgICAgfSBlbHNlIGlmICghZnJhbWUtPmxvYWRlcigpLT5zdXBwcmVzc09wZW5lcklu
TmV3RnJhbWUoKSkgeworICAgICAgICBvdXRnb2luZ1JlZmVycmVyID0gZmwtPm91dGdvaW5nUmVm
ZXJyZXIoKTsKKyAgICAgICAgb3V0Z29pbmdPcmlnaW4gPSBmbC0+b3V0Z29pbmdPcmlnaW4oKTsK
ICAgICB9CiAKICAgICBpZiAoU2VjdXJpdHlPcmlnaW46OnNob3VsZEhpZGVSZWZlcnJlcihyZXF1
ZXN0LnVybCgpLCBvdXRnb2luZ1JlZmVycmVyKSkKQEAgLTExMSw5ICsxMTAsMTMgQEAgdm9pZCBT
dWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KAogewogICAgIC8vIFN0b3JlIHRoZSBw
cmV2aW91cyBVUkwgYmVjYXVzZSB0aGUgY2FsbCB0byBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0IHdpbGwgbW9kaWZ5IGl0LgogICAgIEtVUkwgcHJldmlvdXNVUkwgPSByZXF1ZXN0KCku
dXJsKCk7Ci0gICAgCisKKyAgICBpZiAobV9kb2N1bWVudExvYWRlci0+cmVxdWVzdCgpLnVybCgp
ID09IHJlcXVlc3QoKS51cmwoKSAmJiAhbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkKKyAgICAg
ICAgbmV3UmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhuZXdSZXF1ZXN0LnVybCgpKTsK
KworICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKICAgICBSZXNv
dXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2Up
OwotICAgIGlmICghcHJldmlvdXNVUkwuaXNOdWxsKCkgJiYgIW5ld1JlcXVlc3QuaXNOdWxsKCkg
JiYgcHJldmlvdXNVUkwgIT0gbmV3UmVxdWVzdC51cmwoKSAmJiBtX2NsaWVudCkKKyAgICBpZiAo
bV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT53aWxsU2VuZFJlcXVlc3QodGhpcywgbmV3UmVx
dWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiB9CiAKQEAgLTEyOSw5ICsxMzIsNiBAQCB2b2lkIFN1
YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uCiB7CiAgICAgQVNTRVJUKCFyLmlzTnVs
bCgpKTsKIAotICAgIGlmIChyLmlzTXVsdGlwYXJ0KCkpCi0gICAgICAgIG1fbG9hZGluZ011bHRp
cGFydENvbnRlbnQgPSB0cnVlOwotCiAgICAgLy8gUmVmZXJlbmNlIHRoZSBvYmplY3QgaW4gdGhp
cyBtZXRob2Qgc2luY2UgdGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8KICAgICAvLyBh
bnl0aGluZyBpbmNsdWRpbmcgcmVtb3ZpbmcgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoaXMgb2Jq
ZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMyNjYyMTYuCiAgICAgUmVmUHRyPFN1YnJlc291
cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwpAQCAtMTQzLDIwICsxNDMsNiBAQCB2b2lkIFN1YnJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uCiAgICAgaWYgKHJlYWNoZWRUZXJtaW5hbFN0
YXRlKCkpCiAgICAgICAgIHJldHVybjsKICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKHIpOwotICAgIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IHJlc291
cmNlRGF0YSgpOwotICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50ICYmIGJ1ZmZlciAm
JiBidWZmZXItPnNpemUoKSkgewotICAgICAgICAvLyBTaW5jZSBhIHN1YnJlc291cmNlIGxvYWRl
ciBkb2VzIG5vdCBsb2FkIG11bHRpcGFydCBzZWN0aW9ucyBwcm9ncmVzc2l2ZWx5LAotICAgICAg
ICAvLyBkZWxpdmVyIHRoZSBwcmV2aW91c2x5IHJlY2VpdmVkIGRhdGEgdG8gdGhlIGxvYWRlciBh
bGwgYXQgb25jZSBub3cuCi0gICAgICAgIC8vIFRoZW4gY2xlYXIgdGhlIGRhdGEgdG8gbWFrZSB3
YXkgZm9yIHRoZSBuZXh0IG11bHRpcGFydCBzZWN0aW9uLgotICAgICAgICBpZiAobV9jbGllbnQp
Ci0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZURhdGEodGhpcywgYnVmZmVyLT5kYXRh
KCksIGJ1ZmZlci0+c2l6ZSgpKTsKLSAgICAgICAgY2xlYXJSZXNvdXJjZURhdGEoKTsKLSAgICAg
ICAgCi0gICAgICAgIC8vIEFmdGVyIHRoZSBmaXJzdCBtdWx0aXBhcnQgc2VjdGlvbiBpcyBjb21w
bGV0ZSwgc2lnbmFsIHRvIGRlbGVnYXRlcyB0aGF0IHRoaXMgbG9hZCBpcyAiZmluaXNoZWQiIAot
ICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdWJyZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGlu
Z09uZVBhcnQodGhpcyk7Ci0gICAgICAgIGRpZEZpbmlzaExvYWRpbmdPbmVQYXJ0KDApOwotICAg
IH0KIH0KIAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFs
bEF0T25jZSkKQEAgLTE2Nyw5ICsxNTMsNyBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YShjCiAgICAgCiAgICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGRh
dGEsIGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7CiAKLSAgICAvLyBBIHN1
YnJlc291cmNlIGxvYWRlciBkb2VzIG5vdCBsb2FkIG11bHRpcGFydCBzZWN0aW9ucyBwcm9ncmVz
c2l2ZWx5LgotICAgIC8vIFNvIGRvbid0IGRlbGl2ZXIgYW55IGRhdGEgdG8gdGhlIGxvYWRlciB5
ZXQuCi0gICAgaWYgKCFtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50ICYmIG1fY2xpZW50KQorICAg
IGlmIChtX2NsaWVudCAmJiBzaG91bGRCdWZmZXJEYXRhKCkgPT0gQnVmZmVyRGF0YSkKICAgICAg
ICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhKHRoaXMsIGRhdGEsIGxlbmd0aCk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiA5
NDMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Niw3ICs2Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgog
CiAgICAgICAgIFN1YnJlc291cmNlTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKLSAgICAgICAgYm9v
bCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50OwogICAgIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0
LmNwcAkocmV2aXNpb24gOTQzMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsOCArMTA0LDEw
IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZEZhbGwKICAgICAgICAgaWYg
KGlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKSkgewogICAgICAgICAgICAgbV9tYWluUmVzb3Vy
Y2VBcHBsaWNhdGlvbkNhY2hlID0gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpmYWxsYmFja0NhY2hl
Rm9yTWFpblJlcXVlc3QocmVxdWVzdCwgZG9jdW1lbnRMb2FkZXIoKSk7CiAKKyNpZiAhRU5BQkxF
KENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxi
YWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVz
b3VyY2VMb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQogICAg
IHJldHVybiBmYWxzZTsKQEAgLTExOCw4ICsxMjAsMTAgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6bWF5YmVMb2FkRmFsbAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZCgpKSB7CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBBcHBs
aWNhdGlvbkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0LCBt
X2RvY3VtZW50TG9hZGVyKTsKIAorI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCiAg
ICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlv
bkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBtX21haW5SZXNv
dXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworI2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZE1haW5SZXNvdXJjZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZE1haW5SZXNvdXJjZS5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkTWFpblJl
c291cmNlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2FjaGVkTWFpblJlc291cmNlLmgiCisKKyNp
ZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkNh
Y2hlSG9zdC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgiCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
TWVtb3J5Q2FjaGUuaCIKKyNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3
dGYvVW51c2VkUGFyYW0uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyBi
b29sIHNob3VsZExvYWRBc0VtcHR5RG9jdW1lbnQoY29uc3QgS1VSTCYgdXJsKQoreworI2lmIFBM
QVRGT1JNKFRPUkNITU9CSUxFKQorICAgIHJldHVybiB1cmwuaXNFbXB0eSgpIHx8ICh1cmwucHJv
dG9jb2xJcygiYWJvdXQiKSAmJiBlcXVhbElnbm9yaW5nUmVmKHVybCwgYmxhbmtVUkwoKSkpOwor
I2Vsc2UgCisgICAgcmV0dXJuIHVybC5pc0VtcHR5KCkgfHwgU2NoZW1lUmVnaXN0cnk6OnNob3Vs
ZExvYWRVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQodXJsLnByb3RvY29sKCkpOworI2VuZGlmCit9
CisKK0NhY2hlZE1haW5SZXNvdXJjZTo6Q2FjaGVkTWFpblJlc291cmNlKGNvbnN0IFN0cmluZyYg
dXJsKQorICAgIDogQ2FjaGVkUmVzb3VyY2UodXJsLCBNYWluUmVzb3VyY2UpCisgICAgLCBtX2lk
ZW50aWZpZXIoMCkKKyAgICAsIG1faW5EaWRBZGRDbGllbnQoZmFsc2UpCisgICAgLCBtX2Zpbmlz
aGVkKGZhbHNlKQoreworfQorCitDYWNoZWRNYWluUmVzb3VyY2U6On5DYWNoZWRNYWluUmVzb3Vy
Y2UoKQoreworfQorCit2b2lkIENhY2hlZE1haW5SZXNvdXJjZTo6Y2xlYXIoKQoreworICAgIG1f
ZGF0YSA9IDA7CisgICAgc2V0RW5jb2RlZFNpemUoMCk7Cit9CisKK3ZvaWQgQ2FjaGVkTWFpblJl
c291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikK
K3sKKyAgICBpZiAoc2hvdWxkTG9hZEFzRW1wdHlEb2N1bWVudCh1cmwoKSkpIHsKKyAgICAgICAg
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSh1cmwoKSwgY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRv
Y3VtZW50TG9hZGVyKCktPmZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5nZW5lcmF0ZWRNSU1FVHlw
ZUZvclVSTFNjaGVtZSh1cmwoKS5wcm90b2NvbCgpKSwgMCwgU3RyaW5nKCksIFN0cmluZygpKTsK
KyAgICAgICAgc2V0UmVzcG9uc2UocmVzcG9uc2UpOworICAgICAgICBSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBlbXB0eURhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgiIiwgMCk7CisgICAgICAgIGRh
dGEoZW1wdHlEYXRhLCB0cnVlKTsKKyAgICB9IGVsc2UgaWYgKGNhY2hlZFJlc291cmNlTG9hZGVy
LT5kb2N1bWVudExvYWRlcigpLT5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSkgeworICAgICAg
ICBkYXRhKGNhY2hlZFJlc291cmNlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5zdWJzdGl0dXRl
RGF0YSgpLmNvbnRlbnQoKS0+Y29weSgpLCB0cnVlKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2U6OmxvYWQoY2FjaGVkUmVzb3VyY2VMb2FkZXIsIC8qaW5jcmVtZW50YWwqLyB0
cnVlLCBTa2lwU2VjdXJpdHlDaGVjayk7Cit9CisKK3ZvaWQgQ2FjaGVkTWFpblJlc291cmNlOjpk
YXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkK
K3sKKyAgICBzaXplX3Qgb2xkU2l6ZSA9IGVuY29kZWRTaXplKCk7CisgICAgbV9kYXRhID0gZGF0
YTsKKworICAgIHNpemVfdCBuZXdTaXplID0gbV9kYXRhID8gbV9kYXRhLT5zaXplKCkgOiAwOwor
ICAgIHNldEVuY29kZWRTaXplKG5ld1NpemUpOworICAgIAorICAgIExPRyhSZXNvdXJjZUxvYWRp
bmcsICJDYWNoZWRNYWluUmVzb3VyY2UgJXAgdXJsPSVzIGRhdGEgc2l6ZT0lZCBhbGxEYXRhUmVj
ZWl2ZWQ9JWQiLCB0aGlzLCB1cmwoKS5sYXRpbjEoKS5kYXRhKCksIChpbnQpbmV3U2l6ZSwgYWxs
RGF0YVJlY2VpdmVkKTsKKworICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyIHcobV9jbGll
bnRzKTsKKyAgICB3aGlsZSAoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMgPSB3Lm5leHQoKSkgewor
ICAgICAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBzdGF0aWNfY2FzdDxEb2N1
bWVudExvYWRlcio+KGMpOworICAgICAgICBpZiAobmV3U2l6ZSA+IG9sZFNpemUgfHwgKG1fZGF0
YSAmJiBhbGxEYXRhUmVjZWl2ZWQpKQorICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXItPnJlY2Vp
dmVkRGF0YShtX2RhdGEtPmRhdGEoKSArIG9sZFNpemUsIG5ld1NpemUgLSBvbGRTaXplKTsKKyAg
ICAgICAgaWYgKGFsbERhdGFSZWNlaXZlZCkgeworICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxz
ZSk7CisgICAgICAgICAgICBtX2ZpbmlzaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGMtPm5vdGlm
eUZpbmlzaGVkKHRoaXMpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBGSVhNRTogZGlkQWRk
Q2xpZW50IGNhbiBnbyByZS1lbnRyYW50LiBOb3Qgc3VyZSB3aGF0IHRoZSByaWdodCBmaXggaXMs
IGJ1dCB0aGlzIHF1aWNrIGhhY2sgYXQgbGVhc3QKKy8vIG1ha2VzIHRoaW5ncyB0aW1lb3V0IHJh
dGhlciB0aGFuIGNyYXNoIChmYXN0L2RvbS9Eb2N1bWVudC9kb2N1bWVudC1jbG9zZS1pZnJhbWUt
bG9hZC5odG1sIHdhcyB0aGUgb2ZmZW5kZXIgaWlyYykuCitzdGF0aWMgYm9vbCBzX2luRGlkQWRk
Q2xpZW50ID0gZmFsc2U7CisKK3ZvaWQgQ2FjaGVkTWFpblJlc291cmNlOjpkaWRBZGRDbGllbnQo
Q2FjaGVkUmVzb3VyY2VDbGllbnQqIGMpCit7CisgICAgaWYgKGlzTG9hZGluZygpIHx8IHNfaW5E
aWRBZGRDbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICBzX2luRGlkQWRkQ2xpZW50ID0gdHJ1
ZTsKKyAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkTWFpblJlc291cmNlICVwIHVybD0l
cyBkaWRBZGRDbGllbnQgY2FjaGUgcmVzdG9yZSIsIHRoaXMsIHVybCgpLmxhdGluMSgpLmRhdGEo
KSk7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gc3RhdGljX2Nhc3Q8RG9j
dW1lbnRMb2FkZXIqPihjKTsKKyAgICBkb2N1bWVudExvYWRlci0+c2V0UmVzcG9uc2UobV9yZXNw
b25zZSk7CisKKyAgICBpZiAobV9kYXRhKSB7CisgICAgICAgIGlmIChkb2N1bWVudExvYWRlci0+
ZnJhbWVMb2FkZXIoKS0+cXVpY2tSZWRpcmVjdENvbWluZygpKQorICAgICAgICAgICAgZG9jdW1l
bnRMb2FkZXItPnNldElzQ2xpZW50UmVkaXJlY3QodHJ1ZSk7CisgICAgICAgIGRvY3VtZW50TG9h
ZGVyLT5yZWNlaXZlZERhdGEobV9kYXRhLT5kYXRhKCksIG1fZGF0YS0+c2l6ZSgpKTsKKyAgICB9
CisKKyAgICAvLyBXaGlsZSB3ZSBjYW4gZmluaXNoIHRoZSBsb2FkIHN5bmNocm9ub3VzbHkgaWYg
dGhlIENhY2hlZE1haW5SZXNvdXJjZSBpcyBpbiBtZW1vcnksCisgICAgLy8gdGhlIGxvYWQgZXZl
bnQgc2hvdWxkbid0IGJlIGZpcmVkIHN5bmNocm9ub3VzbHkuCisgICAgaWYgKG1fZGF0YSB8fCBt
X2ZpbmlzaGVkKQorICAgICAgICBjLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICBzX2luRGlk
QWRkQ2xpZW50ID0gZmFsc2U7Cit9CisKK3ZvaWQgQ2FjaGVkTWFpblJlc291cmNlOjplcnJvcihD
YWNoZWRSZXNvdXJjZTo6U3RhdHVzIHN0YXR1cykKK3sKKyAgICBzZXRTdGF0dXMoc3RhdHVzKTsK
KyAgICBzZXRMb2FkaW5nKGZhbHNlKTsKKworICAgIC8vIEZJWE1FOiBwYXNzIGVycm9ycworICAg
IGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IgPSBtX3JlcXVlc3QgPyBtX3JlcXVl
c3QtPmN1cnJlbnRSZXNvdXJjZUVycm9yKCkgOiBSZXNvdXJjZUVycm9yKCk7CisKKyAgICBDYWNo
ZWRSZXNvdXJjZUNsaWVudFdhbGtlciB3KG1fY2xpZW50cyk7CisgICAgd2hpbGUgKENhY2hlZFJl
c291cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkpIHsKKyAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGRv
Y3VtZW50TG9hZGVyID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnRMb2FkZXIqPihjKTsKKworI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGRvY3VtZW50TG9hZGVyLT5h
cHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5FcnJvcihkb2N1
bWVudExvYWRlci0+cmVxdWVzdCgpLCByZXNvdXJjZUVycm9yKTsKKyNlbmRpZgorCisgICAgICAg
IGlmIChGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBkb2N1bWVudExvYWRlci0+ZnJhbWVMb2Fk
ZXIoKSkgeworICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBMb2FkRXJyb3IpCisgICAgICAgICAg
ICAgICAgZnJhbWVMb2FkZXItPmhhbmRsZUZhbGxiYWNrQ29udGVudCgpOworICAgICAgICAgICAg
aWYgKCFyZXNvdXJjZUVycm9yLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIGZyYW1lTG9hZGVy
LT5yZWNlaXZlZE1haW5SZXNvdXJjZUVycm9yKHJlc291cmNlRXJyb3IsIHRydWUpOworICAgICAg
ICB9CisgICAgICAgIGlmIChkb2N1bWVudExvYWRlci0+ZnJhbWUoKSAmJiBkb2N1bWVudExvYWRl
ci0+ZnJhbWUoKS0+cGFnZSgpKQorICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXItPmZyYW1lTG9h
ZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7CisgICAgfQorfQorCit2b2lkIENhY2hlZE1haW5S
ZXNvdXJjZTo6c2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7
CisgICAgQ2FjaGVkUmVzb3VyY2U6OnNldFJlc3BvbnNlKHJlc3BvbnNlKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZUNsaWVudFdhbGtlciB3KG1fY2xpZW50cyk7CisgICAgd2hpbGUgKENhY2hlZFJlc291
cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkpCisgICAgICAgIHN0YXRpY19jYXN0PERvY3VtZW50TG9h
ZGVyKj4oYyktPnNldFJlc3BvbnNlKHJlc3BvbnNlKTsKK30KKworQ2FjaGVkUmVzb3VyY2UqIENh
Y2hlZE1haW5SZXNvdXJjZTo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKK3sKKyAgICBpZiAo
IXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpIHsKKyAgICAgICAgcmVxdWVzdC5zZXRGaXJzdFBh
cnR5Rm9yQ29va2llcyhLVVJMKFBhcnNlZFVSTFN0cmluZywgcmVxdWVzdC51cmwoKSkpOworICAg
ICAgICBzZXRSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgc3RvcExvYWRpbmco
KTsKKyAgICAgICAgQ2FjaGVkTWFpblJlc291cmNlKiBuZXdSZXNvdXJjZSA9IG5ldyBDYWNoZWRN
YWluUmVzb3VyY2UocmVxdWVzdC51cmwoKSk7CisgICAgICAgIG5ld1Jlc291cmNlLT5zZXRJZGVu
dGlmaWVyKG1faWRlbnRpZmllcik7CisgICAgICAgIAorICAgICAgICBDYWNoZWRSZXNvdXJjZUNs
aWVudFdhbGtlciB3KG1fY2xpZW50cyk7CisgICAgICAgIHdoaWxlIChDYWNoZWRSZXNvdXJjZUNs
aWVudCogYyA9IHcubmV4dCgpKSB7CisgICAgICAgICAgICBEb2N1bWVudExvYWRlciogZG9jdW1l
bnRMb2FkZXIgPSBzdGF0aWNfY2FzdDxEb2N1bWVudExvYWRlcio+KGMpOworICAgICAgICAgICAg
ZG9jdW1lbnRMb2FkZXItPnNldENhY2hlZE1haW5SZXNvdXJjZShuZXdSZXNvdXJjZSk7CisgICAg
ICAgICAgICBuZXdSZXNvdXJjZS0+YWRkQ2xpZW50KGRvY3VtZW50TG9hZGVyKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50TG9hZGVyLT5zZXRSZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICB9CisKKyAg
ICAgICAgcmV0dXJuIG5ld1Jlc291cmNlOworICAgIH0KKworICAgIENhY2hlZFJlc291cmNlQ2xp
ZW50V2Fsa2VyIHcobV9jbGllbnRzKTsKKyAgICB3aGlsZSAoQ2FjaGVkUmVzb3VyY2VDbGllbnQq
IGMgPSB3Lm5leHQoKSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8RG9jdW1lbnRMb2FkZXIqPihjKS0+
c2V0UmVxdWVzdChyZXF1ZXN0KTsKKyAgICByZXR1cm4gdGhpczsKK30KKworYm9vbCBDYWNoZWRN
YWluUmVzb3VyY2U6Om11bHRpcGFydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdCAm
JiBtX3JlcXVlc3QtPm11bHRpcGFydCgpOworfQorCisjZW5kaWYKKwoKUHJvcGVydHkgY2hhbmdl
cyBvbjogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZE1haW5SZXNvdXJjZS5jcHAK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZE1haW5SZXNvdXJjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRNYWluUmVzb3VyY2UuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRNYWluUmVzb3VyY2UuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2FjaGVk
TWFpblJlc291cmNlX2gKKyNkZWZpbmUgQ2FjaGVkTWFpblJlc291cmNlX2gKKworI2lmIEVOQUJM
RShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisj
aW5jbHVkZSAiVGltZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgQ2Fj
aGVkTWFpblJlc291cmNlQ2xpZW50OworY2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OworY2xh
c3MgUmVzb3VyY2VSZXNwb25zZTsKKworY2xhc3MgQ2FjaGVkTWFpblJlc291cmNlIDogcHVibGlj
IENhY2hlZFJlc291cmNlIHsKK3B1YmxpYzoKKyAgICBDYWNoZWRNYWluUmVzb3VyY2UoY29uc3Qg
U3RyaW5nJiB1cmwpOworICAgIHZpcnR1YWwgfkNhY2hlZE1haW5SZXNvdXJjZSgpOworICAgCisg
ICAgdm9pZCBjbGVhcigpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkKENhY2hlZFJlc291cmNlTG9h
ZGVyKik7CisKKyAgICBTaGFyZWRCdWZmZXIqIGRhdGEoKSBjb25zdCB7IHJldHVybiBDYWNoZWRS
ZXNvdXJjZTo6ZGF0YSgpOyB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChD
YWNoZWRSZXNvdXJjZUNsaWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkYXRhKFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCk7CisgICAgdmlydHVhbCB2
b2lkIGVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMpOworICAgIHZpcnR1YWwgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KiByZXF1ZXN0KCkgeyByZXR1cm4gbV9yZXF1ZXN0LmdldCgpO30KKworICAg
IHZpcnR1YWwgdm9pZCBzZXRSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAg
dmlydHVhbCBDYWNoZWRSZXNvdXJjZSogd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICAKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICB2b2lkIHNldElk
ZW50aWZpZXIodW5zaWduZWQgaWRlbnRpZmllcikgeyBtX2lkZW50aWZpZXIgPSBpZGVudGlmaWVy
OyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgbXVsdGlwYXJ0KCkgY29uc3Q7CisgICAgCitwcml2YXRl
OgorICAgIHVuc2lnbmVkIG1faWRlbnRpZmllcjsKKyAgICBib29sIG1faW5EaWRBZGRDbGllbnQg
OiAxOworICAgIGJvb2wgbV9maW5pc2hlZCA6IDE7CisKK307Cit9CisKKyNlbmRpZgorCisjZW5k
aWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRNYWluUmVzb3VyY2UuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYK
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAJKHJldmlzaW9uIDk0MzAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsMTAgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogc3RhdGljIFJlc291cmNlTG9hZFByaW9yaXR5IGRlZmF1bHRQcmlvcml0eUZv
clJlc291cmNlVHlwZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAo
dHlwZSkgeworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgorICAgICAgICAgICAgcmV0dXJuIFJlc291cmNl
TG9hZFByaW9yaXR5VmVyeUhpZ2g7CisjZW5kaWYKICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6Q1NTU3R5bGVTaGVldDoKICNpZiBFTkFCTEUoWFNMVCkKICAgICAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKQEAgLTQyMiwxMCArNDI2LDEzIEBAIHZvaWQgQ2FjaGVk
UmVzb3VyY2U6OnNldFJlc291cmNlVG9SZXZhbGkKICAgICAvLyBUaGUgZm9sbG93aW5nIGFzc2Vy
dCBzaG91bGQgYmUgaW52ZXN0aWdhdGVkIHdoZW5ldmVyIGl0IG9jY3Vycy4gQWx0aG91Z2ggaXQg
c2hvdWxkIG5ldmVyIGZpcmUsIGl0IGN1cnJlbnRseSBkb2VzIGluIHJhcmUgY2lyY3Vtc3RhbmNl
cy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2MDQu
CiAgICAgLy8gU28gdGhlIGNvZGUgbmVlZHMgdG8gYmUgcm9idXN0IHRvIHRoaXMgYXNzZXJ0IGZh
aWxpbmcgdGh1cyB0aGUgImlmIChtX3Jlc291cmNlVG9SZXZhbGlkYXRlLT5tX3Byb3h5UmVzb3Vy
Y2UgPT0gdGhpcykiIGluIENhY2hlZFJlc291cmNlOjpjbGVhclJlc291cmNlVG9SZXZhbGlkYXRl
LgotICAgIEFTU0VSVCghcmVzb3VyY2UtPm1fcHJveHlSZXNvdXJjZSk7CisgICAgQVNTRVJUKCFy
ZXNvdXJjZS0+bV9wcm94eVJlc291cmNlIHx8IHJlc291cmNlLT5tX3Byb3h5UmVzb3VyY2UgIT0g
dGhpcyk7CiAKICAgICByZXNvdXJjZS0+bV9wcm94eVJlc291cmNlID0gdGhpczsKICAgICBtX3Jl
c291cmNlVG9SZXZhbGlkYXRlID0gcmVzb3VyY2U7CisKKyAgICBpZiAocmVzb3VyY2UtPm1fcHJv
eHlSZXNvdXJjZSAmJiByZXNvdXJjZS0+bV9wcm94eVJlc291cmNlICE9IHRoaXMpCisgICAgICAg
IG1lbW9yeUNhY2hlKCktPnJldmFsaWRhdGlvblN1Y2NlZWRlZCh0aGlzLCByZXNvdXJjZS0+cmVz
cG9uc2UoKSk7CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmNsZWFyUmVzb3VyY2VUb1JldmFs
aWRhdGUoKSAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5oCShyZXZpc2lvbiA5NDMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw5IEBAIGNsYXNzIENh
Y2hlZFJlc291cmNlIHsKICAgICAKIHB1YmxpYzoKICAgICBlbnVtIFR5cGUgeworI2lmIEVOQUJM
RShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICAgICAgTWFpblJlc291cmNlLAorI2VuZGlmCiAg
ICAgICAgIEltYWdlUmVzb3VyY2UsCiAgICAgICAgIENTU1N0eWxlU2hlZXQsCiAgICAgICAgIFNj
cmlwdCwKQEAgLTk1LDYgKzk4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlcnJvcihD
YWNoZWRSZXNvdXJjZTo6U3RhdHVzKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVI
VFRQU3RhdHVzQ29kZUVycm9ycygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB1bnNpZ25lZCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsg
fQogICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0
LnVybCgpO30KQEAgLTE0OCw2ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgYWNjZXNz
Q291bnQoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc0NvdW50OyB9CiAgICAgdm9pZCBpbmNyZWFz
ZUFjY2Vzc0NvdW50KCkgeyBtX2FjY2Vzc0NvdW50Kys7IH0KIAorICAgIHZpcnR1YWwgQ2FjaGVk
UmVzb3VyY2UqIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJikgeyByZXR1cm4gdGhpczsgfQorCiAgICAgLy8gQ29tcHV0ZXMgdGhlIHN0YXR1
cyBvZiBhbiBvYmplY3QgYWZ0ZXIgbG9hZGluZy4gIAogICAgIC8vIFVwZGF0ZXMgdGhlIGV4cGly
ZSBkYXRlIG9uIHRoZSBjYWNoZSBlbnRyeSBmaWxlCiAgICAgdm9pZCBmaW5pc2goKTsKQEAgLTE2
OCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAKICAgICBTaGFyZWRCdWZmZXIqIGRhdGEoKSBjb25zdCB7
IEFTU0VSVCghbV9wdXJnZWFibGVEYXRhKTsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQogCi0gICAg
dm9pZCBzZXRSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdmlydHVhbCB2
b2lkIHNldFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2U7IH0KIAog
ICAgIC8vIFNldHMgdGhlIHNlcmlhbGl6ZWQgbWV0YWRhdGEgcmV0cmlldmVkIGZyb20gdGhlIHBs
YXRmb3JtJ3MgY2FjaGUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDk0MzAxKQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIK
ICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNs
dWRlICJDYWNoZWRNYWluUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRYU0xTdHls
ZVNoZWV0LmgiCkBAIC0zNyw2ICszOCw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgpAQCAtNTgsNiAr
NjAsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIENhY2hlZFJlc291cmNlKiBjcmVh
dGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKKyNp
ZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6
TWFpblJlc291cmNlOgorICAgICAgICByZXR1cm4gbmV3IENhY2hlZE1haW5SZXNvdXJjZShyZXF1
ZXN0LnVybCgpLnN0cmluZygpKTsKKyNlbmRpZgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Oklt
YWdlUmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CiAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKQEAgLTgzLDggKzg5LDIyIEBA
IHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2EKICAgICByZXR1cm4gMDsK
IH0KIAorI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKK0NhY2hlZFJlc291cmNlTG9h
ZGVyOjpDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIp
CisgICAgOiBtX2RvY3VtZW50KDApCisgICAgLCBtX2RvY3VtZW50TG9hZGVyKGRvY3VtZW50TG9h
ZGVyKQorICAgICwgbV9yZXF1ZXN0Q291bnQoMCkKKyAgICAsIG1fZ2FyYmFnZUNvbGxlY3REb2N1
bWVudFJlc291cmNlc1RpbWVyKHRoaXMsICZDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Z2FyYmFnZUNv
bGxlY3REb2N1bWVudFJlc291cmNlc1RpbWVyRmlyZWQpCisgICAgLCBtX2F1dG9Mb2FkSW1hZ2Vz
KHRydWUpCisgICAgLCBtX2xvYWRGaW5pc2hpbmcoZmFsc2UpCisgICAgLCBtX2FsbG93U3RhbGVS
ZXNvdXJjZXMoZmFsc2UpCit7Cit9CisjZW5kaWYKKyAgICAKIENhY2hlZFJlc291cmNlTG9hZGVy
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBtX2RvY3Vt
ZW50KGRvY3VtZW50KQorICAgICwgbV9kb2N1bWVudExvYWRlcigwKQogICAgICwgbV9yZXF1ZXN0
Q291bnQoMCkKICAgICAsIG1fZ2FyYmFnZUNvbGxlY3REb2N1bWVudFJlc291cmNlc1RpbWVyKHRo
aXMsICZDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Z2FyYmFnZUNvbGxlY3REb2N1bWVudFJlc291cmNl
c1RpbWVyRmlyZWQpCiAgICAgLCBtX2F1dG9Mb2FkSW1hZ2VzKHRydWUpCkBAIC0xMTgsMTEgKzEz
OCwzMyBAQCBDYWNoZWRSZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhCiAgICAgcmV0
dXJuIG1fZG9jdW1lbnRSZXNvdXJjZXMuZ2V0KHVybCkuZ2V0KCk7IAogfQogCisjaWYgRU5BQkxF
KENBQ0hFRF9NQUlOX1JFU09VUkNFKQordm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bW92ZVRv
RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChtX2RvY3VtZW50TG9h
ZGVyKTsKKyAgICBBU1NFUlQoIW1fZG9jdW1lbnQpOworICAgIEFTU0VSVChkb2N1bWVudC0+ZnJh
bWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkgPT0gbV9kb2N1bWVudExvYWRlcik7Cisg
ICAgbV9kb2N1bWVudCA9IGRvY3VtZW50OworICAgIG1fZG9jdW1lbnRMb2FkZXIgPSAwOworfQor
I2VuZGlmCisKIEZyYW1lKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZnJhbWUoKSBjb25zdAogewor
ICAgIEFTU0VSVCghbV9kb2N1bWVudExvYWRlciB8fCAhbV9kb2N1bWVudCk7CisgICAgaWYgKG1f
ZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgp
OwogICAgIHJldHVybiBtX2RvY3VtZW50ID8gbV9kb2N1bWVudC0+ZnJhbWUoKSA6IDA7CiB9CiAK
K0RvY3VtZW50TG9hZGVyKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZG9jdW1lbnRMb2FkZXIoKSBj
b25zdAoreworICAgIEFTU0VSVCghbV9kb2N1bWVudExvYWRlciB8fCAhbV9kb2N1bWVudCk7Cisg
ICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVy
OworICAgIHJldHVybiBtX2RvY3VtZW50ID8gbV9kb2N1bWVudC0+bG9hZGVyKCkgOiAwOworfQor
CiBDYWNoZWRJbWFnZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkgewpAQCAt
MjA0LDYgKzI0NiwxMCBAQCBDYWNoZWRSZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
CiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRS
ZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgc3dpdGNo
ICh0eXBlKSB7CisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZToKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBj
YXNlIENhY2hlZFJlc291cmNlOjpTY3JpcHQ6CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKQEAgLTIzOCw3ICsyODQsNyBAQCBib29sIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlCiAKIGJvb2wgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYg
dXJsLCBib29sIGZvclByZWxvYWQpCiB7Ci0gICAgaWYgKCFkb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLT5jYW5EaXNwbGF5KHVybCkpIHsKKyAgICBpZiAoZG9jdW1lbnQoKSAmJiAhZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxheSh1cmwpKSB7CiAgICAgICAgIGlmICgh
Zm9yUHJlbG9hZCkKICAgICAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWls
ZWQoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgdXJsLnN0cmluZygpKTsKICAgICAgICAgTE9HKFJlc291
cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgVVJMIHdh
cyBub3QgYWxsb3dlZCBieSBTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheSIpOwpAQCAtMjQ5LDYg
KzI5NSw5IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2EKICAgICAv
LyB0eXBlcyBvZiByZXNvdXJjZXMsIGxpa2UgSW1hZ2VzLCBTY3JpcHRzLCBhbmQgQ1NTLCBjYW4g
YmUgbG9hZGVkIGZyb20KICAgICAvLyBhbnkgVVJMLgogICAgIHN3aXRjaCAodHlwZSkgeworI2lm
IEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpN
YWluUmVzb3VyY2U6CisjZW5kaWYKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291
cmNlOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6CiAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6U2NyaXB0OgpAQCAtMjgxLDYgKzMzMCwxMCBAQCBib29sIENhY2hlZFJl
c291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhCiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGxldHRp
bmcgdGhlIGVtYmVkZGVyIGJsb2NrIG1peGVkIGNvbnRlbnQgbG9hZHMuCiAKICAgICBzd2l0Y2gg
KHR5cGUpIHsKKyNpZiBFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgorICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKICAgICAgICAgaWYgKCFtX2RvY3VtZW50LT5jb250
ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dTY3JpcHRGcm9tU291cmNlKHVybCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMTUsNyArMzY4LDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Y2FuUmVxdWVzdChDYQogQ2FjaGVkUmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9y
aXR5IHByaW9yaXR5LCBib29sIGZvclByZWxvYWQsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYgb3B0aW9ucykKIHsKICAgICBLVVJMIHVybCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgCisKICAg
ICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZSAnJXMnLCBjaGFyc2V0ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1IiwgdXJs
LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgY2hhcnNldC5sYXRpbjEoKS5kYXRhKCksIHByaW9y
aXR5LCBmb3JQcmVsb2FkKTsKICAgICAKICAgICAvLyBJZiBvbmx5IHRoZSBmcmFnbWVudCBpZGVu
dGlmaWVycyBkaWZmZXIsIGl0IGlzIHRoZSBzYW1lIHJlc291cmNlLgpAQCAtMzYxLDcgKzQxNCw3
IEBAIENhY2hlZFJlc291cmNlKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmUKICAgICBpZiAoIXJl
c291cmNlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIEFTU0VSVChyZXNvdXJjZS0+dXJsKCkg
PT0gdXJsLnN0cmluZygpKTsKKyAgICAvL0FTU0VSVChyZXNvdXJjZS0+dXJsKCkgPT0gdXJsLnN0
cmluZygpKTsKICAgICBtX2RvY3VtZW50UmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJl
c291cmNlKTsKICAgICAKICAgICByZXR1cm4gcmVzb3VyY2U7CkBAIC00NDYsNiArNDk5LDEyIEBA
IENhY2hlZFJlc291cmNlTG9hZGVyOjpSZXZhbGlkYXRpb25Qb2xpY3kKICAgICAgICAgTE9HKFJl
c291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRp
b25Qb2xpY3kgcmVsb2FkaW5nIGR1ZSB0byB0eXBlIG1pc21hdGNoLiIpOwogICAgICAgICByZXR1
cm4gUmVsb2FkOwogICAgIH0KKworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAg
ICAvLyBGSVhNRTogTWFpbiByZXNvdXJjZXMgY2FuJ3QgeWV0IHNhZmVseSBiZSBsb2FkZWQgd2l0
aCBtdWx0aXBsZSBjbGllbnRzIChEb2N1bWVudExvYWRlciBsZXZlbCBjb2RlIGFzc3VtZXMgYSBS
ZXNvdXJjZUxvYWRlciBwZXIgbWFpbiByZXNvdXJjZSkuCisgICAgaWYgKGV4aXN0aW5nUmVzb3Vy
Y2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlICYmIGV4aXN0aW5nUmVz
b3VyY2UtPmlzTG9hZGluZygpKQorICAgICAgICByZXR1cm4gUmVsb2FkOworI2VuZGlmCiAgICAg
CiAgICAgLy8gRG9uJ3QgcmVsb2FkIHJlc291cmNlcyB3aGlsZSBwYXN0aW5nLgogICAgIGlmICht
X2FsbG93U3RhbGVSZXNvdXJjZXMpCkBAIC01MjMsNyArNTgyLDcgQEAgdm9pZCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cHJpbnRBY2Nlc3NEZQogICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcg
bWVzc2FnZTsKLSAgICBpZiAobV9kb2N1bWVudC0+dXJsKCkuaXNOdWxsKCkpCisgICAgaWYgKCFt
X2RvY3VtZW50IHx8IG1fZG9jdW1lbnQtPnVybCgpLmlzTnVsbCgpKQogICAgICAgICBtZXNzYWdl
ID0gIlVuc2FmZSBhdHRlbXB0IHRvIGxvYWQgVVJMICIgKyB1cmwuc3RyaW5nKCkgKyAnLic7CiAg
ICAgZWxzZQogICAgICAgICBtZXNzYWdlID0gIlVuc2FmZSBhdHRlbXB0IHRvIGxvYWQgVVJMICIg
KyB1cmwuc3RyaW5nKCkgKyAiIGZyb20gZnJhbWUgd2l0aCBVUkwgIiArIG1fZG9jdW1lbnQtPnVy
bCgpLnN0cmluZygpICsgIi4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LlxuIjsKQEAgLTUzMiw2ICs1OTEsMTUgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJp
bnRBY2Nlc3NEZQogICAgIGZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3Nh
Z2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKIH0KIAorI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNP
VVJDRSkKK0NhY2hlZE1haW5SZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RN
YWluUmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291
cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSk7CisgICAgQVNTRVJUKCFyZXNvdXJjZSB8fCByZXNvdXJj
ZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxDYWNoZWRNYWluUmVzb3VyY2UqPihyZXNvdXJjZSk7Cit9CisjZW5kaWYKKwog
dm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2V0QXV0b0xvYWRJbWFnZXMoYm9vbCBlbmFibGUp
CiB7CiAgICAgaWYgKGVuYWJsZSA9PSBtX2F1dG9Mb2FkSW1hZ2VzKQpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgJKHJldmlz
aW9uIDk0MzAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDkgKzQyLDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBDYWNoZWRGb250OwogY2xh
c3MgQ2FjaGVkSW1hZ2U7CitjbGFzcyBDYWNoZWRNYWluUmVzb3VyY2U7CiBjbGFzcyBDYWNoZWRT
Y3JpcHQ7CiBjbGFzcyBDYWNoZWRYU0xTdHlsZVNoZWV0OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSW1hZ2VMb2FkZXI7CiBjbGFz
cyBLVVJMOwpAQCAtNTYsOSArNTgsMTggQEAgZnJpZW5kIGNsYXNzIEltYWdlTG9hZGVyOwogZnJp
ZW5kIGNsYXNzIFJlc291cmNlQ2FjaGVWYWxpZGF0aW9uU3VwcHJlc3NvcjsKIAogcHVibGljOgor
I2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRl
cihEb2N1bWVudExvYWRlciopOworI2VuZGlmCiAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9j
dW1lbnQqKTsKICAgICB+Q2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKIAorCisjaWYgRU5BQkxFKENB
Q0hFRF9NQUlOX1JFU09VUkNFKQorICAgIHZvaWQgbW92ZVRvRG9jdW1lbnQoRG9jdW1lbnQqKTsK
KyAgICBDYWNoZWRNYWluUmVzb3VyY2UqIHJlcXVlc3RNYWluUmVzb3VyY2UoUmVzb3VyY2VSZXF1
ZXN0Jik7CisjZW5kaWYKKwogICAgIENhY2hlZEltYWdlKiByZXF1ZXN0SW1hZ2UoUmVzb3VyY2VS
ZXF1ZXN0Jik7CiAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldCogcmVxdWVzdENTU1N0eWxlU2hlZXQo
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlv
cml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CiAgICAgQ2FjaGVkQ1NTU3R5
bGVTaGVldCogcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN0cmluZyYgY2hhcnNldCk7CkBAIC04OCw2ICs5OSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBG
cmFtZSogZnJhbWUoKSBjb25zdDsgLy8gQ2FuIGJlIE5VTEwKICAgICBEb2N1bWVudCogZG9jdW1l
bnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9CisgICAgRG9jdW1lbnRMb2FkZXIqIGRv
Y3VtZW50TG9hZGVyKCkgY29uc3Q7CiAKICAgICB2b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENh
Y2hlZFJlc291cmNlKikgY29uc3Q7CiAKQEAgLTEyNiw2ICsxMzgsNyBAQCBwcml2YXRlOgogICAg
IEhhc2hTZXQ8U3RyaW5nPiBtX3ZhbGlkYXRlZFVSTHM7CiAgICAgbXV0YWJsZSBEb2N1bWVudFJl
c291cmNlTWFwIG1fZG9jdW1lbnRSZXNvdXJjZXM7CiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7
CisgICAgRG9jdW1lbnRMb2FkZXIqIG1fZG9jdW1lbnRMb2FkZXI7CiAgICAgCiAgICAgaW50IG1f
cmVxdWVzdENvdW50OwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAJKHJldmlzaW9uIDk0MzAxKQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDEwIEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlLmgiCisjaW5jbHVkZSAiQ2FjaGVkTWFpblJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTQ5LDYgKzUwLDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0YXRpYyBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgY2FjaGVkUmVzb3Vy
Y2VUeXBlVG9UYXJnZXRUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCiB7CiAgICAgc3dp
dGNoICh0eXBlKSB7CisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIFJlc291cmNlUmVx
dWVzdDo6VGFyZ2V0SXNNYWluRnJhbWU7CisjZW5kaWYKICAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpDU1NTdHlsZVNoZWV0OgogI2lmIEVOQUJMRShYU0xUKQogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlhTTFN0eWxlU2hlZXQ6CkBAIC05MSw3ICs5NiwxNiBAQCBQYXNzT3duUHRyPENhY2hlZFJl
c291cmNlUmVxdWVzdD4gQ2FjaGVkCiB7CiAgICAgT3duUHRyPENhY2hlZFJlc291cmNlUmVxdWVz
dD4gcmVxdWVzdCA9IGFkb3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY2FjaGVkUmVz
b3VyY2VMb2FkZXIsIHJlc291cmNlLCBpbmNyZW1lbnRhbCkpOwogCisjaWYgRU5BQkxFKENBQ0hF
RF9NQUlOX1JFU09VUkNFKQorICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3Q7Cisg
ICAgaWYgKHJlc291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSkK
KyAgICAgICAgcmVzb3VyY2VSZXF1ZXN0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50
TG9hZGVyKCktPnJlcXVlc3QoKTsKKyAgICBlbHNlCisgICAgICAgIHJlc291cmNlUmVxdWVzdCA9
IHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKTsKKyNlbHNlCiAgICAgUmVzb3VyY2VSZXF1ZXN0
IHJlc291cmNlUmVxdWVzdCA9IHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKTsKKyNlbmRpZgor
CiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldFRhcmdldFR5
cGUoY2FjaGVkUmVzb3VyY2VUeXBlVG9UYXJnZXRUeXBlKHJlc291cmNlLT50eXBlKCkpKTsKICNl
bmRpZgpAQCAtMTI0LDcgKzEzOCw3IEBAIFBhc3NPd25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
PiBDYWNoZWQKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IHJlc291cmNlLT5s
b2FkUHJpb3JpdHkoKTsKICAgICByZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkocHJpb3JpdHkp
OwogCi0gICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBsb2FkZXIgPSByZXNvdXJjZUxvYWRT
Y2hlZHVsZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoY2FjaGVkUmVzb3VyY2VMb2FkZXIt
PmRvY3VtZW50KCktPmZyYW1lKCksIHJlcXVlc3QuZ2V0KCksIHJlc291cmNlUmVxdWVzdCwgcHJp
b3JpdHksIHNlY3VyaXR5Q2hlY2ssIG9wdGlvbnMpOworICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxv
YWRlcj4gbG9hZGVyID0gcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPnNjaGVkdWxlU3VicmVzb3Vy
Y2VMb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCByZXF1ZXN0LmdldCgpLCByZXNv
dXJjZVJlcXVlc3QsIHByaW9yaXR5LCBzZWN1cml0eUNoZWNrLCBvcHRpb25zLCByZXNvdXJjZS0+
aWRlbnRpZmllcigpKTsKICAgICBpZiAoIWxvYWRlciB8fCBsb2FkZXItPnJlYWNoZWRUZXJtaW5h
bFN0YXRlKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFdoYXQgaWYgcmVzb3VyY2VzIGluIG90aGVy
IGZyYW1lcyB3ZXJlIHdhaXRpbmcgZm9yIHRoaXMgcmV2YWxpZGF0aW9uPwogICAgICAgICBMT0co
UmVzb3VyY2VMb2FkaW5nLCAiQ2Fubm90IHN0YXJ0IGxvYWRpbmcgJyVzJyIsIHJlc291cmNlLT51
cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwpAQCAtMTM3LDEzICsxNTEsMTYgQEAgUGFz
c093blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3Q+IENhY2hlZAogICAgIHJldHVybiByZXF1ZXN0
LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OndpbGxTZW5kUmVx
dWVzdChTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcSwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpCit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6d2lsbFNl
bmRSZXF1ZXN0KFN1YnJlc291cmNlTG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKLSAgICBp
ZiAoIW1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPmNoZWNrSW5zZWN1cmVDb250ZW50KG1fcmVzb3Vy
Y2UtPnR5cGUoKSwgcmVxLnVybCgpKSkgeworICAgIGlmICghbV9jYWNoZWRSZXNvdXJjZUxvYWRl
ci0+Y2hlY2tJbnNlY3VyZUNvbnRlbnQobV9yZXNvdXJjZS0+dHlwZSgpLCByZXF1ZXN0LnVybCgp
KSkgewogICAgICAgICBsb2FkZXItPmNhbmNlbCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIG1fcmVzb3VyY2UtPnNldFJlcXVlc3RlZEZyb21OZXR3b3JraW5nTGF5ZXIoKTsKKyAgICAv
LyBUT0RPKHdhbmd4aWFuemh1KTogY2hlY2s6IE93blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3Q+
IHByb3RlY3QodGhpcyk7CisgICAgaWYgKCFyZXF1ZXN0LmlzTnVsbCgpKQorICAgICAgICBtX3Jl
c291cmNlID0gbV9yZXNvdXJjZS0+d2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVz
cG9uc2UpOwogfQogCiB2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGlu
ZyhTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBkb3VibGUpCkBAIC0xNjQsOSArMTgxLDE0IEBA
IHZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpkaWRGaW5pc2hMb2EKIAogICAgIC8vIElmIHdl
IGdvdCBhIDR4eCByZXNwb25zZSwgd2UncmUgcHJldGVuZGluZyB0byBoYXZlIHJlY2VpdmVkIGEg
bmV0d29yawogICAgIC8vIGVycm9yLCBzbyB3ZSBjYW4ndCBzZW5kIHRoZSBzdWNjZXNzZnVsIGRh
dGEoKSBhbmQgZmluaXNoKCkgY2FsbGJhY2tzLgotICAgIGlmICghbV9yZXNvdXJjZS0+ZXJyb3JP
Y2N1cnJlZCgpKSB7CisgICAgaWYgKCFtX3Jlc291cmNlLT5lcnJvck9jY3VycmVkKCkKKyNpZiBF
TkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0UpCisgICAgICAgIHx8IG1fcmVzb3VyY2UtPnR5cGUo
KSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlCisjZW5kaWYKKyAgICAgICAgKSB7CiAg
ICAgICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPmxvYWRGaW5pc2hpbmcoKTsKLSAgICAgICAg
bV9yZXNvdXJjZS0+ZGF0YShsb2FkZXItPnJlc291cmNlRGF0YSgpLCB0cnVlKTsKKyAgICAgICAg
aWYgKGxvYWRlci0+c2hvdWxkQnVmZmVyRGF0YSgpID09IEJ1ZmZlckRhdGEpCisgICAgICAgICAg
ICBtX3Jlc291cmNlLT5kYXRhKGxvYWRlci0+cmVzb3VyY2VEYXRhKCksIHRydWUpOwogICAgICAg
ICBpZiAoIW1fcmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkKICAgICAgICAgICAgIG1fcmVzb3Vy
Y2UtPmZpbmlzaCgpOwogICAgIH0KQEAgLTE4NCw2ICsyMDYsMTQgQEAgdm9pZCBDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OmRpZEZhaWwoU3VicgogICAgIC8vIFByZXZlbnQgdGhlIGRvY3VtZW50IGZy
b20gYmVpbmcgZGVzdHJveWVkIGJlZm9yZSB3ZSBhcmUgZG9uZSB3aXRoCiAgICAgLy8gdGhlIGNh
Y2hlZFJlc291cmNlTG9hZGVyIHRoYXQgaXQgd2lsbCBkZWxldGUgd2hlbiB0aGUgZG9jdW1lbnQg
Z2V0cyBkZWxldGVkLgogICAgIFJlZlB0cjxEb2N1bWVudD4gcHJvdGVjdG9yKG1fY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmRvY3VtZW50KCkpOworICAgIG1fY3VycmVudFJlc291cmNlRXJyb3IgPSBl
cnJvcjsKKworICAgIC8vIFByZXZlbnQgdGhlIGRvY3VtZW50IGFuZCBkb2N1bWVudExvYWRlciBm
cm9tIGJlaW5nIGRlc3Ryb3llZCBiZWZvcmUgd2UgYXJlIGRvbmUgd2l0aAorICAgIC8vIHRoZSBj
YWNoZWRSZXNvdXJjZUxvYWRlciB0aGF0IHdpbGwgYmUgZGVsZXRlZCB3aGVuIHRoZXkgZ2V0IGRl
bGV0ZWQuCisgICAgLy8gTm90ZSB0aGF0IG9ubHkgb25lIG9mIHRoZXNlIHdpbGwgYmUgbm9uLW51
bGwuCisgICAgLy8gRklYTUU6IFNoZW5hbmlnYW5zLiBXZSBzaG91bGQganVzdCBtYWtlIENhY2hl
ZFJlc291cmNlTG9hZGVyIGJlIFJlZkNvdW50ZWQgYW5kIGVuZCB0aGlzIHNpbGxpbmVzcy4KKyAg
ICBSZWZQdHI8RG9jdW1lbnQ+IHByb3RlY3RvckRvY3VtZW50KG1fY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPmRvY3VtZW50KCkpOworICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gcHJvdGVjdG9yRG9j
dW1lbnRMb2FkZXIobV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSk7CiAg
ICAgaWYgKCFtX211bHRpcGFydCkKICAgICAgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+ZGVj
cmVtZW50UmVxdWVzdENvdW50KG1fcmVzb3VyY2UpOwogICAgIG1fZmluaXNoaW5nID0gdHJ1ZTsK
QEAgLTIyNyw1MSArMjU3LDgwIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpkaWRSZWNl
aXZlUmUKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmV2YWxpZGF0aW9uRmFpbGVkKG1fcmVzb3Vy
Y2UpOwogICAgIH0KIAorICAgIC8vIFRPRE8od2FuZ3hpYW56aHUpOiBjaGVjazogUmVmUHRyPENh
Y2hlZFJlc291cmNlUmVxdWVzdD4gcHJvdGVjdCh0aGlzKTsKICAgICBtX3Jlc291cmNlLT5zZXRS
ZXNwb25zZShyZXNwb25zZSk7CisgICAgLy8gc2V0UmVzcG9uc2UoKSBjYW4gdHJpZ2dlciBhIGNh
bmNlbGxhdGlvbiBvZiB0aGlzIHJlcXVlc3QuCisgICAgaWYgKG1fZmluaXNoaW5nKQorICAgICAg
ICByZXR1cm47CiAKICAgICBTdHJpbmcgZW5jb2RpbmcgPSByZXNwb25zZS50ZXh0RW5jb2RpbmdO
YW1lKCk7CiAgICAgaWYgKCFlbmNvZGluZy5pc051bGwoKSkKICAgICAgICAgbV9yZXNvdXJjZS0+
c2V0RW5jb2RpbmcoZW5jb2RpbmcpOworCisgICAgaWYgKG1fcmVzb3VyY2UtPnJlc3BvbnNlKCku
aHR0cFN0YXR1c0NvZGUoKSA+PSA0MDAgJiYgIW1fcmVzb3VyY2UtPnNob3VsZElnbm9yZUhUVFBT
dGF0dXNDb2RlRXJyb3JzKCkpCisgICAgICAgIG1fcmVzb3VyY2UtPmVycm9yKENhY2hlZFJlc291
cmNlOjpMb2FkRXJyb3IpOwogICAgIAogICAgIGlmIChtX211bHRpcGFydCkgewotICAgICAgICBB
U1NFUlQobV9yZXNvdXJjZS0+aXNJbWFnZSgpKTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8Q2FjaGVk
SW1hZ2UqPihtX3Jlc291cmNlKS0+Y2xlYXIoKTsKLSAgICAgICAgaWYgKG1fY2FjaGVkUmVzb3Vy
Y2VMb2FkZXItPmZyYW1lKCkpCi0gICAgICAgICAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5m
cmFtZSgpLT5sb2FkZXIoKS0+Y2hlY2tDb21wbGV0ZWQoKTsKKyAgICAgICAgQVNTRVJUKG1fcmVz
b3VyY2UtPmlzSW1hZ2UoKQorI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICAg
ICAgICAgIHx8IG1fcmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291
cmNlCisjZW5kaWYKKyAgICAgICAgKTsKKyAgICAgICAgaWYgKCFtX2luY3JlbWVudGFsKSB7Cisg
ICAgICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBsb2FkZXItPnJlc291cmNl
RGF0YSgpOworICAgICAgICAgICAgaWYgKGJ1ZmZlcikKKyAgICAgICAgICAgICAgICBkaWRSZWNl
aXZlRGF0YShsb2FkZXIsIGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKG1fcmVzb3VyY2UtPmlzSW1hZ2UoKSkgeworICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8Q2FjaGVkSW1hZ2UqPihtX3Jlc291cmNlKS0+Y2xlYXIoKTsKKyAgICAgICAgICAg
IGlmIChtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5mcmFtZSgpKQorICAgICAgICAgICAgICAgIG1f
Y2FjaGVkUmVzb3VyY2VMb2FkZXItPmZyYW1lKCktPmxvYWRlcigpLT5jaGVja0NvbXBsZXRlZCgp
OworI2lmIEVOQUJMRShDQUNIRURfTUFJTl9SRVNPVVJDRSkKKyAgICAgICAgfSBlbHNlIGlmICht
X3Jlc291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSkgeworICAg
ICAgICAgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWVM
b2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+c2V0dXBGb3JSZXBsYWNlQnlNSU1FVHlw
ZShyZXNwb25zZS5taW1lVHlwZSgpKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PENhY2hlZE1h
aW5SZXNvdXJjZSo+KG1fcmVzb3VyY2UpLT5jbGVhcigpOworI2VuZGlmCisgICAgICAgIH0KKyAg
ICAgICAgbG9hZGVyLT5jbGVhclJlc291cmNlRGF0YSgpOwogICAgIH0gZWxzZSBpZiAocmVzcG9u
c2UuaXNNdWx0aXBhcnQoKSkgewogICAgICAgICBtX211bHRpcGFydCA9IHRydWU7CisKKyAgICAg
ICAgaWYgKG1fcmVzb3VyY2UtPmlzSW1hZ2UoKSkKKyAgICAgICAgICAgIG1faW5jcmVtZW50YWwg
PSBmYWxzZTsKICAgICAgICAgCiAgICAgICAgIC8vIFdlIGRvbid0IGNvdW50IG11bHRpUGFydHMg
aW4gYSBDYWNoZWRSZXNvdXJjZUxvYWRlcidzIHJlcXVlc3QgY291bnQKICAgICAgICAgbV9jYWNo
ZWRSZXNvdXJjZUxvYWRlci0+ZGVjcmVtZW50UmVxdWVzdENvdW50KG1fcmVzb3VyY2UpOwogCiAg
ICAgICAgIC8vIElmIHdlIGdldCBhIG11bHRpcGFydCByZXNwb25zZSwgd2UgbXVzdCBoYXZlIGEg
aGFuZGxlCiAgICAgICAgIEFTU0VSVChsb2FkZXItPmhhbmRsZSgpKTsKLSAgICAgICAgaWYgKCFt
X3Jlc291cmNlLT5pc0ltYWdlKCkpCisgICAgICAgIGlmICghbV9yZXNvdXJjZS0+aXNJbWFnZSgp
CisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgICAgICAgICAgJiYgbV9yZXNv
dXJjZS0+dHlwZSgpICE9IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UKKyNlbmRpZgorICAg
ICAgICAgICAgKQogICAgICAgICAgICAgbG9hZGVyLT5oYW5kbGUoKS0+Y2FuY2VsKCk7CiAgICAg
fQorCisjaWYgRU5BQkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQorICAgIGlmICghbV9tdWx0aXBh
cnQgJiYgbV9yZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2Up
CisgICAgICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmNoZWNr
Q29udGVudFBvbGljeSgpOworI2VuZGlmCiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpkaWRSZWNlaXZlRGF0YShTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgc2l6ZSkKIHsKICAgICBBU1NFUlQobG9hZGVyID09IG1fbG9hZGVyLmdldCgpKTsK
ICAgICBBU1NFUlQoIW1fcmVzb3VyY2UtPmlzQ2FjaGVWYWxpZGF0b3IoKSk7Ci0gICAgCi0gICAg
aWYgKG1fcmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkKLSAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKG1fcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApIHsKLSAg
ICAgICAgaWYgKCFtX3Jlc291cmNlLT5zaG91bGRJZ25vcmVIVFRQU3RhdHVzQ29kZUVycm9ycygp
KQotICAgICAgICAgICAgbV9yZXNvdXJjZS0+ZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OkxvYWRFcnJv
cik7CisgICAgaWYgKG1fcmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKQorI2lmIEVOQUJMRShDQUNI
RURfTUFJTl9SRVNPVVJDRSkKKyAgICAgICAgJiYgbV9yZXNvdXJjZS0+dHlwZSgpICE9IENhY2hl
ZFJlc291cmNlOjpNYWluUmVzb3VyY2UKKyNlbmRpZgorICAgICAgICApCiAgICAgICAgIHJldHVy
bjsKLSAgICB9CiAKICAgICAvLyBTZXQgdGhlIGRhdGEuCi0gICAgaWYgKG1fbXVsdGlwYXJ0KSB7
Ci0gICAgICAgIC8vIFRoZSBsb2FkZXIgZGVsaXZlcnMgdGhlIGRhdGEgaW4gYSBtdWx0aXBhcnQg
c2VjdGlvbiBhbGwgYXQgb25jZSwgc2VuZCBlb2YuCi0gICAgICAgIC8vIFRoZSByZXNvdXJjZSBk
YXRhIHdpbGwgY2hhbmdlIGFzIHRoZSBuZXh0IHBhcnQgaXMgbG9hZGVkLCBzbyB3ZSBuZWVkIHRv
IG1ha2UgYSBjb3B5LgotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBjb3BpZWREYXRhID0g
U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgc2l6ZSk7Ci0gICAgICAgIG1fcmVzb3VyY2UtPmRh
dGEoY29waWVkRGF0YS5yZWxlYXNlKCksIHRydWUpOwotICAgIH0gZWxzZSBpZiAobV9pbmNyZW1l
bnRhbCkKKyAgICBpZiAobV9pbmNyZW1lbnRhbCkKICAgICAgICAgbV9yZXNvdXJjZS0+ZGF0YShs
b2FkZXItPnJlc291cmNlRGF0YSgpLCBmYWxzZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgJKHJldmlzaW9u
IDk0MzAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgfkNhY2hlZFJlc291cmNlUmVxdWVzdCgpOwogCiAgICAgICAgIENhY2hlZFJl
c291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY2Fj
aGVkUmVzb3VyY2VMb2FkZXI7IH0KKyAgICAgICAgU3VicmVzb3VyY2VMb2FkZXIqIGxvYWRlcigp
IGNvbnN0IHsgcmV0dXJuIG1fbG9hZGVyLmdldCgpOyB9CisgICAgICAgIGNvbnN0IFJlc291cmNl
RXJyb3ImIGN1cnJlbnRSZXNvdXJjZUVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UmVz
b3VyY2VFcnJvcjsgfQorICAgICAgICBib29sIG11bHRpcGFydCgpIGNvbnN0IHsgcmV0dXJuIG1f
bXVsdGlwYXJ0OyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqLCBDYWNoZWRSZXNvdXJjZSosIGJvb2wgaW5jcmVtZW50
YWwpOwpAQCAtNjQsNiArNjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
bV9pbmNyZW1lbnRhbDsKICAgICAgICAgYm9vbCBtX211bHRpcGFydDsKICAgICAgICAgYm9vbCBt
X2ZpbmlzaGluZzsKKyAgICAgICAgUmVzb3VyY2VFcnJvciBtX2N1cnJlbnRSZXNvdXJjZUVycm9y
OwogICAgIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRM
b2FkZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9j
dW1lbnRMb2FkZXJNYWMuY3BwCShyZXZpc2lvbiA5NDMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw4ICs1
NSwxMCBAQCBzdGF0aWMgdm9pZCB1bnNjaGVkdWxlQWxsKGNvbnN0IFJlc291cmNlCiAKIHZvaWQg
RG9jdW1lbnRMb2FkZXI6OnNjaGVkdWxlKFNjaGVkdWxlUGFpciogcGFpcikKIHsKKyNpZiAhRU5B
QkxFKENBQ0hFRF9NQUlOX1JFU09VUkNFKQogICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAm
JiBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkpCiAgICAgICAgIG1fbWFpblJlc291cmNl
TG9hZGVyLT5oYW5kbGUoKS0+c2NoZWR1bGUocGFpcik7CisjZW5kaWYKICAgICBzY2hlZHVsZUFs
bChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAgICAgc2NoZWR1bGVBbGwobV9wbHVnSW5T
dHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX211bHRpcGFydFN1YnJlc291
cmNlTG9hZGVycywgcGFpcik7CkBAIC02NCw4ICs2NiwxMCBAQCB2b2lkIERvY3VtZW50TG9hZGVy
OjpzY2hlZHVsZShTY2hlZHVsZVBhCiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnVuc2NoZWR1bGUo
U2NoZWR1bGVQYWlyKiBwYWlyKQogeworI2lmICFFTkFCTEUoQ0FDSEVEX01BSU5fUkVTT1VSQ0Up
CiAgICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5o
YW5kbGUoKSkKICAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLT51bnNjaGVk
dWxlKHBhaXIpOworI2VuZGlmCiAgICAgdW5zY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVy
cywgcGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX3BsdWdJblN0cmVhbUxvYWRlcnMsIHBhaXIp
OwogICAgIHVuc2NoZWR1bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRQcmlv
cml0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VMb2FkUHJpb3JpdHkuaAkocmV2aXNpb24gOTQzMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9yaXR5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDggKzM1LDkgQEAgZW51bSBSZXNvdXJjZUxvYWRQcmlvcml0eSB7CiAgICAgUmVzb3VyY2VM
b2FkUHJpb3JpdHlMb3csCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlNZWRpdW0sCiAgICAgUmVz
b3VyY2VMb2FkUHJpb3JpdHlIaWdoLAorICAgIFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUhpZ2gs
CiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3dlc3QgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVZl
cnlMb3csCi0gICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0ID0gUmVzb3VyY2VMb2FkUHJp
b3JpdHlIaWdoLAorICAgIFJlc291cmNlTG9hZFByaW9yaXR5SGlnaGVzdCA9IFJlc291cmNlTG9h
ZFByaW9yaXR5VmVyeUhpZ2gsCiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5oCShyZXZp
c2lvbiA5NDMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VSZXF1ZXN0Q0ZOZXQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsOCBAQCBpbmxpbmUg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgdG9SZXNvdXJjZUxvCiAgICAgICAgIHJldHVybiBSZXNvdXJj
ZUxvYWRQcmlvcml0eU1lZGl1bTsKICAgICBjYXNlIDM6CiAgICAgICAgIHJldHVybiBSZXNvdXJj
ZUxvYWRQcmlvcml0eUhpZ2g7CisgICAgY2FzZSA0OgorICAgICAgICByZXR1cm4gUmVzb3VyY2VM
b2FkUHJpb3JpdHlWZXJ5SGlnaDsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5TG93ZXN0OwpAQCAt
NzMsNiArNzUsOCBAQCBpbmxpbmUgaW50IHRvSFRUUFBpcGVsaW5pbmdQcmlvcml0eShSZXNvCiAg
ICAgICAgIHJldHVybiAyOwogICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoOgogICAg
ICAgICByZXR1cm4gMzsKKyAgICBjYXNlIFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUhpZ2g6Cisg
ICAgICAgIHJldHVybiA0OwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQkocmV2aXNpb24gOTQzMDEpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDYgKzMyLDcgQEAKICAgIyBUaGUgZm9sbG93aW5nIGRlZmluZXMgdHVybiBXZWJLaXQgZmVhdHVy
ZXMgb24gYW5kIG9mZi4KICAgJ3ZhcmlhYmxlcyc6IHsKICAgICAnZmVhdHVyZV9kZWZpbmVzJzog
WworICAgICAgJ0VOQUJMRV9DQUNIRURfTUFJTl9SRVNPVVJDRT0xJywKICAgICAgICdFTkFCTEVf
M0RfUExVR0lOPTEnLAogICAgICAgJ0VOQUJMRV9CTE9CPTEnLAogICAgICAgJ0VOQUJMRV9CTE9C
X1NMSUNFPTEnLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120066</attachid>
            <date>2011-12-20 13:12:41 -0800</date>
            <delta_ts>2012-05-17 15:36:59 -0700</delta_ts>
            <desc>New attempt - see comment #9 for details</desc>
            <filename>cachemainresource.txt</filename>
            <type>text/plain</type>
            <size>60349</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAxMDI0NjUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTY5LDYgKzU2OSwxMCBAQAog
ICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCk7IC8vIEZJWE1FOiBU
cnkgdG8gcmVkdWNlIHRoZSAjIG9mIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24uCiAgICAgQ2FjaGVk
UmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyKCkgeyByZXR1cm4gbV9jYWNoZWRS
ZXNvdXJjZUxvYWRlci5nZXQoKTsgfQogCisgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgdG8gYWxs
b3cgYSBzYW5kYm94ZWQgcGx1Z2luIGRvY3VtZW50IHRvIGJlY29tZSBhIFNpbmtEb2N1bWVudC4K
KyAgICAvLyBQbGVhc2UgZG8gbm90IHRha2VDYWNoZWRSZXNvdXJjZUxvYWRlciB3aXRob3V0IGFz
a2luZyB5b3VyIHBoeXNpY2lhbiBmaXJzdC4KKyAgICB2b2lkIHRha2VDYWNoZWRSZXNvdXJjZUxv
YWRlcihEb2N1bWVudCopOworCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOwogICAgIHZpcnR1
YWwgdm9pZCBkZXRhY2goKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAxMDI0NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NTcsNyArNDU3LDEyIEBACiAKICAgICBtX21hcmtlcnMgPSBhZG9wdFB0cihuZXcg
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKTsKIAotICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIg
PSBhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIodGhpcykpOworICAgIGlmIChtX2Zy
YW1lKQorICAgICAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyID0gbV9mcmFtZS0+bG9hZGVyKCkt
PmRvY3VtZW50TG9hZGVyKCktPnJlbGVhc2VDYWNoZWRSZXNvdXJjZUxvYWRlcigpOworICAgIGlm
IChtX2NhY2hlZFJlc291cmNlTG9hZGVyKQorICAgICAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVy
LT5tb3ZlVG9Eb2N1bWVudCh0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIG1fY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIgPSBhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIodGhpcykpOwogCiAg
ICAgbV92aXN1YWxseU9yZGVyZWQgPSBmYWxzZTsKICAgICBtX2JQYXJzaW5nID0gZmFsc2U7CkBA
IC01MjA2LDYgKzUyMTEsMTQgQEAKICAgICAKICAgICByZXR1cm4gbG9hZGVyOwogfQorICAgIAor
dm9pZCBEb2N1bWVudDo6dGFrZUNhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICBBU1NFUlQoIW1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDb3VudCgp
KTsKKyAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyLmNsZWFyKCk7CisgICAgbV9jYWNoZWRSZXNv
dXJjZUxvYWRlciA9IGRvY3VtZW50LT5tX2NhY2hlZFJlc291cmNlTG9hZGVyLnJlbGVhc2UoKTsK
KyAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5tb3ZlVG9Eb2N1bWVudCh0aGlzKTsKK30KIAog
I2lmIEVOQUJMRShNSUNST0RBVEEpCiBQYXNzUmVmUHRyPE5vZGVMaXN0PiBEb2N1bWVudDo6Z2V0
SXRlbXMoY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9yaXR5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRQcmlvcml0eS5oCShyZXZpc2lv
biAxMDI0NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9h
ZFByaW9yaXR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDggKzM1LDkgQEAKICAgICBSZXNvdXJj
ZUxvYWRQcmlvcml0eUxvdywKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bSwKICAgICBS
ZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2gsCisgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5SGln
aCwKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eUxvd2VzdCA9IFJlc291cmNlTG9hZFByaW9yaXR5
VmVyeUxvdywKLSAgICBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hlc3QgPSBSZXNvdXJjZUxvYWRQ
cmlvcml0eUhpZ2gsCisgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0ID0gUmVzb3VyY2VM
b2FkUHJpb3JpdHlWZXJ5SGlnaCwKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgJKHJl
dmlzaW9uIDEwMjQ2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsOCBAQAogICAg
ICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlNZWRpdW07CiAgICAgY2FzZSAzOgogICAg
ICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoOworICAgIGNhc2UgNDoKKyAgICAg
ICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUhpZ2g7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQ
cmlvcml0eUxvd2VzdDsKQEAgLTczLDYgKzc1LDggQEAKICAgICAgICAgcmV0dXJuIDI7CiAgICAg
Y2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2g6CiAgICAgICAgIHJldHVybiAzOworICAgIGNh
c2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5SGlnaDoKKyAgICAgICAgcmV0dXJuIDQ7CiAgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAkocmV2aXNpb24gMTAyNDY1KQorKysg
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExNyw3ICsxMTcsNyBAQAogc3RhdGljIGJvb2wgaGFzVGV4dENvbnRlbnQoQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogICAgIEluc3BlY3RvclBhZ2VBZ2VudDo6
UmVzb3VyY2VUeXBlIHR5cGUgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlVHlw
ZSgqY2FjaGVkUmVzb3VyY2UpOwotICAgIHJldHVybiB0eXBlID09IEluc3BlY3RvclBhZ2VBZ2Vu
dDo6U3R5bGVzaGVldFJlc291cmNlIHx8IHR5cGUgPT0gSW5zcGVjdG9yUGFnZUFnZW50OjpTY3Jp
cHRSZXNvdXJjZTsKKyAgICByZXR1cm4gdHlwZSA9PSBJbnNwZWN0b3JQYWdlQWdlbnQ6OkRvY3Vt
ZW50UmVzb3VyY2UgfHwgdHlwZSA9PSBJbnNwZWN0b3JQYWdlQWdlbnQ6OlN0eWxlc2hlZXRSZXNv
dXJjZSB8fCB0eXBlID09IEluc3BlY3RvclBhZ2VBZ2VudDo6U2NyaXB0UmVzb3VyY2U7CiB9CiAK
IGJvb2wgSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFJlc291cmNlLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCogYmFzZTY0RW5jb2Rl
ZCkKQEAgLTIzOCw2ICsyMzgsOCBAQAogSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUg
SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5cGUoY29uc3QgQ2FjaGVkUmVzb3Vy
Y2UmIGNhY2hlZFJlc291cmNlKQogewogICAgIHN3aXRjaCAoY2FjaGVkUmVzb3VyY2UudHlwZSgp
KSB7CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgorICAgICAgICByZXR1
cm4gSW5zcGVjdG9yUGFnZUFnZW50OjpEb2N1bWVudFJlc291cmNlOwogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OkltYWdlUmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBJbnNwZWN0b3JQYWdlQWdl
bnQ6OkltYWdlUmVzb3VyY2U7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNl
OgpAQCAtMjUwLDYgKzI1Miw4IEBACiAgICAgICAgIHJldHVybiBJbnNwZWN0b3JQYWdlQWdlbnQ6
OlN0eWxlc2hlZXRSZXNvdXJjZTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpTY3JpcHQ6CiAg
ICAgICAgIHJldHVybiBJbnNwZWN0b3JQYWdlQWdlbnQ6OlNjcmlwdFJlc291cmNlOworICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9y
UGFnZUFnZW50OjpYSFJSZXNvdXJjZTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwCShyZXZpc2lvbiAxMDI0NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OSw3
ICsyNjksNyBAQAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlRGF0YSh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3Ro
LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgU3RyaW5nIHJlcXVlc3RJZCA9IElkZW50
aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpOwotICAgIGlmIChkYXRhICYmIG1f
cmVzb3VyY2VzRGF0YS0+cmVzb3VyY2VUeXBlKHJlcXVlc3RJZCkgPT0gSW5zcGVjdG9yUGFnZUFn
ZW50OjpPdGhlclJlc291cmNlKQorICAgIGlmIChkYXRhICYmIChtX3Jlc291cmNlc0RhdGEtPnJl
c291cmNlVHlwZShyZXF1ZXN0SWQpID09IEluc3BlY3RvclBhZ2VBZ2VudDo6T3RoZXJSZXNvdXJj
ZSB8fCBtX3Jlc291cmNlc0RhdGEtPnJlc291cmNlVHlwZShyZXF1ZXN0SWQpID09IEluc3BlY3Rv
clBhZ2VBZ2VudDo6RG9jdW1lbnRSZXNvdXJjZSkKICAgICAgICAgbV9yZXNvdXJjZXNEYXRhLT5t
YXliZUFkZFJlc291cmNlRGF0YShyZXF1ZXN0SWQsIGRhdGEsIGRhdGFMZW5ndGgpOwogCiAgICAg
bV9mcm9udGVuZC0+ZGF0YVJlY2VpdmVkKHJlcXVlc3RJZCwgY3VycmVudFRpbWUoKSwgZGF0YUxl
bmd0aCwgZW5jb2RlZERhdGFMZW5ndGgpOwpAQCAtNDk4LDcgKzQ5OCw3IEBACiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHJlc291cmNlRGF0YS0+Y2FjaGVkUmVzb3VyY2Uo
KSkgeworICAgIGlmIChyZXNvdXJjZURhdGEtPmNhY2hlZFJlc291cmNlKCkgJiYgcmVzb3VyY2VE
YXRhLT50eXBlKCkgIT0gSW5zcGVjdG9yUGFnZUFnZW50OjpYSFJSZXNvdXJjZSkgewogICAgICAg
ICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZUNvbnRlbnQocmVzb3VyY2VE
YXRhLT5jYWNoZWRSZXNvdXJjZSgpLCBjb250ZW50LCBiYXNlNjRFbmNvZGVkKSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3Vt
ZW50TG9hZGVyTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFj
L0RvY3VtZW50TG9hZGVyTWFjLmNwcAkocmV2aXNpb24gMTAyNDY1KQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDggKzU1LDYgQEAKIAogdm9pZCBEb2N1bWVudExvYWRlcjo6c2NoZWR1bGUoU2NoZWR1bGVQYWly
KiBwYWlyKQogewotICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJj
ZUxvYWRlci0+aGFuZGxlKCkpCi0gICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUo
KS0+c2NoZWR1bGUocGFpcik7CiAgICAgc2NoZWR1bGVBbGwobV9zdWJyZXNvdXJjZUxvYWRlcnMs
IHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fcGx1Z0luU3RyZWFtTG9hZGVycywgcGFpcik7CiAg
ICAgc2NoZWR1bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwpAQCAt
NjQsOCArNjIsNiBAQAogCiB2b2lkIERvY3VtZW50TG9hZGVyOjp1bnNjaGVkdWxlKFNjaGVkdWxl
UGFpciogcGFpcikKIHsKLSAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9tYWluUmVz
b3VyY2VMb2FkZXItPmhhbmRsZSgpKQotICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFu
ZGxlKCktPnVuc2NoZWR1bGUocGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX3N1YnJlc291cmNl
TG9hZGVycywgcGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX3BsdWdJblN0cmVhbUxvYWRlcnMs
IHBhaXIpOwogICAgIHVuc2NoZWR1bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMs
IHBhaXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lv
biAxMDI0NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjc2LDkgKzIyNzYsOCBAQAogICAgICAgICAgICAgICAgIHBhZ2UtPnBy
b2dyZXNzKCktPnByb2dyZXNzQ29tcGxldGVkKG1fZnJhbWUpOwogCiAgICAgICAgICAgICBjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IGRsLT5tYWluRG9jdW1lbnRFcnJvcigpOwotCiAgICAg
ICAgICAgICBBWE9iamVjdENhY2hlOjpBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQ7Ci0gICAg
ICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBpZiAoIWVycm9yLmlz
TnVsbCgpICYmICFlcnJvci5pc0NhbmNlbGxhdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgbV9j
bGllbnQtPmRpc3BhdGNoRGlkRmFpbExvYWQoZXJyb3IpOwogICAgICAgICAgICAgICAgIGxvYWRp
bmdFdmVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYTG9hZGluZ0ZhaWxlZDsKICAgICAgICAgICAgIH0g
ZWxzZSB7CkBAIC0yMzIwLDE3ICsyMzE5LDEwIEBACiAKICAgICBtX2xvYWRpbmdGcm9tQ2FjaGVk
UGFnZSA9IGZhbHNlOwogCi0gICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyID0gMDsKLQotICAg
IGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7Ci0gICAgICAgIGlkZW50aWZpZXIg
PSBwYWdlLT5wcm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7Ci0gICAgICAgIG5v
dGlmaWVyKCktPmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIG1f
cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci5nZXQoKSwgbV9wcm92aXNpb25hbERvY3VtZW50TG9h
ZGVyLT5vcmlnaW5hbFJlcXVlc3QoKSk7Ci0gICAgfQotCiAgICAgQVNTRVJUKCFtX3Byb3Zpc2lv
bmFsRG9jdW1lbnRMb2FkZXItPnRpbWluZygpLT5uYXZpZ2F0aW9uU3RhcnQpOwogICAgIG1fcHJv
dmlzaW9uYWxEb2N1bWVudExvYWRlci0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCA9IGN1cnJl
bnRUaW1lKCk7CiAKLSAgICBpZiAoIW1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+c3RhcnRM
b2FkaW5nTWFpblJlc291cmNlKGlkZW50aWZpZXIpKQorICAgIGlmICghbV9wcm92aXNpb25hbERv
Y3VtZW50TG9hZGVyLT5zdGFydExvYWRpbmdNYWluUmVzb3VyY2UoKSkKICAgICAgICAgbV9wcm92
aXNpb25hbERvY3VtZW50TG9hZGVyLT51cGRhdGVMb2FkaW5nKCk7CiB9CiAKQEAgLTI0NDYsNyAr
MjQzOCw4IEBACiAvLyBDYWxsZWQgZXZlcnkgdGltZSBhIHJlc291cmNlIGlzIGNvbXBsZXRlbHkg
bG9hZGVkIG9yIGFuIGVycm9yIGlzIHJlY2VpdmVkLgogdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tM
b2FkQ29tcGxldGUoKQogewotICAgIEFTU0VSVChtX2NsaWVudC0+aGFzV2ViVmlldygpKTsKKyAg
ICBpZiAoIW1fY2xpZW50LT5oYXNXZWJWaWV3KCkpCisgICAgICAgIHJldHVybjsKICAgICAKICAg
ICBtX3Nob3VsZENhbGxDaGVja0xvYWRDb21wbGV0ZSA9IGZhbHNlOwogCkBAIC0yNzMyLDcgKzI3
MjUsOCBAQAogICAgICAgICAgICAgY2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKGZh
bHNlKTsKICAgICB9CiAKLSAgICBsb2FkZXItPm1haW5SZWNlaXZlZEVycm9yKGVycm9yLCBpc0Nv
bXBsZXRlKTsKKyAgICBpZiAobG9hZGVyKQorICAgICAgICBsb2FkZXItPm1haW5SZWNlaXZlZEVy
cm9yKGVycm9yLCBpc0NvbXBsZXRlKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y2FsbENvbnRp
bnVlRnJhZ21lbnRTY3JvbGxBZnRlck5hdmlnYXRpb25Qb2xpY3kodm9pZCogYXJndW1lbnQsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
aAkocmV2aXNpb24gMTAyNDY1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE5ICsyNywyNSBAQAogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IFN1YnJlc291cmNlTG9hZGVyOwogCiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZSA6IHB1YmxpYyBD
YWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VS
ZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiwgVHlwZSk7
CiAKICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1
bWVudFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2Ug
Q2FjaGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJs
ZSB0byBkZWZlciBsb2FkaW5nLgogICAgIC8vIFRoaXMgY2FuIGJlIGZpeGVkIGJ5IHNwbGl0dGlu
ZyBDT1JTIHByZWZsaWdodGluZyBvdXQgb2YgRG9jdW1lbnRUaHJlYWNhYmxlTG9hZGVyLgogICAg
IHZpcnR1YWwgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOworCisgICAgdmlydHVhbCB2b2lk
IHNldFNob3VsZEJ1ZmZlckRhdGEoRGF0YUJ1ZmZlcmluZ1BvbGljeSk7CiAgICAgCiAgICAgLy8g
RklYTUU6IFRoaXMgaXMgZXhwb3NlZCBmb3IgdGhlIElucHNlY3Rvckluc3RydW1lbnRhdGlvbiBm
b3IgcHJlZmxpZ2h0cyBpbiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuIEl0J3MgYWxzbyByZWFs
bHkgbGFtZS4KICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBjb25zdDsKIAorICAgIFN1
YnJlc291cmNlTG9hZGVyKiBsb2FkZXIoKSBjb25zdDsKKyAgICB2b2lkIGNsZWFyKCk7CisKIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVu
dCopOwogICAgIHZpcnR1YWwgdm9pZCBkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRh
LCBib29sIGFsbERhdGFSZWNlaXZlZCk7CkBAIC01Myw4ICs1OSw2IEBACiAjaWYgUExBVEZPUk0o
Q0hST01JVU0pCiAgICAgdmlydHVhbCB2b2lkIGRpZERvd25sb2FkRGF0YShpbnQpOwogI2VuZGlm
Ci0KLSAgICBzaXplX3QgbV9kYXRhTGVuZ3RoOwogfTsKIAogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAJKHJldmlz
aW9uIDEwMjQ2NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJD
b250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCkBAIC03NSw3ICs3Niw4IEBACiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJl
c291cmNlOgogICAgICAgICByZXR1cm4gbmV3IENhY2hlZEZvbnQocmVxdWVzdCk7CiAgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVk
UmF3UmVzb3VyY2UocmVxdWVzdCk7CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291
cmNlOgorICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJhd1Jlc291cmNlKHJlcXVlc3QsIHR5cGUp
OwogI2lmIEVOQUJMRShYU0xUKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hl
ZXQ6CiAgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkWFNMU3R5bGVTaGVldChyZXF1ZXN0KTsKQEAg
LTEwOSw2ICsxMTEsNyBAQAogCiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAg
ICAsIG1fZG9jdW1lbnRMb2FkZXIoMCkKICAgICAsIG1fcmVxdWVzdENvdW50KDApCiAgICAgLCBt
X2dhcmJhZ2VDb2xsZWN0RG9jdW1lbnRSZXNvdXJjZXNUaW1lcih0aGlzLCAmQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmdhcmJhZ2VDb2xsZWN0RG9jdW1lbnRSZXNvdXJjZXNUaW1lckZpcmVkKQogICAg
ICwgbV9hdXRvTG9hZEltYWdlcyh0cnVlKQpAQCAtMTE3LDkgKzEyMCwyMSBAQAogewogfQogCitD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIq
IGRvY3VtZW50TG9hZGVyKQorICAgIDogbV9kb2N1bWVudCgwKQorICAgICwgbV9kb2N1bWVudExv
YWRlcihkb2N1bWVudExvYWRlcikKKyAgICAsIG1fcmVxdWVzdENvdW50KDApCisgICAgLCBtX2dh
cmJhZ2VDb2xsZWN0RG9jdW1lbnRSZXNvdXJjZXNUaW1lcih0aGlzLCAmQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmdhcmJhZ2VDb2xsZWN0RG9jdW1lbnRSZXNvdXJjZXNUaW1lckZpcmVkKQorICAgICwg
bV9hdXRvTG9hZEltYWdlcyh0cnVlKQorICAgICwgbV9sb2FkRmluaXNoaW5nKGZhbHNlKQorICAg
ICwgbV9hbGxvd1N0YWxlUmVzb3VyY2VzKGZhbHNlKQoreworfQorCiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6fkNhY2hlZFJlc291cmNlTG9hZGVyKCkKIHsKICAgICBtX2RvY3VtZW50ID0gMDsKKyAg
ICBtX2RvY3VtZW50TG9hZGVyID0gMDsKIAogICAgIGNsZWFyUHJlbG9hZHMoKTsKICAgICBEb2N1
bWVudFJlc291cmNlTWFwOjppdGVyYXRvciBlbmQgPSBtX2RvY3VtZW50UmVzb3VyY2VzLmVuZCgp
OwpAQCAtMTMwLDYgKzE0NSwxNSBAQAogICAgIEFTU0VSVChtX3JlcXVlc3RDb3VudCA9PSAwKTsK
IH0KIAordm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bW92ZVRvRG9jdW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIEFTU0VSVChtX2RvY3VtZW50TG9hZGVyIHx8IG1fZG9jdW1lbnQp
OworICAgIEFTU0VSVCghbV9kb2N1bWVudExvYWRlciB8fCAhbV9kb2N1bWVudCk7CisgICAgQVNT
RVJUKCFtX2RvY3VtZW50TG9hZGVyIHx8IGRvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9j
dW1lbnRMb2FkZXIoKSA9PSBtX2RvY3VtZW50TG9hZGVyKTsKKyAgICBtX2RvY3VtZW50ID0gZG9j
dW1lbnQ7CisgICAgbV9kb2N1bWVudExvYWRlciA9IDA7Cit9CisKIENhY2hlZFJlc291cmNlKiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FjaGVkUmVzb3VyY2UoY29uc3QgU3RyaW5nJiByZXNvdXJj
ZVVSTCkgY29uc3QgCiB7CiAgICAgS1VSTCB1cmwgPSBtX2RvY3VtZW50LT5jb21wbGV0ZVVSTChy
ZXNvdXJjZVVSTCk7CkBAIC0xNDQsOSArMTY4LDIwIEBACiAKIEZyYW1lKiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6ZnJhbWUoKSBjb25zdAogeworICAgIEFTU0VSVCghbV9kb2N1bWVudExvYWRlciB8
fCAhbV9kb2N1bWVudCk7CisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJldHVy
biBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpOwogICAgIHJldHVybiBtX2RvY3VtZW50ID8gbV9k
b2N1bWVudC0+ZnJhbWUoKSA6IDA7CiB9CiAKK0RvY3VtZW50TG9hZGVyKiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6ZG9jdW1lbnRMb2FkZXIoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9kb2N1bWVu
dExvYWRlciB8fCAhbV9kb2N1bWVudCk7CisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCisgICAg
ICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVyOworICAgIHJldHVybiBtX2RvY3VtZW50ID8gbV9k
b2N1bWVudC0+bG9hZGVyKCkgOiAwOworfQorCiBDYWNoZWRJbWFnZSogQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RJbWFnZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgaWYg
KEZyYW1lKiBmID0gZnJhbWUoKSkgewpAQCAtMjM0LDkgKzI2OSw5IEBACiB9CiAjZW5kaWYKIAot
Q2FjaGVkUmF3UmVzb3VyY2UqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3Vy
Y2UoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMm
IG9wdGlvbnMpCitDYWNoZWRSYXdSZXNvdXJjZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlTG9h
ZGVyT3B0aW9ucyYgb3B0aW9ucywgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKIHsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgb3B0aW9ucywgUmVz
b3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkLCBmYWxzZSkpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDYWNoZWRSYXdSZXNvdXJjZSo+KHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBT
dHJpbmcoKSwgb3B0aW9ucywgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkLCBmYWxzZSkp
OwogfQogCiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudChD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CkBAIC0yNzAs
NiArMzA1LDcgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlJhd1Jlc291cmNlOgorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZToK
ICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5r
UHJlZmV0Y2g6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZXJlbmRlcjoKQEAgLTI4
Myw3ICszMTksNyBAQAogCiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBmb3JQcmVsb2Fk
KQogewotICAgIGlmICghZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxheSh1
cmwpKSB7CisgICAgaWYgKGRvY3VtZW50KCkgJiYgIWRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCktPmNhbkRpc3BsYXkodXJsKSkgewogICAgICAgICBpZiAoIWZvclByZWxvYWQpCiAgICAgICAg
ICAgICBGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKGRvY3VtZW50KCktPmZyYW1l
KCksIHVybC5zdHJpbmcoKSk7CiAgICAgICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlIFVSTCB3YXMgbm90IGFsbG93ZWQgYnkgU2Vj
dXJpdHlPcmlnaW46OmNhbkRpc3BsYXkiKTsKQEAgLTI5NCw2ICszMzAsNyBAQAogICAgIC8vIHR5
cGVzIG9mIHJlc291cmNlcywgbGlrZSBJbWFnZXMsIFNjcmlwdHMsIGFuZCBDU1MsIGNhbiBiZSBs
b2FkZWQgZnJvbQogICAgIC8vIGFueSBVUkwuCiAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6
OkltYWdlUmVzb3VyY2U6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpTY3JpcHQ6CkBAIC0zNjIsNiArMzk5LDcgQEAKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpS
YXdSZXNvdXJjZToKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpMaW5rUHJlZmV0Y2g6CkBAIC01MjQsNyArNTYyLDcgQEAKICAgICB9CiAKICAgICAv
LyBGSVhNRTogQ3VycmVudGx5LCBhbGwgQ2FjaGVkUmF3UmVzb3VyY2VzIGFyZSBhbHdheXMgcmVs
b2FkZWQuIFNvbWUgb2YgdGhlbSBzaG91bGQgYmUgY2FjaGVhYmxlLgotICAgIGlmIChleGlzdGlu
Z1Jlc291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlKQorICAgIGlm
IChleGlzdGluZ1Jlc291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNl
IHx8IGV4aXN0aW5nUmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291
cmNlKQogICAgICAgICByZXR1cm4gUmVsb2FkOwogICAgIAogICAgIC8vIERvbid0IHJlbG9hZCBy
ZXNvdXJjZXMgd2hpbGUgcGFzdGluZy4KQEAgLTYwMyw3ICs2NDEsNyBAQAogICAgICAgICByZXR1
cm47CiAKICAgICBTdHJpbmcgbWVzc2FnZTsKLSAgICBpZiAobV9kb2N1bWVudC0+dXJsKCkuaXNO
dWxsKCkpCisgICAgaWYgKCFtX2RvY3VtZW50IHx8IG1fZG9jdW1lbnQtPnVybCgpLmlzTnVsbCgp
KQogICAgICAgICBtZXNzYWdlID0gIlVuc2FmZSBhdHRlbXB0IHRvIGxvYWQgVVJMICIgKyB1cmwu
c3RyaW5nKCkgKyAnLic7CiAgICAgZWxzZQogICAgICAgICBtZXNzYWdlID0gIlVuc2FmZSBhdHRl
bXB0IHRvIGxvYWQgVVJMICIgKyB1cmwuc3RyaW5nKCkgKyAiIGZyb20gZnJhbWUgd2l0aCBVUkwg
IiArIG1fZG9jdW1lbnQtPnVybCgpLnN0cmluZygpICsgIi4gRG9tYWlucywgcHJvdG9jb2xzIGFu
ZCBwb3J0cyBtdXN0IG1hdGNoLlxuIjsKQEAgLTY1Miw4ICs2OTAsOCBAQAogdm9pZCBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6bG9hZERvbmUoKQogewogICAgIG1fbG9hZEZpbmlzaGluZyA9IGZhbHNl
OwotCi0gICAgUmVmUHRyPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOworICAgIFJlZlB0
cjxEb2N1bWVudD4gcHJvdGVjdERvY3VtZW50KG1fZG9jdW1lbnQpOworICAgIFJlZlB0cjxEb2N1
bWVudExvYWRlcj4gcHJvdGVjdERvY3VtZW50TG9hZGVyKG1fZG9jdW1lbnRMb2FkZXIpOwogICAg
IGlmIChmcmFtZSgpKQogICAgICAgICBmcmFtZSgpLT5sb2FkZXIoKS0+bG9hZERvbmUoKTsKICAg
ICBwZXJmb3JtUG9zdExvYWRBY3Rpb25zKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTAyNDY1KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKIGNsYXNzIENhY2hlZFRleHRUcmFjazsKIGNs
YXNzIENhY2hlZFhTTFN0eWxlU2hlZXQ7CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIERvY3VtZW50
TG9hZGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBJbWFnZUxvYWRlcjsKIGNsYXNzIEtVUkw7CkBA
IC02MCwxNCArNjEsMTcgQEAKIAogcHVibGljOgogICAgIENhY2hlZFJlc291cmNlTG9hZGVyKERv
Y3VtZW50Kik7CisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqKTsKICAg
ICB+Q2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKIAorICAgIHZvaWQgbW92ZVRvRG9jdW1lbnQoRG9j
dW1lbnQqKTsKKwogICAgIENhY2hlZEltYWdlKiByZXF1ZXN0SW1hZ2UoUmVzb3VyY2VSZXF1ZXN0
Jik7CiAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldCogcmVxdWVzdENTU1N0eWxlU2hlZXQoUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9
IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CiAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVl
dCogcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgY2hhcnNldCk7CiAgICAgQ2FjaGVkU2NyaXB0KiByZXF1ZXN0U2NyaXB0KFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAgICAgQ2FjaGVkRm9udCogcmVxdWVzdEZv
bnQoUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmF3UmVzb3VyY2UqIHJlcXVlc3RSYXdS
ZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsK
KyAgICBDYWNoZWRSYXdSZXNvdXJjZSogcmVxdWVzdFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIENhY2hlZFJlc291cmNlOjpUeXBlID0g
Q2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlKTsKIAogI2lmIEVOQUJMRShYU0xUKQogICAgIENh
Y2hlZFhTTFN0eWxlU2hlZXQqIHJlcXVlc3RYU0xTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYp
OwpAQCAtOTgsNiArMTAyLDcgQEAKICAgICAKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsgLy8g
Q2FuIGJlIE5VTEwKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2Rv
Y3VtZW50OyB9CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKCkgY29uc3Q7CiAK
ICAgICB2b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKikgY29uc3Q7CiAK
QEAgLTEzNCw2ICsxMzksNyBAQAogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3ZhbGlkYXRlZFVSTHM7
CiAgICAgbXV0YWJsZSBEb2N1bWVudFJlc291cmNlTWFwIG1fZG9jdW1lbnRSZXNvdXJjZXM7CiAg
ICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgRG9jdW1lbnRMb2FkZXIqIG1fZG9jdW1lbnRM
b2FkZXI7CiAgICAgCiAgICAgaW50IG1fcmVxdWVzdENvdW50OwogICAgIApJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCShyZXZpc2lvbiAx
MDI0NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw4IEBACiBzdGF0aWMgUmVzb3VyY2VMb2FkUHJp
b3JpdHkgZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBl
IHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6Ok1haW5SZXNvdXJjZToKKyAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0
eVZlcnlIaWdoOwogICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0Ogog
I2lmIEVOQUJMRShYU0xUKQogICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNo
ZWV0OgpAQCAtOTEsNiArOTMsOCBAQAogc3RhdGljIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0VHlw
ZSBjYWNoZWRSZXNvdXJjZVR5cGVUb1RhcmdldFR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWlu
UmVzb3VyY2U6CisgICAgICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzTWFpbkZy
YW1lOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6CiAjaWYgRU5BQkxF
KFhTTFQpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKQEAgLTIxMyw3
ICsyMTcsNyBAQAogI2VuZGlmCiAgICAgbV9yZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkobG9h
ZFByaW9yaXR5KCkpOwogICAgIAotICAgIG1fbG9hZGVyID0gcmVzb3VyY2VMb2FkU2NoZWR1bGVy
KCktPnNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKGNhY2hlZFJlc291cmNlTG9hZGVyLT5kb2N1bWVu
dCgpLT5mcmFtZSgpLCB0aGlzLCBtX3Jlc291cmNlUmVxdWVzdCwgbV9yZXNvdXJjZVJlcXVlc3Qu
cHJpb3JpdHkoKSwgb3B0aW9ucyk7CisgICAgbV9sb2FkZXIgPSByZXNvdXJjZUxvYWRTY2hlZHVs
ZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoY2FjaGVkUmVzb3VyY2VMb2FkZXItPmZyYW1l
KCksIHRoaXMsIG1fcmVzb3VyY2VSZXF1ZXN0LCBtX3Jlc291cmNlUmVxdWVzdC5wcmlvcml0eSgp
LCBvcHRpb25zKTsKICAgICBpZiAoIW1fbG9hZGVyIHx8IG1fbG9hZGVyLT5yZWFjaGVkVGVybWlu
YWxTdGF0ZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlmIHJlc291cmNlcyBpbiBvdGhl
ciBmcmFtZXMgd2VyZSB3YWl0aW5nIGZvciB0aGlzIHJldmFsaWRhdGlvbj8KICAgICAgICAgTE9H
KFJlc291cmNlTG9hZGluZywgIkNhbm5vdCBzdGFydCBsb2FkaW5nICclcyciLCB1cmwoKS5zdHJp
bmcoKS5sYXRpbjEoKS5kYXRhKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmgJKHJldmlzaW9uIDEwMjQ2NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2
MCw3IEBACiAgICAgCiBwdWJsaWM6CiAgICAgZW51bSBUeXBlIHsKKyAgICAgICAgTWFpblJlc291
cmNlLAogICAgICAgICBJbWFnZVJlc291cmNlLAogICAgICAgICBDU1NTdHlsZVNoZWV0LAogICAg
ICAgICBTY3JpcHQsCkBAIC0xNDMsNyArMTQ0LDcgQEAKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFn
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpZ25vcmVGb3JSZXF1ZXN0Q291
bnQoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiB0
eXBlKCkgPT0gTWFpblJlc291cmNlCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgICAg
ICAgICB8fCB0eXBlKCkgPT0gTGlua1ByZWZldGNoCiAgICAgICAgICAgICB8fCB0eXBlKCkgPT0g
TGlua1ByZXJlbmRlcgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJh
d1Jlc291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuY3BwCShyZXZpc2lvbiAxMDI0NjUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSwzNSArMzUsMzggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdSZXNvdXJj
ZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCi0g
ICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIFJhd1Jlc291cmNlKQotICAgICwg
bV9kYXRhTGVuZ3RoKDApCitDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFR5cGUgdHlwZSkKKyAgICA6IENhY2hlZFJl
c291cmNlKHJlc291cmNlUmVxdWVzdCwgdHlwZSkKIHsKKyAgICBpZiAodHlwZSA9PSBNYWluUmVz
b3VyY2UpCisgICAgICAgIHNldExvYWRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlI
aWdoKTsKIH0KIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6ZGF0YShQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiB7CiAgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IHByb3RlY3QodGhpcyk7CisgICAgY29uc3QgY2hh
ciogaW5jcmVtZW50YWxEYXRhID0gMDsKKyAgICBzaXplX3QgaW5jcmVtZW50YWxEYXRhTGVuZ3Ro
ID0gMDsKICAgICBpZiAoZGF0YSkgewogICAgICAgICAvLyBJZiB3ZSBhcmUgYnVmZmVyaW5nIGRh
dGEsIHRoZW4gd2UgYXJlIHNhdmluZyB0aGUgYnVmZmVyIGluIG1fZGF0YSBhbmQgbmVlZCB0byBt
YW51YWxseQogICAgICAgICAvLyBjYWxjdWxhdGUgdGhlIGluY3JlbWVudGFsIGRhdGEuIElmIHdl
IGFyZSBub3QgYnVmZmVyaW5nLCB0aGVuIG1fZGF0YSB3aWxsIGJlIG51bGwgYW5kCiAgICAgICAg
IC8vIHRoZSBidWZmZXIgY29udGFpbnMgb25seSB0aGUgaW5jcmVtZW50YWwgZGF0YS4KLSAgICAg
ICAgc2l6ZV90IHByZXZpb3VzRGF0YUxlbmd0aCA9IChtX29wdGlvbnMuc2hvdWxkQnVmZmVyRGF0
YSA9PSBCdWZmZXJEYXRhKSA/IG1fZGF0YUxlbmd0aCA6IDA7CisgICAgICAgIHNpemVfdCBwcmV2
aW91c0RhdGFMZW5ndGggPSAobV9vcHRpb25zLnNob3VsZEJ1ZmZlckRhdGEgPT0gQnVmZmVyRGF0
YSkgPyBlbmNvZGVkU2l6ZSgpIDogMDsKICAgICAgICAgQVNTRVJUKGRhdGEtPnNpemUoKSA+PSBw
cmV2aW91c0RhdGFMZW5ndGgpOwotICAgICAgICBjb25zdCBjaGFyKiBpbmNyZW1lbnRhbERhdGEg
PSBkYXRhLT5kYXRhKCkgKyBwcmV2aW91c0RhdGFMZW5ndGg7Ci0gICAgICAgIHNpemVfdCBpbmNy
ZW1lbnRhbERhdGFMZW5ndGggPSBkYXRhLT5zaXplKCkgLSBwcmV2aW91c0RhdGFMZW5ndGg7Ci0K
LSAgICAgICAgaWYgKGluY3JlbWVudGFsRGF0YUxlbmd0aCkgewotICAgICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VDbGllbnRXYWxrZXI8Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQ+IHcobV9jbGllbnRz
KTsKLSAgICAgICAgICAgIHdoaWxlIChDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCogYyA9IHcubmV4
dCgpKQotICAgICAgICAgICAgICAgIGMtPmRhdGFSZWNlaXZlZCh0aGlzLCBpbmNyZW1lbnRhbERh
dGEsIGluY3JlbWVudGFsRGF0YUxlbmd0aCk7Ci0gICAgICAgIH0KKyAgICAgICAgaW5jcmVtZW50
YWxEYXRhID0gZGF0YS0+ZGF0YSgpICsgcHJldmlvdXNEYXRhTGVuZ3RoOworICAgICAgICBpbmNy
ZW1lbnRhbERhdGFMZW5ndGggPSBkYXRhLT5zaXplKCkgLSBwcmV2aW91c0RhdGFMZW5ndGg7CiAg
ICAgfQogICAgIAogICAgIGlmIChtX29wdGlvbnMuc2hvdWxkQnVmZmVyRGF0YSA9PSBCdWZmZXJE
YXRhKSB7Ci0gICAgICAgIG1fZGF0YUxlbmd0aCA9IGRhdGEgPyBkYXRhLT5zaXplKCkgOiAwOwog
ICAgICAgICBtX2RhdGEgPSBkYXRhOworICAgICAgICBzZXRFbmNvZGVkU2l6ZShtX2RhdGEgPyBt
X2RhdGEtPnNpemUoKSA6IDApOwogICAgIH0KKworICAgIGlmIChpbmNyZW1lbnRhbERhdGFMZW5n
dGgpIHsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXI8Q2FjaGVkUmF3UmVzb3Vy
Y2VDbGllbnQ+IHcobV9jbGllbnRzKTsKKyAgICAgICAgd2hpbGUgKENhY2hlZFJhd1Jlc291cmNl
Q2xpZW50KiBjID0gdy5uZXh0KCkpCisgICAgICAgICAgICBjLT5kYXRhUmVjZWl2ZWQodGhpcywg
aW5jcmVtZW50YWxEYXRhLCBpbmNyZW1lbnRhbERhdGFMZW5ndGgpOworICAgIH0KICAgICBDYWNo
ZWRSZXNvdXJjZTo6ZGF0YShtX2RhdGEsIGFsbERhdGFSZWNlaXZlZCk7CiB9CiAKQEAgLTExMyw5
ICsxMTYsMjcgQEAKICAgICAgICAgbV9sb2FkZXItPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsK
IH0KIAordm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6c2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVm
ZmVyaW5nUG9saWN5IHNob3VsZEJ1ZmZlckRhdGEpCit7CisgICAgbV9vcHRpb25zLnNob3VsZEJ1
ZmZlckRhdGEgPSBzaG91bGRCdWZmZXJEYXRhOworfQorCiB1bnNpZ25lZCBsb25nIENhY2hlZFJh
d1Jlc291cmNlOjppZGVudGlmaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9sb2FkZXIgPyBt
X2xvYWRlci0+aWRlbnRpZmllcigpIDogMDsKIH0KIAorU3VicmVzb3VyY2VMb2FkZXIqIENhY2hl
ZFJhd1Jlc291cmNlOjpsb2FkZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2xvYWRlci5nZXQo
KTsKK30KKwordm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQoreworICAgIG1fZGF0YS5j
bGVhcigpOworICAgIHNldEVuY29kZWRTaXplKDApOworICAgIGlmIChtX2xvYWRlcikKKyAgICAg
ICAgbV9sb2FkZXItPmNsZWFyUmVzb3VyY2VEYXRhKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgJ
KHJldmlzaW9uIDEwMjQ2NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VM
b2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBNYWluUmVz
b3VyY2VMb2FkZXJfaAogI2RlZmluZSBNYWluUmVzb3VyY2VMb2FkZXJfaAogCisjaW5jbHVkZSAi
Q2FjaGVkUmF3UmVzb3VyY2UuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlN1
YnN0aXR1dGVEYXRhLmgiCkBAIC00NSwxOSArNDcsMjIgQEAKICAgICBjbGFzcyBGb3JtU3RhdGU7
CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCi0gICAgY2xhc3MgTWFpblJlc291cmNlTG9h
ZGVyIDogcHVibGljIFJlc291cmNlTG9hZGVyIHsKKyAgICBjbGFzcyBNYWluUmVzb3VyY2VMb2Fk
ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNYWluUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgQ2FjaGVk
UmF3UmVzb3VyY2VDbGllbnQgeworICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4g
Y3JlYXRlKEZyYW1lKik7CiAgICAgICAgIHZpcnR1YWwgfk1haW5SZXNvdXJjZUxvYWRlcigpOwog
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN1YnN0aXR1dGVEYXRhJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhKGNvbnN0IGNo
YXIqLCBpbnQsIGJvb2wgYWxsQXRPbmNlKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgp
OworICAgICAgICBSZXNvdXJjZUxvYWRlciogbG9hZGVyKCkgY29uc3Q7CisgICAgICAgIFNoYXJl
ZEJ1ZmZlciogcmVzb3VyY2VEYXRhKCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldERlZmVy
c0xvYWRpbmcoYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRCdWZmZXJEYXRh
KERhdGFCdWZmZXJpbmdQb2xpY3kpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RS
ZXNwb25zZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
Y29uc3QgY2hhciosIGludCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0
T25jZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5p
c2hUaW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYpOwogCkBAIC03NCw4ICs3OSwxMCBAQAogICAgIHByaXZhdGU6CiAgICAgICAgIE1haW5SZXNv
dXJjZUxvYWRlcihGcmFtZSopOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNv
bnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25z
dCBSZXNvdXJjZUVycm9yJik7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdFJlY2VpdmVk
KENhY2hlZFJlc291cmNlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJj
ZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRhdGFS
ZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3Ro
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7
CiAKICAgICAgICAgYm9vbCBsb2FkTm93KFJlc291cmNlUmVxdWVzdCYpOwogCkBAIC04Nyw3ICs5
NCw2IEBACiAKICAgICAgICAgdm9pZCByZWNlaXZlZEVycm9yKGNvbnN0IFJlc291cmNlRXJyb3Im
KTsKICAgICAgICAgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9y
KCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKICAg
ICAgICAgYm9vbCBpc1Bvc3RPclJlZGlyZWN0QWZ0ZXJQb3N0KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7
CiAKICAgICAgICAgc3RhdGljIHZvaWQgY2FsbENvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5
KHZvaWQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGJv
b2wgc2hvdWxkQ29udGludWUpOwpAQCAtMTAwLDE1ICsxMDYsMjcgQEAKICNpZiBQTEFURk9STShR
VCkKICAgICAgICAgdm9pZCBzdWJzdGl0dXRlTUlNRVR5cGVGcm9tUGx1Z2luRGF0YWJhc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwogI2VuZGlmCisgICAgICAgIEZyYW1lTG9hZGVyKiBmcmFt
ZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpOyB9CisgICAgICAgIERv
Y3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRM
b2FkZXIuZ2V0KCk7IH0KKyAgICAgICAgYm9vbCBkZWZlcnNMb2FkaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9kZWZlcjsgfQogCisgICAgICAgIHZvaWQgY2xlYXJSZXNvdXJjZSgpOworCisgICAgICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOworCiAg
ICAgICAgIFJlc291cmNlUmVxdWVzdCBtX2luaXRpYWxSZXF1ZXN0OwogICAgICAgICBTdWJzdGl0
dXRlRGF0YSBtX3N1YnN0aXR1dGVEYXRhOworICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVz
cG9uc2U7CiAKICAgICAgICAgTWFpblJlc291cmNlTG9hZGVyVGltZXIgbV9kYXRhTG9hZFRpbWVy
OworICAgICAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7CisgICAgICAgIFJlZlB0cjxEb2N1bWVu
dExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsKIAogICAgICAgICBib29sIG1fbG9hZGluZ011bHRp
cGFydENvbnRlbnQ7CiAgICAgICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeTsKKyAg
ICAgICAgYm9vbCBtX2RlZmVyOwogICAgICAgICBkb3VibGUgbV90aW1lT2ZMYXN0RGF0YVJlY2Vp
dmVkOworICAgICAgICBib29sIG1fZmluaXNoZWQ7CiAgICAgfTsKIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgJKHJldmlzaW9uIDEwMjQ2NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2
ICszMCw3IEBACiAjaWZuZGVmIERvY3VtZW50TG9hZGVyX2gKICNkZWZpbmUgRG9jdW1lbnRMb2Fk
ZXJfaAogCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1
bWVudExvYWRUaW1pbmcuaCIKICNpbmNsdWRlICJEb2N1bWVudFdyaXRlci5oIgogI2luY2x1ZGUg
Ikljb25EYXRhYmFzZUJhc2UuaCIKQEAgLTkxLDYgKzkyLDkgQEAKICAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KCk7CiAgICAgICAgIHZvaWQgc2V0UmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKIAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFJlc291cmNlTG9hZGVyLmdldCgpOyB9
CisgICAgICAgIFBhc3NPd25QdHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+IHJlbGVhc2VDYWNoZWRS
ZXNvdXJjZUxvYWRlcigpIHsgcmV0dXJuIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIucmVsZWFzZSgp
OyB9CisKICAgICAgICAgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9zdWJzdGl0dXRlRGF0YTsgfQogCiAgICAgICAgIC8vIEZJWE1FOiBUaGlz
IGlzIHRoZSBzYW1lIGFzIHJlcXVlc3RVUkwoKS4gV2Ugc2hvdWxkIHJlbW92ZSBvbmUgb2YgdGhl
bS4KQEAgLTE5NSw3ICsxOTksNyBAQAogICAgICAgICAKICAgICAgICAgdm9pZCBzZXREZWZlcnNM
b2FkaW5nKGJvb2wpOwogCi0gICAgICAgIGJvb2wgc3RhcnRMb2FkaW5nTWFpblJlc291cmNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CisgICAgICAgIGJvb2wgc3RhcnRMb2FkaW5nTWFpblJl
c291cmNlKCk7CiAgICAgICAgIHZvaWQgY2FuY2VsTWFpblJlc291cmNlTG9hZChjb25zdCBSZXNv
dXJjZUVycm9yJik7CiAgICAgICAgIAogICAgICAgICAvLyBTdXBwb3J0IGljb25EYXRhYmFzZSBp
biBzeW5jaHJvbm91cyBtb2RlLgpAQCAtMjY5LDYgKzI3Myw3IEBACiAgICAgICAgIHZvaWQgc3Vi
c3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50TG9hZGVyPiop
OwogICAgICAgICAgICAgICAgIAogICAgICAgICBGcmFtZSogbV9mcmFtZTsKKyAgICAgICAgT3du
UHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBtX2NhY2hlZFJlc291cmNlTG9hZGVyOwogCiAgICAg
ICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IG1fbWFpblJlc291cmNlTG9hZGVyOwogICAg
ICAgICBSZXNvdXJjZUxvYWRlclNldCBtX3N1YnJlc291cmNlTG9hZGVyczsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVI
b3N0LmNwcAkocmV2aXNpb24gMTAyNDY1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEw
Myw3IEBACiAgICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsKICAgICAg
ICAgICAgIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZSA9IEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5SZXF1ZXN0KHJlcXVlc3QsIGRvY3VtZW50TG9hZGVy
KCkpOwogCi0gICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21B
cHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBt
X21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKHNj
aGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExv
YWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBw
bGljYXRpb25DYWNoZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0xMTcsNyArMTE3LDcgQEAKICAgICAgICAgaWYgKGlzQXBwbGljYXRp
b25DYWNoZUVuYWJsZWQoKSkgewogICAgICAgICAgICAgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlv
bkNhY2hlID0gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9yTWFpblJlcXVl
c3QocmVxdWVzdCwgbV9kb2N1bWVudExvYWRlcik7CiAKLSAgICAgICAgICAgIGlmIChzY2hlZHVs
ZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIo
KS0+bWFpblJlc291cmNlTG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5n
ZXQoKSkpCisgICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21B
cHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5s
b2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMDI0NjUpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUg
IlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNp
ZiBQTEFURk9STShRVCkKQEAgLTYyLDE2ICs2MywyMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUpCi0g
ICAgOiBSZXNvdXJjZUxvYWRlcihmcmFtZSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxs
YmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywg
QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgU2tpcFNlY3VyaXR5Q2hlY2spKQot
ICAgICwgbV9kYXRhTG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZURh
dGFMb2FkTm93KQorICAgIDogbV9kYXRhTG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2Fk
ZXI6OmhhbmRsZURhdGFMb2FkTm93KQorICAgICwgbV9mcmFtZShmcmFtZSkKKyAgICAsIG1fZG9j
dW1lbnRMb2FkZXIoZnJhbWUtPmxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKQogICAg
ICwgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudChmYWxzZSkKICAgICAsIG1fd2FpdGluZ0ZvckNv
bnRlbnRQb2xpY3koZmFsc2UpCisgICAgLCBtX2RlZmVyKGZhbHNlKQogICAgICwgbV90aW1lT2ZM
YXN0RGF0YVJlY2VpdmVkKDAuMCkKKyAgICAsIG1fZmluaXNoZWQoZmFsc2UpCiB7CiB9CiAKIE1h
aW5SZXNvdXJjZUxvYWRlcjo6fk1haW5SZXNvdXJjZUxvYWRlcigpCiB7CisgICAgY2xlYXJSZXNv
dXJjZSgpOworICAgIGNhbmNlbCgpOwogfQogCiBQYXNzUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRl
cj4gTWFpblJlc291cmNlTG9hZGVyOjpjcmVhdGUoRnJhbWUqIGZyYW1lKQpAQCAtOTAsNDggKzk2
LDEzIEBACiAgICAgLy8gZG9jdW1lbnQgbG9hZGVycy4gQWxzbywgcmVjZWl2ZWRNYWluUmVzb3Vy
Y2VFcnJvciBlbmRzIHVwIGNhbGxpbmcgYSBGcmFtZUxvYWREZWxlZ2F0ZSBtZXRob2QKICAgICAv
LyBhbmQgZGlkRmFpbFRvTG9hZCBjYWxscyBhIFJlc291cmNlTG9hZERlbGVnYXRlIG1ldGhvZCBh
bmQgdGhleSBuZWVkIHRvIGJlIGluIHRoZSBjb3JyZWN0IG9yZGVyLgogICAgIGZyYW1lTG9hZGVy
KCktPnJlY2VpdmVkTWFpblJlc291cmNlRXJyb3IoZXJyb3IsIHRydWUpOwotCi0gICAgaWYgKCFj
YW5jZWxsZWQoKSkgewotICAgICAgICBBU1NFUlQoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpOwot
ICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaWRGYWlsVG9Mb2FkKHRoaXMsIGVy
cm9yKTsKLSAgICAgICAgCi0gICAgICAgIHJlbGVhc2VSZXNvdXJjZXMoKTsKLSAgICB9Ci0KLSAg
ICBBU1NFUlQocmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNl
TG9hZGVyOjp3aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKQotewotICAgIG1fZGF0YUxv
YWRUaW1lci5zdG9wKCk7Ci0KLSAgICBpZiAobV93YWl0aW5nRm9yQ29udGVudFBvbGljeSkgewot
ICAgICAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7Ci0g
ICAgICAgIEFTU0VSVChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsKLSAgICAgICAgbV93YWl0
aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwotICAgICAgICBkZXJlZigpOyAvLyBiYWxhbmNl
cyByZWYgaW4gZGlkUmVjZWl2ZVJlc3BvbnNlCi0gICAgfQotfQotCi12b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIC8v
IFdlIHNob3VsZCBub3RpZnkgdGhlIGZyYW1lIGxvYWRlciBhZnRlciBmdWxseSBjYW5jZWxpbmcg
dGhlIGxvYWQsIGJlY2F1c2UgaXQgY2FuIGRvIGNvbXBsaWNhdGVkIHdvcmsKLSAgICAvLyBsaWtl
IGNhbGxpbmcgRE9NV2luZG93OjpwcmludCgpLCBkdXJpbmcgd2hpY2ggYSBoYWxmLWNhbmNlbGVk
IGxvYWQgY291bGQgdHJ5IHRvIGZpbmlzaC4KLSAgICBmcmFtZUxvYWRlcigpLT5yZWNlaXZlZE1h
aW5SZXNvdXJjZUVycm9yKGVycm9yLCB0cnVlKTsKLX0KLQogUmVzb3VyY2VFcnJvciBNYWluUmVz
b3VyY2VMb2FkZXI6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoKSBjb25zdAogewot
ICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+aW50ZXJydXB0ZWRGb3JQb2xpY3lD
aGFuZ2VFcnJvcihyZXF1ZXN0KCkpOworICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQo
KS0+aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihtX3Jlc291cmNlLT5yZXNvdXJjZVJl
cXVlc3QoKSk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0ZvclBv
bGljeUNoYW5nZSgpCi17Ci0gICAgUmVzb3VyY2VFcnJvciBlcnJvciA9IGludGVycnVwdGVkRm9y
UG9saWN5Q2hhbmdlRXJyb3IoKTsKLSAgICBlcnJvci5zZXRJc0NhbmNlbGxhdGlvbih0cnVlKTsK
LSAgICBjYW5jZWwoZXJyb3IpOwotfQotCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y2FsbENv
bnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHZvaWQqIGFyZ3VtZW50LCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250
aW51ZSkKIHsKICAgICBzdGF0aWNfY2FzdDxNYWluUmVzb3VyY2VMb2FkZXIqPihhcmd1bWVudCkt
PmNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENvbnRpbnVlKTsK
QEAgLTE0MCwxMSArMTExLDExIEBACiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVB
ZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IHNob3VsZENvbnRpbnVlKQogewogICAgIGlmICghc2hvdWxkQ29udGludWUpCi0gICAgICAgIHN0
b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CisgICAgICAgIGNhbmNlbCgpOwogICAgIGVsc2Ug
aWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAgICAgIC8vIEEgcmVkaXJlY3Qg
cmVzdWx0ZWQgaW4gbG9hZGluZyBzdWJzdGl0dXRlIGRhdGEuCiAgICAgICAgIEFTU0VSVChkb2N1
bWVudExvYWRlcigpLT50aW1pbmcoKS0+cmVkaXJlY3RDb3VudCk7Ci0gICAgICAgIGhhbmRsZSgp
LT5jYW5jZWwoKTsKKyAgICAgICAgY2xlYXJSZXNvdXJjZSgpOwogICAgICAgICBoYW5kbGVEYXRh
TG9hZFNvb24ocmVxdWVzdCk7CiAgICAgfQogCkBAIC0xNjQsMTIgKzEzNSw0NCBAQAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmFkZERhdGEoY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpCit2b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6Y2FuY2VsKCkKIHsKLSAgICBSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShkYXRhLCBs
ZW5ndGgsIGFsbEF0T25jZSk7Ci0gICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKGRh
dGEsIGxlbmd0aCk7CisgICAgaWYgKG1fZmluaXNoZWQpCisgICAgICAgIHJldHVybjsKKyAgICBt
X2ZpbmlzaGVkID0gdHJ1ZTsKKworICAgIG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7CisKKyAgICBp
ZiAobV93YWl0aW5nRm9yQ29udGVudFBvbGljeSkgeworICAgICAgICBmcmFtZUxvYWRlcigpLT5w
b2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7CisgICAgICAgIEFTU0VSVChtX3dhaXRpbmdG
b3JDb250ZW50UG9saWN5KTsKKyAgICAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZh
bHNlOworICAgICAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gZGlkUmVjZWl2ZVJlc3Bv
bnNlCisgICAgfQorICAgIGNsZWFyUmVzb3VyY2UoKTsKKworICAgIGZyYW1lTG9hZGVyKCktPnJl
Y2VpdmVkTWFpblJlc291cmNlRXJyb3IoZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IoUmVz
b3VyY2VSZXF1ZXN0KCkpLCB0cnVlKTsKIH0KIAordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNs
ZWFyUmVzb3VyY2UoKQoreworICAgIGlmIChtX3Jlc291cmNlKSB7CisgICAgICAgIG1fcmVzb3Vy
Y2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9yZXNvdXJjZSA9IDA7CisgICAgfQor
fQorCitTaGFyZWRCdWZmZXIqIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VEYXRhKCkKK3sK
KyAgICByZXR1cm4gbV9yZXNvdXJjZSA/IHN0YXRpY19jYXN0PENhY2hlZFJlc291cmNlKj4obV9y
ZXNvdXJjZS5nZXQoKSktPmRhdGEoKSA6IDA7Cit9CisKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVy
OjpyZWRpcmVjdFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQor
eworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fcmVzb3VyY2UpOwor
ICAgIHdpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKK30KKwogdm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5l
d1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAg
ICAgLy8gTm90ZSB0aGF0IHRoZXJlIGFyZSBubyBhc3NlcnRzIGhlcmUgYXMgdGhlcmUgYXJlIGZv
ciB0aGUgb3RoZXIgY2FsbGJhY2tzLiBUaGlzIGlzIGR1ZSB0byB0aGUKQEAgLTIyNyw4ICsyMzAs
NiBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVx
dWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKLQogICAgIC8vIERvbid0IHNldCB0
aGlzIG9uIHRoZSBmaXJzdCByZXF1ZXN0LiBJdCBpcyBzZXQgd2hlbiB0aGUgbWFpbiBsb2FkIHdh
cyBzdGFydGVkLgogICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3UmVxdWVzdCk7
CiAKQEAgLTI1OSw3ICsyNjAsNyBAQAogCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGlu
dWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uIGNvbnRlbnRQb2xpY3ksIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHIpCiB7Ci0gICAgS1VSTCB1cmwgPSByZXF1ZXN0KCkudXJsKCk7Cisg
ICAgS1VSTCB1cmwgPSBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCkgOiBtX2luaXRpYWxSZXF1ZXN0LnVybCgpOwogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUgPSByLm1pbWVUeXBlKCk7CiAgICAgCiAgICAgc3dpdGNoIChjb250ZW50UG9saWN5KSB7CkBA
IC0yNjksMjggKzI3MCwyNiBAQAogICAgICAgICAgICAgJiYgIW1fc3Vic3RpdHV0ZURhdGEuaXNW
YWxpZCgpICYmICF1cmwuaXNMb2NhbEZpbGUoKTsKICAgICAgICAgaWYgKCFmcmFtZUxvYWRlcigp
LT5jbGllbnQoKS0+Y2FuU2hvd01JTUVUeXBlKG1pbWVUeXBlKSB8fCBpc1JlbW90ZVdlYkFyY2hp
dmUpIHsKICAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2Fubm90
U2hvd01JTUVUeXBlKHIpOwotICAgICAgICAgICAgLy8gQ2hlY2sgcmVhY2hlZFRlcm1pbmFsU3Rh
dGUgc2luY2UgdGhlIGxvYWQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNhbmNlbGxlZCBpbnNpZGUg
b2YgX2hhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeVdpdGhFcnJvckNvZGU6Oi4KLSAgICAgICAg
ICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAgICAgICAgICBzdG9wTG9h
ZGluZ0ZvclBvbGljeUNoYW5nZSgpOworICAgICAgICAgICAgY2FuY2VsKCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgY2FzZSBQ
b2xpY3lEb3dubG9hZDogewotICAgICAgICAvLyBtX2hhbmRsZSBjYW4gYmUgbnVsbCwgZS5nLiB3
aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBwbGljYXRpb24gY2FjaGUu
Ci0gICAgICAgIGlmICghbV9oYW5kbGUpIHsKLSAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoY2Fu
bm90U2hvd1VSTEVycm9yKCkpOworICAgICAgICAvLyBtX3Jlc291cmNlIGNhbiBiZSBudWxsLCBl
LmcuIHdoZW4gbG9hZGluZyBhIHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBj
YWNoZS4KKyAgICAgICAgaWYgKCFtX3Jlc291cmNlKSB7CisgICAgICAgICAgICByZWNlaXZlZEVy
cm9yKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5jYW5ub3RTaG93VVJMRXJyb3IoUmVzb3VyY2VS
ZXF1ZXN0KHVybCkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBvbGljeURvd25sb2FkKG1fZnJh
bWUuZ2V0KCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcik7CisgICAgICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRoUG9saWN5RG93bmxvYWQobV9mcmFt
ZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNvdXJjZS0+bG9hZGVyKCktPmlkZW50aWZp
ZXIoKSwgcik7CiAKICAgICAgICAgLy8gV2hlbiBzdGFydGluZyB0aGUgcmVxdWVzdCwgd2UgZGlk
bid0IGtub3cgdGhhdCBpdCB3b3VsZCByZXN1bHQgaW4gZG93bmxvYWQgYW5kIG5vdCBuYXZpZ2F0
aW9uLiBOb3cgd2Uga25vdyB0aGF0IG1haW4gZG9jdW1lbnQgVVJMIGRpZG4ndCBjaGFuZ2UuCiAg
ICAgICAgIC8vIERvd25sb2FkIG1heSB1c2UgdGhpcyBrbm93bGVkZ2UgZm9yIHB1cnBvc2VzIHVu
cmVsYXRlZCB0byBjb29raWVzLCBub3RhYmx5IGZvciBzZXR0aW5nIGZpbGUgcXVhcmFudGluZSBk
YXRhLgotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IHRoaXMtPnJlcXVlc3QoKTsK
KyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBtX3Jlc291cmNlLT5yZXNvdXJjZVJl
cXVlc3QoKTsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+c2V0T3JpZ2luYWxVUkxGb3JEb3dubG9h
ZFJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRv
d25sb2FkKG1faGFuZGxlLmdldCgpLCByZXF1ZXN0LCByKTsKKyAgICAgICAgZnJhbWVMb2FkZXIo
KS0+Y2xpZW50KCktPmRvd25sb2FkKG1fcmVzb3VyY2UtPmxvYWRlcigpLT5oYW5kbGUoKSwgcmVx
dWVzdCwgcik7CiAKICAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBnb25lIG1pc3NpbmcKICAgICAg
ICAgaWYgKGZyYW1lTG9hZGVyKCkpCkBAIC0yOTgsOCArMjk3LDggQEAKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBjYXNlIFBvbGljeUlnbm9yZToKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUobV9mcmFtZS5nZXQoKSwgZG9jdW1l
bnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKLSAgICAgICAgc3RvcExvYWRpbmdGb3JQb2xp
Y3lDaGFuZ2UoKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdp
dGhQb2xpY3lJZ25vcmUobV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNvdXJj
ZS0+bG9hZGVyKCktPmlkZW50aWZpZXIoKSwgcik7CisgICAgICAgIGNhbmNlbCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgZGVmYXVsdDoKQEAgLTMyMiwxNCArMzIxLDEwIEBACiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICAvLyB3ZSBtYXkgaGF2ZSBjYW5jZWxsZWQgdGhpcyBsb2FkIGFz
IHBhcnQgb2Ygc3dpdGNoaW5nIHRvIGZhbGxiYWNrIGNvbnRlbnQKLSAgICBpZiAoIXJlYWNoZWRU
ZXJtaW5hbFN0YXRlKCkpCi0gICAgICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2Uocik7Ci0KICAgICBpZiAoZnJhbWVMb2FkZXIoKSAmJiAhZnJhbWVMb2FkZXIoKS0+YWN0aXZl
RG9jdW1lbnRMb2FkZXIoKS0+aXNTdG9wcGluZygpKSB7CiAgICAgICAgIGlmIChtX3N1YnN0aXR1
dGVEYXRhLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgaWYgKG1fc3Vic3RpdHV0ZURhdGEuY29u
dGVudCgpLT5zaXplKCkpCi0gICAgICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEobV9zdWJzdGl0
dXRlRGF0YS5jb250ZW50KCktPmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNp
emUoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgdHJ1ZSk7CisgICAgICAg
ICAgICAgICAgZGF0YVJlY2VpdmVkKDAsIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5kYXRh
KCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCkpOwogICAgICAgICAgICAgaWYg
KGZyYW1lTG9hZGVyKCkgJiYgIWZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkt
PmlzU3RvcHBpbmcoKSkgCiAgICAgICAgICAgICAgICAgZGlkRmluaXNoTG9hZGluZygwKTsKICAg
ICAgICAgfSBlbHNlIGlmIChzaG91bGRMb2FkQXNFbXB0eURvY3VtZW50KHVybCkgfHwgZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCktPnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5w
cm90b2NvbCgpKSkKQEAgLTM3NCwxNiArMzY5LDIyIEBACiB9CiAjZW5kaWYKIAordm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VE
KHJlc291cmNlLCBtX3Jlc291cmNlID09IHJlc291cmNlKTsKKyAgICBkaWRSZWNlaXZlUmVzcG9u
c2UocmVzcG9uc2UpOworfQorCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCiB7Ci0gICAgaWYgKGRvY3VtZW50TG9h
ZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJl
c3BvbnNlKHJlcXVlc3QoKSwgcikpCisgICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0
aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKG1fcmVzb3Vy
Y2UtPnJlc291cmNlUmVxdWVzdCgpLCByKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSFRUUEhl
YWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSByLmh0dHBIZWFkZXJGaWVsZHMoKS5maW5kKEF0
b21pY1N0cmluZygieC1mcmFtZS1vcHRpb25zIikpOwogICAgIGlmIChpdCAhPSByLmh0dHBIZWFk
ZXJGaWVsZHMoKS5lbmQoKSkgewogICAgICAgICBTdHJpbmcgY29udGVudCA9IGl0LT5zZWNvbmQ7
CiAgICAgICAgIGlmIChtX2ZyYW1lLT5sb2FkZXIoKS0+c2hvdWxkSW50ZXJydXB0TG9hZEZvclhG
cmFtZU9wdGlvbnMoY29udGVudCwgci51cmwoKSkpIHsKLSAgICAgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6Y29udGludWVBZnRlclhGcmFtZU9wdGlvbnNEZW5pZWQobV9mcmFtZS5n
ZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKKyAgICAgICAgICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVBZnRlclhGcmFtZU9wdGlvbnNEZW5pZWQo
bV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNvdXJjZS0+bG9hZGVyKCktPmlk
ZW50aWZpZXIoKSwgcik7CiAgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
Y29uc29sZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBkaXNwbGF5IGRvY3VtZW50IGJlY2F1c2UgZGlz
cGxheSBmb3JiaWRkZW4gYnkgWC1GcmFtZS1PcHRpb25zLlxuIikpOwogICAgICAgICAgICAgbV9m
cmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0
cmluZygpKTsKIApAQCAtNDAyLDI2ICs0MDMsMjUgQEAKICAgICBpZiAoci5taW1lVHlwZSgpID09
ICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKQogICAgICAgICBzdWJzdGl0dXRlTUlNRVR5cGVG
cm9tUGx1Z2luRGF0YWJhc2Uocik7CiAjZW5kaWYKKyAgICAKKyAgICAvLyBUaGUgYWRkaXRpb25h
bCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3Zpbmcg
dGhlIGxhc3QKKyAgICAvLyByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9m
IHRoaXMgaXMgMzI2NjIxNi4KKyAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0
KHRoaXMpOwogCiAgICAgaWYgKG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQpIHsKICAgICAgICAg
ZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+c2V0dXBGb3JSZXBsYWNlQnlN
SU1FVHlwZShyLm1pbWVUeXBlKCkpOwotICAgICAgICBjbGVhclJlc291cmNlRGF0YSgpOworICAg
ICAgICBtX3Jlc291cmNlLT5jbGVhcigpOwogICAgIH0KLSAgICAKKwogICAgIGlmIChyLmlzTXVs
dGlwYXJ0KCkpCiAgICAgICAgIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQgPSB0cnVlOwotICAg
ICAgICAKLSAgICAvLyBUaGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBp
bmNsdWRpbmcgcG9zc2libHkgcmVtb3ZpbmcgdGhlIGxhc3QKLSAgICAvLyByZWZlcmVuY2UgdG8g
dGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4KLSAgICBSZWZQdHI8
TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwogCisgICAgbV9yZXNwb25zZSA9IHI7
CiAgICAgbV9kb2N1bWVudExvYWRlci0+c2V0UmVzcG9uc2Uocik7CiAKLSAgICBtX3Jlc3BvbnNl
ID0gcjsKLQogICAgIEFTU0VSVCghbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSk7CiAgICAgbV93
YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IHRydWU7Ci0gICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5
IGRlcmVmIGluIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5IGFuZCBkaWRDYW5jZWwKKyAgICBy
ZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kg
YW5kIGNhbmNlbAogCiAgICAgQVNTRVJUKGZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9h
ZGVyKCkpOwogCkBAIC00NDMsMzcgKzQ0MywzMyBAQAogICAgIGZyYW1lTG9hZGVyKCktPnBvbGlj
eUNoZWNrZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIGNhbGxDb250aW51ZUFm
dGVyQ29udGVudFBvbGljeSwgdGhpcyk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxvbmcgZW5j
b2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OmRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGRhdGEpOwogICAgIEFTU0VSVChsZW5ndGggIT0g
MCk7Ci0KKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJjZSA9PSBtX3Jlc291cmNl
KTsKICAgICBBU1NFUlQoIW1fcmVzcG9uc2UuaXNOdWxsKCkpOwogCi0jaWYgVVNFKENGTkVUV09S
SykgfHwgUExBVEZPUk0oTUFDKQotICAgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxl
bS82MDYwNzgyPgotICAgIGlmIChtX3Jlc3BvbnNlLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1fcmVz
cG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKEtVUkwoKSwgInRleHQvaHRtbCIsIDAsIFN0cmluZygp
LCBTdHJpbmcoKSk7Ci0gICAgICAgIGlmIChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIg
PSBmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKQotICAgICAgICAgICAgZG9j
dW1lbnRMb2FkZXItPnNldFJlc3BvbnNlKG1fcmVzcG9uc2UpOwotICAgIH0KLSNlbmRpZgotCiAg
ICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gQ0ZOZXR3b3JrIHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUg
ZGlzcGF0Y2hlZCBldmVuIHdoZW4gbG9hZHMgYXJlIGRlZmVycmVkLgogICAgIC8vIFNlZSA8cmRh
cjovL3Byb2JsZW0vNjMwNDYwMD4gZm9yIG1vcmUgZGV0YWlscy4KICNpZiAhVVNFKENGKQogICAg
IEFTU0VSVCghZGVmZXJzTG9hZGluZygpKTsKICNlbmRpZgogCi0gICAgZG9jdW1lbnRMb2FkZXIo
KS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291cmNlRGF0YVJlY2VpdmVkKGRhdGEs
IGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7Ci0KLSAgICAvLyBUaGUgYWRk
aXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVt
b3ZpbmcgdGhlIGxhc3QKLSAgICAvLyByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFt
cGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4KICAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBw
cm90ZWN0KHRoaXMpOwotCisgICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKGRhdGEs
IGxlbmd0aCk7CisgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+
bWFpblJlc291cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKICAgICBt
X3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgPSBjdXJyZW50VGltZSgpOworfQogCi0gICAgUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGRhdGEsIGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgs
IGFsbEF0T25jZSk7Cit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIG1f
cmVzb3VyY2UgPT0gcmVzb3VyY2UpOworICAgIAorICAgIGlmIChtX3Jlc291cmNlICYmIChtX3Jl
c291cmNlLT5lcnJvck9jY3VycmVkKCkgfHwgbV9yZXNvdXJjZS0+d2FzQ2FuY2VsZWQoKSkpCisg
ICAgICAgIGRpZEZhaWwobV9yZXNvdXJjZS0+d2FzQ2FuY2VsZWQoKSA/IG1fZnJhbWUtPmxvYWRl
cigpLT5jYW5jZWxsZWRFcnJvcihtX3Jlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSkgOiBtX2Zy
YW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmJsb2NrZWRFcnJvcihtX3Jlc291cmNlLT5yZXNvdXJj
ZVJlcXVlc3QoKSkpOworICAgIGVsc2UKKyAgICAgICAgZGlkRmluaXNoTG9hZGluZyhtX3Jlc291
cmNlLT5sb2FkRmluaXNoVGltZSgpKTsKIH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRp
ZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCkBAIC00OTUsMTQgKzQ5MSwxNCBAQAog
ICAgIEFTU0VSVCghZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPnJlc3BvbnNlRW5kKTsKICAg
ICBkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+cmVzcG9uc2VFbmQgPSBmaW5pc2hUaW1lID8g
ZmluaXNoVGltZSA6IChtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgPyBtX3RpbWVPZkxhc3REYXRh
UmVjZWl2ZWQgOiBjdXJyZW50VGltZSgpKTsKICAgICBmcmFtZUxvYWRlcigpLT5maW5pc2hlZExv
YWRpbmcoKTsKLSAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhmaW5pc2hUaW1l
KTsKIAogICAgIGRsLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5maW5pc2hlZExvYWRpbmdNYWlu
UmVzb3VyY2UoKTsKKyAgICBtX2ZpbmlzaGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAgaWYg
KGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxi
YWNrRm9yTWFpbkVycm9yKHJlcXVlc3QoKSwgZXJyb3IpKQorICAgIGlmIChkb2N1bWVudExvYWRl
cigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5FcnJv
cihtX3Jlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwgZXJyb3IpKQogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNh
biBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCkBAIC01MTAsOCAr
NTA2LDkgQEAKICNpZiAhVVNFKENGKQogICAgIEFTU0VSVCghZGVmZXJzTG9hZGluZygpKTsKICNl
bmRpZgotICAgIAorCiAgICAgcmVjZWl2ZWRFcnJvcihlcnJvcik7CisgICAgbV9maW5pc2hlZCA9
IHRydWU7CiB9CiAKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVFbXB0eUxvYWQoY29u
c3QgS1VSTCYgdXJsLCBib29sIGZvclVSTFNjaGVtZSkKQEAgLTU2Niw3ICs1NjMsNyBAQAogewog
ICAgIGJvb2wgc2hvdWxkTG9hZEVtcHR5QmVmb3JlUmVkaXJlY3QgPSBzaG91bGRMb2FkQXNFbXB0
eURvY3VtZW50KHIudXJsKCkpOwogCi0gICAgQVNTRVJUKCFtX2hhbmRsZSk7CisgICAgQVNTRVJU
KCFtX3Jlc291cmNlKTsKICAgICBBU1NFUlQoc2hvdWxkTG9hZEVtcHR5QmVmb3JlUmVkaXJlY3Qg
fHwgIWRlZmVyc0xvYWRpbmcoKSk7CiAKICAgICAvLyBTZW5kIHRoaXMgc3ludGhldGljIGRlbGVn
YXRlIGNhbGxiYWNrIHNpbmNlIGNsaWVudHMgZXhwZWN0IGl0LCBhbmQKQEAgLTU4NSwyMCArNTgy
LDI1IEBACiAgICAgaWYgKHNob3VsZExvYWRFbXB0eUJlZm9yZVJlZGlyZWN0ICYmICFzaG91bGRM
b2FkRW1wdHkgJiYgZGVmZXJzTG9hZGluZygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5hZGRNYWluUmVzb3VyY2VMb2FkKHRoaXMpOwogICAg
IGlmIChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgCiAgICAgICAgIGhhbmRsZURhdGFMb2Fk
U29vbihyKTsKICAgICBlbHNlIGlmIChzaG91bGRMb2FkRW1wdHkgfHwgZnJhbWVMb2FkZXIoKS0+
Y2xpZW50KCktPnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5wcm90b2NvbCgp
KSkKICAgICAgICAgaGFuZGxlRW1wdHlMb2FkKHVybCwgIXNob3VsZExvYWRFbXB0eSk7Ci0gICAg
ZWxzZQotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+
bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIHIsIHRoaXMsIGZhbHNlLCB0cnVlKTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgbV9yZXNvdXJjZSA9IGRvY3VtZW50TG9hZGVyKCktPmNhY2hlZFJl
c291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyLCBSZXNvdXJjZUxvYWRlck9wdGlv
bnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBTa2lwU2VjdXJp
dHlDaGVjayksIENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpOworICAgICAgICBpZiAobV9y
ZXNvdXJjZSkKKyAgICAgICAgICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+cmVjZWl2ZWRNYWluUmVzb3VyY2VF
cnJvcihmcmFtZUxvYWRlcigpLT5jYW5jZWxsZWRFcnJvcihyKSwgdHJ1ZSk7CiAKKyAgICB9CisK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgciwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVE
YXRhKQogewotICAgIEFTU0VSVCghbV9oYW5kbGUpOworICAgIEFTU0VSVCghbV9yZXNvdXJjZSk7
CiAKICAgICBtX3N1YnN0aXR1dGVEYXRhID0gc3Vic3RpdHV0ZURhdGE7CiAKQEAgLTYzMCw3ICs2
MzIsOCBAQAogCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29s
IGRlZmVycykKIHsKLSAgICBSZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMp
OworICAgIGlmIChtX3Jlc291cmNlKQorICAgICAgICBtX3Jlc291cmNlLT5zZXREZWZlcnNMb2Fk
aW5nKGRlZmVycyk7CiAKICAgICBpZiAoZGVmZXJzKSB7CiAgICAgICAgIGlmIChtX2RhdGFMb2Fk
VGltZXIuaXNBY3RpdmUoKSkKQEAgLTY0OSw0ICs2NTIsMTUgQEAKICAgICB9CiB9CiAKK3ZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpzZXRTaG91bGRCdWZmZXJEYXRhKERhdGFCdWZmZXJpbmdQb2xp
Y3kgc2hvdWxkQnVmZmVyRGF0YSkKK3sKKyAgICBBU1NFUlQobV9yZXNvdXJjZSk7CisgICAgbV9y
ZXNvdXJjZS0+c2V0U2hvdWxkQnVmZmVyRGF0YShzaG91bGRCdWZmZXJEYXRhKTsKIH0KKworUmVz
b3VyY2VMb2FkZXIqIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZGVyKCkgY29uc3QKK3sgCisgICAg
cmV0dXJuIG1fcmVzb3VyY2UgPyBtX3Jlc291cmNlLT5sb2FkZXIoKSA6IDA7Cit9CisKK30KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkocmV2aXNpb24gMTAy
NDY1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQzLDEwICsyNDMsMTIgQEAKIAogICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxv
YWRlciA9IERvY3VtZW50TG9hZGVyOjpmcmFtZUxvYWRlcigpOwogICAgIAotICAgIGlmIChtX21h
aW5SZXNvdXJjZUxvYWRlcikKKyAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIpIHsKICAgICAg
ICAgLy8gU3RvcCB0aGUgbWFpbiByZXNvdXJjZSBsb2FkZXIgYW5kIGxldCBpdCBzZW5kIHRoZSBj
YW5jZWxsZWQgbWVzc2FnZS4KKyAgICAgICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyLT5yZXNv
dXJjZURhdGEoKSAmJiAhbV9tYWluUmVzb3VyY2VEYXRhKQorICAgICAgICAgICAgbV9tYWluUmVz
b3VyY2VEYXRhID0gbV9tYWluUmVzb3VyY2VMb2FkZXItPnJlc291cmNlRGF0YSgpOwogICAgICAg
ICBtX21haW5SZXNvdXJjZUxvYWRlci0+Y2FuY2VsKCk7Ci0gICAgZWxzZSBpZiAoIW1fc3VicmVz
b3VyY2VMb2FkZXJzLmlzRW1wdHkoKSkKKyAgICB9IGVsc2UgaWYgKCFtX3N1YnJlc291cmNlTG9h
ZGVycy5pc0VtcHR5KCkpCiAgICAgICAgIC8vIFRoZSBtYWluIHJlc291cmNlIGxvYWRlciBhbHJl
YWR5IGZpbmlzaGVkIGxvYWRpbmcuIFNldCB0aGUgY2FuY2VsbGVkIGVycm9yIG9uIHRoZSAKICAg
ICAgICAgLy8gZG9jdW1lbnQgYW5kIGxldCB0aGUgc3VicmVzb3VyY2VMb2FkZXJzIHNlbmQgaW5k
aXZpZHVhbCBjYW5jZWxsZWQgbWVzc2FnZXMgYmVsb3cuCiAgICAgICAgIHNldE1haW5Eb2N1bWVu
dEVycm9yKGZyYW1lTG9hZGVyLT5jYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpKTsKQEAgLTM1NCw3
ICszNTYsMTUgQEAKICAgICAgICAgc2V0dXBGb3JSZXBsYWNlKCk7CiAgICAgfQogICAgIAotICAg
IHN0b3BMb2FkaW5nU3VicmVzb3VyY2VzKCk7CisgICAgQVNTRVJUKG1fbWFpblJlc291cmNlTG9h
ZGVyKTsKKyAgICBSZXNvdXJjZUxvYWRlclNldCBzdWJyZXNvdXJjZUxvYWRlcnNUb0NhbmNlbDsK
KyAgICBSZXNvdXJjZUxvYWRlclNldDo6aXRlcmF0b3IgZW5kID0gbV9zdWJyZXNvdXJjZUxvYWRl
cnMuZW5kKCk7CisgICAgZm9yIChSZXNvdXJjZUxvYWRlclNldDo6aXRlcmF0b3IgaXRlciA9IG1f
c3VicmVzb3VyY2VMb2FkZXJzLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKKyAgICAg
ICAgaWYgKCgqaXRlciktPnVybCgpICE9IG1fcmVxdWVzdC51cmwoKSkKKyAgICAgICAgICAgIHN1
YnJlc291cmNlTG9hZGVyc1RvQ2FuY2VsLmFkZCgqaXRlcik7CisgICAgfQorICAgIGNhbmNlbEFs
bChzdWJyZXNvdXJjZUxvYWRlcnNUb0NhbmNlbCk7CisKICAgICBzdG9wTG9hZGluZ1BsdWdJbnMo
KTsKICNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpIHx8IEVOQUJMRShNSFRNTCkKICAgICBjbGVhckFy
Y2hpdmVSZXNvdXJjZXMoKTsKQEAgLTQxOCwxMSArNDI4LDE5IEBACiAgICAgbV9wcmltYXJ5TG9h
ZENvbXBsZXRlID0gZmxhZzsKICAgICBpZiAoZmxhZykgewogICAgICAgICBpZiAobV9tYWluUmVz
b3VyY2VMb2FkZXIpIHsKLSAgICAgICAgICAgIG1fbWFpblJlc291cmNlRGF0YSA9IG1fbWFpblJl
c291cmNlTG9hZGVyLT5yZXNvdXJjZURhdGEoKTsKKyAgICAgICAgICAgIGlmICghbV9tYWluUmVz
b3VyY2VEYXRhKQorICAgICAgICAgICAgICAgIG1fbWFpblJlc291cmNlRGF0YSA9IG1fbWFpblJl
c291cmNlTG9hZGVyLT5yZXNvdXJjZURhdGEoKTsKKyAgICAgICAgICAgIC8vIFdlIHdpbGwgbGVh
dmUgb3Vyc2VsdmVzIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSBpZiB3ZSBudWxsIG91dAorICAg
ICAgICAgICAgLy8gdGhlIE1haW5SZXNvdXJjZUxvYWRlciB3aXRob3V0IGFsc28gcmVtb3ZlIHRo
ZSB1bmRlcmx5aW5nIFJlc291cmNlTG9hZGVyLAorICAgICAgICAgICAgLy8gdGhlbiBjYWxsIHVw
ZGF0ZUxvYWRpbmcoKS4gcmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIoKSBjYWxscyB1cGRhdGVMb2Fk
aW5nKCksCisgICAgICAgICAgICAvLyBzbyBkaXJlY3RseSByZW1vdmUgdGhlIHVuZGVybHlpbmcg
UmVzb3VyY2VMb2FkZXIgZnJvbSBvdXIgcmVjb3JkcywgdGhlbiBudWxsCisgICAgICAgICAgICAv
LyBvdXQgdGhlIE1haW5SZXNvdXJjZUxvYWRlciBhbmQgY2FsbCB1cGRhdGVMb2FkaW5nKCkuCisg
ICAgICAgICAgICBpZiAoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyID0gbV9tYWluUmVz
b3VyY2VMb2FkZXItPmxvYWRlcigpKQorICAgICAgICAgICAgICAgIG1fc3VicmVzb3VyY2VMb2Fk
ZXJzLnJlbW92ZShyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUxv
YWRlciA9IDA7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodGhpcyA9PSBmcmFtZUxvYWRlcigp
LT5hY3RpdmVEb2N1bWVudExvYWRlcigpKQorICAgICAgICBpZiAobV9mcmFtZSAmJiB0aGlzID09
IGZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkpCiAgICAgICAgICAgICB1cGRh
dGVMb2FkaW5nKCk7CiAgICAgfQogfQpAQCAtNzMwLDggKzc0OCw2IEBACiAKIHZvaWQgRG9jdW1l
bnRMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7Ci0gICAgaWYgKG1fbWFp
blJlc291cmNlTG9hZGVyKQotICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+c2V0RGVmZXJz
TG9hZGluZyhkZWZlcnMpOwogICAgIHNldEFsbERlZmVyc0xvYWRpbmcobV9zdWJyZXNvdXJjZUxv
YWRlcnMsIGRlZmVycyk7CiAgICAgc2V0QWxsRGVmZXJzTG9hZGluZyhtX3BsdWdJblN0cmVhbUxv
YWRlcnMsIGRlZmVycyk7CiAgICAgaWYgKCFkZWZlcnMpCkBAIC03OTQsMTEgKzgxMCwxMiBAQAog
ICAgIHJldHVybiBtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+
aXNMb2FkaW5nTXVsdGlwYXJ0Q29udGVudCgpOwogfQogCi1ib29sIERvY3VtZW50TG9hZGVyOjpz
dGFydExvYWRpbmdNYWluUmVzb3VyY2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQorYm9vbCBE
b2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKCkKIHsKICAgICBBU1NFUlQo
IW1fbWFpblJlc291cmNlTG9hZGVyKTsKKyAgICBBU1NFUlQoIW1fY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIpOworICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBhZG9wdFB0cihuZXcgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIodGhpcykpOwogICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0gTWFpblJlc291
cmNlTG9hZGVyOjpjcmVhdGUobV9mcmFtZSk7Ci0gICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPnNl
dElkZW50aWZpZXIoaWRlbnRpZmllcik7CiAKICAgICAvLyBGSVhNRTogSXMgdGhlcmUgYW55IHdh
eSB0aGUgZXh0cmEgZmllbGRzIGNvdWxkIGhhdmUgbm90IGJlZW4gYWRkZWQgYnkgbm93PwogICAg
IC8vIElmIG5vdCwgaXQgd291bGQgYmUgZ3JlYXQgdG8gcmVtb3ZlIHRoaXMgbGluZSBvZiBjb2Rl
LgpAQCAtODE1LDkgKzgzMiw5IEBACiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRG9jdW1l
bnRMb2FkZXI6OmNhbmNlbE1haW5SZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCit2b2lkIERvY3VtZW50TG9hZGVyOjpjYW5jZWxNYWluUmVzb3VyY2VMb2FkKGNvbnN0IFJl
c291cmNlRXJyb3ImKQogewotICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5jYW5jZWwoZXJyb3Ip
OworICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5jYW5jZWwoKTsKIH0KIAogdm9pZCBEb2N1bWVu
dExvYWRlcjo6c3VicmVzb3VyY2VMb2FkZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KFJlc291cmNl
TG9hZGVyKiBsb2FkZXIpCkBAIC04MzYsOSArODUzLDYgQEAKICAgICBGcmFtZUxvYWRlciogbG9h
ZGVyID0gZnJhbWVMb2FkZXIoKTsKICAgICBBU1NFUlQobG9hZGVyKTsKIAotICAgIGlmIChpc0xv
YWRpbmdNYWluUmVzb3VyY2UoKSkKLSAgICAgICAgbG9hZGVyLT5kaXNwYXRjaFRyYW5zZmVyTG9h
ZGluZ1Jlc291cmNlRnJvbVBhZ2UobV9tYWluUmVzb3VyY2VMb2FkZXIuZ2V0KCksIG9yaWdpbmFs
UmVxdWVzdCgpLCBvbGRQYWdlKTsKLQogICAgIGlmIChpc0xvYWRpbmdTdWJyZXNvdXJjZXMoKSkg
ewogICAgICAgICBSZXNvdXJjZUxvYWRlclNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N1YnJl
c291cmNlTG9hZGVycy5iZWdpbigpOwogICAgICAgICBSZXNvdXJjZUxvYWRlclNldDo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gbV9zdWJyZXNvdXJjZUxvYWRlcnMuZW5kKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAJKHJldmlzaW9uIDEwMjQ2NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExOSw4ICsxMTksMTEgQEAKICAgICAKICAgICAvLyBJZiB0aGUgbmV3IGRvY3VtZW50IGlzIGZv
ciBhIFBsdWdpbiBidXQgd2UncmUgc3VwcG9zZWQgdG8gYmUgc2FuZGJveGVkIGZyb20gUGx1Z2lu
cywKICAgICAvLyB0aGVuIHJlcGxhY2UgdGhlIGRvY3VtZW50IHdpdGggb25lIHdob3NlIHBhcnNl
ciB3aWxsIGlnbm9yZSB0aGUgaW5jb21pbmcgZGF0YSAoYnVnIDM5MzIzKQotICAgIGlmIChkb2N1
bWVudC0+aXNQbHVnaW5Eb2N1bWVudCgpICYmIGRvY3VtZW50LT5pc1NhbmRib3hlZChTYW5kYm94
UGx1Z2lucykpCisgICAgaWYgKGRvY3VtZW50LT5pc1BsdWdpbkRvY3VtZW50KCkgJiYgZG9jdW1l
bnQtPmlzU2FuZGJveGVkKFNhbmRib3hQbHVnaW5zKSkgeworICAgICAgICBSZWZQdHI8RG9jdW1l
bnQ+IG9sZERvY3VtZW50ID0gZG9jdW1lbnQ7CiAgICAgICAgIGRvY3VtZW50ID0gU2lua0RvY3Vt
ZW50OjpjcmVhdGUobV9mcmFtZSwgdXJsKTsKKyAgICAgICAgZG9jdW1lbnQtPnRha2VDYWNoZWRS
ZXNvdXJjZUxvYWRlcihvbGREb2N1bWVudC5nZXQoKSk7CisgICAgfQogCiAgICAgLy8gRklYTUU6
IERvIHdlIG5lZWQgdG8gY29uc3VsdCB0aGUgY29udGVudCBzZWN1cml0eSBwb2xpY3kgaGVyZSBh
Ym91dCBibG9ja2VkIHBsdWctaW5zPwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuaAkocmV2aXNpb24gMTAyNDY1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDYgQEAKICAgICAgICAg
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOwogCi0gICAgICAg
IHZvaWQgc2V0SWRlbnRpZmllcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpIHsgbV9pZGVudGlm
aWVyID0gaWRlbnRpZmllcjsgfQogICAgICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVs
ZWFzZVJlc291cmNlcygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMDI0NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgpAQCAtNTAsNyArNTEsOCBAQAogU3VicmVzb3VyY2VMb2FkZXI6OlN1YnJlc291
cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSwgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBSZXNvdXJjZUxvYWRlcihmcmFt
ZSwgb3B0aW9ucykKICAgICAsIG1fcmVzb3VyY2UocmVzb3VyY2UpCi0gICAgLCBtX2RvY3VtZW50
KGZyYW1lLT5kb2N1bWVudCgpKQorICAgICwgbV9kb2N1bWVudChyZXNvdXJjZS0+dHlwZSgpID09
IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UgPyAwIDogZnJhbWUtPmRvY3VtZW50KCkpCisg
ICAgLCBtX2NhY2hlZFJlc291cmNlTG9hZGVyKG1fZG9jdW1lbnQgPyBtX2RvY3VtZW50LT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpIDogbV9kb2N1bWVudExvYWRlci0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKSkKICAgICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3N0
YXRlKFVuaW5pdGlhbGl6ZWQpCiB7CkBAIC04MSwyNSArODMsMjYgQEAKICAgICAvLyB0aGUgQ29u
dGVudC1TZWN1cml0eS1Qb2xpY3kgYXQgdGhlIENhY2hlZFJlc291cmNlTG9hZGVyIGxheWVyIHNv
IHdlIGNhbgogICAgIC8vIGhhbmRsZSBkaWZmZXJlbnQgcmVzb3VyY2UgdHlwZXMgZGlmZmVyZW50
bHkuCiAKLSAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJlcjsKLSAgICBTdHJpbmcgb3V0Z29pbmdP
cmlnaW47Ci0gICAgaWYgKHJlcXVlc3QuaHR0cFJlZmVycmVyKCkuaXNOdWxsKCkpIHsKLSAgICAg
ICAgb3V0Z29pbmdSZWZlcnJlciA9IGZyYW1lTG9hZGVyLT5vdXRnb2luZ1JlZmVycmVyKCk7Ci0g
ICAgICAgIG91dGdvaW5nT3JpZ2luID0gZnJhbWVMb2FkZXItPm91dGdvaW5nT3JpZ2luKCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgb3V0Z29pbmdSZWZlcnJlciA9IHJlcXVlc3QuaHR0cFJlZmVy
cmVyKCk7Ci0gICAgICAgIG91dGdvaW5nT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZy
b21TdHJpbmcob3V0Z29pbmdSZWZlcnJlciktPnRvU3RyaW5nKCk7CisgICAgaWYgKHJlc291cmNl
LT50eXBlKCkgIT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSkgeworICAgICAgICBTdHJp
bmcgb3V0Z29pbmdSZWZlcnJlcjsKKyAgICAgICAgU3RyaW5nIG91dGdvaW5nT3JpZ2luOworICAg
ICAgICBpZiAocmVxdWVzdC5odHRwUmVmZXJyZXIoKS5pc051bGwoKSkgeworICAgICAgICAgICAg
b3V0Z29pbmdSZWZlcnJlciA9IGZyYW1lTG9hZGVyLT5vdXRnb2luZ1JlZmVycmVyKCk7CisgICAg
ICAgICAgICBvdXRnb2luZ09yaWdpbiA9IGZyYW1lTG9hZGVyLT5vdXRnb2luZ09yaWdpbigpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb3V0Z29pbmdSZWZlcnJlciA9IHJlcXVlc3Qu
aHR0cFJlZmVycmVyKCk7CisgICAgICAgICAgICBvdXRnb2luZ09yaWdpbiA9IFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVGcm9tU3RyaW5nKG91dGdvaW5nUmVmZXJyZXIpLT50b1N0cmluZygpOworICAg
ICAgICB9CisKKyAgICAgICAgb3V0Z29pbmdSZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5l
cmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpLCBy
ZXF1ZXN0LnVybCgpLCBvdXRnb2luZ1JlZmVycmVyKTsKKyAgICAgICAgaWYgKG91dGdvaW5nUmVm
ZXJyZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJl
cigpOworICAgICAgICBlbHNlIGlmICghcmVxdWVzdC5odHRwUmVmZXJyZXIoKSkKKyAgICAgICAg
ICAgIG5ld1JlcXVlc3Quc2V0SFRUUFJlZmVycmVyKG91dGdvaW5nUmVmZXJyZXIpOworICAgICAg
ICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKG5ld1JlcXVlc3QsIG91dGdvaW5n
T3JpZ2luKTsKKyAgICAgICAgZnJhbWVMb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJj
ZVJlcXVlc3QobmV3UmVxdWVzdCk7CiAgICAgfQogCi0gICAgb3V0Z29pbmdSZWZlcnJlciA9IFNl
Y3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lLT5kb2N1bWVudCgpLT5y
ZWZlcnJlclBvbGljeSgpLCByZXF1ZXN0LnVybCgpLCBvdXRnb2luZ1JlZmVycmVyKTsKLSAgICBp
ZiAob3V0Z29pbmdSZWZlcnJlci5pc0VtcHR5KCkpCi0gICAgICAgIG5ld1JlcXVlc3QuY2xlYXJI
VFRQUmVmZXJyZXIoKTsKLSAgICBlbHNlIGlmICghcmVxdWVzdC5odHRwUmVmZXJyZXIoKSkKLSAg
ICAgICAgbmV3UmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIob3V0Z29pbmdSZWZlcnJlcik7Ci0gICAg
RnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChuZXdSZXF1ZXN0LCBvdXRnb2luZ09y
aWdpbik7Ci0KLSAgICBmcmFtZUxvYWRlci0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVx
dWVzdChuZXdSZXF1ZXN0KTsKLQogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gc3VibG9h
ZGVyKGFkb3B0UmVmKG5ldyBTdWJyZXNvdXJjZUxvYWRlcihmcmFtZSwgcmVzb3VyY2UsIG9wdGlv
bnMpKSk7CiAgICAgaWYgKCFzdWJsb2FkZXItPmluaXQobmV3UmVxdWVzdCkpCiAgICAgICAgIHJl
dHVybiAwOwpAQCAtMTI5LDE0ICsxMzIsMjEgQEAKICAgICAvLyBTdG9yZSB0aGUgcHJldmlvdXMg
VVJMIGJlY2F1c2UgdGhlIGNhbGwgdG8gUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCB3
aWxsIG1vZGlmeSBpdC4KICAgICBLVVJMIHByZXZpb3VzVVJMID0gcmVxdWVzdCgpLnVybCgpOwog
ICAgIAotICAgIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QobmV3UmVxdWVzdCwgcmVk
aXJlY3RSZXNwb25zZSk7Ci0gICAgaWYgKCFwcmV2aW91c1VSTC5pc051bGwoKSAmJiAhbmV3UmVx
dWVzdC5pc051bGwoKSAmJiBwcmV2aW91c1VSTCAhPSBuZXdSZXF1ZXN0LnVybCgpKSB7Ci0gICAg
ICAgIGlmICghbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+Y2FuUmVxdWVzdCht
X3Jlc291cmNlLT50eXBlKCksIG5ld1JlcXVlc3QudXJsKCkpKSB7CisgICAgaWYgKCghcHJldmlv
dXNVUkwuaXNOdWxsKCkgJiYgIW5ld1JlcXVlc3QuaXNOdWxsKCkgJiYgcHJldmlvdXNVUkwgIT0g
bmV3UmVxdWVzdC51cmwoKSkpIHsKKyAgICAgICAgaWYgKCFtX2NhY2hlZFJlc291cmNlTG9hZGVy
LT5jYW5SZXF1ZXN0KG1fcmVzb3VyY2UtPnR5cGUoKSwgbmV3UmVxdWVzdC51cmwoKSkpIHsKICAg
ICAgICAgICAgIGNhbmNlbCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIG1fcmVzb3VyY2UtPndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3Bv
bnNlKTsKICAgICB9CisKKyAgICBpZiAocmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QobmV3UmVxdWVzdCwg
cmVkaXJlY3RSZXNwb25zZSk7CisgICAgaWYgKG1fcmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRS
ZXNvdXJjZTo6TWFpblJlc291cmNlICYmICFuZXdSZXF1ZXN0LmlzTnVsbCgpICYmIG5ld1JlcXVl
c3QudXJsKCkgPT0gbV9kb2N1bWVudExvYWRlci0+cmVxdWVzdCgpLnVybCgpKQorICAgICAgICBt
X2RvY3VtZW50TG9hZGVyLT5zZXRSZXF1ZXN0KG5ld1JlcXVlc3QpOworICAgIGlmIChuZXdSZXF1
ZXN0LmlzTnVsbCgpKQorICAgICAgICBjYW5jZWwoZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmlu
dGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IobmV3UmVxdWVzdCkpOwogfQogCiB2b2lkIFN1
YnJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50
LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KQpAQCAtMTczLDExICsxODMs
MTEgQEAKICAgICBpZiAobV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkgewogICAgICAgICBBU1NF
UlQobV9yZXNvdXJjZS0+aXNJbWFnZSgpKTsKICAgICAgICAgc3RhdGljX2Nhc3Q8Q2FjaGVkSW1h
Z2UqPihtX3Jlc291cmNlKS0+Y2xlYXIoKTsKLSAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmlzTXVs
dGlwYXJ0KCkpIHsKKyAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmlzTXVsdGlwYXJ0KCkgJiYgbV9y
ZXNvdXJjZS0+dHlwZSgpICE9IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpIHsKICAgICAg
ICAgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCA9IHRydWU7CiAKICAgICAgICAgLy8gV2UgZG9u
J3QgY291bnQgbXVsdGlQYXJ0cyBpbiBhIENhY2hlZFJlc291cmNlTG9hZGVyJ3MgcmVxdWVzdCBj
b3VudAotICAgICAgICBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5kZWNyZW1l
bnRSZXF1ZXN0Q291bnQobV9yZXNvdXJjZSk7CisgICAgICAgIG1fY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPmRlY3JlbWVudFJlcXVlc3RDb3VudChtX3Jlc291cmNlKTsKICAgICAgICAgaWYgKCFtX3Jl
c291cmNlLT5pc0ltYWdlKCkpIHsKICAgICAgICAgICAgIGNhbmNlbCgpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMjkzLDEzICszMDMsMTYgQEAKICAgICBBU1NFUlQoIXJlYWNoZWRUZXJtaW5h
bFN0YXRlKCkpOwogICAgIGlmIChtX3N0YXRlICE9IFVuaW5pdGlhbGl6ZWQpIHsKICAgICAgICAg
aWYgKCFtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50ICYmIG1fc3RhdGUgIT0gUmVsZWFzaW5nKQot
ICAgICAgICAgICAgbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+ZGVjcmVtZW50
UmVxdWVzdENvdW50KG1fcmVzb3VyY2UpOworICAgICAgICAgICAgbV9jYWNoZWRSZXNvdXJjZUxv
YWRlci0+ZGVjcmVtZW50UmVxdWVzdENvdW50KG1fcmVzb3VyY2UpOwogICAgICAgICBtX3N0YXRl
ID0gUmVsZWFzaW5nOwotICAgICAgICBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LT5sb2FkRG9uZSgpOworICAgICAgICBpZiAobV9jYWNoZWRSZXNvdXJjZUxvYWRlciA9PSBtX2Rv
Y3VtZW50TG9hZGVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpIHx8IChtX2RvY3VtZW50ICYmIG1f
ZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCkpKQorICAgICAgICAgICAgbV9jYWNoZWRS
ZXNvdXJjZUxvYWRlci0+bG9hZERvbmUoKTsKKwogICAgICAgICBpZiAocmVhY2hlZFRlcm1pbmFs
U3RhdGUoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9yZXNvdXJjZS0+c3RvcExv
YWRpbmcoKTsKLSAgICAgICAgbV9kb2N1bWVudExvYWRlci0+cmVtb3ZlU3VicmVzb3VyY2VMb2Fk
ZXIodGhpcyk7CisgICAgICAgIGlmIChtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpICYmIG1fZG9j
dW1lbnRMb2FkZXIgPT0gbV9kb2N1bWVudExvYWRlci0+ZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9j
dW1lbnRMb2FkZXIoKSkKKyAgICAgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnJlbW92ZVN1YnJl
c291cmNlTG9hZGVyKHRoaXMpOwogICAgIH0KICAgICBtX2RvY3VtZW50ID0gMDsKICAgICBSZXNv
dXJjZUxvYWRlcjo6cmVsZWFzZVJlc291cmNlcygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHAJKHJldmlzaW9uIDEwMjQ2NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw0ICsz
NSwxMCBAQAogewogfQogCit2b2lkIEFyY2hpdmU6OmFkZFN1YnJlc291cmNlKFBhc3NSZWZQdHI8
QXJjaGl2ZVJlc291cmNlPiBzdWJSZXNvdXJjZSkKK3sKKyAgICBpZiAobV9tYWluUmVzb3VyY2Ut
PnVybCgpICE9IHN1YlJlc291cmNlLT51cmwoKSkKKyAgICAgICAgbV9zdWJyZXNvdXJjZXMuYXBw
ZW5kKHN1YlJlc291cmNlKTsKIH0KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvQXJjaGl2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL0FyY2hpdmUuaAkocmV2aXNpb24gMTAyNDY1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvQXJjaGl2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBACiAgICAg
Ly8gVGhlc2UgbWV0aG9kcyBhcmUgbWVhbnQgZm9yIHN1YmNsYXNzZXMgZm9yIGRpZmZlcmVudCBh
cmNoaXZlIHR5cGVzIHRvIGFkZCByZXNvdXJjZXMgaW4gdG8gdGhlIGFyY2hpdmUsCiAgICAgLy8g
YW5kIHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyBhcmNoaXZlcyBzaG91bGQgYmUgaW1tdXRhYmxl
IHRvIGNsaWVudHMKICAgICB2b2lkIHNldE1haW5SZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVS
ZXNvdXJjZT4gbWFpblJlc291cmNlKSB7IG1fbWFpblJlc291cmNlID0gbWFpblJlc291cmNlOyB9
Ci0gICAgdm9pZCBhZGRTdWJyZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3Vi
UmVzb3VyY2UpIHsgbV9zdWJyZXNvdXJjZXMuYXBwZW5kKHN1YlJlc291cmNlKTsgfQorICAgIHZv
aWQgYWRkU3VicmVzb3VyY2UoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YlJlc291cmNl
KTsKICAgICB2b2lkIGFkZFN1YmZyYW1lQXJjaGl2ZShQYXNzUmVmUHRyPEFyY2hpdmU+IHN1YmZy
YW1lQXJjaGl2ZSkgeyBtX3N1YmZyYW1lQXJjaGl2ZXMuYXBwZW5kKHN1YmZyYW1lQXJjaGl2ZSk7
IH0KICAgICAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuaAkocmV2aXNpb24gMTAyNDY1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YnJlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkUmVzb3VyY2U7CitjbGFzcyBDYWNoZWRSZXNv
dXJjZUxvYWRlcjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCkBA
IC04Miw2ICs4Myw3IEBACiAKICAgICBDYWNoZWRSZXNvdXJjZSogbV9yZXNvdXJjZTsKICAgICBS
ZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIG1f
Y2FjaGVkUmVzb3VyY2VMb2FkZXI7CiAgICAgYm9vbCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50
OwogICAgIFN1YnJlc291cmNlTG9hZGVyU3RhdGUgbV9zdGF0ZTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142571</attachid>
            <date>2012-05-17 15:36:59 -0700</date>
            <delta_ts>2012-10-19 09:36:45 -0700</delta_ts>
            <desc>WIP - May 17, 2012</desc>
            <filename>cmr.txt</filename>
            <type>text/plain</type>
            <size>73224</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1p
ZnJhbWUtbG9hZC1hbmQtZGVsZXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWlmcmFtZS1sb2FkLWFuZC1kZWxldGUu
aHRtbAkocmV2aXNpb24gMTE3MzQ0KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLWlmcmFtZS1sb2FkLWFuZC1kZWxldGUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNDMsNyArNDMsNyBAQAogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQogICAgIHsKLSAg
ICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLnJlcXVlc3Rz
W1dlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5yZXF1ZXN0cy5sZW5ndGggLSAzXTsKKyAgICAg
ICAgdmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLnJlcXVlc3RzW1dl
Ykluc3BlY3Rvci5wYW5lbHMubmV0d29yay5yZXF1ZXN0cy5sZW5ndGggLSAyXTsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVxdWVzdDEudXJsKTsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoInJlc291cmNlLnR5cGU6ICIgKyByZXF1ZXN0MS50eXBlKTsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVl
c3RpbmcgY29udGVudDogIiArIHJlcXVlc3QxLmNvbnRlbnQpOwpAQCAtNTIsNyArNTIsNyBAQAog
CiAgICAgZnVuY3Rpb24gc3RlcDMoKQogICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QxID0gV2Vi
SW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbHMubmV0
d29yay5yZXF1ZXN0cy5sZW5ndGggLSAzXTsKKyAgICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5z
cGVjdG9yLnBhbmVscy5uZXR3b3JrLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbHMubmV0d29y
ay5yZXF1ZXN0cy5sZW5ndGggLSAyXTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
InJlc291cmNlLmNvbnRlbnQgYWZ0ZXIgcmVxdWVzdGluZyBjb250ZW50OiAiICsgcmVxdWVzdDEu
Y29udGVudCk7CiAKICAgICAgICAgdmFyIHJlcXVlc3QyID0gV2ViSW5zcGVjdG9yLnBhbmVscy5u
ZXR3b3JrLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5yZXF1ZXN0cy5sZW5n
dGggLSAxXTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
LXBhcmFtZXRlcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwJKHJldmlzaW9uIDExNzM0NCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTcsOCArMTcsNiBAQAogICAgIGZ1bmN0aW9uIG9uUmVxdWVzdEZp
bmlzaGVkKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIHJlcXVlc3QgPSBldmVudC5kYXRhOwot
ICAgICAgICBpZiAocmVxdWVzdC51cmwgIT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2k/cXVlcnlQYXJhbTE9cXVlcnlWYWx1ZTEmcXVl
cnlQYXJhbTI9I2ZyYWdtZW50UGFyYW0xPWZyYWdtZW50VmFsdWUxJmZyYWdtZW50UGFyYW0yPSIp
Ci0gICAgICAgICAgICByZXR1cm47CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KG5l
dyBXZWJJbnNwZWN0b3IuSEFSRW50cnkocmVxdWVzdCkuYnVpbGQoKSwgSW5zcGVjdG9yVGVzdC5I
QVJQcm9wZXJ0eUZvcm1hdHRlcnMpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1l
T3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1wYXJlbnQtc2FtZS1vcmlnaW4t
ZGVueS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLXBhcmVu
dC1zYW1lLW9yaWdpbi1kZW55LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE3MzQ0KQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9u
cy1kZW55LW1ldGEtdGFnLXBhcmVudC1zYW1lLW9yaWdpbi1kZW55LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNCw4ICs0LDYgQEAKIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0
eS9YRnJhbWVPcHRpb25zL3Jlc291cmNlcy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1z
dWJmcmFtZS1wYXJlbnQtc2FtZS1vcmlnaW4tZGVueS5odG1sIC0gZGlkRmFpbExvYWRpbmdXaXRo
RXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBOU1VSTEVycm9yRG9tYWluLCBjb2RlIC05OTksIGZhaWxp
bmcgVVJMICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy9yZXNv
dXJjZXMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10YWctc3ViZnJhbWUtcGFyZW50LXNhbWUt
b3JpZ2luLWRlbnkuaHRtbCI+CiBDT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlzcGxheSBk
b2N1bWVudCBiZWNhdXNlIGRpc3BsYXkgZm9yYmlkZGVuIGJ5IFgtRnJhbWUtT3B0aW9ucy4KIAot
YWJvdXQ6YmxhbmsgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgYWJvdXQ6Ymxh
bmssIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9YRnJh
bWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLXBhcmVudC1zYW1lLW9yaWdp
bi1kZW55Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAobnVsbCkKLWFi
b3V0OmJsYW5rIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGFib3V0OmJsYW5r
LCBodHRwIHN0YXR1cyBjb2RlIDA+CiBUaGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBpbiB0aGUg
aWZyYW1lIGJlbG93CiAKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9Y
RnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLWluLWJvZHktZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvWEZy
YW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1pbi1ib2R5LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTE3MzQ0KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLWluLWJvZHktZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDggKzQsNiBAQAogaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMvcmVzb3VyY2VzL3gtZnJhbWUtb3B0aW9ucy1k
ZW55LW1ldGEtdGFnLXN1YmZyYW1lLWluLWJvZHkuaHRtbCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVy
cm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5n
IFVSTCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMvcmVzb3Vy
Y2VzL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLXN1YmZyYW1lLWluLWJvZHkuaHRtbCI+
CiBDT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlzcGxheSBkb2N1bWVudCBiZWNhdXNlIGRp
c3BsYXkgZm9yYmlkZGVuIGJ5IFgtRnJhbWUtT3B0aW9ucy4KIAotYWJvdXQ6YmxhbmsgLSB3aWxs
U2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgYWJvdXQ6YmxhbmssIG1haW4gZG9jdW1lbnQg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUt
b3B0aW9ucy1kZW55LW1ldGEtdGFnLWluLWJvZHkuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRp
cmVjdFJlc3BvbnNlIChudWxsKQotYWJvdXQ6YmxhbmsgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5T
VVJMUmVzcG9uc2UgYWJvdXQ6YmxhbmssIGh0dHAgc3RhdHVzIGNvZGUgMD4KIFRoZXJlIHNob3Vs
ZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3cKIAogCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnkt
bWV0YS10YWctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDExNzM0NCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw2IEBACiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy9yZXNvdXJjZXMveC1mcmFtZS1vcHRpb25zLWRl
bnktbWV0YS10YWctc3ViZnJhbWUuaHRtbCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNF
cnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMvcmVzb3VyY2VzL3gtZnJh
bWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLXN1YmZyYW1lLmh0bWwiPgogQ09OU09MRSBNRVNTQUdF
OiBSZWZ1c2VkIHRvIGRpc3BsYXkgZG9jdW1lbnQgYmVjYXVzZSBkaXNwbGF5IGZvcmJpZGRlbiBi
eSBYLUZyYW1lLU9wdGlvbnMuCiAKLWFib3V0OmJsYW5rIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VS
TFJlcXVlc3QgVVJMIGFib3V0OmJsYW5rLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRh
LXRhZy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCi1hYm91
dDpibGFuayAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBhYm91dDpibGFuaywg
aHR0cCBzdGF0dXMgY29kZSAwPgogVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlm
cmFtZSBiZWxvdwogCiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9nbWFp
bC1hc3NlcnQtb24tbG9hZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2FkaW5nL2dtYWlsLWFzc2VydC1vbi1sb2FkLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTE3MzQ0KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL2dtYWlsLWFz
c2VydC1vbi1sb2FkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAK
IG1haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQogZnJhbWUgIjwhLS1m
cmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQogZnJh
bWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZpbmlzaERvY3VtZW50
TG9hZEZvckZyYW1lCi1mcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0g
ZGlkRmFpbExvYWRXaXRoRXJyb3IKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0t
Pi0tPiIgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKIG1haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2Fk
Rm9yRnJhbWUKIFRoaXMgdGVzdCBwcm92b2tlcyBIVE1MVG9rZW5pemVyOjp0aW1lckZpcmVkIHRv
IGJlIGNhbGxlZCBhbmQgZnJvbSB3aXRoaW4gdGltZXJGaXJlZCB3ZSB3YW50IHRvIGNhbGwgV2Vi
Q29yZTo6cGFnZURlc3Ryb3llZC4KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2Fk
aW5nL3JlZGlyZWN0LW1ldGhvZHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTE3MzQ0KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3JlZGlyZWN0
LW1ldGhvZHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01LDEzICs1LDEwIEBACiBt
YWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCiA8dW5rbm93bj4gLSBkaWRGaW5pc2hM
b2FkaW5nCiBmcmFtZSAiMCIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCi1hYm91
dDpibGFuayAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBhYm91dDpibGFuaywg
bWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVkaXJlY3Qt
bWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCi1h
Ym91dDpibGFuayAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBhYm91dDpibGFu
aywgaHR0cCBzdGF0dXMgY29kZSAwPgogZnJhbWUgIjAiIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1l
CiBmcmFtZSAiMCIgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQogZnJhbWUgIjAiIC0g
ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKIGZyYW1lICIwIiAtIGRpZEZpbmlzaExvYWRG
b3JGcmFtZQotYWJvdXQ6YmxhbmsgLSBkaWRGaW5pc2hMb2FkaW5nCiBmcmFtZSAiMCIgLSB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5n
L3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZvcm0uaHRtbCAKIGZyYW1lICIwIiAtIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5n
L3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZvcm0uaHRtbCAtIHdpbGxTZW5kUmVxdWVzdCA8
TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMv
cmVkaXJlY3QtbWV0aG9kcy1mb3JtLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9sb2FkaW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbCwgaHR0cCBtZXRob2QgR0VU
PiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQpAQCAtMzIsMTMgKzI5LDEwIEBACiBmcmFtZSAiMCIg
LSBkaWRDb21taXRMb2FkRm9yRnJhbWUKIGZyYW1lICIwIiAtIGRpZEZpbmlzaERvY3VtZW50TG9h
ZEZvckZyYW1lCiBmcmFtZSAiMSIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCi1h
Ym91dDpibGFuayAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBhYm91dDpibGFu
aywgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVkaXJl
Y3QtbWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwp
Ci1hYm91dDpibGFuayAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBhYm91dDpi
bGFuaywgaHR0cCBzdGF0dXMgY29kZSAwPgogZnJhbWUgIjEiIC0gZGlkQ29tbWl0TG9hZEZvckZy
YW1lCiBmcmFtZSAiMSIgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQogZnJhbWUgIjEi
IC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKIGZyYW1lICIxIiAtIGRpZEZpbmlzaExv
YWRGb3JGcmFtZQotYWJvdXQ6YmxhbmsgLSBkaWRGaW5pc2hMb2FkaW5nCiBmcmFtZSAiMSIgLSB3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2Fk
aW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZvcm0uaHRtbCAKIGZyYW1lICIwIiAtIGRp
ZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCiBmcmFtZSAiMCIgLSBkaWRGaW5pc2hMb2FkRm9y
RnJhbWUKQEAgLTYyLDEzICs1NiwxMCBAQAogZnJhbWUgIjEiIC0gZGlkQ29tbWl0TG9hZEZvckZy
YW1lCiBmcmFtZSAiMSIgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQogZnJhbWUgIjIi
IC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQotYWJvdXQ6YmxhbmsgLSB3aWxsU2Vu
ZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgYWJvdXQ6YmxhbmssIG1haW4gZG9jdW1lbnQgVVJM
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbCwgaHR0
cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQotYWJvdXQ6YmxhbmsgLSBkaWRS
ZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgYWJvdXQ6YmxhbmssIGh0dHAgc3RhdHVzIGNv
ZGUgMD4KIGZyYW1lICIyIiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQogZnJhbWUgIjIiIC0gZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKIGZyYW1lICIyIiAtIGRpZEhhbmRsZU9ubG9hZEV2
ZW50c0ZvckZyYW1lCiBmcmFtZSAiMiIgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKLWFib3V0OmJs
YW5rIC0gZGlkRmluaXNoTG9hZGluZwogZnJhbWUgIjIiIC0gd2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdFRvVVJMOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJl
Y3QtbWV0aG9kcy1mb3JtLmh0bWwgCiBmcmFtZSAiMSIgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNG
b3JGcmFtZQogZnJhbWUgIjEiIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCkBAIC05MiwxMyArODMs
MTAgQEAKIGZyYW1lICIyIiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQogZnJhbWUgIjIiIC0gZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKIGZyYW1lICIzIiAtIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUKLWFib3V0OmJsYW5rIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVl
c3QgVVJMIGFib3V0OmJsYW5rLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJl
Y3RSZXNwb25zZSAobnVsbCkKLWFib3V0OmJsYW5rIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VS
TFJlc3BvbnNlIGFib3V0OmJsYW5rLCBodHRwIHN0YXR1cyBjb2RlIDA+CiBmcmFtZSAiMyIgLSBk
aWRDb21taXRMb2FkRm9yRnJhbWUKIGZyYW1lICIzIiAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZv
ckZyYW1lCiBmcmFtZSAiMyIgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQogZnJhbWUg
IjMiIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCi1hYm91dDpibGFuayAtIGRpZEZpbmlzaExvYWRp
bmcKIGZyYW1lICIzIiAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtZm9ybS5odG1s
IAogZnJhbWUgIjIiIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKIGZyYW1lICIyIiAt
IGRpZEZpbmlzaExvYWRGb3JGcmFtZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3Vi
ZnJhbWUtcmVtb3Zlcy1pdHNlbGYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL3N1YmZyYW1lLXJlbW92ZXMtaXRzZWxmLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTE3MzQ0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3ViZnJhbWUtcmVtb3Zl
cy1pdHNlbGYtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNiBAQAogbWFp
biBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCiBmcmFtZSAiPCEtLWZyYW1l
UGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCiBmcmFtZSAi
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUKLWZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBkaWRG
YWlsTG9hZFdpdGhFcnJvcgorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+
IiAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQogbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JG
cmFtZQogVGhpcyB0ZXN0cyBhIHN1YmZyYW1lIHRoYXQgcmVtb3ZlcyBpdHNlbGYgdG8gbWFrZSBz
dXJlIGEgZGVsZWdhdGUgbWVzc2FnZSB0byBpbmRpY2F0ZSB0aGUgaW50ZXJydXB0ZWQgbG9hZCBm
aXJlcy4gCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMTE3MzQ0KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3OCw3ICs1Nzgs
NyBAQAogICAgIHZvaWQgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoaW50IHBhZ2VJbmRleCwg
SW50U2l6ZSYgcGFnZVNpemUsIGludCYgbWFyZ2luVG9wLCBpbnQmIG1hcmdpblJpZ2h0LCBpbnQm
IG1hcmdpbkJvdHRvbSwgaW50JiBtYXJnaW5MZWZ0KTsKIAogICAgIHN0YXRpYyB2b2lkIHVwZGF0
ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCk7IC8vIEZJWE1FOiBUcnkgdG8gcmVkdWNlIHRoZSAjIG9m
IGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24uCi0gICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hl
ZFJlc291cmNlTG9hZGVyKCkgeyByZXR1cm4gbV9jYWNoZWRSZXNvdXJjZUxvYWRlci5nZXQoKTsg
fQorICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIuZ2V0KCk7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBhdHRhY2goKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CkBAIC0xMjQ4LDcgKzEy
NDgsNyBAQAogICAgIFZlY3RvcjxPd25QdHI8Rm9udERhdGE+ID4gbV9jdXN0b21Gb250czsKIAog
ICAgIEZyYW1lKiBtX2ZyYW1lOwotICAgIE93blB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4gbV9j
YWNoZWRSZXNvdXJjZUxvYWRlcjsKKyAgICBSZWZQdHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+IG1f
Y2FjaGVkUmVzb3VyY2VMb2FkZXI7CiAgICAgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBtX3BhcnNl
cjsKICAgICBib29sIG1fd2VsbEZvcm1lZDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CShyZXZpc2lvbiAxMTczNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01MTMsNyArNTEzLDExIEBACiAKICAgICBtX21hcmtlcnMgPSBhZG9w
dFB0cihuZXcgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKTsKIAotICAgIG1fY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIgPSBhZG9wdFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIodGhpcykpOworICAg
IGlmIChtX2ZyYW1lKQorICAgICAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyID0gbV9mcmFtZS0+
bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7
CisgICAgaWYgKCFtX2NhY2hlZFJlc291cmNlTG9hZGVyKQorICAgICAgICBtX2NhY2hlZFJlc291
cmNlTG9hZGVyID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSgwKTsKKyAgICBtX2NhY2hl
ZFJlc291cmNlTG9hZGVyLT5zZXREb2N1bWVudCh0aGlzKTsKICNpZiBFTkFCTEUoTElOS19QUkVS
RU5ERVIpCiAgICAgbV9wcmVyZW5kZXJlciA9IFByZXJlbmRlcmVyOjpjcmVhdGUodGhpcyk7CiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2Fk
UHJpb3JpdHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlTG9hZFByaW9yaXR5LmgJKHJldmlzaW9uIDExNzM0NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkUHJpb3JpdHkuaAkod29ya2luZyBjb3B5
KQpAQCAtMzUsOCArMzUsOSBAQAogICAgIFJlc291cmNlTG9hZFByaW9yaXR5TG93LAogICAgIFJl
c291cmNlTG9hZFByaW9yaXR5TWVkaXVtLAogICAgIFJlc291cmNlTG9hZFByaW9yaXR5SGlnaCwK
KyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlIaWdoLAogICAgIFJlc291cmNlTG9hZFByaW9y
aXR5TG93ZXN0ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93LAotICAgIFJlc291cmNlTG9h
ZFByaW9yaXR5SGlnaGVzdCA9IFJlc291cmNlTG9hZFByaW9yaXR5SGlnaCwKKyAgICBSZXNvdXJj
ZUxvYWRQcmlvcml0eUhpZ2hlc3QgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlIaWdoLAogfTsK
IAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJl
cXVlc3RDRk5ldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaAkocmV2aXNpb24gMTE3MzQ0KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw2ICs1NCw4IEBACiAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQ
cmlvcml0eU1lZGl1bTsKICAgICBjYXNlIDM6CiAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQ
cmlvcml0eUhpZ2g7CisgICAgY2FzZSA0OgorICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJp
b3JpdHlWZXJ5SGlnaDsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5TG93ZXN0OwpAQCAtNzMsNiAr
NzUsOCBAQAogICAgICAgICByZXR1cm4gMjsKICAgICBjYXNlIFJlc291cmNlTG9hZFByaW9yaXR5
SGlnaDoKICAgICAgICAgcmV0dXJuIDM7CisgICAgY2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0eVZl
cnlIaWdoOgorICAgICAgICByZXR1cm4gNDsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwCShyZXZpc2lvbiAxMTczNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMzLDcgKzEzMyw3IEBA
CiBzdGF0aWMgYm9vbCBoYXNUZXh0Q29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3Vy
Y2UpCiB7CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUgdHlwZSA9IEluc3Bl
Y3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VUeXBlKCpjYWNoZWRSZXNvdXJjZSk7Ci0gICAg
cmV0dXJuIHR5cGUgPT0gSW5zcGVjdG9yUGFnZUFnZW50OjpTdHlsZXNoZWV0UmVzb3VyY2UgfHwg
dHlwZSA9PSBJbnNwZWN0b3JQYWdlQWdlbnQ6OlNjcmlwdFJlc291cmNlIHx8IHR5cGUgPT0gSW5z
cGVjdG9yUGFnZUFnZW50OjpYSFJSZXNvdXJjZTsKKyAgICByZXR1cm4gdHlwZSA9PSBJbnNwZWN0
b3JQYWdlQWdlbnQ6OkRvY3VtZW50UmVzb3VyY2UgfHwgdHlwZSA9PSBJbnNwZWN0b3JQYWdlQWdl
bnQ6OlN0eWxlc2hlZXRSZXNvdXJjZSB8fCB0eXBlID09IEluc3BlY3RvclBhZ2VBZ2VudDo6U2Ny
aXB0UmVzb3VyY2UgfHwgdHlwZSA9PSBJbnNwZWN0b3JQYWdlQWdlbnQ6OlhIUlJlc291cmNlOwog
fQogCiBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBjcmVhdGVYSFJUZXh0
RGVjb2Rlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHRleHRFbmNvZGlu
Z05hbWUpCkBAIC0yODMsNiArMjgzLDggQEAKIEluc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3VyY2VU
eXBlIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VUeXBlKGNvbnN0IENhY2hlZFJl
c291cmNlJiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBzd2l0Y2ggKGNhY2hlZFJlc291cmNlLnR5
cGUoKSkgeworICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZToKKyAgICAgICAg
cmV0dXJuIEluc3BlY3RvclBhZ2VBZ2VudDo6RG9jdW1lbnRSZXNvdXJjZTsKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgogICAgICAgICByZXR1cm4gSW5zcGVjdG9yUGFn
ZUFnZW50OjpJbWFnZVJlc291cmNlOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNv
dXJjZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRMb2Fk
ZXJNYWMuY3BwCShyZXZpc2lvbiAxMTczNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFj
L0RvY3VtZW50TG9hZGVyTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsOCArNTUsNiBAQAog
CiB2b2lkIERvY3VtZW50TG9hZGVyOjpzY2hlZHVsZShTY2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0g
ICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5k
bGUoKSkKLSAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLT5zY2hlZHVsZShw
YWlyKTsKICAgICBzY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAgICAg
c2NoZWR1bGVBbGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFs
bChtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkBAIC02NCw4ICs2Miw2IEBA
CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnVuc2NoZWR1bGUoU2NoZWR1bGVQYWlyKiBwYWlyKQog
ewotICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+
aGFuZGxlKCkpCi0gICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+dW5zY2hl
ZHVsZShwYWlyKTsKICAgICB1bnNjaGVkdWxlQWxsKG1fc3VicmVzb3VyY2VMb2FkZXJzLCBwYWly
KTsKICAgICB1bnNjaGVkdWxlQWxsKG1fcGx1Z0luU3RyZWFtTG9hZGVycywgcGFpcik7CiAgICAg
dW5zY2hlZHVsZUFsbChtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAko
cmV2aXNpb24gMTE3MzQ0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJh
d1Jlc291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDIxICsyNywyNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFN1
YnJlc291cmNlTG9hZGVyOwogY2xhc3MgQ2FjaGVkUmF3UmVzb3VyY2VDYWxsYmFjazsKIGNsYXNz
IENhY2hlZFJhd1Jlc291cmNlQ2xpZW50OwogCiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZSA6IHB1
YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0Jiwg
VHlwZSk7CiAKICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUg
YSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAv
LyB1c2UgQ2FjaGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8g
YmUgYWJsZSB0byBkZWZlciBsb2FkaW5nLgogICAgIC8vIFRoaXMgY2FuIGJlIGZpeGVkIGJ5IHNw
bGl0dGluZyBDT1JTIHByZWZsaWdodGluZyBvdXQgb2YgRG9jdW1lbnRUaHJlYWNhYmxlTG9hZGVy
LgogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOworCisgICAgdmlydHVh
bCB2b2lkIHNldFNob3VsZEJ1ZmZlckRhdGEoRGF0YUJ1ZmZlcmluZ1BvbGljeSk7CiAgICAgCiAg
ICAgLy8gRklYTUU6IFRoaXMgaXMgZXhwb3NlZCBmb3IgdGhlIElucHNlY3Rvckluc3RydW1lbnRh
dGlvbiBmb3IgcHJlZmxpZ2h0cyBpbiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuIEl0J3MgYWxz
byByZWFsbHkgbGFtZS4KICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXI7IH0KIAorICAgIFN1YnJlc291cmNlTG9hZGVyKiBsb2FkZXIoKSBj
b25zdDsKKyAgICB2b2lkIGNsZWFyKCk7CisKICAgICBib29sIGNhblJldXNlKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpIGNvbnN0OwogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAx
MTczNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiQ29udGVu
dFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgpAQCAtODAsNyArODEsOCBAQAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJj
ZToKICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRGb250KHJlcXVlc3QpOwogICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJhd1Jl
c291cmNlKHJlcXVlc3QpOworICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZToK
KyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSYXdSZXNvdXJjZShyZXF1ZXN0LCB0eXBlKTsKICNp
ZiBFTkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0Ogog
ICAgICAgICByZXR1cm4gbmV3IENhY2hlZFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CkBAIC0xMTAs
OCArMTEyLDkgQEAKICAgICByZXR1cm4gb3B0aW9uczsKIH0KIAotQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OkNhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IG1fZG9j
dW1lbnQoZG9jdW1lbnQpCitDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQorICAgIDogbV9kb2N1bWVudCgwKQor
ICAgICwgbV9kb2N1bWVudExvYWRlcihkb2N1bWVudExvYWRlcikKICAgICAsIG1fcmVxdWVzdENv
dW50KDApCiAgICAgLCBtX2dhcmJhZ2VDb2xsZWN0RG9jdW1lbnRSZXNvdXJjZXNUaW1lcih0aGlz
LCAmQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmdhcmJhZ2VDb2xsZWN0RG9jdW1lbnRSZXNvdXJjZXNU
aW1lckZpcmVkKQogICAgICwgbV9hdXRvTG9hZEltYWdlcyh0cnVlKQpAQCAtMTIyLDYgKzEyNSw3
IEBACiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6fkNhY2hlZFJlc291cmNlTG9hZGVyKCkKIHsKICAg
ICBtX2RvY3VtZW50ID0gMDsKKyAgICBtX2RvY3VtZW50TG9hZGVyID0gMDsKIAogICAgIGNsZWFy
UHJlbG9hZHMoKTsKICAgICBEb2N1bWVudFJlc291cmNlTWFwOjppdGVyYXRvciBlbmQgPSBtX2Rv
Y3VtZW50UmVzb3VyY2VzLmVuZCgpOwpAQCAtMTQ2LDcgKzE1MCw3IEBACiAKIEZyYW1lKiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6ZnJhbWUoKSBjb25zdAogewotICAgIHJldHVybiBtX2RvY3VtZW50
ID8gbV9kb2N1bWVudC0+ZnJhbWUoKSA6IDA7CisgICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIg
PyBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDogMDsKIH0KIAogQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAtMjM5LDkgKzI0Myw5IEBACiB9CiAjZW5kaWYKIAotQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0UmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
YXdSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZShSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9u
cywgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Q2FjaGVkUmF3UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlJhd1Jl
c291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgb3B0aW9ucywgUmVzb3VyY2VMb2FkUHJpb3JpdHlV
bnJlc29sdmVkLCBmYWxzZSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRS
YXdSZXNvdXJjZSo+KHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBTdHJpbmcoKSwgb3B0
aW9ucywgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkLCBmYWxzZSkuZ2V0KCkpOwogfQog
CiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRS
ZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CkBAIC0yNzgsNiArMjgy
LDcgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJh
d1Jlc291cmNlOgorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZToKICNpZiBF
TkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0
Y2g6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgpAQCAtMjkwLDcg
KzI5NSw3IEBACiAKIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGZvclByZWxvYWQpCiB7
Ci0gICAgaWYgKCFkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNwbGF5KHVybCkp
IHsKKyAgICBpZiAoZG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+
Y2FuRGlzcGxheSh1cmwpKSB7CiAgICAgICAgIGlmICghZm9yUHJlbG9hZCkKICAgICAgICAgICAg
IEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoZG9jdW1lbnQoKS0+ZnJhbWUoKSwg
dXJsLnN0cmluZygpKTsKICAgICAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgVVJMIHdhcyBub3QgYWxsb3dlZCBieSBTZWN1cml0
eU9yaWdpbjo6Y2FuRGlzcGxheSIpOwpAQCAtMzAxLDYgKzMwNiw3IEBACiAgICAgLy8gdHlwZXMg
b2YgcmVzb3VyY2VzLCBsaWtlIEltYWdlcywgU2NyaXB0cywgYW5kIENTUywgY2FuIGJlIGxvYWRl
ZCBmcm9tCiAgICAgLy8gYW55IFVSTC4KICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2U6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6SW1h
Z2VSZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgogICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKQEAgLTM3NCw2ICszODAsNyBAQAogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jl
c291cmNlOgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OkxpbmtQcmVmZXRjaDoKQEAgLTUyNSw4ICs1MzIsMTEgQEAKICAgICAgICAgcmV0dXJuIFJl
bG9hZDsKICAgICB9CiAKKyAgICBpZiAoZXhpc3RpbmdSZXNvdXJjZS0+dHlwZSgpID09IENhY2hl
ZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCisgICAgICAgIHJldHVybiBSZWxvYWQ7CisKICAgICBp
ZiAoZXhpc3RpbmdSZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJj
ZSAmJiAhc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2UqPihleGlzdGluZ1Jlc291cmNlKS0+
Y2FuUmV1c2UocmVxdWVzdCkpCi0gICAgICAgICByZXR1cm4gUmVsb2FkOworICAgICAgICByZXR1
cm4gUmVsb2FkOwogCiAgICAgLy8gQ2VydGFpbiByZXF1ZXN0cyAoZS5nLiwgWEhScykgbWlnaHQg
aGF2ZSBtYW51YWxseSBzZXQgaGVhZGVycyB0aGF0IHJlcXVpcmUgcmV2YWxpZGF0aW9uLgogICAg
IC8vIEZJWE1FOiBJbiB0aGVvcnksIHRoaXMgc2hvdWxkIGJlIGEgUmV2YWxpZGF0ZSBjYXNlLiBJ
biBwcmFjdGljZSwgdGhlIE1lbW9yeUNhY2hlIHJldmFsaWRhdGlvbiBwYXRoIGFzc3VtZXMgYSB3
aG9sZSBidW5jaApAQCAtNTY0LDcgKzU3NCw3IEBACiAgICAgfQogCiAgICAgLy8gRHVyaW5nIHRo
ZSBpbml0aWFsIGxvYWQsIGF2b2lkIGxvYWRpbmcgdGhlIHNhbWUgcmVzb3VyY2UgbXVsdGlwbGUg
dGltZXMgZm9yIGEgc2luZ2xlIGRvY3VtZW50LCBldmVuIGlmIHRoZSBjYWNoZSBwb2xpY2llcyB3
b3VsZCB0ZWxsIHVzIHRvLgotICAgIGlmICghZG9jdW1lbnQoKS0+bG9hZEV2ZW50RmluaXNoZWQo
KSAmJiBtX3ZhbGlkYXRlZFVSTHMuY29udGFpbnMoZXhpc3RpbmdSZXNvdXJjZS0+dXJsKCkpKQor
ICAgIGlmIChkb2N1bWVudCgpICYmICFkb2N1bWVudCgpLT5sb2FkRXZlbnRGaW5pc2hlZCgpICYm
IG1fdmFsaWRhdGVkVVJMcy5jb250YWlucyhleGlzdGluZ1Jlc291cmNlLT51cmwoKSkpCiAgICAg
ICAgIHJldHVybiBVc2U7CiAKICAgICAvLyBDYWNoZVBvbGljeVJlbG9hZCBhbHdheXMgcmVsb2Fk
cwpAQCAtNjEwLDcgKzYyMCw3IEBACiAgICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyBtZXNz
YWdlOwotICAgIGlmIChtX2RvY3VtZW50LT51cmwoKS5pc051bGwoKSkKKyAgICBpZiAoIW1fZG9j
dW1lbnQgfHwgbV9kb2N1bWVudC0+dXJsKCkuaXNOdWxsKCkpCiAgICAgICAgIG1lc3NhZ2UgPSAi
VW5zYWZlIGF0dGVtcHQgdG8gbG9hZCBVUkwgIiArIHVybC5zdHJpbmcoKSArICcuJzsKICAgICBl
bHNlCiAgICAgICAgIG1lc3NhZ2UgPSAiVW5zYWZlIGF0dGVtcHQgdG8gbG9hZCBVUkwgIiArIHVy
bC5zdHJpbmcoKSArICIgZnJvbSBmcmFtZSB3aXRoIFVSTCAiICsgbV9kb2N1bWVudC0+dXJsKCku
c3RyaW5nKCkgKyAiLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guXG4i
OwpAQCAtNjU4LDcgKzY2OCw4IEBACiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWRE
b25lKCkKIHsKLSAgICBSZWZQdHI8RG9jdW1lbnQ+IHByb3RlY3QobV9kb2N1bWVudCk7CisgICAg
UmVmUHRyPERvY3VtZW50PiBwcm90ZWN0RG9jdW1lbnQobV9kb2N1bWVudCk7CisgICAgUmVmUHRy
PERvY3VtZW50TG9hZGVyPiBwcm90ZWN0RG9jdW1lbnRMb2FkZXIobV9kb2N1bWVudExvYWRlcik7
CiAgICAgaWYgKGZyYW1lKCkpCiAgICAgICAgIGZyYW1lKCktPmxvYWRlcigpLT5sb2FkRG9uZSgp
OwogICAgIHBlcmZvcm1Qb3N0TG9hZEFjdGlvbnMoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAxMTcz
NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtNDksMTggKzQ5LDE5IEBACiBjbGFzcyBDYWNoZWRUZXh0VHJh
Y2s7CiBjbGFzcyBDYWNoZWRYU0xTdHlsZVNoZWV0OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBE
b2N1bWVudExvYWRlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSW1hZ2VMb2FkZXI7CiBjbGFzcyBL
VVJMOwogCiAvLyBUaGUgQ2FjaGVkUmVzb3VyY2VMb2FkZXIgbWFuYWdlcyB0aGUgbG9hZGluZyBv
ZiBzY3JpcHRzL2ltYWdlcy9zdHlsZXNoZWV0cyBmb3IgYSBzaW5nbGUgZG9jdW1lbnQuCi1jbGFz
cyBDYWNoZWRSZXNvdXJjZUxvYWRlciB7CitjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlciA6IHB1
YmxpYyBSZWZDb3VudGVkPENhY2hlZFJlc291cmNlTG9hZGVyPiB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoQ2FjaGVkUmVzb3VyY2VMb2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IGZyaWVuZCBjbGFzcyBJbWFnZUxvYWRlcjsKIGZyaWVuZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFs
aWRhdGlvblN1cHByZXNzb3I7CiAKIHB1YmxpYzoKLSAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcihE
b2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBj
cmVhdGUoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQogICAgIH5DYWNoZWRS
ZXNvdXJjZUxvYWRlcigpOwogCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+
IHJlcXVlc3RJbWFnZShSZXNvdXJjZVJlcXVlc3QmKTsKQEAgLTY4LDcgKzY5LDcgQEAKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0VXNlckNTU1N0
eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3JpcHQoUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOworICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiByZXF1ZXN0UmF3UmVzb3VyY2UoUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ2FjaGVkUmVzb3VyY2U6
OlR5cGUgPSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2UpOwogCiAjaWYgRU5BQkxFKFNWRykK
ICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVzdFNWR0Rv
Y3VtZW50KFJlc291cmNlUmVxdWVzdCYpOwpAQCAtMTAxLDcgKzEwMiw5IEBACiAgICAgQ2FjaGVQ
b2xpY3kgY2FjaGVQb2xpY3koKSBjb25zdDsKICAgICAKICAgICBGcmFtZSogZnJhbWUoKSBjb25z
dDsgLy8gQ2FuIGJlIE5VTEwKKyAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkgeyBtX2RvY3VtZW50ID0gZG9jdW1lbnQ7IH0KICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBj
b25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9CisgICAgdm9pZCBjbGVhckRvY3VtZW50TG9hZGVy
KCkgeyBtX2RvY3VtZW50TG9hZGVyID0gMDsgfQogCiAgICAgdm9pZCByZW1vdmVDYWNoZWRSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZSopIGNvbnN0OwogICAgIHZvaWQgbG9hZERvbmUoKTsKQEAgLTEx
OSw2ICsxMjIsNyBAQAogICAgIGJvb2wgY2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSwg
Y29uc3QgS1VSTCYsIGJvb2wgZm9yUHJlbG9hZCA9IGZhbHNlKTsKICAgICAKIHByaXZhdGU6Cisg
ICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqKTsKICAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IFJl
c291cmNlTG9hZGVyT3B0aW9ucyYsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2Fk
UHJpb3JpdHlVbnJlc29sdmVkLCBib29sIGlzUHJlbG9hZCA9IGZhbHNlKTsKICAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmV2YWxpZGF0ZVJlc291cmNlKENhY2hlZFJl
c291cmNlKiwgUmVzb3VyY2VMb2FkUHJpb3JpdHksIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBsb2FkUmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
Y2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHksIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYpOwpAQCAtMTM2LDYgKzE0MCw3IEBACiAgICAgSGFzaFNldDxTdHJpbmc+IG1fdmFsaWRhdGVk
VVJMczsKICAgICBtdXRhYmxlIERvY3VtZW50UmVzb3VyY2VNYXAgbV9kb2N1bWVudFJlc291cmNl
czsKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKKyAgICBEb2N1bWVudExvYWRlciogbV9kb2N1
bWVudExvYWRlcjsKICAgICAKICAgICBpbnQgbV9yZXF1ZXN0Q291bnQ7CiAgICAgCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAJKHJldmlz
aW9uIDExNzM0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDggQEAKIHN0YXRpYyBSZXNvdXJjZUxv
YWRQcmlvcml0eSBkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6TWFpblJlc291cmNlOgorICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFBy
aW9yaXR5VmVyeUhpZ2g7CiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hl
ZXQ6CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlhTTFN0
eWxlU2hlZXQ6CkBAIC05Myw2ICs5NSw4IEBACiBzdGF0aWMgUmVzb3VyY2VSZXF1ZXN0OjpUYXJn
ZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRSZXNvdXJjZTo6VHlw
ZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6
Ok1haW5SZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNN
YWluRnJhbWU7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKICNpZiBF
TkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgpAQCAt
MjIxLDcgKzIyNSw3IEBACiAjZW5kaWYKICAgICBtX3Jlc291cmNlUmVxdWVzdC5zZXRQcmlvcml0
eShsb2FkUHJpb3JpdHkoKSk7CiAgICAgCi0gICAgbV9sb2FkZXIgPSByZXNvdXJjZUxvYWRTY2hl
ZHVsZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRv
Y3VtZW50KCktPmZyYW1lKCksIHRoaXMsIG1fcmVzb3VyY2VSZXF1ZXN0LCBtX3Jlc291cmNlUmVx
dWVzdC5wcmlvcml0eSgpLCBvcHRpb25zKTsKKyAgICBtX2xvYWRlciA9IHJlc291cmNlTG9hZFNj
aGVkdWxlcigpLT5zY2hlZHVsZVN1YnJlc291cmNlTG9hZChjYWNoZWRSZXNvdXJjZUxvYWRlci0+
ZnJhbWUoKSwgdGhpcywgbV9yZXNvdXJjZVJlcXVlc3QsIG1fcmVzb3VyY2VSZXF1ZXN0LnByaW9y
aXR5KCksIG9wdGlvbnMpOwogICAgIGlmICghbV9sb2FkZXIpIHsKICAgICAgICAgLy8gRklYTUU6
IFdoYXQgaWYgcmVzb3VyY2VzIGluIG90aGVyIGZyYW1lcyB3ZXJlIHdhaXRpbmcgZm9yIHRoaXMg
cmV2YWxpZGF0aW9uPwogICAgICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2Fubm90IHN0YXJ0
IGxvYWRpbmcgJyVzJyIsIHVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7CkBAIC0zMTcs
NiArMzIxLDE0IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgQ2FjaGVkUmVzb3VyY2U6Ondp
bGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKQoreworICAgIG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllciA9IHRydWU7Cisg
ICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSB1cmwsIE1lbW9yeUNhY2hlIHdpbGwgZ2V0IGNvbmZ1c2Vk
LgorICAgIGlmIChtX3Jlc291cmNlUmVxdWVzdC51cmwoKSA9PSByZXF1ZXN0LnVybCgpKQorICAg
ICAgICBtX3Jlc291cmNlUmVxdWVzdCA9IHJlcXVlc3Q7Cit9CisKIHZvaWQgQ2FjaGVkUmVzb3Vy
Y2U6OnNldFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAg
IG1fcmVzcG9uc2UgPSByZXNwb25zZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5oCShyZXZpc2lvbiAxMTczNDQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiAr
NjEsNyBAQAogICAgIAogcHVibGljOgogICAgIGVudW0gVHlwZSB7CisgICAgICAgIE1haW5SZXNv
dXJjZSwKICAgICAgICAgSW1hZ2VSZXNvdXJjZSwKICAgICAgICAgQ1NTU3R5bGVTaGVldCwKICAg
ICAgICAgU2NyaXB0LApAQCAtMTAzLDYgKzEwNCw5IEBACiAgICAgdmlydHVhbCB2b2lkIGRhdGEo
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OlN0YXR1cyk7CiAKKyAgICB2b2lk
IHNldFJlc291cmNlRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIHsgbV9lcnJvciA9
IGVycm9yOyB9CisgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcigpIGNvbnN0
IHsgcmV0dXJuIG1fZXJyb3I7IH0KKwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVIVFRQ
U3RhdHVzQ29kZUVycm9ycygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9
CkBAIC0xNDYsNyArMTUwLDcgQEAKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpZ25vcmVGb3JSZXF1ZXN0Q291bnQoKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiB0eXBlKCkgPT0gTWFp
blJlc291cmNlCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgICAgICAgICB8fCB0eXBl
KCkgPT0gTGlua1ByZWZldGNoCiAgICAgICAgICAgICB8fCB0eXBlKCkgPT0gTGlua1N1YnJlc291
cmNlCkBAIC0xNzcsNyArMTgxLDcgQEAKIAogICAgIFNoYXJlZEJ1ZmZlciogZGF0YSgpIGNvbnN0
IHsgQVNTRVJUKCFtX3B1cmdlYWJsZURhdGEpOyByZXR1cm4gbV9kYXRhLmdldCgpOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKSB7IG1fcmVxdWVzdGVkRnJvbU5ldHdvcmtpbmdMYXllciA9IHRydWU7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQogCkBAIC0yOTQsNiArMjk4LDggQEAK
IAogICAgIFJlZlB0cjxDYWNoZWRNZXRhZGF0YT4gbV9jYWNoZWRNZXRhZGF0YTsKIAorICAgIFJl
c291cmNlRXJyb3IgbV9lcnJvcjsKKwogICAgIGRvdWJsZSBtX2xhc3REZWNvZGVkQWNjZXNzVGlt
ZTsgLy8gVXNlZCBhcyBhICJ0aHJhc2ggZ3VhcmQiIGluIHRoZSBjYWNoZQogICAgIGRvdWJsZSBt
X2xvYWRGaW5pc2hUaW1lOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmF3UmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAJKHJldmlzaW9uIDExNzM0NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdSZXNv
dXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qp
Ci0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIFJhd1Jlc291cmNlKQorQ2Fj
aGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0LCBUeXBlIHR5cGUpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVl
c3QsIHR5cGUpCiAgICAgLCBtX2lkZW50aWZpZXIoMCkKIHsKIH0KQEAgLTQ0LDIwICs0NCwxNiBA
QAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
ZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiB7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmF3UmVzb3VyY2U+IHByb3RlY3QodGhpcyk7CisgICAgY29uc3QgY2hhciogaW5jcmVt
ZW50YWxEYXRhID0gMDsKKyAgICBzaXplX3QgaW5jcmVtZW50YWxEYXRhTGVuZ3RoID0gMDsKICAg
ICBpZiAoZGF0YSkgewogICAgICAgICAvLyBJZiB3ZSBhcmUgYnVmZmVyaW5nIGRhdGEsIHRoZW4g
d2UgYXJlIHNhdmluZyB0aGUgYnVmZmVyIGluIG1fZGF0YSBhbmQgbmVlZCB0byBtYW51YWxseQog
ICAgICAgICAvLyBjYWxjdWxhdGUgdGhlIGluY3JlbWVudGFsIGRhdGEuIElmIHdlIGFyZSBub3Qg
YnVmZmVyaW5nLCB0aGVuIG1fZGF0YSB3aWxsIGJlIG51bGwgYW5kCiAgICAgICAgIC8vIHRoZSBi
dWZmZXIgY29udGFpbnMgb25seSB0aGUgaW5jcmVtZW50YWwgZGF0YS4KICAgICAgICAgc2l6ZV90
IHByZXZpb3VzRGF0YUxlbmd0aCA9IChtX29wdGlvbnMuc2hvdWxkQnVmZmVyRGF0YSA9PSBCdWZm
ZXJEYXRhKSA/IGVuY29kZWRTaXplKCkgOiAwOwogICAgICAgICBBU1NFUlQoZGF0YS0+c2l6ZSgp
ID49IHByZXZpb3VzRGF0YUxlbmd0aCk7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGluY3JlbWVudGFs
RGF0YSA9IGRhdGEtPmRhdGEoKSArIHByZXZpb3VzRGF0YUxlbmd0aDsKLSAgICAgICAgc2l6ZV90
IGluY3JlbWVudGFsRGF0YUxlbmd0aCA9IGRhdGEtPnNpemUoKSAtIHByZXZpb3VzRGF0YUxlbmd0
aDsKLQotICAgICAgICBpZiAoaW5jcmVtZW50YWxEYXRhTGVuZ3RoKSB7Ci0gICAgICAgICAgICBD
YWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlcjxDYWNoZWRSYXdSZXNvdXJjZUNsaWVudD4gdyhtX2Ns
aWVudHMpOwotICAgICAgICAgICAgd2hpbGUgKENhY2hlZFJhd1Jlc291cmNlQ2xpZW50KiBjID0g
dy5uZXh0KCkpCi0gICAgICAgICAgICAgICAgYy0+ZGF0YVJlY2VpdmVkKHRoaXMsIGluY3JlbWVu
dGFsRGF0YSwgaW5jcmVtZW50YWxEYXRhTGVuZ3RoKTsKLSAgICAgICAgfQorICAgICAgICBpbmNy
ZW1lbnRhbERhdGEgPSBkYXRhLT5kYXRhKCkgKyBwcmV2aW91c0RhdGFMZW5ndGg7CisgICAgICAg
IGluY3JlbWVudGFsRGF0YUxlbmd0aCA9IGRhdGEtPnNpemUoKSAtIHByZXZpb3VzRGF0YUxlbmd0
aDsKICAgICB9CiAgICAgCiAgICAgaWYgKG1fb3B0aW9ucy5zaG91bGRCdWZmZXJEYXRhID09IEJ1
ZmZlckRhdGEpIHsKQEAgLTY1LDYgKzYxLDEyIEBACiAgICAgICAgICAgICBzZXRFbmNvZGVkU2l6
ZShkYXRhLT5zaXplKCkpOwogICAgICAgICBtX2RhdGEgPSBkYXRhOwogICAgIH0KKworICAgIGlm
IChpbmNyZW1lbnRhbERhdGFMZW5ndGgpIHsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRX
YWxrZXI8Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQ+IHcobV9jbGllbnRzKTsKKyAgICAgICAgd2hp
bGUgKENhY2hlZFJhd1Jlc291cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkpCisgICAgICAgICAgICBj
LT5kYXRhUmVjZWl2ZWQodGhpcywgaW5jcmVtZW50YWxEYXRhLCBpbmNyZW1lbnRhbERhdGFMZW5n
dGgpOworICAgIH0KICAgICBDYWNoZWRSZXNvdXJjZTo6ZGF0YShtX2RhdGEsIGFsbERhdGFSZWNl
aXZlZCk7CiB9CiAKQEAgLTEyNiw2ICsxMjgsMTEgQEAKICAgICAgICAgbV9sb2FkZXItPnNldERl
ZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAordm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6c2V0U2hv
dWxkQnVmZmVyRGF0YShEYXRhQnVmZmVyaW5nUG9saWN5IHNob3VsZEJ1ZmZlckRhdGEpCit7Cisg
ICAgbV9vcHRpb25zLnNob3VsZEJ1ZmZlckRhdGEgPSBzaG91bGRCdWZmZXJEYXRhOworfQorCiBi
b29sIENhY2hlZFJhd1Jlc291cmNlOjpjYW5SZXVzZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG5l
d1JlcXVlc3QpIGNvbnN0CiB7CiAgICAgaWYgKG1fb3B0aW9ucy5zaG91bGRCdWZmZXJEYXRhID09
IERvTm90QnVmZmVyRGF0YSkKQEAgLTE1OSw0ICsxNjYsMTcgQEAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorU3VicmVzb3VyY2VMb2FkZXIqIENhY2hlZFJhd1Jlc291cmNlOjpsb2FkZXIoKSBjb25z
dAoreworICAgIHJldHVybiBtX2xvYWRlci5nZXQoKTsKK30KKwordm9pZCBDYWNoZWRSYXdSZXNv
dXJjZTo6Y2xlYXIoKQoreworICAgIG1fZGF0YS5jbGVhcigpOworICAgIHNldEVuY29kZWRTaXpl
KDApOworICAgIGlmIChtX2xvYWRlcikKKyAgICAgICAgbV9sb2FkZXItPmNsZWFyUmVzb3VyY2VE
YXRhKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDExNzM0NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MjksNiArMjksOCBAQAogI2lmbmRlZiBNYWluUmVzb3VyY2VMb2FkZXJfaAogI2RlZmluZSBNYWlu
UmVzb3VyY2VMb2FkZXJfaAogCisjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgiCkBAIC00OSwyMiAr
NTEsMjAgQEAKICAgICBjbGFzcyBGb3JtU3RhdGU7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0
OwogCi0gICAgY2xhc3MgTWFpblJlc291cmNlTG9hZGVyIDogcHVibGljIFJlc291cmNlTG9hZGVy
IHsKKyAgICBjbGFzcyBNYWluUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNYWlu
UmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgeworICAgICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gY3JlYXRlKEZyYW1lKik7CiAgICAgICAgIHZp
cnR1YWwgfk1haW5SZXNvdXJjZUxvYWRlcigpOwogCiAgICAgICAgIHZvaWQgbG9hZChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiwgaW50LCBib29sIGFsbEF0T25jZSk7CisgICAgICAg
IHZvaWQgY2FuY2VsKCk7CisgICAgICAgIHZvaWQgY2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3Im
KTsKKyAgICAgICAgUmVzb3VyY2VMb2FkZXIqIGxvYWRlcigpIGNvbnN0OworICAgICAgICBTaGFy
ZWRCdWZmZXIqIHJlc291cmNlRGF0YSgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXREZWZl
cnNMb2FkaW5nKGJvb2wpOworICAgICAgICB2b2lkIHNldFNob3VsZEJ1ZmZlckRhdGEoRGF0YUJ1
ZmZlcmluZ1BvbGljeSk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBj
aGFyKiwgaW50LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUp
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJik7Ci0K
ICNpZiBIQVZFKFJVTkxPT1BfVElNRVIpCiAgICAgICAgIHR5cGVkZWYgUnVuTG9vcFRpbWVyPE1h
aW5SZXNvdXJjZUxvYWRlcj4gTWFpblJlc291cmNlTG9hZGVyVGltZXI7CiAjZWxzZQpAQCAtNzgs
MTEgKzc4LDE0IEBACiAgICAgcHJpdmF0ZToKICAgICAgICAgTWFpblJlc291cmNlTG9hZGVyKEZy
YW1lKik7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VF
cnJvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJy
b3ImKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3Vy
Y2UqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgICAg
IHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hl
ZFJlc291cmNlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOworICAgICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKKyAgICAgICAgCisg
ICAgICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOworICAgICAgICB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpOwogCi0gICAgICAgIGJvb2wgbG9hZE5vdyhSZXNvdXJj
ZVJlcXVlc3QmKTsKLQogICAgICAgICB2b2lkIGhhbmRsZUVtcHR5TG9hZChjb25zdCBLVVJMJiwg
Ym9vbCBmb3JVUkxTY2hlbWUpOwogICAgICAgICB2b2lkIGhhbmRsZURhdGFMb2FkU29vbihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHIpOwogCkBAIC0xMDQsMTYgKzEwNywzMyBAQAogI2lmIFBMQVRG
T1JNKFFUKQogICAgICAgICB2b2lkIHN1YnN0aXR1dGVNSU1FVHlwZUZyb21QbHVnaW5EYXRhYmFz
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAjZW5kaWYKKyAgICAgICAgRnJhbWVMb2FkZXIq
IGZyYW1lTG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCk7IH0KKyAgICAg
ICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1
bWVudExvYWRlci5nZXQoKTsgfQogCisgICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCgpIGNvbnN0OworICAgICAgICB2b2lkIGNsZWFyUmVzb3VyY2UoKTsKKworICAgICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNvdXJjZTsKKwogICAg
ICAgICBSZXNvdXJjZVJlcXVlc3QgbV9pbml0aWFsUmVxdWVzdDsKICAgICAgICAgU3Vic3RpdHV0
ZURhdGEgbV9zdWJzdGl0dXRlRGF0YTsKKyAgICAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3Bv
bnNlOwogCiAgICAgICAgIE1haW5SZXNvdXJjZUxvYWRlclRpbWVyIG1fZGF0YUxvYWRUaW1lcjsK
KyAgICAgICAgUmVmUHRyPEZyYW1lPiBtX2ZyYW1lOworICAgICAgICBSZWZQdHI8RG9jdW1lbnRM
b2FkZXI+IG1fZG9jdW1lbnRMb2FkZXI7CiAKICAgICAgICAgYm9vbCBtX2xvYWRpbmdNdWx0aXBh
cnRDb250ZW50OwogICAgICAgICBib29sIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3k7CiAgICAg
ICAgIGRvdWJsZSBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQ7CiAKKyAgICAgICAgZW51bSBNYWlu
UmVzb3VyY2VMb2FkZXJTdGF0ZSB7CisgICAgICAgICAgICBMb2FkaW5nLAorICAgICAgICAgICAg
RmluaXNoaW5nLAorICAgICAgICAgICAgQ29tcGxldGUKKyAgICAgICAgfTsKKyAgICAgICAgTWFp
blJlc291cmNlTG9hZGVyU3RhdGUgbV9zdGF0ZTsKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
SU9OKSAmJiAhUExBVEZPUk0oSU9TKQogICAgICAgICBXZWJGaWx0ZXJFdmFsdWF0b3IgKm1fZmls
dGVyOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAko
cmV2aXNpb24gMTE3MzQ0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpZm5kZWYgRG9jdW1lbnRMb2Fk
ZXJfaAogI2RlZmluZSBEb2N1bWVudExvYWRlcl9oCiAKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZFRpbWluZy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50V3JpdGVyLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlQmFzZS5oIgpAQCAtOTEsNiAr
OTIsOCBAQAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKTsKICAgICAgICAgdm9p
ZCBzZXRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogCisgICAgICAgIENhY2hlZFJl
c291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY2Fj
aGVkUmVzb3VyY2VMb2FkZXIuZ2V0KCk7IH0KKwogICAgICAgICBjb25zdCBTdWJzdGl0dXRlRGF0
YSYgc3Vic3RpdHV0ZURhdGEoKSBjb25zdCB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CiAK
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgdGhlIHNhbWUgYXMgcmVxdWVzdFVSTCgpLiBXZSBz
aG91bGQgcmVtb3ZlIG9uZSBvZiB0aGVtLgpAQCAtMjY1LDYgKzI2OCw3IEBACiAgICAgICAgIHZv
aWQgc3Vic3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50TG9h
ZGVyPiopOwogICAgICAgICAgICAgICAgIAogICAgICAgICBGcmFtZSogbV9mcmFtZTsKKyAgICAg
ICAgUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBtX2NhY2hlZFJlc291cmNlTG9hZGVyOwog
CiAgICAgICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IG1fbWFpblJlc291cmNlTG9hZGVy
OwogICAgICAgICBSZXNvdXJjZUxvYWRlclNldCBtX3N1YnJlc291cmNlTG9hZGVyczsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVIb3N0LmNwcAkocmV2aXNpb24gMTE3MzQ0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAz
LDcgKzEwMyw3IEBACiAgICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsK
ICAgICAgICAgICAgIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZSA9IEFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5SZXF1ZXN0KHJlcXVlc3QsIGRvY3VtZW50
TG9hZGVyKCkpOwogCi0gICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJj
ZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRl
cigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQorICAgICAgICAgICAg
aWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1
bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVyKCksIG1fbWFpblJlc291
cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTcsNyArMTE3LDcgQEAKICAgICAgICAgaWYgKGlzQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoKSkgewogICAgICAgICAgICAgbV9tYWluUmVzb3VyY2VBcHBs
aWNhdGlvbkNhY2hlID0gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9yTWFp
blJlcXVlc3QocmVxdWVzdCwgbV9kb2N1bWVudExvYWRlcik7CiAKLSAgICAgICAgICAgIGlmIChz
Y2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRM
b2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25D
YWNoZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJj
ZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRl
cigpLT5sb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMTcz
NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5Lmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAKICNpZiBQTEFURk9STShRVCkKQEAgLTcxLDExICs3MiwxMyBAQAogfQogCiBNYWluUmVzb3Vy
Y2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUpCi0gICAgOiBSZXNvdXJj
ZUxvYWRlcihmcmFtZSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZm
Q29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9y
Q3Jvc3NPcmlnaW5DcmVkZW50aWFscywgU2tpcFNlY3VyaXR5Q2hlY2spKQotICAgICwgbV9kYXRh
TG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZURhdGFMb2FkTm93KQor
ICAgIDogbV9kYXRhTG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZURh
dGFMb2FkTm93KQorICAgICwgbV9mcmFtZShmcmFtZSkKKyAgICAsIG1fZG9jdW1lbnRMb2FkZXIo
ZnJhbWUtPmxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKQogICAgICwgbV9sb2FkaW5n
TXVsdGlwYXJ0Q29udGVudChmYWxzZSkKICAgICAsIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3ko
ZmFsc2UpCiAgICAgLCBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQoMC4wKQorICAgICwgbV9zdGF0
ZShMb2FkaW5nKQogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKSAmJiAhUExBVEZPUk0oSU9T
KQogICAgICwgbV9maWx0ZXIoMCkKICNlbmRpZgpAQCAtMTA1LDM1ICsxMDgsMzkgQEAKICAgICAv
LyBkb2N1bWVudCBsb2FkZXJzLiBBbHNvLCBtYWluUmVjZWl2ZWRFcnJvciBlbmRzIHVwIGNhbGxp
bmcgYSBGcmFtZUxvYWREZWxlZ2F0ZSBtZXRob2QKICAgICAvLyBhbmQgZGlkRmFpbFRvTG9hZCBj
YWxscyBhIFJlc291cmNlTG9hZERlbGVnYXRlIG1ldGhvZCBhbmQgdGhleSBuZWVkIHRvIGJlIGlu
IHRoZSBjb3JyZWN0IG9yZGVyLgogICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNlaXZlZEVy
cm9yKGVycm9yKTsKK30KIAotICAgIGlmICghY2FuY2VsbGVkKCkpIHsKLSAgICAgICAgQVNTRVJU
KCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZp
ZXIoKS0+ZGlkRmFpbFRvTG9hZCh0aGlzLCBlcnJvcik7Ci0gICAgICAgIAotICAgICAgICByZWxl
YXNlUmVzb3VyY2VzKCk7Ci0gICAgfQotCi0gICAgQVNTRVJUKHJlYWNoZWRUZXJtaW5hbFN0YXRl
KCkpOwordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbCgpCit7CisgICAgY2FuY2VsKFJl
c291cmNlRXJyb3IoKSk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsQ2FuY2Vs
KGNvbnN0IFJlc291cmNlRXJyb3ImKQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbChj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKKyAgICBSZWZQdHI8TWFpblJlc291cmNlTG9h
ZGVyPiBwcm90ZWN0KHRoaXMpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvciA9IGVy
cm9yLmlzTnVsbCgpID8gZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCgpKSA6
IGVycm9yOworICAgIG1fc3RhdGUgPSBGaW5pc2hpbmc7CisKICAgICBtX2RhdGFMb2FkVGltZXIu
c3RvcCgpOwogCiAgICAgaWYgKG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kpIHsKICAgICAgICAg
ZnJhbWVMb2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLT5jYW5jZWxDaGVjaygpOwogICAgICAgICBB
U1NFUlQobV93YWl0aW5nRm9yQ29udGVudFBvbGljeSk7CiAgICAgICAgIG1fd2FpdGluZ0ZvckNv
bnRlbnRQb2xpY3kgPSBmYWxzZTsKLSAgICAgICAgZGVyZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGlu
IGRpZFJlY2VpdmVSZXNwb25zZQorICAgICAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4g
cmVzcG9uc2VSZWNlaXZlZAogICAgIH0KLX0KKyAgICBpZiAobG9hZGVyKCkpIHsKKyAgICAgICAg
ZG9jdW1lbnRMb2FkZXIoKS0+cmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIobG9hZGVyKCkpOworICAg
ICAgICBsb2FkZXIoKS0+Y2FuY2VsKHJlc291cmNlRXJyb3IpOworICAgIH0KIAotdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OmRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsK
LSAgICAvLyBXZSBzaG91bGQgbm90aWZ5IHRoZSBmcmFtZSBsb2FkZXIgYWZ0ZXIgZnVsbHkgY2Fu
Y2VsaW5nIHRoZSBsb2FkLCBiZWNhdXNlIGl0IGNhbiBkbyBjb21wbGljYXRlZCB3b3JrCi0gICAg
Ly8gbGlrZSBjYWxsaW5nIERPTVdpbmRvdzo6cHJpbnQoKSwgZHVyaW5nIHdoaWNoIGEgaGFsZi1j
YW5jZWxlZCBsb2FkIGNvdWxkIHRyeSB0byBmaW5pc2guCi0gICAgZG9jdW1lbnRMb2FkZXIoKS0+
bWFpblJlY2VpdmVkRXJyb3IoZXJyb3IpOworICAgIGlmIChtX3N0YXRlID09IENvbXBsZXRlKQor
ICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZSA9IENvbXBsZXRlOwogCisgICAgZG9jdW1lbnRM
b2FkZXIoKS0+bWFpblJlY2VpdmVkRXJyb3IocmVzb3VyY2VFcnJvcik7CisgICAgY2xlYXJSZXNv
dXJjZSgpOworCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1Mp
CiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIHdrRmlsdGVyUmVsZWFzZShtX2ZpbHRlcik7
CkBAIC0xNDIsNiArMTQ5LDE5IEBACiAjZW5kaWYKIH0KIAordm9pZCBNYWluUmVzb3VyY2VMb2Fk
ZXI6OmNsZWFyUmVzb3VyY2UoKQoreworICAgIGlmIChtX3Jlc291cmNlKSB7CisgICAgICAgIG1f
cmVzb3VyY2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9yZXNvdXJjZSA9IDA7Cisg
ICAgfQorfQorCitjb25zdCBSZXNvdXJjZVJlcXVlc3QmIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVzb3VyY2UgPyBtX3Jlc291cmNlLT5yZXNv
dXJjZVJlcXVlc3QoKSA6IG1faW5pdGlhbFJlcXVlc3Q7Cit9CisKIFJlc291cmNlRXJyb3IgTWFp
blJlc291cmNlTG9hZGVyOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKCkgY29uc3QK
IHsKICAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmludGVycnVwdGVkRm9yUG9s
aWN5Q2hhbmdlRXJyb3IocmVxdWVzdCgpKTsKQEAgLTE2Niw3ICsxODYsNyBAQAogICAgIGVsc2Ug
aWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAgICAgIC8vIEEgcmVkaXJlY3Qg
cmVzdWx0ZWQgaW4gbG9hZGluZyBzdWJzdGl0dXRlIGRhdGEuCiAgICAgICAgIEFTU0VSVChkb2N1
bWVudExvYWRlcigpLT50aW1pbmcoKS0+cmVkaXJlY3RDb3VudCgpKTsKLSAgICAgICAgaGFuZGxl
KCktPmNhbmNlbCgpOworICAgICAgICBjbGVhclJlc291cmNlKCk7CiAgICAgICAgIGhhbmRsZURh
dGFMb2FkU29vbihyZXF1ZXN0KTsKICAgICB9CiAKQEAgLTE4NiwxMiArMjA2LDE3IEBACiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShjb25z
dCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK1NoYXJlZEJ1ZmZlciog
TWFpblJlc291cmNlTG9hZGVyOjpyZXNvdXJjZURhdGEoKQogewotICAgIFJlc291cmNlTG9hZGVy
OjphZGREYXRhKGRhdGEsIGxlbmd0aCwgYWxsQXRPbmNlKTsKLSAgICBkb2N1bWVudExvYWRlcigp
LT5yZWNlaXZlZERhdGEoZGF0YSwgbGVuZ3RoKTsKKyAgICByZXR1cm4gbV9yZXNvdXJjZSA/IHN0
YXRpY19jYXN0PENhY2hlZFJlc291cmNlKj4obV9yZXNvdXJjZS5nZXQoKSktPmRhdGEoKSA6IDA7
CiB9CiAKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQoreworICAgIEFTU0VSVF9VTlVTRUQocmVzb3Vy
Y2UsIHJlc291cmNlID09IG1fcmVzb3VyY2UpOworICAgIHdpbGxTZW5kUmVxdWVzdChyZXF1ZXN0
LCByZWRpcmVjdFJlc3BvbnNlKTsKK30KKwogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxT
ZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgLy8gTm90ZSB0aGF0IHRoZXJlIGFyZSBu
byBhc3NlcnRzIGhlcmUgYXMgdGhlcmUgYXJlIGZvciB0aGUgb3RoZXIgY2FsbGJhY2tzLiBUaGlz
IGlzIGR1ZSB0byB0aGUKQEAgLTIxNywxMSArMjQyLDYgQEAKICAgICAgICAgZG9jdW1lbnRMb2Fk
ZXIoKS0+dGltaW5nKCktPmFkZFJlZGlyZWN0KHJlZGlyZWN0UmVzcG9uc2UudXJsKCksIG5ld1Jl
cXVlc3QudXJsKCkpOwogICAgIH0KIAotICAgIC8vIFVwZGF0ZSBjb29raWUgcG9saWN5IGJhc2Ug
VVJMIGFzIFVSTCBjaGFuZ2VzLCBleGNlcHQgZm9yIHN1YmZyYW1lcywgd2hpY2ggdXNlIHRoZQot
ICAgIC8vIFVSTCBvZiB0aGUgbWFpbiBmcmFtZSB3aGljaCBkb2Vzbid0IGNoYW5nZSB3aGVuIHdl
IHJlZGlyZWN0LgotICAgIGlmIChmcmFtZUxvYWRlcigpLT5pc0xvYWRpbmdNYWluRnJhbWUoKSkK
LSAgICAgICAgbmV3UmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhuZXdSZXF1ZXN0LnVy
bCgpKTsKLQogICAgIC8vIElmIHdlJ3JlIGZpZWxkaW5nIGEgcmVkaXJlY3QgaW4gcmVzcG9uc2Ug
dG8gYSBQT1NULCBmb3JjZSBhIGxvYWQgZnJvbSBvcmlnaW4sIHNpbmNlCiAgICAgLy8gdGhpcyBp
cyBhIGNvbW1vbiBzaXRlIHRlY2huaXF1ZSB0byByZXR1cm4gdG8gYSBwYWdlIHZpZXdpbmcgc29t
ZSBkYXRhIHRoYXQgdGhlIFBPU1QKICAgICAvLyBqdXN0IG1vZGlmaWVkLgpAQCAtMjM3LDEwICsy
NTcsOSBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKLQogICAgIC8vIERvbid0IHNl
dCB0aGlzIG9uIHRoZSBmaXJzdCByZXF1ZXN0LiBJdCBpcyBzZXQgd2hlbiB0aGUgbWFpbiBsb2Fk
IHdhcyBzdGFydGVkLgotICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3UmVxdWVz
dCk7CisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKQorICAgICAgICBtX2RvY3Vt
ZW50TG9hZGVyLT5zZXRSZXF1ZXN0KG5ld1JlcXVlc3QpOwogCiAgICAgaWYgKCFyZWRpcmVjdFJl
c3BvbnNlLmlzTnVsbCgpKSB7CiAgICAgICAgIC8vIFdlIGNoZWNrZWQgYXBwbGljYXRpb24gY2Fj
aGUgZm9yIGluaXRpYWwgVVJMLCBub3cgd2UgbmVlZCB0byBjaGVjayBpdCBmb3IgcmVkaXJlY3Rl
ZCBvbmUuCkBAIC0yNzAsMjggKzI4OSwyNiBAQAogICAgICAgICAgICAgJiYgIW1fc3Vic3RpdHV0
ZURhdGEuaXNWYWxpZCgpICYmICF1cmwuaXNMb2NhbEZpbGUoKTsKICAgICAgICAgaWYgKCFmcmFt
ZUxvYWRlcigpLT5jbGllbnQoKS0+Y2FuU2hvd01JTUVUeXBlKG1pbWVUeXBlKSB8fCBpc1JlbW90
ZVdlYkFyY2hpdmUpIHsKICAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIo
KS0+Y2Fubm90U2hvd01JTUVUeXBlKHIpOwotICAgICAgICAgICAgLy8gQ2hlY2sgcmVhY2hlZFRl
cm1pbmFsU3RhdGUgc2luY2UgdGhlIGxvYWQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNhbmNlbGxl
ZCBpbnNpZGUgb2YgX2hhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeVdpdGhFcnJvckNvZGU6Oi4K
LSAgICAgICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAgICAgICAg
ICBzdG9wTG9hZGluZ0ZvclBvbGljeUNoYW5nZSgpOworICAgICAgICAgICAgc3RvcExvYWRpbmdG
b3JQb2xpY3lDaGFuZ2UoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBjYXNlIFBvbGljeURvd25sb2FkOiB7Ci0gICAgICAgIC8v
IG1faGFuZGxlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBhIHN1YnN0aXR1dGUgcmVz
b3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KLSAgICAgICAgaWYgKCFtX2hhbmRsZSkgewot
ICAgICAgICAgICAgcmVjZWl2ZWRFcnJvcihjYW5ub3RTaG93VVJMRXJyb3IoKSk7CisgICAgICAg
IC8vIG1fcmVzb3VyY2UgY2FuIGJlIG51bGwsIGUuZy4gd2hlbiBsb2FkaW5nIGEgc3Vic3RpdHV0
ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLgorICAgICAgICBpZiAoIW1fcmVzb3Vy
Y2UpIHsKKyAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkt
PmNhbm5vdFNob3dVUkxFcnJvcihyZXF1ZXN0KCkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBv
bGljeURvd25sb2FkKG1fZnJhbWUuZ2V0KCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIo
KSwgcik7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRoUG9s
aWN5RG93bmxvYWQobV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNvdXJjZS0+
bG9hZGVyKCktPmlkZW50aWZpZXIoKSwgcik7CiAKICAgICAgICAgLy8gV2hlbiBzdGFydGluZyB0
aGUgcmVxdWVzdCwgd2UgZGlkbid0IGtub3cgdGhhdCBpdCB3b3VsZCByZXN1bHQgaW4gZG93bmxv
YWQgYW5kIG5vdCBuYXZpZ2F0aW9uLiBOb3cgd2Uga25vdyB0aGF0IG1haW4gZG9jdW1lbnQgVVJM
IGRpZG4ndCBjaGFuZ2UuCiAgICAgICAgIC8vIERvd25sb2FkIG1heSB1c2UgdGhpcyBrbm93bGVk
Z2UgZm9yIHB1cnBvc2VzIHVucmVsYXRlZCB0byBjb29raWVzLCBub3RhYmx5IGZvciBzZXR0aW5n
IGZpbGUgcXVhcmFudGluZSBkYXRhLgogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9
IHRoaXMtPnJlcXVlc3QoKTsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+c2V0T3JpZ2luYWxVUkxG
b3JEb3dubG9hZFJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xp
ZW50KCktPmRvd25sb2FkKG1faGFuZGxlLmdldCgpLCByZXF1ZXN0LCByKTsKKyAgICAgICAgZnJh
bWVMb2FkZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1fcmVzb3VyY2UtPmxvYWRlcigpLT5oYW5k
bGUoKSwgcmVxdWVzdCwgcik7CiAKICAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBnb25lIG1pc3Np
bmcKICAgICAgICAgaWYgKGZyYW1lTG9hZGVyKCkpCkBAIC0yOTksNyArMzE2LDcgQEAKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIFBvbGljeUlnbm9yZToKLSAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUobV9mcmFtZS5nZXQo
KSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKKyAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUobV9mcmFtZS5nZXQoKSwg
ZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNvdXJjZS0+bG9hZGVyKCktPmlkZW50aWZpZXIoKSwgcik7
CiAgICAgICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICAKQEAgLTMyMywxNCArMzQwLDEwIEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyB3
ZSBtYXkgaGF2ZSBjYW5jZWxsZWQgdGhpcyBsb2FkIGFzIHBhcnQgb2Ygc3dpdGNoaW5nIHRvIGZh
bGxiYWNrIGNvbnRlbnQKLSAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0gICAgICAg
IFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uocik7Ci0KLSAgICBpZiAoZnJhbWVM
b2FkZXIoKSAmJiAhZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+aXNTdG9w
cGluZygpKSB7CisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgJiYgIW1fZG9jdW1l
bnRMb2FkZXItPmlzU3RvcHBpbmcoKSkgewogICAgICAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5p
c1ZhbGlkKCkpIHsKICAgICAgICAgICAgIGlmIChtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+
c2l6ZSgpKQotICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVEYXRhKG1fc3Vic3RpdHV0ZURhdGEu
Y29udGVudCgpLT5kYXRhKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCksIG1f
c3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCksIHRydWUpOworICAgICAgICAgICAgICAg
IGRhdGFSZWNlaXZlZCgwLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+ZGF0YSgpLCBtX3N1
YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKTsKICAgICAgICAgICAgIGlmIChmcmFtZUxv
YWRlcigpICYmICFmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5pc1N0b3Bw
aW5nKCkpIAogICAgICAgICAgICAgICAgIGRpZEZpbmlzaExvYWRpbmcoMCk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoc2hvdWxkTG9hZEFzRW1wdHlEb2N1bWVudCh1cmwpIHx8IGZyYW1lTG9hZGVyKCkt
PmNsaWVudCgpLT5yZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSh1cmwucHJvdG9jb2wo
KSkpCkBAIC0zNDcsOSArMzYwLDkgQEAKIHsKICAgICBBU1NFUlQobV93YWl0aW5nRm9yQ29udGVu
dFBvbGljeSk7CiAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwotICAgIGlm
IChmcmFtZUxvYWRlcigpICYmICFmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigp
LT5pc1N0b3BwaW5nKCkpCisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgJiYgIW1f
ZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSkKICAgICAgICAgY29udGludWVBZnRlckNvbnRl
bnRQb2xpY3kocG9saWN5LCBtX3Jlc3BvbnNlKTsKLSAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyBy
ZWYgaW4gZGlkUmVjZWl2ZVJlc3BvbnNlCisgICAgZGVyZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGlu
IHJlc3BvbnNlUmVjZWl2ZWQKIH0KIAogI2lmIFBMQVRGT1JNKFFUKQpAQCAtMzc1LDggKzM4OCw5
IEBACiB9CiAjZW5kaWYKIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByKQogeworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIG1fcmVzb3VyY2Ug
PT0gcmVzb3VyY2UpOwogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hl
SG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZShyZXF1ZXN0KCksIHIpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTM4NCw3ICszOTgsNyBAQAogICAgIGlmIChpdCAhPSByLmh0
dHBIZWFkZXJGaWVsZHMoKS5lbmQoKSkgewogICAgICAgICBTdHJpbmcgY29udGVudCA9IGl0LT5z
ZWNvbmQ7CiAgICAgICAgIGlmIChtX2ZyYW1lLT5sb2FkZXIoKS0+c2hvdWxkSW50ZXJydXB0TG9h
ZEZvclhGcmFtZU9wdGlvbnMoY29udGVudCwgci51cmwoKSkpIHsKLSAgICAgICAgICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVBZnRlclhGcmFtZU9wdGlvbnNEZW5pZWQobV9m
cmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKKyAgICAgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVBZnRlclhGcmFtZU9wdGlvbnNE
ZW5pZWQobV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNvdXJjZS0+bG9hZGVy
KCktPmlkZW50aWZpZXIoKSwgcik7CiAgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgY29uc29sZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBkaXNwbGF5IGRvY3VtZW50IGJlY2F1
c2UgZGlzcGxheSBmb3JiaWRkZW4gYnkgWC1GcmFtZS1PcHRpb25zLlxuIikpOwogICAgICAgICAg
ICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2Up
OwogCkBAIC0zOTMsMTIgKzQwNyw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGVy
ZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBkaXNwYXRjaGVk
IGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCi0gICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxl
bS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgotI2lmICFVU0UoQ0YpCi0gICAgQVNTRVJUKHNo
b3VsZExvYWRBc0VtcHR5RG9jdW1lbnQoci51cmwoKSkgfHwgIWRlZmVyc0xvYWRpbmcoKSk7Ci0j
ZW5kaWYKLQogI2lmIFBMQVRGT1JNKFFUKQogICAgIGlmIChyLm1pbWVUeXBlKCkgPT0gImFwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbSIpCiAgICAgICAgIHN1YnN0aXR1dGVNSU1FVHlwZUZyb21QbHVn
aW5EYXRhYmFzZShyKTsKQEAgLTQwNiw3ICs0MTQsNyBAQAogCiAgICAgaWYgKG1fbG9hZGluZ011
bHRpcGFydENvbnRlbnQpIHsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRM
b2FkZXIoKS0+c2V0dXBGb3JSZXBsYWNlQnlNSU1FVHlwZShyLm1pbWVUeXBlKCkpOwotICAgICAg
ICBjbGVhclJlc291cmNlRGF0YSgpOworICAgICAgICBtX3Jlc291cmNlLT5jbGVhcigpOwogICAg
IH0KICAgICAKICAgICBpZiAoci5pc011bHRpcGFydCgpKQpAQCAtNDIyLDcgKzQzMCw3IEBACiAK
ICAgICBBU1NFUlQoIW1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kpOwogICAgIG1fd2FpdGluZ0Zv
ckNvbnRlbnRQb2xpY3kgPSB0cnVlOwotICAgIHJlZigpOyAvLyBiYWxhbmNlZCBieSBkZXJlZiBp
biBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeSBhbmQgZGlkQ2FuY2VsCisgICAgcmVmKCk7IC8v
IGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5IGFuZCBjYW5j
ZWwKIAogICAgIEFTU0VSVChmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKTsK
IApAQCAtNDQ5LDI4ICs0NTcsMTMgQEAKICAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2Vy
KCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCBjYWxsQ29udGludWVBZnRlckNvbnRl
bnRQb2xpY3ksIHRoaXMpOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRh
TGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkYXRhUmVj
ZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoKQogewogICAgIEFTU0VSVChkYXRhKTsKICAgICBBU1NFUlQobGVuZ3RoICE9IDApOwotCisg
ICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9yZXNvdXJjZSk7CiAgICAg
QVNTRVJUKCFtX3Jlc3BvbnNlLmlzTnVsbCgpKTsKIAotI2lmIFVTRShDRk5FVFdPUkspIHx8IFBM
QVRGT1JNKE1BQykKLSAgICAvLyBXb3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNjA2MDc4
Mj4KLSAgICBpZiAobV9yZXNwb25zZS5pc051bGwoKSkgewotICAgICAgICBtX3Jlc3BvbnNlID0g
UmVzb3VyY2VSZXNwb25zZShLVVJMKCksICJ0ZXh0L2h0bWwiLCAwLCBTdHJpbmcoKSwgU3RyaW5n
KCkpOwotICAgICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWVM
b2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50TG9h
ZGVyLT5zZXRSZXNwb25zZShtX3Jlc3BvbnNlKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIC8vIFRo
ZXJlIGlzIGEgYnVnIGluIENGTmV0d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNo
ZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBkZWZlcnJlZC4KLSAgICAvLyBTZWUgPHJkYXI6Ly9wcm9i
bGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRldGFpbHMuCi0jaWYgIVVTRShDRikKLSAgICBBU1NFUlQo
IWRlZmVyc0xvYWRpbmcoKSk7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9O
KSAmJiAhUExBVEZPUk0oSU9TKQogICAgIGlmIChtX2ZpbHRlcikgewogICAgICAgICBBU1NFUlQo
IXdrRmlsdGVyV2FzQmxvY2tlZChtX2ZpbHRlcikpOwpAQCAtNDc4LDcgKzQ3MSw3IEBACiAgICAg
ICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYmxvY2tlZERhdGEsIHRoYXQgbWVhbnMgd2UncmUgc3Rp
bGwgYWNjdW11bGF0aW5nIGRhdGEKICAgICAgICAgaWYgKCFibG9ja2VkRGF0YSkgewogICAgICAg
ICAgICAgLy8gVHJhbnNpdGlvbiB0byBjb21taXR0ZWQgc3RhdGUuCi0gICAgICAgICAgICBSZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoIiIsIDAsIDAsIGZhbHNlKTsKKyAgICAgICAgICAg
IGRvY3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YSgwLCAwKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC00ODcsMTUgKzQ4MCwxNCBAQAogICAgIH0KICNlbmRpZgogCi0g
ICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291cmNl
RGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7
CisgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291
cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKIAogICAgIC8vIFRoZSBh
ZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5nIGluY2x1ZGluZyBwb3NzaWJseSBy
ZW1vdmluZyB0aGUgbGFzdAogICAgIC8vIHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25lIGV4
YW1wbGUgb2YgdGhpcyBpcyAzMjY2MjE2LgogICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+
IHByb3RlY3QodGhpcyk7Ci0KICAgICBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIAotICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YShkYXRhLCBsZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOworICAgIGRv
Y3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YShkYXRhLCBsZW5ndGgpOwogCiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xJT04pICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKFdlYkZpbHRlckV2
YWx1YXRvciAqZmlsdGVyID0gbV9maWx0ZXIpIHsKQEAgLTUxMywxMiArNTA1LDYgQEAKIAogdm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUp
CiB7Ci0gICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gQ0ZOZXR3b3JrIHdoZXJlIGNhbGxiYWNrcyBj
YW4gYmUgZGlzcGF0Y2hlZCBldmVuIHdoZW4gbG9hZHMgYXJlIGRlZmVycmVkLgotICAgIC8vIFNl
ZSA8cmRhcjovL3Byb2JsZW0vNjMwNDYwMD4gZm9yIG1vcmUgZGV0YWlscy4KLSNpZiAhVVNFKENG
KQotICAgIEFTU0VSVChzaG91bGRMb2FkQXNFbXB0eURvY3VtZW50KGZyYW1lTG9hZGVyKCktPmFj
dGl2ZURvY3VtZW50TG9hZGVyKCktPnVybCgpKSB8fCAhZGVmZXJzTG9hZGluZygpIHx8IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6aXNEZWJ1Z2dlclBhdXNlZChtX2ZyYW1lLmdldCgpKSk7Ci0j
ZW5kaWYKLQogICAgIC8vIFRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5n
IGluY2x1ZGluZyBwb3NzaWJseSByZW1vdmluZyB0aGUgbGFzdAogICAgIC8vIHJlZmVyZW5jZSB0
byB0aGlzIG9iamVjdC4KICAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRo
aXMpOwpAQCAtNTQyLDEzICs1MjgsMjQgQEAKIAogICAgIGRvY3VtZW50TG9hZGVyKCktPnRpbWlu
ZygpLT5zZXRSZXNwb25zZUVuZChmaW5pc2hUaW1lID8gZmluaXNoVGltZSA6IChtX3RpbWVPZkxh
c3REYXRhUmVjZWl2ZWQgPyBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgOiBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSkpOwogICAgIGRvY3VtZW50TG9hZGVyKCktPmZpbmlzaGVkTG9hZGlu
ZygpOwotICAgIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOwog
CiAgICAgZGwtPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPmZpbmlzaGVkTG9hZGluZ01haW5SZXNv
dXJjZSgpOworICAgIG1fc3RhdGUgPSBDb21wbGV0ZTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewor
ICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIG1fcmVzb3VyY2UgPT0gcmVzb3VyY2UpOworCisg
ICAgaWYgKG1fc3RhdGUgIT0gTG9hZGluZykKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUg
PSBGaW5pc2hpbmc7CisKKyAgICBpZiAoIW1fcmVzb3VyY2UgfHwgKCFtX3Jlc291cmNlLT5lcnJv
ck9jY3VycmVkKCkgJiYgIW1fcmVzb3VyY2UtPndhc0NhbmNlbGVkKCkpKSB7CisgICAgICAgIGRp
ZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZS0+bG9hZEZpbmlzaFRpbWUoKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikgJiYgIVBMQVRGT1JN
KElPUykKICAgICBpZiAobV9maWx0ZXIpIHsKICAgICAgICAgd2tGaWx0ZXJSZWxlYXNlKG1fZmls
dGVyKTsKQEAgLTU1NiwxNiArNTUzLDE2IEBACiAgICAgfQogI2VuZGlmCiAKKyAgICBSZXNvdXJj
ZUVycm9yIGVycm9yOworICAgIGlmIChtX3Jlc291cmNlLT53YXNDYW5jZWxlZCgpKQorICAgICAg
ICBlcnJvciA9IG1fZnJhbWUtPmxvYWRlcigpLT5jYW5jZWxsZWRFcnJvcihyZXF1ZXN0KCkpOwor
ICAgIGVsc2UKKyAgICAgICAgZXJyb3IgPSBtX3Jlc291cmNlLT5yZXNvdXJjZUVycm9yKCk7CiAg
ICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9h
ZEZhbGxiYWNrRm9yTWFpbkVycm9yKHJlcXVlc3QoKSwgZXJyb3IpKQogICAgICAgICByZXR1cm47
Ci0KLSAgICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNh
biBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCi0gICAgLy8gU2Vl
IDxyZGFyOi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgotI2lmICFVU0UoQ0Yp
Ci0gICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkpOwotI2VuZGlmCiAgICAgCiAgICAgcmVjZWl2
ZWRFcnJvcihlcnJvcik7CisgICAgbV9zdGF0ZSA9IENvbXBsZXRlOwogfQogCiB2b2lkIE1haW5S
ZXNvdXJjZUxvYWRlcjo6aGFuZGxlRW1wdHlMb2FkKGNvbnN0IEtVUkwmIHVybCwgYm9vbCBmb3JV
UkxTY2hlbWUpCkBAIC01NzcsNyArNTc0LDcgQEAKICAgICAgICAgbWltZVR5cGUgPSAidGV4dC9o
dG1sIjsKICAgICAKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHVybCwgbWltZVR5cGUs
IDAsIFN0cmluZygpLCBTdHJpbmcoKSk7Ci0gICAgZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNl
KTsKKyAgICByZXNwb25zZVJlY2VpdmVkKDAsIHJlc3BvbnNlKTsKIH0KIAogdm9pZCBNYWluUmVz
b3VyY2VMb2FkZXI6OmhhbmRsZURhdGFMb2FkTm93KE1haW5SZXNvdXJjZUxvYWRlclRpbWVyKikK
QEAgLTU5Myw3ICs1OTAsNyBAQAogICAgIG1faW5pdGlhbFJlcXVlc3QgPSBSZXNvdXJjZVJlcXVl
c3QoKTsKICAgICAgICAgCiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSh1cmwsIG1fc3Vi
c3RpdHV0ZURhdGEubWltZVR5cGUoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUo
KSwgbV9zdWJzdGl0dXRlRGF0YS50ZXh0RW5jb2RpbmcoKSwgIiIpOwotICAgIGRpZFJlY2VpdmVS
ZXNwb25zZShyZXNwb25zZSk7CisgICAgcmVzcG9uc2VSZWNlaXZlZCgwLCByZXNwb25zZSk7CiB9
CiAKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpzdGFydERhdGFMb2FkVGltZXIoKQpAQCAtNjE2
LDQ1ICs2MTMsMTEgQEAKICAgICAgICAgaGFuZGxlRGF0YUxvYWROb3coMCk7CiB9CiAKLWJvb2wg
TWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikKK3ZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgciwgY29uc3QgU3Vi
c3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKQogewotICAgIGJvb2wgc2hvdWxkTG9hZEVtcHR5
QmVmb3JlUmVkaXJlY3QgPSBzaG91bGRMb2FkQXNFbXB0eURvY3VtZW50KHIudXJsKCkpOwotCi0g
ICAgQVNTRVJUKCFtX2hhbmRsZSk7Ci0gICAgQVNTRVJUKHNob3VsZExvYWRFbXB0eUJlZm9yZVJl
ZGlyZWN0IHx8ICFkZWZlcnNMb2FkaW5nKCkpOwotCi0gICAgLy8gU2VuZCB0aGlzIHN5bnRoZXRp
YyBkZWxlZ2F0ZSBjYWxsYmFjayBzaW5jZSBjbGllbnRzIGV4cGVjdCBpdCwgYW5kCi0gICAgLy8g
d2Ugbm8gbG9uZ2VyIHNlbmQgdGhlIGNhbGxiYWNrIGZyb20gd2l0aGluIE5TVVJMQ29ubmVjdGlv
biBmb3IKLSAgICAvLyBpbml0aWFsIHJlcXVlc3RzLgotICAgIHdpbGxTZW5kUmVxdWVzdChyLCBS
ZXNvdXJjZVJlc3BvbnNlKCkpOworICAgIEFTU0VSVCghbV9yZXNvdXJjZSk7CiAgICAgQVNTRVJU
KCFkZWxldGlvbkhhc0JlZ3VuKCkpOwogCi0gICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzQ4MDEwNjY+
Ci0gICAgLy8gd2lsbFNlbmRSZXF1ZXN0KCkgaXMgbGlhYmxlIHRvIG1ha2UgdGhlIGNhbGwgdG8g
ZnJhbWVMb2FkZXIoKSByZXR1cm4gTlVMTCwgc28gd2UgbmVlZCB0byBjaGVjayB0aGF0IGhlcmUK
LSAgICBpZiAoIWZyYW1lTG9hZGVyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAg
ICBjb25zdCBLVVJMJiB1cmwgPSByLnVybCgpOwotICAgIGJvb2wgc2hvdWxkTG9hZEVtcHR5ID0g
c2hvdWxkTG9hZEFzRW1wdHlEb2N1bWVudCh1cmwpICYmICFtX3N1YnN0aXR1dGVEYXRhLmlzVmFs
aWQoKTsKLQotICAgIGlmIChzaG91bGRMb2FkRW1wdHlCZWZvcmVSZWRpcmVjdCAmJiAhc2hvdWxk
TG9hZEVtcHR5ICYmIGRlZmVyc0xvYWRpbmcoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAg
ICByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+YWRkTWFpblJlc291cmNlTG9hZCh0aGlzKTsKLSAg
ICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIAotICAgICAgICBoYW5kbGVEYXRhTG9h
ZFNvb24ocik7Ci0gICAgZWxzZSBpZiAoc2hvdWxkTG9hZEVtcHR5IHx8IGZyYW1lTG9hZGVyKCkt
PmNsaWVudCgpLT5yZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSh1cmwucHJvdG9jb2wo
KSkpCi0gICAgICAgIGhhbmRsZUVtcHR5TG9hZCh1cmwsICFzaG91bGRMb2FkRW1wdHkpOwotICAg
IGVsc2UKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUt
PmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCByLCB0aGlzLCBmYWxzZSwgdHJ1ZSk7Ci0K
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgciwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVE
YXRhKQotewotICAgIEFTU0VSVCghbV9oYW5kbGUpOwotCiAgICAgLy8gSXQgYXBwZWFycyB0aGF0
IGl0IGlzIHBvc3NpYmxlIGZvciB0aGlzIGxvYWQgdG8gYmUgY2FuY2VsbGVkIGFuZCBkZXJlZmVu
Y2VkIGJ5IHRoZSBEb2N1bWVudExvYWRlcgogICAgIC8vIGluIHdpbGxTZW5kUmVxdWVzdCgpIGlm
IGxvYWROb3coKSBpcyBjYWxsZWQuCiAgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdCh0aGlzKTsKQEAgLTY2OCw0MiArNjMxLDUwIEBACiAKICAgICBkb2N1bWVudExvYWRlcigp
LT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRNYWluUmVzb3VyY2UocmVxdWVzdCwg
bV9zdWJzdGl0dXRlRGF0YSk7CiAKLSAgICBib29sIGRlZmVyID0gZGVmZXJzTG9hZGluZygpOwot
ICAgIGlmIChkZWZlcikgewotICAgICAgICBib29sIHNob3VsZExvYWRFbXB0eSA9IHNob3VsZExv
YWRBc0VtcHR5RG9jdW1lbnQocmVxdWVzdC51cmwoKSk7Ci0gICAgICAgIGlmIChzaG91bGRMb2Fk
RW1wdHkpCi0gICAgICAgICAgICBkZWZlciA9IGZhbHNlOwotICAgIH0KLSAgICBpZiAoIWRlZmVy
KSB7Ci0gICAgICAgIGlmIChsb2FkTm93KHJlcXVlc3QpKSB7Ci0gICAgICAgICAgICAvLyBTdGFy
dGVkIGFzIGFuIGVtcHR5IGRvY3VtZW50LCBidXQgd2FzIHJlZGlyZWN0ZWQgdG8gc29tZXRoaW5n
IG5vbi1lbXB0eS4KLSAgICAgICAgICAgIEFTU0VSVChkZWZlcnNMb2FkaW5nKCkpOwotICAgICAg
ICAgICAgZGVmZXIgPSB0cnVlOworICAgIC8vIFNlbmQgdGhpcyBzeW50aGV0aWMgZGVsZWdhdGUg
Y2FsbGJhY2sgc2luY2Ugb3VyIGNsaWVudHMgZXhwZWN0IGl0LCBhbmQKKyAgICAvLyBDYWNoZWRS
ZXNvdXJjZUNsaWVudHMgY2FuJ3QgY29ubmVjdCB0byBhIENhY2hlZFJlc291cmNlIGluIHRpbWUg
dG8gZ2V0IGEgd2lsbFNlbmRSZXF1ZXN0KCkKKyAgICAvLyBjYWxsIGZvciB0aGUgaW5pdGlhbCBs
b2FkLgorICAgIHdpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlKCkpOwor
CisgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzQ4MDEwNjY+CisgICAgLy8gd2lsbFNlbmRSZXF1ZXN0
KCkgaXMgbGlhYmxlIHRvIG1ha2UgdGhlIGNhbGwgdG8gZnJhbWVMb2FkZXIoKSByZXR1cm4gTlVM
TCwgc28gd2UgbmVlZCB0byBjaGVjayB0aGF0IGhlcmUKKyAgICBpZiAoIWZyYW1lTG9hZGVyKCkp
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBjb25zdCBLVVJMJiB1cmwgPSByLnVybCgpOwor
ICAgIGJvb2wgc2hvdWxkTG9hZEVtcHR5ID0gc2hvdWxkTG9hZEFzRW1wdHlEb2N1bWVudCh1cmwp
ICYmICFtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKTsKKworICAgIGlmIChtX3N1YnN0aXR1dGVE
YXRhLmlzVmFsaWQoKSkgCisgICAgICAgIGhhbmRsZURhdGFMb2FkU29vbihyKTsKKyAgICBlbHNl
IGlmIChzaG91bGRMb2FkRW1wdHkgfHwgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPnJlcHJlc2Vu
dGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5wcm90b2NvbCgpKSkKKyAgICAgICAgaGFuZGxl
RW1wdHlMb2FkKHVybCwgIXNob3VsZExvYWRFbXB0eSk7CisgICAgZWxzZSB7CisgICAgICAgIG1f
cmVzb3VyY2UgPSBkb2N1bWVudExvYWRlcigpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1
ZXN0UmF3UmVzb3VyY2UocmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFj
a3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNr
Q2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgU2tpcFNlY3VyaXR5Q2hlY2spLCBDYWNo
ZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKTsKKyAgICAgICAgaWYgKCFtX3Jlc291cmNlKSB7Cisg
ICAgICAgICAgICByZWNlaXZlZEVycm9yKGZyYW1lTG9hZGVyKCktPmNhbmNlbGxlZEVycm9yKHIp
KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBtX3Jlc291cmNlLT5h
ZGRDbGllbnQodGhpcyk7CisKKyAgICAgICAgLy8gV2UgbmVlZCB0byB3YWl0IHVudGlsIGFmdGVy
IHJlcXVlc3RSYXdSZXNvdXJjZSgpIGlzIGNhbGxlZCB0byBzZXRSZXF1ZXN0KCksIGJlY2F1c2Ug
dGhlcmUgYXJlIGEgYnVuY2ggb2YgaGVhZGVycyBzZXQgd2hlbgorICAgICAgICAvLyB0aGUgdW5k
ZXJseWluZyBSZXNvdXJjZUxvYWRlciBpcyBjcmVhdGVkLCBhbmQgRG9jdW1lbnRMb2FkZXI6Om1f
cmVxdWVzdCBuZWVkcyB0byBpbmNsdWRlIHRob3NlLiBIb3dldmVyLCB0aGUgY2FjaGUgd2lsbAor
ICAgICAgICAvLyBzdHJpcCB0aGUgZnJhZ21lbnQgaWRlbnRpZmllciAod2hpY2ggRG9jdW1lbnRM
b2FkZXI6Om1fcmVxdWVzdCBzaG91bGQgYWxzbyBpbmNsdWRlKSwgc28gYWRkIHRoYXQgYmFjayBp
bi4KKyAgICAgICAgcmVxdWVzdCA9IG1fcmVzb3VyY2UtPnJlc291cmNlUmVxdWVzdCgpOworICAg
ICAgICBpZiAodXJsICE9IHJlcXVlc3QudXJsKCkpCisgICAgICAgICAgICByZXF1ZXN0LnNldFVS
TCh1cmwpOworICAgICAgICBkb2N1bWVudExvYWRlcigpLT5zZXRSZXF1ZXN0KHJlcXVlc3QpOwog
ICAgIH0KLSAgICBpZiAoZGVmZXIpCi0gICAgICAgIG1faW5pdGlhbFJlcXVlc3QgPSByZXF1ZXN0
OwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRl
ZmVycykKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpzZXRTaG91bGRCdWZmZXJEYXRhKERhdGFC
dWZmZXJpbmdQb2xpY3kgc2hvdWxkQnVmZmVyRGF0YSkKIHsKLSAgICBSZXNvdXJjZUxvYWRlcjo6
c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOworICAgIEFTU0VSVChtX3Jlc291cmNlKTsKKyAgICBt
X3Jlc291cmNlLT5zZXRTaG91bGRCdWZmZXJEYXRhKHNob3VsZEJ1ZmZlckRhdGEpOworfQogCi0g
ICAgaWYgKGRlZmVycykgewotICAgICAgICBpZiAobV9kYXRhTG9hZFRpbWVyLmlzQWN0aXZlKCkp
Ci0gICAgICAgICAgICBtX2RhdGFMb2FkVGltZXIuc3RvcCgpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGlmIChtX2luaXRpYWxSZXF1ZXN0LmlzTnVsbCgpKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIGlmIChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSAmJiBtX2RvY3VtZW50TG9h
ZGVyLT5kZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKCkpCi0gICAgICAgICAgICBzdGFydERhdGFM
b2FkVGltZXIoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3Qg
cihtX2luaXRpYWxSZXF1ZXN0KTsKLSAgICAgICAgICAgIG1faW5pdGlhbFJlcXVlc3QgPSBSZXNv
dXJjZVJlcXVlc3QoKTsKLSAgICAgICAgICAgIGxvYWROb3cocik7Ci0gICAgICAgIH0KLSAgICB9
CitSZXNvdXJjZUxvYWRlciogTWFpblJlc291cmNlTG9hZGVyOjpsb2FkZXIoKSBjb25zdAoreyAK
KyAgICByZXR1cm4gbV9yZXNvdXJjZSA/IG1fcmVzb3VyY2UtPmxvYWRlcigpIDogMDsKIH0KIAog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCShyZXZpc2lv
biAxMTczNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4Myw3IEBACiBEb2N1bWVudExvYWRlcjo6RG9jdW1lbnRM
b2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXEsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBz
dWJzdGl0dXRlRGF0YSkKICAgICA6IG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCh0cnVlKQog
ICAgICwgbV9mcmFtZSgwKQorICAgICwgbV9jYWNoZWRSZXNvdXJjZUxvYWRlcihDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV93cml0ZXIobV9mcmFtZSkKICAgICAs
IG1fb3JpZ2luYWxSZXF1ZXN0KHJlcSkKICAgICAsIG1fc3Vic3RpdHV0ZURhdGEoc3Vic3RpdHV0
ZURhdGEpCkBAIC0xMDksMTEgKzExMCwxMiBAQAogCiBEb2N1bWVudExvYWRlcjo6fkRvY3VtZW50
TG9hZGVyKCkKIHsKLSAgICBBU1NFUlQoIW1fZnJhbWUgfHwgZnJhbWVMb2FkZXIoKS0+YWN0aXZl
RG9jdW1lbnRMb2FkZXIoKSAhPSB0aGlzIHx8ICFmcmFtZUxvYWRlcigpLT5pc0xvYWRpbmcoKSk7
CisgICAgQVNTRVJUKCFtX2ZyYW1lIHx8IGZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9h
ZGVyKCkgIT0gdGhpcyB8fCAhaXNMb2FkaW5nKCkpOwogICAgIGlmIChtX2ljb25Mb2FkRGVjaXNp
b25DYWxsYmFjaykKICAgICAgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJhY2stPmludmFsaWRh
dGUoKTsKICAgICBpZiAobV9pY29uRGF0YUNhbGxiYWNrKQogICAgICAgICBtX2ljb25EYXRhQ2Fs
bGJhY2stPmludmFsaWRhdGUoKTsKKyAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5jbGVhckRv
Y3VtZW50TG9hZGVyKCk7CiB9CiAKIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBEb2N1bWVudExv
YWRlcjo6bWFpblJlc291cmNlRGF0YSgpIGNvbnN0CkBAIC0zODUsNyArMzg3LDE1IEBACiAgICAg
ICAgIHNldHVwRm9yUmVwbGFjZSgpOwogICAgIH0KICAgICAKLSAgICBzdG9wTG9hZGluZ1N1YnJl
c291cmNlcygpOworICAgIEFTU0VSVChtX21haW5SZXNvdXJjZUxvYWRlcik7CisgICAgUmVzb3Vy
Y2VMb2FkZXJTZXQgc3VicmVzb3VyY2VMb2FkZXJzVG9DYW5jZWw7CisgICAgUmVzb3VyY2VMb2Fk
ZXJTZXQ6Oml0ZXJhdG9yIGVuZCA9IG1fc3VicmVzb3VyY2VMb2FkZXJzLmVuZCgpOworICAgIGZv
ciAoUmVzb3VyY2VMb2FkZXJTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX3N1YnJlc291cmNlTG9hZGVy
cy5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CisgICAgICAgIGlmICgoKml0ZXIpLT51
cmwoKSAhPSBtX3JlcXVlc3QudXJsKCkpCisgICAgICAgICAgICBzdWJyZXNvdXJjZUxvYWRlcnNU
b0NhbmNlbC5hZGQoKml0ZXIpOworICAgIH0KKyAgICBjYW5jZWxBbGwoc3VicmVzb3VyY2VMb2Fk
ZXJzVG9DYW5jZWwpOworCiAgICAgc3RvcExvYWRpbmdQbHVnSW5zKCk7CiAjaWYgRU5BQkxFKFdF
Ql9BUkNISVZFKSB8fCBFTkFCTEUoTUhUTUwpCiAgICAgY2xlYXJBcmNoaXZlUmVzb3VyY2VzKCk7
CkBAIC00MzYsNiArNDQ2LDEyIEBACiB7CiAgICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyKSB7
CiAgICAgICAgIG1fbWFpblJlc291cmNlRGF0YSA9IG1fbWFpblJlc291cmNlTG9hZGVyLT5yZXNv
dXJjZURhdGEoKTsKKyAgICAgICAgLy8gVGhlIE1haW5SZXNvdXJjZUxvYWRlciBhbmQgdGhlIFJl
c291cmNlTG9hZGVyIHVuZGVybHlpbmcgaXQgbmVlZCB0byBnZXQKKyAgICAgICAgLy8gY2xlYXJl
ZCBhdCBvbmNlLiBJZiB0aGV5IGFyZW4ndCwgd2UgbWF5IGdldCBpbnRvIGNvZGVwYXRocyB0aGF0
IGV4cGVjdAorICAgICAgICAvLyB0aGVyZSB0byBiZSBubyBSZXNvdXJjZUxvYWRlcnMgcGVuZGlu
ZywgYnV0IHRoZSBzdGFjayB3b24ndCBoYXZlIHVucm9sbGVkCisgICAgICAgIC8vIGZhciBlbm91
Z2ggZm9yIHRoZSBSZXNvdXJjZUxvYWRlciB0byByZW1vdmUgaXRzZWxmLgorICAgICAgICBpZiAo
UmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyID0gbV9tYWluUmVzb3VyY2VMb2FkZXItPmxv
YWRlcigpKQorICAgICAgICAgICAgbV9zdWJyZXNvdXJjZUxvYWRlcnMucmVtb3ZlKHJlc291cmNl
TG9hZGVyKTsKICAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXIgPSAwOwogICAgIH0KIApAQCAt
Nzc1LDggKzc5MSw2IEBACiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldERlZmVyc0xvYWRpbmco
Ym9vbCBkZWZlcnMpCiB7Ci0gICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyKQotICAgICAgICBt
X21haW5SZXNvdXJjZUxvYWRlci0+c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOwogICAgIHNldEFs
bERlZmVyc0xvYWRpbmcobV9zdWJyZXNvdXJjZUxvYWRlcnMsIGRlZmVycyk7CiAgICAgc2V0QWxs
RGVmZXJzTG9hZGluZyhtX3BsdWdJblN0cmVhbUxvYWRlcnMsIGRlZmVycyk7CiAgICAgaWYgKCFk
ZWZlcnMpCkBAIC04MDAsMTAgKzgxNCwxMyBAQAogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpyZW1v
dmVTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogeworICAgIGlmICgh
bV9zdWJyZXNvdXJjZUxvYWRlcnMuY29udGFpbnMobG9hZGVyKSkKKyAgICAgICAgcmV0dXJuOwog
ICAgIG1fc3VicmVzb3VyY2VMb2FkZXJzLnJlbW92ZShsb2FkZXIpOworICAgIGlmICghbV9mcmFt
ZSkKKyAgICAgICAgcmV0dXJuOwogICAgIGNoZWNrTG9hZENvbXBsZXRlKCk7Ci0gICAgaWYgKEZy
YW1lKiBmcmFtZSA9IG1fZnJhbWUpCi0gICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2hlY2tMb2Fk
Q29tcGxldGUoKTsKKyAgICBmcmFtZUxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOwogfQog
CiB2b2lkIERvY3VtZW50TG9hZGVyOjphZGRQbHVnSW5TdHJlYW1Mb2FkZXIoUmVzb3VyY2VMb2Fk
ZXIqIGxvYWRlcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShy
ZXZpc2lvbiAxMTczNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDcgKzEzOCw3IEBACiAKICAgICAgICAgY29uc3QgS1VS
TCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0LnVybCgpOyB9IAogICAgICAgICBSZXNv
dXJjZUhhbmRsZSogaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0KLSAg
ICAgICAgYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9v
cHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzOyB9CisgICAgICAgIGJvb2wgc2VuZFJlc291cmNlTG9h
ZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9
PSBTZW5kQ2FsbGJhY2tzOyB9CiAKICAgICAgICAgYm9vbCByZWFjaGVkVGVybWluYWxTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hlZFRlcm1pbmFsU3RhdGU7IH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMTczNDQp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5
Q2FjaGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNjEsNyArNjIsNiBAQAog
U3VicmVzb3VyY2VMb2FkZXI6OlN1YnJlc291cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSwgQ2FjaGVk
UmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMp
CiAgICAgOiBSZXNvdXJjZUxvYWRlcihmcmFtZSwgb3B0aW9ucykKICAgICAsIG1fcmVzb3VyY2Uo
cmVzb3VyY2UpCi0gICAgLCBtX2RvY3VtZW50KGZyYW1lLT5kb2N1bWVudCgpKQogICAgICwgbV9s
b2FkaW5nTXVsdGlwYXJ0Q29udGVudChmYWxzZSkKICAgICAsIG1fc3RhdGUoVW5pbml0aWFsaXpl
ZCkKICAgICAsIG1fcmVxdWVzdENvdW50VHJhY2tlcihhZG9wdFB0cihuZXcgUmVxdWVzdENvdW50
VHJhY2tlcihmcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSwgcmVzb3Vy
Y2UpKSkKQEAgLTc0LDcgKzc0LDYgQEAKIFN1YnJlc291cmNlTG9hZGVyOjp+U3VicmVzb3VyY2VM
b2FkZXIoKQogewogICAgIEFTU0VSVChtX3N0YXRlICE9IEluaXRpYWxpemVkKTsKLSAgICBBU1NF
UlQoIW1fZG9jdW1lbnQpOwogICAgIEFTU0VSVChyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsKICNp
Zm5kZWYgTkRFQlVHCiAgICAgc3VicmVzb3VyY2VMb2FkZXJDb3VudGVyLmRlY3JlbWVudCgpOwpA
QCAtOTYsMjUgKzk1LDI3IEBACiAgICAgLy8gdGhlIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGF0
IHRoZSBDYWNoZWRSZXNvdXJjZUxvYWRlciBsYXllciBzbyB3ZSBjYW4KICAgICAvLyBoYW5kbGUg
ZGlmZmVyZW50IHJlc291cmNlIHR5cGVzIGRpZmZlcmVudGx5LgogCi0gICAgU3RyaW5nIG91dGdv
aW5nUmVmZXJyZXI7Ci0gICAgU3RyaW5nIG91dGdvaW5nT3JpZ2luOwotICAgIGlmIChyZXF1ZXN0
Lmh0dHBSZWZlcnJlcigpLmlzTnVsbCgpKSB7Ci0gICAgICAgIG91dGdvaW5nUmVmZXJyZXIgPSBm
cmFtZUxvYWRlci0+b3V0Z29pbmdSZWZlcnJlcigpOwotICAgICAgICBvdXRnb2luZ09yaWdpbiA9
IGZyYW1lTG9hZGVyLT5vdXRnb2luZ09yaWdpbigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG91
dGdvaW5nUmVmZXJyZXIgPSByZXF1ZXN0Lmh0dHBSZWZlcnJlcigpOwotICAgICAgICBvdXRnb2lu
Z09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG91dGdvaW5nUmVmZXJy
ZXIpLT50b1N0cmluZygpOworICAgIC8vIEZJWE1FOiBNb3ZlIHRoaXMgaW50byBDYWNoZWRSZXNv
dXJjZT8KKyAgICBpZiAocmVzb3VyY2UtPnR5cGUoKSAhPSBDYWNoZWRSZXNvdXJjZTo6TWFpblJl
c291cmNlKSB7CisgICAgICAgIFN0cmluZyBvdXRnb2luZ1JlZmVycmVyOworICAgICAgICBTdHJp
bmcgb3V0Z29pbmdPcmlnaW47CisgICAgICAgIGlmIChyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLmlz
TnVsbCgpKSB7CisgICAgICAgICAgICBvdXRnb2luZ1JlZmVycmVyID0gZnJhbWVMb2FkZXItPm91
dGdvaW5nUmVmZXJyZXIoKTsKKyAgICAgICAgICAgIG91dGdvaW5nT3JpZ2luID0gZnJhbWVMb2Fk
ZXItPm91dGdvaW5nT3JpZ2luKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvdXRn
b2luZ1JlZmVycmVyID0gcmVxdWVzdC5odHRwUmVmZXJyZXIoKTsKKyAgICAgICAgICAgIG91dGdv
aW5nT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3V0Z29pbmdSZWZl
cnJlciktPnRvU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICBvdXRnb2luZ1JlZmVycmVy
ID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZnJhbWUtPmRvY3VtZW50
KCktPnJlZmVycmVyUG9saWN5KCksIHJlcXVlc3QudXJsKCksIG91dGdvaW5nUmVmZXJyZXIpOwor
ICAgICAgICBpZiAob3V0Z29pbmdSZWZlcnJlci5pc0VtcHR5KCkpCisgICAgICAgICAgICBuZXdS
ZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CisgICAgICAgIGVsc2UgaWYgKCFyZXF1ZXN0Lmh0
dHBSZWZlcnJlcigpKQorICAgICAgICAgICAgbmV3UmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIob3V0
Z29pbmdSZWZlcnJlcik7CisgICAgICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVk
ZWQobmV3UmVxdWVzdCwgb3V0Z29pbmdPcmlnaW4pOworICAgICAgICBmcmFtZUxvYWRlci0+YWRk
RXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChuZXdSZXF1ZXN0KTsKICAgICB9CiAKLSAg
ICBvdXRnb2luZ1JlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFk
ZXIoZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHJlcXVlc3QudXJsKCksIG91
dGdvaW5nUmVmZXJyZXIpOwotICAgIGlmIChvdXRnb2luZ1JlZmVycmVyLmlzRW1wdHkoKSkKLSAg
ICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwotICAgIGVsc2UgaWYgKCFyZXF1
ZXN0Lmh0dHBSZWZlcnJlcigpKQotICAgICAgICBuZXdSZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihv
dXRnb2luZ1JlZmVycmVyKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVk
KG5ld1JlcXVlc3QsIG91dGdvaW5nT3JpZ2luKTsKLQotICAgIGZyYW1lTG9hZGVyLT5hZGRFeHRy
YUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KG5ld1JlcXVlc3QpOwotCiAgICAgUmVmUHRyPFN1
YnJlc291cmNlTG9hZGVyPiBzdWJsb2FkZXIoYWRvcHRSZWYobmV3IFN1YnJlc291cmNlTG9hZGVy
KGZyYW1lLCByZXNvdXJjZSwgb3B0aW9ucykpKTsKICAgICBpZiAoIXN1YmxvYWRlci0+aW5pdChu
ZXdSZXF1ZXN0KSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNDUsMTQgKzE0NiwyMyBAQAogICAg
IC8vIFN0b3JlIHRoZSBwcmV2aW91cyBVUkwgYmVjYXVzZSB0aGUgY2FsbCB0byBSZXNvdXJjZUxv
YWRlcjo6d2lsbFNlbmRSZXF1ZXN0IHdpbGwgbW9kaWZ5IGl0LgogICAgIEtVUkwgcHJldmlvdXNV
UkwgPSByZXF1ZXN0KCkudXJsKCk7CiAgICAgCisgICAgLy8gVXBkYXRlIGNvb2tpZSBwb2xpY3kg
YmFzZSBVUkwgYXMgVVJMIGNoYW5nZXMsIGV4Y2VwdCBmb3Igc3ViZnJhbWVzLCB3aGljaCB1c2Ug
dGhlCisgICAgLy8gVVJMIG9mIHRoZSBtYWluIGZyYW1lIHdoaWNoIGRvZXNuJ3QgY2hhbmdlIHdo
ZW4gd2UgcmVkaXJlY3QuCisgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgdG8gbW92ZSB0
aGlzIGJhY2sgdG8gTWFpblJlc291cmNlTG9hZGVyLCBidXQgcmVzb3VyY2UgbG9hZCBjYWxsYmFj
a3MKKyAgICAvLyBzaG93IHRoZSB3cm9uZyBtYWluIGRvY3VtZW50IHVybCBpZiB3ZSBkb24ndCBz
ZXRGaXJzdFBhcnR5Rm9yQ29va2llcyBiZWZvcmUgY2FsbGluZyBSZXNvdXJjZUxvYWRlcjo6d2ls
U2VuZFJlcXVlc3QoKS4KKyAgICBpZiAobV9yZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291
cmNlOjpNYWluUmVzb3VyY2UgJiYgZnJhbWVMb2FkZXIoKS0+aXNMb2FkaW5nTWFpbkZyYW1lKCkp
CisgICAgICAgIG5ld1JlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMobmV3UmVxdWVzdC51
cmwoKSk7CisKICAgICBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3Qs
IHJlZGlyZWN0UmVzcG9uc2UpOwotICAgIGlmICghcHJldmlvdXNVUkwuaXNOdWxsKCkgJiYgIW5l
d1JlcXVlc3QuaXNOdWxsKCkgJiYgcHJldmlvdXNVUkwgIT0gbmV3UmVxdWVzdC51cmwoKSkgewot
ICAgICAgICBpZiAoIW1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmNhblJlcXVl
c3QobV9yZXNvdXJjZS0+dHlwZSgpLCBuZXdSZXF1ZXN0LnVybCgpKSkgewotICAgICAgICAgICAg
Y2FuY2VsKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbV9yZXNv
dXJjZS0+d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworICAg
IGlmIChuZXdSZXF1ZXN0LmlzTnVsbCgpKSB7CisgICAgICAgIGNhbmNlbChmcmFtZUxvYWRlcigp
LT5jbGllbnQoKS0+aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihuZXdSZXF1ZXN0KSk7
CisgICAgICAgIHJldHVybjsKICAgICB9CisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVs
bCgpICYmICFtX2RvY3VtZW50TG9hZGVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5jYW5SZXF1
ZXN0KG1fcmVzb3VyY2UtPnR5cGUoKSwgbmV3UmVxdWVzdC51cmwoKSkpIHsKKyAgICAgICAgY2Fu
Y2VsKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9yZXNvdXJjZS0+d2lsbFNlbmRS
ZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogfQogCiB2b2lkIFN1YnJlc291
cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNp
Z25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KQpAQCAtMTg5LDcgKzE5OSw5IEBACiAg
ICAgICAgIHJldHVybjsKICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHJl
c3BvbnNlKTsKIAotICAgIGlmIChyZXNwb25zZS5pc011bHRpcGFydCgpKSB7CisgICAgLy8gRklY
TUU6IE1haW5SZXNvdXJjZUxvYWRlciBoYXMgYSBkaWZmZXJlbnQgc2V0IG9mIHJ1bGVzIGZvciBt
dWx0aXBhcnQgdGhhbiBpbWFnZXMgZG8uCisgICAgLy8gSG9wZWZ1bGx5IHdlIGNhbiBtZXJnZSB0
aG9zZSAyIHBhdGhzLgorICAgIGlmIChyZXNwb25zZS5pc011bHRpcGFydCgpICYmIG1fcmVzb3Vy
Y2UtPnR5cGUoKSAhPSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKSB7CiAgICAgICAgIG1f
bG9hZGluZ011bHRpcGFydENvbnRlbnQgPSB0cnVlOwogCiAgICAgICAgIC8vIFdlIGRvbid0IGNv
dW50IG11bHRpUGFydHMgaW4gYSBDYWNoZWRSZXNvdXJjZUxvYWRlcidzIHJlcXVlc3QgY291bnQK
QEAgLTIxOSwxMiArMjMxLDExIEBACiAgICAgLy8gUmVmZXJlbmNlIHRoZSBvYmplY3QgaW4gdGhp
cyBtZXRob2Qgc2luY2UgdGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8KICAgICAvLyBh
bnl0aGluZyBpbmNsdWRpbmcgcmVtb3ZpbmcgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoaXMgb2Jq
ZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMyNjYyMTYuCiAgICAgUmVmUHRyPFN1YnJlc291
cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwotICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YShkYXRhLCBsZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOwotCi0gICAg
aWYgKGVycm9yTG9hZGluZ1Jlc291cmNlKCkgfHwgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgc2VuZERhdGFUb1Jlc291cmNlKGRhdGEsIGxlbmd0aCk7
CisgICAgYWRkRGF0YShkYXRhLCBsZW5ndGgsIGFsbEF0T25jZSk7CisgICAgaWYgKCFlcnJvckxv
YWRpbmdSZXNvdXJjZSgpICYmICFtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KQorICAgICAgICBz
ZW5kRGF0YVRvUmVzb3VyY2UoZGF0YSwgbGVuZ3RoKTsKKyAgICBpZiAoc2VuZFJlc291cmNlTG9h
ZENhbGxiYWNrcygpICYmIG1fZnJhbWUpCisgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVy
KCktPmRpZFJlY2VpdmVEYXRhKHRoaXMsIGRhdGEsIGxlbmd0aCwgc3RhdGljX2Nhc3Q8aW50Pihl
bmNvZGVkRGF0YUxlbmd0aCkpOwogfQogCiBib29sIFN1YnJlc291cmNlTG9hZGVyOjplcnJvckxv
YWRpbmdSZXNvdXJjZSgpCkBAIC0yODksNiArMzAwLDcgQEAKICAgICBSZWZQdHI8U3VicmVzb3Vy
Y2VMb2FkZXI+IHByb3RlY3QodGhpcyk7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IHByb3RlY3RSZXNvdXJjZShtX3Jlc291cmNlKTsKICAgICBtX3N0YXRlID0gRmlu
aXNoaW5nOworICAgIG1fcmVzb3VyY2UtPnNldFJlc291cmNlRXJyb3IoZXJyb3IpOwogICAgIG1f
cmVzb3VyY2UtPmVycm9yKENhY2hlZFJlc291cmNlOjpMb2FkRXJyb3IpOwogICAgIGlmICghbV9y
ZXNvdXJjZS0+aXNQcmVsb2FkZWQoKSkKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKG1f
cmVzb3VyY2UpOwpAQCAtMzE0LDEzICszMjYsMTIgQEAKICAgICBBU1NFUlQoIXJlYWNoZWRUZXJt
aW5hbFN0YXRlKCkpOwogICAgIGlmIChtX3N0YXRlICE9IFVuaW5pdGlhbGl6ZWQpIHsKICAgICAg
ICAgbV9yZXF1ZXN0Q291bnRUcmFja2VyLmNsZWFyKCk7Ci0gICAgICAgIG1fZG9jdW1lbnQtPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCktPmxvYWREb25lKCk7CisgICAgICAgIG1fZG9jdW1lbnRMb2Fk
ZXItPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmxvYWREb25lKCk7CiAgICAgICAgIGlmIChyZWFj
aGVkVGVybWluYWxTdGF0ZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3Jlc291
cmNlLT5zdG9wTG9hZGluZygpOwogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5yZW1vdmVTdWJy
ZXNvdXJjZUxvYWRlcih0aGlzKTsKICAgICB9Ci0gICAgbV9kb2N1bWVudCA9IDA7CiAgICAgUmVz
b3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHAJKHJldmlzaW9uIDExNzM0NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw0ICszNSwxMCBAQAogewogfQogCit2b2lkIEFyY2hpdmU6OmFkZFN1YnJlc291cmNlKFBhc3NS
ZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBzdWJSZXNvdXJjZSkKK3sKKyAgICBpZiAobV9tYWluUmVz
b3VyY2UtPnVybCgpICE9IHN1YlJlc291cmNlLT51cmwoKSkKKyAgICAgICAgbV9zdWJyZXNvdXJj
ZXMuYXBwZW5kKHN1YlJlc291cmNlKTsKIH0KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FyY2hpdmUvQXJjaGl2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL0FyY2hpdmUuaAkocmV2aXNpb24gMTE3MzQ0KQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBA
CiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgbWVhbnQgZm9yIHN1YmNsYXNzZXMgZm9yIGRpZmZl
cmVudCBhcmNoaXZlIHR5cGVzIHRvIGFkZCByZXNvdXJjZXMgaW4gdG8gdGhlIGFyY2hpdmUsCiAg
ICAgLy8gYW5kIHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyBhcmNoaXZlcyBzaG91bGQgYmUgaW1t
dXRhYmxlIHRvIGNsaWVudHMKICAgICB2b2lkIHNldE1haW5SZXNvdXJjZShQYXNzUmVmUHRyPEFy
Y2hpdmVSZXNvdXJjZT4gbWFpblJlc291cmNlKSB7IG1fbWFpblJlc291cmNlID0gbWFpblJlc291
cmNlOyB9Ci0gICAgdm9pZCBhZGRTdWJyZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJj
ZT4gc3ViUmVzb3VyY2UpIHsgbV9zdWJyZXNvdXJjZXMuYXBwZW5kKHN1YlJlc291cmNlKTsgfQor
ICAgIHZvaWQgYWRkU3VicmVzb3VyY2UoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YlJl
c291cmNlKTsKICAgICB2b2lkIGFkZFN1YmZyYW1lQXJjaGl2ZShQYXNzUmVmUHRyPEFyY2hpdmU+
IHN1YmZyYW1lQXJjaGl2ZSkgeyBtX3N1YmZyYW1lQXJjaGl2ZXMuYXBwZW5kKHN1YmZyYW1lQXJj
aGl2ZSk7IH0KICAgICAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
cmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
cmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTE3MzQ0KQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YnJlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDYgQEAK
ICAgICB9OwogCiAgICAgQ2FjaGVkUmVzb3VyY2UqIG1fcmVzb3VyY2U7Ci0gICAgUmVmUHRyPERv
Y3VtZW50PiBtX2RvY3VtZW50OwogICAgIGJvb2wgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudDsK
ICAgICBTdWJyZXNvdXJjZUxvYWRlclN0YXRlIG1fc3RhdGU7CiAgICAgT3duUHRyPFJlcXVlc3RD
b3VudFRyYWNrZXI+IG1fcmVxdWVzdENvdW50VHJhY2tlcjsK
</data>
<flag name="commit-queue"
          id="148992"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>142622</attachid>
            <date>2012-05-17 20:33:27 -0700</date>
            <delta_ts>2012-10-19 09:36:45 -0700</delta_ts>
            <desc>Archive of layout-test-results from ec2-cr-linux-04</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>623354</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">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
1LYVqHmxfCmnuJuwuRV5C3+cqnvNgIuJyEC3lzpj4d8qNxodhdU1qb/dbyZ0IP/+/nYrsrb5sSrg
fpjlpEth//7Hb79+Xx4vVf032YPmCWhFByx0yEJHLHTMQm9Y6C0LvWOh9xy0zrhIRLNk6bNk6bNk
6TtliWOWPAZH6ICFDlloXr1jFnrDQm9Z6B0Lveeg3WNwhHbKss4SstwH2ICBDRnYiIGNGdgNA7tl
YF2S/uEztXd/SJpsDTYgYH+uypbDe4jn8ndJ+4cqfZDrMsAGDCynDhEDGzOwGwZ2y8DuGNg9HevU
K0MsQ27Ode2HeyusO/KIGKF5vEMWOmKhYxZ6w0JvWWjX+OgNU2dnD6ABHRrSoREdGtOhGzp0S4cy
+nVPhjpn3QBKl5Zzzv2U15i7gqyIf8pfyVDYEpLBypVEBwZUYEgFRlRgTAVuqcAdFbgnAp3jqQNS
O9yndrhP7XCf2uE+tcP9DRVIlYxPlYxPlUxAlUxAlUxAlUxAlUxAlUxAlUxAlUzgkgxVo1BNA6pR
QDUHqIYA1QSgLv7UZZ9qElLNQaopSDUDqY4NqktD44jy8Iny8Iny8Iny8InyCIjyCIjyCIjyCIjy
CIjyCIjyCIjyoOqNgCiPgCiPkCiPkCiPkCiPkCiPkCiPkCiPkCiPkCiPkCiPkCiPiCiPiCiPiCiP
iCiPiCiPiCiPiCiPiCiPiCiPiCiPmCiPmCiPmCiPmCiPmCiPmCiPmCiPmCiPmCiPmCiPDVEeG6I8
NkR5bIjy2BDlsSHKY0OUx4Yojw1RHhuiPLZEeWyJ8tgS5bElymNLlMeWKI8tUR5bojy2RHlsifLY
EeWxI8pjR5THjiiPHVEeO6I8dkR57Ijy2BHlsSPKY0+Ux54ojz1RHnuiPPZEeeyJ8tgT5bEnymNP
lMeevB+kbgipO3SfukX3qXt0n7pJ96m7dJ+6Tfep+3SfulH3yTt1+ladKhnyZp28Wydv18n7dfKG
nbxjJ2/ZqXt2n7pp9wOyF4UqGeq+3adu3H3qzt2nbt196t7dp27eferu3adu333q/t0PyQ4uqmSo
W3ifuof3qZt4n7qL96nbeJ+6j/epG3mfupP3qVt5PyL7HqmSce7mf86zIv1CD72a4l1N4wR+cII+
OAEfP1f1lV6HHhswsJw6RAxszMBuGNgtA7tjYPd0rNNs+LlOruSIpBE44IBDDjjigGMOeMMBbzng
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
7Dx8Cgsfy4OkHFb+MmBPWMbdJ8QGFO7/epjZzEbWYAKx8gj2R7HcmW1y8y75+VLgoef0kfExFCsg
H6mePYppQKqFCranGAXQ3PJS5fNYJjxWVZ1i+FCXzXd2eGMg014PzLe/DNWPwi7KS0JFQ4vMnPfS
gJbydE2mIdaGUYL+pLWRGL938CTh9RbsUxclaahMwcsdrdG3JO1HIo4yF8V49CpbKs1fV9Ety22R
9DZOZU4nbC4Pm8Qw7m349yCgz5Q60UZl0fPvx+IOt0YbmeSp+ydcXMF7B2awym/pwaEcWP+YQnjy
yMcyvLq3djzi0JKZpxyewnQyeSdQJ2ynIF0IuGN7P18MyFNeZAJUwaOvjb6kJ/+JOQcORXWY7PDH
JAqLOboQnDSP8kiHk9FQwmCOcBP6IQbhtSNBmHw7FP4SA7B+ECgwgKBG/iqYAIzZIpn4pB3kYoCX
mIZEKLVxxmsHIe+TDV72hY24TBfQEvplRkOCt3A7RqbRoX6hI3GgoaeN93DhzddD9T7JdN7/Ghh/
DY2/RsZfY+OvG+OvW+OvO+Ove9Ovowfr+1+NbfONbfONbfONbfONbfONbfONbfONbfONbQuMbQt8
T4eUmIuNvxqbHhibHhibHhibHpiarp5Jf89N4w6eGhY2Wl4mhTRlrRjMlTsz+jRGxqvjC8ZjDa3L
MURO5YCT0aPwKsQ0z4QRLnb156x0oQwPfIxx6l/gTNZvZ06iojQe/gtGqKkhg+QUwMz8CLcGqxXJ
+nShxsn6/L1j/YPgbMUiRwhZtEJAtUL1YQHGCjYqo5j5ztwC2TzORYPhebpcJpaTYVQGTBdrhT0F
iWxUxORI5OL36UsP+rfA8Fto+C0y/BYbftsYftvOftsF8cvsR9+Pgvmng9iP579Gm2AXjRUk/g4x
Pf/ESGQV0fO1SA5ZYWi6DRmQkSEZGZGRMRm5ISO3BKTOJBkwsCEDO4P+twrv/4JuNtPYnCICB0J6
Xv82CcM1IW8JnAqWv+UNJizy7mVzv8FFcWc9J5QONN4e/+f8woUV+y+IEKeAtZqRc92BFnbSjVjj
tqp+rfASwji55xIWdtyJMKld8Mct63o8uyZ5wSGY7DAMcLwpIfC4MXOPpwk84MFDHjziwWMefMOD
73jwuY4dvH5ygkcV+vtKzQLWUNTmr/jYtswrIdMC2DmlqQplx0OwanpJu0cpxDibf9OiW34Sgzoj
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
dXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAAJYTskAAAAAAAAAAAAAAAAApABwAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9VVAkAA9yztU/ou7VPdXgLAAEE6AMAAAToAwAA
UEsDBBQAAgAIAJYTskCNpXyKjwEAAOgCAABRABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0
cC90ZXN0cy9jYWNoZS9wb3N0LXdpdGgtY2FjaGVkLXN1YnJlc291cmNlcy13ZGlmZi5odG1sVVQJ
AAPcs7VP3LO1T3V4CwABBOgDAAAE6AMAAI2SX0/bMBTF3/kUV+WBIVWJW2gTdaET3ZDYtKkTrUB7
mhz7pjH17MjXockqvvuclYJAqsST7Xt/5/j4T1Yil9OMfKtxGknUsIWci/XK2drICRwXnH+ER4i4
lG9bvOhaWbwTZ/HOqnJhThU3IDQnugie05+Xi0XgQvFVK3hONW/RAffwgfXZKZD6i5Ay1owZOwK4
QSPR3SrcHEDeI59pK9awvV7++P54EH2GrWxhO5t/+bVj0376xCbpeTNKz/+ze3qJjYftsQ/DW+sk
GTeDZI8DdAy42rxgGyV92XET6H31JwSVJVK5RihsOBNQLQQSFbUGhw9cK8m9sga8BcFrQsAHNJ66
daEcArVGlM4aW5NuI7gLldLWWpoTD8JxKkEVYA2CLcCX9sWAvK2CTYm9Q2kHo9E+79mYhbzachnB
AhFK7yuaxHFeryjaYL5WPrJuFYe9N79DMRIr9UnJi2SYjIcR9N57f6xhr9CrPzlKiXKe36MIovns
29Xn5U4VMvWHe+FZeNPBiD39t6Ms7n7kP1BLAwQUAAIACACWE7JA/sGlHUABAABaAgAAUQAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvcG9zdC13aXRoLWNhY2hlZC1z
dWJyZXNvdXJjZXMtYWN0dWFsLnR4dFVUCQAD3LO1T9yztU91eAsAAQToAwAABOgDAACN0V1LwzAU
BuD7/YrDvJjC6LKPfjAQYTpQUQY6FK8kTU7XuJiMJF1bh//dzFmHwmBXIYfnPTlJJK3RAHVwSrrk
DKz4QEgIqSJCWgAPqDiaJ4HlASKPiE+kZkvYXM/v7z4P0l+seQ2byezqZWeTbvJj42RUhcno2zZ6
jpWDzYnzy//WcRxV/bjhAFsDplB7Vgru8q0bQ/vGdSystLUilQiZ9ncCWzCG1maFBINrKgWnTmgF
TgOjhUXANSpnt/tMGARbK5YbrXRhZR3As6/kupBcdRwwQ20OIgOtEHQGLtf7BtbplW+TY/vQtP0w
bOYdRsTPKzXlATwiQu7cyo57vbRY2KDEdClcoM2i588uX30xYAtxIfh5PIijQQDtY9+PVOQPnb6n
yDnyWfqGzIdmk9vp5XyX8jN1B01w6P+0H5LWF1BLAwQKAAIAAACWE7JAnOmndQYAAAAGAAAARwAc
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvcG9zdC1yZWRpcmVjdC1n
ZXQtZXhwZWN0ZWQudHh0VVQJAAPcs7VP3LO1T3V4CwABBOgDAAAE6AMAAFBBU1MKClBLAwQUAAIA
CACWE7JAVzVCW5kBAAAXAwAAQwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMv
Y2FjaGUvcG9zdC1yZWRpcmVjdC1nZXQtZGlmZi50eHRVVAkAA9yztU/cs7VPdXgLAAEE6AMAAATo
AwAApZJRb9MwEMff8ylO5WGgxInTrU00CVEKkwAxFdEKxBNy7Etj5sVVfF5Tqn13HEo3gVRpEk+2
z7/7+3/nY4xBRrebzIid9cQIHbEOnTfksoZokw0Rl0khG8w29vet0h1KYmskhv0mbFGl1BNEcRz/
l5qQ5IU5aM1mwPJkDHGe5Bxms4h9er1cRiyKgzh2IAie84S/AKd/IpSc91POoxjgM7YKuy8at6eY
JwnMjZU3sH+3uv54f5p9oK3awX6+ePvtAJdJ+Qcuyot+Ul4c4CO+wlDi/hmF5V/xopj2efHAAwwQ
dL595LZaUTOAlzB6T2cOQiedrgxCbUNd4LyU6FztDXR4J4xWgrRtgSxI4R0C3mFLbjjXofngdq1s
Otta78wuha8h0lhvVHtGIDvhGtA12BbB1kCNfRRwZDdBpsHRSbv5ZHI0fD7lwbCxQqWwRIRhINxl
llV+7dItVjeaUtuts/D49nsIpnKtX2n1shgX03EKoye3kPf8b/bqtkKlUC2qH2HUYL+Yf7h6szqk
BVfJ+Jh5Hn42n/DoF1BLAwQUAAIACACWE7JAjaV8io8BAADoAgAARQAcAHRtcC9sYXlvdXQtdGVz
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
2EQUosak0/62V1Sz37Fk1pUe1s4ItAyHDgWhjGkgCMIw/G/KhSBXNAfdxQJYGk0hTKOUw2IRsE+v
1+uABaFvhAYKguc84i/Aqp8IOefDnPMgBPiMrUTzRWF/inmSwLLR4gb27zbXH+9Psw+0ljvYL1dv
vx3gPMr/wFl+MczyiwN8xDfoR9w/I3/8K55l8yHNHniAEQLj2keuV5LqEbyEyXs6s+C3alXZIFTa
zwXWCb9NW7kGDN4VjZIFKd0CaRCFswh4hy3ZMa6UQbC7VtRGt9rZZhfDV5+ptWtke0YgTGFrUBXo
FkFXQLV+FLCkOy9T4+Sk3XQ2Oxo+n3NvuNGFjGGNCOPnsJdJUrqtjXssbxTF2mwT37z/7pOx2KpX
Sr7Mptl8GsPkySvkA/+bvbotUUqUq/KH/7mwXy0/XL3ZHMq8q2h6rDz3L5vOePALUEsDBBQAAgAI
AJYTskD+waUdQAEAAFoCAABFABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9j
YWNoZS9wb3N0LXJlZGlyZWN0LWdldC1hY3R1YWwudHh0VVQJAAPcs7VP3LO1T3V4CwABBOgDAAAE
6AMAAI3RXUvDMBQG4Pv9isO8mMLoso9+MBBhOlBRBjoUryRNTte4mIwkXVuH/93MWYfCYFchh+c9
OUkkrdEAdXBKuuQMrPhASAipIkJaAA+oOJongeUBIo+IT6RmS9hcz+/vPg/SX6x5DZvJ7OplZ5Nu
8mPjZFSFyejbNnqOlYPNifPL/9ZxHFX9uOEAWwOmUHtWCu7yrRtD+8Z1LKy0tSKVCJn2dwJbMIbW
ZoUEg2sqBadOaAVOA6OFRcA1Kme3+0wYBFsrlhutdGFlHcCzr+S6kFx1HDBDbQ4iA60QdAYu1/sG
1umVb5Nj+9C0/TBs5h1GxM8rNeUBPCJC7tzKjnu9tFjYoMR0KVygzaLnzy5ffTFgC3Eh+Hk8iKNB
AO1j349U5A+dvqfIOfJZ+obMh2aT2+nlfJfyM3UHTXDo/7QfktYXUEsDBAoAAgAAAJYTskCc6ad1
BgAAAAYAAABTABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9wb3N0
LXdpdGgtY2FjaGVkLXN1YnJlc291cmNlcy1leHBlY3RlZC50eHRVVAkAA9yztU/cs7VPdXgLAAEE
6AMAAAToAwAAUEFTUwoKUEsDBAoAAAAAANsTskAAAAAAAAAAAAAAAAAoABwAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9taXNjL1VUCQADXrS1T+i7tU91eAsAAQToAwAABOgDAABQ
SwMEFAACAAgAQBeyQBU1NZJ6AAAAvAAAAEIAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRw
L3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAkAA7i6tU9etLVPdXgLAAEE
6AMAAAToAwAAjY5BDsMgDATveYU/QCDtoRW/IcRVLBmMjJH6/BLlA9VeVjuH2SylEScjqYCqohE+
xAinWYveb4/XGma2+A4h+EI9e8UuQzN2/+1sbk+Ho9JEzQ2ldW7AVBGegIwFq8FNl0niXSHCqGmf
GhNgScd/uip95PO6lywxLz9QSwMEFAACAAgANBeyQAHxR0t5AAAA4gAAAEcAHAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL21pc2MvZG5zLXByZWZldGNoLWNvbnRyb2wtc3RkZXJy
LnR4dFVUCQADpLq1T0u0tU91eAsAAQToAwAABOgDAACLtjA2sLSyMDUxtTI0MTA0NzAzM7Q0MjSy
sHINCvIPskpOLSqJL0stykyrjC8oyk+Ozysu1ktO1jA3MdGMVXB2DQqJD/D2jAgDq3AGKlZIyy9S
MDQy1zMAQkOFtMTMnNQUhdSiIltdC0MLQ65omIUmSBYaAxm0shAAUEsDBAoAAAAAAMUTskAAAAAA
AAAAAAAAAAApABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9sb2NhbC9VVAkA
AzG0tU/ou7VPdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAAMUTskAAAAAAAAAAAAAAAAAuABwAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9sb2NhbC9ibG9iL1VUCQADMbS1T+i7tU91
eAsAAQToAwAABOgDAABQSwMEFAACAAgAKBeyQO3icjRlAAAAbwAAAEkAHAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9odHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2VuZC1oeWJyaWQtYmxvYi1zdGRlcnIu
dHh0VVQJAAOLurVPMbS1T3V4CwABBOgDAAAE6AMAAB3KuwqAMAxA0d2vyKiLpK1aLTjqKnQVEYkR
BKWQ6v/7mO4Z7lgbbFxtdOlUgcpigZVFo5XrvB+82/aD53gJL+d88iU7xZwoNTabADxTkLV/l04k
SJoBf4UWNMRwC/FLBPm3j8kDUEsDBAoAAAAAAPYTskAAAAAAAAAAAAAAAAAsABwAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA5C0tU/ou7VPdXgLAAEE6AMA
AAToAwAAUEsDBAoAAAAAAPYTskAAAAAAAAAAAAAAAABCABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJAAOQtLVP6Lu1
T3V4CwABBOgDAAAE6AMAAFBLAwQUAAIACABZF7JAY6qsbIIAAACoAAAAagAcAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hz
bC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAkAA+q6tU+QtLVPdXgLAAEE
6AMAAAToAwAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFE
e2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRo
ekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACABZF7JAY6qsbIIAAACoAAAAWAAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA+q6tU+QtLVPdXgLAAEE6AMAAAToAwAA
LY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMtt
nePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2W
OdKOza8xRJuC7GpN1PGavlBLAwQUAAIACABTF7JAAPNnQskAAABDAQAAWQAcAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRz
LWNvcnJlY3RseS1hY3R1YWwudHh0VVQJAAPeurVP3rq1T3V4CwABBOgDAAAE6AMAAJXPTU7DQAwF
4H1O4Qvkp2xA2UUoQkKBok57ADNxOpYy42jsFnp7RiDWCHnxNu99kh/3r24/jfAyOjc8jT2ckuJC
8IxXdD7zZoBmFEuaACc2RiNASHjlMxpLAh8wnQkWybBkjAQfbAFOhwmC2da37e7uvunK7fqHruta
JX/JbLdWMc3v8klzzd/DuhCxNtmaYHEtmMR/iplULtmT/mE3VTVM4+HYg/48mTE11TGwgpEabKhK
CryABfrtrIKzgpecydt6K8bb4Fz1BVBLAwQUAAIACABVF7JAVnBSaWIAAACOAAAAVQAcAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14bWwtZXh0
ZXJuYWwtZW50aXR5LXN0ZGVyci50eHRVVAkAA+K6tU+JtLVPdXgLAAEE6AMAAAToAwAAjcwxCsMw
DAXQ3af4W5aC6Go69gbdC8L5DgHbMooC6e1Lb9ADvFf3xiwijCJXb1I0tNmW7xlT/aCD7ubIeFo5
O0dgP8A+45PSO9W/+SvUA6EbeE2W4HrD8lgwLFDtHOuv+wJQSwMEFAACAAgAUxeyQDyb30xFAAAA
SQAAAFsAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Njcmlw
dC1jcm9zc29yaWdpbi1sb2Fkcy1jb3JyZWN0bHktZXhwZWN0ZWQudHh0VVQJAAPeurVP3rq1T3V4
CwABBOgDAAAE6AMAAHP0cQ0KsVIoTi7KLChRKErM0+MKycgsVihJLS5RKEgsLk4tVshMUyjJSIWp
yclPTClWSM4vKkpNLsmp1OPiCnAMDuYCAFBLAwQUAAIACABTF7JAYoKPBhYBAAAVAgAAVwAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3Jp
Z2luLWxvYWRzLWNvcnJlY3RseS1kaWZmLnR4dFVUCQAD3rq1T966tU91eAsAAQToAwAABOgDAACt
kMFqwzAMQO/5Ct1Tx8nG2MgppYTB6FZo2g/QHKUxJHawlK79+7ktG7uNwdBBQkhP4imlQMs46QHP
fhYlxKIC8TwI615k0pcOayYzBytnzSbYSZQJntkHe7BODR5bVsaHQEaGs6LTFAtqMzkJJGma/vsF
NDLjcONXFahicQ9psXiAqkrS1eat2axreK2bZvlcl7B3jB3BCx6xubIBRWiMWTxYZ8WiECA4PNoD
ivUOTI/uQND5AF3AkeDDSg/77RouH5daF3ePWR6jKJ/yPP/xPLr23Z+oVfa6qCJiVOKnrJdxiDA/
/pEYVfk5GOJf2FmSJrBc19tdCTeFENBlCex6y3BxDBMyE4PtQHr6Grq6hW+3cSH5BFBLAwQUAAIA
CABTF7JA6ul28NsHAADLGQAAXwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWNvcnJlY3RseS1wcmV0dHktZGlmZi5o
dG1sVVQJAAPeurVPhbS1T3V4CwABBOgDAAAE6AMAAL1YW2/bNhR+z68gEnQBikq2Y7uL7TRDl8uG
obtg6Z4LSqIsNpSokZQdd9t/3+FNlmQpzoBtDZpIvByey3e+c6grqXaMXJ8sGS0e36DlhkqqSIL+
OEHwT5EnFSQk5gIryoslKnhBVmYq4iIhIoi4Ujxfokn5hBJ4Jsnq5K8TK84JiTnjYonOxtOFmQvv
KSO3NE3dfITjx7XgVZEEfml6qX+aB9kTJGc0QWdJkti5lBcqSHFO2W6Jcl5wWeLYKZhjsaag8oTk
aGyHSg7GGTsEYWDRhhiFsklH0+l02iNf4kIGkgiaNiYl/ULMGc1DA0ZStUTjcO7HEypLhkGIwhEj
QUwYsxNbmqgMBIzHr5yOOElosa53W/1cePRTO0JOZVpkoJiql2d8Q0THqvl8vhpyOCHWFaGOywc4
S7rNKeMYTBF0nal29PSqG3ABpkV9FAf3UwVmjo+Y7awMjNyWp7YZWBeYOGq4bQUu95o9kFjHbxA4
ZnMbNl3IONx6vwOoxuWTPeHuqYQQg3wwjbxBof7TtXBQPUkTEu30b2RU/Zbx+PEXLFQIpi5TKqQK
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
GyY1X+DB8RlTu28EFBNCD0j4IUD0IJQVUZvz6V/Icro95EQHdK2DBSetjAITI0gtJbPi3IR/6I9D
31BLAwQUAAIACABTF7JAzIxIjg4BAAC2AQAAWQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWNvcnJlY3RseS13ZGlm
Zi5odG1sVVQJAAPeurVPhbS1T3V4CwABBOgDAAAE6AMAAJWQwUoDQQyG7/sUAc+d2XpR1nWhyCJI
tdKtD5DOZDuDuzPLJK0W8d2dWrx4EckhgeT/IF/tCG1TsxwHapSlAT5gi+Z1l+I+2AouesQb+ASF
1v5eYX9a1focrvUZNaU884QBzIDMtznY3K2eutWyhce26xb3bQUvgbEneMADdib5SQBFaMxdIvjg
xaMQIAQ8+B2Kj5nmMOwI+pigTzgSvHlx8LJeghOZKq3nl1eqzDWvrsuy1Exmn7wcNWOw2/hOdua/
g7OMGGcSJ+VkHDIsjv8kJuK4T4b4D7bKbrKIpigWy3a9qYDPvyYMqtg4zyDEAlPWRAy+B3H0czNE
tAwmpkRGhqMqiudF1xW1Pvn9AlBLAwQUAAIACABcGLJAGEUKk5swAAB+gQQAJQAcAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2Vycm9yX2xvZy50eHRVVAkAA+C7tU/Ss7VPdXgLAAEE6AMAAAToAwAA
7F1rc9s4lv2+v4KVmmyS6oGsl58zmam0o3Rcm9gu2z3dXZ0uF0RCImISYAOgLfXW/vcFSOplS7Ze
pATqVsqRJYuXOAcX4AFwcfH7J0Gdr7jv1I6cav2kfnTSaDr1aq3+h/P7AxbsD+eMUXXiXBMpKWfO
KXZ94lDpMK4cl7MO7caCeM7vPmXma9dfsm8mX/zjv35/xr42QV3yh/MhMt/dq1fqldqB8/bndsxU
/M4JuXcrZTD4/CIiTJvfq1aOK0fcufx8ubdfaVQaqBYnFxxXDp0HqnznOva5pAxdYuX642VEyBFE
xiFlXV18EeLA4RERWOniymklPRqUlAjBhX51A0qYcmr1w0pV/6v94XyiAXE8TlJCSI9KzcJeyNRe
l6q9B9K+owq5vuAhjUNEHuTeF9znsbohUsk9X6loTyW/4ihyExp0EXksXCL3jFmkzaLELPrW86rf
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
dluXmfALXQ9CdII5xaoR8t7Z2RUnt3m7NL8ixxvitlxZSd824rUhVSpsFja/m7LjWAIg9Hg0j6LO
B2ZhsKtklJiOlrCboq5yUPYTRPbm1WQ+Ww7wISLQ/SM0fjCH3DHTSlkUXstMc/sD9zeqWhRiZQWh
gALdYefgwqQyA9L5qSE6riQ3jsgOjhEZ2vTYt03bYVNi61Qf5U0bWSN4QBnO3GE2bvpoNpicpHno
HTY8+vxkkc7Wd6fTzbbKIlAOD1IxQDU4eg8MuEhV+9nL+6PSCWVjY8dOFnnfg1XZd2iXVdv59uT1
jg92oOxDdcgjhT+o05DyKZ1wq/YPhAk92Os/6nTYy9Nnfz1GNbyg07prOVp6FrL7KRchL5TccdyG
VRphjAzDkDgYKG42V4tcp3/Nu3vn4ppoiuExy1iIJvwsHpsUYWZKowrxC3osI6fgfZd1OoCVQI/l
2ehkH6qmqwwEyoFeagIvysynxkEpCdIFYney7+7hsB4lddz7D1BLAwQKAAAAAABNGLJAAAAAAAAA
AAAAAAAAHAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3N2Zy9VVAkAA8G7tU/ou7VPdXgLAAEE
6AMAAAToAwAAUEsDBAoAAAAAAE0YskAAAAAAAAAAAAAAAAAsABwAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9VVAkAA8G7tU/ou7VPdXgLAAEE6AMAAAToAwAAUEsD
BBQAAgAIAGAYskCWYoSlj2MAABJ5AABRABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdVc2VFbGVtZW50LWRvbS1ocmVmMS1hdHRyLWRpZmYucG5nVVQJAAPk
u7VPwbu1T3V4CwABBOgDAAAE6AMAAO29d1yTW7cuir0goMsOAhYQBCnSpVpBkF6lRkU6hN5LrKAo
olTpIr1GpScUFQWlQ4AIAaJ0EkILoQSS3Dld37f3Ofvsfe899/zuveePb/2xMCQk7ztHeZ5nzDFm
nunranDs5d7LxsbGoXnjmiEb27aTbGxbb+3eCX6T7PfQg43tJJvmtcvGAamzw4Ehh0zqVxfdhU7d
O8W+f/cG98rJLXaHD/lv5+e9/lhJRDxf4Tl+4jRJ4alXc1HWtPBDAttY+MMNr+u/Xh+4fOr8lVvb
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
CwABBOgDAAAE6AMAAFBLAwQUAAIACABIF7JAFPaQ1GcAAABwAAAAPAAcAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUtc3RkZXJyLnR4dFVUCQADx7q1T2u0
tU91eAsAAQToAwAABOgDAACLtjA2NLcCE4YmBobmhgYGFpbGJkZGVq5BQf5BVmmZOanxxZXFJam5
8SmZRanJJflFlfEpiSWJSYnFqXrJyRoWpqaasQrOiXnqJQpFqbn5ZakKiQpwpQrlmSUZCskZmTkp
Ral5elwAUEsDBBQAAgAIAEgXskA4JMW/ZwAAAHAAAAA6ABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHktc3RkZXJyLnR4dFVUCQADx7q1T2q0tU91eAsAAQTo
AwAABOgDAACLtjA2NLcCE4YmBobmhgYGphbmZiamVq5BQf5BVmmZOanxxZXFJam58SmZRanJJflF
lfEpiSWJSYnFqXrJyRoWpqaasQrOiXnqJQpFqbn5ZakKiQpwpQrlmSUZCskZmTkpRal5elwAUEsD
BBQAAgAIAEgXskAFKINwZwAAAHAAAAA6ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC9m
aWxlc3lzdGVtL29wLW1vdmUtc3RkZXJyLnR4dFVUCQADx7q1T2u0tU91eAsAAQToAwAABOgDAACL
tjA2NLcCE4YmBobmhgYGFsYGFoamVq5BQf5BVmmZOanxxZXFJam58SmZRanJJflFlfEpiSWJSYnF
qXrJyRoWpqaasQrOiXnqJQpFqbn5ZakKiQpwpQrlmSUZCskZmTkpRal5elwAUEsDBAoAAAAAANET
skAAAAAAAAAAAAAAAAAkABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC9jYW52YXMvVVQJ
AANKtLVP6Lu1T3V4CwABBOgDAAAE6AMAAFBLAwQKAAAAAAA3F7JAAAAAAAAAAAAAAAAAKgAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvY2FudmFzL3dlYmdsL1VUCQADqbq1T+i7tU91eAsA
AQToAwAABOgDAABQSwMEFAACAAgANheyQDJbtl6AAAAAvAEAAFQAHAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbmRleC12YWxpZGF0aW9uLWNvcGllcy1pbmRpY2Vz
LXN0ZGVyci50eHRVVAkAA6i6tU9NtLVPdXgLAAEE6AMAAAToAwAAvc29CsIwFEDh3ae4oy6SvzZp
Zp2FTIEiJdxcg9AaSaK+vuLsapcznOUbjeTafsMV45ppJpQyfLBH507OppmqmHCJUyTMkcoecavM
oHdnSPOhhJf33kJojZZ7g5YhIFKtkB8N8gVKuCWCJ5V2/ezN+IvrlOxW5HoxyDW5Xpv/cG9QSwME
FAACAAgA0xOyQNDnulliAAAAZAAAAEoAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9wcmVtdWx0aXBseWFscGhhLXRlc3Qtc3RkZXJyLnR4dFVUCQADTrS1T060tU91
eAsAAQToAwAABOgDAACLtjAzMrACE4YmBoamJibGpoYWFuZmVq5BQf5BVuk5qcVG8cm5KfEpqcn5
KalFesnJGiYWluaasQrpOU6ZeSmOJSVFmUk++cmJJZn5eVYKnnlliTmZKQrJGYlFicklqUVcAFBL
AwQUAAIACAA1F7JA+OhE/XQAAADFAAAARAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2Vycm9yLXJlcG9ydGluZy1zdGRlcnIudHh0VVQJAAOmurVPSrS1T3V4CwAB
BOgDAAAE6AMAAIu2MDY0twIThiYGhuYGZuYWJoYm5uZWrkFB/kFW6TmpxUbxybkp8SmpyfkpqUV6
yckaJhaW5pqxCuk57qkljsklmWWpjiUlRZlJVgqZeSmpFQr5pSUK+WkKRYl56alc0dhsMDY2MSTN
htC8zLT8olysVgAAUEsDBBQAAgAIADcXskCXjJF8bAAAAG8AAABFABwAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5kZXgtdmFsaWRhdGlvbi1zdGRlcnIudHh0VVQJ
AAOpurVPTbS1T3V4CwABBOgDAAAE6AMAAIu2MDY0twIThiYGhuYG5gamxmZGJiZWrkFB/kFW6Tmp
xUbxybkp8SmpyfkpqUV6yckaJhaW5pqxCuk5LkWJ5REREVYKiSUlqbkFJQol+QqJycmpxcUK+aUl
CvlpCkWJeempCmWpRSWZQGEuAFBLAwQUAAIACAA3F7JAVmI95HYAAADeAAAAXwAcAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2Zhc3QvY2FudmFzL3dlYmdsL2luZGV4LXZhbGlkYXRpb24tdmVyaWZp
ZXMtdG9vLW1hbnktaW5kaWNlcy1zdGRlcnIudHh0VVQJAAOpurVPTbS1T3V4CwABBOgDAAAE6AMA
AIu2MDY0twIThiYGhuYG5gbGFibGlgZWrkFB/kFW6TmpxUbxybkp8SmpyfkpqUV6yckaJhaW5pqx
Cuk5LkWJ5REREVYKiSUlqbkFJQol+QqJycmpxcUK+aUlCvlpCkWJeempCmWpRSWZQGGuaGzWmRqa
GdLGOgBQSwMEFAACAAgANxeyQBaPer5hAAAAZAAAAEoAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9mYXN0L2NhbnZhcy93ZWJnbC9udWxsLXVuaWZvcm0tbG9jYXRpb24tc3RkZXJyLnR4dFVUCQAD
qbq1T6m6tU91eAsAAQToAwAABOgDAACLtjA2NLcCE4YmBobmBuaGRkBsYmjlGhTkH2SVnpNabBSf
nJsSn5KanJ+SWqSXnKxhYmFprhmrkJ7jlJmX4lhSUpSZ5JOfnFiSmZ9npeCZV5aYk5mikJyRWJSY
XJJaxAUAUEsDBBQAAgAIADUXskBgQkIAmgAAAFYEAABOABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJhdy1hcnJheXMtb3V0LW9mLWJvdW5kcy1zdGRlcnIudHh0
VVQJAAOmurVPSrS1T3V4CwABBOgDAAAE6AMAAL3SvQrCMBQF4N2nuKMuktv8NrPOQqZCkRLSaxFa
I2nU11ecXb3LGc7yceD0TqL130Al0ApjtRRaGX8M4RT8NNPaDGkZh5FSHqnsU9oq19rdGab5UOKr
6zoPsVZa7hVqhpgSrSvkR4V8gRJvE8GTSr1+6k3/i0O0LSdnkHOdtE4xcgq14+Q0Mq5TWjrk5BxK
Rs40QnNyuv3TVd5QSwMEFAACAAgANReyQDAwTJbaAAAALwcAAFAAHAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3LWVsZW1lbnRzLW91dC1vZi1ib3VuZHMtc3Rk
ZXJyLnR4dFVUCQADprq1T0q0tU91eAsAAQToAwAABOgDAAC90j1LxEAQBuDeXzGl18h+zH7WXi2k
Chxy5DaTICRZ2d2cf19R7K5QlGmmmObh5X1PXksXP49EIZ2wzirlgo7Hrnvq4rxQVee0jueRUh6p
PKR0jz64wzPMy2MZ3o4LrbS1GqEM20yQ9wZ5gkvet7HClAtc9mmicne6RWlUnovyyEUhesFEWRRc
XVnnHBPlJCIT5a1XTFQQnqur4L38MdX3fYShNVpfG7QMQ0pU67f4xV+ptJeP900OhdWGJxlKaQRj
Mmms4eSCDYyc0qycFr9Y5d9mop0J/0+9A1BLAwQUAAIACAA1F7JA8brEVIEAAACKAQAARAAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC1z
dGRlcnIudHh0VVQJAAOmurVPS7S1T3V4CwABBOgDAAAE6AMAAIu2MDY0twIThiYGhuYGZhaGxmaG
BmZWrkFB/kFW6TmpxUbxybkp8SmpyfkpqUV6yckaJhaW5pqxCuk57qkljsklmWWpoXmZaflFuVYK
mXkpqRUK+aUlCvlpCkWJeempXNFYrTA3M6atFSaGloampFnhWFJSlJlEvA1GJoZGVLMBAFBLAwQU
AAIACAA5F7JAAlKy2JoAAAAUAwAASQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3R5cGUtY29udmVyc2lvbi10ZXN0LXN0ZGVyci50eHRVVAkAA626tU9RtLVPdXgL
AAEE6AMAAAToAwAAtdGxCsIwEIDh3afIqIskTa53zdahOAoFpyJFk7QE2gZiFB/f4uygYDi49ee7
60gK1O8lFBfIUa0DUuqmbY+tHid3K3oz2946E6yLe2O2iircndk4HVyqTfIPV6cU/VUzv1j3ZOGe
WBhYvCyj23QfC1WBvxVOix9CnL9OgAJVZUWAIgF5ESUBYlZESSRVXgTx9VBZEcQR/viJF1BLAwQK
AAAAAABDF7JAAAAAAAAAAAAAAAAAIQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvZG9t
L1VUCQADvrq1T+i7tU91eAsAAQToAwAABOgDAABQSwMECgAAAAAA4ROyQAAAAAAAAAAAAAAAACgA
HAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2RvbS9XaW5kb3cvVVQJAANmtLVP6Lu1T3V4
CwABBOgDAAAE6AMAAFBLAwQUAAIACABgGLJAY64PtdUAAABmAQAATwAcAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLW5hbWUt
ZGlmZi50eHRVVAkAA+O7tU/ju7VPdXgLAAEE6AMAAAToAwAArY9BasNADEX3c4pPNlk48lB6AQdK
IZDSQgpdK7ZiG8YeY8l1cvvOOFfoRvr6iPclIoK3YfKBH3ExMlGjWXQJpv7Gar6Jg//pxyauft0a
TXOcZLYHacdp7seWRh6E5D5JbdKUdje4oij+jcy1LRye3KoCvRxeUeRSVQ7fXa+YuBXkCMXaiXUy
o5E68JwYYPwmwdcgyLgGu9x2qDseW1GkdTwv2Ou2gX7czLfPjxKn26YzPMWoih6QPtqHABVJ8K/j
5YJBVPMNVwlxLR0cZdsV78fT2f0BUEsDBBQAAgAIAGAYskAqIOCIwwcAAPsYAABXABwAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dp
bmctbmFtZS1wcmV0dHktZGlmZi5odG1sVVQJAAPju7VPZrS1T3V4CwABBOgDAAAE6AMAAKVYbW/b
thb+nl9BJOgCDJFsx3YX26mHLmmwAdtdgRTYx4KSKIsNJWokZcfdvf/9Hr7JkizZAdaitcSXw/Py
nOcc6l6qPSPriyWjxcsNWm6ppIok6J8LBH8UeVVBQmIusKK8WKKCF2RlpiIuEiKCiCvF8yWalK8o
gWeSrC7+d2HFOSExZ1ws0dV4ujBz4RNl5JGmqZuPcPyyEbwqksAvTe/03+ZB9gTJGU3QVZIkdi7l
hQpSnFO2X6KcF1yWOHYK5lhsKKg8ITka26GSg3HGDkEYWLQlRqFs0tF0Op32yJe4kIEkgqaNSUm/
E3NG89CAkVQt0Tic+/GEypJhEKJwxEgQE8bsxI4mKgMB4/E7pyNOElps6t1WPxce/dSOkFOZFhko
purlGd8S0bFqPp+vhhxOiHVFqOPyO5wl3eaUcQymCLrJVDt6etUDuADToj6Kg/upAjPHZ8x2VgZG
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
rq4ynslZI8MjsM0cB/ygoPJa9+09uhUWFdEav8jIuf8UVYky+evY5C+rrmd78Y2go5oxsAyC0fPg
uYfjMlDfxBqEbwVUBEakGzvM05ij9BRrFqgcYxNdOy5lUqCJ0/Lz65hhX004mesbEZYPPNr7MgQI
s5qftuczbiySMhQc2jGbzYx0FKEJRDba1CaRptel/UtqV7vb7g9v0uSp1BNQSwMEFAACAAgAYBiy
QNq/pnB7AAAAmwAAAFMAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1uYW1lLWV4cGVjdGVkLnR4dFVUCQAD47u1T+O7tU91
eAsAAQToAwAABOgDAAAdjsEKwjAYg+99irDLLrJ3ELx4EIX5Av/W2Ba6VvZPi29v21NC+Ejy9EHx
Fkcc1ENRPA/PHZZrlD0kB8G3GlkikWSjxdBkwOolOSoqjhKSzWXUTiCkHl7utwnXV/etvM6oUk/4
5c8YI5Ss5Y/zPGOjavuwMOYyGdNC8wdQSwMEFAACAAgAYBiyQMD17UN9AAAAmwAAAFEAHAB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRv
d2luZy1uYW1lLWFjdHVhbC50eHRVVAkAA+O7tU/ju7VPdXgLAAEE6AMAAAToAwAAHY7BCsIwGIPv
e4qwyy6ydxiIMFAU5gt0a2wLXSv7q8W3t+0pIXwkeVoneCtDJEoSZMtkeUBz8+pwwUDhW4xaPRHU
To2+So/NqmAoKDiyCzrmQRoBF1p4vt9GzK/ma3mZEaGc8IufwXsIWcof07Jgp0j9sNLHPHbdZZqv
3R9QSwMECgAAAAAAQxeyQAAAAAAAAAAAAAAAACwAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9m
YXN0L2RvbS9TdHlsZVNoZWV0L1VUCQADvrq1T+i7tU91eAsAAQToAwAABOgDAABQSwMEFAACAAgA
QxeyQKzBWcPHAAAAIwEAAEcAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2RvbS9TdHls
ZVNoZWV0L2RldGFjaGVkLXN0eWxlLTItd2RpZmYuaHRtbFVUCQADvrq1T766tU91eAsAAQToAwAA
BOgDAABdj0FLw0AUhO/7KwaEHhOR9pKsCylaEKQK9Q88sy/Z0HW3ZF9aivjf3VgP1et8M8OMdkzW
6CRnz6aw7PGJd2r3/RinYCvcdEQ1vlCQtf8RdTPS5SWsy0vVYWSznnosV3e3qwpvnATiSLDwUvsh
7Be91GDPHxwkIQZ/hqMj46cmOeasnhwHDAE2ttPsK5TaRrlWKrw2u51qOuERedwQeki8wjodKKD1
lNJ9/mVme96aRfOH5azZNE/PFcLk/a9DPbxsH5Uu5zPfUEsDBBQAAgAIAEMXskCJ8tGEbQAAAIgA
AABJABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC9kb20vU3R5bGVTaGVldC9kZXRhY2hl
ZC1zdHlsZS0yLWV4cGVjdGVkLnR4dFVUCQADvrq1T766tU91eAsAAQToAwAABOgDAABdysEKgkAU
heH9PMV5gojQjUSg2FYDe4GhOTmD0x1wroVvb+6i7ff/zTKiKE/HssKdWaHeKs4xyHQBI18UzUgS
V3j7JrKukdmTX/14CoLApceyfwdjuqS/UuFWD4Opn8oZ1rkgIzT957bvrmYDUEsDBBQAAgAIAEMX
skDK/LlYxQcAAHkaAABNABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC9kb20vU3R5bGVT
aGVldC9kZXRhY2hlZC1zdHlsZS0yLXByZXR0eS1kaWZmLmh0bWxVVAkAA766tU++urVPdXgLAAEE
6AMAAAToAwAAvVhrb9s4Fv2eX0EkaAMMKtmO7U5sp160eWAHmO0WSL8XlEhZbChRK1JJ3N3973P5
kiVZsg20mBatJT4u7/PcQ91IteV0fbbkLH96h5bPTDJFCfrvGYI/ir6qgNBYlFgxkS9RLnK6MlOR
KAktg0goJbIlmhSviMAzJauz/59ZcU5ILLgol+hiPF2YufCBcXrHksTNRzh+2pSiyknglybX+m/z
IHuCFJwRdEEIsXOJyFWQ4Izx7RJlIheywLFTMMPlhoHKE5qhsR0qBBhn7CgpB4ueqVEonXQ0nU6n
PfIlzmUgacmSxqRkP6g5o3lowGmilmgczv04YbLgGIQoHHEaxJRzO/HCiEpBwHj8xumICWH5pt5t
9XPh0U/tCDmVWZ6CYqpenopnWnasms/nqyGHU2pdEeq4/AlnSbc54QKDKSXbpKodPb3qFlyAWV4f
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
CK7cHDg/fIeIYGQ8mmCnVISEs9CJcwmSzc5mMS6NppMpcOeZr5bF9p4d5TmjFfHlyL2wW8hFoLTW
/+TZXooN37SmAd3eVNCzNI3CuuxxV62WVY33KxnireA+DPHwAA48cpSMFMMEb8+ML2aefzI+PEcM
ES71Zd4tFBS2SX5mNd7arlPU7oRPsM4NcQ9Jv3v9d//cvmxqxBKCwuPr9kl9AlBLAwQUAAIACABD
F7JAocrZfnQAAACOAAAARwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvZG9tL1N0eWxl
U2hlZXQvZGV0YWNoZWQtc3R5bGUtMi1hY3R1YWwudHh0VVQJAAO+urVPvrq1T3V4CwABBOgDAAAE
6AMAAE3KQQrCMBBG4X1O8Z9AithNKEJEBUGqUC8QzNgEpxMwE6W3V3fdfu/t6ohNu25aixsVhUav
6DjJcwtimki0IAvPiP5NKDozlUj0008kQRKEfK//b2VMn3UpFlc3DMY9lF7wISQZoXmRj+50tpDK
bPaX/mC+UEsDBAoAAAAAAPYTskAAAAAAAAAAAAAAAAAkABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZmFzdC9sb2FkZXIvVVQJAAOPtLVP6Lu1T3V4CwABBOgDAAAE6AMAAFBLAwQUAAIACABaF7JA
YR2YdIMHAADNFwAAQwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvbG9hZGVyL2xvYWRJ
blByb2dyZXNzLXByZXR0eS1kaWZmLmh0bWxVVAkAA+y6tU+PtLVPdXgLAAEE6AMAAAToAwAApVhb
b9s2FH7PryASdAGKSLZjO4vtNEOXOOuA3rBkT8MQUBJlM6FEjaSSuNv++w5vsiRLSYa2aC3xcngu
3/nOoc6k2jByvjdnNL8/QvMHKqkiCfp7D8EfRZ5UkJCYC6woz+co5zlZmKmIi4SIIOJK8WyORsUT
SuCZJIu9f/esOCck5oyLOToYjmdmLryijFzSNHXzEY7vV4KXeRL4pemp/ls/yJ4gOaMJOkiSxM6l
PFdBijPKNnOU8ZzLAsdOwQyLFQWVRyRDQztUcDDO2CEIA4seiFFoPWppOh6PO+RLnMtAEkHT2qSk
34g5o35owEiq5mgYTv14QmXBMAhROGIkiAljduKRJmoNAobDN05HnCQ0X1W7rX4uPPqpGSGnMs3X
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
InrAL9bk3H+Lpqul2xus21tVkqpzogDrKefHCnbbw8tw6A32Zhg2T0bBfwbGvcJbsDSfzgXjktiI
RFHYUgixIHNBkphYyoJVFrtCnBBm7+tire+aTW9eR4WRc03WKa6n3uPxi23B87jvd1EuxvOFQ/lo
Gt1en/0BUEsDBAoAAgAAAFoXskDW0dp5LgAAAC4AAAA/ABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvZmFzdC9sb2FkZXIvbG9hZEluUHJvZ3Jlc3MtZXhwZWN0ZWQudHh0VVQJAAPsurVP7Lq1T3V4
CwABBOgDAAAE6AMAAEFMRVJUOiBUZXN0IHBhc3NlZDogW29iamVjdCBIVE1MRm9ybUVsZW1lbnRd
CgpQSwMEFAACAAgAWheyQDRdBubFAAAAGgEAADsAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9m
YXN0L2xvYWRlci9sb2FkSW5Qcm9ncmVzcy1kaWZmLnR4dFVUCQAD7Lq1T+y6tU91eAsAAQToAwAA
BOgDAACdj71OwzAURnc/xbd1SE1UmPCUqjI/UkoRCRNiMMntD3Js6/paat6eCN6A6QyfdPQdrTVq
mVLt3RyLaKEsmikXL7k+uiy1j24k/sVzeOV4Wtas6ZpoEBpv5CpQVVX9y+IGKc7/OZoGerO+RbVZ
36FpVLU7vHSH1mJvu277aA38JRDuDd7D4MrpLOjnRJY5ssHOhRAFmQSJYyKWGavMwwrxiFC8V9i2
9q036JdvSC5nGg0+4tf30oGnft8+RJ6sp4mCfCqoH1BLAwQUAAIACABaF7JAKSZ3aXQAAAB9AAAA
PQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvbG9hZGVyL2xvYWRJblByb2dyZXNzLWFj
dHVhbC50eHRVVAkAA+y6tU/surVPdXgLAAEE6AMAAAToAwAADco7DsIwEAXAPqd4Xc6AuygyUDhE
wqZCFMYsPzlea70pcnuYesb55GdnMVnvh4M1yJ9C2BlcSorr660IWyUrwmIwxlJY0UhRhSuJbuib
pB78RFlz7gZnz8EgUPuX2Bo9DK58/1JSHMPk9iyLzbRQ0VvX/QBQSwMECgAAAAAADhSyQAAAAAAA
AAAAAAAAACEAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L3hzbC9VVAkAA7y0tU/ou7VP
dXgLAAEE6AMAAAToAwAAUEsDBBQAAgAIAHMXskCBSnetSwAAAKwAAABMABwAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3Rk
ZXJyLnR4dFVUCQADGbu1T7y0tU91eAsAAQToAwAABOgDAAC1zLENgDAMRNE+U9wKtGzjwAVZcmxk
LOZHomAD6q/3t5inmpSGg5mRK4YaAVMnFtA46YVbUqUbW3LnUNdXxMBh0cW+juJVbfvl+gBQSwME
FAACAAgAcheyQG1H1F6FAAAA8QAAAD0AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L3hz
bC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQJAAMYu7VPu7S1T3V4CwABBOgDAAAE6AMA
AK2OsQ3DMAwEe0/BBRQW6TRDyiwgy3RMRBINkoKd7e3EK6R5PP6Luyx15ZKcpQGpikaYudAvIiLW
5vhix43GN3vIi0rlXgNtho/0ke5PMjeckznuVlDJpGsmw33RMEm+nSsUbgR3oEKVmgPXVdSH84lX
hQi9pfEEu0CRNP1RIFwImr4mwwFQSwMEFAACAAgAcheyQFBdSDeMAAAA+AAAAD8AHAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9mYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRV
VAkAAxi7tU+7tLVPdXgLAAEE6AMAAAToAwAArY7BDcMwDAP/nUILuHr0lxn67AKKozRCZSuQZaTd
vkmzQj8EyQMIZiurKIVYBXY3H2AW5Z8MiFhq4FMCNx5fEikvbkV6Sbw1vNPHejy4RcOZWuC7KTo3
6565HSnSSFOSsppH6i7XvQOVynADVi5cA0562clwWhigVxr3E2GgRtM/zlRrPS/HEAWpXr5QSwME
CgAAAAAAChSyQAAAAAAAAAAAAAAAACIAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L3Rl
eHQvVVQJAAOztLVP6Lu1T3V4CwABBOgDAAAE6AMAAFBLAwQKAAAAAAAKFLJAAAAAAAAAAAAAAAAA
MAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL1VUCQAD
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
yRsv31eldvdF0rweQVeVEPc2rCLRq+tr3vOhDzXGdTXkR0uYwvCo3BbeTaf7C/giz5bxemkUKEFT
EiX3uvgpzL+sV/ztUCZq5xgSL6F0D8/SaRKjtDwwTqOY9aNd58kNkcfL6+stwEsfP6XpzydZUWbp
i3k8O2hkC/sIpisMiy2zPKc7VIGm6zwuH65p/ndVaOB492EJdnFKP4waajdCGKgnYZLlghKLMjF8
0D09wypIWHIqD1UlywZQsDf7suUqLIoXf67m9SVLZsE/Yy47UFBM83jFL1UHNGhbBcc5vjwCdmGt
gOKWBPZcY5pnRYGn7zxOaXUlEoqY53hxT7iVyVzLk8CU0eW82LDGqUUGu4Mc7ZB7lVB2eyKvlJPr
mYPBdnztF2Cpb/3G//X/A1BLAwQKAAAAAAA6FLJAAAAAAAAAAAAAAAAAIQAcAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL3BsYXRmb3JtL1VUCQADELW1T+i7tU91eAsAAQToAwAABOgDAABQSwMECgAA
AAAAOhSyQAAAAAAAAAAAAAAAADAAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9VVAkAAxC1tU/ou7VPdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAADoUskAA
AAAAAAAAAAAAAAA1ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvZmFzdC9VVAkAAxC1tU/ou7VPdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAADoUskAAAAAA
AAAAAAAAAAA6ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvZmFzdC90ZXh0L1VUCQADELW1T+i7tU91eAsAAQToAwAABOgDAABQSwMECgAAAAAAOhSyQAAA
AAAAAAAAAAAAAEgAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9VVAkAAxC1tU/ou7VPdXgLAAEE6AMAAAToAwAA
UEsDBBQAAgAIAGAYskBjEke+gWUAAOxzAABrABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29tcGxleC1qb2lu
aW5nLXVzaW5nLWdwb3MtZGlmZi5wbmdVVAkAA+S7tU8QtbVPdXgLAAEE6AMAAAToAwAA7fx3VFRN
uy+KNqCYQEByVhCRDJIzKgISJWcQkJwk56AIkhGQnJScmpxTI1mi5JwzTc6ZW9P3W/tba+9z9xnj
nDPuuX8sxvuO0XbPrjmr6nl+4amqDngnK455n+Q+DAbDfCshqgCDoT2GwVDV7qKDd+IdP3+EwR7D
3oq+VHJO3Jx2cZdevb6z29dB9ejtFxPGJ7doHmUUcP4MVMiIqTjmxLcyNS03Qzq8kXIzzcs1yYZX
RGhoSPnWZLzckjp9K0EzoeR/NweOE97dvYPl1NvDaBzn8eysTrewjmfSrqGPbzWO11gsY9hs9g4O
9BeOpvTRESYK/Sl5fkR99ffVw+Z7d/9+yotB+/jvO0usid7Yf69v/r94UfDmLdEMhd/XNDQ0P20W
21JN7TfH+jNfTlLJVMdOy6zvP2dmbvtOp4hNRhY8N/eew+RPo9Uqk/myCWYOl2mY0NxzyQ0102sy
9YcWCQW+Ry9FRfno4SoXDUsP6fEXFhfZPM7tnd3cXmcovMwbTs3Ovstu3NvSTukVrFFu9oSW9o4G
fOSlnmahbBJfletRrmZr/tDh+iAOLq7PQ3K+9yfb07FCHnwv2Nm3bAsmys1rtacjXabKQ6c5t0ty
GcOqRUU/UIzfk1BSwgsl4/3s7e3dfufSCRUV5rQz80ZaGkM2RQiTkpKy0lWPjp4+IrjaXojJMIiD
EYeAwK+7W9rZxWWc5mrgLIJBPGP9O6chnfXIUDF7teSUYQ6TWrPyho+/f6LcMUH+0JCS3r7ec1ZW
7JycnGy14lR12mGz8ufPn7MiiTQjA3mZmHo2DzEOPrwlqbA92lAOoqW0dTCIZbFD6jCSO1Ery24n
c7+OHikurX41VWH2oIDVSKMLH2pcy0eG8lVfd7doApclNja293JXDBprww73kycoDQ0NRJxmeEr0
Ub/tjzfHfTo6JNLT03+8CSLYPThobgsh9d3KGGS8YuyssJw8jEaZm2/+SsSmf8vdw6O/zsXuw4cP
HStpXjfXryauzo8iZdqVkqUz5Pm8aohIuSzuwoi4LGKLtkfgmqmrk/Vu3FRUVEUffj/68uXLDwfk
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
LEuwoAtgS8BXAM1kzStw9yzjbGWhnI3+LCEWBE8aXY1y/5alPM+WlsiFXLNCcedmHduCzpVnKf39
aJuTVC41WCY48rihkHLzt6Cj/MVwQV9Jkhw4XWFlg3kQla0ufOaiMXsLGK01t4w4FUFAPPcBW41s
xibTzuGAOHjNu8AIRwa/bm4ucEyPZlmy6FKQjN2Nj05+WcDW6hMQTVUp6BAuGp/+O8BnXwZrrqKh
zy27m0wmPecuuKi/c4xaq4b6u0zTmTW8st5hEKwzJlyIpzVofJEOga4jCj1bePs+Lx+AzhbETAFP
hv6YvX16Uez5wYdKKZW+DRL/8LUB/rJmLHzaNFAgiF5/OMR0mfyAYeFDgS1Xe8D0zL04VF1igVqy
gPlKKhHxDtEBbgc+pbQOO4/B6XcMlIMrZLxTfpUQ2GOulDLMsa94r4BCC1O0NalIfrVgt99BEaeh
m02OXRnuWTzoGOSfyGPPDuGD3BHBWTWe5FeAD4hWLlvqsHDQ8XShNyyMexI/UobUZ9n4f/IDzYF+
N/ZtQKNxPz2ytB+KNCO7yf0bUEsDBBQAAgAIAGAYskCQW8WUunwAAOKMAABvABwAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0
aW9uYWwvY29tcGxleC1qb2luaW5nLXVzaW5nLWdwb3MtZXhwZWN0ZWQucG5nVVQJAAPku7VPELW1
T3V4CwABBOgDAAAE6AMAAO29dVRXbfv2iY20AQgICCrd3SiIoCCIdHd3NygtpYh0itLdHYLSJd2I
dHfXnNv7eZ73975rZs2aWbNmzaz1+/5xy80X9nfv6zrP4/gce1978/61pCgmGiEaCgoK5guxZ29Q
UK48QEG5rIh6Gb6DexeXEv6hthVRtNUx1NMxsbEzQ2HS0dFh1uJm5mRjZ9Ph0mLm4mDV49ZnYmNl
Z9bR09FhHyOkuIaC8gDlxbOnso5xqxMOqncVxjg3i2yfxjwQeU0+jIPzVORSMNl1duOg9wU/kiro
K2bCtAPol+O1JYKYJ2Nw0JsuRyi+1kGnuUp0XbrgeT5KgNh7KlQqt5H4gw9OiU4UVaxFRW74HlOC
px0J8TZddrncRS7jxPqP74rcgn1F6SFG17nx94tRzXewIyhJOoqal+DfxXt4isj3eXyv4cE/b0O0
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
wJvL7bjYrx1oA3kGDvMKo99oWJU0rtDV69dHSYnMHzLb/Cb4zKgx2YjZ7+ROc3Ry0u7BM6ZoYMox
NlpiUtJ9fMUc5Umtdaznz+Zm9KWKpiEND3qpAbStfayIQd0qoIvRTi+wF6OpRD6nQtUKa2dTX4oF
wpwDb/Ua51fRLI+hwLq7N6ARdvlIDG51AeeMYCS6br8f096zSmX3uoFdmths92o5tCOed2hEGXlK
r0EoBiGbmPuzwwEFDYIAOzVKILMGmB0fHJhG5JEc6zUH6mQ/AOZ3MyBnOzf9thDtjsMQJiQyHCk6
989HbkV7pj1f32e0w7Vy0iliVsWPgqHyRZC8+ENzI41Z77f3gZgQl4gPbspbW1tDRgHwbwunPZiP
tSCMPKD+XjhiiogmHMvr16+r7NdmreawSPgcQXh8fH0FtlseQqguYGTiB3DN13osHoGBgZGtUVc7
rUDDgrx6wwpQMW+db7czdumXQ0Ic6yxWzoFUSS+XKfvs2TNt7eTGGxK5Jm8+6EKQ7RpMdjDWI20d
yFJw2V8lICRUTpWIhiFWS5h9Ee94uw4dOlxK8Mz2ZwAuTCdYw+5PfI1hi0h04NuJSruTk406tew/
x3srwn5YA+Y5dhuTZ4D4cPisVr8JOJr9btiYY6PE2380IUIe9Dc7q+tnYkVGRZUOP54mlWhfgIfy
ZLJgmK9c8QoKSr3NtcFfVPDvWsBVdBSUJ8z/nL0UQ+4Tv/vw+2UUlNdB//3Gf7/x32/89xv//cb/
n944xy5kuy1QE/36K/LIjxciks9yhTQ9/zdQSwMECgAAAAAASBSyQAAAAAAAAAAAAAAAACoAHAB0
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS9VVAkAAyi1tU/ou7VPdXgL
AAEE6AMAAAToAwAAUEsDBAoAAAAAACsUskAAAAAAAAAAAAAAAAAvABwAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC9VVAkAA/G0tU/ou7VPdXgLAAEE6AMAAATo
AwAAUEsDBAoAAAAAACsUskAAAAAAAAAAAAAAAAA1ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
cGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9VVAkAA/G0tU/ou7VPdXgLAAEE6AMAAAToAwAA
UEsDBAoAAAAAACsUskAAAAAAAAAAAAAAAAA+ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxh
dGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA/G0tU/ou7VPdXgLAAEE6AMA
AAToAwAAUEsDBAoAAAAAACsUskAAAAAAAAAAAAAAAABLABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvVVQJ
AAPxtLVP6Lu1T3V4CwABBOgDAAAE6AMAAFBLAwQUAAIACAANGLJA4KUuw3gAAADmAAAAewAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJp
dHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWlmcmFtZS1pbi1tYWluLWZyYW1lLWFsbG93ZWQtc3Rk
ZXJyLnR4dFVUCQADSru1T/G0tU91eAsAAQToAwAABOgDAACLNjQwNjS0ApKmplaGJgaG5kbGhsYm
ZhbmJlauQUH+QVbJqUUl8WWpRZlplfEFRfnJ8XnFxXrJyRrmJiaasQrOrkEh8QHenhFhYBXOQMUK
aflFCoZG5noGQGiokJaYmZOaopBaVGSra2FoYcgVjd1KCwMjA1pZCQBQSwMECgAAAAAASBSyQAAA
AAAAAAAAAAAAADIAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS92
aXJ0dWFsL1VUCQADKLW1T+i7tU91eAsAAQToAwAABOgDAABQSwMECgAAAAAASBSyQAAAAAAAAAAA
AAAAADYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFs
L2dwdS9VVAkAAyi1tU/ou7VPdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAAEgUskAAAAAAAAAAAAAA
AAA7ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9n
cHUvZmFzdC9VVAkAAyi1tU/ou7VPdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAAEgUskAAAAAAAAAA
AAAAAABCABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVh
bC9ncHUvZmFzdC9jYW52YXMvVVQJAAMotbVP6Lu1T3V4CwABBOgDAAAE6AMAAFBLAwQKAAAAAAAy
GLJAAAAAAAAAAAAAAAAASAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3JtL2Nocm9t
aXVtL3ZpcnR1YWwvZ3B1L2Zhc3QvY2FudmFzL3dlYmdsL1VUCQADkLu1T+i7tU91eAsAAQToAwAA
BOgDAABQSwMEFAACAAgAMRiyQD+DNteAAAAAxAEAAHIAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9wbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy93ZWJnbC9pbmRleC12
YWxpZGF0aW9uLWNvcGllcy1pbmRpY2VzLXN0ZGVyci50eHRVVAkAA467tU8rtbVPdXgLAAEE6AMA
AAToAwAAizY0AgIrKGliYGhubGBgZGxmZGRi5RoU5B9klZ6TWmwUn5ybEp+Smpyfklqkl5ysYWJh
aa4Zq5Ce41KUWB4REWGlkFhSkppbUKJQkq+QmJycWlyskF9aopCfplCUmJeeqlCWWlSSCRTmisZh
oYWxBV0tNDcHculpoYWhAY0sBABQSwMEFAACAAgAMhiyQFElDjRhAAAAZgAAAG0AHAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZh
cy93ZWJnbC9yZWFkLXBpeGVscy1wYWNrLWFsaWdubWVudC1zdGRlcnIudHh0VVQJAAOQu7VPkLu1
T3V4CwABBOgDAAAE6AMAAIs2NAICKyhpYmBobmxgZGBubmpiYeUaFOQfZJWek1psFJ+cmxKfkpqc
n5JapJecrGFiYWmuGauQnuOUmZfiWFJSlJnkk5+cWJKZn2el4JlXlpiTmaKQnJFYlJhcklrEBQBQ
SwMEFAACAAgAMBiyQGmaONtyAAAAyQAAAGIAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0
Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRp
bmctc3RkZXJyLnR4dFVUCQADjLu1Tym1tU91eAsAAQToAwAABOgDAACLNjQCAisoaWJgaG5kaW5u
YWBkaGTlGhTkH2SVnpNabBSfnJsSn5KanJ+SWqSXnKxhYmFprhmrkJ7jnlrimFySWZbqWFJSlJlk
pZCZl5JaoZBfWqKQn6ZQlJiXnsoVjd0OQyNLU9LsCM3LTMsvysVqCQBQSwMEFAACAAgAMhiyQPh7
Ia1rAAAAcQAAAGMAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS92
aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy93ZWJnbC9pbmRleC12YWxpZGF0aW9uLXN0ZGVyci50eHRV
VAkAA4+7tU8rtbVPdXgLAAEE6AMAAAToAwAAizY0AgIrKGliYGhubGBgamJsYW5g5RoU5B9klZ6T
WmwUn5ybEp+Smpyfklqkl5ysYWJhaa4Zq5Ce41KUWB4REWGlkFhSkppbUKJQkq+QmJycWlyskF9a
opCfplCUmJeeqlCWWlSSCRTmAgBQSwMEFAACAAgAMhiyQF1LIdx1AAAA4gAAAH0AHAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZh
cy93ZWJnbC9pbmRleC12YWxpZGF0aW9uLXZlcmlmaWVzLXRvby1tYW55LWluZGljZXMtc3RkZXJy
LnR4dFVUCQADj7u1Tyu1tU91eAsAAQToAwAABOgDAACLNjQCAisoaWJgaG5sYGBsYWZmZmLlGhTk
H2SVnpNabBSfnJsSn5KanJ+SWqSXnKxhYmFprhmrkJ7jUpRYHhERYaWQWFKSmltQolCSr5CYnJxa
XKyQX1qikJ+mUJSYl56qUJZaVJIJFOaKxm6huZmRMW0sBABQSwMEFAACAAgASxSyQAuTInBhAAAA
ZgAAAG4AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFs
L2dwdS9mYXN0L2NhbnZhcy93ZWJnbC9yZW5kZXJidWZmZXItaW5pdGlhbGl6YXRpb24tc3RkZXJy
LnR4dFVUCQADLbW1Ty21tU91eAsAAQToAwAABOgDAACLNjQysDS2gpImBoamZkBgbGJibGblGhTk
H2SVnpNabBSfnJsSn5KanJ+SWqSXnKxhYmFprhmrkJ7jlJmX4lhSUpSZ5JOfnFiSmZ9npeCZV5aY
k5mikJyRWJSYXJJaxAUAUEsDBBQAAgAIADAYskAO2ZPLmwAAAGoEAABsABwAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52YXMvd2Vi
Z2wvZHJhdy1hcnJheXMtb3V0LW9mLWJvdW5kcy1zdGRlcnIudHh0VVQJAAOMu7VPKLW1T3V4CwAB
BOgDAAAE6AMAAL3TPQvCQAwG4N1fkVEXaa73PessdCoUKcc1FqHtyfXUv28HR1eT4R2yPLyQdCi2
8d+UFRrhjKzRKvTnprk0fpxoFX2ch36gmAbKxxj30jpzuMI4nXJ4t23rIZRC86NASRBipHWF9CyQ
bpDDMhK8KJf7tt51v0GhdMULOutYwa2g5gW5G2qLihOUziLr0aiqrplBIyQriKj/9PgfUEsDBBQA
AgAIADAYskAtUKF82QAAAFEHAABuABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52YXMvd2ViZ2wvZHJhdy1lbGVtZW50cy1vdXQt
b2YtYm91bmRzLXN0ZGVyci50eHRVVAkAA4y7tU8otbVPdXgLAAEE6AMAAAToAwAAvdO7asQwEAXQ
Pl8xZdIEPUbPOlsHXBmWsHjlsVmwrSDJye/HkKRcSJNRoULN0R1dnaU6VvzZUUingjOICnU8dd1r
F+eFqrqkdbyMlPJI5TmlR/TBPb3BvLyU4fO00EpbqxHKsM0EeW+QJ7jmfRsrTLnAdZ8mKg/nO5i3
jg0zWiIfFoxnw7wwfMk8ysCHOc9WECNQIx92zJENU9L8/c36vo8wtEbre4OWYUiJav01vy/wQaXd
juM7oNXSWK50VlthWdOhULzjRETBC3rtWMHjQwi2wlgZ/qGdX1BLAwQUAAIACAAwGLJAsAP14n4A
AACSAQAAYgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3JtL2Nocm9taXVtL3ZpcnR1
YWwvZ3B1L2Zhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC1zdGRlcnIudHh0VVQJAAOM
u7VPKbW1T3V4CwABBOgDAAAE6AMAAIs2NAICKyhpYmBobmRpYWBuaWFuZOUaFOQfZJWek1psFJ+c
mxKfkpqcn5JapJecrGFiYWmuGauQnuOeWuKYXJJZlhqal5mWX5RrpZCZl5JaoZBfWqKQn6ZQlJiX
nsoVjdUSCwNTM9pbYmpiZkaaJY4lJUWZSSTZYWlmTjU7AFBLAwQUAAIACAA0GLJAciWdEZkAAAAk
AwAAZwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwv
Z3B1L2Zhc3QvY2FudmFzL3dlYmdsL3R5cGUtY29udmVyc2lvbi10ZXN0LXN0ZGVyci50eHRVVAkA
A5O7tU8wtbVPdXgLAAEE6AMAAAToAwAAtc+9CsIwFIbh3avIqIvk5+R36yCOQsGpSNHktATaBmIU
L18HR5eC+YZvfXk6xj9z3wfKtKCgQUgh3aFtT60bJ7zz3s+hD+hTwLz3fgvG6t2FjNMRS+NLfGJT
So43R+IS8EXSo5A0kHxdRtx0vxtAjVnXOC9xSHleEZHMKF0ZIjnjUBuitGKqMkRpY2ltiKHCQmWI
ocqy/0HeUEsDBAoAAAAAAFsYskAAAAAAAAAAAAAAAABDABwAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvcHl3ZWJzb2NrZXQud3MubG9nLTE4TWF5MjAxMi0wMzAyNTQtb3V0LnR4dFVUCQAD3ru1T967
tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABhGLJAAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA
7UEAAAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvVVQFAAPlu7VPdXgLAAEE6AMAAAToAwAAUEsB
Ah4DFAACAAgA7xayQFvuz8ivKQAASAQCADQAGAAAAAAAAQAAAKSBUgAAAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL3dlYmtpdF91bml0X3Rlc3RzX291dHB1dC54bWxVVAUAAyK6tU91eAsAAQToAwAA
BOgDAABQSwECHgMKAAAAAABiFLJAAAAAAAAAAAAAAAAAHwAYAAAAAAAAABAA7UFvKgAAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvdGFibGVzL1VUBQADV7W1T3V4CwABBOgDAAAE6AMAAFBLAQIeAwoA
AAAAAGIUskAAAAAAAAAAAAAAAAAnABgAAAAAAAAAEADtQcgqAAB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy90YWJsZXMvbW96aWxsYS9VVAUAA1e1tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABi
FLJAAAAAAAAAAAAAAAAALAAYAAAAAAAAABAA7UEpKwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
dGFibGVzL21vemlsbGEvYnVncy9VVAUAA1e1tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACAB2
FLJA1tY5bJ8EAABFHQAAQAAYAAAAAAABAAAApIGPKwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
dGFibGVzL21vemlsbGEvYnVncy9idWcyNDc5LTItYWN0dWFsLnR4dFVUBQADf7W1T3V4CwABBOgD
AAAE6AMAAFBLAQIeAxQAAgAIAHYUskCPAEJmgAQAANIZAAA+ABgAAAAAAAEAAACkgagwAAB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy90YWJsZXMvbW96aWxsYS9idWdzL2J1ZzI0NzktMi1kaWZmLnR4
dFVUBQADf7W1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAHYUskAtDsf3YgUAAOwiAABAABgA
AAAAAAEAAACkgaA1AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90YWJsZXMvbW96aWxsYS9idWdz
L2J1ZzI0NzktMi13ZGlmZi5odG1sVVQFAAN/tbVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgA
dhSyQGZQ0L0hDgAAAX4AAEYAGAAAAAAAAQAAAKSBfDsAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L3RhYmxlcy9tb3ppbGxhL2J1Z3MvYnVnMjQ3OS0yLXByZXR0eS1kaWZmLmh0bWxVVAUAA3+1tU91
eAsAAQToAwAABOgDAABQSwECHgMUAAIACAB2FLJABzYAbp8EAABJHQAAQgAYAAAAAAABAAAApIEd
SgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGFibGVzL21vemlsbGEvYnVncy9idWcyNDc5LTIt
ZXhwZWN0ZWQudHh0VVQFAAN/tbVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAUBiyQIIXSNa0
TgAA/DECACYAGAAAAAAAAQAAAKSBOE8AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1
bjAudHh0VVQFAAPHu7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAUBiyQOPP3oqtogAAsMQE
ACYAGAAAAAAAAQAAAKSBTJ4AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjEudHh0
VVQFAAPHu7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAUhiyQJ+s42/wswAAaykFACYAGAAA
AAAAAQAAAKSBWUEBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjMudHh0VVQFAAPM
u7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAcxSyQAAAAAAAAAAAAAAAACAAGAAAAAAAAAAQ
AO1BqfUBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3JldHJpZXMvVVQFAAN6tbVPdXgLAAEE6AMA
AAToAwAAUEsBAh4DFAACAAgAYBiyQG3q/pEIAQAAyAEAAC4AGAAAAAAAAQAAAKSBA/YBAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL3JldHJpZXMvdGVzdHNfcnVuMC50eHRVVAUAA+S7tU91eAsAAQTo
AwAABOgDAABQSwECHgMKAAAAAABKFLJAAAAAAAAAAAAAAAAAIAAYAAAAAAAAABAA7UFz9wEAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvcGx1Z2lucy9VVAUAAyy1tU91eAsAAQToAwAABOgDAABQSwEC
HgMUAAIACAAxGLJAlwak1/AAAABXAQAARAAYAAAAAAABAAAApIHN9wEAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvcGx1Z2lucy9udWxsLW5wcC1nZXR2YWx1ZS1wb2ludGVyLXN0ZGVyci50eHRVVAUA
A467tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAACWE7JAAAAAAAAAAAAAAAAAHQAYAAAAAAAA
ABAA7UE7+QEAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC9VVAUAA9yztU91eAsAAQToAwAA
BOgDAABQSwECHgMKAAAAAADxE7JAAAAAAAAAAAAAAAAAIwAYAAAAAAAAABAA7UGS+QEAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9VVAUAA4W0tU91eAsAAQToAwAABOgDAABQSwEC
HgMKAAAAAACWE7JAAAAAAAAAAAAAAAAAKQAYAAAAAAAAABAA7UHv+QEAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9VVAUAA9yztU91eAsAAQToAwAABOgDAABQSwECHgMU
AAIACACWE7JAjaV8io8BAADoAgAAUQAYAAAAAAABAAAApIFS+gEAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9wb3N0LXdpdGgtY2FjaGVkLXN1YnJlc291cmNlcy13ZGlm
Zi5odG1sVVQFAAPcs7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlhOyQP7BpR1AAQAAWgIA
AFEAGAAAAAAAAQAAAKSBbPwBAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2Fj
aGUvcG9zdC13aXRoLWNhY2hlZC1zdWJyZXNvdXJjZXMtYWN0dWFsLnR4dFVUBQAD3LO1T3V4CwAB
BOgDAAAE6AMAAFBLAQIeAwoAAgAAAJYTskCc6ad1BgAAAAYAAABHABgAAAAAAAEAAACkgTf+AQB0
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hlL3Bvc3QtcmVkaXJlY3QtZ2V0
LWV4cGVjdGVkLnR4dFVUBQAD3LO1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJYTskBXNUJb
mQEAABcDAABDABgAAAAAAAEAAACkgb7+AQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rl
c3RzL2NhY2hlL3Bvc3QtcmVkaXJlY3QtZ2V0LWRpZmYudHh0VVQFAAPcs7VPdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgAlhOyQI2lfIqPAQAA6AIAAEUAGAAAAAAAAQAAAKSB1AACAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUvcG9zdC1yZWRpcmVjdC1nZXQtd2RpZmYu
aHRtbFVUBQAD3LO1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJYTskC5x48m2x8AAKgrAABF
ABgAAAAAAAAAAACkgeICAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hl
L3Bvc3QtcmVkaXJlY3QtZ2V0LWFjdHVhbC5wbmdVVAUAA9yztU91eAsAAQToAwAABOgDAABQSwEC
HgMUAAIACACWE7JAqeiD43IIAADkHgAASwAYAAAAAAABAAAApIE8IwIAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9wb3N0LXJlZGlyZWN0LWdldC1wcmV0dHktZGlmZi5o
dG1sVVQFAAPcs7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAlhOyQLnHjybbHwAAqCsAAFEA
GAAAAAAAAAAAAKSBMywCAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvY2FjaGUv
cG9zdC13aXRoLWNhY2hlZC1zdWJyZXNvdXJjZXMtYWN0dWFsLnBuZ1VUBQAD3LO1T3V4CwABBOgD
AAAE6AMAAFBLAQIeAxQAAgAIAJYTskDdxOk/eQgAAPAeAABXABgAAAAAAAEAAACkgZlMAgB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hlL3Bvc3Qtd2l0aC1jYWNoZWQtc3Vi
cmVzb3VyY2VzLXByZXR0eS1kaWZmLmh0bWxVVAUAA9yztU91eAsAAQToAwAABOgDAABQSwECHgMU
AAIACACWE7JA2yiUA6EBAAAvAwAATwAYAAAAAAABAAAApIGjVQIAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9wb3N0LXdpdGgtY2FjaGVkLXN1YnJlc291cmNlcy1kaWZm
LnR4dFVUBQAD3LO1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAJYTskD+waUdQAEAAFoCAABF
ABgAAAAAAAEAAACkgc1XAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2NhY2hl
L3Bvc3QtcmVkaXJlY3QtZ2V0LWFjdHVhbC50eHRVVAUAA9yztU91eAsAAQToAwAABOgDAABQSwEC
HgMKAAIAAACWE7JAnOmndQYAAAAGAAAAUwAYAAAAAAABAAAApIGMWQIAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvaHR0cC90ZXN0cy9jYWNoZS9wb3N0LXdpdGgtY2FjaGVkLXN1YnJlc291cmNlcy1l
eHBlY3RlZC50eHRVVAUAA9yztU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAADbE7JAAAAAAAAA
AAAAAAAAKAAYAAAAAAAAABAA7UEfWgIAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0
cy9taXNjL1VUBQADXrS1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEAXskAVNTWSegAAALwA
AABCABgAAAAAAAEAAACkgYFaAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL21p
c2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAUAA7i6tU91eAsAAQToAwAABOgDAABQSwEC
HgMUAAIACAA0F7JAAfFHS3kAAADiAAAARwAYAAAAAAABAAAApIF3WwIAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvaHR0cC90ZXN0cy9taXNjL2Rucy1wcmVmZXRjaC1jb250cm9sLXN0ZGVyci50eHRV
VAUAA6S6tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAADFE7JAAAAAAAAAAAAAAAAAKQAYAAAA
AAAAABAA7UFxXAIAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9sb2NhbC9VVAUA
AzG0tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAADFE7JAAAAAAAAAAAAAAAAALgAYAAAAAAAA
ABAA7UHUXAIAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9sb2NhbC9ibG9iL1VU
BQADMbS1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIACgXskDt4nI0ZQAAAG8AAABJABgAAAAA
AAEAAACkgTxdAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2xvY2FsL2Jsb2Iv
c2VuZC1oeWJyaWQtYmxvYi1zdGRlcnIudHh0VVQFAAOLurVPdXgLAAEE6AMAAAToAwAAUEsBAh4D
CgAAAAAA9hOyQAAAAAAAAAAAAAAAACwAGAAAAAAAAAAQAO1BJF4CAHRtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2h0dHAvdGVzdHMvc2VjdXJpdHkvVVQFAAOQtLVPdXgLAAEE6AMAAAToAwAAUEsBAh4D
CgAAAAAA9hOyQAAAAAAAAAAAAAAAAEIAGAAAAAAAAAAQAO1Bil4CAHRtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUBQADkLS1
T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAFkXskBjqqxsggAAAKgAAABqABgAAAAAAAEAAACk
gQZfAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQF
AAPqurVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAWReyQGOqrGyCAAAAqAAAAFgAGAAAAAAA
AQAAAKSBLGACAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAA+q6tU91eAsAAQTo
AwAABOgDAABQSwECHgMUAAIACABTF7JAAPNnQskAAABDAQAAWQAYAAAAAAABAAAApIFAYQIAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtY3Jvc3Nvcmln
aW4tbG9hZHMtY29ycmVjdGx5LWFjdHVhbC50eHRVVAUAA966tU91eAsAAQToAwAABOgDAABQSwEC
HgMUAAIACABVF7JAVnBSaWIAAACOAAAAVQAYAAAAAAABAAAApIGcYgIAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhtbC1leHRlcm5hbC1lbnRp
dHktc3RkZXJyLnR4dFVUBQAD4rq1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAFMXskA8m99M
RQAAAEkAAABbABgAAAAAAAEAAACkgY1jAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1jb3JyZWN0bHktZXhwZWN0ZWQu
dHh0VVQFAAPeurVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAUxeyQGKCjwYWAQAAFQIAAFcA
GAAAAAAAAQAAAKSBZ2QCAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWNvcnJlY3RseS1kaWZmLnR4dFVUBQAD3rq1T3V4
CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAFMXskDq6Xbw2wcAAMsZAABfABgAAAAAAAEAAACkgQ5m
AgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NjcmlwdC1jcm9z
c29yaWdpbi1sb2Fkcy1jb3JyZWN0bHktcHJldHR5LWRpZmYuaHRtbFVUBQAD3rq1T3V4CwABBOgD
AAAE6AMAAFBLAQIeAxQAAgAIAFUXskBgS2YQkQAAAPsBAABdABgAAAAAAAEAAACkgYJuAgB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRv
Y3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAUAA+K6tU91eAsAAQToAwAABOgDAABQ
SwECHgMUAAIACABTF7JAzIxIjg4BAAC2AQAAWQAYAAAAAAABAAAApIGqbwIAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMt
Y29ycmVjdGx5LXdkaWZmLmh0bWxVVAUAA966tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACABc
GLJAGEUKk5swAAB+gQQAJQAYAAAAAAABAAAApIFLcQIAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
ZXJyb3JfbG9nLnR4dFVUBQAD4Lu1T3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAFsYskAAAAAA
AAAAAAAAAABDABgAAAAAAAAAAACkgUWiAgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9weXdlYnNv
Y2tldC53cy5sb2ctMThNYXkyMDEyLTAzMDI1NC1lcnIudHh0VVQFAAPeu7VPdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgAYRiyQAAxi8xLIwAA5ZYAACQAGAAAAAAAAQAAAKSBwqICAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL3Jlc3VsdHMuaHRtbFVUBQAD5bu1T3V4CwABBOgDAAAE6AMAAFBLAQIe
AwoAAAAAAE0YskAAAAAAAAAAAAAAAAAcABgAAAAAAAAAEADtQWvGAgB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9zdmcvVVQFAAPBu7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAATRiyQAAAAAAA
AAAAAAAAACwAGAAAAAAAAAAQAO1BwcYCAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvVVQFAAPBu7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAYBiyQJZihKWP
YwAAEnkAAFEAGAAAAAAAAAAAAKSBJ8cCAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHVXNlRWxlbWVudC1kb20taHJlZjEtYXR0ci1kaWZmLnBuZ1VUBQAD5Lu1
T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAGAYskACfF9kklsAAKVrAABVABgAAAAAAAAAAACk
gUErAwB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1VzZUVs
ZW1lbnQtZG9tLWhyZWYxLWF0dHItZXhwZWN0ZWQucG5nVVQFAAPku7VPdXgLAAEE6AMAAAToAwAA
UEsBAh4DFAACAAgAYBiyQIqZo+qGWwAAomsAAFMAGAAAAAAAAAAAAKSBYocDAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVXNlRWxlbWVudC1kb20taHJlZjEt
YXR0ci1hY3R1YWwucG5nVVQFAAPku7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAYBiyQNc3
aBxCAgAAuwUAAFMAGAAAAAAAAQAAAKSBdeMDAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHVXNlRWxlbWVudC1kb20taHJlZjEtYXR0ci1kaWZmcy5odG1sVVQF
AAPku7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAWhiyQNfBGjhOogAAmToEACYAGAAAAAAA
AQAAAKSBROYDAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjIudHh0VVQFAAPcu7VP
dXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAYRiyQKJTdO4ZAgAA0AQAACkAGAAAAAAAAQAAAKSB
8ogEAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Z1bGxfcmVzdWx0cy5qc29uVVQFAAPlu7VPdXgL
AAEE6AMAAAToAwAAUEsBAh4DFAACAAgAWxiyQJHsZoEaJAAAb2EAACIAGAAAAAAAAQAAAKSBbosE
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHBkLmNvbmZVVAUAA927tU91eAsAAQToAwAABOgD
AABQSwECHgMKAAAAAAAOFLJAAAAAAAAAAAAAAAAAHQAYAAAAAAAAABAA7UHkrwQAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvZmFzdC9VVAUAA7u0tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAADk
E7JAAAAAAAAAAAAAAAAAKAAYAAAAAAAAABAA7UE7sAQAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
ZmFzdC9maWxlc3lzdGVtL1VUBQADa7S1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEgXskAU
9pDUZwAAAHAAAAA8ABgAAAAAAAEAAACkgZ2wBAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0
L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLXN0ZGVyci50eHRVVAUAA8e6tU91eAsAAQToAwAABOgDAABQ
SwECHgMUAAIACABIF7JAOCTFv2cAAABwAAAAOgAYAAAAAAABAAAApIF6sQQAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHktc3RkZXJyLnR4dFVUBQADx7q1T3V4
CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEgXskAFKINwZwAAAHAAAAA6ABgAAAAAAAEAAACkgVWy
BAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS1zdGRlcnIu
dHh0VVQFAAPHurVPdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAA0ROyQAAAAAAAAAAAAAAAACQA
GAAAAAAAAAAQAO1BMLMEAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvY2FudmFzL1VUBQAD
SrS1T3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAADcXskAAAAAAAAAAAAAAAAAqABgAAAAAAAAA
EADtQY6zBAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2NhbnZhcy93ZWJnbC9VVAUAA6m6
tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACAA2F7JAMlu2XoAAAAC8AQAAVAAYAAAAAAABAAAA
pIHyswQAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5kZXgtdmFs
aWRhdGlvbi1jb3BpZXMtaW5kaWNlcy1zdGRlcnIudHh0VVQFAAOourVPdXgLAAEE6AMAAAToAwAA
UEsBAh4DFAACAAgA0xOyQNDnulliAAAAZAAAAEoAGAAAAAAAAQAAAKSBALUEAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2Zhc3QvY2FudmFzL3dlYmdsL3ByZW11bHRpcGx5YWxwaGEtdGVzdC1zdGRl
cnIudHh0VVQFAANOtLVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgANReyQPjoRP10AAAAxQAA
AEQAGAAAAAAAAQAAAKSB5rUEAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvY2FudmFzL3dl
YmdsL2Vycm9yLXJlcG9ydGluZy1zdGRlcnIudHh0VVQFAAOmurVPdXgLAAEE6AMAAAToAwAAUEsB
Ah4DFAACAAgANxeyQJeMkXxsAAAAbwAAAEUAGAAAAAAAAQAAAKSB2LYEAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2Zhc3QvY2FudmFzL3dlYmdsL2luZGV4LXZhbGlkYXRpb24tc3RkZXJyLnR4dFVU
BQADqbq1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIADcXskBWYj3kdgAAAN4AAABfABgAAAAA
AAEAAACkgcO3BAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbmRl
eC12YWxpZGF0aW9uLXZlcmlmaWVzLXRvby1tYW55LWluZGljZXMtc3RkZXJyLnR4dFVUBQADqbq1
T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIADcXskAWj3q+YQAAAGQAAABKABgAAAAAAAEAAACk
gdK4BAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2NhbnZhcy93ZWJnbC9udWxsLXVuaWZv
cm0tbG9jYXRpb24tc3RkZXJyLnR4dFVUBQADqbq1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAI
ADUXskBgQkIAmgAAAFYEAABOABgAAAAAAAEAAACkgbe5BAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9mYXN0L2NhbnZhcy93ZWJnbC9kcmF3LWFycmF5cy1vdXQtb2YtYm91bmRzLXN0ZGVyci50eHRV
VAUAA6a6tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACAA1F7JAMDBMltoAAAAvBwAAUAAYAAAA
AAABAAAApIHZugQAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC9jYW52YXMvd2ViZ2wvZHJh
dy1lbGVtZW50cy1vdXQtb2YtYm91bmRzLXN0ZGVyci50eHRVVAUAA6a6tU91eAsAAQToAwAABOgD
AABQSwECHgMUAAIACAA1F7JA8brEVIEAAACKAQAARAAYAAAAAAABAAAApIE9vAQAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0LWFjdGl2ZS10ZXN0LXN0ZGVyci50
eHRVVAUAA6a6tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACAA5F7JAAlKy2JoAAAAUAwAASQAY
AAAAAAABAAAApIE8vQQAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC9jYW52YXMvd2ViZ2wv
dHlwZS1jb252ZXJzaW9uLXRlc3Qtc3RkZXJyLnR4dFVUBQADrbq1T3V4CwABBOgDAAAE6AMAAFBL
AQIeAwoAAAAAAEMXskAAAAAAAAAAAAAAAAAhABgAAAAAAAAAEADtQVm+BAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9mYXN0L2RvbS9VVAUAA766tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAADh
E7JAAAAAAAAAAAAAAAAAKAAYAAAAAAAAABAA7UG0vgQAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
ZmFzdC9kb20vV2luZG93L1VUBQADZrS1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAGAYskBj
rg+11QAAAGYBAABPABgAAAAAAAEAAACkgRa/BAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1uYW1lLWRpZmYudHh0VVQFAAPj
u7VPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAYBiyQCog4IjDBwAA+xgAAFcAGAAAAAAAAQAA
AKSBdMAEAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydHktc2hhZG93aW5nLW5hbWUtcHJldHR5LWRpZmYuaHRtbFVUBQAD47u1T3V4CwABBOgDAAAE
6AMAAFBLAQIeAxQAAgAIAGAYskDzJWqgywAAACsBAABRABgAAAAAAAEAAACkgcjIBAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2lu
Zy1uYW1lLXdkaWZmLmh0bWxVVAUAA+O7tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACABgGLJA
2r+mcHsAAACbAAAAUwAYAAAAAAABAAAApIEeygQAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmctbmFtZS1leHBlY3RlZC50eHRV
VAUAA+O7tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACABgGLJAwPXtQ30AAACbAAAAUQAYAAAA
AAABAAAApIEmywQAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0eS1zaGFkb3dpbmctbmFtZS1hY3R1YWwudHh0VVQFAAPju7VPdXgLAAEE6AMAAATo
AwAAUEsBAh4DCgAAAAAAQxeyQAAAAAAAAAAAAAAAACwAGAAAAAAAAAAQAO1BLswEAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvVVQFAAO+urVPdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgAQxeyQKzBWcPHAAAAIwEAAEcAGAAAAAAAAQAAAKSBlMwEAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvZGV0YWNoZWQtc3R5bGUtMi13ZGlm
Zi5odG1sVVQFAAO+urVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAQxeyQIny0YRtAAAAiAAA
AEkAGAAAAAAAAQAAAKSB3M0EAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvZG9tL1N0eWxl
U2hlZXQvZGV0YWNoZWQtc3R5bGUtMi1leHBlY3RlZC50eHRVVAUAA766tU91eAsAAQToAwAABOgD
AABQSwECHgMUAAIACABDF7JAyvy5WMUHAAB5GgAATQAYAAAAAAABAAAApIHMzgQAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvZmFzdC9kb20vU3R5bGVTaGVldC9kZXRhY2hlZC1zdHlsZS0yLXByZXR0
eS1kaWZmLmh0bWxVVAUAA766tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACABDF7JAhG+cTMkA
AABhAQAARQAYAAAAAAABAAAApIEY1wQAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC9kb20v
U3R5bGVTaGVldC9kZXRhY2hlZC1zdHlsZS0yLWRpZmYudHh0VVQFAAO+urVPdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgAQxeyQKHK2X50AAAAjgAAAEcAGAAAAAAAAQAAAKSBYNgEAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvZGV0YWNoZWQtc3R5bGUtMi1hY3R1
YWwudHh0VVQFAAO+urVPdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAA9hOyQAAAAAAAAAAAAAAA
ACQAGAAAAAAAAAAQAO1BVdkEAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvbG9hZGVyL1VU
BQADj7S1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAFoXskBhHZh0gwcAAM0XAABDABgAAAAA
AAEAAACkgbPZBAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L2xvYWRlci9sb2FkSW5Qcm9n
cmVzcy1wcmV0dHktZGlmZi5odG1sVVQFAAPsurVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgA
WheyQGyjKvK+AAAA8AAAAD0AGAAAAAAAAQAAAKSBs+EEAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2Zhc3QvbG9hZGVyL2xvYWRJblByb2dyZXNzLXdkaWZmLmh0bWxVVAUAA+y6tU91eAsAAQToAwAA
BOgDAABQSwECHgMKAAIAAABaF7JA1tHaeS4AAAAuAAAAPwAYAAAAAAABAAAApIHo4gQAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvZmFzdC9sb2FkZXIvbG9hZEluUHJvZ3Jlc3MtZXhwZWN0ZWQudHh0
VVQFAAPsurVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAWheyQDRdBubFAAAAGgEAADsAGAAA
AAAAAQAAAKSBj+MEAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3QvbG9hZGVyL2xvYWRJblBy
b2dyZXNzLWRpZmYudHh0VVQFAAPsurVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAWheyQCkm
d2l0AAAAfQAAAD0AGAAAAAAAAQAAAKSByeQEAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Zhc3Qv
bG9hZGVyL2xvYWRJblByb2dyZXNzLWFjdHVhbC50eHRVVAUAA+y6tU91eAsAAQToAwAABOgDAABQ
SwECHgMKAAAAAAAOFLJAAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UG05QQAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvZmFzdC94c2wvVVQFAAO8tLVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgA
cxeyQIFKd61LAAAArAAAAEwAGAAAAAAAAQAAAKSBD+YEAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2Zhc3QveHNsL3hzbHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRVVAUA
Axm7tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACAByF7JAbUfUXoUAAADxAAAAPQAYAAAAAAAB
AAAApIHg5gQAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC94c2wvdHJhbnNmb3JtLXhoci1k
b2Mtc3RkZXJyLnR4dFVUBQADGLu1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAHIXskBQXUg3
jAAAAPgAAAA/ABgAAAAAAAEAAACkgdznBAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L3hz
bC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAUAAxi7tU91eAsAAQToAwAABOgDAABQ
SwECHgMKAAAAAAAKFLJAAAAAAAAAAAAAAAAAIgAYAAAAAAAAABAA7UHh6AQAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvZmFzdC90ZXh0L1VUBQADs7S1T3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAA
AAoUskAAAAAAAAAAAAAAAAAwABgAAAAAAAAAEADtQT3pBAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9VVAUAA7O0tU91eAsAAQToAwAABOgDAABQSwECHgMU
AAIACABgGLJAzJsLgaiOAABFoQAATQAYAAAAAAAAAAAApIGn6QQAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdGhhaS1saW5lLWJyZWFrcy1leHBlY3RlZC5w
bmdVVAUAA+S7tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACABgGLJAeNNbNjcCAACbBQAASwAY
AAAAAAABAAAApIHWeAUAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZmFzdC90ZXh0L2ludGVybmF0
aW9uYWwvdGhhaS1saW5lLWJyZWFrcy1kaWZmcy5odG1sVVQFAAPku7VPdXgLAAEE6AMAAAToAwAA
UEsBAh4DFAACAAgAYBiyQBhClN8cjAAAF58AAEsAGAAAAAAAAAAAAKSBknsFAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3RoYWktbGluZS1icmVha3MtYWN0
dWFsLnBuZ1VUBQAD5Lu1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAGAYskDMD9VFFIUAADGU
AABJABgAAAAAAAAAAACkgTMIBgB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mYXN0L3RleHQvaW50
ZXJuYXRpb25hbC90aGFpLWxpbmUtYnJlYWtzLWRpZmYucG5nVVQFAAPku7VPdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgAXBiyQBhsPORTMwEAV5QOACYAGAAAAAAAAQAAAKSByo0GAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2FjY2Vzc19sb2cudHh0VVQFAAPgu7VPdXgLAAEE6AMAAAToAwAAUEsB
Ah4DCgAAAAAAOhSyQAAAAAAAAAAAAAAAACEAGAAAAAAAAAAQAO1BfcEHAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL3BsYXRmb3JtL1VUBQADELW1T3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAADoU
skAAAAAAAAAAAAAAAAAwABgAAAAAAAAAEADtQdjBBwB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9VVAUAAxC1tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAA
AAA6FLJAAAAAAAAAAAAAAAAANQAYAAAAAAAAABAA7UFCwgcAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9VVAUAAxC1tU91eAsAAQToAwAABOgDAABQ
SwECHgMKAAAAAAA6FLJAAAAAAAAAAAAAAAAAOgAYAAAAAAAAABAA7UGxwgcAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L1VUBQADELW1T3V4
CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAADoUskAAAAAAAAAAAAAAAABIABgAAAAAAAAAEADtQSXD
BwB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3Rl
eHQvaW50ZXJuYXRpb25hbC9VVAUAAxC1tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACABgGLJA
YxJHvoFlAADscwAAawAYAAAAAAAAAAAApIGnwwcAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29tcGxleC1qb2lu
aW5nLXVzaW5nLWdwb3MtZGlmZi5wbmdVVAUAA+S7tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIA
CABgGLJAssG1FBd8AAAqjAAAbQAYAAAAAAAAAAAApIHNKQgAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29tcGxl
eC1qb2luaW5nLXVzaW5nLWdwb3MtYWN0dWFsLnBuZ1VUBQAD5Lu1T3V4CwABBOgDAAAE6AMAAFBL
AQIeAxQAAgAIAGAYskDOG7LiTwIAANEFAABtABgAAAAAAAEAAACkgYumCAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3RleHQvaW50ZXJuYXRpb25h
bC9jb21wbGV4LWpvaW5pbmctdXNpbmctZ3Bvcy1kaWZmcy5odG1sVVQFAAPku7VPdXgLAAEE6AMA
AAToAwAAUEsBAh4DFAACAAgAYBiyQJBbxZS6fAAA4owAAG8AGAAAAAAAAAAAAKSBgakIAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvdGV4dC9pbnRl
cm5hdGlvbmFsL2NvbXBsZXgtam9pbmluZy11c2luZy1ncG9zLWV4cGVjdGVkLnBuZ1VUBQAD5Lu1
T3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAEgUskAAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADt
QeQmCQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS9VVAUAAyi1tU91
eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAArFLJAAAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UFI
JwkAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC9VVAUAA/G0
tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAArFLJAAAAAAAAAAAAAAAAANQAYAAAAAAAAABAA
7UGxJwkAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0
cy9VVAUAA/G0tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAArFLJAAAAAAAAAAAAAAAAAPgAY
AAAAAAAAABAA7UEgKAkAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0v
aHR0cC90ZXN0cy9zZWN1cml0eS9VVAUAA/G0tU91eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAAr
FLJAAAAAAAAAAAAAAAAASwAYAAAAAAAAABAA7UGYKAkAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
cGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvVVQFAAPx
tLVPdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgADRiyQOClLsN4AAAA5gAAAHsAGAAAAAAAAQAA
AKSBHSkJAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWlmcmFtZS1pbi1tYWluLWZyYW1lLWFs
bG93ZWQtc3RkZXJyLnR4dFVUBQADSru1T3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAEgUskAA
AAAAAAAAAAAAAAAyABgAAAAAAAAAEADtQUoqCQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0
Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL1VUBQADKLW1T3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAA
AEgUskAAAAAAAAAAAAAAAAA2ABgAAAAAAAAAEADtQbYqCQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9wbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9VVAUAAyi1tU91eAsAAQToAwAABOgDAABQ
SwECHgMKAAAAAABIFLJAAAAAAAAAAAAAAAAAOwAYAAAAAAAAABAA7UEmKwkAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9VVAUAAyi1tU91
eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABIFLJAAAAAAAAAAAAAAAAAQgAYAAAAAAAAABAA7UGb
KwkAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUv
ZmFzdC9jYW52YXMvVVQFAAMotbVPdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAMhiyQAAAAAAA
AAAAAAAAAEgAGAAAAAAAAAAQAO1BFywJAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3Jt
L2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2Zhc3QvY2FudmFzL3dlYmdsL1VUBQADkLu1T3V4CwABBOgD
AAAE6AMAAFBLAQIeAxQAAgAIADEYskA/gzbXgAAAAMQBAAByABgAAAAAAAEAAACkgZksCQB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2Nh
bnZhcy93ZWJnbC9pbmRleC12YWxpZGF0aW9uLWNvcGllcy1pbmRpY2VzLXN0ZGVyci50eHRVVAUA
A467tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACAAyGLJAUSUONGEAAABmAAAAbQAYAAAAAAAB
AAAApIHFLQkAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVh
bC9ncHUvZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1waXhlbHMtcGFjay1hbGlnbm1lbnQtc3RkZXJy
LnR4dFVUBQADkLu1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIADAYskBpmjjbcgAAAMkAAABi
ABgAAAAAAAEAAACkgc0uCQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1
bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy93ZWJnbC9lcnJvci1yZXBvcnRpbmctc3RkZXJyLnR4
dFVUBQADjLu1T3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIADIYskD4eyGtawAAAHEAAABjABgA
AAAAAAEAAACkgdsvCQB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9wbGF0Zm9ybS9jaHJvbWl1bS92
aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy93ZWJnbC9pbmRleC12YWxpZGF0aW9uLXN0ZGVyci50eHRV
VAUAA4+7tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIACAAyGLJAXUsh3HUAAADiAAAAfQAYAAAA
AAABAAAApIHjMAkAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vdmly
dHVhbC9ncHUvZmFzdC9jYW52YXMvd2ViZ2wvaW5kZXgtdmFsaWRhdGlvbi12ZXJpZmllcy10b28t
bWFueS1pbmRpY2VzLXN0ZGVyci50eHRVVAUAA4+7tU91eAsAAQToAwAABOgDAABQSwECHgMUAAIA
CABLFLJAC5MicGEAAABmAAAAbgAYAAAAAAABAAAApIEPMgkAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52YXMvd2ViZ2wvcmVuZGVy
YnVmZmVyLWluaXRpYWxpemF0aW9uLXN0ZGVyci50eHRVVAUAAy21tU91eAsAAQToAwAABOgDAABQ
SwECHgMUAAIACAAwGLJADtmTy5sAAABqBAAAbAAYAAAAAAABAAAApIEYMwkAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52YXMvd2Vi
Z2wvZHJhdy1hcnJheXMtb3V0LW9mLWJvdW5kcy1zdGRlcnIudHh0VVQFAAOMu7VPdXgLAAEE6AMA
AAToAwAAUEsBAh4DFAACAAgAMBiyQC1QoXzZAAAAUQcAAG4AGAAAAAAAAQAAAKSBWTQJAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2Zhc3QvY2Fu
dmFzL3dlYmdsL2RyYXctZWxlbWVudHMtb3V0LW9mLWJvdW5kcy1zdGRlcnIudHh0VVQFAAOMu7VP
dXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAMBiyQLAD9eJ+AAAAkgEAAGIAGAAAAAAAAQAAAKSB
2jUJAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1
L2Zhc3QvY2FudmFzL3dlYmdsL2dldC1hY3RpdmUtdGVzdC1zdGRlcnIudHh0VVQFAAOMu7VPdXgL
AAEE6AMAAAToAwAAUEsBAh4DFAACAAgANBiyQHIlnRGZAAAAJAMAAGcAGAAAAAAAAQAAAKSB9DYJ
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3BsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2Zh
c3QvY2FudmFzL3dlYmdsL3R5cGUtY29udmVyc2lvbi10ZXN0LXN0ZGVyci50eHRVVAUAA5O7tU91
eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABbGLJAAAAAAAAAAAAAAAAAQwAYAAAAAAAAAAAApIEu
OAkAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcHl3ZWJzb2NrZXQud3MubG9nLTE4TWF5MjAxMi0w
MzAyNTQtb3V0LnR4dFVUBQAD3ru1T3V4CwABBOgDAAAE6AMAAFBLBQYAAAAAiwCLADlKAACrOAkA
AAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169636</attachid>
            <date>2012-10-19 09:36:45 -0700</date>
            <delta_ts>2012-10-26 16:29:34 -0700</delta_ts>
            <desc>WIP - Oct 19</desc>
            <filename>cmr_1019.txt</filename>
            <type>text/plain</type>
            <size>64835</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1p
ZnJhbWUtbG9hZC1hbmQtZGVsZXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWlmcmFtZS1sb2FkLWFuZC1kZWxldGUu
aHRtbAkocmV2aXNpb24gMTMxOTA0KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9uZXR3b3JrLWlmcmFtZS1sb2FkLWFuZC1kZWxldGUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNDMsNyArNDMsNyBAQAogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQogICAgIHsKLSAg
ICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVz
dHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gM107Cisg
ICAgICAgIHZhciByZXF1ZXN0MSA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVl
c3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDJdOwog
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXF1ZXN0MS51cmwpOwogICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2UudHlwZTogIiArIHJlcXVlc3QxLnR5cGUp
OwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2UuY29udGVudCBiZWZv
cmUgcmVxdWVzdGluZyBjb250ZW50OiAiICsgcmVxdWVzdDEuY29udGVudCk7CkBAIC01Miw3ICs1
Miw3IEBACiAKICAgICBmdW5jdGlvbiBzdGVwMygpCiAgICAgewotICAgICAgICB2YXIgcmVxdWVz
dDEgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3Iu
cGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAzXTsKKyAgICAgICAgdmFyIHJlcXVl
c3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9y
LnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVuZ3RoIC0gMl07CiAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJyZXNvdXJjZS5jb250ZW50IGFmdGVyIHJlcXVlc3RpbmcgY29udGVu
dDogIiArIHJlcXVlc3QxLmNvbnRlbnQpOwogCiAgICAgICAgIHZhciByZXF1ZXN0MiA9IFdlYklu
c3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0
d29yayIpLnJlcXVlc3RzLmxlbmd0aCAtIDFdOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbAkocmV2
aXNpb24gMTMxOTA0KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2UtcGFyYW1ldGVycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw4ICsxNyw2IEBACiAgICAg
ZnVuY3Rpb24gb25SZXF1ZXN0RmluaXNoZWQoZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgcmVx
dWVzdCA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmIChyZXF1ZXN0LnVybCAhPT0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaT9xdWVyeVBh
cmFtMT1xdWVyeVZhbHVlMSZxdWVyeVBhcmFtMj0jZnJhZ21lbnRQYXJhbTE9ZnJhZ21lbnRWYWx1
ZTEmZnJhZ21lbnRQYXJhbTI9IikKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRPYmplY3QobmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShyZXF1ZXN0KS5idWls
ZCgpLCBJbnNwZWN0b3JUZXN0LkhBUlByb3BlcnR5Rm9ybWF0dGVycyk7CiAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFn
LXBhcmVudC1zYW1lLW9yaWdpbi1kZW55LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25z
LWRlbnktbWV0YS10YWctcGFyZW50LXNhbWUtb3JpZ2luLWRlbnktZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxMzE5MDQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9w
dGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10YWctcGFyZW50LXNhbWUtb3JpZ2luLWRl
bnktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDggKzQsNiBAQAogaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMvcmVzb3VyY2VzL3gtZnJhbWUtb3B0
aW9ucy1kZW55LW1ldGEtdGFnLXN1YmZyYW1lLXBhcmVudC1zYW1lLW9yaWdpbi1kZW55Lmh0bWwg
LSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21h
aW4sIGNvZGUgLTk5OSwgZmFpbGluZyBVUkwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0
eS9YRnJhbWVPcHRpb25zL3Jlc291cmNlcy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1z
dWJmcmFtZS1wYXJlbnQtc2FtZS1vcmlnaW4tZGVueS5odG1sIj4KIENPTlNPTEUgTUVTU0FHRTog
UmVmdXNlZCB0byBkaXNwbGF5IGRvY3VtZW50IGJlY2F1c2UgZGlzcGxheSBmb3JiaWRkZW4gYnkg
WC1GcmFtZS1PcHRpb25zLgogCi1hYm91dDpibGFuayAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxS
ZXF1ZXN0IFVSTCBhYm91dDpibGFuaywgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10
YWctcGFyZW50LXNhbWUtb3JpZ2luLWRlbnkuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVj
dFJlc3BvbnNlIChudWxsKQotYWJvdXQ6YmxhbmsgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJM
UmVzcG9uc2UgYWJvdXQ6YmxhbmssIGh0dHAgc3RhdHVzIGNvZGUgMD4KIFRoZXJlIHNob3VsZCBi
ZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3cKIAogCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0
YS10YWctaW4tYm9keS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEt
dGFnLWluLWJvZHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzE5MDQpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnkt
bWV0YS10YWctaW4tYm9keS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw2
IEBACiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy9yZXNvdXJj
ZXMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10YWctc3ViZnJhbWUtaW4tYm9keS5odG1sIC0g
ZGlkRmFpbExvYWRpbmdXaXRoRXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBOU1VSTEVycm9yRG9tYWlu
LCBjb2RlIC05OTksIGZhaWxpbmcgVVJMICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkv
WEZyYW1lT3B0aW9ucy9yZXNvdXJjZXMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10YWctc3Vi
ZnJhbWUtaW4tYm9keS5odG1sIj4KIENPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBkaXNwbGF5
IGRvY3VtZW50IGJlY2F1c2UgZGlzcGxheSBmb3JiaWRkZW4gYnkgWC1GcmFtZS1PcHRpb25zLgog
Ci1hYm91dDpibGFuayAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBhYm91dDpi
bGFuaywgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L1hG
cmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10YWctaW4tYm9keS5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCi1hYm91dDpibGFuayAtIGRp
ZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBhYm91dDpibGFuaywgaHR0cCBzdGF0dXMg
Y29kZSAwPgogVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFtZSBiZWxvdwog
CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94
LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0
aW9ucy1kZW55LW1ldGEtdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTMxOTA0KQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9u
cy1kZW55LW1ldGEtdGFnLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDYg
QEAKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3Jlc291cmNl
cy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1zdWJmcmFtZS5odG1sIC0gZGlkRmFpbExv
YWRpbmdXaXRoRXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBOU1VSTEVycm9yRG9tYWluLCBjb2RlIC05
OTksIGZhaWxpbmcgVVJMICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvWEZyYW1lT3B0
aW9ucy9yZXNvdXJjZXMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10YWctc3ViZnJhbWUuaHRt
bCI+CiBDT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gZGlzcGxheSBkb2N1bWVudCBiZWNhdXNl
IGRpc3BsYXkgZm9yYmlkZGVuIGJ5IFgtRnJhbWUtT3B0aW9ucy4KIAotYWJvdXQ6YmxhbmsgLSB3
aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgYWJvdXQ6YmxhbmssIG1haW4gZG9jdW1l
bnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJh
bWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RS
ZXNwb25zZSAobnVsbCkKLWFib3V0OmJsYW5rIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJl
c3BvbnNlIGFib3V0OmJsYW5rLCBodHRwIHN0YXR1cyBjb2RlIDA+CiBUaGVyZSBzaG91bGQgYmUg
bm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93CiAKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2FkaW5nLzMwNy1hZnRlci0zMDMtYWZ0ZXItcG9zdC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nLzMwNy1hZnRlci0zMDMt
YWZ0ZXItcG9zdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzMTkwNCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbG9hZGluZy8zMDctYWZ0ZXItMzAzLWFmdGVyLXBvc3QtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC03LDEwICs3LDEwIEBACiA8dW5rbm93bj4gLSBkaWRGaW5pc2hM
b2FkaW5nCiBtYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQogaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3Bvc3QtdG8tMzAzLXRhcmdldC5w
aHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3Bvc3QtdG8tMzAzLXRhcmdldC5waHAsIG1haW4gZG9jdW1l
bnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9wb3N0LXRvLTMw
My10YXJnZXQucGhwLCBodHRwIG1ldGhvZCBQT1NUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQor
bWFpbiBmcmFtZSAtIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcG9zdC10by0z
MDMtdGFyZ2V0LnBocCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvMzAzLXRvLTMwNy10YXJnZXQucGhwLCBt
YWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMv
MzAzLXRvLTMwNy10YXJnZXQucGhwLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2Ug
PE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3Bv
c3QtdG8tMzAzLXRhcmdldC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAzPgogbWFpbiBmcmFtZSAt
IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcG9zdC10by0zMDMtdGFyZ2V0LnBo
cCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbG9hZGluZy9yZXNvdXJjZXMvMzA3LXBvc3Qtb3V0cHV0LXRhcmdldC5waHAsIG1haW4gZG9j
dW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy8zMDctcG9z
dC1vdXRwdXQtdGFyZ2V0LnBocCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxO
U1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy8zMDMt
dG8tMzA3LXRhcmdldC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzA3PgotbWFpbiBmcmFtZSAtIGRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcG9zdC10by0zMDMtdGFyZ2V0LnBocCAt
IGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
bG9hZGluZy9yZXNvdXJjZXMvMzA3LXBvc3Qtb3V0cHV0LXRhcmdldC5waHAsIGh0dHAgc3RhdHVz
IGNvZGUgMjAwPgogbWFpbiBmcmFtZSAtIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUK
IG1haW4gZnJhbWUgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUKSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDEzMTkwNCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9h
ZGluZy9yZWRpcmVjdC1tZXRob2RzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSwx
MyArNSwxMCBAQAogbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQogPHVua25vd24+
IC0gZGlkRmluaXNoTG9hZGluZwogZnJhbWUgIjAiIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZQotYWJvdXQ6YmxhbmsgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwg
YWJvdXQ6YmxhbmssIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2Fk
aW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3Bv
bnNlIChudWxsKQotYWJvdXQ6YmxhbmsgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9u
c2UgYWJvdXQ6YmxhbmssIGh0dHAgc3RhdHVzIGNvZGUgMD4KIGZyYW1lICIwIiAtIGRpZENvbW1p
dExvYWRGb3JGcmFtZQogZnJhbWUgIjAiIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUK
IGZyYW1lICIwIiAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCiBmcmFtZSAiMCIgLSBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUKLWFib3V0OmJsYW5rIC0gZGlkRmluaXNoTG9hZGluZwogZnJh
bWUgIjAiIC0gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1mb3JtLmh0bWwgCiBmcmFt
ZSAiMCIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1mb3JtLmh0bWwgLSB3aWxs
U2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRp
bmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtZm9ybS5odG1sLCBtYWluIGRvY3VtZW50IFVS
TCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLmh0bWwsIGh0
dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAobnVsbCkKQEAgLTI1LDIwICsyMiwxNyBA
QAogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhv
ZHMtZm9ybS5odG1sIC0gZGlkRmluaXNoTG9hZGluZwogZnJhbWUgIjAiIC0gZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZQogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3Vy
Y2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxS
ZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJl
Y3QtbWV0aG9kcy1yZXN1bHQucGhwLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLmh0bWwsIGh0dHAgbWV0aG9kIFBPU1Q+IHJl
ZGlyZWN0UmVzcG9uc2UgKG51bGwpCitmcmFtZSAiMCIgLSBkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZQogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRp
bmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCAtIHdpbGxTZW5kUmVxdWVz
dCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJj
ZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwP3JlZGlyZWN0ZWQ9dHJ1ZSwgbWFpbiBkb2N1
bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy5o
dG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVz
dWx0LnBocCwgaHR0cCBzdGF0dXMgY29kZSAzMDE+Ci1mcmFtZSAiMCIgLSBkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZQogaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCAtIGRpZFJl
Y2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGlu
Zy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwP3JlZGlyZWN0ZWQ9dHJ1ZSwg
aHR0cCBzdGF0dXMgY29kZSAyMDA+CiBmcmFtZSAiMCIgLSBkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lCiBmcmFtZSAiMCIgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUKIGZyYW1lICIwIiAt
IGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCiBmcmFtZSAiMSIgLSBkaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lCi1hYm91dDpibGFuayAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxS
ZXF1ZXN0IFVSTCBhYm91dDpibGFuaywgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJl
ZGlyZWN0UmVzcG9uc2UgKG51bGwpCi1hYm91dDpibGFuayAtIGRpZFJlY2VpdmVSZXNwb25zZSA8
TlNVUkxSZXNwb25zZSBhYm91dDpibGFuaywgaHR0cCBzdGF0dXMgY29kZSAwPgogZnJhbWUgIjEi
IC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCiBmcmFtZSAiMSIgLSBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZQogZnJhbWUgIjEiIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKIGZy
YW1lICIxIiAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQotYWJvdXQ6YmxhbmsgLSBkaWRGaW5pc2hM
b2FkaW5nCiBmcmFtZSAiMSIgLSB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6IGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZvcm0u
aHRtbCAKIGZyYW1lICIwIiAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCiBmcmFtZSAi
MCIgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKQEAgLTU1LDIwICs0OSwxNyBAQAogaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtZm9ybS5odG1s
IC0gZGlkRmluaXNoTG9hZGluZwogZnJhbWUgIjEiIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZQogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0
LW1ldGhvZHMtcmVzdWx0LnBocCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1y
ZXN1bHQucGhwLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGlu
Zy9yZWRpcmVjdC1tZXRob2RzLmh0bWwsIGh0dHAgbWV0aG9kIFBPU1Q+IHJlZGlyZWN0UmVzcG9u
c2UgKG51bGwpCitmcmFtZSAiMSIgLSBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZQogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2Vz
L3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1
ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3Qt
bWV0aG9kcy1yZXN1bHQucGhwP3JlZGlyZWN0ZWQ9dHJ1ZSwgbWFpbiBkb2N1bWVudCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy5odG1sLCBodHRwIG1l
dGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCwgaHR0
cCBzdGF0dXMgY29kZSAzMDI+Ci1mcmFtZSAiMSIgLSBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWRGb3JGcmFtZQogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcv
cmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCAtIGRpZFJlY2VpdmVSZXNwb25z
ZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMv
cmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwP3JlZGlyZWN0ZWQ9dHJ1ZSwgaHR0cCBzdGF0dXMg
Y29kZSAyMDA+CiBmcmFtZSAiMSIgLSBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lCiBm
cmFtZSAiMSIgLSBkaWRDb21taXRMb2FkRm9yRnJhbWUKIGZyYW1lICIxIiAtIGRpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lCiBmcmFtZSAiMiIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lCi1hYm91dDpibGFuayAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBh
Ym91dDpibGFuaywgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRp
bmcvcmVkaXJlY3QtbWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9u
c2UgKG51bGwpCi1hYm91dDpibGFuayAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25z
ZSBhYm91dDpibGFuaywgaHR0cCBzdGF0dXMgY29kZSAwPgogZnJhbWUgIjIiIC0gZGlkQ29tbWl0
TG9hZEZvckZyYW1lCiBmcmFtZSAiMiIgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQog
ZnJhbWUgIjIiIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKIGZyYW1lICIyIiAtIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZQotYWJvdXQ6YmxhbmsgLSBkaWRGaW5pc2hMb2FkaW5nCiBmcmFt
ZSAiMiIgLSB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6IGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZvcm0uaHRtbCAKIGZyYW1l
ICIxIiAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCiBmcmFtZSAiMSIgLSBkaWRGaW5p
c2hMb2FkRm9yRnJhbWUKQEAgLTg1LDIwICs3NiwxNyBAQAogaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtZm9ybS5odG1sIC0gZGlkRmluaXNo
TG9hZGluZwogZnJhbWUgIjIiIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQogaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVz
dWx0LnBocCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwLCBt
YWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZWRpcmVjdC1t
ZXRob2RzLmh0bWwsIGh0dHAgbWV0aG9kIFBPU1Q+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitm
cmFtZSAiMiIgLSBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZQogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1l
dGhvZHMtcmVzdWx0LnBocCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1
bHQucGhwP3JlZGlyZWN0ZWQ9dHJ1ZSwgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJl
ZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRp
bmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCwgaHR0cCBzdGF0dXMgY29k
ZSAzMDM+Ci1mcmFtZSAiMiIgLSBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZQogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3Jl
ZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNw
b25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0
aG9kcy1yZXN1bHQucGhwP3JlZGlyZWN0ZWQ9dHJ1ZSwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CiBm
cmFtZSAiMiIgLSBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lCiBmcmFtZSAiMiIgLSBk
aWRDb21taXRMb2FkRm9yRnJhbWUKIGZyYW1lICIyIiAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZv
ckZyYW1lCiBmcmFtZSAiMyIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCi1hYm91
dDpibGFuayAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBhYm91dDpibGFuaywg
bWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVkaXJlY3Qt
bWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCi1h
Ym91dDpibGFuayAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBhYm91dDpibGFu
aywgaHR0cCBzdGF0dXMgY29kZSAwPgogZnJhbWUgIjMiIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1l
CiBmcmFtZSAiMyIgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQogZnJhbWUgIjMiIC0g
ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKIGZyYW1lICIzIiAtIGRpZEZpbmlzaExvYWRG
b3JGcmFtZQotYWJvdXQ6YmxhbmsgLSBkaWRGaW5pc2hMb2FkaW5nCiBmcmFtZSAiMyIgLSB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5n
L3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZvcm0uaHRtbCAKIGZyYW1lICIyIiAtIGRpZEhh
bmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCiBmcmFtZSAiMiIgLSBkaWRGaW5pc2hMb2FkRm9yRnJh
bWUKQEAgLTExNSw4ICsxMDMsOCBAQAogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVz
b3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtZm9ybS5odG1sIC0gZGlkRmluaXNoTG9hZGluZwogZnJh
bWUgIjMiIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQogaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCAtIHdp
bGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9h
ZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwLCBtYWluIGRvY3VtZW50
IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLmh0bWws
IGh0dHAgbWV0aG9kIFBPU1Q+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitmcmFtZSAiMyIgLSBk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZQogaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0
LnBocCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwP3JlZGly
ZWN0ZWQ9dHJ1ZSwgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRp
bmcvcmVkaXJlY3QtbWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBQT1NUPiByZWRpcmVjdFJlc3Bv
bnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNl
cy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzA3PgotZnJh
bWUgIjMiIC0gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRo
b2RzLXJlc3VsdC5waHAgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0
LnBocD9yZWRpcmVjdGVkPXRydWUsIGh0dHAgc3RhdHVzIGNvZGUgMjAwPgogZnJhbWUgIjMiIC0g
ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZQogZnJhbWUgIjMiIC0gZGlkQ29tbWl0TG9h
ZEZvckZyYW1lCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAkocmV2aXNpb24gMTMxOTA0KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOSw3ICsxMzks
NyBAQAogc3RhdGljIGJvb2wgaGFzVGV4dENvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJl
c291cmNlKQogewogICAgIEluc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3VyY2VUeXBlIHR5cGUgPSBJ
bnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlVHlwZSgqY2FjaGVkUmVzb3VyY2UpOwot
ICAgIHJldHVybiB0eXBlID09IEluc3BlY3RvclBhZ2VBZ2VudDo6U3R5bGVzaGVldFJlc291cmNl
IHx8IHR5cGUgPT0gSW5zcGVjdG9yUGFnZUFnZW50OjpTY3JpcHRSZXNvdXJjZSB8fCB0eXBlID09
IEluc3BlY3RvclBhZ2VBZ2VudDo6WEhSUmVzb3VyY2U7CisgICAgcmV0dXJuIHR5cGUgPT0gSW5z
cGVjdG9yUGFnZUFnZW50OjpEb2N1bWVudFJlc291cmNlIHx8IHR5cGUgPT0gSW5zcGVjdG9yUGFn
ZUFnZW50OjpTdHlsZXNoZWV0UmVzb3VyY2UgfHwgdHlwZSA9PSBJbnNwZWN0b3JQYWdlQWdlbnQ6
OlNjcmlwdFJlc291cmNlIHx8IHR5cGUgPT0gSW5zcGVjdG9yUGFnZUFnZW50OjpYSFJSZXNvdXJj
ZTsKIH0KIAogc3RhdGljIFBhc3NSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gY3JlYXRlWEhS
VGV4dERlY29kZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5j
b2RpbmdOYW1lKQpAQCAtMjk0LDYgKzI5NCw4IEBACiBJbnNwZWN0b3JQYWdlQWdlbnQ6OlJlc291
cmNlVHlwZSBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlVHlwZShjb25zdCBDYWNo
ZWRSZXNvdXJjZSYgY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgc3dpdGNoIChjYWNoZWRSZXNvdXJj
ZS50eXBlKCkpIHsKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2U6CisgICAg
ICAgIHJldHVybiBJbnNwZWN0b3JQYWdlQWdlbnQ6OkRvY3VtZW50UmVzb3VyY2U7CiAgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZToKICAgICAgICAgcmV0dXJuIEluc3BlY3Rv
clBhZ2VBZ2VudDo6SW1hZ2VSZXNvdXJjZTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpGb250
UmVzb3VyY2U6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5oCShyZXZpc2lvbiAxMzE5MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291
cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpZm5kZWYgTWFp
blJlc291cmNlTG9hZGVyX2gKICNkZWZpbmUgTWFpblJlc291cmNlTG9hZGVyX2gKIAorI2luY2x1
ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRl
ICJTdWJzdGl0dXRlRGF0YS5oIgpAQCAtNDksMjIgKzUxLDIxIEBACiBjbGFzcyBGb3JtU3RhdGU7
CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKLWNsYXNzIE1haW5SZXNvdXJjZUxvYWRlciA6IHB1
YmxpYyBSZXNvdXJjZUxvYWRlciB7CitjbGFzcyBNYWluUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxNYWluUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgQ2FjaGVkUmF3UmVzb3VyY2VD
bGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gY3JlYXRlKEZyYW1lKik7CiAgICAgdmly
dHVhbCB+TWFpblJlc291cmNlTG9hZGVyKCk7CiAKICAgICB2b2lkIGxvYWQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRk
RGF0YShjb25zdCBjaGFyKiwgaW50LCBib29sIGFsbEF0T25jZSkgT1ZFUlJJREU7CisgICAgdm9p
ZCBjYW5jZWwoKTsKKyAgICB2b2lkIGNhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAg
UmVzb3VyY2VMb2FkZXIqIGxvYWRlcigpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VC
dWZmZXI+IHJlc291cmNlRGF0YSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRp
bmcoYm9vbCkgT1ZFUlJJREU7CisgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOworICAg
IHZvaWQgc2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVmZmVyaW5nUG9saWN5KTsKIAotICAgIHZp
cnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxvbmcgbG9u
ZyBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0K
ICNpZiBIQVZFKFJVTkxPT1BfVElNRVIpCiAgICAgdHlwZWRlZiBSdW5Mb29wVGltZXI8TWFpblJl
c291cmNlTG9hZGVyPiBNYWluUmVzb3VyY2VMb2FkZXJUaW1lcjsKICNlbHNlCkBAIC03MywxNSAr
NzQsMTggQEAKIAogICAgIGJvb2wgaXNMb2FkaW5nTXVsdGlwYXJ0Q29udGVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQ7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisgICAg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgTWFpblJlc291cmNlTG9hZGVyKEZyYW1lKik7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdmlydHVhbCB2b2lkIHJl
c3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CisgICAgdmlydHVhbCB2b2lkIGRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IGNo
YXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNo
ZWQoQ2FjaGVkUmVzb3VyY2UqKTsKIAotICAgIGJvb2wgbG9hZE5vdyhSZXNvdXJjZVJlcXVlc3Qm
KTsKKyAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoZG91YmxlIGZpbmlzaFRpbWUpOwogCiAgICAgdm9pZCBoYW5kbGVFbXB0eUxvYWQoY29uc3Qg
S1VSTCYsIGJvb2wgZm9yVVJMU2NoZW1lKTsKICAgICB2b2lkIGhhbmRsZVN1YnN0aXR1dGVEYXRh
TG9hZFNvb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CkBAIC0xMDUsMTUgKzEwOSwyNiBAQAog
ICAgIHZvaWQgc3Vic3RpdHV0ZU1JTUVUeXBlRnJvbVBsdWdpbkRhdGFiYXNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKICNlbmRpZgogCisgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyKCkg
Y29uc3QgeyByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCk7IH0KKyAgICBEb2N1bWVudExvYWRlciog
ZG9jdW1lbnRMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50TG9hZGVyLmdldCgpOyB9
CisKKyAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdDsKKyAgICB2b2lk
IGNsZWFyUmVzb3VyY2UoKTsKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jl
c291cmNlPiBtX3Jlc291cmNlOworCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1faW5pdGlhbFJlcXVl
c3Q7CiAgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0YTsKKyAgICBSZXNvdXJjZVJl
c3BvbnNlIG1fcmVzcG9uc2U7CiAKICAgICBNYWluUmVzb3VyY2VMb2FkZXJUaW1lciBtX2RhdGFM
b2FkVGltZXI7CisgICAgUmVmUHRyPEZyYW1lPiBtX2ZyYW1lOworICAgIFJlZlB0cjxEb2N1bWVu
dExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsKIAogICAgIGJvb2wgbV9sb2FkaW5nTXVsdGlwYXJ0
Q29udGVudDsKICAgICBib29sIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3k7CiAgICAgZG91Ymxl
IG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZDsKLQorICAgICAgICAKICNpZiBQTEFURk9STShNQUMp
ICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA4MAogICAgIFdlYkZpbHRlckV2YWx1YXRvciAqbV9maWx0ZXI7CiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCShyZXZp
c2lvbiAxMzE5MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVy
TWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsOCArNTUsOCBAQAogCiB2b2lkIERvY3VtZW50
TG9hZGVyOjpzY2hlZHVsZShTY2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYgKG1fbWFpblJl
c291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKSkKLSAgICAgICAg
bV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLT5zY2hlZHVsZShwYWlyKTsKKyAgICBpZiAo
bV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpICYm
IG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+aGFuZGxlKCkpCisgICAgICAgIG1fbWFp
blJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+aGFuZGxlKCktPnNjaGVkdWxlKHBhaXIpOwogICAg
IHNjaGVkdWxlQWxsKG1fc3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFs
bChtX3BsdWdJblN0cmVhbUxvYWRlcnMsIHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fbXVsdGlw
YXJ0U3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKQEAgLTY0LDggKzY0LDggQEAKIAogdm9pZCBE
b2N1bWVudExvYWRlcjo6dW5zY2hlZHVsZShTY2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYg
KG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKSkK
LSAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLT51bnNjaGVkdWxlKHBhaXIp
OworICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+
bG9hZGVyKCkgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKSkKKyAg
ICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKS0+dW5zY2hlZHVs
ZShwYWlyKTsKICAgICB1bnNjaGVkdWxlQWxsKG1fc3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsK
ICAgICB1bnNjaGVkdWxlQWxsKG1fcGx1Z0luU3RyZWFtTG9hZGVycywgcGFpcik7CiAgICAgdW5z
Y2hlZHVsZUFsbChtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlSG9zdC5jcHAJKHJldmlzaW9uIDEzMTkwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3
ICsxMDMsNyBAQAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpKSB7CiAg
ICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0LCBkb2N1bWVudExv
YWRlcigpKTsKIAotICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VG
cm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIo
KSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKKyAgICAgICAgICAgIGlm
IChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1l
bnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCktPmxvYWRlcigpLCBtX21haW5SZXNvdXJj
ZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMTE3LDcgKzExNyw3IEBACiAgICAgICAgIGlmIChpc0FwcGxp
Y2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsKICAgICAgICAgICAgIG1fbWFpblJlc291cmNlQXBwbGlj
YXRpb25DYWNoZSA9IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5S
ZXF1ZXN0KHJlcXVlc3QsIG1fZG9jdW1lbnRMb2FkZXIpOwogCi0gICAgICAgICAgICBpZiAoc2No
ZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9h
ZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2Fj
aGUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VG
cm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIo
KS0+bG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAkocmV2aXNpb24g
MTMxOTA0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNSwxMSArMTA1LDYgQEAKICAgICByZXR1cm4gbG9hZGVy
OwogfQogCi12b2lkIFJlc291cmNlTG9hZFNjaGVkdWxlcjo6YWRkTWFpblJlc291cmNlTG9hZChS
ZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIpCi17Ci0gICAgaG9zdEZvclVSTChyZXNvdXJj
ZUxvYWRlci0+dXJsKCksIENyZWF0ZUlmTm90Rm91bmQpLT5hZGRMb2FkSW5Qcm9ncmVzcyhyZXNv
dXJjZUxvYWRlcik7Ci19Ci0KIHZvaWQgUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxv
YWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBSZXNvdXJjZUxvYWRQcmlvcml0eSBw
cmlvcml0eSkKIHsKICAgICBBU1NFUlQocmVzb3VyY2VMb2FkZXIpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHAJKHJldmlzaW9uIDEzMTkwNCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNSw2ICszNSwxMiBAQAogewogfQogCit2b2lkIEFyY2hpdmU6OmFkZFN1YnJlc291cmNlKFBh
c3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBzdWJSZXNvdXJjZSkKK3sKKyAgICBpZiAobV9tYWlu
UmVzb3VyY2UtPnVybCgpICE9IHN1YlJlc291cmNlLT51cmwoKSkKKyAgICAgICAgbV9zdWJyZXNv
dXJjZXMuYXBwZW5kKHN1YlJlc291cmNlKTsKK30KKwogdm9pZCBBcmNoaXZlOjpjbGVhckFsbFN1
YmZyYW1lQXJjaGl2ZXMoKQogewogICAgIFZlY3RvcjxSZWZQdHI8QXJjaGl2ZT4gPiBjbGVhcmVk
QXJjaGl2ZXM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5oCShy
ZXZpc2lvbiAxMzE5MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAKICAgICAvLyBUaGVzZSBtZXRob2Rz
IGFyZSBtZWFudCBmb3Igc3ViY2xhc3NlcyBmb3IgZGlmZmVyZW50IGFyY2hpdmUgdHlwZXMgdG8g
YWRkIHJlc291cmNlcyBpbiB0byB0aGUgYXJjaGl2ZSwKICAgICAvLyBhbmQgc2hvdWxkIG5vdCBi
ZSBleHBvc2VkIGFzIGFyY2hpdmVzIHNob3VsZCBiZSBpbW11dGFibGUgdG8gY2xpZW50cwogICAg
IHZvaWQgc2V0TWFpblJlc291cmNlKFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBtYWluUmVz
b3VyY2UpIHsgbV9tYWluUmVzb3VyY2UgPSBtYWluUmVzb3VyY2U7IH0KLSAgICB2b2lkIGFkZFN1
YnJlc291cmNlKFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBzdWJSZXNvdXJjZSkgeyBtX3N1
YnJlc291cmNlcy5hcHBlbmQoc3ViUmVzb3VyY2UpOyB9CisgICAgdm9pZCBhZGRTdWJyZXNvdXJj
ZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3ViUmVzb3VyY2UpOwogICAgIHZvaWQgYWRk
U3ViZnJhbWVBcmNoaXZlKFBhc3NSZWZQdHI8QXJjaGl2ZT4gc3ViZnJhbWVBcmNoaXZlKSB7IG1f
c3ViZnJhbWVBcmNoaXZlcy5hcHBlbmQoc3ViZnJhbWVBcmNoaXZlKTsgfQogCiAgICAgdm9pZCBj
bGVhckFsbFN1YmZyYW1lQXJjaGl2ZXMoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAkocmV2aXNpb24gMTMxOTA0KQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBA
CiAKIERvY3VtZW50TG9hZGVyOjp+RG9jdW1lbnRMb2FkZXIoKQogewotICAgIEFTU0VSVCghbV9m
cmFtZSB8fCBmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpICE9IHRoaXMgfHwg
IWZyYW1lTG9hZGVyKCktPmlzTG9hZGluZygpKTsKKyAgICBBU1NFUlQoIW1fZnJhbWUgfHwgZnJh
bWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSAhPSB0aGlzIHx8ICFpc0xvYWRpbmco
KSk7CiAgICAgaWYgKG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKQogICAgICAgICBtX2ljb25M
b2FkRGVjaXNpb25DYWxsYmFjay0+aW52YWxpZGF0ZSgpOwogICAgIGlmIChtX2ljb25EYXRhQ2Fs
bGJhY2spCkBAIC04MDUsMTEgKzgwNSwxNSBAQAogCiB2b2lkIERvY3VtZW50TG9hZGVyOjphZGRT
dWJyZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogeworICAgIGlmIChtX21h
aW5SZXNvdXJjZUxvYWRlciAmJiBlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKHJlcXVl
c3RVUkwoKSwgbG9hZGVyLT51cmwoKSkpCisgICAgICAgIHJldHVybjsKICAgICBtX3N1YnJlc291
cmNlTG9hZGVycy5hZGQobG9hZGVyKTsKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6cmVtb3Zl
U3VicmVzb3VyY2VMb2FkZXIoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKIHsKKyAgICBpZiAoIW1f
c3VicmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5zKGxvYWRlcikpCisgICAgICAgIHJldHVybjsKICAg
ICBtX3N1YnJlc291cmNlTG9hZGVycy5yZW1vdmUobG9hZGVyKTsKICAgICBjaGVja0xvYWRDb21w
bGV0ZSgpOwogICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2ZyYW1lKQpJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzE5MDQpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgpAQCAtMTI4LDE3ICsxMjksMjkgQEAKIHsK
ICAgICAvLyBTdG9yZSB0aGUgcHJldmlvdXMgVVJMIGJlY2F1c2UgdGhlIGNhbGwgdG8gUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCB3aWxsIG1vZGlmeSBpdC4KICAgICBLVVJMIHByZXZp
b3VzVVJMID0gcmVxdWVzdCgpLnVybCgpOwotICAgIAotICAgIFJlc291cmNlTG9hZGVyOjp3aWxs
U2VuZFJlcXVlc3QobmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7Ci0gICAgaWYgKCFwcmV2
aW91c1VSTC5pc051bGwoKSAmJiAhbmV3UmVxdWVzdC5pc051bGwoKSAmJiBwcmV2aW91c1VSTCAh
PSBuZXdSZXF1ZXN0LnVybCgpKSB7Ci0gICAgICAgIGlmIChtX2RvY3VtZW50TG9hZGVyLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5jYW5SZXF1ZXN0KG1fcmVzb3VyY2UtPnR5cGUoKSwgbmV3UmVx
dWVzdC51cmwoKSkpIHsKLSAgICAgICAgICAgIGlmIChtX3Jlc291cmNlLT50eXBlKCkgIT0gQ2Fj
aGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UgfHwgIW1fZG9jdW1lbnRMb2FkZXItPmNhY2hlZFJl
c291cmNlTG9hZGVyKCktPnNob3VsZERlZmVySW1hZ2VMb2FkKG5ld1JlcXVlc3QudXJsKCkpKSB7
Ci0gICAgICAgICAgICAgICAgbV9yZXNvdXJjZS0+d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3Qs
IHJlZGlyZWN0UmVzcG9uc2UpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IH0KKworICAgIEFTU0VSVCghbmV3UmVxdWVzdC5pc051bGwoKSk7CisgICAgaWYgKCFwcmV2aW91
c1VSTC5pc051bGwoKSAmJiBwcmV2aW91c1VSTCAhPSBuZXdSZXF1ZXN0LnVybCgpKSB7CisgICAg
ICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+Y2FuUmVx
dWVzdChtX3Jlc291cmNlLT50eXBlKCksIG5ld1JlcXVlc3QudXJsKCkpKSB7CisgICAgICAgICAg
ICBjYW5jZWwoKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjYW5j
ZWwoKTsKKyAgICAgICAgaWYgKG1fcmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6
SW1hZ2VSZXNvdXJjZSAmJiBtX2RvY3VtZW50TG9hZGVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LT5zaG91bGREZWZlckltYWdlTG9hZChuZXdSZXF1ZXN0LnVybCgpKSkgeworICAgICAgICAgICAg
Y2FuY2VsKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9yZXNv
dXJjZS0+d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogICAg
IH0KKworICAgIGlmIChuZXdSZXF1ZXN0LmlzTnVsbCgpIHx8IHJlYWNoZWRUZXJtaW5hbFN0YXRl
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVl
c3QobmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgaWYgKG5ld1JlcXVlc3QuaXNO
dWxsKCkpIHsKKyAgICAgICAgY2FuY2VsKGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5pbnRlcnJ1
cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKG5ld1JlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBtX3Jlc291cmNlLT51cGRhdGVSZXNvdXJjZVJlcXVlc3QobmV3UmVxdWVzdCk7
CiB9CiAKIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcg
bG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCkBA
IC0xNzUsNyArMTg4LDkgQEAKICAgICAgICAgcmV0dXJuOwogICAgIFJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwogCi0gICAgaWYgKHJlc3BvbnNlLmlzTXVsdGlw
YXJ0KCkpIHsKKyAgICAvLyBGSVhNRTogTWFpblJlc291cmNlTG9hZGVyIGhhcyBhIGRpZmZlcmVu
dCBzZXQgb2YgcnVsZXMgZm9yIG11bHRpcGFydCB0aGFuIGltYWdlcyBkby4KKyAgICAvLyBIb3Bl
ZnVsbHkgd2UgY2FuIG1lcmdlIHRob3NlIDIgcGF0aHMuCisgICAgaWYgKHJlc3BvbnNlLmlzTXVs
dGlwYXJ0KCkgJiYgbV9yZXNvdXJjZS0+dHlwZSgpICE9IENhY2hlZFJlc291cmNlOjpNYWluUmVz
b3VyY2UpIHsKICAgICAgICAgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCA9IHRydWU7CiAKICAg
ICAgICAgLy8gV2UgZG9uJ3QgY291bnQgbXVsdGlQYXJ0cyBpbiBhIENhY2hlZFJlc291cmNlTG9h
ZGVyJ3MgcmVxdWVzdCBjb3VudApAQCAtMjA3LDEyICsyMjIsMTEgQEAKICAgICAvLyBSZWZlcmVu
Y2UgdGhlIG9iamVjdCBpbiB0aGlzIG1ldGhvZCBzaW5jZSB0aGUgYWRkaXRpb25hbCBwcm9jZXNz
aW5nIGNhbiBkbwogICAgIC8vIGFueXRoaW5nIGluY2x1ZGluZyByZW1vdmluZyB0aGUgbGFzdCBy
ZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4K
ICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IHByb3RlY3QodGhpcyk7Ci0gICAgUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGRhdGEsIGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgs
IGFsbEF0T25jZSk7Ci0KLSAgICBpZiAobV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgc2VuZERhdGFUb1Jlc291cmNlKGRhdGEsIGxlbmd0aCk7CisgICAg
YWRkRGF0YShkYXRhLCBsZW5ndGgsIGFsbEF0T25jZSk7CisgICAgaWYgKCFtX2xvYWRpbmdNdWx0
aXBhcnRDb250ZW50KQorICAgICAgICBzZW5kRGF0YVRvUmVzb3VyY2UoZGF0YSwgbGVuZ3RoKTsK
KyAgICBpZiAoc2hvdWxkU2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpICYmIG1fZnJhbWUpCisg
ICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZFJlY2VpdmVEYXRhKHRoaXMsIGRh
dGEsIGxlbmd0aCwgc3RhdGljX2Nhc3Q8aW50PihlbmNvZGVkRGF0YUxlbmd0aCkpOwogfQogCiBi
b29sIFN1YnJlc291cmNlTG9hZGVyOjpjaGVja0ZvckhUVFBTdGF0dXNDb2RlRXJyb3IoKQpAQCAt
Mjc3LDYgKzI5MSw3IEBACiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRo
aXMpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBwcm90ZWN0UmVz
b3VyY2UobV9yZXNvdXJjZSk7CiAgICAgbV9zdGF0ZSA9IEZpbmlzaGluZzsKKyAgICBtX3Jlc291
cmNlLT5zZXRSZXNvdXJjZUVycm9yKGVycm9yKTsKICAgICBtX3Jlc291cmNlLT5lcnJvcihDYWNo
ZWRSZXNvdXJjZTo6TG9hZEVycm9yKTsKICAgICBpZiAoIW1fcmVzb3VyY2UtPmlzUHJlbG9hZGVk
KCkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShtX3Jlc291cmNlKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgJKHJldmlzaW9u
IDEzMTkwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNiBAQAogCiAgICAgUGFzc1JlZlB0cjxTdWJy
ZXNvdXJjZUxvYWRlcj4gc2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoRnJhbWUqLCBDYWNoZWRSZXNv
dXJjZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZFByaW9yaXR5LCBjb25z
dCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKICAgICBQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyPiBzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUqLCBOZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlckNsaWVudCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotICAgIHZv
aWQgYWRkTWFpblJlc291cmNlTG9hZChSZXNvdXJjZUxvYWRlciopOwogICAgIHZvaWQgcmVtb3Zl
KFJlc291cmNlTG9hZGVyKik7CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQo
UmVzb3VyY2VMb2FkZXIqLCBjb25zdCBLVVJMJiByZWRpcmVjdFVSTCk7CiAgICAgCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aAkocmV2aXNpb24gMTMxOTA0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0VXNlckNTU1N0
eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3JpcHQoUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOworICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiByZXF1ZXN0UmF3UmVzb3VyY2UoUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ2FjaGVkUmVzb3VyY2U6
OlR5cGUgPSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2UpOwogCiAjaWYgRU5BQkxFKFNWRykK
ICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVzdFNWR0Rv
Y3VtZW50KFJlc291cmNlUmVxdWVzdCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCShyZXZpc2lvbiAxMzE5MDQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MSw2ICs2MSw4IEBACiBzdGF0aWMgUmVzb3VyY2VMb2FkUHJpb3JpdHkgZGVmYXVsdFByaW9y
aXR5Rm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCiB7CiAgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZToK
KyAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlIaWdoOwogICAgICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgogICAgICAgICAgICAgcmV0dXJu
IFJlc291cmNlTG9hZFByaW9yaXR5SGlnaDsKICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6
U2NyaXB0OgpAQCAtMTAwLDYgKzEwMiw4IEBACiBzdGF0aWMgUmVzb3VyY2VSZXF1ZXN0OjpUYXJn
ZXRUeXBlIGNhY2hlZFJlc291cmNlVHlwZVRvVGFyZ2V0VHlwZShDYWNoZWRSZXNvdXJjZTo6VHlw
ZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6
Ok1haW5SZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNN
YWluRnJhbWU7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKICNpZiBF
TkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgpAQCAt
MzY5LDYgKzM3MywxMyBAQAogICAgIHJldHVybiAwOwogfQogCit2b2lkIENhY2hlZFJlc291cmNl
Ojp1cGRhdGVSZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAg
IC8vIERvbid0IGNoYW5nZSB0aGUgdXJsLCBNZW1vcnlDYWNoZSB3aWxsIGdldCBjb25mdXNlZC4K
KyAgICBpZiAobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkgPT0gcmVxdWVzdC51cmwoKSkKKyAgICAg
ICAgbV9yZXNvdXJjZVJlcXVlc3QgPSByZXF1ZXN0OworfQorCiB2b2lkIENhY2hlZFJlc291cmNl
OjpzZXRSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBt
X3Jlc3BvbnNlID0gcmVzcG9uc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAJKHJldmlzaW9uIDEzMTkwNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDggKzM2LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdS
ZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIFJhd1Jlc291cmNlKQor
Q2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYgcmVz
b3VyY2VSZXF1ZXN0LCBUeXBlIHR5cGUpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJl
cXVlc3QsIHR5cGUpCiAgICAgLCBtX2lkZW50aWZpZXIoMCkKIHsKIH0KQEAgLTExNiw2ICsxMTYs
MTMgQEAKICAgICAgICAgYy0+cmVzcG9uc2VSZWNlaXZlZCh0aGlzLCBtX3Jlc3BvbnNlKTsKIH0K
IAordm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6YWRkQWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzKENh
Y2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKK3sKKyAgICBpZiAodHlw
ZSgpID09IE1haW5SZXNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworICAgIENhY2hlZFJlc291cmNl
OjphZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworfQor
CiB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcg
Ynl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KQogewogICAg
IENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyPENhY2hlZFJhd1Jlc291cmNlQ2xpZW50PiB3KG1f
Y2xpZW50cyk7CkBAIC0xMjksNiArMTM2LDExIEBACiAgICAgICAgIG1fbG9hZGVyLT5zZXREZWZl
cnNMb2FkaW5nKGRlZmVycyk7CiB9CiAKK3ZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OnNldFNob3Vs
ZEJ1ZmZlckRhdGEoRGF0YUJ1ZmZlcmluZ1BvbGljeSBzaG91bGRCdWZmZXJEYXRhKQoreworICAg
IG1fb3B0aW9ucy5zaG91bGRCdWZmZXJEYXRhID0gc2hvdWxkQnVmZmVyRGF0YTsKK30KKwogc3Rh
dGljIGJvb2wgc2hvdWxkSWdub3JlSGVhZGVyRm9yQ2FjaGVSZXVzZShBdG9taWNTdHJpbmcgaGVh
ZGVyTmFtZSkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBsaXN0IG9mIGhlYWRlcnMgdGhhdCBkb24n
dCBhZmZlY3QgY2FjaGUgcG9saWN5IGFsbW9zdCBjZXJ0YWlubHkgaXNuJ3QgY29tcGxldGUuCkBA
IC0xODQsMTEgKzE5NiwyMyBAQAogICAgIHJldHVybiB0cnVlOwogfQogCitTdWJyZXNvdXJjZUxv
YWRlciogQ2FjaGVkUmF3UmVzb3VyY2U6OmxvYWRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
bG9hZGVyLmdldCgpOworfQorCit2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpjbGVhcigpCit7Cisg
ICAgbV9kYXRhLmNsZWFyKCk7CisgICAgc2V0RW5jb2RlZFNpemUoMCk7CisgICAgaWYgKG1fbG9h
ZGVyKQorICAgICAgICBtX2xvYWRlci0+Y2xlYXJSZXNvdXJjZURhdGEoKTsKK30KKwogdm9pZCBD
YWNoZWRSYXdSZXNvdXJjZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlUmF3KTsK
ICAgICBDYWNoZWRSZXNvdXJjZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7
CiB9CiAKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAx
MzE5MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw4IEBACiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6Rm9udFJlc291cmNlOgogICAgICAgICByZXR1cm4gbmV3IENhY2hlZEZvbnQocmVx
dWVzdCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U6Ci0gICAgICAgIHJl
dHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCk7CisgICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6TWFpblJlc291cmNlOgorICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJhd1Jlc291cmNl
KHJlcXVlc3QsIHR5cGUpOwogI2lmIEVOQUJMRShYU0xUKQogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlhTTFN0eWxlU2hlZXQ6CiAgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkWFNMU3R5bGVTaGVl
dChyZXF1ZXN0KTsKQEAgLTI0Miw5ICsyNDMsOSBAQAogfQogI2VuZGlmCiAKLUNhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zJiBvcHRpb25zKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3Vy
Y2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIENhY2hl
ZFJlc291cmNlOjpUeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJh
d1Jlc291cmNlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwg
cmVxdWVzdCwgU3RyaW5nKCksIG9wdGlvbnMsIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZl
ZCwgZmFsc2UpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3Vy
Y2UqPihyZXF1ZXN0UmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgU3RyaW5nKCksIG9wdGlvbnMsIFJl
c291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgZmFsc2UpLmdldCgpKTsKIH0KIAogYm9vbCBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsKSBjb25zdApAQCAtMjgxLDYgKzI4Miw3IEBACiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6
Ok1haW5SZXNvdXJjZToKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1
YnJlc291cmNlOgpAQCAtMjkzLDExICsyOTUsNyBAQAogCiBib29sIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVy
bCwgYm9vbCBmb3JQcmVsb2FkKQogewotICAgIC8vIEZJWE1FOiBXaGVuIHdlIGNhbiBsb2FkIG1h
aW4gcmVzb3VyY2VzIHRocm91Z2ggQ2FjaGVkUmVzb3VyY2VMb2FkZXIsIHdlJ2xsIG5lZWQgdG8g
YWxsb3cgZm9yIG51bGwgZG9jdW1lbnQoKSBoZXJlLgotICAgIGlmICghZG9jdW1lbnQoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLT5jYW5EaXNwbGF5KHVybCkpIHsKKyAgICBpZiAoZG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxheSh1cmwpKSB7CiAgICAgICAgIGlmICghZm9y
UHJlbG9hZCkKICAgICAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQo
ZG9jdW1lbnQoKS0+ZnJhbWUoKSwgdXJsLnN0cmluZygpKTsKICAgICAgICAgTE9HKFJlc291cmNl
TG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgVVJMIHdhcyBu
b3QgYWxsb3dlZCBieSBTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheSIpOwpAQCAtMzA4LDYgKzMw
Niw3IEBACiAgICAgLy8gdHlwZXMgb2YgcmVzb3VyY2VzLCBsaWtlIEltYWdlcywgU2NyaXB0cywg
YW5kIENTUywgY2FuIGJlIGxvYWRlZCBmcm9tCiAgICAgLy8gYW55IFVSTC4KICAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2U6CiAgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpDU1NTdHlsZVNoZWV0OgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKQEAgLTM3
NSw2ICszNzQsNyBAQAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVhazsK
ICAgICB9CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlOgogICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQog
ICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDoKQEAgLTUxOSw4ICs1MTksMTEg
QEAKICAgICAgICAgcmV0dXJuIFJlbG9hZDsKICAgICB9CiAKKyAgICBpZiAoZXhpc3RpbmdSZXNv
dXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCisgICAgICAgIHJl
dHVybiBSZWxvYWQ7CisKICAgICBpZiAoZXhpc3RpbmdSZXNvdXJjZS0+dHlwZSgpID09IENhY2hl
ZFJlc291cmNlOjpSYXdSZXNvdXJjZSAmJiAhc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2Uq
PihleGlzdGluZ1Jlc291cmNlKS0+Y2FuUmV1c2UocmVxdWVzdCkpCi0gICAgICAgICByZXR1cm4g
UmVsb2FkOworICAgICAgICByZXR1cm4gUmVsb2FkOwogCiAgICAgLy8gQ2VydGFpbiByZXF1ZXN0
cyAoZS5nLiwgWEhScykgbWlnaHQgaGF2ZSBtYW51YWxseSBzZXQgaGVhZGVycyB0aGF0IHJlcXVp
cmUgcmV2YWxpZGF0aW9uLgogICAgIC8vIEZJWE1FOiBJbiB0aGVvcnksIHRoaXMgc2hvdWxkIGJl
IGEgUmV2YWxpZGF0ZSBjYXNlLiBJbiBwcmFjdGljZSwgdGhlIE1lbW9yeUNhY2hlIHJldmFsaWRh
dGlvbiBwYXRoIGFzc3VtZXMgYSB3aG9sZSBidW5jaApJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgJKHJldmlzaW9uIDEzMTkwNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC02MSw2ICs2MSw3IEBACiAgICAgCiBwdWJsaWM6CiAgICAgZW51bSBUeXBlIHsKKyAgICAgICAg
TWFpblJlc291cmNlLAogICAgICAgICBJbWFnZVJlc291cmNlLAogICAgICAgICBDU1NTdHlsZVNo
ZWV0LAogICAgICAgICBTY3JpcHQsCkBAIC0xMDMsOCArMTA0LDEyIEBACiAgICAgdmlydHVhbCB2
b2lkIGRhdGEoUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVj
ZWl2ZWQpOwogICAgIHZpcnR1YWwgdm9pZCBlcnJvcihDYWNoZWRSZXNvdXJjZTo6U3RhdHVzKTsK
IAorICAgIHZvaWQgc2V0UmVzb3VyY2VFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikg
eyBtX2Vycm9yID0gZXJyb3I7IH0KKyAgICBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVy
cm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorCiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZElnbm9yZUhUVFBTdGF0dXNDb2RlRXJyb3JzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAor
ICAgIHZvaWQgdXBkYXRlUmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwogICAgIFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVl
c3Q7IH0KICAgICBjb25zdCBLVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVx
dWVzdC51cmwoKTt9CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
VHlwZT4obV90eXBlKTsgfQpAQCAtMTUxLDcgKzE1Niw3IEBACiAgICAgdmlydHVhbCBib29sIGlz
SW1hZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaWdub3JlRm9yUmVxdWVz
dENvdW50KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBmYWxzZQorICAgICAgICByZXR1
cm4gdHlwZSgpID09IE1haW5SZXNvdXJjZQogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAg
ICAgICAgICAgfHwgdHlwZSgpID09IExpbmtQcmVmZXRjaAogICAgICAgICAgICAgfHwgdHlwZSgp
ID09IExpbmtTdWJyZXNvdXJjZQpAQCAtMzA3LDYgKzMxMiw4IEBACiAKICAgICBSZWZQdHI8Q2Fj
aGVkTWV0YWRhdGE+IG1fY2FjaGVkTWV0YWRhdGE7CiAKKyAgICBSZXNvdXJjZUVycm9yIG1fZXJy
b3I7CisKICAgICBkb3VibGUgbV9sYXN0RGVjb2RlZEFjY2Vzc1RpbWU7IC8vIFVzZWQgYXMgYSAi
dGhyYXNoIGd1YXJkIiBpbiB0aGUgY2FjaGUKICAgICBkb3VibGUgbV9sb2FkRmluaXNoVGltZTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291
cmNlLmgJKHJldmlzaW9uIDEzMTkwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSYXdSZXNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMSArMjcsMjcgQEAKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlQ2FsbGJhY2s7
CiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudDsKIAogY2xhc3MgQ2FjaGVkUmF3UmVzb3Vy
Y2UgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZFJhd1Jlc291
cmNlKFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVx
dWVzdCYsIFR5cGUpOwogCiAgICAgLy8gRklYTUU6IEFzc29jaWF0ZWRVUkxMb2FkZXIgc2hvdWxk
bid0IGJlIGEgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyIGFuZCB0aGVyZWZvcmUgc2hvdWxkbid0
CiAgICAgLy8gdXNlIENhY2hlZFJhd1Jlc291cmNlLiBIb3dldmVyLCBpdCBpcywgYW5kIGl0IG5l
ZWRzIHRvIGJlIGFibGUgdG8gZGVmZXIgbG9hZGluZy4KICAgICAvLyBUaGlzIGNhbiBiZSBmaXhl
ZCBieSBzcGxpdHRpbmcgQ09SUyBwcmVmbGlnaHRpbmcgb3V0IG9mIERvY3VtZW50VGhyZWFjYWJs
ZUxvYWRlci4KICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKKworICAg
IHZpcnR1YWwgdm9pZCBzZXRTaG91bGRCdWZmZXJEYXRhKERhdGFCdWZmZXJpbmdQb2xpY3kpOwog
ICAgIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGV4cG9zZWQgZm9yIHRoZSBJbnBzZWN0b3JJbnN0
cnVtZW50YXRpb24gZm9yIHByZWZsaWdodHMgaW4gRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLiBJ
dCdzIGFsc28gcmVhbGx5IGxhbWUuCiAgICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKKyAgICBTdWJyZXNvdXJjZUxvYWRlciogbG9h
ZGVyKCkgY29uc3Q7CisgICAgdm9pZCBjbGVhcigpOworCiAgICAgYm9vbCBjYW5SZXVzZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CkBAIC02MCw2ICs2Niw4
IEBACiAgICAgdmlydHVhbCB2b2lkIGRpZERvd25sb2FkRGF0YShpbnQpOwogI2VuZGlmCiAKKyAg
ICB2aXJ0dWFsIHZvaWQgYWRkQWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzKENhY2hlZFJlc291cmNl
TG9hZGVyKik7CisKICAgICB1bnNpZ25lZCBsb25nIG1faWRlbnRpZmllcjsKIH07CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lv
biAxMzE5MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiQXBwbGljYXRp
b25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNs
dWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNDUsMTIgKzQ2LDE0
IEBACiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTY2hlbWVS
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKKyNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgogCiAjaWYgUExBVEZPUk0oUVQpCkBAIC03MSw4ICs3NCw5IEBACiB9CiAKIE1h
aW5SZXNvdXJjZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSkKLSAgICA6
IFJlc291cmNlTG9hZGVyKGZyYW1lLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNr
cywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBBc2tD
bGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBTa2lwU2VjdXJpdHlDaGVjaykpCi0gICAg
LCBtX2RhdGFMb2FkVGltZXIodGhpcywgJk1haW5SZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3Rp
dHV0ZURhdGFMb2FkTm93KQorICAgIDogbV9kYXRhTG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3Vy
Y2VMb2FkZXI6OmhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdykKKyAgICAsIG1fZnJhbWUoZnJh
bWUpCisgICAgLCBtX2RvY3VtZW50TG9hZGVyKGZyYW1lLT5sb2FkZXIoKS0+YWN0aXZlRG9jdW1l
bnRMb2FkZXIoKSkKICAgICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAg
LCBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KGZhbHNlKQogICAgICwgbV90aW1lT2ZMYXN0RGF0
YVJlY2VpdmVkKDAuMCkKQEAgLTEwNSwzNSArMTA5LDMzIEBACiAgICAgLy8gZG9jdW1lbnQgbG9h
ZGVycy4gQWxzbywgbWFpblJlY2VpdmVkRXJyb3IgZW5kcyB1cCBjYWxsaW5nIGEgRnJhbWVMb2Fk
RGVsZWdhdGUgbWV0aG9kCiAgICAgLy8gYW5kIGRpZEZhaWxUb0xvYWQgY2FsbHMgYSBSZXNvdXJj
ZUxvYWREZWxlZ2F0ZSBtZXRob2QgYW5kIHRoZXkgbmVlZCB0byBiZSBpbiB0aGUgY29ycmVjdCBv
cmRlci4KICAgICBkb2N1bWVudExvYWRlcigpLT5tYWluUmVjZWl2ZWRFcnJvcihlcnJvcik7Cit9
CiAKLSAgICBpZiAoIWNhbmNlbGxlZCgpKSB7Ci0gICAgICAgIEFTU0VSVCghcmVhY2hlZFRlcm1p
bmFsU3RhdGUoKSk7Ci0gICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZEZhaWxU
b0xvYWQodGhpcywgZXJyb3IpOwotICAgICAgICAKLSAgICAgICAgcmVsZWFzZVJlc291cmNlcygp
OwotICAgIH0KLQotICAgIEFTU0VSVChyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsKK3ZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpjYW5jZWwoKQoreworICAgIGNhbmNlbChSZXNvdXJjZUVycm9yKCkp
OwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbENhbmNlbChjb25zdCBSZXNvdXJj
ZUVycm9yJikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwoY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCiB7CisgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0
aGlzKTsKKyAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IgPSBlcnJvci5pc051bGwoKSA/
IGZyYW1lTG9hZGVyKCktPmNhbmNlbGxlZEVycm9yKHJlcXVlc3QoKSkgOiBlcnJvcjsKKwogICAg
IG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7CiAKICAgICBpZiAobV93YWl0aW5nRm9yQ29udGVudFBv
bGljeSkgewogICAgICAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENo
ZWNrKCk7CiAgICAgICAgIEFTU0VSVChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsKICAgICAg
ICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwotICAgICAgICBkZXJlZigpOyAv
LyBiYWxhbmNlcyByZWYgaW4gZGlkUmVjZWl2ZVJlc3BvbnNlCisgICAgICAgIGRlcmVmKCk7IC8v
IGJhbGFuY2VzIHJlZiBpbiByZXNwb25zZVJlY2VpdmVkCiAgICAgfQotfQogCi12b2lkIE1haW5S
ZXNvdXJjZUxvYWRlcjo6ZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewot
ICAgIC8vIFdlIHNob3VsZCBub3RpZnkgdGhlIGZyYW1lIGxvYWRlciBhZnRlciBmdWxseSBjYW5j
ZWxpbmcgdGhlIGxvYWQsIGJlY2F1c2UgaXQgY2FuIGRvIGNvbXBsaWNhdGVkIHdvcmsKLSAgICAv
LyBsaWtlIGNhbGxpbmcgRE9NV2luZG93OjpwcmludCgpLCBkdXJpbmcgd2hpY2ggYSBoYWxmLWNh
bmNlbGVkIGxvYWQgY291bGQgdHJ5IHRvIGZpbmlzaC4KLSAgICBkb2N1bWVudExvYWRlcigpLT5t
YWluUmVjZWl2ZWRFcnJvcihlcnJvcik7CisgICAgaWYgKGxvYWRlcigpKQorICAgICAgICBsb2Fk
ZXIoKS0+Y2FuY2VsKHJlc291cmNlRXJyb3IpOwogCisgICAgY2xlYXJSZXNvdXJjZSgpOworICAg
IHJlY2VpdmVkRXJyb3IocmVzb3VyY2VFcnJvcik7CisKICNpZiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAog
ICAgIGlmIChtX2ZpbHRlcikgewogICAgICAgICB3a0ZpbHRlclJlbGVhc2UobV9maWx0ZXIpOwpA
QCAtMTQyLDYgKzE0NCwxOSBAQAogI2VuZGlmCiB9CiAKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVy
OjpjbGVhclJlc291cmNlKCkKK3sKKyAgICBpZiAobV9yZXNvdXJjZSkgeworICAgICAgICBtX3Jl
c291cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIG1fcmVzb3VyY2UgPSAwOworICAg
IH0KK30KKworY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBNYWluUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+cmVzb3Vy
Y2VSZXF1ZXN0KCkgOiBtX2luaXRpYWxSZXF1ZXN0OworfQorCiBSZXNvdXJjZUVycm9yIE1haW5S
ZXNvdXJjZUxvYWRlcjo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5pbnRlcnJ1cHRlZEZvclBvbGlj
eUNoYW5nZUVycm9yKHJlcXVlc3QoKSk7CkBAIC0xNjYsNyArMTgxLDcgQEAKICAgICBlbHNlIGlm
IChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgewogICAgICAgICAvLyBBIHJlZGlyZWN0IHJl
c3VsdGVkIGluIGxvYWRpbmcgc3Vic3RpdHV0ZSBkYXRhLgogICAgICAgICBBU1NFUlQoZG9jdW1l
bnRMb2FkZXIoKS0+dGltaW5nKCktPnJlZGlyZWN0Q291bnQoKSk7Ci0gICAgICAgIGhhbmRsZSgp
LT5jYW5jZWwoKTsKKyAgICAgICAgY2xlYXJSZXNvdXJjZSgpOwogICAgICAgICBoYW5kbGVTdWJz
dGl0dXRlRGF0YUxvYWRTb29uKHJlcXVlc3QpOwogICAgIH0KIApAQCAtMTg2LDEyICsyMDEsMTcg
QEAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjphZGRE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGJvb2wgYWxsQXRPbmNlKQorUGFzc1Jl
ZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gTWFpblJlc291cmNlTG9hZGVyOjpyZXNvdXJjZURhdGEoKQog
ewotICAgIFJlc291cmNlTG9hZGVyOjphZGREYXRhKGRhdGEsIGxlbmd0aCwgYWxsQXRPbmNlKTsK
LSAgICBkb2N1bWVudExvYWRlcigpLT5yZWNlaXZlZERhdGEoZGF0YSwgbGVuZ3RoKTsKKyAgICBy
ZXR1cm4gbV9yZXNvdXJjZSA/IG1fcmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCkgOiAwOwogfQog
Cit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCBy
ZXNvdXJjZSA9PSBtX3Jlc291cmNlKTsKKyAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgcmVk
aXJlY3RSZXNwb25zZSk7Cit9CisKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZWRpcmVjdFJlc3BvbnNlKQogewogICAgIC8vIE5vdGUgdGhhdCB0aGVyZSBhcmUgbm8gYXNz
ZXJ0cyBoZXJlIGFzIHRoZXJlIGFyZSBmb3IgdGhlIG90aGVyIGNhbGxiYWNrcy4gVGhpcyBpcyBk
dWUgdG8gdGhlCkBAIC0yNDIsMTAgKzI2Miw5IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBS
ZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9u
c2UpOwotCiAgICAgLy8gRG9uJ3Qgc2V0IHRoaXMgb24gdGhlIGZpcnN0IHJlcXVlc3QuIEl0IGlz
IHNldCB3aGVuIHRoZSBtYWluIGxvYWQgd2FzIHN0YXJ0ZWQuCi0gICAgbV9kb2N1bWVudExvYWRl
ci0+c2V0UmVxdWVzdChuZXdSZXF1ZXN0KTsKKyAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNO
dWxsKCkpCisgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3UmVxdWVzdCk7
CiAKICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpIHsKICAgICAgICAgLy8gV2Ug
Y2hlY2tlZCBhcHBsaWNhdGlvbiBjYWNoZSBmb3IgaW5pdGlhbCBVUkwsIG5vdyB3ZSBuZWVkIHRv
IGNoZWNrIGl0IGZvciByZWRpcmVjdGVkIG9uZS4KQEAgLTI4MCwyNyArMjk5LDI2IEBACiAgICAg
ICAgIGlmICghZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmNhblNob3dNSU1FVHlwZShtaW1lVHlw
ZSkgfHwgaXNSZW1vdGVXZWJBcmNoaXZlKSB7CiAgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5w
b2xpY3lDaGVja2VyKCktPmNhbm5vdFNob3dNSU1FVHlwZShyKTsKICAgICAgICAgICAgIC8vIENo
ZWNrIHJlYWNoZWRUZXJtaW5hbFN0YXRlIHNpbmNlIHRoZSBsb2FkIG1heSBoYXZlIGFscmVhZHkg
YmVlbiBjYW5jZWxlZCBpbnNpZGUgb2YgX2hhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeVdpdGhF
cnJvckNvZGU6Oi4KLSAgICAgICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAg
ICAgICAgICAgICAgICBzdG9wTG9hZGluZ0ZvclBvbGljeUNoYW5nZSgpOworICAgICAgICAgICAg
c3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBjYXNlIFBvbGljeURvd25sb2FkOiB7
Ci0gICAgICAgIC8vIG1faGFuZGxlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBhIHN1
YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KLSAgICAgICAgaWYgKCFt
X2hhbmRsZSkgewotICAgICAgICAgICAgcmVjZWl2ZWRFcnJvcihjYW5ub3RTaG93VVJMRXJyb3Io
KSk7CisgICAgICAgIC8vIG1fcmVzb3VyY2UgY2FuIGJlIG51bGwsIGUuZy4gd2hlbiBsb2FkaW5n
IGEgc3Vic3RpdHV0ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLgorICAgICAgICBp
ZiAoIW1fcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoZnJhbWVMb2FkZXIo
KS0+Y2xpZW50KCktPmNhbm5vdFNob3dVUkxFcnJvcihyZXF1ZXN0KCkpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNv
bnRpbnVlV2l0aFBvbGljeURvd25sb2FkKG1fZnJhbWUuZ2V0KCksIGRvY3VtZW50TG9hZGVyKCks
IGlkZW50aWZpZXIoKSwgcik7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29u
dGludWVXaXRoUG9saWN5RG93bmxvYWQobV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwg
bV9yZXNvdXJjZS0+bG9hZGVyKCktPmlkZW50aWZpZXIoKSwgcik7CiAKICAgICAgICAgLy8gV2hl
biBzdGFydGluZyB0aGUgcmVxdWVzdCwgd2UgZGlkbid0IGtub3cgdGhhdCBpdCB3b3VsZCByZXN1
bHQgaW4gZG93bmxvYWQgYW5kIG5vdCBuYXZpZ2F0aW9uLiBOb3cgd2Uga25vdyB0aGF0IG1haW4g
ZG9jdW1lbnQgVVJMIGRpZG4ndCBjaGFuZ2UuCiAgICAgICAgIC8vIERvd25sb2FkIG1heSB1c2Ug
dGhpcyBrbm93bGVkZ2UgZm9yIHB1cnBvc2VzIHVucmVsYXRlZCB0byBjb29raWVzLCBub3RhYmx5
IGZvciBzZXR0aW5nIGZpbGUgcXVhcmFudGluZSBkYXRhLgogICAgICAgICBSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCA9IHRoaXMtPnJlcXVlc3QoKTsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+c2V0
T3JpZ2luYWxVUkxGb3JEb3dubG9hZFJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICAgICAgZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1faGFuZGxlLmdldCgpLCByZXF1ZXN0LCByKTsK
KyAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1fcmVzb3VyY2UtPmxv
YWRlcigpLT5oYW5kbGUoKSwgcmVxdWVzdCwgcik7CiAKICAgICAgICAgLy8gSXQgbWlnaHQgaGF2
ZSBnb25lIG1pc3NpbmcKICAgICAgICAgaWYgKGZyYW1lTG9hZGVyKCkpCkBAIC0zMDgsNyArMzI2
LDcgQEAKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIFBvbGljeUlnbm9yZToKLSAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUo
bV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKKyAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUobV9m
cmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNvdXJjZS0+bG9hZGVyKCktPmlkZW50
aWZpZXIoKSwgcik7CiAgICAgICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICAKQEAgLTMzMiwxNCArMzUwLDEwIEBACiAgICAgICAgIH0KICAgICB9
CiAKLSAgICAvLyB3ZSBtYXkgaGF2ZSBjYW5jZWxsZWQgdGhpcyBsb2FkIGFzIHBhcnQgb2Ygc3dp
dGNoaW5nIHRvIGZhbGxiYWNrIGNvbnRlbnQKLSAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRl
KCkpCi0gICAgICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uocik7Ci0KLSAg
ICBpZiAoZnJhbWVMb2FkZXIoKSAmJiAhZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKS0+aXNTdG9wcGluZygpKSB7CisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkg
JiYgIW1fZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSkgewogICAgICAgICBpZiAobV9zdWJz
dGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIGlmIChtX3N1YnN0aXR1dGVEYXRh
LmNvbnRlbnQoKS0+c2l6ZSgpKQotICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVEYXRhKG1fc3Vi
c3RpdHV0ZURhdGEuY29udGVudCgpLT5kYXRhKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgp
LT5zaXplKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCksIHRydWUpOworICAg
ICAgICAgICAgICAgIGRhdGFSZWNlaXZlZCgwLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+
ZGF0YSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKTsKICAgICAgICAgICAg
IGlmIChmcmFtZUxvYWRlcigpICYmICFmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRl
cigpLT5pc1N0b3BwaW5nKCkpIAogICAgICAgICAgICAgICAgIGRpZEZpbmlzaExvYWRpbmcoMCk7
CiAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkTG9hZEFzRW1wdHlEb2N1bWVudCh1cmwpIHx8IGZy
YW1lTG9hZGVyKCktPmNsaWVudCgpLT5yZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSh1
cmwucHJvdG9jb2woKSkpCkBAIC0zNTYsMTMgKzM3MCwxNCBAQAogewogICAgIEFTU0VSVChtX3dh
aXRpbmdGb3JDb250ZW50UG9saWN5KTsKICAgICBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5ID0g
ZmFsc2U7Ci0gICAgaWYgKGZyYW1lTG9hZGVyKCkgJiYgIWZyYW1lTG9hZGVyKCktPmFjdGl2ZURv
Y3VtZW50TG9hZGVyKCktPmlzU3RvcHBpbmcoKSkKKyAgICBpZiAobV9kb2N1bWVudExvYWRlci0+
ZnJhbWUoKSAmJiAhbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpKQogICAgICAgICBjb250
aW51ZUFmdGVyQ29udGVudFBvbGljeShwb2xpY3ksIG1fcmVzcG9uc2UpOwotICAgIGRlcmVmKCk7
IC8vIGJhbGFuY2VzIHJlZiBpbiBkaWRSZWNlaXZlUmVzcG9uc2UKKyAgICBkZXJlZigpOyAvLyBi
YWxhbmNlcyByZWYgaW4gcmVzcG9uc2VSZWNlaXZlZAogfQogCi12b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCit2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCiB7CisgICAgQVNTRVJUX1VOVVNFRChy
ZXNvdXJjZSwgbV9yZXNvdXJjZSA9PSByZXNvdXJjZSk7CiAgICAgaWYgKGRvY3VtZW50TG9hZGVy
KCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3Bv
bnNlKHJlcXVlc3QoKSwgcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzcwLDcgKzM4NSw3IEBA
CiAgICAgaWYgKGl0ICE9IHIuaHR0cEhlYWRlckZpZWxkcygpLmVuZCgpKSB7CiAgICAgICAgIFN0
cmluZyBjb250ZW50ID0gaXQtPnZhbHVlOwogICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCkt
PnNob3VsZEludGVycnVwdExvYWRGb3JYRnJhbWVPcHRpb25zKGNvbnRlbnQsIHIudXJsKCkpKSB7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVlQWZ0ZXJYRnJh
bWVPcHRpb25zRGVuaWVkKG1fZnJhbWUuZ2V0KCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZp
ZXIoKSwgcik7CisgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVl
QWZ0ZXJYRnJhbWVPcHRpb25zRGVuaWVkKG1fZnJhbWUuZ2V0KCksIGRvY3VtZW50TG9hZGVyKCks
IG1fcmVzb3VyY2UtPmxvYWRlcigpLT5pZGVudGlmaWVyKCksIHIpOwogICAgICAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJS
ZWZ1c2VkIHRvIGRpc3BsYXkgZG9jdW1lbnQgYmVjYXVzZSBkaXNwbGF5IGZvcmJpZGRlbiBieSBY
LUZyYW1lLU9wdGlvbnMuXG4iKSkpOwogICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UpOwogCkBAIC0zNzks
MTUgKzM5NCw5IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGVyZSBpcyBhIGJ1ZyBp
biBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiBs
b2FkcyBhcmUgZGVmZXJyZWQuCi0gICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS82MzA0NjAwPiBm
b3IgbW9yZSBkZXRhaWxzLgotI2lmICFVU0UoQ0YpCi0gICAgQVNTRVJUKHNob3VsZExvYWRBc0Vt
cHR5RG9jdW1lbnQoci51cmwoKSkgfHwgIWRlZmVyc0xvYWRpbmcoKSk7Ci0jZW5kaWYKLQogICAg
IGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KSB7CiAgICAgICAgIG1fZG9jdW1lbnRMb2Fk
ZXItPnNldHVwRm9yUmVwbGFjZSgpOwotICAgICAgICBjbGVhclJlc291cmNlRGF0YSgpOworICAg
ICAgICBtX3Jlc291cmNlLT5jbGVhcigpOwogICAgIH0KICAgICAKICAgICBpZiAoci5pc011bHRp
cGFydCgpKQpAQCAtNDAzLDcgKzQxMiw3IEBACiAKICAgICBBU1NFUlQoIW1fd2FpdGluZ0ZvckNv
bnRlbnRQb2xpY3kpOwogICAgIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kgPSB0cnVlOwotICAg
IHJlZigpOyAvLyBiYWxhbmNlZCBieSBkZXJlZiBpbiBjb250aW51ZUFmdGVyQ29udGVudFBvbGlj
eSBhbmQgZGlkQ2FuY2VsCisgICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRp
bnVlQWZ0ZXJDb250ZW50UG9saWN5IGFuZCBjYW5jZWwKIAogICAgIEFTU0VSVChmcmFtZUxvYWRl
cigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKTsKIApAQCAtNDMwLDI4ICs0MzksMTMgQEAKICAg
ICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jl
c3BvbnNlLCBjYWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3ksIHRoaXMpOwogfQogCi12b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50
IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3Zv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChkYXRhKTsK
ICAgICBBU1NFUlQobGVuZ3RoICE9IDApOwotCisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwg
cmVzb3VyY2UgPT0gbV9yZXNvdXJjZSk7CiAgICAgQVNTRVJUKCFtX3Jlc3BvbnNlLmlzTnVsbCgp
KTsKIAotI2lmIFVTRShDRk5FVFdPUkspIHx8IFBMQVRGT1JNKE1BQykKLSAgICAvLyBXb3JrYXJv
dW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNjA2MDc4Mj4KLSAgICBpZiAobV9yZXNwb25zZS5pc051
bGwoKSkgewotICAgICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShLVVJMKCksICJ0
ZXh0L2h0bWwiLCAwLCBTdHJpbmcoKSwgU3RyaW5nKCkpOwotICAgICAgICBpZiAoRG9jdW1lbnRM
b2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyLT5zZXRSZXNwb25zZShtX3Jlc3BvbnNl
KTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0d29yayB3
aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBkZWZl
cnJlZC4KLSAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRldGFp
bHMuCi0jaWYgIVVTRShDRikKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0jZW5kaWYK
LQogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIEFT
U0VSVCghd2tGaWx0ZXJXYXNCbG9ja2VkKG1fZmlsdGVyKSk7CkBAIC00NTksMjQgKzQ1MywyMiBA
QAogICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGJsb2NrZWREYXRhLCB0aGF0IG1lYW5zIHdl
J3JlIHN0aWxsIGFjY3VtdWxhdGluZyBkYXRhCiAgICAgICAgIGlmICghYmxvY2tlZERhdGEpIHsK
ICAgICAgICAgICAgIC8vIFRyYW5zaXRpb24gdG8gY29tbWl0dGVkIHN0YXRlLgotICAgICAgICAg
ICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKCIiLCAwLCAwLCBmYWxzZSk7CisgICAg
ICAgICAgICBkb2N1bWVudExvYWRlcigpLT5yZWNlaXZlZERhdGEoMCwgMCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBkYXRhID0gYmxvY2tlZERhdGE7Ci0gICAg
ICAgIGVuY29kZWREYXRhTGVuZ3RoID0gLTE7CiAgICAgfQogI2VuZGlmCiAKLSAgICBkb2N1bWVu
dExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYWluUmVzb3VyY2VEYXRhUmVjZWl2
ZWQoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsKKyAgICBkb2N1
bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYWluUmVzb3VyY2VEYXRhUmVj
ZWl2ZWQoZGF0YSwgbGVuZ3RoLCAtMSwgZmFsc2UpOwogCiAgICAgLy8gVGhlIGFkZGl0aW9uYWwg
cHJvY2Vzc2luZyBjYW4gZG8gYW55dGhpbmcgaW5jbHVkaW5nIHBvc3NpYmx5IHJlbW92aW5nIHRo
ZSBsYXN0CiAgICAgLy8gcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0
aGlzIGlzIDMyNjYyMTYuCiAgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0
aGlzKTsKLQogICAgIG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOwogCi0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGRhdGEs
IGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7CisgICAgZG9jdW1lbnRMb2Fk
ZXIoKS0+cmVjZWl2ZWREYXRhKGRhdGEsIGxlbmd0aCk7CiAKICNpZiBQTEFURk9STShNQUMpICYm
ICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4
MAogICAgIGlmIChXZWJGaWx0ZXJFdmFsdWF0b3IgKmZpbHRlciA9IG1fZmlsdGVyKSB7CkBAIC00
OTQsMTIgKzQ4Niw2IEBACiAKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2Fk
aW5nKGRvdWJsZSBmaW5pc2hUaW1lKQogewotICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0
d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFy
ZSBkZWZlcnJlZC4KLSAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3Jl
IGRldGFpbHMuCi0jaWYgIVVTRShDRikKLSAgICBBU1NFUlQoc2hvdWxkTG9hZEFzRW1wdHlEb2N1
bWVudChmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT51cmwoKSkgfHwgIWRl
ZmVyc0xvYWRpbmcoKSB8fCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRGVidWdnZXJQYXVz
ZWQobV9mcmFtZS5nZXQoKSkpOwotI2VuZGlmCi0KICAgICAvLyBUaGUgYWRkaXRpb25hbCBwcm9j
ZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3ZpbmcgdGhlIGxh
c3QKICAgICAvLyByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QuCiAgICAgUmVmUHRyPE1haW5SZXNv
dXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKQEAgLTUxMyw3ICs0OTksNyBAQAogICAgICAgICAv
LyBSZW1vdmUgdGhpcy0+bV9maWx0ZXIgZWFybHkgc28gZGlkUmVjZWl2ZURhdGEgZG9lc24ndCBz
ZWUgaXQuCiAgICAgICAgIG1fZmlsdGVyID0gMDsKICAgICAgICAgaWYgKGRhdGEpCi0gICAgICAg
ICAgICBkaWRSZWNlaXZlRGF0YShkYXRhLCBsZW5ndGgsIC0xLCBmYWxzZSk7CisgICAgICAgICAg
ICBkYXRhUmVjZWl2ZWQobV9yZXNvdXJjZS5nZXQoKSwgZGF0YSwgbGVuZ3RoKTsKICAgICAgICAg
d2tGaWx0ZXJSZWxlYXNlKGZpbHRlcik7CiAgICAgfQogI2VuZGlmCkBAIC01MjMsMTMgKzUwOSwx
OCBAQAogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPnNldFJlc3BvbnNlRW5kKGZp
bmlzaFRpbWUgPyBmaW5pc2hUaW1lIDogKG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA/IG1fdGlt
ZU9mTGFzdERhdGFSZWNlaXZlZCA6IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKSk7CiAg
ICAgZG9jdW1lbnRMb2FkZXIoKS0+ZmluaXNoZWRMb2FkaW5nKCk7Ci0gICAgUmVzb3VyY2VMb2Fk
ZXI6OmRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7CiAKICAgICBkbC0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+ZmluaXNoZWRMb2FkaW5nTWFpblJlc291cmNlKCk7CiB9CiAKLXZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSkKIHsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCBtX3Jlc291cmNlID09IHJlc291
cmNlKTsKKyAgICBpZiAoIW1fcmVzb3VyY2UgfHwgKCFtX3Jlc291cmNlLT5lcnJvck9jY3VycmVk
KCkgJiYgIW1fcmVzb3VyY2UtPndhc0NhbmNlbGVkKCkpKSB7CisgICAgICAgIGRpZEZpbmlzaExv
YWRpbmcobV9yZXNvdXJjZS0+bG9hZEZpbmlzaFRpbWUoKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChtX2ZpbHRlcikgewogICAgICAg
ICB3a0ZpbHRlclJlbGVhc2UobV9maWx0ZXIpOwpAQCAtNTM3LDE0ICs1MjgsMTMgQEAKICAgICB9
CiAjZW5kaWYKIAorICAgIFJlc291cmNlRXJyb3IgZXJyb3I7CisgICAgaWYgKG1fcmVzb3VyY2Ut
Pndhc0NhbmNlbGVkKCkpCisgICAgICAgIGVycm9yID0gbV9mcmFtZS0+bG9hZGVyKCktPmNhbmNl
bGxlZEVycm9yKHJlcXVlc3QoKSk7CisgICAgZWxzZQorICAgICAgICBlcnJvciA9IG1fcmVzb3Vy
Y2UtPnJlc291cmNlRXJyb3IoKTsKICAgICBpZiAoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRp
b25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluRXJyb3IocmVxdWVzdCgpLCBl
cnJvcikpCiAgICAgICAgIHJldHVybjsKLQotICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0
d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFy
ZSBkZWZlcnJlZC4KLSAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3Jl
IGRldGFpbHMuCi0jaWYgIVVTRShDRikKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0j
ZW5kaWYKICAgICAKICAgICByZWNlaXZlZEVycm9yKGVycm9yKTsKIH0KQEAgLTU1Miw3ICs1NDIs
NiBAQAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpMb2FkZXIp
OwotICAgIFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZv
KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2luaXRpYWxSZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1l
bWJlcihtX3N1YnN0aXR1dGVEYXRhKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2RhdGFMb2FkVGlt
ZXIpOwpAQCAtNTY3LDcgKzU1Niw3IEBACiAgICAgICAgIG1pbWVUeXBlID0gInRleHQvaHRtbCI7
CiAgICAgCiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSh1cmwsIG1pbWVUeXBlLCAwLCBT
dHJpbmcoKSwgU3RyaW5nKCkpOwotICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7Cisg
ICAgcmVzcG9uc2VSZWNlaXZlZCgwLCByZXNwb25zZSk7CiB9CiAKIHZvaWQgTWFpblJlc291cmNl
TG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3coTWFpblJlc291cmNlTG9hZGVyVGlt
ZXIqKQpAQCAtNTgzLDcgKzU3Miw3IEBACiAgICAgbV9pbml0aWFsUmVxdWVzdCA9IFJlc291cmNl
UmVxdWVzdCgpOwogICAgICAgICAKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHVybCwg
bV9zdWJzdGl0dXRlRGF0YS5taW1lVHlwZSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+
c2l6ZSgpLCBtX3N1YnN0aXR1dGVEYXRhLnRleHRFbmNvZGluZygpLCAiIik7Ci0gICAgZGlkUmVj
ZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKyAgICByZXNwb25zZVJlY2VpdmVkKDAsIHJlc3BvbnNl
KTsKIH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnN0YXJ0RGF0YUxvYWRUaW1lcigpCkBA
IC02MDYsNDUgKzU5NSwxMSBAQAogICAgICAgICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3co
MCk7CiB9CiAKLWJvb2wgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVz
dCYgcikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgciwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKQogewotICAgIGJvb2wg
c2hvdWxkTG9hZEVtcHR5QmVmb3JlUmVkaXJlY3QgPSBzaG91bGRMb2FkQXNFbXB0eURvY3VtZW50
KHIudXJsKCkpOwotCi0gICAgQVNTRVJUKCFtX2hhbmRsZSk7Ci0gICAgQVNTRVJUKHNob3VsZExv
YWRFbXB0eUJlZm9yZVJlZGlyZWN0IHx8ICFkZWZlcnNMb2FkaW5nKCkpOwotCi0gICAgLy8gU2Vu
ZCB0aGlzIHN5bnRoZXRpYyBkZWxlZ2F0ZSBjYWxsYmFjayBzaW5jZSBjbGllbnRzIGV4cGVjdCBp
dCwgYW5kCi0gICAgLy8gd2Ugbm8gbG9uZ2VyIHNlbmQgdGhlIGNhbGxiYWNrIGZyb20gd2l0aGlu
IE5TVVJMQ29ubmVjdGlvbiBmb3IKLSAgICAvLyBpbml0aWFsIHJlcXVlc3RzLgotICAgIHdpbGxT
ZW5kUmVxdWVzdChyLCBSZXNvdXJjZVJlc3BvbnNlKCkpOworICAgIEFTU0VSVCghbV9yZXNvdXJj
ZSk7CiAgICAgQVNTRVJUKCFkZWxldGlvbkhhc0JlZ3VuKCkpOwogCi0gICAgLy8gPHJkYXI6Ly9w
cm9ibGVtLzQ4MDEwNjY+Ci0gICAgLy8gd2lsbFNlbmRSZXF1ZXN0KCkgaXMgbGlhYmxlIHRvIG1h
a2UgdGhlIGNhbGwgdG8gZnJhbWVMb2FkZXIoKSByZXR1cm4gTlVMTCwgc28gd2UgbmVlZCB0byBj
aGVjayB0aGF0IGhlcmUKLSAgICBpZiAoIWZyYW1lTG9hZGVyKCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICBjb25zdCBLVVJMJiB1cmwgPSByLnVybCgpOwotICAgIGJvb2wgc2hv
dWxkTG9hZEVtcHR5ID0gc2hvdWxkTG9hZEFzRW1wdHlEb2N1bWVudCh1cmwpICYmICFtX3N1YnN0
aXR1dGVEYXRhLmlzVmFsaWQoKTsKLQotICAgIGlmIChzaG91bGRMb2FkRW1wdHlCZWZvcmVSZWRp
cmVjdCAmJiAhc2hvdWxkTG9hZEVtcHR5ICYmIGRlZmVyc0xvYWRpbmcoKSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+YWRkTWFpblJlc291cmNl
TG9hZCh0aGlzKTsKLSAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIAotICAgICAg
ICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWRTb29uKHIpOwotICAgIGVsc2UgaWYgKHNob3VsZExv
YWRFbXB0eSB8fCBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+cmVwcmVzZW50YXRpb25FeGlzdHNG
b3JVUkxTY2hlbWUodXJsLnByb3RvY29sKCkpKQotICAgICAgICBoYW5kbGVFbXB0eUxvYWQodXJs
LCAhc2hvdWxkTG9hZEVtcHR5KTsKLSAgICBlbHNlCi0gICAgICAgIG1faGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwg
ciwgdGhpcywgZmFsc2UsIHRydWUpOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIE1h
aW5SZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHIsIGNvbnN0IFN1
YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKLXsKLSAgICBBU1NFUlQoIW1faGFuZGxlKTsK
LQogICAgIC8vIEl0IGFwcGVhcnMgdGhhdCBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBsb2FkIHRv
IGJlIGNhbmNlbGxlZCBhbmQgZGVyZWZlbmNlZCBieSB0aGUgRG9jdW1lbnRMb2FkZXIKICAgICAv
LyBpbiB3aWxsU2VuZFJlcXVlc3QoKSBpZiBsb2FkTm93KCkgaXMgY2FsbGVkLgogICAgIFJlZlB0
cjxNYWluUmVzb3VyY2VMb2FkZXI+IHByb3RlY3QodGhpcyk7CkBAIC02NTgsMzggKzYxMyw1NiBA
QAogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVM
b2FkTWFpblJlc291cmNlKHJlcXVlc3QsIG1fc3Vic3RpdHV0ZURhdGEpOwogCi0gICAgYm9vbCBk
ZWZlciA9IGRlZmVyc0xvYWRpbmcoKTsKLSAgICBpZiAoZGVmZXIpIHsKLSAgICAgICAgYm9vbCBz
aG91bGRMb2FkRW1wdHkgPSBzaG91bGRMb2FkQXNFbXB0eURvY3VtZW50KHJlcXVlc3QudXJsKCkp
OwotICAgICAgICBpZiAoc2hvdWxkTG9hZEVtcHR5KQotICAgICAgICAgICAgZGVmZXIgPSBmYWxz
ZTsKLSAgICB9Ci0gICAgaWYgKCFkZWZlcikgewotICAgICAgICBpZiAobG9hZE5vdyhyZXF1ZXN0
KSkgewotICAgICAgICAgICAgLy8gU3RhcnRlZCBhcyBhbiBlbXB0eSBkb2N1bWVudCwgYnV0IHdh
cyByZWRpcmVjdGVkIHRvIHNvbWV0aGluZyBub24tZW1wdHkuCi0gICAgICAgICAgICBBU1NFUlQo
ZGVmZXJzTG9hZGluZygpKTsKLSAgICAgICAgICAgIGRlZmVyID0gdHJ1ZTsKKyAgICAvLyBTZW5k
IHRoaXMgc3ludGhldGljIGRlbGVnYXRlIGNhbGxiYWNrIHNpbmNlIG91ciBjbGllbnRzIGV4cGVj
dCBpdCwgYW5kCisgICAgLy8gQ2FjaGVkUmVzb3VyY2VDbGllbnRzIGNhbid0IGNvbm5lY3QgdG8g
YSBDYWNoZWRSZXNvdXJjZSBpbiB0aW1lIHRvIGdldCBhIHdpbGxTZW5kUmVxdWVzdCgpCisgICAg
Ly8gY2FsbCBmb3IgdGhlIGluaXRpYWwgbG9hZC4KKyAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVz
dCwgUmVzb3VyY2VSZXNwb25zZSgpKTsKKworICAgIC8vIDxyZGFyOi8vcHJvYmxlbS80ODAxMDY2
PgorICAgIC8vIHdpbGxTZW5kUmVxdWVzdCgpIGlzIGxpYWJsZSB0byBtYWtlIHRoZSBjYWxsIHRv
IGZyYW1lTG9hZGVyKCkgcmV0dXJuIG51bGwsIHNvIHdlIG5lZWQgdG8gY2hlY2sgdGhhdCBoZXJl
CisgICAgaWYgKCFmcmFtZUxvYWRlcigpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgY29u
c3QgS1VSTCYgdXJsID0gci51cmwoKTsKKyAgICBib29sIHNob3VsZExvYWRFbXB0eSA9IHNob3Vs
ZExvYWRBc0VtcHR5RG9jdW1lbnQodXJsKSAmJiAhbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCk7
CisKKyAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIAorICAgICAgICBoYW5kbGVT
dWJzdGl0dXRlRGF0YUxvYWRTb29uKHIpOworICAgIGVsc2UgaWYgKHNob3VsZExvYWRFbXB0eSB8
fCBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hl
bWUodXJsLnByb3RvY29sKCkpKQorICAgICAgICBoYW5kbGVFbXB0eUxvYWQodXJsLCAhc2hvdWxk
TG9hZEVtcHR5KTsKKyAgICBlbHNlIHsKKyAgICAgICAgbV9yZXNvdXJjZSA9IGRvY3VtZW50TG9h
ZGVyKCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyZXF1ZXN0
LCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZm
ZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNy
ZWRlbnRpYWxzLCBTa2lwU2VjdXJpdHlDaGVjayksIENhY2hlZFJlc291cmNlOjpNYWluUmVzb3Vy
Y2UpOworICAgICAgICBpZiAoIW1fcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHJlY2VpdmVkRXJy
b3IoZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IocikpOworICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CisgICAgICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKKworICAg
ICAgICAvLyBXZSBuZWVkIHRvIHdhaXQgdW50aWwgYWZ0ZXIgcmVxdWVzdFJhd1Jlc291cmNlKCkg
aXMgY2FsbGVkIHRvIHNldFJlcXVlc3QoKSwgYmVjYXVzZSB0aGVyZSBhcmUgYSBidW5jaCBvZiBo
ZWFkZXJzIHNldCB3aGVuCisgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIFJlc291cmNlTG9hZGVy
IGlzIGNyZWF0ZWQsIGFuZCBEb2N1bWVudExvYWRlcjo6bV9yZXF1ZXN0IG5lZWRzIHRvIGluY2x1
ZGUgdGhvc2UuIEhvd2V2ZXIsIHRoZSBjYWNoZSB3aWxsCisgICAgICAgIC8vIHN0cmlwIHRoZSBm
cmFnbWVudCBpZGVudGlmaWVyICh3aGljaCBEb2N1bWVudExvYWRlcjo6bV9yZXF1ZXN0IHNob3Vs
ZCBhbHNvIGluY2x1ZGUpLCBzbyBhZGQgdGhhdCBiYWNrIGluLgorICAgICAgICByZXF1ZXN0ID0g
bV9yZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCk7CisgICAgICAgIGlmICh1cmwgIT0gcmVxdWVz
dC51cmwoKSkKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgICAgIGRvY3Vt
ZW50TG9hZGVyKCktPnNldFJlcXVlc3QocmVxdWVzdCk7CiAgICAgfQotICAgIGlmIChkZWZlcikK
LSAgICAgICAgbV9pbml0aWFsUmVxdWVzdCA9IHJlcXVlc3Q7CiB9CiAKIHZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogewotICAgIFJlc291cmNl
TG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CisgICAgaWYgKGxvYWRlcigpKQorICAg
ICAgICBsb2FkZXIoKS0+c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOworfQogCi0gICAgaWYgKGRl
ZmVycykgewotICAgICAgICBpZiAobV9kYXRhTG9hZFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAg
ICAgICBtX2RhdGFMb2FkVGltZXIuc3RvcCgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICht
X2luaXRpYWxSZXF1ZXN0LmlzTnVsbCgpKQotICAgICAgICAgICAgcmV0dXJuOwordm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OnNldFNob3VsZEJ1ZmZlckRhdGEoRGF0YUJ1ZmZlcmluZ1BvbGljeSBz
aG91bGRCdWZmZXJEYXRhKQoreworICAgIEFTU0VSVChtX3Jlc291cmNlKTsKKyAgICBtX3Jlc291
cmNlLT5zZXRTaG91bGRCdWZmZXJEYXRhKHNob3VsZEJ1ZmZlckRhdGEpOworfQogCi0gICAgICAg
IFJlc291cmNlUmVxdWVzdCBpbml0aWFsUmVxdWVzdChtX2luaXRpYWxSZXF1ZXN0KTsKLSAgICAg
ICAgbV9pbml0aWFsUmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCgpOwotICAgICAgICBsb2FkTm93
KGluaXRpYWxSZXF1ZXN0KTsKLSAgICB9CitSZXNvdXJjZUxvYWRlciogTWFpblJlc291cmNlTG9h
ZGVyOjpsb2FkZXIoKSBjb25zdAoreyAKKyAgICByZXR1cm4gbV9yZXNvdXJjZSA/IG1fcmVzb3Vy
Y2UtPmxvYWRlcigpIDogMDsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaAkocmV2aXNp
b24gMTMxOTA0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZVJlcXVlc3RDRk5ldC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw4IEBACiAgICAgICAg
IHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bTsKICAgICBjYXNlIDM6CiAgICAgICAg
IHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2g7CisgICAgY2FzZSA0OgorICAgICAgICBy
ZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5SGlnaDsKICAgICBkZWZhdWx0OgogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9y
aXR5TG93ZXN0OwpAQCAtNzMsNiArNzUsOCBAQAogICAgICAgICByZXR1cm4gMjsKICAgICBjYXNl
IFJlc291cmNlTG9hZFByaW9yaXR5SGlnaDoKICAgICAgICAgcmV0dXJuIDM7CisgICAgY2FzZSBS
ZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlIaWdoOgorICAgICAgICByZXR1cm4gNDsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VMb2FkUHJpb3JpdHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9yaXR5LmgJKHJldmlzaW9uIDEz
MTkwNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkUHJp
b3JpdHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsOCArMzUsOSBAQAogICAgIFJlc291cmNlTG9h
ZFByaW9yaXR5TG93LAogICAgIFJlc291cmNlTG9hZFByaW9yaXR5TWVkaXVtLAogICAgIFJlc291
cmNlTG9hZFByaW9yaXR5SGlnaCwKKyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlIaWdoLAog
ICAgIFJlc291cmNlTG9hZFByaW9yaXR5TG93ZXN0ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5
TG93LAotICAgIFJlc291cmNlTG9hZFByaW9yaXR5SGlnaGVzdCA9IFJlc291cmNlTG9hZFByaW9y
aXR5SGlnaCwKKyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hlc3QgPSBSZXNvdXJjZUxvYWRQ
cmlvcml0eVZlcnlIaWdoLAogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171043</attachid>
            <date>2012-10-26 16:29:34 -0700</date>
            <delta_ts>2012-11-05 14:48:03 -0800</delta_ts>
            <desc>Reviewable Attempt #1</desc>
            <filename>cmr.txt</filename>
            <type>text/plain</type>
            <size>52618</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwCShyZXZpc2lv
biAxMzI2NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTIgQEAKIHsKIH0KIAordm9pZCBBcmNoaXZlOjph
ZGRTdWJyZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3ViUmVzb3VyY2UpCit7
CisgICAgaWYgKG1fbWFpblJlc291cmNlLT51cmwoKSAhPSBzdWJSZXNvdXJjZS0+dXJsKCkpCisg
ICAgICAgIG1fc3VicmVzb3VyY2VzLmFwcGVuZChzdWJSZXNvdXJjZSk7Cit9CisKIHZvaWQgQXJj
aGl2ZTo6Y2xlYXJBbGxTdWJmcmFtZUFyY2hpdmVzKCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPEFy
Y2hpdmU+ID4gY2xlYXJlZEFyY2hpdmVzOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvQXJjaGl2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL0FyY2hpdmUuaAkocmV2aXNpb24gMTMyNjc1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvQXJjaGl2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBACiAgICAg
Ly8gVGhlc2UgbWV0aG9kcyBhcmUgbWVhbnQgZm9yIHN1YmNsYXNzZXMgZm9yIGRpZmZlcmVudCBh
cmNoaXZlIHR5cGVzIHRvIGFkZCByZXNvdXJjZXMgaW4gdG8gdGhlIGFyY2hpdmUsCiAgICAgLy8g
YW5kIHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyBhcmNoaXZlcyBzaG91bGQgYmUgaW1tdXRhYmxl
IHRvIGNsaWVudHMKICAgICB2b2lkIHNldE1haW5SZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVS
ZXNvdXJjZT4gbWFpblJlc291cmNlKSB7IG1fbWFpblJlc291cmNlID0gbWFpblJlc291cmNlOyB9
Ci0gICAgdm9pZCBhZGRTdWJyZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3Vi
UmVzb3VyY2UpIHsgbV9zdWJyZXNvdXJjZXMuYXBwZW5kKHN1YlJlc291cmNlKTsgfQorICAgIHZv
aWQgYWRkU3VicmVzb3VyY2UoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YlJlc291cmNl
KTsKICAgICB2b2lkIGFkZFN1YmZyYW1lQXJjaGl2ZShQYXNzUmVmUHRyPEFyY2hpdmU+IHN1YmZy
YW1lQXJjaGl2ZSkgeyBtX3N1YmZyYW1lQXJjaGl2ZXMuYXBwZW5kKHN1YmZyYW1lQXJjaGl2ZSk7
IH0KIAogICAgIHZvaWQgY2xlYXJBbGxTdWJmcmFtZUFyY2hpdmVzKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHJldmlzaW9uIDEzMjY3NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExNCw3ICsxMTQsNyBAQAogCiBEb2N1bWVudExvYWRlcjo6fkRvY3VtZW50TG9hZGVyKCkKIHsK
LSAgICBBU1NFUlQoIW1fZnJhbWUgfHwgZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKSAhPSB0aGlzIHx8ICFmcmFtZUxvYWRlcigpLT5pc0xvYWRpbmcoKSk7CisgICAgQVNTRVJU
KCFtX2ZyYW1lIHx8IGZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkgIT0gdGhp
cyB8fCAhaXNMb2FkaW5nKCkpOwogICAgIGlmIChtX2ljb25Mb2FkRGVjaXNpb25DYWxsYmFjaykK
ICAgICAgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJhY2stPmludmFsaWRhdGUoKTsKICAgICBp
ZiAobV9pY29uRGF0YUNhbGxiYWNrKQpAQCAtODA1LDExICs4MDUsMTUgQEAKIAogdm9pZCBEb2N1
bWVudExvYWRlcjo6YWRkU3VicmVzb3VyY2VMb2FkZXIoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikK
IHsKKyAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgZXF1YWxJZ25vcmluZ0ZyYWdtZW50
SWRlbnRpZmllcihyZXF1ZXN0VVJMKCksIGxvYWRlci0+dXJsKCkpKQorICAgICAgICByZXR1cm47
CiAgICAgbV9zdWJyZXNvdXJjZUxvYWRlcnMuYWRkKGxvYWRlcik7CiB9CiAKIHZvaWQgRG9jdW1l
bnRMb2FkZXI6OnJlbW92ZVN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVyKiBsb2FkZXIp
CiB7CisgICAgaWYgKCFtX3N1YnJlc291cmNlTG9hZGVycy5jb250YWlucyhsb2FkZXIpKQorICAg
ICAgICByZXR1cm47CiAgICAgbV9zdWJyZXNvdXJjZUxvYWRlcnMucmVtb3ZlKGxvYWRlcik7CiAg
ICAgY2hlY2tMb2FkQ29tcGxldGUoKTsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9mcmFtZSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgJKHJldmlz
aW9uIDEzMjY3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBNYWluUmVzb3VyY2VM
b2FkZXJfaAogI2RlZmluZSBNYWluUmVzb3VyY2VMb2FkZXJfaAogCisjaW5jbHVkZSAiQ2FjaGVk
UmF3UmVzb3VyY2UuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
VHlwZXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlN1YnN0aXR1
dGVEYXRhLmgiCkBAIC00OSwyMiArNTEsMjEgQEAKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIFJl
c291cmNlUmVxdWVzdDsKIAotY2xhc3MgTWFpblJlc291cmNlTG9hZGVyIDogcHVibGljIFJlc291
cmNlTG9hZGVyIHsKK2NsYXNzIE1haW5SZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVk
PE1haW5SZXNvdXJjZUxvYWRlcj4sIHB1YmxpYyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWFpblJlc291cmNlTG9hZGVyPiBjcmVhdGUoRnJhbWUqKTsKICAgICB2aXJ0dWFsIH5NYWlu
UmVzb3VyY2VMb2FkZXIoKTsKIAogICAgIHZvaWQgbG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwotICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhKGNvbnN0
IGNoYXIqLCBpbnQsIGJvb2wgYWxsQXRPbmNlKSBPVkVSUklERTsKKyAgICB2b2lkIGNhbmNlbCgp
OworICAgIHZvaWQgY2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICBSZXNvdXJjZUxv
YWRlciogbG9hZGVyKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gcmVz
b3VyY2VEYXRhKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKSBP
VkVSUklERTsKKyAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CisgICAgdm9pZCBzZXRT
aG91bGRCdWZmZXJEYXRhKERhdGFCdWZmZXJpbmdQb2xpY3kpOwogCi0gICAgdmlydHVhbCB2b2lk
IHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9uZyBsb25nIGVuY29kZWRE
YXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKLQogI2lmIEhBVkUo
UlVOTE9PUF9USU1FUikKICAgICB0eXBlZGVmIFJ1bkxvb3BUaW1lcjxNYWluUmVzb3VyY2VMb2Fk
ZXI+IE1haW5SZXNvdXJjZUxvYWRlclRpbWVyOwogI2Vsc2UKQEAgLTczLDE1ICs3NCwxOCBAQAog
CiAgICAgYm9vbCBpc0xvYWRpbmdNdWx0aXBhcnRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9s
b2FkaW5nTXVsdGlwYXJ0Q29udGVudDsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKyAgICB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBNYWluUmVzb3VyY2VMb2FkZXIoRnJhbWUqKTsKIAotICAgIHZpcnR1YWwgdm9pZCB3
aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNl
aXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgY2hhciogZGF0YSwg
aW50IGRhdGFMZW5ndGgpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRS
ZXNvdXJjZSopOwogCi0gICAgYm9vbCBsb2FkTm93KFJlc291cmNlUmVxdWVzdCYpOworICAgIHZv
aWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUg
ZmluaXNoVGltZSk7CiAKICAgICB2b2lkIGhhbmRsZUVtcHR5TG9hZChjb25zdCBLVVJMJiwgYm9v
bCBmb3JVUkxTY2hlbWUpOwogICAgIHZvaWQgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29vbihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKQEAgLTEwNSwxMCArMTA5LDIxIEBACiAgICAgdm9pZCBz
dWJzdGl0dXRlTUlNRVR5cGVGcm9tUGx1Z2luRGF0YWJhc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOwogI2VuZGlmCiAKKyAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYW1lLT5sb2FkZXIoKTsgfQorICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExv
YWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCk7IH0KKworICAgIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIGNvbnN0OworICAgIHZvaWQgY2xlYXJSZXNv
dXJjZSgpOworCisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1f
cmVzb3VyY2U7CisKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9pbml0aWFsUmVxdWVzdDsKICAgICBT
dWJzdGl0dXRlRGF0YSBtX3N1YnN0aXR1dGVEYXRhOworICAgIFJlc291cmNlUmVzcG9uc2UgbV9y
ZXNwb25zZTsKIAogICAgIE1haW5SZXNvdXJjZUxvYWRlclRpbWVyIG1fZGF0YUxvYWRUaW1lcjsK
KyAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7CisgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBt
X2RvY3VtZW50TG9hZGVyOwogCiAgICAgYm9vbCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50Owog
ICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAko
cmV2aXNpb24gMTMyNjc1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBACiAg
ICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsKICAgICAgICAgICAgIG1f
bWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZSA9IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZmFs
bGJhY2tDYWNoZUZvck1haW5SZXF1ZXN0KHJlcXVlc3QsIGRvY3VtZW50TG9hZGVyKCkpOwogCi0g
ICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlv
bkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBtX21haW5SZXNv
dXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9h
ZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5t
YWluUmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25D
YWNoZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0xMTcsNyArMTE3LDcgQEAKICAgICAgICAgaWYgKGlzQXBwbGljYXRpb25DYWNoZUVu
YWJsZWQoKSkgewogICAgICAgICAgICAgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlID0g
QXBwbGljYXRpb25DYWNoZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9yTWFpblJlcXVlc3QocmVxdWVz
dCwgbV9kb2N1bWVudExvYWRlcik7CiAKLSAgICAgICAgICAgIGlmIChzY2hlZHVsZUxvYWRGYWxs
YmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJl
c291cmNlTG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCisg
ICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlv
bkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5sb2FkZXIoKSwg
bV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCShyZXZpc2lvbiAxMzI2NzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTUsOCArNTUsOCBAQAogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzY2hlZHVsZShT
Y2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1f
bWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKSkKLSAgICAgICAgbV9tYWluUmVzb3VyY2VMb2Fk
ZXItPmhhbmRsZSgpLT5zY2hlZHVsZShwYWlyKTsKKyAgICBpZiAobV9tYWluUmVzb3VyY2VMb2Fk
ZXIgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpICYmIG1fbWFpblJlc291cmNlTG9h
ZGVyLT5sb2FkZXIoKS0+aGFuZGxlKCkpCisgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5s
b2FkZXIoKS0+aGFuZGxlKCktPnNjaGVkdWxlKHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fc3Vi
cmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX3BsdWdJblN0cmVhbUxv
YWRlcnMsIHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fbXVsdGlwYXJ0U3VicmVzb3VyY2VMb2Fk
ZXJzLCBwYWlyKTsKQEAgLTY0LDggKzY0LDggQEAKIAogdm9pZCBEb2N1bWVudExvYWRlcjo6dW5z
Y2hlZHVsZShTY2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYgKG1fbWFpblJlc291cmNlTG9h
ZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKSkKLSAgICAgICAgbV9tYWluUmVz
b3VyY2VMb2FkZXItPmhhbmRsZSgpLT51bnNjaGVkdWxlKHBhaXIpOworICAgIGlmIChtX21haW5S
ZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCkgJiYgbV9tYWlu
UmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKSkKKyAgICAgICAgbV9tYWluUmVzb3Vy
Y2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKS0+dW5zY2hlZHVsZShwYWlyKTsKICAgICB1bnNj
aGVkdWxlQWxsKG1fc3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKICAgICB1bnNjaGVkdWxlQWxs
KG1fcGx1Z0luU3RyZWFtTG9hZGVycywgcGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX211bHRp
cGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTMyNjc1KQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDggQEAKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCiAjaW5j
bHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJD
b25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
QEAgLTQ0LDE1ICs0NiwxNCBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgi
Ci0jaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVk
ZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNp
bmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTY2hlbWVSZWdpc3Ry
eS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
KyNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogCiAjaWYgUExBVEZPUk0oUVQpCkBAIC03Myw4ICs3NCw5IEBACiB9CiAKIE1haW5SZXNv
dXJjZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSkKLSAgICA6IFJlc291
cmNlTG9hZGVyKGZyYW1lLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25p
ZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBBc2tDbGllbnRG
b3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBTa2lwU2VjdXJpdHlDaGVjaykpCi0gICAgLCBtX2Rh
dGFMb2FkVGltZXIodGhpcywgJk1haW5SZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURh
dGFMb2FkTm93KQorICAgIDogbV9kYXRhTG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2Fk
ZXI6OmhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdykKKyAgICAsIG1fZnJhbWUoZnJhbWUpCisg
ICAgLCBtX2RvY3VtZW50TG9hZGVyKGZyYW1lLT5sb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKSkKICAgICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3dh
aXRpbmdGb3JDb250ZW50UG9saWN5KGZhbHNlKQogICAgICwgbV90aW1lT2ZMYXN0RGF0YVJlY2Vp
dmVkKDAuMCkKQEAgLTEwNywzNSArMTA5LDMzIEBACiAgICAgLy8gZG9jdW1lbnQgbG9hZGVycy4g
QWxzbywgbWFpblJlY2VpdmVkRXJyb3IgZW5kcyB1cCBjYWxsaW5nIGEgRnJhbWVMb2FkRGVsZWdh
dGUgbWV0aG9kCiAgICAgLy8gYW5kIGRpZEZhaWxUb0xvYWQgY2FsbHMgYSBSZXNvdXJjZUxvYWRE
ZWxlZ2F0ZSBtZXRob2QgYW5kIHRoZXkgbmVlZCB0byBiZSBpbiB0aGUgY29ycmVjdCBvcmRlci4K
ICAgICBkb2N1bWVudExvYWRlcigpLT5tYWluUmVjZWl2ZWRFcnJvcihlcnJvcik7Cit9CiAKLSAg
ICBpZiAoIWNhbmNlbGxlZCgpKSB7Ci0gICAgICAgIEFTU0VSVCghcmVhY2hlZFRlcm1pbmFsU3Rh
dGUoKSk7Ci0gICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZEZhaWxUb0xvYWQo
dGhpcywgZXJyb3IpOwotICAgICAgICAKLSAgICAgICAgcmVsZWFzZVJlc291cmNlcygpOwotICAg
IH0KLQotICAgIEFTU0VSVChyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsKK3ZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpjYW5jZWwoKQoreworICAgIGNhbmNlbChSZXNvdXJjZUVycm9yKCkpOwogfQog
Ci12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9y
JikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCiB7CisgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsK
KyAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IgPSBlcnJvci5pc051bGwoKSA/IGZyYW1l
TG9hZGVyKCktPmNhbmNlbGxlZEVycm9yKHJlcXVlc3QoKSkgOiBlcnJvcjsKKwogICAgIG1fZGF0
YUxvYWRUaW1lci5zdG9wKCk7CiAKICAgICBpZiAobV93YWl0aW5nRm9yQ29udGVudFBvbGljeSkg
ewogICAgICAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7
CiAgICAgICAgIEFTU0VSVChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsKICAgICAgICAgbV93
YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwotICAgICAgICBkZXJlZigpOyAvLyBiYWxh
bmNlcyByZWYgaW4gZGlkUmVjZWl2ZVJlc3BvbnNlCisgICAgICAgIGRlcmVmKCk7IC8vIGJhbGFu
Y2VzIHJlZiBpbiByZXNwb25zZVJlY2VpdmVkCiAgICAgfQotfQogCi12b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIC8v
IFdlIHNob3VsZCBub3RpZnkgdGhlIGZyYW1lIGxvYWRlciBhZnRlciBmdWxseSBjYW5jZWxpbmcg
dGhlIGxvYWQsIGJlY2F1c2UgaXQgY2FuIGRvIGNvbXBsaWNhdGVkIHdvcmsKLSAgICAvLyBsaWtl
IGNhbGxpbmcgRE9NV2luZG93OjpwcmludCgpLCBkdXJpbmcgd2hpY2ggYSBoYWxmLWNhbmNlbGVk
IGxvYWQgY291bGQgdHJ5IHRvIGZpbmlzaC4KLSAgICBkb2N1bWVudExvYWRlcigpLT5tYWluUmVj
ZWl2ZWRFcnJvcihlcnJvcik7CisgICAgaWYgKGxvYWRlcigpKQorICAgICAgICBsb2FkZXIoKS0+
Y2FuY2VsKHJlc291cmNlRXJyb3IpOwogCisgICAgY2xlYXJSZXNvdXJjZSgpOworICAgIHJlY2Vp
dmVkRXJyb3IocmVzb3VyY2VFcnJvcik7CisKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlm
IChtX2ZpbHRlcikgewogICAgICAgICB3a0ZpbHRlclJlbGVhc2UobV9maWx0ZXIpOwpAQCAtMTQ0
LDYgKzE0NCwxOSBAQAogI2VuZGlmCiB9CiAKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjbGVh
clJlc291cmNlKCkKK3sKKyAgICBpZiAobV9yZXNvdXJjZSkgeworICAgICAgICBtX3Jlc291cmNl
LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIG1fcmVzb3VyY2UgPSAwOworICAgIH0KK30K
KworY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBNYWluUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3QoKSBj
b25zdAoreworICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+cmVzb3VyY2VSZXF1
ZXN0KCkgOiBtX2luaXRpYWxSZXF1ZXN0OworfQorCiBSZXNvdXJjZUVycm9yIE1haW5SZXNvdXJj
ZUxvYWRlcjo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5pbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5n
ZUVycm9yKHJlcXVlc3QoKSk7CkBAIC0xNjgsNyArMTgxLDcgQEAKICAgICBlbHNlIGlmIChtX3N1
YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgewogICAgICAgICAvLyBBIHJlZGlyZWN0IHJlc3VsdGVk
IGluIGxvYWRpbmcgc3Vic3RpdHV0ZSBkYXRhLgogICAgICAgICBBU1NFUlQoZG9jdW1lbnRMb2Fk
ZXIoKS0+dGltaW5nKCktPnJlZGlyZWN0Q291bnQoKSk7Ci0gICAgICAgIGhhbmRsZSgpLT5jYW5j
ZWwoKTsKKyAgICAgICAgY2xlYXJSZXNvdXJjZSgpOwogICAgICAgICBoYW5kbGVTdWJzdGl0dXRl
RGF0YUxvYWRTb29uKHJlcXVlc3QpOwogICAgIH0KIApAQCAtMTg4LDEyICsyMDEsMTcgQEAKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjphZGREYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGJvb2wgYWxsQXRPbmNlKQorUGFzc1JlZlB0cjxS
ZXNvdXJjZUJ1ZmZlcj4gTWFpblJlc291cmNlTG9hZGVyOjpyZXNvdXJjZURhdGEoKQogewotICAg
IFJlc291cmNlTG9hZGVyOjphZGREYXRhKGRhdGEsIGxlbmd0aCwgYWxsQXRPbmNlKTsKLSAgICBk
b2N1bWVudExvYWRlcigpLT5yZWNlaXZlZERhdGEoZGF0YSwgbGVuZ3RoKTsKKyAgICByZXR1cm4g
bV9yZXNvdXJjZSA/IG1fcmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCkgOiAwOwogfQogCit2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6cmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJj
ZSA9PSBtX3Jlc291cmNlKTsKKyAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgcmVkaXJlY3RS
ZXNwb25zZSk7Cit9CisKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRp
cmVjdFJlc3BvbnNlKQogewogICAgIC8vIE5vdGUgdGhhdCB0aGVyZSBhcmUgbm8gYXNzZXJ0cyBo
ZXJlIGFzIHRoZXJlIGFyZSBmb3IgdGhlIG90aGVyIGNhbGxiYWNrcy4gVGhpcyBpcyBkdWUgdG8g
dGhlCkBAIC0yNDQsMTAgKzI2Miw5IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZXNvdXJj
ZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwot
CiAgICAgLy8gRG9uJ3Qgc2V0IHRoaXMgb24gdGhlIGZpcnN0IHJlcXVlc3QuIEl0IGlzIHNldCB3
aGVuIHRoZSBtYWluIGxvYWQgd2FzIHN0YXJ0ZWQuCi0gICAgbV9kb2N1bWVudExvYWRlci0+c2V0
UmVxdWVzdChuZXdSZXF1ZXN0KTsKKyAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkp
CisgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3UmVxdWVzdCk7CiAKICAg
ICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpIHsKICAgICAgICAgLy8gV2UgY2hlY2tl
ZCBhcHBsaWNhdGlvbiBjYWNoZSBmb3IgaW5pdGlhbCBVUkwsIG5vdyB3ZSBuZWVkIHRvIGNoZWNr
IGl0IGZvciByZWRpcmVjdGVkIG9uZS4KQEAgLTI4MiwyNyArMjk5LDI2IEBACiAgICAgICAgIGlm
ICghZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSkgfHwg
aXNSZW1vdGVXZWJBcmNoaXZlKSB7CiAgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lD
aGVja2VyKCktPmNhbm5vdFNob3dNSU1FVHlwZShyKTsKICAgICAgICAgICAgIC8vIENoZWNrIHJl
YWNoZWRUZXJtaW5hbFN0YXRlIHNpbmNlIHRoZSBsb2FkIG1heSBoYXZlIGFscmVhZHkgYmVlbiBj
YW5jZWxlZCBpbnNpZGUgb2YgX2hhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeVdpdGhFcnJvckNv
ZGU6Oi4KLSAgICAgICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAg
ICAgICAgICBzdG9wTG9hZGluZ0ZvclBvbGljeUNoYW5nZSgpOworICAgICAgICAgICAgc3RvcExv
YWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBjYXNlIFBvbGljeURvd25sb2FkOiB7Ci0gICAg
ICAgIC8vIG1faGFuZGxlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBhIHN1YnN0aXR1
dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KLSAgICAgICAgaWYgKCFtX2hhbmRs
ZSkgewotICAgICAgICAgICAgcmVjZWl2ZWRFcnJvcihjYW5ub3RTaG93VVJMRXJyb3IoKSk7Cisg
ICAgICAgIC8vIG1fcmVzb3VyY2UgY2FuIGJlIG51bGwsIGUuZy4gd2hlbiBsb2FkaW5nIGEgc3Vi
c3RpdHV0ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLgorICAgICAgICBpZiAoIW1f
cmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoZnJhbWVMb2FkZXIoKS0+Y2xp
ZW50KCktPmNhbm5vdFNob3dVUkxFcnJvcihyZXF1ZXN0KCkpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVl
V2l0aFBvbGljeURvd25sb2FkKG1fZnJhbWUuZ2V0KCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50
aWZpZXIoKSwgcik7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVX
aXRoUG9saWN5RG93bmxvYWQobV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNv
dXJjZS0+bG9hZGVyKCktPmlkZW50aWZpZXIoKSwgcik7CiAKICAgICAgICAgLy8gV2hlbiBzdGFy
dGluZyB0aGUgcmVxdWVzdCwgd2UgZGlkbid0IGtub3cgdGhhdCBpdCB3b3VsZCByZXN1bHQgaW4g
ZG93bmxvYWQgYW5kIG5vdCBuYXZpZ2F0aW9uLiBOb3cgd2Uga25vdyB0aGF0IG1haW4gZG9jdW1l
bnQgVVJMIGRpZG4ndCBjaGFuZ2UuCiAgICAgICAgIC8vIERvd25sb2FkIG1heSB1c2UgdGhpcyBr
bm93bGVkZ2UgZm9yIHB1cnBvc2VzIHVucmVsYXRlZCB0byBjb29raWVzLCBub3RhYmx5IGZvciBz
ZXR0aW5nIGZpbGUgcXVhcmFudGluZSBkYXRhLgogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCA9IHRoaXMtPnJlcXVlc3QoKTsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+c2V0T3JpZ2lu
YWxVUkxGb3JEb3dubG9hZFJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICAgICAgZnJhbWVMb2FkZXIo
KS0+Y2xpZW50KCktPmRvd25sb2FkKG1faGFuZGxlLmdldCgpLCByZXF1ZXN0LCByKTsKKyAgICAg
ICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1fcmVzb3VyY2UtPmxvYWRlcigp
LT5oYW5kbGUoKSwgcmVxdWVzdCwgcik7CiAKICAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBnb25l
IG1pc3NpbmcKICAgICAgICAgaWYgKGZyYW1lTG9hZGVyKCkpCkBAIC0zMTAsNyArMzI2LDcgQEAK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIFBvbGljeUlnbm9yZToKLSAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUobV9mcmFt
ZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKKyAgICAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUobV9mcmFtZS5n
ZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNvdXJjZS0+bG9hZGVyKCktPmlkZW50aWZpZXIo
KSwgcik7CiAgICAgICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICAKQEAgLTMzNCwxNSArMzUwLDExIEBACiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICAvLyB3ZSBtYXkgaGF2ZSBjYW5jZWxsZWQgdGhpcyBsb2FkIGFzIHBhcnQgb2Ygc3dpdGNoaW5n
IHRvIGZhbGxiYWNrIGNvbnRlbnQKLSAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0g
ICAgICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uocik7Ci0KLSAgICBpZiAo
ZnJhbWVMb2FkZXIoKSAmJiAhZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+
aXNTdG9wcGluZygpKSB7CisgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3BwaW5nKCkp
IHsKICAgICAgICAgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAgICAgICAg
ICBpZiAobV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSkKLSAgICAgICAgICAgICAg
ICBkaWRSZWNlaXZlRGF0YShtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+ZGF0YSgpLCBtX3N1
YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQo
KS0+c2l6ZSgpLCB0cnVlKTsKLSAgICAgICAgICAgIGlmIChmcmFtZUxvYWRlcigpICYmICFmcmFt
ZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5pc1N0b3BwaW5nKCkpIAorICAgICAg
ICAgICAgICAgIGRhdGFSZWNlaXZlZCgwLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+ZGF0
YSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKTsKKyAgICAgICAgICAgIGlm
ICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpKQogICAgICAgICAgICAgICAgIGRpZEZp
bmlzaExvYWRpbmcoMCk7CiAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkTG9hZEFzRW1wdHlEb2N1
bWVudCh1cmwpIHx8IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5yZXByZXNlbnRhdGlvbkV4aXN0
c0ZvclVSTFNjaGVtZSh1cmwucHJvdG9jb2woKSkpCiAgICAgICAgICAgICBkaWRGaW5pc2hMb2Fk
aW5nKDApOwpAQCAtMzU4LDEzICszNzAsMTQgQEAKIHsKICAgICBBU1NFUlQobV93YWl0aW5nRm9y
Q29udGVudFBvbGljeSk7CiAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwot
ICAgIGlmIChmcmFtZUxvYWRlcigpICYmICFmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExv
YWRlcigpLT5pc1N0b3BwaW5nKCkpCisgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3Bw
aW5nKCkpCiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSwgbV9yZXNw
b25zZSk7Ci0gICAgZGVyZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGluIGRpZFJlY2VpdmVSZXNwb25z
ZQorICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiByZXNwb25zZVJlY2VpdmVkCiB9CiAK
LXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVk
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsK
KyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCBtX3Jlc291cmNlID09IHJlc291cmNlKTsKICAg
ICBpZiAoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2Fk
RmFsbGJhY2tGb3JNYWluUmVzcG9uc2UocmVxdWVzdCgpLCByKSkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0zNzIsNyArMzg1LDcgQEAKICAgICBpZiAoaXQgIT0gci5odHRwSGVhZGVyRmllbGRzKCku
ZW5kKCkpIHsKICAgICAgICAgU3RyaW5nIGNvbnRlbnQgPSBpdC0+dmFsdWU7CiAgICAgICAgIGlm
IChtX2ZyYW1lLT5sb2FkZXIoKS0+c2hvdWxkSW50ZXJydXB0TG9hZEZvclhGcmFtZU9wdGlvbnMo
Y29udGVudCwgci51cmwoKSkpIHsKLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6Y29udGludWVBZnRlclhGcmFtZU9wdGlvbnNEZW5pZWQobV9mcmFtZS5nZXQoKSwgZG9jdW1l
bnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKKyAgICAgICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6Y29udGludWVBZnRlclhGcmFtZU9wdGlvbnNEZW5pZWQobV9mcmFtZS5nZXQo
KSwgZG9jdW1lbnRMb2FkZXIoKSwgbV9yZXNvdXJjZS0+bG9hZGVyKCktPmlkZW50aWZpZXIoKSwg
cik7CiAgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3Nh
Z2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZGlzcGxheSBkb2N1bWVudCBiZWNhdXNlIGRp
c3BsYXkgZm9yYmlkZGVuIGJ5IFgtRnJhbWUtT3B0aW9ucy5cbiIpKSk7CiAgICAgICAgICAgICBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xl
TWVzc2FnZSk7CiAKQEAgLTM4MSwxNSArMzk0LDkgQEAKICAgICAgICAgfQogICAgIH0KIAotICAg
IC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRp
c3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBkZWZlcnJlZC4KLSAgICAvLyBTZWUgPHJkYXI6
Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRldGFpbHMuCi0jaWYgIVVTRShDRikKLSAgICBB
U1NFUlQoc2hvdWxkTG9hZEFzRW1wdHlEb2N1bWVudChyLnVybCgpKSB8fCAhZGVmZXJzTG9hZGlu
ZygpKTsKLSNlbmRpZgotCiAgICAgaWYgKG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQpIHsKICAg
ICAgICAgbV9kb2N1bWVudExvYWRlci0+c2V0dXBGb3JSZXBsYWNlKCk7Ci0gICAgICAgIGNsZWFy
UmVzb3VyY2VEYXRhKCk7CisgICAgICAgIG1fcmVzb3VyY2UtPmNsZWFyKCk7CiAgICAgfQogICAg
IAogICAgIGlmIChyLmlzTXVsdGlwYXJ0KCkpCkBAIC00MDUsMTIgKzQxMiwxMCBAQAogCiAgICAg
QVNTRVJUKCFtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsKICAgICBtX3dhaXRpbmdGb3JDb250
ZW50UG9saWN5ID0gdHJ1ZTsKLSAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gY29u
dGludWVBZnRlckNvbnRlbnRQb2xpY3kgYW5kIGRpZENhbmNlbAorICAgIHJlZigpOyAvLyBiYWxh
bmNlZCBieSBkZXJlZiBpbiBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeSBhbmQgY2FuY2VsCiAK
LSAgICBBU1NFUlQoZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSk7Ci0KICAg
ICAvLyBBbHdheXMgc2hvdyBjb250ZW50IHdpdGggdmFsaWQgc3Vic3RpdHV0ZSBkYXRhLgotICAg
IGlmIChmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5zdWJzdGl0dXRlRGF0
YSgpLmlzVmFsaWQoKSkgeworICAgIGlmIChtX2RvY3VtZW50TG9hZGVyLT5zdWJzdGl0dXRlRGF0
YSgpLmlzVmFsaWQoKSkgewogICAgICAgICBjYWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3ko
dGhpcywgUG9saWN5VXNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQzMiwyOCArNDM3
LDEzIEBACiAgICAgZnJhbWVMb2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLT5jaGVja0NvbnRlbnRQ
b2xpY3kobV9yZXNwb25zZSwgY2FsbENvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5LCB0aGlzKTsK
IH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIq
IGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBhbGxB
dE9uY2UpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBBU1NF
UlQoZGF0YSk7CiAgICAgQVNTRVJUKGxlbmd0aCAhPSAwKTsKLQorICAgIEFTU0VSVF9VTlVTRUQo
cmVzb3VyY2UsIHJlc291cmNlID09IG1fcmVzb3VyY2UpOwogICAgIEFTU0VSVCghbV9yZXNwb25z
ZS5pc051bGwoKSk7CiAKLSNpZiBVU0UoQ0ZORVRXT1JLKSB8fCBQTEFURk9STShNQUMpCi0gICAg
Ly8gV29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzYwNjA3ODI+Ci0gICAgaWYgKG1fcmVz
cG9uc2UuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9yZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2Uo
S1VSTCgpLCAidGV4dC9odG1sIiwgMCwgU3RyaW5nKCksIFN0cmluZygpKTsKLSAgICAgICAgaWYg
KERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGZyYW1lTG9hZGVyKCktPmFjdGl2ZURv
Y3VtZW50TG9hZGVyKCkpCi0gICAgICAgICAgICBkb2N1bWVudExvYWRlci0+c2V0UmVzcG9uc2Uo
bV9yZXNwb25zZSk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBD
Rk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2Fk
cyBhcmUgZGVmZXJyZWQuCi0gICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS82MzA0NjAwPiBmb3Ig
bW9yZSBkZXRhaWxzLgotI2lmICFVU0UoQ0YpCi0gICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkp
OwotI2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChtX2ZpbHRlcikgewog
ICAgICAgICBBU1NFUlQoIXdrRmlsdGVyV2FzQmxvY2tlZChtX2ZpbHRlcikpOwpAQCAtNDYxLDI0
ICs0NTEsMjIgQEAKICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBibG9ja2VkRGF0YSwgdGhh
dCBtZWFucyB3ZSdyZSBzdGlsbCBhY2N1bXVsYXRpbmcgZGF0YQogICAgICAgICBpZiAoIWJsb2Nr
ZWREYXRhKSB7CiAgICAgICAgICAgICAvLyBUcmFuc2l0aW9uIHRvIGNvbW1pdHRlZCBzdGF0ZS4K
LSAgICAgICAgICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSgiIiwgMCwgMCwgZmFs
c2UpOworICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKDAsIDApOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgZGF0YSA9IGJsb2NrZWRE
YXRhOwotICAgICAgICBlbmNvZGVkRGF0YUxlbmd0aCA9IC0xOwogICAgIH0KICNlbmRpZgogCi0g
ICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291cmNl
RGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7
CisgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291
cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKIAogICAgIC8vIFRoZSBh
ZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5nIGluY2x1ZGluZyBwb3NzaWJseSBy
ZW1vdmluZyB0aGUgbGFzdAogICAgIC8vIHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25lIGV4
YW1wbGUgb2YgdGhpcyBpcyAzMjY2MjE2LgogICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+
IHByb3RlY3QodGhpcyk7Ci0KICAgICBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIAotICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YShkYXRhLCBsZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOworICAgIGRv
Y3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YShkYXRhLCBsZW5ndGgpOwogCiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwODAKICAgICBpZiAoV2ViRmlsdGVyRXZhbHVhdG9yICpmaWx0ZXIgPSBtX2ZpbHRl
cikgewpAQCAtNDk2LDEyICs0ODQsNiBAQAogCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlk
RmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkKIHsKLSAgICAvLyBUaGVyZSBpcyBhIGJ1
ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hl
biBsb2FkcyBhcmUgZGVmZXJyZWQuCi0gICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS82MzA0NjAw
PiBmb3IgbW9yZSBkZXRhaWxzLgotI2lmICFVU0UoQ0YpCi0gICAgQVNTRVJUKHNob3VsZExvYWRB
c0VtcHR5RG9jdW1lbnQoZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+dXJs
KCkpIHx8ICFkZWZlcnNMb2FkaW5nKCkgfHwgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc0Rl
YnVnZ2VyUGF1c2VkKG1fZnJhbWUuZ2V0KCkpKTsKLSNlbmRpZgotCiAgICAgLy8gVGhlIGFkZGl0
aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8gYW55dGhpbmcgaW5jbHVkaW5nIHBvc3NpYmx5IHJlbW92
aW5nIHRoZSBsYXN0CiAgICAgLy8gcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0LgogICAgIFJlZlB0
cjxNYWluUmVzb3VyY2VMb2FkZXI+IHByb3RlY3QodGhpcyk7CkBAIC01MTUsNyArNDk3LDcgQEAK
ICAgICAgICAgLy8gUmVtb3ZlIHRoaXMtPm1fZmlsdGVyIGVhcmx5IHNvIGRpZFJlY2VpdmVEYXRh
IGRvZXNuJ3Qgc2VlIGl0LgogICAgICAgICBtX2ZpbHRlciA9IDA7CiAgICAgICAgIGlmIChkYXRh
KQotICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCAtMSwgZmFsc2UpOwor
ICAgICAgICAgICAgZGF0YVJlY2VpdmVkKG1fcmVzb3VyY2UuZ2V0KCksIGRhdGEsIGxlbmd0aCk7
CiAgICAgICAgIHdrRmlsdGVyUmVsZWFzZShmaWx0ZXIpOwogICAgIH0KICNlbmRpZgpAQCAtNTI1
LDEzICs1MDcsMTggQEAKIAogICAgIGRvY3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5zZXRSZXNw
b25zZUVuZChmaW5pc2hUaW1lID8gZmluaXNoVGltZSA6IChtX3RpbWVPZkxhc3REYXRhUmVjZWl2
ZWQgPyBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgOiBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKSkpOwogICAgIGRvY3VtZW50TG9hZGVyKCktPmZpbmlzaGVkTG9hZGluZygpOwotICAgIFJl
c291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOwogCiAgICAgZGwtPmFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCktPmZpbmlzaGVkTG9hZGluZ01haW5SZXNvdXJjZSgpOwogfQog
Ci12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2UpCiB7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgbV9yZXNvdXJj
ZSA9PSByZXNvdXJjZSk7CisgICAgaWYgKCFtX3Jlc291cmNlIHx8ICghbV9yZXNvdXJjZS0+ZXJy
b3JPY2N1cnJlZCgpICYmICFtX3Jlc291cmNlLT53YXNDYW5jZWxlZCgpKSkgeworICAgICAgICBk
aWRGaW5pc2hMb2FkaW5nKG1fcmVzb3VyY2UtPmxvYWRGaW5pc2hUaW1lKCkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICBpZiAobV9maWx0ZXIp
IHsKICAgICAgICAgd2tGaWx0ZXJSZWxlYXNlKG1fZmlsdGVyKTsKQEAgLTUzOSwxNCArNTI2LDEz
IEBACiAgICAgfQogI2VuZGlmCiAKKyAgICBSZXNvdXJjZUVycm9yIGVycm9yOworICAgIGlmICht
X3Jlc291cmNlLT53YXNDYW5jZWxlZCgpKQorICAgICAgICBlcnJvciA9IG1fZnJhbWUtPmxvYWRl
cigpLT5jYW5jZWxsZWRFcnJvcihyZXF1ZXN0KCkpOworICAgIGVsc2UKKyAgICAgICAgZXJyb3Ig
PSBtX3Jlc291cmNlLT5yZXNvdXJjZUVycm9yKCk7CiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCkt
PmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpbkVycm9yKHJl
cXVlc3QoKSwgZXJyb3IpKQogICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBUaGVyZSBpcyBhIGJ1
ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hl
biBsb2FkcyBhcmUgZGVmZXJyZWQuCi0gICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS82MzA0NjAw
PiBmb3IgbW9yZSBkZXRhaWxzLgotI2lmICFVU0UoQ0YpCi0gICAgQVNTRVJUKCFkZWZlcnNMb2Fk
aW5nKCkpOwotI2VuZGlmCiAgICAgCiAgICAgcmVjZWl2ZWRFcnJvcihlcnJvcik7CiB9CkBAIC01
NTQsNyArNTQwLDYgQEAKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9y
eUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBl
czo6TG9hZGVyKTsKLSAgICBSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5
T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9pbml0aWFsUmVxdWVzdCk7CiAgICAg
aW5mby5hZGRNZW1iZXIobV9zdWJzdGl0dXRlRGF0YSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9k
YXRhTG9hZFRpbWVyKTsKQEAgLTU2OSw3ICs1NTQsNyBAQAogICAgICAgICBtaW1lVHlwZSA9ICJ0
ZXh0L2h0bWwiOwogICAgIAogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UodXJsLCBtaW1l
VHlwZSwgMCwgU3RyaW5nKCksIFN0cmluZygpKTsKLSAgICBkaWRSZWNlaXZlUmVzcG9uc2UocmVz
cG9uc2UpOworICAgIHJlc3BvbnNlUmVjZWl2ZWQoMCwgcmVzcG9uc2UpOwogfQogCiB2b2lkIE1h
aW5SZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KE1haW5SZXNvdXJj
ZUxvYWRlclRpbWVyKikKQEAgLTU4NSw3ICs1NzAsNyBAQAogICAgIG1faW5pdGlhbFJlcXVlc3Qg
PSBSZXNvdXJjZVJlcXVlc3QoKTsKICAgICAgICAgCiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZSh1cmwsIG1fc3Vic3RpdHV0ZURhdGEubWltZVR5cGUoKSwgbV9zdWJzdGl0dXRlRGF0YS5j
b250ZW50KCktPnNpemUoKSwgbV9zdWJzdGl0dXRlRGF0YS50ZXh0RW5jb2RpbmcoKSwgIiIpOwot
ICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CisgICAgcmVzcG9uc2VSZWNlaXZlZCgw
LCByZXNwb25zZSk7CiB9CiAKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpzdGFydERhdGFMb2Fk
VGltZXIoKQpAQCAtNjA4LDUwICs1OTMsMTEgQEAKICAgICAgICAgaGFuZGxlU3Vic3RpdHV0ZURh
dGFMb2FkTm93KDApOwogfQogCi1ib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyhSZXNv
dXJjZVJlcXVlc3QmIHIpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHIsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKIHsK
LSAgICBib29sIHNob3VsZExvYWRFbXB0eUJlZm9yZVJlZGlyZWN0ID0gc2hvdWxkTG9hZEFzRW1w
dHlEb2N1bWVudChyLnVybCgpKTsKLQotICAgIEFTU0VSVCghbV9oYW5kbGUpOwotICAgIEFTU0VS
VChzaG91bGRMb2FkRW1wdHlCZWZvcmVSZWRpcmVjdCB8fCAhZGVmZXJzTG9hZGluZygpKTsKLQot
ICAgIC8vIFNlbmQgdGhpcyBzeW50aGV0aWMgZGVsZWdhdGUgY2FsbGJhY2sgc2luY2UgY2xpZW50
cyBleHBlY3QgaXQsIGFuZAotICAgIC8vIHdlIG5vIGxvbmdlciBzZW5kIHRoZSBjYWxsYmFjayBm
cm9tIHdpdGhpbiBOU1VSTENvbm5lY3Rpb24gZm9yCi0gICAgLy8gaW5pdGlhbCByZXF1ZXN0cy4K
LSAgICB3aWxsU2VuZFJlcXVlc3QociwgUmVzb3VyY2VSZXNwb25zZSgpKTsKKyAgICBBU1NFUlQo
IW1fcmVzb3VyY2UpOwogICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKIAotICAgIC8v
IDxyZGFyOi8vcHJvYmxlbS80ODAxMDY2PgotICAgIC8vIHdpbGxTZW5kUmVxdWVzdCgpIGlzIGxp
YWJsZSB0byBtYWtlIHRoZSBjYWxsIHRvIGZyYW1lTG9hZGVyKCkgcmV0dXJuIE5VTEwsIHNvIHdl
IG5lZWQgdG8gY2hlY2sgdGhhdCBoZXJlCi0gICAgaWYgKCFmcmFtZUxvYWRlcigpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgY29uc3QgS1VSTCYgdXJsID0gci51cmwoKTsKLSAg
ICBib29sIHNob3VsZExvYWRFbXB0eSA9IHNob3VsZExvYWRBc0VtcHR5RG9jdW1lbnQodXJsKSAm
JiAhbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCk7Ci0KLSAgICBpZiAoc2hvdWxkTG9hZEVtcHR5
QmVmb3JlUmVkaXJlY3QgJiYgIXNob3VsZExvYWRFbXB0eSAmJiBkZWZlcnNMb2FkaW5nKCkpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0jaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0gICAg
cGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPnJlc291cmNlTG9hZFNjaGVk
dWxlcigpLT5hZGRNYWluUmVzb3VyY2VMb2FkKHRoaXMpOwotI2Vsc2UKLSAgICByZXNvdXJjZUxv
YWRTY2hlZHVsZXIoKS0+YWRkTWFpblJlc291cmNlTG9hZCh0aGlzKTsKLSNlbmRpZgotCi0gICAg
aWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKQotICAgICAgICBoYW5kbGVTdWJzdGl0dXRl
RGF0YUxvYWRTb29uKHIpOwotICAgIGVsc2UgaWYgKHNob3VsZExvYWRFbXB0eSB8fCBmcmFtZUxv
YWRlcigpLT5jbGllbnQoKS0+cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUodXJsLnBy
b3RvY29sKCkpKQotICAgICAgICBoYW5kbGVFbXB0eUxvYWQodXJsLCAhc2hvdWxkTG9hZEVtcHR5
KTsKLSAgICBlbHNlCi0gICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSht
X2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgciwgdGhpcywgZmFsc2UsIHRy
dWUpOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6
bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHIsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJz
dGl0dXRlRGF0YSkKLXsKLSAgICBBU1NFUlQoIW1faGFuZGxlKTsKLQogICAgIC8vIEl0IGFwcGVh
cnMgdGhhdCBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBsb2FkIHRvIGJlIGNhbmNlbGxlZCBhbmQg
ZGVyZWZlbmNlZCBieSB0aGUgRG9jdW1lbnRMb2FkZXIKICAgICAvLyBpbiB3aWxsU2VuZFJlcXVl
c3QoKSBpZiBsb2FkTm93KCkgaXMgY2FsbGVkLgogICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2Fk
ZXI+IHByb3RlY3QodGhpcyk7CkBAIC02NjUsMzggKzYxMSw1OSBAQAogCiAgICAgZG9jdW1lbnRM
b2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkTWFpblJlc291cmNlKHJl
cXVlc3QsIG1fc3Vic3RpdHV0ZURhdGEpOwogCi0gICAgYm9vbCBkZWZlciA9IGRlZmVyc0xvYWRp
bmcoKTsKLSAgICBpZiAoZGVmZXIpIHsKLSAgICAgICAgYm9vbCBzaG91bGRMb2FkRW1wdHkgPSBz
aG91bGRMb2FkQXNFbXB0eURvY3VtZW50KHJlcXVlc3QudXJsKCkpOwotICAgICAgICBpZiAoc2hv
dWxkTG9hZEVtcHR5KQotICAgICAgICAgICAgZGVmZXIgPSBmYWxzZTsKLSAgICB9Ci0gICAgaWYg
KCFkZWZlcikgewotICAgICAgICBpZiAobG9hZE5vdyhyZXF1ZXN0KSkgewotICAgICAgICAgICAg
Ly8gU3RhcnRlZCBhcyBhbiBlbXB0eSBkb2N1bWVudCwgYnV0IHdhcyByZWRpcmVjdGVkIHRvIHNv
bWV0aGluZyBub24tZW1wdHkuCi0gICAgICAgICAgICBBU1NFUlQoZGVmZXJzTG9hZGluZygpKTsK
LSAgICAgICAgICAgIGRlZmVyID0gdHJ1ZTsKKyAgICAvLyBTZW5kIHRoaXMgc3ludGhldGljIGRl
bGVnYXRlIGNhbGxiYWNrIHNpbmNlIG91ciBjbGllbnRzIGV4cGVjdCBpdCwgYW5kCisgICAgLy8g
Q2FjaGVkUmVzb3VyY2VDbGllbnRzIGNhbid0IGNvbm5lY3QgdG8gYSBDYWNoZWRSZXNvdXJjZSBp
biB0aW1lIHRvIGdldCBhIHdpbGxTZW5kUmVxdWVzdCgpCisgICAgLy8gY2FsbCBmb3IgdGhlIGlu
aXRpYWwgbG9hZC4KKyAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VSZXNwb25z
ZSgpKTsKKworICAgIC8vIDxyZGFyOi8vcHJvYmxlbS80ODAxMDY2PgorICAgIC8vIHdpbGxTZW5k
UmVxdWVzdCgpIGlzIGxpYWJsZSB0byBtYWtlIHRoZSBjYWxsIHRvIGZyYW1lTG9hZGVyKCkgcmV0
dXJuIG51bGwsIHNvIHdlIG5lZWQgdG8gY2hlY2sgdGhhdCBoZXJlCisgICAgaWYgKCFmcmFtZUxv
YWRlcigpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgY29uc3QgS1VSTCYgdXJsID0gci51
cmwoKTsKKyAgICBib29sIHNob3VsZExvYWRFbXB0eSA9IHNob3VsZExvYWRBc0VtcHR5RG9jdW1l
bnQodXJsKSAmJiAhbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCk7CisKKyAgICBpZiAobV9zdWJz
dGl0dXRlRGF0YS5pc1ZhbGlkKCkpCisgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNv
b24ocik7CisgICAgZWxzZSBpZiAoc2hvdWxkTG9hZEVtcHR5IHx8IGZyYW1lTG9hZGVyKCktPmNs
aWVudCgpLT5yZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSh1cmwucHJvdG9jb2woKSkp
CisgICAgICAgIGhhbmRsZUVtcHR5TG9hZCh1cmwsICFzaG91bGRMb2FkRW1wdHkpOworICAgIGVs
c2UgeworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0
KHJlcXVlc3QsIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRl
bnQsIEJ1ZmZlckRhdGEsCisgICAgICAgICAgICBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBBc2tD
bGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBTa2lwU2VjdXJpdHlDaGVjaykpOworICAg
ICAgICBtX3Jlc291cmNlID0gZG9jdW1lbnRMb2FkZXIoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdE1haW5SZXNvdXJjZShjYWNoZWRSZXNvdXJjZVJlcXVlc3QpOworICAgICAgICBp
ZiAoIW1fcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoZnJhbWVMb2FkZXIo
KS0+Y2FuY2VsbGVkRXJyb3IocikpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cisg
ICAgICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKKworICAgICAgICAvLyBXZSBuZWVk
IHRvIHdhaXQgdW50aWwgYWZ0ZXIgcmVxdWVzdE1haW5SZXNvdXJjZSgpIGlzIGNhbGxlZCB0byBz
ZXRSZXF1ZXN0KCksIGJlY2F1c2UgdGhlcmUgYXJlIGEgYnVuY2ggb2YgaGVhZGVycyBzZXQgd2hl
bgorICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBSZXNvdXJjZUxvYWRlciBpcyBjcmVhdGVkLCBh
bmQgRG9jdW1lbnRMb2FkZXI6Om1fcmVxdWVzdCBuZWVkcyB0byBpbmNsdWRlIHRob3NlLiBIb3dl
dmVyLCB0aGUgY2FjaGUgd2lsbAorICAgICAgICAvLyBzdHJpcCB0aGUgZnJhZ21lbnQgaWRlbnRp
ZmllciAod2hpY2ggRG9jdW1lbnRMb2FkZXI6Om1fcmVxdWVzdCBzaG91bGQgYWxzbyBpbmNsdWRl
KSwgc28gYWRkIHRoYXQgYmFjayBpbi4KKyAgICAgICAgaWYgKGxvYWRlcigpKQorICAgICAgICAg
ICAgcmVxdWVzdCA9IGxvYWRlcigpLT5vcmlnaW5hbFJlcXVlc3QoKTsKKyAgICAgICAgaWYgKHVy
bCAhPSByZXF1ZXN0LnVybCgpKQorICAgICAgICAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKyAg
ICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+c2V0UmVxdWVzdChyZXF1ZXN0KTsKICAgICB9Ci0gICAg
aWYgKGRlZmVyKQotICAgICAgICBtX2luaXRpYWxSZXF1ZXN0ID0gcmVxdWVzdDsKIH0KIAogdm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7Ci0g
ICAgUmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKKyAgICBpZiAobG9h
ZGVyKCkpCisgICAgICAgIGxvYWRlcigpLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7Cit9CiAK
LSAgICBpZiAoZGVmZXJzKSB7Ci0gICAgICAgIGlmIChtX2RhdGFMb2FkVGltZXIuaXNBY3RpdmUo
KSkKLSAgICAgICAgICAgIG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgaWYgKG1faW5pdGlhbFJlcXVlc3QuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm47
Cit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVmZmVy
aW5nUG9saWN5IHNob3VsZEJ1ZmZlckRhdGEpCit7CisgICAgQVNTRVJUKG1fcmVzb3VyY2UpOwor
ICAgIG1fcmVzb3VyY2UtPnNldFNob3VsZEJ1ZmZlckRhdGEoc2hvdWxkQnVmZmVyRGF0YSk7Cit9
CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGluaXRpYWxSZXF1ZXN0KG1faW5pdGlhbFJlcXVl
c3QpOwotICAgICAgICBtX2luaXRpYWxSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAg
ICAgIGxvYWROb3coaW5pdGlhbFJlcXVlc3QpOwotICAgIH0KK1Jlc291cmNlTG9hZGVyKiBNYWlu
UmVzb3VyY2VMb2FkZXI6OmxvYWRlcigpIGNvbnN0Cit7IAorICAgIHJldHVybiBtX3Jlc291cmNl
ID8gbV9yZXNvdXJjZS0+bG9hZGVyKCkgOiAwOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMzI3MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSw1MSBAQAorMjAxMi0xMC0yNiAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJvdXRlIG1haW4gcmVzb3VyY2UgbG9hZHMgdGhyb3VnaCB0aGUg
bWVtb3J5IGNhY2hlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDkyNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBwYXRjaCBkb2Vzbid0IGFjdHVhbGx5IGVuYWJsZSBjYWNoaW5n
IG9mIG1haW4gcmVzb3VyY2VzLiBUaGF0IHdpbGwgYmUgZG9uZSBpbiBhIGxhdGVyIHBhdGNoLgor
ICAgICAgICBUaGUgTWFpblJlc291cmNlTG9hZGVyIGFjdHVhbGx5IGhhcyBhbiB1bmRlcmx5aW5n
IFN1YnJlc291cmNlTG9hZGVyICh3aXRoIHRoZSBjYWNoZSBsYXllciBiZXR3ZWVuIHRoZW0pLgor
ICAgICAgICBJbiBzZXZlcmFsIHBsYWNlcywgdGhlIE1haW5SZXNvdXJjZUxvYWRlcidzIFN1YnJl
c291cmNlTG9hZGVyIGlzIHRyZWF0ZWQgYXMgc3BlY2lhbC4KKworICAgICAgICBObyBuZXcgdGVz
dHMgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6fkRvY3VtZW50TG9hZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphZGRTdWJyZXNvdXJjZUxvYWRlcik6IEJlY2F1c2Ug
dGhlIFN1YnJlc291cmNlTG9hZGVyIHVuZGVybHlpbmcgdGhlIG1haW4gcmVzb3VyY2UKKyAgICAg
ICAgICAgIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcgaW4gY2VydGFpbiBjYXNlcywgdHJhY2sgaXQg
c2VwYXJhdGVseSBmcm9tIHRoZSByZWFsIFN1YnJlc291cmNlTG9hZGVycy4KKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZW1vdmVTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAg
ICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWlu
UmVzb3VyY2VMb2FkZXI6OnJlY2VpdmVkRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJl
c291cmNlTG9hZGVyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpjbGVhclJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAo
V2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZXNvdXJjZURhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3kpOgor
ICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZGF0YVJlY2VpdmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVFbXB0eUxvYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0
YUxvYWROb3cpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyk6
IExvYWQgZGVmZXJyYWwgaXMgbm93IGRlbGVnYXRlZCB0byB0aGUgdW5kZXJseWluZyBTdWJyZXNv
dXJjZUxvYWRlci4KKyAgICAgICAgICAgIEZyb20gdGhlIE1haW5SZXNvdXJjZUxvYWRlcidzIHBl
cnNwZWN0aXZlLCB0aGUgbG9hZCBpcyBhbHdheXMgc3RhcnRlZCBpbW1lZGlhdGVseS4gQXMgc3Vj
aCwgYWxsIGNhc2VzIGludm9sdmluZworICAgICAgICAgICAgYSBkZWZlcnNMb2FkaW5nKCkgY2hl
Y2sgYXJlIHRyZWF0ZWQgYXMgYWx3YXlzIHJldHVybmluZyBmYWxzZSBhbmQgcmVtb3ZlZCBpZiBh
cHByb3ByaWF0ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6c2V0U2hv
dWxkQnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Omxv
YWRlcik6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHA6CisgICAgICAgICogbG9h
ZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHA6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvQXJjaGl2
ZS5oOgorICAgICAgICAqIGxvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwOgorCiAyMDEy
LTEwLTI2ICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAgUHJldmVu
dCBOYU4gb2Zmc2V0IHZhbHVlcyBpbiBFbGVtZW50VGltZUNvbnRyb2wuCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3JlZGlyZWN0LW1ldGhv
ZHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzI2NzUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTUsMTMgKzUsMTAgQEAKIG1haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKIDx1
bmtub3duPiAtIGRpZEZpbmlzaExvYWRpbmcKIGZyYW1lICIwIiAtIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUKLWFib3V0OmJsYW5rIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVl
c3QgVVJMIGFib3V0OmJsYW5rLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJl
Y3RSZXNwb25zZSAobnVsbCkKLWFib3V0OmJsYW5rIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VS
TFJlc3BvbnNlIGFib3V0OmJsYW5rLCBodHRwIHN0YXR1cyBjb2RlIDA+CiBmcmFtZSAiMCIgLSBk
aWRDb21taXRMb2FkRm9yRnJhbWUKIGZyYW1lICIwIiAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZv
ckZyYW1lCiBmcmFtZSAiMCIgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQogZnJhbWUg
IjAiIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCi1hYm91dDpibGFuayAtIGRpZEZpbmlzaExvYWRp
bmcKIGZyYW1lICIwIiAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtZm9ybS5odG1s
IAogZnJhbWUgIjAiIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQogaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtZm9ybS5odG1s
IC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZvcm0uaHRtbCwgbWFpbiBkb2N1
bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy5o
dG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCkBAIC0yNSwyMCAr
MjIsMTcgQEAKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVj
dC1tZXRob2RzLWZvcm0uaHRtbCAtIGRpZEZpbmlzaExvYWRpbmcKIGZyYW1lICIwIiAtIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5n
L3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHAgLSB3aWxsU2VuZFJlcXVlc3Qg
PE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2Vz
L3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCwgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBQ
T1NUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQorZnJhbWUgIjAiIC0gZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHAgLSB3aWxsU2Vu
ZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcv
cmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocD9yZWRpcmVjdGVkPXRydWUsIG1h
aW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3JlZGlyZWN0LW1l
dGhvZHMuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3Bv
bnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRo
b2RzLXJlc3VsdC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAxPgotZnJhbWUgIjAiIC0gZGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHAg
LSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocD9yZWRpcmVjdGVk
PXRydWUsIGh0dHAgc3RhdHVzIGNvZGUgMjAwPgogZnJhbWUgIjAiIC0gZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZQogZnJhbWUgIjAiIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCiBmcmFt
ZSAiMCIgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQogZnJhbWUgIjEiIC0gZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQotYWJvdXQ6YmxhbmsgLSB3aWxsU2VuZFJlcXVlc3Qg
PE5TVVJMUmVxdWVzdCBVUkwgYWJvdXQ6YmxhbmssIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9sb2FkaW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbCwgaHR0cCBtZXRob2Qg
R0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQotYWJvdXQ6YmxhbmsgLSBkaWRSZWNlaXZlUmVz
cG9uc2UgPE5TVVJMUmVzcG9uc2UgYWJvdXQ6YmxhbmssIGh0dHAgc3RhdHVzIGNvZGUgMD4KIGZy
YW1lICIxIiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQogZnJhbWUgIjEiIC0gZGlkRmluaXNoRG9j
dW1lbnRMb2FkRm9yRnJhbWUKIGZyYW1lICIxIiAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZy
YW1lCiBmcmFtZSAiMSIgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKLWFib3V0OmJsYW5rIC0gZGlk
RmluaXNoTG9hZGluZwogZnJhbWUgIjEiIC0gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJM
OiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9k
cy1mb3JtLmh0bWwgCiBmcmFtZSAiMCIgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQog
ZnJhbWUgIjAiIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCkBAIC01NSwyMCArNDksMTcgQEAKIGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZv
cm0uaHRtbCAtIGRpZEZpbmlzaExvYWRpbmcKIGZyYW1lICIxIiAtIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9y
ZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVz
dCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1l
dGhvZHMtcmVzdWx0LnBocCwgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBQT1NUPiByZWRpcmVj
dFJlc3BvbnNlIChudWxsKQorZnJhbWUgIjEiIC0gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jl
c291cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5T
VVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3Jl
ZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocD9yZWRpcmVjdGVkPXRydWUsIG1haW4gZG9jdW1lbnQg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbCwg
aHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5w
aHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgotZnJhbWUgIjEiIC0gZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9s
b2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHAgLSBkaWRSZWNlaXZl
UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVz
b3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocD9yZWRpcmVjdGVkPXRydWUsIGh0dHAg
c3RhdHVzIGNvZGUgMjAwPgogZnJhbWUgIjEiIC0gZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JG
cmFtZQogZnJhbWUgIjEiIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCiBmcmFtZSAiMSIgLSBkaWRG
aW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQogZnJhbWUgIjIiIC0gZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZQotYWJvdXQ6YmxhbmsgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVz
dCBVUkwgYWJvdXQ6YmxhbmssIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9sb2FkaW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVj
dFJlc3BvbnNlIChudWxsKQotYWJvdXQ6YmxhbmsgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJM
UmVzcG9uc2UgYWJvdXQ6YmxhbmssIGh0dHAgc3RhdHVzIGNvZGUgMD4KIGZyYW1lICIyIiAtIGRp
ZENvbW1pdExvYWRGb3JGcmFtZQogZnJhbWUgIjIiIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9y
RnJhbWUKIGZyYW1lICIyIiAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCiBmcmFtZSAi
MiIgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKLWFib3V0OmJsYW5rIC0gZGlkRmluaXNoTG9hZGlu
ZwogZnJhbWUgIjIiIC0gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1mb3JtLmh0bWwg
CiBmcmFtZSAiMSIgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQogZnJhbWUgIjEiIC0g
ZGlkRmluaXNoTG9hZEZvckZyYW1lCkBAIC04NSwyMCArNzYsMTcgQEAKIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZvcm0uaHRtbCAtIGRp
ZEZpbmlzaExvYWRpbmcKIGZyYW1lICIyIiAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRo
b2RzLXJlc3VsdC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0
LnBocCwgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVk
aXJlY3QtbWV0aG9kcy5odG1sLCBodHRwIG1ldGhvZCBQT1NUPiByZWRpcmVjdFJlc3BvbnNlIChu
dWxsKQorZnJhbWUgIjIiIC0gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRp
cmVjdC1tZXRob2RzLXJlc3VsdC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBV
UkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhv
ZHMtcmVzdWx0LnBocD9yZWRpcmVjdGVkPXRydWUsIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9sb2FkaW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbCwgaHR0cCBtZXRob2Qg
R0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHAsIGh0dHAgc3Rh
dHVzIGNvZGUgMzAzPgotZnJhbWUgIjIiIC0gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291
cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5waHAgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5T
VVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGly
ZWN0LW1ldGhvZHMtcmVzdWx0LnBocD9yZWRpcmVjdGVkPXRydWUsIGh0dHAgc3RhdHVzIGNvZGUg
MjAwPgogZnJhbWUgIjIiIC0gZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZQogZnJhbWUg
IjIiIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCiBmcmFtZSAiMiIgLSBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZQogZnJhbWUgIjMiIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZQotYWJvdXQ6YmxhbmsgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgYWJvdXQ6
YmxhbmssIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jl
ZGlyZWN0LW1ldGhvZHMuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChu
dWxsKQotYWJvdXQ6YmxhbmsgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgYWJv
dXQ6YmxhbmssIGh0dHAgc3RhdHVzIGNvZGUgMD4KIGZyYW1lICIzIiAtIGRpZENvbW1pdExvYWRG
b3JGcmFtZQogZnJhbWUgIjMiIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKIGZyYW1l
ICIzIiAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCiBmcmFtZSAiMyIgLSBkaWRGaW5p
c2hMb2FkRm9yRnJhbWUKLWFib3V0OmJsYW5rIC0gZGlkRmluaXNoTG9hZGluZwogZnJhbWUgIjMi
IC0gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
bG9hZGluZy9yZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1mb3JtLmh0bWwgCiBmcmFtZSAiMiIg
LSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQogZnJhbWUgIjIiIC0gZGlkRmluaXNoTG9h
ZEZvckZyYW1lCkBAIC0xMTUsOCArMTAzLDggQEAKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2Fk
aW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLWZvcm0uaHRtbCAtIGRpZEZpbmlzaExvYWRp
bmcKIGZyYW1lICIzIiAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2RzLXJlc3VsdC5w
aHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBocCwgbWFpbiBk
b2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVkaXJlY3QtbWV0aG9k
cy5odG1sLCBodHRwIG1ldGhvZCBQT1NUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQorZnJhbWUg
IjMiIC0gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUK
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2Rz
LXJlc3VsdC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3JlZGlyZWN0LW1ldGhvZHMtcmVzdWx0LnBo
cD9yZWRpcmVjdGVkPXRydWUsIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9sb2FkaW5nL3JlZGlyZWN0LW1ldGhvZHMuaHRtbCwgaHR0cCBtZXRob2QgUE9TVD4gcmVkaXJl
Y3RSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9y
ZXNvdXJjZXMvcmVkaXJlY3QtbWV0aG9kcy1yZXN1bHQucGhwLCBodHRwIHN0YXR1cyBjb2RlIDMw
Nz4KLWZyYW1lICIzIiAtIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcmVkaXJl
Y3QtbWV0aG9kcy1yZXN1bHQucGhwIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3BvbnNl
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9yZWRpcmVjdC1tZXRob2Rz
LXJlc3VsdC5waHA/cmVkaXJlY3RlZD10cnVlLCBodHRwIHN0YXR1cyBjb2RlIDIwMD4KIGZyYW1l
ICIzIiAtIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUKIGZyYW1lICIzIiAtIGRpZENv
bW1pdExvYWRGb3JGcmFtZQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nLzMw
Ny1hZnRlci0zMDMtYWZ0ZXItcG9zdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nLzMwNy1hZnRlci0zMDMtYWZ0ZXItcG9zdC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDEzMjY3NSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGlu
Zy8zMDctYWZ0ZXItMzAzLWFmdGVyLXBvc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC03LDEwICs3LDEwIEBACiA8dW5rbm93bj4gLSBkaWRGaW5pc2hMb2FkaW5nCiBtYWluIGZyYW1l
IC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQogaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2xvYWRpbmcvcmVzb3VyY2VzL3Bvc3QtdG8tMzAzLXRhcmdldC5waHAgLSB3aWxsU2VuZFJlcXVl
c3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3Vy
Y2VzL3Bvc3QtdG8tMzAzLXRhcmdldC5waHAsIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy9wb3N0LXRvLTMwMy10YXJnZXQucGhwLCBodHRw
IG1ldGhvZCBQT1NUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQorbWFpbiBmcmFtZSAtIGRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvcG9zdC10by0zMDMtdGFyZ2V0LnBocCAtIHdp
bGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9h
ZGluZy9yZXNvdXJjZXMvMzAzLXRvLTMwNy10YXJnZXQucGhwLCBtYWluIGRvY3VtZW50IFVSTCBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMvMzAzLXRvLTMwNy10YXJnZXQu
cGhwLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2xvYWRpbmcvcmVzb3VyY2VzL3Bvc3QtdG8tMzAzLXRhcmdldC5w
aHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAzPgogbWFpbiBmcmFtZSAtIGRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
bG9hZGluZy9yZXNvdXJjZXMvcG9zdC10by0zMDMtdGFyZ2V0LnBocCAtIHdpbGxTZW5kUmVxdWVz
dCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJj
ZXMvMzA3LXBvc3Qtb3V0cHV0LXRhcmdldC5waHAsIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy8zMDctcG9zdC1vdXRwdXQtdGFyZ2V0LnBo
cCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9sb2FkaW5nL3Jlc291cmNlcy8zMDMtdG8tMzA3LXRhcmdldC5waHAs
IGh0dHAgc3RhdHVzIGNvZGUgMzA3PgotbWFpbiBmcmFtZSAtIGRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9h
ZGluZy9yZXNvdXJjZXMvcG9zdC10by0zMDMtdGFyZ2V0LnBocCAtIGRpZFJlY2VpdmVSZXNwb25z
ZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbG9hZGluZy9yZXNvdXJjZXMv
MzA3LXBvc3Qtb3V0cHV0LXRhcmdldC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMjAwPgogbWFpbiBm
cmFtZSAtIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUKIG1haW4gZnJhbWUgLSBkaWRD
b21taXRMb2FkRm9yRnJhbWUKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxs
LXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1y
ZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzI2NzUpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1u
dWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcg
QEAKIDx1bmtub3duPiAtIGRpZEZpbmlzaExvYWRpbmcKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9t
aXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSB3aWxsU2VuZFJlcXVlc3Qg
PE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8sIG1haW4gZG9jdW1lbnQg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMt
bnVsbC1vbi1yZWRpcmVjdC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2Ug
PE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGly
ZWN0LXRvLWh0dHAtdXJsLnBocCwgaHR0cCBzdGF0dXMgY29kZSAzMDI+CiBSZXR1cm5pbmcgbnVs
bCBmb3IgdGhpcyByZWRpcmVjdAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2Vz
L3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNF
cnJvciBkb21haW4gV2ViS2l0RXJyb3JEb21haW4sIGNvZGUgMTAyPgoraHR0cDovLzEyNy4wLjAu
MTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxM
b2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAt
OTk5PgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NTk1CiBUaGlz
IHRlc3QgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaW5ncyBiZWhhdmUgYXMgZXhwZWN0ZWQg
d2hlbiB0aGUgcmVzb3VyY2UgbG9hZCBkZWxlZ2F0ZSByZXR1cm5zIG51bGwgaW4gcmVzcG9uc2Ug
dG8gd2lsbFNlbmRSZXF1ZXN0LgogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10YWctcGFyZW50LXNh
bWUtb3JpZ2luLWRlbnktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRh
LXRhZy1wYXJlbnQtc2FtZS1vcmlnaW4tZGVueS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzMjY3
NSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZy
YW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1wYXJlbnQtc2FtZS1vcmlnaW4tZGVueS1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw2IEBACiBodHRwOi8vbG9jYWxob3N0Ojgw
MDAvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy9yZXNvdXJjZXMveC1mcmFtZS1vcHRpb25zLWRlbnkt
bWV0YS10YWctc3ViZnJhbWUtcGFyZW50LXNhbWUtb3JpZ2luLWRlbnkuaHRtbCAtIGRpZEZhaWxM
b2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAt
OTk5LCBmYWlsaW5nIFVSTCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L1hGcmFtZU9w
dGlvbnMvcmVzb3VyY2VzL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLXN1YmZyYW1lLXBh
cmVudC1zYW1lLW9yaWdpbi1kZW55Lmh0bWwiPgogQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRv
IGRpc3BsYXkgZG9jdW1lbnQgYmVjYXVzZSBkaXNwbGF5IGZvcmJpZGRlbiBieSBYLUZyYW1lLU9w
dGlvbnMuCiAKLWFib3V0OmJsYW5rIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJM
IGFib3V0OmJsYW5rLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2Vj
dXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1wYXJlbnQt
c2FtZS1vcmlnaW4tZGVueS5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2Ug
KG51bGwpCi1hYm91dDpibGFuayAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBh
Ym91dDpibGFuaywgaHR0cCBzdGF0dXMgY29kZSAwPgogVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRl
bnQgaW4gdGhlIGlmcmFtZSBiZWxvdwogCiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1pbi1i
b2R5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10YWctaW4tYm9k
eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzMjY3NSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1p
bi1ib2R5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDYgQEAKIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3Jlc291cmNlcy94LWZyYW1l
LW9wdGlvbnMtZGVueS1tZXRhLXRhZy1zdWJmcmFtZS1pbi1ib2R5Lmh0bWwgLSBkaWRGYWlsTG9h
ZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5
OSwgZmFpbGluZyBVUkwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9YRnJhbWVPcHRp
b25zL3Jlc291cmNlcy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1zdWJmcmFtZS1pbi1i
b2R5Lmh0bWwiPgogQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGRpc3BsYXkgZG9jdW1lbnQg
YmVjYXVzZSBkaXNwbGF5IGZvcmJpZGRlbiBieSBYLUZyYW1lLU9wdGlvbnMuCiAKLWFib3V0OmJs
YW5rIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGFib3V0OmJsYW5rLCBtYWlu
IGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvWEZyYW1lT3B0aW9u
cy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1pbi1ib2R5Lmh0bWwsIGh0dHAgbWV0aG9k
IEdFVD4gcmVkaXJlY3RSZXNwb25zZSAobnVsbCkKLWFib3V0OmJsYW5rIC0gZGlkUmVjZWl2ZVJl
c3BvbnNlIDxOU1VSTFJlc3BvbnNlIGFib3V0OmJsYW5rLCBodHRwIHN0YXR1cyBjb2RlIDA+CiBU
aGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93CiAKIApJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0
aW9ucy1kZW55LW1ldGEtdGFnLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnkt
bWV0YS10YWctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzI2NzUpCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnktbWV0
YS10YWctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDggKzQsNiBAQAogaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMvcmVzb3VyY2VzL3gtZnJhbWUt
b3B0aW9ucy1kZW55LW1ldGEtdGFnLXN1YmZyYW1lLmh0bWwgLSBkaWRGYWlsTG9hZGluZ1dpdGhF
cnJvcjogPE5TRXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5OSwgZmFpbGlu
ZyBVUkwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3Jlc291
cmNlcy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1zdWJmcmFtZS5odG1sIj4KIENPTlNP
TEUgTUVTU0FHRTogUmVmdXNlZCB0byBkaXNwbGF5IGRvY3VtZW50IGJlY2F1c2UgZGlzcGxheSBm
b3JiaWRkZW4gYnkgWC1GcmFtZS1PcHRpb25zLgogCi1hYm91dDpibGFuayAtIHdpbGxTZW5kUmVx
dWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBhYm91dDpibGFuaywgbWFpbiBkb2N1bWVudCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25z
LWRlbnktbWV0YS10YWcuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChu
dWxsKQotYWJvdXQ6YmxhbmsgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgYWJv
dXQ6YmxhbmssIGh0dHAgc3RhdHVzIGNvZGUgMD4KIFRoZXJlIHNob3VsZCBiZSBubyBjb250ZW50
IGluIHRoZSBpZnJhbWUgYmVsb3cKIAogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sCShyZXZpc2lv
biAxMzI2NzUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1w
YXJhbWV0ZXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDggKzE3LDYgQEAKICAgICBmdW5j
dGlvbiBvblJlcXVlc3RGaW5pc2hlZChldmVudCkKICAgICB7CiAgICAgICAgIHZhciByZXF1ZXN0
ID0gZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKHJlcXVlc3QudXJsICE9PSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5UGFyYW0x
PXF1ZXJ5VmFsdWUxJnF1ZXJ5UGFyYW0yPSNmcmFnbWVudFBhcmFtMT1mcmFnbWVudFZhbHVlMSZm
cmFnbWVudFBhcmFtMj0iKQotICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZE9iamVjdChuZXcgV2ViSW5zcGVjdG9yLkhBUkVudHJ5KHJlcXVlc3QpLmJ1aWxkKCks
IEluc3BlY3RvclRlc3QuSEFSUHJvcGVydHlGb3JtYXR0ZXJzKTsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaWZyYW1lLWxvYWQtYW5kLWRlbGV0ZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1pZnJhbWUtbG9hZC1hbmQtZGVsZXRlLmh0bWwJKHJldmlzaW9uIDEzMjY3NSkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1pZnJhbWUtbG9h
ZC1hbmQtZGVsZXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKIAogICAg
IGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0MSA9IFdlYkluc3Bl
Y3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0d29y
ayIpLnJlcXVlc3RzLmxlbmd0aCAtIDNdOworICAgICAgICB2YXIgcmVxdWVzdDEgPSBXZWJJbnNw
ZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdv
cmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAyXTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQocmVxdWVzdDEudXJsKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJlc291
cmNlLnR5cGU6ICIgKyByZXF1ZXN0MS50eXBlKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoInJlc291cmNlLmNvbnRlbnQgYmVmb3JlIHJlcXVlc3RpbmcgY29udGVudDogIiArIHJl
cXVlc3QxLmNvbnRlbnQpOwpAQCAtNTIsNyArNTIsNyBAQAogCiAgICAgZnVuY3Rpb24gc3RlcDMo
KQogICAgIHsKLSAgICAgICAgdmFyIHJlcXVlc3QxID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3
b3JrIikucmVxdWVzdHNbV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikucmVxdWVzdHMubGVu
Z3RoIC0gM107CisgICAgICAgIHZhciByZXF1ZXN0MSA9IFdlYkluc3BlY3Rvci5wYW5lbCgibmV0
d29yayIpLnJlcXVlc3RzW1dlYkluc3BlY3Rvci5wYW5lbCgibmV0d29yayIpLnJlcXVlc3RzLmxl
bmd0aCAtIDJdOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVzb3VyY2UuY29u
dGVudCBhZnRlciByZXF1ZXN0aW5nIGNvbnRlbnQ6ICIgKyByZXF1ZXN0MS5jb250ZW50KTsKIAog
ICAgICAgICB2YXIgcmVxdWVzdDIgPSBXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1
ZXN0c1tXZWJJbnNwZWN0b3IucGFuZWwoIm5ldHdvcmsiKS5yZXF1ZXN0cy5sZW5ndGggLSAxXTsK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEzMjcwOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTI2ICBOYXRlIENoYXBpbiAgPGph
cGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJjZSBsb2FkcyB0
aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3RzIHRoYXQgdXNlIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3Mo
KSBubyBsb25nIHNlZSBvdXRwdXQgZm9yCisgICAgICAgIGFib3V0OmJsYW5rIGxvYWRzLiBTb21l
IHJlZGlyZWN0IGNhbGxiYWNrIG91dHB1dCBoYXMgY2hhbmdlZCBvcmRlciBzbGlnaHRseS4KKwor
ICAgICAgICBBIGNvdXBsZSBvZiBpbnNwZWN0b3IgdGVzdHMgaGF2ZSBjaGFuZ2VkIHRoZWlyIHBl
cmNlcHRpb24gb2YgbmV0d29yayByZXF1ZXN0cworICAgICAgICBiZWNhdXNlIG9mIHRoZSBtYWlu
IHJlc291cmNlIGhhdmluZyBhbiB1bmRlcmx5aW5nIENhY2hlZFJlc291cmNlLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWlmcmFtZS1sb2FkLWFuZC1k
ZWxldGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJh
bWV0ZXJzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nLzMwNy1hZnRlci0zMDMt
YWZ0ZXItcG9zdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jl
ZGlyZWN0LW1ldGhvZHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy93
aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlv
bnMtZGVueS1tZXRhLXRhZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLWluLWJvZHkt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9u
cy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1wYXJlbnQtc2FtZS1vcmlnaW4tZGVueS1l
eHBlY3RlZC50eHQ6CisKIDIwMTItMTAtMjYgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQsIHJlbW92ZSBvbmUgbW9yZSB0ZXN0
IHRoYXQgY29uc2lzdGVudGx5IHBhc3NlcyBhY2NvcmRpbmcgdG8gdGhlIGZsYWtpbmVzcyBkYXNo
Ym9hcmQuCg==
</data>
<flag name="commit-queue"
          id="184826"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176599</attachid>
            <date>2012-11-28 16:33:30 -0800</date>
            <delta_ts>2012-11-29 15:16:39 -0800</delta_ts>
            <desc>Merged to trunk, addressed server redirect concerns, etc</desc>
            <filename>cmr_1128c.txt</filename>
            <type>text/plain</type>
            <size>37195</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwCShyZXZpc2lv
biAxMzYwNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTIgQEAKIHsKIH0KIAordm9pZCBBcmNoaXZlOjph
ZGRTdWJyZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3ViUmVzb3VyY2UpCit7
CisgICAgaWYgKG1fbWFpblJlc291cmNlLT51cmwoKSAhPSBzdWJSZXNvdXJjZS0+dXJsKCkpCisg
ICAgICAgIG1fc3VicmVzb3VyY2VzLmFwcGVuZChzdWJSZXNvdXJjZSk7Cit9CisKIHZvaWQgQXJj
aGl2ZTo6Y2xlYXJBbGxTdWJmcmFtZUFyY2hpdmVzKCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPEFy
Y2hpdmU+ID4gY2xlYXJlZEFyY2hpdmVzOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvQXJjaGl2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL0FyY2hpdmUuaAkocmV2aXNpb24gMTM2MDQ0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvQXJjaGl2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBACiAgICAg
Ly8gVGhlc2UgbWV0aG9kcyBhcmUgbWVhbnQgZm9yIHN1YmNsYXNzZXMgZm9yIGRpZmZlcmVudCBh
cmNoaXZlIHR5cGVzIHRvIGFkZCByZXNvdXJjZXMgaW4gdG8gdGhlIGFyY2hpdmUsCiAgICAgLy8g
YW5kIHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyBhcmNoaXZlcyBzaG91bGQgYmUgaW1tdXRhYmxl
IHRvIGNsaWVudHMKICAgICB2b2lkIHNldE1haW5SZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVS
ZXNvdXJjZT4gbWFpblJlc291cmNlKSB7IG1fbWFpblJlc291cmNlID0gbWFpblJlc291cmNlOyB9
Ci0gICAgdm9pZCBhZGRTdWJyZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3Vi
UmVzb3VyY2UpIHsgbV9zdWJyZXNvdXJjZXMuYXBwZW5kKHN1YlJlc291cmNlKTsgfQorICAgIHZv
aWQgYWRkU3VicmVzb3VyY2UoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YlJlc291cmNl
KTsKICAgICB2b2lkIGFkZFN1YmZyYW1lQXJjaGl2ZShQYXNzUmVmUHRyPEFyY2hpdmU+IHN1YmZy
YW1lQXJjaGl2ZSkgeyBtX3N1YmZyYW1lQXJjaGl2ZXMuYXBwZW5kKHN1YmZyYW1lQXJjaGl2ZSk7
IH0KIAogICAgIHZvaWQgY2xlYXJBbGxTdWJmcmFtZUFyY2hpdmVzKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHJldmlzaW9uIDEzNjA0NCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4MCwxMyArMTgwLDcgQEAKICAgICAvLyB3b3VsZCBiZSBhIFdlYkZvdW5kYXRpb24gYnVnIGlm
IGl0IHNlbnQgYSByZWRpcmVjdCBjYWxsYmFjayBhZnRlciBjb21taXQuCiAgICAgQVNTRVJUKCFt
X2NvbW1pdHRlZCk7CiAKLSAgICBLVVJMIG9sZFVSTCA9IG1fcmVxdWVzdC51cmwoKTsKICAgICBt
X3JlcXVlc3QgPSByZXE7Ci0KLSAgICAvLyBPbmx5IGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkgaWYgVVJMIGNoYW5nZWQgKGFuZCBpcyBub24tbnVs
bCkuCi0gICAgLy8gQWxzbywgZG9uJ3Qgc2VuZCBpdCB3aGVuIHJlcGxhY2luZyB1bnJlYWNoYWJs
ZSBVUkxzIHdpdGggYWx0ZXJuYXRlIGNvbnRlbnQuCi0gICAgaWYgKCFoYW5kbGluZ1VucmVhY2hh
YmxlVVJMICYmICFyZXEudXJsKCkuaXNOdWxsKCkgJiYgb2xkVVJMICE9IHJlcS51cmwoKSkKLSAg
ICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNl
dE1haW5Eb2N1bWVudEVycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtODExLDEx
ICs4MDUsMjAgQEAKIAogdm9pZCBEb2N1bWVudExvYWRlcjo6YWRkU3VicmVzb3VyY2VMb2FkZXIo
UmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKIHsKKyAgICAvLyBUaGUgbWFpbiByZXNvdXJjZSdzIHVu
ZGVybHlpbmcgUmVzb3VyY2VMb2FkZXIgd2lsbCBhc2sgdG8gYmUgYWRkZWQgaGVyZS4KKyAgICAv
LyBJdCBpcyBtdWNoIHNpbXBsZXIgdG8gaGFuZGxlIHNwZWNpYWwgY2FzaW5nIG9mIG1haW4gcmVz
b3VyY2UgbG9hZHMgaWYgd2UgZG9uJ3QKKyAgICAvLyBsZXQgaXQgYmUgYWRkZWQuIEluIHRoZSBt
YWluIHJlc291cmNlIGxvYWQgY2FzZSwgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpCisg
ICAgLy8gd2lsbCBzdGlsbCBiZSBudWxsIGF0IHRoaXMgcG9pbnQsIGJ1dCBtX2dvdEZpcnN0Qnl0
ZSBzaG91bGQgYmUgZmFsc2UgaGVyZSBpZiBhbmQgb25seQorICAgIC8vIGlmIHdlIGFyZSBqdXN0
IHN0YXJ0aW5nIHRoZSBtYWluIHJlc291cmNlIGxvYWQuCisgICAgaWYgKCFtX2dvdEZpcnN0Qnl0
ZSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fc3VicmVzb3VyY2VMb2FkZXJzLmFkZChsb2FkZXIp
OwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpyZW1vdmVTdWJyZXNvdXJjZUxvYWRlcihSZXNv
dXJjZUxvYWRlciogbG9hZGVyKQogeworICAgIGlmICghbV9zdWJyZXNvdXJjZUxvYWRlcnMuY29u
dGFpbnMobG9hZGVyKSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fc3VicmVzb3VyY2VMb2FkZXJz
LnJlbW92ZShsb2FkZXIpOwogICAgIGNoZWNrTG9hZENvbXBsZXRlKCk7CiAgICAgaWYgKEZyYW1l
KiBmcmFtZSA9IG1fZnJhbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEzNjA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlJlc291cmNl
QnVmZmVyLmgiCkBAIC0xNDcsNiArMTQ4LDEwIEBACiAgICAgICAgIHJldHVybjsKIAogICAgIFJl
c291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QobmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25z
ZSk7CisKKyAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkgJiYgbV9yZXNvdXJjZS0+
dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCisgICAgICAgIGZyYW1lTG9h
ZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZCgpOworCiAgICAgaWYgKG5ld1JlcXVlc3QuaXNOdWxsKCkpCiAgICAgICAgIGNh
bmNlbCgpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHAJKHJldmlzaW9uIDEzNjA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw4IEBACiAKICNp
bmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC00NCwxNSArNDYsMTUgQEAK
ICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgog
I2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIkxvYWRlclN0
cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFu
ZGxlLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU2No
ZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCisjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KIAogI2lmIFBMQVRGT1JNKFFUKQpAQCAtNjMsMTMgKzY1LDEyIEBACiAj
aW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2VuZGlmCiAKLS8vIEZJWE1FOiBN
b3JlIHRoYXQgaXMgaW4gY29tbW9uIHdpdGggU3VicmVzb3VyY2VMb2FkZXIgc2hvdWxkIG1vdmUg
dXAgaW50byBSZXNvdXJjZUxvYWRlci4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNYWluUmVz
b3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUpCi0gICAgOiBSZXNv
dXJjZUxvYWRlcihmcmFtZSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNu
aWZmQ29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50
Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgU2tpcFNlY3VyaXR5Q2hlY2spKQotICAgICwgbV9k
YXRhTG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZVN1YnN0aXR1dGVE
YXRhTG9hZE5vdykKKyAgICA6IG1fZGF0YUxvYWRUaW1lcih0aGlzLCAmTWFpblJlc291cmNlTG9h
ZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3cpCisgICAgLCBtX2ZyYW1lKGZyYW1lKQor
ICAgICwgbV9kb2N1bWVudExvYWRlcihmcmFtZS0+bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9h
ZGVyKCkpCiAgICAgLCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KGZhbHNlKQogICAgICwgbV93
YWl0aW5nRm9yQ29udGVudFBvbGljeShmYWxzZSkKICAgICAsIG1fdGltZU9mTGFzdERhdGFSZWNl
aXZlZCgwLjApCkBAIC0xMDIsMzUgKzEwMywzMyBAQAogICAgIC8vIGRvY3VtZW50IGxvYWRlcnMu
IEFsc28sIG1haW5SZWNlaXZlZEVycm9yIGVuZHMgdXAgY2FsbGluZyBhIEZyYW1lTG9hZERlbGVn
YXRlIG1ldGhvZAogICAgIC8vIGFuZCBkaWRGYWlsVG9Mb2FkIGNhbGxzIGEgUmVzb3VyY2VMb2Fk
RGVsZWdhdGUgbWV0aG9kIGFuZCB0aGV5IG5lZWQgdG8gYmUgaW4gdGhlIGNvcnJlY3Qgb3JkZXIu
CiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlY2VpdmVkRXJyb3IoZXJyb3IpOworfQogCi0g
ICAgaWYgKCFjYW5jZWxsZWQoKSkgewotICAgICAgICBBU1NFUlQoIXJlYWNoZWRUZXJtaW5hbFN0
YXRlKCkpOwotICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaWRGYWlsVG9Mb2Fk
KHRoaXMsIGVycm9yKTsKLSAgICAgICAgCi0gICAgICAgIHJlbGVhc2VSZXNvdXJjZXMoKTsKLSAg
ICB9Ci0KLSAgICBBU1NFUlQocmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7Cit2b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsKCkKK3sKKyAgICBjYW5jZWwoUmVzb3VyY2VFcnJvcigpKTsKIH0K
IAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3Im
IGVycm9yKQogeworICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IHByb3RlY3QodGhpcyk7
CisgICAgUmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yID0gZXJyb3IuaXNOdWxsKCkgPyBmcmFt
ZUxvYWRlcigpLT5jYW5jZWxsZWRFcnJvcihyZXF1ZXN0KCkpIDogZXJyb3I7CisKICAgICBtX2Rh
dGFMb2FkVGltZXIuc3RvcCgpOwogCiAgICAgaWYgKG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kp
IHsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLT5jYW5jZWxDaGVjaygp
OwogICAgICAgICBBU1NFUlQobV93YWl0aW5nRm9yQ29udGVudFBvbGljeSk7CiAgICAgICAgIG1f
d2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kgPSBmYWxzZTsKLSAgICAgICAgZGVyZWYoKTsgLy8gYmFs
YW5jZXMgcmVmIGluIGRpZFJlY2VpdmVSZXNwb25zZQorICAgICAgICBkZXJlZigpOyAvLyBiYWxh
bmNlcyByZWYgaW4gcmVzcG9uc2VSZWNlaXZlZAogICAgIH0KLX0KIAotdm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICAv
LyBXZSBzaG91bGQgbm90aWZ5IHRoZSBmcmFtZSBsb2FkZXIgYWZ0ZXIgZnVsbHkgY2FuY2VsaW5n
IHRoZSBsb2FkLCBiZWNhdXNlIGl0IGNhbiBkbyBjb21wbGljYXRlZCB3b3JrCi0gICAgLy8gbGlr
ZSBjYWxsaW5nIERPTVdpbmRvdzo6cHJpbnQoKSwgZHVyaW5nIHdoaWNoIGEgaGFsZi1jYW5jZWxl
ZCBsb2FkIGNvdWxkIHRyeSB0byBmaW5pc2guCi0gICAgZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJl
Y2VpdmVkRXJyb3IoZXJyb3IpOworICAgIGlmIChsb2FkZXIoKSkKKyAgICAgICAgbG9hZGVyKCkt
PmNhbmNlbChyZXNvdXJjZUVycm9yKTsKIAorICAgIGNsZWFyUmVzb3VyY2UoKTsKKyAgICByZWNl
aXZlZEVycm9yKHJlc291cmNlRXJyb3IpOworCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZP
Uk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICBp
ZiAobV9maWx0ZXIpIHsKICAgICAgICAgd2tGaWx0ZXJSZWxlYXNlKG1fZmlsdGVyKTsKQEAgLTEz
OSw2ICsxMzgsMTkgQEAKICNlbmRpZgogfQogCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y2xl
YXJSZXNvdXJjZSgpCit7CisgICAgaWYgKG1fcmVzb3VyY2UpIHsKKyAgICAgICAgbV9yZXNvdXJj
ZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICBtX3Jlc291cmNlID0gMDsKKyAgICB9Cit9
CisKK2NvbnN0IFJlc291cmNlUmVxdWVzdCYgTWFpblJlc291cmNlTG9hZGVyOjpyZXF1ZXN0KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNvdXJjZSA/IG1fcmVzb3VyY2UtPnJlc291cmNlUmVx
dWVzdCgpIDogbV9pbml0aWFsUmVxdWVzdDsKK30KKwogUmVzb3VyY2VFcnJvciBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoKSBjb25zdAogewogICAg
IHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFu
Z2VFcnJvcihyZXF1ZXN0KCkpOwpAQCAtMTYzLDcgKzE3NSw3IEBACiAgICAgZWxzZSBpZiAobV9z
dWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKICAgICAgICAgLy8gQSByZWRpcmVjdCByZXN1bHRl
ZCBpbiBsb2FkaW5nIHN1YnN0aXR1dGUgZGF0YS4KICAgICAgICAgQVNTRVJUKGRvY3VtZW50TG9h
ZGVyKCktPnRpbWluZygpLT5yZWRpcmVjdENvdW50KCkpOwotICAgICAgICBoYW5kbGUoKS0+Y2Fu
Y2VsKCk7CisgICAgICAgIGNsZWFyUmVzb3VyY2UoKTsKICAgICAgICAgaGFuZGxlU3Vic3RpdHV0
ZURhdGFMb2FkU29vbihyZXF1ZXN0KTsKICAgICB9CiAKQEAgLTE4MywxMiArMTk1LDE3IEBACiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShj
b25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK1Bhc3NSZWZQdHI8
UmVzb3VyY2VCdWZmZXI+IE1haW5SZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VEYXRhKCkKIHsKLSAg
ICBSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShkYXRhLCBsZW5ndGgsIGFsbEF0T25jZSk7Ci0gICAg
ZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKGRhdGEsIGxlbmd0aCk7CisgICAgcmV0dXJu
IG1fcmVzb3VyY2UgPyBtX3Jlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpIDogMDsKIH0KIAordm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6OnJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3Vy
Y2UgPT0gbV9yZXNvdXJjZSk7CisgICAgd2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0
UmVzcG9uc2UpOworfQorCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVk
aXJlY3RSZXNwb25zZSkKIHsKICAgICAvLyBOb3RlIHRoYXQgdGhlcmUgYXJlIG5vIGFzc2VydHMg
aGVyZSBhcyB0aGVyZSBhcmUgZm9yIHRoZSBvdGhlciBjYWxsYmFja3MuIFRoaXMgaXMgZHVlIHRv
IHRoZQpAQCAtMjM5LDEwICsyNTYsOSBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
LQogICAgIC8vIERvbid0IHNldCB0aGlzIG9uIHRoZSBmaXJzdCByZXF1ZXN0LiBJdCBpcyBzZXQg
d2hlbiB0aGUgbWFpbiBsb2FkIHdhcyBzdGFydGVkLgotICAgIG1fZG9jdW1lbnRMb2FkZXItPnNl
dFJlcXVlc3QobmV3UmVxdWVzdCk7CisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgp
KQorICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zZXRSZXF1ZXN0KG5ld1JlcXVlc3QpOwogCiAg
ICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7CiAgICAgICAgIC8vIFdlIGNoZWNr
ZWQgYXBwbGljYXRpb24gY2FjaGUgZm9yIGluaXRpYWwgVVJMLCBub3cgd2UgbmVlZCB0byBjaGVj
ayBpdCBmb3IgcmVkaXJlY3RlZCBvbmUuCkBAIC0yNzcsMTcgKzI5MywxNiBAQAogICAgICAgICBp
ZiAoIWZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5jYW5TaG93TUlNRVR5cGUobWltZVR5cGUpIHx8
IGlzUmVtb3RlV2ViQXJjaGl2ZSkgewogICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+cG9saWN5
Q2hlY2tlcigpLT5jYW5ub3RTaG93TUlNRVR5cGUocik7CiAgICAgICAgICAgICAvLyBDaGVjayBy
ZWFjaGVkVGVybWluYWxTdGF0ZSBzaW5jZSB0aGUgbG9hZCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4g
Y2FuY2VsZWQgaW5zaWRlIG9mIF9oYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3lXaXRoRXJyb3JD
b2RlOjouCi0gICAgICAgICAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0gICAgICAg
ICAgICAgICAgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKKyAgICAgICAgICAgIHN0b3BM
b2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgY2FzZSBQb2xpY3lEb3dubG9hZDogewotICAg
ICAgICAvLyBtX2hhbmRsZSBjYW4gYmUgbnVsbCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0
dXRlIHJlc291cmNlIGZyb20gYXBwbGljYXRpb24gY2FjaGUuCi0gICAgICAgIGlmICghbV9oYW5k
bGUpIHsKLSAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VSTEVycm9yKCkpOwor
ICAgICAgICAvLyBtX3Jlc291cmNlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBhIHN1
YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KKyAgICAgICAgaWYgKCFt
X3Jlc291cmNlKSB7CisgICAgICAgICAgICByZWNlaXZlZEVycm9yKGZyYW1lTG9hZGVyKCktPmNs
aWVudCgpLT5jYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCgpKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51
ZVdpdGhQb2xpY3lEb3dubG9hZChtX2ZyYW1lLmdldCgpLCBkb2N1bWVudExvYWRlcigpLCBpZGVu
dGlmaWVyKCksIHIpOwpAQCAtMjk3LDcgKzMxMiw3IEBACiAgICAgICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0ID0gdGhpcy0+cmVxdWVzdCgpOwogICAgICAgICBmcmFtZUxvYWRlcigpLT5zZXRP
cmlnaW5hbFVSTEZvckRvd25sb2FkUmVxdWVzdChyZXF1ZXN0KTsKIAotICAgICAgICBmcmFtZUxv
YWRlcigpLT5jbGllbnQoKS0+ZG93bmxvYWQobV9oYW5kbGUuZ2V0KCksIHJlcXVlc3QsIHIpOwor
ICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZG93bmxvYWQobV9yZXNvdXJjZS0+bG9h
ZGVyKCktPmhhbmRsZSgpLCByZXF1ZXN0LCByKTsKIAogICAgICAgICAvLyBJdCBtaWdodCBoYXZl
IGdvbmUgbWlzc2luZwogICAgICAgICBpZiAoZnJhbWVMb2FkZXIoKSkKQEAgLTMyOSwxNCArMzQ0
LDEwIEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyB3ZSBtYXkgaGF2ZSBjYW5jZWxsZWQg
dGhpcyBsb2FkIGFzIHBhcnQgb2Ygc3dpdGNoaW5nIHRvIGZhbGxiYWNrIGNvbnRlbnQKLSAgICBp
ZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0gICAgICAgIFJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlUmVzcG9uc2Uocik7Ci0KLSAgICBpZiAoZnJhbWVMb2FkZXIoKSAmJiAhZnJhbWVMb2Fk
ZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+aXNTdG9wcGluZygpICYmIG1fc3Vic3RpdHV0
ZURhdGEuaXNWYWxpZCgpKSB7CisgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3BwaW5n
KCkgJiYgbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKICAgICAgICAgaWYgKG1fc3Vic3Rp
dHV0ZURhdGEuY29udGVudCgpLT5zaXplKCkpCi0gICAgICAgICAgICBkaWRSZWNlaXZlRGF0YSht
X3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+ZGF0YSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRl
bnQoKS0+c2l6ZSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpLCB0cnVlKTsK
LSAgICAgICAgaWYgKGZyYW1lTG9hZGVyKCkgJiYgIWZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3Vt
ZW50TG9hZGVyKCktPmlzU3RvcHBpbmcoKSkgCisgICAgICAgICAgICBkYXRhUmVjZWl2ZWQoMCwg
bV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250
ZW50KCktPnNpemUoKSk7CisgICAgICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGlu
ZygpKQogICAgICAgICAgICAgZGlkRmluaXNoTG9hZGluZygwKTsKICAgICB9CiB9CkBAIC0zNTAs
MTMgKzM2MSwxNCBAQAogewogICAgIEFTU0VSVChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsK
ICAgICBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5ID0gZmFsc2U7Ci0gICAgaWYgKGZyYW1lTG9h
ZGVyKCkgJiYgIWZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBp
bmcoKSkKKyAgICBpZiAoIW1fZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSkKICAgICAgICAg
Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3kocG9saWN5LCBtX3Jlc3BvbnNlKTsKLSAgICBkZXJl
ZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gZGlkUmVjZWl2ZVJlc3BvbnNlCisgICAgZGVyZWYoKTsg
Ly8gYmFsYW5jZXMgcmVmIGluIHJlc3BvbnNlUmVjZWl2ZWQKIH0KIAotdm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQor
dm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQogeworICAgIEFTU0VSVF9VTlVT
RUQocmVzb3VyY2UsIG1fcmVzb3VyY2UgPT0gcmVzb3VyY2UpOwogICAgIGlmIChkb2N1bWVudExv
YWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5S
ZXNwb25zZShyZXF1ZXN0KCksIHIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTM3NCwxNSArMzg2
LDkgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0
d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFy
ZSBkZWZlcnJlZC4KLSAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3Jl
IGRldGFpbHMuCi0jaWYgIVVTRShDRikKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0j
ZW5kaWYKLQogICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KSB7CiAgICAgICAgIG1f
ZG9jdW1lbnRMb2FkZXItPnNldHVwRm9yUmVwbGFjZSgpOwotICAgICAgICBjbGVhclJlc291cmNl
RGF0YSgpOworICAgICAgICBtX3Jlc291cmNlLT5jbGVhcigpOwogICAgIH0KICAgICAKICAgICBp
ZiAoci5pc011bHRpcGFydCgpKQpAQCAtMzk4LDEyICs0MDQsMTAgQEAKIAogICAgIEFTU0VSVCgh
bV93YWl0aW5nRm9yQ29udGVudFBvbGljeSk7CiAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGlj
eSA9IHRydWU7Ci0gICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRpbnVlQWZ0
ZXJDb250ZW50UG9saWN5IGFuZCBkaWRDYW5jZWwKKyAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkg
ZGVyZWYgaW4gY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kgYW5kIGNhbmNlbAogCi0gICAgQVNT
RVJUKGZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkpOwotCiAgICAgLy8gQWx3
YXlzIHNob3cgY29udGVudCB3aXRoIHZhbGlkIHN1YnN0aXR1dGUgZGF0YS4KLSAgICBpZiAoZnJh
bWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+c3Vic3RpdHV0ZURhdGEoKS5pc1Zh
bGlkKCkpIHsKKyAgICBpZiAobV9kb2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5pc1Zh
bGlkKCkpIHsKICAgICAgICAgY2FsbENvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHRoaXMsIFBv
bGljeVVzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00MjUsMjggKzQyOSwxMyBAQAog
ICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1f
cmVzcG9uc2UsIGNhbGxDb250aW51ZUFmdGVyQ29udGVudFBvbGljeSwgdGhpcyk7CiB9CiAKLXZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBp
bnQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKQor
dm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGRhdGEp
OwogICAgIEFTU0VSVChsZW5ndGggIT0gMCk7Ci0KKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNl
LCByZXNvdXJjZSA9PSBtX3Jlc291cmNlKTsKICAgICBBU1NFUlQoIW1fcmVzcG9uc2UuaXNOdWxs
KCkpOwogCi0jaWYgVVNFKENGTkVUV09SSykgfHwgUExBVEZPUk0oTUFDKQotICAgIC8vIFdvcmth
cm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS82MDYwNzgyPgotICAgIGlmIChtX3Jlc3BvbnNlLmlz
TnVsbCgpKSB7Ci0gICAgICAgIG1fcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKEtVUkwoKSwg
InRleHQvaHRtbCIsIDAsIFN0cmluZygpLCBTdHJpbmcoKSk7Ci0gICAgICAgIGlmIChEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExv
YWRlcigpKQotICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXItPnNldFJlc3BvbnNlKG1fcmVzcG9u
c2UpOwotICAgIH0KLSNlbmRpZgotCi0gICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gQ0ZOZXR3b3Jr
IHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUgZGlzcGF0Y2hlZCBldmVuIHdoZW4gbG9hZHMgYXJlIGRl
ZmVycmVkLgotICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNjMwNDYwMD4gZm9yIG1vcmUgZGV0
YWlscy4KLSNpZiAhVVNFKENGKQotICAgIEFTU0VSVCghZGVmZXJzTG9hZGluZygpKTsKLSNlbmRp
ZgotCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICBpZiAobV9maWx0ZXIpIHsKICAgICAgICAg
QVNTRVJUKCF3a0ZpbHRlcldhc0Jsb2NrZWQobV9maWx0ZXIpKTsKQEAgLTQ1NCwyNCArNDQzLDIy
IEBACiAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYmxvY2tlZERhdGEsIHRoYXQgbWVhbnMg
d2UncmUgc3RpbGwgYWNjdW11bGF0aW5nIGRhdGEKICAgICAgICAgaWYgKCFibG9ja2VkRGF0YSkg
ewogICAgICAgICAgICAgLy8gVHJhbnNpdGlvbiB0byBjb21taXR0ZWQgc3RhdGUuCi0gICAgICAg
ICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoIiIsIDAsIDAsIGZhbHNlKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YSgwLCAwKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGRhdGEgPSBibG9ja2VkRGF0YTsKLSAg
ICAgICAgZW5jb2RlZERhdGFMZW5ndGggPSAtMTsKICAgICB9CiAjZW5kaWYKIAotICAgIGRvY3Vt
ZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNl
aXZlZChkYXRhLCBsZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOworICAgIGRv
Y3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFS
ZWNlaXZlZChkYXRhLCBsZW5ndGgsIC0xLCBmYWxzZSk7CiAKICAgICAvLyBUaGUgYWRkaXRpb25h
bCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3Zpbmcg
dGhlIGxhc3QKICAgICAvLyByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9m
IHRoaXMgaXMgMzI2NjIxNi4KICAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0
KHRoaXMpOwotCiAgICAgbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkID0gbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCk7CiAKLSAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoZGF0
YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsKKyAgICBkb2N1bWVudExv
YWRlcigpLT5yZWNlaXZlZERhdGEoZGF0YSwgbGVuZ3RoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykg
JiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDgwCiAgICAgaWYgKFdlYkZpbHRlckV2YWx1YXRvciAqZmlsdGVyID0gbV9maWx0ZXIpIHsKQEAg
LTQ4OSwxMiArNDc2LDYgQEAKIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCiB7Ci0gICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gQ0ZO
ZXR3b3JrIHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUgZGlzcGF0Y2hlZCBldmVuIHdoZW4gbG9hZHMg
YXJlIGRlZmVycmVkLgotICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNjMwNDYwMD4gZm9yIG1v
cmUgZGV0YWlscy4KLSNpZiAhVVNFKENGKQotICAgIEFTU0VSVCghZGVmZXJzTG9hZGluZygpIHx8
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNEZWJ1Z2dlclBhdXNlZChtX2ZyYW1lLmdldCgp
KSk7Ci0jZW5kaWYKLQogICAgIC8vIFRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFu
eXRoaW5nIGluY2x1ZGluZyBwb3NzaWJseSByZW1vdmluZyB0aGUgbGFzdAogICAgIC8vIHJlZmVy
ZW5jZSB0byB0aGlzIG9iamVjdC4KICAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90
ZWN0KHRoaXMpOwpAQCAtNTA4LDcgKzQ4OSw3IEBACiAgICAgICAgIC8vIFJlbW92ZSB0aGlzLT5t
X2ZpbHRlciBlYXJseSBzbyBkaWRSZWNlaXZlRGF0YSBkb2Vzbid0IHNlZSBpdC4KICAgICAgICAg
bV9maWx0ZXIgPSAwOwogICAgICAgICBpZiAoZGF0YSkKLSAgICAgICAgICAgIGRpZFJlY2VpdmVE
YXRhKGRhdGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKKyAgICAgICAgICAgIGRhdGFSZWNlaXZlZCht
X3Jlc291cmNlLmdldCgpLCBkYXRhLCBsZW5ndGgpOwogICAgICAgICB3a0ZpbHRlclJlbGVhc2Uo
ZmlsdGVyKTsKICAgICB9CiAjZW5kaWYKQEAgLTUxOCwxMyArNDk5LDE4IEBACiAKICAgICBkb2N1
bWVudExvYWRlcigpLT50aW1pbmcoKS0+c2V0UmVzcG9uc2VFbmQoZmluaXNoVGltZSA/IGZpbmlz
aFRpbWUgOiAobV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkID8gbV90aW1lT2ZMYXN0RGF0YVJlY2Vp
dmVkIDogbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpKTsKICAgICBkb2N1bWVudExvYWRl
cigpLT5maW5pc2hlZExvYWRpbmcoKTsKLSAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9h
ZGluZyhmaW5pc2hUaW1lKTsKIAogICAgIGRsLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5maW5p
c2hlZExvYWRpbmdNYWluUmVzb3VyY2UoKTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogeworICAgIEFT
U0VSVF9VTlVTRUQocmVzb3VyY2UsIG1fcmVzb3VyY2UgPT0gcmVzb3VyY2UpOworICAgIGlmICgh
bV9yZXNvdXJjZSB8fCAoIW1fcmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiAhbV9yZXNvdXJj
ZS0+d2FzQ2FuY2VsZWQoKSkpIHsKKyAgICAgICAgZGlkRmluaXNoTG9hZGluZyhtX3Jlc291cmNl
LT5sb2FkRmluaXNoVGltZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogI2lmIFBMQVRG
T1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDgwCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIHdrRmlsdGVyUmVsZWFz
ZShtX2ZpbHRlcik7CkBAIC01MzIsMTQgKzUxOCw5IEBACiAgICAgfQogI2VuZGlmCiAKKyAgICBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IG1fcmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKTsK
ICAgICBpZiAoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVM
b2FkRmFsbGJhY2tGb3JNYWluRXJyb3IocmVxdWVzdCgpLCBlcnJvcikpCiAgICAgICAgIHJldHVy
bjsKLQotICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0d29yayB3aGVyZSBjYWxsYmFja3Mg
Y2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBkZWZlcnJlZC4KLSAgICAvLyBT
ZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRldGFpbHMuCi0jaWYgIVVTRShD
RikKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0jZW5kaWYKICAgICAKICAgICByZWNl
aXZlZEVycm9yKGVycm9yKTsKIH0KQEAgLTU0Nyw3ICs1MjgsNiBAQAogdm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpMb2FkZXIpOwotICAgIFJlc291cmNlTG9hZGVy
OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1lbWJl
cihtX2luaXRpYWxSZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3N1YnN0aXR1dGVEYXRh
KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2RhdGFMb2FkVGltZXIpOwpAQCAtNTY2LDcgKzU0Niw3
IEBACiAgICAgbV9pbml0aWFsUmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCgpOwogICAgICAgICAK
ICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHVybCwgbV9zdWJzdGl0dXRlRGF0YS5taW1l
VHlwZSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpLCBtX3N1YnN0aXR1dGVE
YXRhLnRleHRFbmNvZGluZygpLCAiIik7Ci0gICAgZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNl
KTsKKyAgICByZXNwb25zZVJlY2VpdmVkKDAsIHJlc3BvbnNlKTsKIH0KIAogdm9pZCBNYWluUmVz
b3VyY2VMb2FkZXI6OnN0YXJ0RGF0YUxvYWRUaW1lcigpCkBAIC01ODksMjkgKzU2OSw4IEBACiAg
ICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdygwKTsKIH0KIAotdm9pZCBNYWluUmVz
b3VyY2VMb2FkZXI6OmxvYWROb3coUmVzb3VyY2VSZXF1ZXN0JiByKQotewotICAgIEFTU0VSVCgh
bV9oYW5kbGUpOwotICAgIEFTU0VSVCghZGVmZXJzTG9hZGluZygpKTsKLQotI2lmIFVTRShQTEFU
Rk9STV9TVFJBVEVHSUVTKQotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVn
eSgpLT5yZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+YWRkTWFpblJlc291cmNlTG9hZCh0aGlzKTsK
LSNlbHNlCi0gICAgcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPmFkZE1haW5SZXNvdXJjZUxvYWQo
dGhpcyk7Ci0jZW5kaWYKLQotICAgIGlmIChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkKLSAg
ICAgICAgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29vbihyKTsKLSAgICBlbHNlCi0gICAgICAg
IG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0
d29ya2luZ0NvbnRleHQoKSwgciwgdGhpcywgZmFsc2UsIHRydWUpOwotCi0gICAgcmV0dXJuOwot
fQotCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHIsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKIHsKLSAgICBBU1NFUlQo
IW1faGFuZGxlKTsKLQogICAgIC8vIEl0IGFwcGVhcnMgdGhhdCBpdCBpcyBwb3NzaWJsZSBmb3Ig
dGhpcyBsb2FkIHRvIGJlIGNhbmNlbGxlZCBhbmQgZGVyZWZlbmNlZCBieSB0aGUgRG9jdW1lbnRM
b2FkZXIKICAgICAvLyBpbiB3aWxsU2VuZFJlcXVlc3QoKSBpZiBsb2FkTm93KCkgaXMgY2FsbGVk
LgogICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IHByb3RlY3QodGhpcyk7CkBAIC02Mjks
MzcgKzU4OCw1OSBAQAogICAgIHdpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCBSZXNvdXJjZVJlc3Bv
bnNlKCkpOwogICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKIAotICAgIC8vIDxyZGFy
Oi8vcHJvYmxlbS80ODAxMDY2PgotICAgIC8vIHdpbGxTZW5kUmVxdWVzdCgpIGlzIGxpYWJsZSB0
byBtYWtlIHRoZSBjYWxsIHRvIGZyYW1lTG9hZGVyKCkgcmV0dXJuIG51bGwsIHNvIHdlIG5lZWQg
dG8gY2hlY2sgdGhhdCBoZXJlCi0gICAgaWYgKCFmcmFtZUxvYWRlcigpIHx8IHJlcXVlc3QuaXNO
dWxsKCkpIHsKLSAgICAgICAgaWYgKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKQotICAgICAgICAg
ICAgcmVsZWFzZVJlc291cmNlcygpOworICAgIC8vIHdpbGxTZW5kUmVxdWVzdCgpIG1heSBsZWFk
IHRvIG91ciBEb2N1bWVudExvYWRlciBiZWluZyBkZXRhY2hlZCBvciBjYW5jZWxsaW5nIHRoZSBs
b2FkIHZpYSBudWxsaW5nIHRoZSBSZXNvdXJjZVJlcXVlc3QuCisgICAgaWYgKCFkb2N1bWVudExv
YWRlcigpLT5mcmFtZSgpIHx8IHJlcXVlc3QuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICB9CiAKICAgICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXli
ZUxvYWRNYWluUmVzb3VyY2UocmVxdWVzdCwgbV9zdWJzdGl0dXRlRGF0YSk7CiAKLSAgICBpZiAo
ZGVmZXJzTG9hZGluZygpKQotICAgICAgICBtX2luaXRpYWxSZXF1ZXN0ID0gcmVxdWVzdDsKLSAg
ICBlbHNlCi0gICAgICAgIGxvYWROb3cocmVxdWVzdCk7CisgICAgY29uc3QgS1VSTCYgdXJsID0g
ci51cmwoKTsKKworICAgIGlmIChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkKKyAgICAgICAg
aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29vbihyKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hlZFJlc291cmNlUmVxdWVzdChyZXF1ZXN0LCBSZXNvdXJj
ZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLAor
ICAgICAgICAgICAgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NPcmln
aW5DcmVkZW50aWFscywgU2tpcFNlY3VyaXR5Q2hlY2spKTsKKyAgICAgICAgbV9yZXNvdXJjZSA9
IGRvY3VtZW50TG9hZGVyKCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RNYWluUmVz
b3VyY2UoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KTsKKyAgICAgICAgaWYgKCFtX3Jlc291cmNlKSB7
CisgICAgICAgICAgICBkb2N1bWVudExvYWRlcigpLT5zZXRSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3Jlc291cmNl
LT5hZGRDbGllbnQodGhpcyk7CisKKyAgICAgICAgLy8gV2UgbmVlZCB0byB3YWl0IHVudGlsIGFm
dGVyIHJlcXVlc3RNYWluUmVzb3VyY2UoKSBpcyBjYWxsZWQgdG8gc2V0UmVxdWVzdCgpLCBiZWNh
dXNlIHRoZXJlIGFyZSBhIGJ1bmNoIG9mIGhlYWRlcnMgc2V0IHdoZW4KKyAgICAgICAgLy8gdGhl
IHVuZGVybHlpbmcgUmVzb3VyY2VMb2FkZXIgaXMgY3JlYXRlZCwgYW5kIERvY3VtZW50TG9hZGVy
OjptX3JlcXVlc3QgbmVlZHMgdG8gaW5jbHVkZSB0aG9zZS4gSG93ZXZlciwgdGhlIGNhY2hlIHdp
bGwKKyAgICAgICAgLy8gc3RyaXAgdGhlIGZyYWdtZW50IGlkZW50aWZpZXIgKHdoaWNoIERvY3Vt
ZW50TG9hZGVyOjptX3JlcXVlc3Qgc2hvdWxkIGFsc28gaW5jbHVkZSksIHNvIGFkZCB0aGF0IGJh
Y2sgaW4uCisgICAgICAgIGlmIChsb2FkZXIoKSkKKyAgICAgICAgICAgIHJlcXVlc3QgPSBsb2Fk
ZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCk7CisgICAgICAgIGlmICh1cmwgIT0gcmVxdWVzdC51cmwo
KSkKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgICAgIGRvY3VtZW50TG9h
ZGVyKCktPnNldFJlcXVlc3QocmVxdWVzdCk7CisgICAgfQogfQogCiB2b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKIHsKLSAgICBSZXNvdXJjZUxv
YWRlcjo6c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOworICAgIGlmIChsb2FkZXIoKSkKKyAgICAg
ICAgbG9hZGVyKCktPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKK30KIAotICAgIGlmIChkZWZl
cnMpIHsKLSAgICAgICAgaWYgKG1fZGF0YUxvYWRUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAg
ICAgbV9kYXRhTG9hZFRpbWVyLnN0b3AoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAobV9p
bml0aWFsUmVxdWVzdC5pc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybjsKK3ZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpzZXRTaG91bGRCdWZmZXJEYXRhKERhdGFCdWZmZXJpbmdQb2xpY3kgc2hv
dWxkQnVmZmVyRGF0YSkKK3sKKyAgICBBU1NFUlQobV9yZXNvdXJjZSk7CisgICAgbV9yZXNvdXJj
ZS0+c2V0U2hvdWxkQnVmZmVyRGF0YShzaG91bGRCdWZmZXJEYXRhKTsKK30KIAotICAgICAgICBS
ZXNvdXJjZVJlcXVlc3QgaW5pdGlhbFJlcXVlc3QobV9pbml0aWFsUmVxdWVzdCk7Ci0gICAgICAg
IG1faW5pdGlhbFJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAgICAgbG9hZE5vdyhp
bml0aWFsUmVxdWVzdCk7Ci0gICAgfQorUmVzb3VyY2VMb2FkZXIqIE1haW5SZXNvdXJjZUxvYWRl
cjo6bG9hZGVyKCkgY29uc3QKK3sgCisgICAgcmV0dXJuIG1fcmVzb3VyY2UgPyBtX3Jlc291cmNl
LT5sb2FkZXIoKSA6IDA7CiB9CiAKK3Vuc2lnbmVkIGxvbmcgTWFpblJlc291cmNlTG9hZGVyOjpp
ZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBpZiAoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9h
ZGVyID0gbG9hZGVyKCkpCisgICAgICAgIHJldHVybiByZXNvdXJjZUxvYWRlci0+aWRlbnRpZmll
cigpOworICAgIHJldHVybiAwOwogfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TWFpblJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAxMzYwNDQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDggQEAKICNpZm5kZWYgTWFpblJlc291cmNlTG9hZGVyX2gKICNkZWZpbmUgTWFpblJlc291cmNl
TG9hZGVyX2gKIAorI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VM
b2FkZXIuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRlRGF0YS5oIgpAQCAtNDksNDAgKzUxLDQyIEBA
CiBjbGFzcyBGb3JtU3RhdGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKLWNsYXNzIE1haW5S
ZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZXNvdXJjZUxvYWRlciB7CitjbGFzcyBNYWluUmVzb3Vy
Y2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNYWluUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMg
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gY3JlYXRl
KEZyYW1lKik7CiAgICAgdmlydHVhbCB+TWFpblJlc291cmNlTG9hZGVyKCk7CiAKICAgICB2b2lk
IGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiwgaW50LCBib29sIGFsbEF0T25jZSkg
T1ZFUlJJREU7CisgICAgdm9pZCBjYW5jZWwoKTsKKyAgICB2b2lkIGNhbmNlbChjb25zdCBSZXNv
dXJjZUVycm9yJik7CisgICAgUmVzb3VyY2VMb2FkZXIqIGxvYWRlcigpIGNvbnN0OworICAgIFBh
c3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IHJlc291cmNlRGF0YSgpOwogCi0gICAgdmlydHVhbCB2
b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCkgT1ZFUlJJREU7CisgICAgdm9pZCBzZXREZWZlcnNM
b2FkaW5nKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVmZmVyaW5n
UG9saWN5KTsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNo
YXIqLCBpbnQsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hU
aW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVy
cm9yJikgT1ZFUlJJREU7Ci0KICNpZiBIQVZFKFJVTkxPT1BfVElNRVIpCiAgICAgdHlwZWRlZiBS
dW5Mb29wVGltZXI8TWFpblJlc291cmNlTG9hZGVyPiBNYWluUmVzb3VyY2VMb2FkZXJUaW1lcjsK
ICNlbHNlCiAgICAgdHlwZWRlZiBUaW1lcjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNvdXJj
ZUxvYWRlclRpbWVyOwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBj
b25zdDsKICAgICBib29sIGlzTG9hZGluZ011bHRpcGFydENvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworICAgIHZvaWQg
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IE1haW5SZXNvdXJjZUxvYWRlcihGcmFtZSopOwogCi0gICAgdmlydHVhbCB2
b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCByZWRpcmVjdFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZpcnR1YWwgdm9pZCByZXNwb25z
ZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAg
IHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgZGF0YUxlbmd0aCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlKik7CiAKLSAgICB2b2lkIGxvYWROb3coUmVzb3VyY2VSZXF1ZXN0Jik7Ci0K
KyAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmco
ZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29v
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRsZVN1YnN0aXR1dGVEYXRh
TG9hZE5vdyhNYWluUmVzb3VyY2VMb2FkZXJUaW1lciopOwogCkBAIC0xMDQsMTAgKzEwOCwyMSBA
QAogICAgIHZvaWQgc3Vic3RpdHV0ZU1JTUVUeXBlRnJvbVBsdWdpbkRhdGFiYXNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKTsKICNlbmRpZgogCisgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVy
KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCk7IH0KKyAgICBEb2N1bWVudExvYWRl
ciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50TG9hZGVyLmdldCgp
OyB9CisKKyAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdDsKKyAgICB2
b2lkIGNsZWFyUmVzb3VyY2UoKTsKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJh
d1Jlc291cmNlPiBtX3Jlc291cmNlOworCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1faW5pdGlhbFJl
cXVlc3Q7CiAgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0YTsKKyAgICBSZXNvdXJj
ZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAKICAgICBNYWluUmVzb3VyY2VMb2FkZXJUaW1lciBtX2Rh
dGFMb2FkVGltZXI7CisgICAgUmVmUHRyPEZyYW1lPiBtX2ZyYW1lOworICAgIFJlZlB0cjxEb2N1
bWVudExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsKIAogICAgIGJvb2wgbV9sb2FkaW5nTXVsdGlw
YXJ0Q29udGVudDsKICAgICBib29sIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3k7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAkocmV2
aXNpb24gMTM2MDQ0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRl
ck1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1LDggQEAKIAogdm9pZCBEb2N1bWVu
dExvYWRlcjo6c2NoZWR1bGUoU2NoZWR1bGVQYWlyKiBwYWlyKQogewotICAgIGlmIChtX21haW5S
ZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkpCi0gICAgICAg
IG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+c2NoZWR1bGUocGFpcik7CisgICAgaWYg
KG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKSAm
JiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpKQorICAgICAgICBtX21h
aW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpLT5zY2hlZHVsZShwYWlyKTsKICAg
ICBzY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAgICAgc2NoZWR1bGVB
bGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX211bHRp
cGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkBAIC02NCw4ICs2NCw4IEBACiAKIHZvaWQg
RG9jdW1lbnRMb2FkZXI6OnVuc2NoZWR1bGUoU2NoZWR1bGVQYWlyKiBwYWlyKQogewotICAgIGlm
IChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkp
Ci0gICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+dW5zY2hlZHVsZShwYWly
KTsKKyAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXIt
PmxvYWRlcigpICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+aGFuZGxlKCkpCisg
ICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+aGFuZGxlKCktPnVuc2NoZWR1
bGUocGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7
CiAgICAgdW5zY2hlZHVsZUFsbChtX3BsdWdJblN0cmVhbUxvYWRlcnMsIHBhaXIpOwogICAgIHVu
c2NoZWR1bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUhvc3QuY3BwCShyZXZpc2lvbiAxMzYwNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMs
NyArMTAzLDcgQEAKICAgICAgICAgaWYgKGlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKSkgewog
ICAgICAgICAgICAgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlID0gQXBwbGljYXRpb25D
YWNoZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9yTWFpblJlcXVlc3QocmVxdWVzdCwgZG9jdW1lbnRM
b2FkZXIoKSk7CiAKLSAgICAgICAgICAgIGlmIChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNl
RnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVy
KCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCisgICAgICAgICAgICBp
ZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3Vt
ZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5sb2FkZXIoKSwgbV9tYWluUmVzb3Vy
Y2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTExNyw3ICsxMTcsNyBAQAogICAgICAgICBpZiAoaXNBcHBs
aWNhdGlvbkNhY2hlRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxp
Y2F0aW9uQ2FjaGUgPSBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWlu
UmVxdWVzdChyZXF1ZXN0LCBtX2RvY3VtZW50TG9hZGVyKTsKIAotICAgICAgICAgICAgaWYgKHNj
aGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExv
YWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNh
Y2hlLmdldCgpKSkKKyAgICAgICAgICAgIGlmIChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNl
RnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVy
KCktPmxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTM2MDcxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTItMTEtMjggIE5hdGUgQ2hhcGluICA8amFwaGV0
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSb3V0ZSBtYWluIHJlc291cmNlIGxvYWRzIHRocm91
Z2ggdGhlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ5MjQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgcGF0Y2ggZG9lc24ndCBhY3R1YWxseSBlbmFibGUg
Y2FjaGluZyBvZiBtYWluIHJlc291cmNlcy4gVGhhdCB3aWxsIGJlIGRvbmUgaW4gYSBsYXRlciBw
YXRjaC4KKyAgICAgICAgVGhlIE1haW5SZXNvdXJjZUxvYWRlciBhY3R1YWxseSBoYXMgYW4gdW5k
ZXJseWluZyBTdWJyZXNvdXJjZUxvYWRlciAod2l0aCB0aGUgY2FjaGUgbGF5ZXIgYmV0d2VlbiB0
aGVtKS4KKyAgICAgICAgSW4gc2V2ZXJhbCBwbGFjZXMsIHRoZSBNYWluUmVzb3VyY2VMb2FkZXIn
cyBTdWJyZXNvdXJjZUxvYWRlciBpcyB0cmVhdGVkIGFzIHNwZWNpYWwuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBhcyB0aGlzIGlzIHByaW1hcmlseSBhIHJlZmFjdG9yLiBBIGNvdXBsZSBvZiBl
eHBlY3RlZCByZXN1bHRzIGNoYW5nZWQgc2xpZ2h0bHkuCisKKyAgICAgICAgKiBsb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnNldFJl
cXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmFkZFN1YnJlc291cmNl
TG9hZGVyKTogQmVjYXVzZSB0aGUgU3VicmVzb3VyY2VMb2FkZXIgdW5kZXJseWluZyB0aGUgbWFp
biByZXNvdXJjZQorICAgICAgICAgICAgbmVlZHMgc3BlY2lhbCBoYW5kbGluZyBpbiBjZXJ0YWlu
IGNhc2VzLCB0cmFjayBpdCBzZXBhcmF0ZWx5IGZyb20gdGhlIHJlYWwgU3VicmVzb3VyY2VMb2Fk
ZXJzLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlbW92ZVN1YnJlc291cmNl
TG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6cmVjZWl2ZWRFcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJD
b3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyTmF2aWdhdGlv
blBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlc291cmNl
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlZGlyZWN0UmVj
ZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJl
cXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFm
dGVyQ29udGVudFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6
OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
OjpkYXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6
bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6
OmhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
OjpzZXREZWZlcnNMb2FkaW5nKTogTG9hZCBkZWZlcnJhbCBpcyBub3cgZGVsZWdhdGVkIHRvIHRo
ZSB1bmRlcmx5aW5nIFN1YnJlc291cmNlTG9hZGVyLgorICAgICAgICAgICAgRnJvbSB0aGUgTWFp
blJlc291cmNlTG9hZGVyJ3MgcGVyc3BlY3RpdmUsIHRoZSBsb2FkIGlzIGFsd2F5cyBzdGFydGVk
IGltbWVkaWF0ZWx5LiBBcyBzdWNoLCBhbGwgY2FzZXMgaW52b2x2aW5nCisgICAgICAgICAgICBh
IGRlZmVyc0xvYWRpbmcoKSBjaGVjayBhcmUgdHJlYXRlZCBhcyBhbHdheXMgcmV0dXJuaW5nIGZh
bHNlIGFuZCByZW1vdmVkIGlmIGFwcHJvcHJpYXRlLgorICAgICAgICAoV2ViQ29yZTo6TWFpblJl
c291cmNlTG9hZGVyOjpzZXRTaG91bGRCdWZmZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1h
aW5SZXNvdXJjZUxvYWRlcjo6bG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6aWRlbnRpZmllcik6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5oOgorICAgICAgICAoTWFpblJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1h
aW5SZXNvdXJjZUxvYWRlcjo6ZnJhbWVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJl
c291cmNlTG9hZGVyOjpkb2N1bWVudExvYWRlcik6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjp3aWxs
U2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
SG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVM
b2FkRmFsbGJhY2tGb3JNYWluUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRp
b25DYWNoZUhvc3Q6Om1heWJlTG9hZEZhbGxiYWNrRm9yTWFpbkVycm9yKToKKyAgICAgICAgKiBs
b2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFyY2hpdmU6OmFk
ZFN1YnJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxvYWRlci9hcmNo
aXZlL0FyY2hpdmUuaDoKKyAgICAgICAgKEFyY2hpdmUpOgorICAgICAgICAqIGxvYWRlci9tYWMv
RG9jdW1lbnRMb2FkZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6
OnNjaGVkdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjp1bnNjaGVkdWxl
KToKKwogMjAxMi0xMS0yOCAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgSW5kZXhlZERCOiBDaGFuZ2UgZnJvbnRlbmQgdG8gY2FsbCBJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U6OmNyZWF0ZVRyYW5zYWN0aW9uKCkKSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0
bWwJKHJldmlzaW9uIDEzNjA0NCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBA
QAogICAgIGZ1bmN0aW9uIG9uUmVxdWVzdEZpbmlzaGVkKGV2ZW50KQogICAgIHsKICAgICAgICAg
dmFyIHJlcXVlc3QgPSBldmVudC5kYXRhOwotICAgICAgICBpZiAocmVxdWVzdC51cmwgIT09ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2k/
cXVlcnlQYXJhbTE9cXVlcnlWYWx1ZTEmcXVlcnlQYXJhbTI9I2ZyYWdtZW50UGFyYW0xPWZyYWdt
ZW50VmFsdWUxJmZyYWdtZW50UGFyYW0yPSIpCisgICAgICAgIGlmIChyZXF1ZXN0LnVybCAhPT0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNn
aT9xdWVyeVBhcmFtMT1xdWVyeVZhbHVlMSZxdWVyeVBhcmFtMj0iKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChuZXcgV2ViSW5zcGVjdG9yLkhB
UkVudHJ5KHJlcXVlc3QpLmJ1aWxkKCksIEluc3BlY3RvclRlc3QuSEFSUHJvcGVydHlGb3JtYXR0
ZXJzKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24t
cmVkaXJlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxMzYwNDQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
d2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKIDx1bmtub3duPiAtIGRpZEZpbmlzaExvYWRp
bmcKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRw
LXVybC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL3d3dy5l
eGFtcGxlLmNvbS8sIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNj
L3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC5odG1sLCBodHRwIG1l
dGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCwgaHR0cCBzdGF0
dXMgY29kZSAzMDI+CiBSZXR1cm5pbmcgbnVsbCBmb3IgdGhpcyByZWRpcmVjdAotaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRp
ZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gV2ViS2l0RXJyb3JEb21haW4s
IGNvZGUgMTAyPgoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0
LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21h
aW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5PgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI3NTk1CiBUaGlzIHRlc3QgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGF0
IHRoaW5ncyBiZWhhdmUgYXMgZXhwZWN0ZWQgd2hlbiB0aGUgcmVzb3VyY2UgbG9hZCBkZWxlZ2F0
ZSByZXR1cm5zIG51bGwgaW4gcmVzcG9uc2UgdG8gd2lsbFNlbmRSZXF1ZXN0LgogCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJl
cXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5k
LXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTM2MDQ0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNj
L3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8dW5rbm93bj4gLSBkaWRGaW5pc2hMb2Fk
aW5nCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0
cC11cmwucGhwIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly93d3cu
ZXhhbXBsZS5jb20vLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbCwgaHR0cCBt
ZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAsIGh0dHAgc3Rh
dHVzIGNvZGUgMzAyPgogUmV0dXJuaW5nIG51bGwgZm9yIHRoaXMgcmVkaXJlY3QKLWh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBk
aWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIFdlYktpdCwgY29kZSAtMTAw
MDAsIGZhaWxpbmcgVVJMICIobnVsbCkiPgoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVz
b3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9y
OiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVS
TCAiKG51bGwpIj4KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU5
NQogVGhpcyB0ZXN0IGNoZWNrcyB0byBtYWtlIHN1cmUgdGhhdCB0aGluZ3MgYmVoYXZlIGFzIGV4
cGVjdGVkIHdoZW4gdGhlIHJlc291cmNlIGxvYWQgZGVsZWdhdGUgcmV0dXJucyBudWxsIGluIHJl
c3BvbnNlIHRvIHdpbGxTZW5kUmVxdWVzdC4KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM2MDcxKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTItMTEtMjggIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSb3V0ZSBtYWluIHJlc291cmNlIGxvYWRzIHRocm91Z2ggdGhlIG1lbW9yeSBjYWNoZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MjQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWw6IFRoZSBtYWluIHJlc291cmNlJ3Mg
dXJsIHdpbGwgZXhjbHVkZSB0aGUgZnJhZ21lbnQgaWRlbnRpZmllciBoZXJlLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJl
Y3QtZXhwZWN0ZWQudHh0OiBUaGUgZXJyb3IgY29kZSBmb3IgbG9hZHMgY2FuY2VsbGVkCisgICAg
ICAgICAgICBieSBhbiBlbWJlZGRlcidzIHdpbGxTZW5kUmVxdWVzdCgpIHdpbGwgc2hvdyBhcyBz
dGFuZGFyZCBsb2FkIGNhbmNlbGxhdGlvbnMgcmF0aGVyIHRoYW4gYXMgYSBjb250ZW50IHBvbGlj
eQorICAgICAgICAgICAgZmFpbHVyZS4gVGhpcyB3YXMgYW4gb2RkIHF1aXJrIG9mIGhvdyBNYWlu
UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCgpIHdhcyBpbXBsZW1lbnRlZCAobmFtZWx5
LCBkb2luZyBhCisgICAgICAgICAgICBjb250ZW50IHBvbGljeSBjaGVjayBvbiBSZXNvdXJjZVJl
cXVlc3RzIHdpdGggZW1wdHkgdXJscykuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHR0
cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1l
eHBlY3RlZC50eHQ6IFNlZSBwcmV2aW91cy4KKwogMjAxMi0xMS0yOCAgVG9tIFNlcGV6ICA8dHNl
cGV6QGNocm9taXVtLm9yZz4KIAogICAgICAgICBYU1NBdWRpdG9yIGJ5cGFzcyB3aXRoIHNjcmlw
dCBzcmM9ZGF0YTogVVJMIGVuZGluZyBpbiA8IS0tCg==
</data>
<flag name="commit-queue"
          id="192452"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176829</attachid>
            <date>2012-11-29 15:16:39 -0800</date>
            <delta_ts>2012-11-30 16:24:15 -0800</delta_ts>
            <desc>Fix EWS failures</desc>
            <filename>cmr_1129.txt</filename>
            <type>text/plain</type>
            <size>37632</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1
cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVk
aXJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzYwNDQpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKIDx1bmtub3duPiAtIGRp
ZEZpbmlzaExvYWRpbmcKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRp
cmVjdC10by1odHRwLXVybC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwg
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8sIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC5o
dG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBo
cCwgaHR0cCBzdGF0dXMgY29kZSAzMDI+CiBSZXR1cm5pbmcgbnVsbCBmb3IgdGhpcyByZWRpcmVj
dAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAt
dXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gV2ViS2l0
RXJyb3JEb21haW4sIGNvZGUgMTAyPgoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3Vy
Y2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8
TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5PgogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NTk1CiBUaGlzIHRlc3QgY2hlY2tzIHRvIG1h
a2Ugc3VyZSB0aGF0IHRoaW5ncyBiZWhhdmUgYXMgZXhwZWN0ZWQgd2hlbiB0aGUgcmVzb3VyY2Ug
bG9hZCBkZWxlZ2F0ZSByZXR1cm5zIG51bGwgaW4gcmVzcG9uc2UgdG8gd2lsbFNlbmRSZXF1ZXN0
LgogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJh
bWV0ZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sCShyZXZpc2lvbiAxMzYwNDQpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTE3LDcgKzE3LDcgQEAKICAgICBmdW5jdGlvbiBvblJlcXVlc3RGaW5pc2hl
ZChldmVudCkKICAgICB7CiAgICAgICAgIHZhciByZXF1ZXN0ID0gZXZlbnQuZGF0YTsKLSAgICAg
ICAgaWYgKHJlcXVlc3QudXJsICE9PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5UGFyYW0xPXF1ZXJ5VmFsdWUxJnF1ZXJ5UGFy
YW0yPSNmcmFnbWVudFBhcmFtMT1mcmFnbWVudFZhbHVlMSZmcmFnbWVudFBhcmFtMj0iKQorICAg
ICAgICBpZiAocmVxdWVzdC51cmwgIT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2k/cXVlcnlQYXJhbTE9cXVlcnlWYWx1ZTEmcXVlcnlQ
YXJhbTI9IikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRP
YmplY3QobmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShyZXF1ZXN0KS5idWlsZCgpLCBJbnNwZWN0
b3JUZXN0LkhBUlByb3BlcnR5Rm9ybWF0dGVycyk7CiAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rl
c3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRw
L3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTM2MDQ0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1y
ZWRpcmVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8dW5r
bm93bj4gLSBkaWRGaW5pc2hMb2FkaW5nCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNv
dXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJl
cXVlc3QgVVJMIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vLCBtYWluIGRvY3VtZW50IFVSTCBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24t
cmVkaXJlY3QuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJl
c3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1o
dHRwLXVybC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgogUmV0dXJuaW5nIG51bGwgZm9yIHRo
aXMgcmVkaXJlY3QKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVj
dC10by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9t
YWluIFdlYktpdCwgY29kZSAtMTAwMDAsIGZhaWxpbmcgVVJMICIobnVsbCkiPgoraHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRp
ZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwg
Y29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwpIj4KIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNzU5NQogVGhpcyB0ZXN0IGNoZWNrcyB0byBtYWtlIHN1cmUgdGhh
dCB0aGluZ3MgYmVoYXZlIGFzIGV4cGVjdGVkIHdoZW4gdGhlIHJlc291cmNlIGxvYWQgZGVsZWdh
dGUgcmV0dXJucyBudWxsIGluIHJlc3BvbnNlIHRvIHdpbGxTZW5kUmVxdWVzdC4KIApJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTM2MDcxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTEtMjggIE5hdGUgQ2hhcGluICA8amFwaGV0QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSb3V0ZSBtYWluIHJlc291cmNlIGxvYWRzIHRocm91Z2gg
dGhlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ5MjQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWw6
IFRoZSBtYWluIHJlc291cmNlJ3MgdXJsIHdpbGwgZXhjbHVkZSB0aGUgZnJhZ21lbnQgaWRlbnRp
ZmllciBoZXJlLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1y
ZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBUaGUgZXJyb3IgY29kZSBmb3Ig
bG9hZHMgY2FuY2VsbGVkCisgICAgICAgICAgICBieSBhbiBlbWJlZGRlcidzIHdpbGxTZW5kUmVx
dWVzdCgpIHdpbGwgc2hvdyBhcyBzdGFuZGFyZCBsb2FkIGNhbmNlbGxhdGlvbnMgcmF0aGVyIHRo
YW4gYXMgYSBjb250ZW50IHBvbGljeQorICAgICAgICAgICAgZmFpbHVyZS4gVGhpcyB3YXMgYW4g
b2RkIHF1aXJrIG9mIGhvdyBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCgpIHdh
cyBpbXBsZW1lbnRlZCAobmFtZWx5LCBkb2luZyBhCisgICAgICAgICAgICBjb250ZW50IHBvbGlj
eSBjaGVjayBvbiBSZXNvdXJjZVJlcXVlc3RzIHdpdGggZW1wdHkgdXJscykuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVy
bnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQ6IFNlZSBwcmV2aW91cy4KKwogMjAxMi0x
MS0yOCAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KIAogICAgICAgICBYU1NBdWRp
dG9yIGJ5cGFzcyB3aXRoIHNjcmlwdCBzcmM9ZGF0YTogVVJMIGVuZGluZyBpbiA8IS0tCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMzYwNzEpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2NCBAQAorMjAxMi0xMS0yOCAgTmF0ZSBDaGFwaW4g
IDxqYXBoZXRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJvdXRlIG1haW4gcmVzb3VyY2UgbG9h
ZHMgdGhyb3VnaCB0aGUgbWVtb3J5IGNhY2hlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyBwYXRjaCBkb2Vzbid0IGFjdHVhbGx5
IGVuYWJsZSBjYWNoaW5nIG9mIG1haW4gcmVzb3VyY2VzLiBUaGF0IHdpbGwgYmUgZG9uZSBpbiBh
IGxhdGVyIHBhdGNoLgorICAgICAgICBUaGUgTWFpblJlc291cmNlTG9hZGVyIGFjdHVhbGx5IGhh
cyBhbiB1bmRlcmx5aW5nIFN1YnJlc291cmNlTG9hZGVyICh3aXRoIHRoZSBjYWNoZSBsYXllciBi
ZXR3ZWVuIHRoZW0pLgorICAgICAgICBJbiBzZXZlcmFsIHBsYWNlcywgdGhlIE1haW5SZXNvdXJj
ZUxvYWRlcidzIFN1YnJlc291cmNlTG9hZGVyIGlzIHRyZWF0ZWQgYXMgc3BlY2lhbC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgcHJpbWFyaWx5IGEgcmVmYWN0b3IuIEEgY291
cGxlIG9mIGV4cGVjdGVkIHJlc3VsdHMgY2hhbmdlZCBzbGlnaHRseS4KKworICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6c2V0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6YWRkU3Vi
cmVzb3VyY2VMb2FkZXIpOiBCZWNhdXNlIHRoZSBTdWJyZXNvdXJjZUxvYWRlciB1bmRlcmx5aW5n
IHRoZSBtYWluIHJlc291cmNlCisgICAgICAgICAgICBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nIGlu
IGNlcnRhaW4gY2FzZXMsIHRyYWNrIGl0IHNlcGFyYXRlbHkgZnJvbSB0aGUgcmVhbCBTdWJyZXNv
dXJjZUxvYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVtb3ZlU3Vi
cmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VMb2Fk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZWNlaXZlZEVycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y2FuY2VsKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y2xlYXJSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6
cmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6cmVk
aXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Ondp
bGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNv
bnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcpOiBMb2FkIGRlZmVycmFsIGlzIG5vdyBkZWxlZ2F0
ZWQgdG8gdGhlIHVuZGVybHlpbmcgU3VicmVzb3VyY2VMb2FkZXIuCisgICAgICAgICAgICBGcm9t
IHRoZSBNYWluUmVzb3VyY2VMb2FkZXIncyBwZXJzcGVjdGl2ZSwgdGhlIGxvYWQgaXMgYWx3YXlz
IHN0YXJ0ZWQgaW1tZWRpYXRlbHkuIEFzIHN1Y2gsIGFsbCBjYXNlcyBpbnZvbHZpbmcKKyAgICAg
ICAgICAgIGEgZGVmZXJzTG9hZGluZygpIGNoZWNrIGFyZSB0cmVhdGVkIGFzIGFsd2F5cyByZXR1
cm5pbmcgZmFsc2UgYW5kIHJlbW92ZWQgaWYgYXBwcm9wcmlhdGUuCisgICAgICAgIChXZWJDb3Jl
OjpNYWluUmVzb3VyY2VMb2FkZXI6OnNldFNob3VsZEJ1ZmZlckRhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFp
blJlc291cmNlTG9hZGVyOjppZGVudGlmaWVyKToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291
cmNlTG9hZGVyLmg6CisgICAgICAgIChNYWluUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNYWluUmVzb3VyY2VMb2FkZXI6OmRvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjptYXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluRXJyb3IpOgorICAg
ICAgICAqIGxvYWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXJj
aGl2ZTo6YWRkU3VicmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogbG9h
ZGVyL2FyY2hpdmUvQXJjaGl2ZS5oOgorICAgICAgICAoQXJjaGl2ZSk6CisgICAgICAgICogbG9h
ZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlcjo6c2NoZWR1bGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnVu
c2NoZWR1bGUpOgorCiAyMDEyLTExLTI4ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IENoYW5nZSBmcm9udGVuZCB0byBjYWxsIElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZTo6Y3JlYXRlVHJhbnNhY3Rpb24oKQpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAJKHJldmlzaW9u
IDEzNjA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw4ICs1NSw4IEBACiAKIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OnNjaGVkdWxlKFNjaGVkdWxlUGFpciogcGFpcikKIHsKLSAgICBpZiAobV9tYWluUmVzb3Vy
Y2VMb2FkZXIgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpKQotICAgICAgICBtX21h
aW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCktPnNjaGVkdWxlKHBhaXIpOworICAgIGlmIChtX21h
aW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCkgJiYgbV9t
YWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKSkKKyAgICAgICAgbV9tYWluUmVz
b3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKS0+c2NoZWR1bGUocGFpcik7CiAgICAgc2No
ZWR1bGVBbGwobV9zdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1f
cGx1Z0luU3RyZWFtTG9hZGVycywgcGFpcik7CiAgICAgc2NoZWR1bGVBbGwobV9tdWx0aXBhcnRT
dWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwpAQCAtNjQsOCArNjQsOCBAQAogCiB2b2lkIERvY3Vt
ZW50TG9hZGVyOjp1bnNjaGVkdWxlKFNjaGVkdWxlUGFpciogcGFpcikKIHsKLSAgICBpZiAobV9t
YWluUmVzb3VyY2VMb2FkZXIgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpKQotICAg
ICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCktPnVuc2NoZWR1bGUocGFpcik7Cisg
ICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2Fk
ZXIoKSAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpKQorICAgICAg
ICBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpLT51bnNjaGVkdWxlKHBh
aXIpOwogICAgIHVuc2NoZWR1bGVBbGwobV9zdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwogICAg
IHVuc2NoZWR1bGVBbGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICB1bnNjaGVk
dWxlQWxsKG1fbXVsdGlwYXJ0U3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDEzNjA0NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBNYWluUmVzb3VyY2VMb2FkZXJfaAogI2Rl
ZmluZSBNYWluUmVzb3VyY2VMb2FkZXJfaAogCisjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2Uu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgiCkBA
IC00OSw0MCArNTEsNDIgQEAKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIFJlc291cmNlUmVxdWVz
dDsKIAotY2xhc3MgTWFpblJlc291cmNlTG9hZGVyIDogcHVibGljIFJlc291cmNlTG9hZGVyIHsK
K2NsYXNzIE1haW5SZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE1haW5SZXNvdXJj
ZUxvYWRlcj4sIHB1YmxpYyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWFpblJlc291
cmNlTG9hZGVyPiBjcmVhdGUoRnJhbWUqKTsKICAgICB2aXJ0dWFsIH5NYWluUmVzb3VyY2VMb2Fk
ZXIoKTsKIAogICAgIHZvaWQgbG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJz
dGl0dXRlRGF0YSYpOwotICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhKGNvbnN0IGNoYXIqLCBpbnQs
IGJvb2wgYWxsQXRPbmNlKSBPVkVSUklERTsKKyAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQg
Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICBSZXNvdXJjZUxvYWRlciogbG9hZGVy
KCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gcmVzb3VyY2VEYXRhKCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKSBPVkVSUklERTsKKyAg
ICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CisgICAgdm9pZCBzZXRTaG91bGRCdWZmZXJE
YXRhKERhdGFCdWZmZXJpbmdQb2xpY3kpOwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJl
c3BvbnNlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBi
b29sIGFsbEF0T25jZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
KGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKLQogI2lmIEhBVkUoUlVOTE9PUF9USU1F
UikKICAgICB0eXBlZGVmIFJ1bkxvb3BUaW1lcjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNv
dXJjZUxvYWRlclRpbWVyOwogI2Vsc2UKICAgICB0eXBlZGVmIFRpbWVyPE1haW5SZXNvdXJjZUxv
YWRlcj4gTWFpblJlc291cmNlTG9hZGVyVGltZXI7CiAjZW5kaWYKIAorICAgIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllcigpIGNvbnN0OwogICAgIGJvb2wgaXNMb2FkaW5nTXVsdGlwYXJ0Q29udGVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQ7IH0KIAotICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZF
UlJJREU7CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWFpblJlc291cmNlTG9hZGVyKEZyYW1lKik7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3Vy
Y2UqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdmly
dHVhbCB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7CisgICAgdmlydHVhbCB2b2lkIGRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJj
ZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKIAotICAgIHZvaWQgbG9hZE5vdyhSZXNv
dXJjZVJlcXVlc3QmKTsKLQorICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOworICAgIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBoYW5kbGVTdWJz
dGl0dXRlRGF0YUxvYWRTb29uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgaGFu
ZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KE1haW5SZXNvdXJjZUxvYWRlclRpbWVyKik7CiAKQEAg
LTEwNCwxMCArMTA4LDIxIEBACiAgICAgdm9pZCBzdWJzdGl0dXRlTUlNRVR5cGVGcm9tUGx1Z2lu
RGF0YWJhc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogI2VuZGlmCiAKKyAgICBGcmFtZUxv
YWRlciogZnJhbWVMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKTsgfQor
ICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZG9j
dW1lbnRMb2FkZXIuZ2V0KCk7IH0KKworICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCgpIGNvbnN0OworICAgIHZvaWQgY2xlYXJSZXNvdXJjZSgpOworCisgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7CisKICAgICBSZXNvdXJjZVJl
cXVlc3QgbV9pbml0aWFsUmVxdWVzdDsKICAgICBTdWJzdGl0dXRlRGF0YSBtX3N1YnN0aXR1dGVE
YXRhOworICAgIFJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKIAogICAgIE1haW5SZXNvdXJj
ZUxvYWRlclRpbWVyIG1fZGF0YUxvYWRUaW1lcjsKKyAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7
CisgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBtX2RvY3VtZW50TG9hZGVyOwogCiAgICAgYm9v
bCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50OwogICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGVu
dFBvbGljeTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwCShyZXZpc2lvbiAxMzYwNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJl
c291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQAogCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNDQsMTUgKzQ2LDE1IEBACiAj
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJMb2FkZXJTdHJh
dGVneS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCIKKyNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRs
ZS5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNjaGVt
ZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgorI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAKICNpZiBQTEFURk9STShRVCkKQEAgLTYzLDEzICs2NSwxMiBAQAogI2lu
Y2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCi0vLyBGSVhNRTogTW9y
ZSB0aGF0IGlzIGluIGNvbW1vbiB3aXRoIFN1YnJlc291cmNlTG9hZGVyIHNob3VsZCBtb3ZlIHVw
IGludG8gUmVzb3VyY2VMb2FkZXIuCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWFpblJlc291
cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VMb2FkZXIoRnJhbWUqIGZyYW1lKQotICAgIDogUmVzb3Vy
Y2VMb2FkZXIoZnJhbWUsIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlm
ZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZv
ckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIFNraXBTZWN1cml0eUNoZWNrKSkKLSAgICAsIG1fZGF0
YUxvYWRUaW1lcih0aGlzLCAmTWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0
YUxvYWROb3cpCisgICAgOiBtX2RhdGFMb2FkVGltZXIodGhpcywgJk1haW5SZXNvdXJjZUxvYWRl
cjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KQorICAgICwgbV9mcmFtZShmcmFtZSkKKyAg
ICAsIG1fZG9jdW1lbnRMb2FkZXIoZnJhbWUtPmxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRl
cigpKQogICAgICwgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudChmYWxzZSkKICAgICAsIG1fd2Fp
dGluZ0ZvckNvbnRlbnRQb2xpY3koZmFsc2UpCiAgICAgLCBtX3RpbWVPZkxhc3REYXRhUmVjZWl2
ZWQoMC4wKQpAQCAtMTAyLDM1ICsxMDMsMzMgQEAKICAgICAvLyBkb2N1bWVudCBsb2FkZXJzLiBB
bHNvLCBtYWluUmVjZWl2ZWRFcnJvciBlbmRzIHVwIGNhbGxpbmcgYSBGcmFtZUxvYWREZWxlZ2F0
ZSBtZXRob2QKICAgICAvLyBhbmQgZGlkRmFpbFRvTG9hZCBjYWxscyBhIFJlc291cmNlTG9hZERl
bGVnYXRlIG1ldGhvZCBhbmQgdGhleSBuZWVkIHRvIGJlIGluIHRoZSBjb3JyZWN0IG9yZGVyLgog
ICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNlaXZlZEVycm9yKGVycm9yKTsKK30KIAotICAg
IGlmICghY2FuY2VsbGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxTdGF0
ZSgpKTsKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkRmFpbFRvTG9hZCh0
aGlzLCBlcnJvcik7Ci0gICAgICAgIAotICAgICAgICByZWxlYXNlUmVzb3VyY2VzKCk7Ci0gICAg
fQotCi0gICAgQVNTRVJUKHJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpOwordm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmNhbmNlbCgpCit7CisgICAgY2FuY2VsKFJlc291cmNlRXJyb3IoKSk7CiB9CiAK
LXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3Im
KQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKIHsKKyAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwor
ICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvciA9IGVycm9yLmlzTnVsbCgpID8gZnJhbWVM
b2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCgpKSA6IGVycm9yOworCiAgICAgbV9kYXRh
TG9hZFRpbWVyLnN0b3AoKTsKIAogICAgIGlmIChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KSB7
CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2FuY2VsQ2hlY2soKTsK
ICAgICAgICAgQVNTRVJUKG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kpOwogICAgICAgICBtX3dh
aXRpbmdGb3JDb250ZW50UG9saWN5ID0gZmFsc2U7Ci0gICAgICAgIGRlcmVmKCk7IC8vIGJhbGFu
Y2VzIHJlZiBpbiBkaWRSZWNlaXZlUmVzcG9uc2UKKyAgICAgICAgZGVyZWYoKTsgLy8gYmFsYW5j
ZXMgcmVmIGluIHJlc3BvbnNlUmVjZWl2ZWQKICAgICB9Ci19CiAKLXZvaWQgTWFpblJlc291cmNl
TG9hZGVyOjpkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgLy8g
V2Ugc2hvdWxkIG5vdGlmeSB0aGUgZnJhbWUgbG9hZGVyIGFmdGVyIGZ1bGx5IGNhbmNlbGluZyB0
aGUgbG9hZCwgYmVjYXVzZSBpdCBjYW4gZG8gY29tcGxpY2F0ZWQgd29yawotICAgIC8vIGxpa2Ug
Y2FsbGluZyBET01XaW5kb3c6OnByaW50KCksIGR1cmluZyB3aGljaCBhIGhhbGYtY2FuY2VsZWQg
bG9hZCBjb3VsZCB0cnkgdG8gZmluaXNoLgotICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNl
aXZlZEVycm9yKGVycm9yKTsKKyAgICBpZiAobG9hZGVyKCkpCisgICAgICAgIGxvYWRlcigpLT5j
YW5jZWwocmVzb3VyY2VFcnJvcik7CiAKKyAgICBjbGVhclJlc291cmNlKCk7CisgICAgcmVjZWl2
ZWRFcnJvcihyZXNvdXJjZUVycm9yKTsKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYg
KG1fZmlsdGVyKSB7CiAgICAgICAgIHdrRmlsdGVyUmVsZWFzZShtX2ZpbHRlcik7CkBAIC0xMzks
NiArMTM4LDE5IEBACiAjZW5kaWYKIH0KIAordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFy
UmVzb3VyY2UoKQoreworICAgIGlmIChtX3Jlc291cmNlKSB7CisgICAgICAgIG1fcmVzb3VyY2Ut
PnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9yZXNvdXJjZSA9IDA7CisgICAgfQorfQor
Citjb25zdCBSZXNvdXJjZVJlcXVlc3QmIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVxdWVzdCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcmVzb3VyY2UgPyBtX3Jlc291cmNlLT5yZXNvdXJjZVJlcXVl
c3QoKSA6IG1faW5pdGlhbFJlcXVlc3Q7Cit9CisKIFJlc291cmNlRXJyb3IgTWFpblJlc291cmNl
TG9hZGVyOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdl
RXJyb3IocmVxdWVzdCgpKTsKQEAgLTE2Myw3ICsxNzUsNyBAQAogICAgIGVsc2UgaWYgKG1fc3Vi
c3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAgICAgIC8vIEEgcmVkaXJlY3QgcmVzdWx0ZWQg
aW4gbG9hZGluZyBzdWJzdGl0dXRlIGRhdGEuCiAgICAgICAgIEFTU0VSVChkb2N1bWVudExvYWRl
cigpLT50aW1pbmcoKS0+cmVkaXJlY3RDb3VudCgpKTsKLSAgICAgICAgaGFuZGxlKCktPmNhbmNl
bCgpOworICAgICAgICBjbGVhclJlc291cmNlKCk7CiAgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVE
YXRhTG9hZFNvb24ocmVxdWVzdCk7CiAgICAgfQogCkBAIC0xODMsMTIgKzE5NSwxNyBAQAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmFkZERhdGEoY29u
c3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpCitQYXNzUmVmUHRyPFJl
c291cmNlQnVmZmVyPiBNYWluUmVzb3VyY2VMb2FkZXI6OnJlc291cmNlRGF0YSgpCiB7Ci0gICAg
UmVzb3VyY2VMb2FkZXI6OmFkZERhdGEoZGF0YSwgbGVuZ3RoLCBhbGxBdE9uY2UpOwotICAgIGRv
Y3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YShkYXRhLCBsZW5ndGgpOworICAgIHJldHVybiBt
X3Jlc291cmNlID8gbV9yZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSA6IDA7CiB9CiAKK3ZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlKQoreworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNl
ID09IG1fcmVzb3VyY2UpOworICAgIHdpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJl
c3BvbnNlKTsKK30KKwogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UpCiB7CiAgICAgLy8gTm90ZSB0aGF0IHRoZXJlIGFyZSBubyBhc3NlcnRzIGhl
cmUgYXMgdGhlcmUgYXJlIGZvciB0aGUgb3RoZXIgY2FsbGJhY2tzLiBUaGlzIGlzIGR1ZSB0byB0
aGUKQEAgLTIzOSwxMCArMjU2LDkgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlc291cmNl
TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QobmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7Ci0K
ICAgICAvLyBEb24ndCBzZXQgdGhpcyBvbiB0aGUgZmlyc3QgcmVxdWVzdC4gSXQgaXMgc2V0IHdo
ZW4gdGhlIG1haW4gbG9hZCB3YXMgc3RhcnRlZC4KLSAgICBtX2RvY3VtZW50TG9hZGVyLT5zZXRS
ZXF1ZXN0KG5ld1JlcXVlc3QpOworICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSkK
KyAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c2V0UmVxdWVzdChuZXdSZXF1ZXN0KTsKIAogICAg
IGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSkgewogICAgICAgICAvLyBXZSBjaGVja2Vk
IGFwcGxpY2F0aW9uIGNhY2hlIGZvciBpbml0aWFsIFVSTCwgbm93IHdlIG5lZWQgdG8gY2hlY2sg
aXQgZm9yIHJlZGlyZWN0ZWQgb25lLgpAQCAtMjc3LDE3ICsyOTMsMTYgQEAKICAgICAgICAgaWYg
KCFmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+Y2FuU2hvd01JTUVUeXBlKG1pbWVUeXBlKSB8fCBp
c1JlbW90ZVdlYkFyY2hpdmUpIHsKICAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNo
ZWNrZXIoKS0+Y2Fubm90U2hvd01JTUVUeXBlKHIpOwogICAgICAgICAgICAgLy8gQ2hlY2sgcmVh
Y2hlZFRlcm1pbmFsU3RhdGUgc2luY2UgdGhlIGxvYWQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNh
bmNlbGVkIGluc2lkZSBvZiBfaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5V2l0aEVycm9yQ29k
ZTo6LgotICAgICAgICAgICAgaWYgKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKQotICAgICAgICAg
ICAgICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CisgICAgICAgICAgICBzdG9wTG9h
ZGluZ0ZvclBvbGljeUNoYW5nZSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGNhc2UgUG9saWN5RG93bmxvYWQ6IHsKLSAgICAg
ICAgLy8gbV9oYW5kbGUgY2FuIGJlIG51bGwsIGUuZy4gd2hlbiBsb2FkaW5nIGEgc3Vic3RpdHV0
ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLgotICAgICAgICBpZiAoIW1faGFuZGxl
KSB7Ci0gICAgICAgICAgICByZWNlaXZlZEVycm9yKGNhbm5vdFNob3dVUkxFcnJvcigpKTsKKyAg
ICAgICAgLy8gbV9yZXNvdXJjZSBjYW4gYmUgbnVsbCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJz
dGl0dXRlIHJlc291cmNlIGZyb20gYXBwbGljYXRpb24gY2FjaGUuCisgICAgICAgIGlmICghbV9y
ZXNvdXJjZSkgeworICAgICAgICAgICAgcmVjZWl2ZWRFcnJvcihmcmFtZUxvYWRlcigpLT5jbGll
bnQoKS0+Y2Fubm90U2hvd1VSTEVycm9yKHJlcXVlc3QoKSkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVX
aXRoUG9saWN5RG93bmxvYWQobV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRp
ZmllcigpLCByKTsKQEAgLTI5Nyw3ICszMTIsNyBAQAogICAgICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCA9IHRoaXMtPnJlcXVlc3QoKTsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+c2V0T3Jp
Z2luYWxVUkxGb3JEb3dubG9hZFJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICAgICAgZnJhbWVMb2Fk
ZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1faGFuZGxlLmdldCgpLCByZXF1ZXN0LCByKTsKKyAg
ICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1fcmVzb3VyY2UtPmxvYWRl
cigpLT5oYW5kbGUoKSwgcmVxdWVzdCwgcik7CiAKICAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBn
b25lIG1pc3NpbmcKICAgICAgICAgaWYgKGZyYW1lTG9hZGVyKCkpCkBAIC0zMjksMTQgKzM0NCwx
MCBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gd2UgbWF5IGhhdmUgY2FuY2VsbGVkIHRo
aXMgbG9hZCBhcyBwYXJ0IG9mIHN3aXRjaGluZyB0byBmYWxsYmFjayBjb250ZW50Ci0gICAgaWYg
KCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKQotICAgICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKHIpOwotCi0gICAgaWYgKGZyYW1lTG9hZGVyKCkgJiYgIWZyYW1lTG9hZGVy
KCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBpbmcoKSAmJiBtX3N1YnN0aXR1dGVE
YXRhLmlzVmFsaWQoKSkgeworICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygp
ICYmIG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAgICAgIGlmIChtX3N1YnN0aXR1
dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKQotICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEobV9z
dWJzdGl0dXRlRGF0YS5jb250ZW50KCktPmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50
KCktPnNpemUoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgdHJ1ZSk7Ci0g
ICAgICAgIGlmIChmcmFtZUxvYWRlcigpICYmICFmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVu
dExvYWRlcigpLT5pc1N0b3BwaW5nKCkpIAorICAgICAgICAgICAgZGF0YVJlY2VpdmVkKDAsIG1f
c3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5kYXRhKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVu
dCgpLT5zaXplKCkpOworICAgICAgICBpZiAoIW1fZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmco
KSkKICAgICAgICAgICAgIGRpZEZpbmlzaExvYWRpbmcoMCk7CiAgICAgfQogfQpAQCAtMzUwLDEz
ICszNjEsMTQgQEAKIHsKICAgICBBU1NFUlQobV93YWl0aW5nRm9yQ29udGVudFBvbGljeSk7CiAg
ICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwotICAgIGlmIChmcmFtZUxvYWRl
cigpICYmICFmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5pc1N0b3BwaW5n
KCkpCisgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3BwaW5nKCkpCiAgICAgICAgIGNv
bnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSwgbV9yZXNwb25zZSk7Ci0gICAgZGVyZWYo
KTsgLy8gYmFsYW5jZXMgcmVmIGluIGRpZFJlY2VpdmVSZXNwb25zZQorICAgIGRlcmVmKCk7IC8v
IGJhbGFuY2VzIHJlZiBpbiByZXNwb25zZVJlY2VpdmVkCiB9CiAKLXZvaWQgTWFpblJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKK3Zv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsKKyAgICBBU1NFUlRfVU5VU0VE
KHJlc291cmNlLCBtX3Jlc291cmNlID09IHJlc291cmNlKTsKICAgICBpZiAoZG9jdW1lbnRMb2Fk
ZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluUmVz
cG9uc2UocmVxdWVzdCgpLCByKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0zNzQsMTUgKzM4Niw5
IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdv
cmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUg
ZGVmZXJyZWQuCi0gICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBk
ZXRhaWxzLgotI2lmICFVU0UoQ0YpCi0gICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkpOwotI2Vu
ZGlmCi0KICAgICBpZiAobV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkgewogICAgICAgICBtX2Rv
Y3VtZW50TG9hZGVyLT5zZXR1cEZvclJlcGxhY2UoKTsKLSAgICAgICAgY2xlYXJSZXNvdXJjZURh
dGEoKTsKKyAgICAgICAgbV9yZXNvdXJjZS0+Y2xlYXIoKTsKICAgICB9CiAgICAgCiAgICAgaWYg
KHIuaXNNdWx0aXBhcnQoKSkKQEAgLTM5OCwxMiArNDA0LDEwIEBACiAKICAgICBBU1NFUlQoIW1f
d2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kpOwogICAgIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kg
PSB0cnVlOwotICAgIHJlZigpOyAvLyBiYWxhbmNlZCBieSBkZXJlZiBpbiBjb250aW51ZUFmdGVy
Q29udGVudFBvbGljeSBhbmQgZGlkQ2FuY2VsCisgICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRl
cmVmIGluIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5IGFuZCBjYW5jZWwKIAotICAgIEFTU0VS
VChmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpKTsKLQogICAgIC8vIEFsd2F5
cyBzaG93IGNvbnRlbnQgd2l0aCB2YWxpZCBzdWJzdGl0dXRlIGRhdGEuCi0gICAgaWYgKGZyYW1l
TG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxp
ZCgpKSB7CisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxp
ZCgpKSB7CiAgICAgICAgIGNhbGxDb250aW51ZUFmdGVyQ29udGVudFBvbGljeSh0aGlzLCBQb2xp
Y3lVc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDI1LDI4ICs0MjksMTMgQEAKICAg
ICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jl
c3BvbnNlLCBjYWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3ksIHRoaXMpOwogfQogCi12b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50
IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3Zv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChkYXRhKTsK
ICAgICBBU1NFUlQobGVuZ3RoICE9IDApOwotCisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwg
cmVzb3VyY2UgPT0gbV9yZXNvdXJjZSk7CiAgICAgQVNTRVJUKCFtX3Jlc3BvbnNlLmlzTnVsbCgp
KTsKIAotI2lmIFVTRShDRk5FVFdPUkspIHx8IFBMQVRGT1JNKE1BQykKLSAgICAvLyBXb3JrYXJv
dW5kIGZvciA8cmRhcjovL3Byb2JsZW0vNjA2MDc4Mj4KLSAgICBpZiAobV9yZXNwb25zZS5pc051
bGwoKSkgewotICAgICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShLVVJMKCksICJ0
ZXh0L2h0bWwiLCAwLCBTdHJpbmcoKSwgU3RyaW5nKCkpOwotICAgICAgICBpZiAoRG9jdW1lbnRM
b2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyLT5zZXRSZXNwb25zZShtX3Jlc3BvbnNl
KTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0d29yayB3
aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBkZWZl
cnJlZC4KLSAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRldGFp
bHMuCi0jaWYgIVVTRShDRikKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0jZW5kaWYK
LQogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIEFT
U0VSVCghd2tGaWx0ZXJXYXNCbG9ja2VkKG1fZmlsdGVyKSk7CkBAIC00NTQsMjQgKzQ0MywyMiBA
QAogICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGJsb2NrZWREYXRhLCB0aGF0IG1lYW5zIHdl
J3JlIHN0aWxsIGFjY3VtdWxhdGluZyBkYXRhCiAgICAgICAgIGlmICghYmxvY2tlZERhdGEpIHsK
ICAgICAgICAgICAgIC8vIFRyYW5zaXRpb24gdG8gY29tbWl0dGVkIHN0YXRlLgotICAgICAgICAg
ICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKCIiLCAwLCAwLCBmYWxzZSk7CisgICAg
ICAgICAgICBkb2N1bWVudExvYWRlcigpLT5yZWNlaXZlZERhdGEoMCwgMCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBkYXRhID0gYmxvY2tlZERhdGE7Ci0gICAg
ICAgIGVuY29kZWREYXRhTGVuZ3RoID0gLTE7CiAgICAgfQogI2VuZGlmCiAKLSAgICBkb2N1bWVu
dExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYWluUmVzb3VyY2VEYXRhUmVjZWl2
ZWQoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsKKyAgICBkb2N1
bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYWluUmVzb3VyY2VEYXRhUmVj
ZWl2ZWQoZGF0YSwgbGVuZ3RoLCAtMSwgZmFsc2UpOwogCiAgICAgLy8gVGhlIGFkZGl0aW9uYWwg
cHJvY2Vzc2luZyBjYW4gZG8gYW55dGhpbmcgaW5jbHVkaW5nIHBvc3NpYmx5IHJlbW92aW5nIHRo
ZSBsYXN0CiAgICAgLy8gcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0
aGlzIGlzIDMyNjYyMTYuCiAgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0
aGlzKTsKLQogICAgIG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOwogCi0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGRhdGEs
IGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7CisgICAgZG9jdW1lbnRMb2Fk
ZXIoKS0+cmVjZWl2ZWREYXRhKGRhdGEsIGxlbmd0aCk7CiAKICNpZiBQTEFURk9STShNQUMpICYm
ICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4
MAogICAgIGlmIChXZWJGaWx0ZXJFdmFsdWF0b3IgKmZpbHRlciA9IG1fZmlsdGVyKSB7CkBAIC00
ODksMTIgKzQ3Niw2IEBACiAKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2Fk
aW5nKGRvdWJsZSBmaW5pc2hUaW1lKQogewotICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0
d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFy
ZSBkZWZlcnJlZC4KLSAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3Jl
IGRldGFpbHMuCi0jaWYgIVVTRShDRikKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSB8fCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRGVidWdnZXJQYXVzZWQobV9mcmFtZS5nZXQoKSkp
OwotI2VuZGlmCi0KICAgICAvLyBUaGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0
aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3ZpbmcgdGhlIGxhc3QKICAgICAvLyByZWZlcmVu
Y2UgdG8gdGhpcyBvYmplY3QuCiAgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVj
dCh0aGlzKTsKQEAgLTUwOCw3ICs0ODksNyBAQAogICAgICAgICAvLyBSZW1vdmUgdGhpcy0+bV9m
aWx0ZXIgZWFybHkgc28gZGlkUmVjZWl2ZURhdGEgZG9lc24ndCBzZWUgaXQuCiAgICAgICAgIG1f
ZmlsdGVyID0gMDsKICAgICAgICAgaWYgKGRhdGEpCi0gICAgICAgICAgICBkaWRSZWNlaXZlRGF0
YShkYXRhLCBsZW5ndGgsIC0xLCBmYWxzZSk7CisgICAgICAgICAgICBkYXRhUmVjZWl2ZWQobV9y
ZXNvdXJjZS5nZXQoKSwgZGF0YSwgbGVuZ3RoKTsKICAgICAgICAgd2tGaWx0ZXJSZWxlYXNlKGZp
bHRlcik7CiAgICAgfQogI2VuZGlmCkBAIC01MTgsMTMgKzQ5OSwxOCBAQAogCiAgICAgZG9jdW1l
bnRMb2FkZXIoKS0+dGltaW5nKCktPnNldFJlc3BvbnNlRW5kKGZpbmlzaFRpbWUgPyBmaW5pc2hU
aW1lIDogKG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA/IG1fdGltZU9mTGFzdERhdGFSZWNlaXZl
ZCA6IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKSk7CiAgICAgZG9jdW1lbnRMb2FkZXIo
KS0+ZmluaXNoZWRMb2FkaW5nKCk7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcoZmluaXNoVGltZSk7CiAKICAgICBkbC0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+ZmluaXNo
ZWRMb2FkaW5nTWFpblJlc291cmNlKCk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpk
aWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBNYWluUmVzb3VyY2VMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKKyAgICBBU1NF
UlRfVU5VU0VEKHJlc291cmNlLCBtX3Jlc291cmNlID09IHJlc291cmNlKTsKKyAgICBpZiAoIW1f
cmVzb3VyY2UgfHwgKCFtX3Jlc291cmNlLT5lcnJvck9jY3VycmVkKCkgJiYgIW1fcmVzb3VyY2Ut
Pndhc0NhbmNlbGVkKCkpKSB7CisgICAgICAgIGRpZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZS0+
bG9hZEZpbmlzaFRpbWUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICNpZiBQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTA4MAogICAgIGlmIChtX2ZpbHRlcikgewogICAgICAgICB3a0ZpbHRlclJlbGVhc2Uo
bV9maWx0ZXIpOwpAQCAtNTMyLDE0ICs1MTgsOSBAQAogICAgIH0KICNlbmRpZgogCisgICAgY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IgPSBtX3Jlc291cmNlLT5yZXNvdXJjZUVycm9yKCk7CiAg
ICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9h
ZEZhbGxiYWNrRm9yTWFpbkVycm9yKHJlcXVlc3QoKSwgZXJyb3IpKQogICAgICAgICByZXR1cm47
Ci0KLSAgICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNh
biBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCi0gICAgLy8gU2Vl
IDxyZGFyOi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgotI2lmICFVU0UoQ0Yp
Ci0gICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkpOwotI2VuZGlmCiAgICAgCiAgICAgcmVjZWl2
ZWRFcnJvcihlcnJvcik7CiB9CkBAIC01NDcsNyArNTI4LDYgQEAKIHZvaWQgTWFpblJlc291cmNl
TG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6TG9hZGVyKTsKLSAgICBSZXNvdXJjZUxvYWRlcjo6
cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9pbml0aWFsUmVxdWVzdCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdWJzdGl0dXRlRGF0YSk7
CiAgICAgaW5mby5hZGRNZW1iZXIobV9kYXRhTG9hZFRpbWVyKTsKQEAgLTU2Niw3ICs1NDYsNyBA
QAogICAgIG1faW5pdGlhbFJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKICAgICAgICAgCiAg
ICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSh1cmwsIG1fc3Vic3RpdHV0ZURhdGEubWltZVR5
cGUoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgbV9zdWJzdGl0dXRlRGF0
YS50ZXh0RW5jb2RpbmcoKSwgIiIpOwotICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7
CisgICAgcmVzcG9uc2VSZWNlaXZlZCgwLCByZXNwb25zZSk7CiB9CiAKIHZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpzdGFydERhdGFMb2FkVGltZXIoKQpAQCAtNTg5LDI5ICs1NjksOCBAQAogICAg
ICAgICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3coMCk7CiB9CiAKLXZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikKLXsKLSAgICBBU1NFUlQoIW1f
aGFuZGxlKTsKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0KLSNpZiBVU0UoUExBVEZP
Uk1fU1RSQVRFR0lFUykKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3ko
KS0+cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPmFkZE1haW5SZXNvdXJjZUxvYWQodGhpcyk7Ci0j
ZWxzZQotICAgIHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5hZGRNYWluUmVzb3VyY2VMb2FkKHRo
aXMpOwotI2VuZGlmCi0KLSAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpCi0gICAg
ICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocik7Ci0gICAgZWxzZQotICAgICAgICBt
X2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdv
cmtpbmdDb250ZXh0KCksIHIsIHRoaXMsIGZhbHNlLCB0cnVlKTsKLQotICAgIHJldHVybjsKLX0K
LQogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCiB7Ci0gICAgQVNTRVJUKCFt
X2hhbmRsZSk7Ci0KICAgICAvLyBJdCBhcHBlYXJzIHRoYXQgaXQgaXMgcG9zc2libGUgZm9yIHRo
aXMgbG9hZCB0byBiZSBjYW5jZWxsZWQgYW5kIGRlcmVmZW5jZWQgYnkgdGhlIERvY3VtZW50TG9h
ZGVyCiAgICAgLy8gaW4gd2lsbFNlbmRSZXF1ZXN0KCkgaWYgbG9hZE5vdygpIGlzIGNhbGxlZC4K
ICAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwpAQCAtNjI5LDM3
ICs1ODgsNTkgQEAKICAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VSZXNwb25z
ZSgpKTsKICAgICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7CiAKLSAgICAvLyA8cmRhcjov
L3Byb2JsZW0vNDgwMTA2Nj4KLSAgICAvLyB3aWxsU2VuZFJlcXVlc3QoKSBpcyBsaWFibGUgdG8g
bWFrZSB0aGUgY2FsbCB0byBmcmFtZUxvYWRlcigpIHJldHVybiBudWxsLCBzbyB3ZSBuZWVkIHRv
IGNoZWNrIHRoYXQgaGVyZQotICAgIGlmICghZnJhbWVMb2FkZXIoKSB8fCByZXF1ZXN0LmlzTnVs
bCgpKSB7Ci0gICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAgICAg
IHJlbGVhc2VSZXNvdXJjZXMoKTsKKyAgICAvLyB3aWxsU2VuZFJlcXVlc3QoKSBtYXkgbGVhZCB0
byBvdXIgRG9jdW1lbnRMb2FkZXIgYmVpbmcgZGV0YWNoZWQgb3IgY2FuY2VsbGluZyB0aGUgbG9h
ZCB2aWEgbnVsbGluZyB0aGUgUmVzb3VyY2VSZXF1ZXN0LgorICAgIGlmICghZG9jdW1lbnRMb2Fk
ZXIoKS0+ZnJhbWUoKSB8fCByZXF1ZXN0LmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAg
fQogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVM
b2FkTWFpblJlc291cmNlKHJlcXVlc3QsIG1fc3Vic3RpdHV0ZURhdGEpOwogCi0gICAgaWYgKGRl
ZmVyc0xvYWRpbmcoKSkKLSAgICAgICAgbV9pbml0aWFsUmVxdWVzdCA9IHJlcXVlc3Q7Ci0gICAg
ZWxzZQotICAgICAgICBsb2FkTm93KHJlcXVlc3QpOworICAgIGNvbnN0IEtVUkwmIHVybCA9IHIu
dXJsKCk7CisKKyAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpCisgICAgICAgIGhh
bmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocik7CisgICAgZWxzZSB7CisgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VM
b2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwKKyAg
ICAgICAgICAgIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3JpZ2lu
Q3JlZGVudGlhbHMsIFNraXBTZWN1cml0eUNoZWNrKSk7CisgICAgICAgIG1fcmVzb3VyY2UgPSBk
b2N1bWVudExvYWRlcigpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0TWFpblJlc291
cmNlKGNhY2hlZFJlc291cmNlUmVxdWVzdCk7CisgICAgICAgIGlmICghbV9yZXNvdXJjZSkgewor
ICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+c2V0UmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9yZXNvdXJjZS0+
YWRkQ2xpZW50KHRoaXMpOworCisgICAgICAgIC8vIFdlIG5lZWQgdG8gd2FpdCB1bnRpbCBhZnRl
ciByZXF1ZXN0TWFpblJlc291cmNlKCkgaXMgY2FsbGVkIHRvIHNldFJlcXVlc3QoKSwgYmVjYXVz
ZSB0aGVyZSBhcmUgYSBidW5jaCBvZiBoZWFkZXJzIHNldCB3aGVuCisgICAgICAgIC8vIHRoZSB1
bmRlcmx5aW5nIFJlc291cmNlTG9hZGVyIGlzIGNyZWF0ZWQsIGFuZCBEb2N1bWVudExvYWRlcjo6
bV9yZXF1ZXN0IG5lZWRzIHRvIGluY2x1ZGUgdGhvc2UuIEhvd2V2ZXIsIHRoZSBjYWNoZSB3aWxs
CisgICAgICAgIC8vIHN0cmlwIHRoZSBmcmFnbWVudCBpZGVudGlmaWVyICh3aGljaCBEb2N1bWVu
dExvYWRlcjo6bV9yZXF1ZXN0IHNob3VsZCBhbHNvIGluY2x1ZGUpLCBzbyBhZGQgdGhhdCBiYWNr
IGluLgorICAgICAgICBpZiAobG9hZGVyKCkpCisgICAgICAgICAgICByZXF1ZXN0ID0gbG9hZGVy
KCktPm9yaWdpbmFsUmVxdWVzdCgpOworICAgICAgICBpZiAodXJsICE9IHJlcXVlc3QudXJsKCkp
CisgICAgICAgICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworICAgICAgICBkb2N1bWVudExvYWRl
cigpLT5zZXRSZXF1ZXN0KHJlcXVlc3QpOworICAgIH0KIH0KIAogdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7Ci0gICAgUmVzb3VyY2VMb2Fk
ZXI6OnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKKyAgICBpZiAobG9hZGVyKCkpCisgICAgICAg
IGxvYWRlcigpLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7Cit9CiAKLSAgICBpZiAoZGVmZXJz
KSB7Ci0gICAgICAgIGlmIChtX2RhdGFMb2FkVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAg
IG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1faW5p
dGlhbFJlcXVlc3QuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm47Cit2b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVmZmVyaW5nUG9saWN5IHNob3Vs
ZEJ1ZmZlckRhdGEpCit7CisgICAgQVNTRVJUKG1fcmVzb3VyY2UpOworICAgIG1fcmVzb3VyY2Ut
PnNldFNob3VsZEJ1ZmZlckRhdGEoc2hvdWxkQnVmZmVyRGF0YSk7Cit9CiAKLSAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0IGluaXRpYWxSZXF1ZXN0KG1faW5pdGlhbFJlcXVlc3QpOwotICAgICAgICBt
X2luaXRpYWxSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgICAgIGxvYWROb3coaW5p
dGlhbFJlcXVlc3QpOwotICAgIH0KK1Jlc291cmNlTG9hZGVyKiBNYWluUmVzb3VyY2VMb2FkZXI6
OmxvYWRlcigpIGNvbnN0Cit7IAorICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+
bG9hZGVyKCkgOiAwOwogfQogCit1bnNpZ25lZCBsb25nIE1haW5SZXNvdXJjZUxvYWRlcjo6aWRl
bnRpZmllcigpIGNvbnN0Cit7CisgICAgaWYgKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRl
ciA9IGxvYWRlcigpKQorICAgICAgICByZXR1cm4gcmVzb3VyY2VMb2FkZXItPmlkZW50aWZpZXIo
KTsKKyAgICByZXR1cm4gMDsKIH0KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzYwNDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsMTMgKzE4MCw3IEBA
CiAgICAgLy8gd291bGQgYmUgYSBXZWJGb3VuZGF0aW9uIGJ1ZyBpZiBpdCBzZW50IGEgcmVkaXJl
Y3QgY2FsbGJhY2sgYWZ0ZXIgY29tbWl0LgogICAgIEFTU0VSVCghbV9jb21taXR0ZWQpOwogCi0g
ICAgS1VSTCBvbGRVUkwgPSBtX3JlcXVlc3QudXJsKCk7CiAgICAgbV9yZXF1ZXN0ID0gcmVxOwot
Ci0gICAgLy8gT25seSBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZCgpIGlmIFVSTCBjaGFuZ2VkIChhbmQgaXMgbm9uLW51bGwpLgotICAgIC8vIEFsc28s
IGRvbid0IHNlbmQgaXQgd2hlbiByZXBsYWNpbmcgdW5yZWFjaGFibGUgVVJMcyB3aXRoIGFsdGVy
bmF0ZSBjb250ZW50LgotICAgIGlmICghaGFuZGxpbmdVbnJlYWNoYWJsZVVSTCAmJiAhcmVxLnVy
bCgpLmlzTnVsbCgpICYmIG9sZFVSTCAhPSByZXEudXJsKCkpCi0gICAgICAgIGZyYW1lTG9hZGVy
KCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZCgpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRNYWluRG9jdW1lbnRFcnJv
cihjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTgxMSwxMSArODA1LDIwIEBACiAKIHZv
aWQgRG9jdW1lbnRMb2FkZXI6OmFkZFN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVyKiBs
b2FkZXIpCiB7CisgICAgLy8gVGhlIG1haW4gcmVzb3VyY2UncyB1bmRlcmx5aW5nIFJlc291cmNl
TG9hZGVyIHdpbGwgYXNrIHRvIGJlIGFkZGVkIGhlcmUuCisgICAgLy8gSXQgaXMgbXVjaCBzaW1w
bGVyIHRvIGhhbmRsZSBzcGVjaWFsIGNhc2luZyBvZiBtYWluIHJlc291cmNlIGxvYWRzIGlmIHdl
IGRvbid0CisgICAgLy8gbGV0IGl0IGJlIGFkZGVkLiBJbiB0aGUgbWFpbiByZXNvdXJjZSBsb2Fk
IGNhc2UsIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKQorICAgIC8vIHdpbGwgc3RpbGwg
YmUgbnVsbCBhdCB0aGlzIHBvaW50LCBidXQgbV9nb3RGaXJzdEJ5dGUgc2hvdWxkIGJlIGZhbHNl
IGhlcmUgaWYgYW5kIG9ubHkKKyAgICAvLyBpZiB3ZSBhcmUganVzdCBzdGFydGluZyB0aGUgbWFp
biByZXNvdXJjZSBsb2FkLgorICAgIGlmICghbV9nb3RGaXJzdEJ5dGUpCisgICAgICAgIHJldHVy
bjsKICAgICBtX3N1YnJlc291cmNlTG9hZGVycy5hZGQobG9hZGVyKTsKIH0KIAogdm9pZCBEb2N1
bWVudExvYWRlcjo6cmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIoUmVzb3VyY2VMb2FkZXIqIGxvYWRl
cikKIHsKKyAgICBpZiAoIW1fc3VicmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5zKGxvYWRlcikpCisg
ICAgICAgIHJldHVybjsKICAgICBtX3N1YnJlc291cmNlTG9hZGVycy5yZW1vdmUobG9hZGVyKTsK
ICAgICBjaGVja0xvYWRDb21wbGV0ZSgpOwogICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2ZyYW1l
KQpAQCAtODgxLDYgKzg4NCwxMCBAQAogCiAgICAgaWYgKG1fcmVxdWVzdC5pc051bGwoKSkgewog
ICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlciA9IDA7CisgICAgICAgIC8vIElmIHRoZSBsb2Fk
IHdhcyBhYm9ydGVkIGJ5IGNsZWFyaW5nIG1fcmVxdWVzdCwgaXQncyBwb3NzaWJsZSB0aGUgQXBw
bGljYXRpb25DYWNoZUhvc3QKKyAgICAgICAgLy8gaXMgbm93IGluIGEgc3RhdGUgd2hlcmUgc3Rh
cnRpbmcgYW4gZW1wdHkgbG9hZCB3aWxsIGJlIGluY29uc2lzdGVudC4gUmVwbGFjZSBpdCB3aXRo
CisgICAgICAgIC8vIGEgbmV3IEFwcGxpY2F0aW9uQ2FjaGVIb3N0LgorICAgICAgICBtX2FwcGxp
Y2F0aW9uQ2FjaGVIb3N0ID0gYWRvcHRQdHIobmV3IEFwcGxpY2F0aW9uQ2FjaGVIb3N0KHRoaXMp
KTsKICAgICAgICAgbWF5YmVMb2FkRW1wdHkoKTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5j
cHAJKHJldmlzaW9uIDEzNjA0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBA
QAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpKSB7CiAgICAgICAgICAg
ICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0LCBkb2N1bWVudExvYWRlcigpKTsK
IAotICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGlj
YXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKSwgbV9tYWlu
UmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKKyAgICAgICAgICAgIGlmIChzY2hlZHVs
ZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIo
KS0+bWFpblJlc291cmNlTG9hZGVyKCktPmxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0
aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
CiAgICAgfQpAQCAtMTE3LDcgKzExNyw3IEBACiAgICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkKCkpIHsKICAgICAgICAgICAgIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNo
ZSA9IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5SZXF1ZXN0KHJl
cXVlc3QsIG1fZG9jdW1lbnRMb2FkZXIpOwogCi0gICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2Fk
RmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1h
aW5SZXNvdXJjZUxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkp
KQorICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGlj
YXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVy
KCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEzNjA0NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCkBAIC0xNDcsNiArMTQ4LDEwIEBACiAgICAgICAgIHJl
dHVybjsKIAogICAgIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QobmV3UmVxdWVzdCwg
cmVkaXJlY3RSZXNwb25zZSk7CisKKyAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkg
JiYgbV9yZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCisg
ICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpOworCiAgICAgaWYgKG5ld1JlcXVlc3QuaXNOdWxs
KCkpCiAgICAgICAgIGNhbmNlbCgpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvQXJjaGl2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL0FyY2hpdmUuaAkocmV2aXNpb24gMTM2MDQ0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvQXJjaGl2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBACiAgICAg
Ly8gVGhlc2UgbWV0aG9kcyBhcmUgbWVhbnQgZm9yIHN1YmNsYXNzZXMgZm9yIGRpZmZlcmVudCBh
cmNoaXZlIHR5cGVzIHRvIGFkZCByZXNvdXJjZXMgaW4gdG8gdGhlIGFyY2hpdmUsCiAgICAgLy8g
YW5kIHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyBhcmNoaXZlcyBzaG91bGQgYmUgaW1tdXRhYmxl
IHRvIGNsaWVudHMKICAgICB2b2lkIHNldE1haW5SZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVS
ZXNvdXJjZT4gbWFpblJlc291cmNlKSB7IG1fbWFpblJlc291cmNlID0gbWFpblJlc291cmNlOyB9
Ci0gICAgdm9pZCBhZGRTdWJyZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3Vi
UmVzb3VyY2UpIHsgbV9zdWJyZXNvdXJjZXMuYXBwZW5kKHN1YlJlc291cmNlKTsgfQorICAgIHZv
aWQgYWRkU3VicmVzb3VyY2UoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YlJlc291cmNl
KTsKICAgICB2b2lkIGFkZFN1YmZyYW1lQXJjaGl2ZShQYXNzUmVmUHRyPEFyY2hpdmU+IHN1YmZy
YW1lQXJjaGl2ZSkgeyBtX3N1YmZyYW1lQXJjaGl2ZXMuYXBwZW5kKHN1YmZyYW1lQXJjaGl2ZSk7
IH0KIAogICAgIHZvaWQgY2xlYXJBbGxTdWJmcmFtZUFyY2hpdmVzKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmNwcAkocmV2aXNpb24gMTM2MDQ0KQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDYgKzM1LDEyIEBACiB7CiB9CiAKK3ZvaWQgQXJjaGl2ZTo6YWRkU3VicmVzb3VyY2Uo
UGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YlJlc291cmNlKQoreworICAgIGlmIChtX21h
aW5SZXNvdXJjZS0+dXJsKCkgIT0gc3ViUmVzb3VyY2UtPnVybCgpKQorICAgICAgICBtX3N1YnJl
c291cmNlcy5hcHBlbmQoc3ViUmVzb3VyY2UpOworfQorCiB2b2lkIEFyY2hpdmU6OmNsZWFyQWxs
U3ViZnJhbWVBcmNoaXZlcygpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxBcmNoaXZlPiA+IGNsZWFy
ZWRBcmNoaXZlczsK
</data>
<flag name="commit-queue"
          id="192790"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177046</attachid>
            <date>2012-11-30 16:24:15 -0800</date>
            <delta_ts>2012-12-03 13:42:56 -0800</delta_ts>
            <desc>Address darin&apos;s comments</desc>
            <filename>cmr_1130d.txt</filename>
            <type>text/plain</type>
            <size>41856</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjI0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDEyLTExLTI4ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJj
ZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGRvZXNuJ3QgYWN0
dWFsbHkgZW5hYmxlIGNhY2hpbmcgb2YgbWFpbiByZXNvdXJjZXMuIFRoYXQgd2lsbCBiZSBkb25l
IGluIGEgbGF0ZXIgcGF0Y2guCisgICAgICAgIFRoZSBNYWluUmVzb3VyY2VMb2FkZXIgYWN0dWFs
bHkgaGFzIGFuIHVuZGVybHlpbmcgU3VicmVzb3VyY2VMb2FkZXIgKHdpdGggdGhlIGNhY2hlIGxh
eWVyIGJldHdlZW4gdGhlbSkuCisgICAgICAgIEluIHNldmVyYWwgcGxhY2VzLCB0aGUgTWFpblJl
c291cmNlTG9hZGVyJ3MgU3VicmVzb3VyY2VMb2FkZXIgaXMgdHJlYXRlZCBhcyBzcGVjaWFsLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpcyBwcmltYXJpbHkgYSByZWZhY3Rvci4g
QSBjb3VwbGUgb2YgZXhwZWN0ZWQgcmVzdWx0cyBjaGFuZ2VkIHNsaWdodGx5LgorCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjpzZXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjph
ZGRTdWJyZXNvdXJjZUxvYWRlcik6IEJlY2F1c2UgdGhlIFN1YnJlc291cmNlTG9hZGVyIHVuZGVy
bHlpbmcgdGhlIG1haW4gcmVzb3VyY2UKKyAgICAgICAgICAgIG5lZWRzIHNwZWNpYWwgaGFuZGxp
bmcgaW4gY2VydGFpbiBjYXNlcywgdHJhY2sgaXQgc2VwYXJhdGVseSBmcm9tIHRoZSByZWFsIFN1
YnJlc291cmNlTG9hZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZW1v
dmVTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJj
ZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlY2VpdmVk
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjbGVhclJlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVB
ZnRlck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpyZXNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
OjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRl
cjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRl
cjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJl
c291cmNlTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJl
c291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyk6IExvYWQgZGVmZXJyYWwgaXMgbm93IGRl
bGVnYXRlZCB0byB0aGUgdW5kZXJseWluZyBTdWJyZXNvdXJjZUxvYWRlci4KKyAgICAgICAgICAg
IEZyb20gdGhlIE1haW5SZXNvdXJjZUxvYWRlcidzIHBlcnNwZWN0aXZlLCB0aGUgbG9hZCBpcyBh
bHdheXMgc3RhcnRlZCBpbW1lZGlhdGVseS4gQXMgc3VjaCwgYWxsIGNhc2VzIGludm9sdmluZwor
ICAgICAgICAgICAgYSBkZWZlcnNMb2FkaW5nKCkgY2hlY2sgYXJlIHRyZWF0ZWQgYXMgYWx3YXlz
IHJldHVybmluZyBmYWxzZSBhbmQgcmVtb3ZlZCBpZiBhcHByb3ByaWF0ZS4KKyAgICAgICAgKFdl
YkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNYWluUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIpOgorICAgICAgICAqIGxvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmZyYW1lTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIGxv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJj
ZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNo
ZUhvc3Q6Om1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRGYWxsYmFja0Zvck1haW5FcnJvcik6
CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBcmNoaXZlOjphZGRTdWJyZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmg6CisgICAgICAgIChBcmNoaXZlKToKKyAgICAgICAg
KiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyOjpzY2hlZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6dW5zY2hlZHVsZSk6CisKIDIwMTItMTEtMzAgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJdCdzIFNhc3MsIG5vdCBT
QVNTCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVy
TWFjLmNwcAkocmV2aXNpb24gMTM2MjQ5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9E
b2N1bWVudExvYWRlck1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1LDggQEAKIAog
dm9pZCBEb2N1bWVudExvYWRlcjo6c2NoZWR1bGUoU2NoZWR1bGVQYWlyKiBwYWlyKQogewotICAg
IGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxl
KCkpCi0gICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+c2NoZWR1bGUocGFp
cik7CisgICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVy
LT5sb2FkZXIoKSAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpKQor
ICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpLT5zY2hlZHVs
ZShwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAg
ICAgc2NoZWR1bGVBbGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVs
ZUFsbChtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkBAIC02NCw4ICs2NCw4
IEBACiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnVuc2NoZWR1bGUoU2NoZWR1bGVQYWlyKiBwYWly
KQogewotICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRl
ci0+aGFuZGxlKCkpCi0gICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+dW5z
Y2hlZHVsZShwYWlyKTsKKyAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9tYWluUmVz
b3VyY2VMb2FkZXItPmxvYWRlcigpICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+
aGFuZGxlKCkpCisgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+aGFuZGxl
KCktPnVuc2NoZWR1bGUocGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9h
ZGVycywgcGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX3BsdWdJblN0cmVhbUxvYWRlcnMsIHBh
aXIpOwogICAgIHVuc2NoZWR1bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMsIHBh
aXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHAJKHJldmlzaW9uIDEzNjI0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3Vy
Y2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw4IEBACiAKICNpbmNsdWRl
ICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxl
ci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC00NCwxNSArNDYsMTUgQEAKICNpbmNs
dWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1
ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgor
I2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgi
Ci0jaW5jbHVkZSAiUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVn
aXN0cnkuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KIAogI2lmIFBMQVRGT1JNKFFUKQpAQCAtNjMsMTMgKzY1LDExIEBACiAjaW5jbHVk
ZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2VuZGlmCiAKLS8vIEZJWE1FOiBNb3JlIHRo
YXQgaXMgaW4gY29tbW9uIHdpdGggU3VicmVzb3VyY2VMb2FkZXIgc2hvdWxkIG1vdmUgdXAgaW50
byBSZXNvdXJjZUxvYWRlci4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NYWluUmVzb3VyY2VM
b2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUpCi0gICAgOiBSZXNvdXJjZUxv
YWRlcihmcmFtZSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29u
dGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jv
c3NPcmlnaW5DcmVkZW50aWFscywgU2tpcFNlY3VyaXR5Q2hlY2spKQotICAgICwgbV9kYXRhTG9h
ZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZVN1YnN0aXR1dGVEYXRhTG9h
ZE5vdykKK01haW5SZXNvdXJjZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKERvY3VtZW50TG9h
ZGVyKiBkb2N1bWVudExvYWRlcikKKyAgICA6IG1fZGF0YUxvYWRUaW1lcih0aGlzLCAmTWFpblJl
c291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3cpCisgICAgLCBtX2RvY3Vt
ZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyKQogICAgICwgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVu
dChmYWxzZSkKICAgICAsIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3koZmFsc2UpCiAgICAgLCBt
X3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQoMC4wKQpAQCAtODYsNTEgKzg2LDQ5IEBACiAjZW5kaWYK
IH0KIAotUGFzc1JlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNvdXJjZUxvYWRlcjo6
Y3JlYXRlKEZyYW1lKiBmcmFtZSkKK1Bhc3NSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBNYWlu
UmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNYWluUmVzb3VyY2VMb2FkZXIoZnJhbWUpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IE1haW5SZXNvdXJjZUxvYWRlcihkb2N1bWVudExvYWRlcikp
OwogfQogCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVjZWl2ZWRFcnJvcihjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKIHsKICAgICAvLyBDYWxsaW5nIHJlY2VpdmVkTWFpblJlc291cmNl
RXJyb3Igd2lsbCBsaWtlbHkgcmVzdWx0IGluIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9i
amVjdCB0byBnbyBhd2F5LgogICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IHByb3RlY3Qo
dGhpcyk7Ci0gICAgUmVmUHRyPEZyYW1lPiBwcm90ZWN0RnJhbWUobV9mcmFtZSk7CisgICAgUmVm
UHRyPEZyYW1lPiBwcm90ZWN0RnJhbWUobV9kb2N1bWVudExvYWRlci0+ZnJhbWUoKSk7CiAKICAg
ICAvLyBJdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBjYWxsIERvY3VtZW50TG9hZGVyOjptYWluUmVj
ZWl2ZWRFcnJvciBiZWZvcmUgY2FsbGluZyAKICAgICAvLyBSZXNvdXJjZUxvYWROb3RpZmllcjo6
ZGlkRmFpbFRvTG9hZCBiZWNhdXNlIG1haW5SZWNlaXZlZEVycm9yIGNsZWFycyBvdXQgdGhlIHJl
bGV2YW50CiAgICAgLy8gZG9jdW1lbnQgbG9hZGVycy4gQWxzbywgbWFpblJlY2VpdmVkRXJyb3Ig
ZW5kcyB1cCBjYWxsaW5nIGEgRnJhbWVMb2FkRGVsZWdhdGUgbWV0aG9kCiAgICAgLy8gYW5kIGRp
ZEZhaWxUb0xvYWQgY2FsbHMgYSBSZXNvdXJjZUxvYWREZWxlZ2F0ZSBtZXRob2QgYW5kIHRoZXkg
bmVlZCB0byBiZSBpbiB0aGUgY29ycmVjdCBvcmRlci4KICAgICBkb2N1bWVudExvYWRlcigpLT5t
YWluUmVjZWl2ZWRFcnJvcihlcnJvcik7Cit9CiAKLSAgICBpZiAoIWNhbmNlbGxlZCgpKSB7Ci0g
ICAgICAgIEFTU0VSVCghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7Ci0gICAgICAgIGZyYW1lTG9h
ZGVyKCktPm5vdGlmaWVyKCktPmRpZEZhaWxUb0xvYWQodGhpcywgZXJyb3IpOwotICAgICAgICAK
LSAgICAgICAgcmVsZWFzZVJlc291cmNlcygpOwotICAgIH0KLQotICAgIEFTU0VSVChyZWFjaGVk
VGVybWluYWxTdGF0ZSgpKTsKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwoKQorewor
ICAgIGNhbmNlbChSZXNvdXJjZUVycm9yKCkpOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRl
cjo6d2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikKK3ZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjpjYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CisgICAgUmVmUHRyPE1h
aW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKKyAgICBSZXNvdXJjZUVycm9yIHJlc291
cmNlRXJyb3IgPSBlcnJvci5pc051bGwoKSA/IGZyYW1lTG9hZGVyKCktPmNhbmNlbGxlZEVycm9y
KHJlcXVlc3QoKSkgOiBlcnJvcjsKKwogICAgIG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7CiAKICAg
ICBpZiAobV93YWl0aW5nRm9yQ29udGVudFBvbGljeSkgewogICAgICAgICBmcmFtZUxvYWRlcigp
LT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7CiAgICAgICAgIEFTU0VSVChtX3dhaXRp
bmdGb3JDb250ZW50UG9saWN5KTsKICAgICAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9
IGZhbHNlOwotICAgICAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gZGlkUmVjZWl2ZVJl
c3BvbnNlCisgICAgICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiByZXNwb25zZVJlY2Vp
dmVkCiAgICAgfQotfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkQ2FuY2VsKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIC8vIFdlIHNob3VsZCBub3RpZnkgdGhlIGZy
YW1lIGxvYWRlciBhZnRlciBmdWxseSBjYW5jZWxpbmcgdGhlIGxvYWQsIGJlY2F1c2UgaXQgY2Fu
IGRvIGNvbXBsaWNhdGVkIHdvcmsKLSAgICAvLyBsaWtlIGNhbGxpbmcgRE9NV2luZG93Ojpwcmlu
dCgpLCBkdXJpbmcgd2hpY2ggYSBoYWxmLWNhbmNlbGVkIGxvYWQgY291bGQgdHJ5IHRvIGZpbmlz
aC4KLSAgICBkb2N1bWVudExvYWRlcigpLT5tYWluUmVjZWl2ZWRFcnJvcihlcnJvcik7CisgICAg
aWYgKGxvYWRlcigpKQorICAgICAgICBsb2FkZXIoKS0+Y2FuY2VsKHJlc291cmNlRXJyb3IpOwog
CisgICAgY2xlYXJSZXNvdXJjZSgpOworICAgIHJlY2VpdmVkRXJyb3IocmVzb3VyY2VFcnJvcik7
CisKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChtX2ZpbHRlcikgewogICAgICAgICB3
a0ZpbHRlclJlbGVhc2UobV9maWx0ZXIpOwpAQCAtMTM5LDYgKzEzNywyNCBAQAogI2VuZGlmCiB9
CiAKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjbGVhclJlc291cmNlKCkKK3sKKyAgICBpZiAo
bV9yZXNvdXJjZSkgeworICAgICAgICBtX3Jlc291cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7Cisg
ICAgICAgIG1fcmVzb3VyY2UgPSAwOworICAgIH0KK30KKworRnJhbWVMb2FkZXIqIE1haW5SZXNv
dXJjZUxvYWRlcjo6ZnJhbWVMb2FkZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2RvY3VtZW50
TG9hZGVyLT5mcmFtZUxvYWRlcigpOworfQorCitjb25zdCBSZXNvdXJjZVJlcXVlc3QmIE1haW5S
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVzb3VyY2Ug
PyBtX3Jlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSA6IG1faW5pdGlhbFJlcXVlc3Q7Cit9CisK
IFJlc291cmNlRXJyb3IgTWFpblJlc291cmNlTG9hZGVyOjppbnRlcnJ1cHRlZEZvclBvbGljeUNo
YW5nZUVycm9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkt
PmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IocmVxdWVzdCgpKTsKQEAgLTE2Myw3ICsx
NzksNyBAQAogICAgIGVsc2UgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAg
ICAgIC8vIEEgcmVkaXJlY3QgcmVzdWx0ZWQgaW4gbG9hZGluZyBzdWJzdGl0dXRlIGRhdGEuCiAg
ICAgICAgIEFTU0VSVChkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+cmVkaXJlY3RDb3VudCgp
KTsKLSAgICAgICAgaGFuZGxlKCktPmNhbmNlbCgpOworICAgICAgICBjbGVhclJlc291cmNlKCk7
CiAgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocmVxdWVzdCk7CiAgICAgfQog
CkBAIC0xODMsMTIgKzE5OSwxNyBAQAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgYm9v
bCBhbGxBdE9uY2UpCitQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBNYWluUmVzb3VyY2VMb2Fk
ZXI6OnJlc291cmNlRGF0YSgpCiB7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGEoZGF0YSwg
bGVuZ3RoLCBhbGxBdE9uY2UpOwotICAgIGRvY3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YShk
YXRhLCBsZW5ndGgpOworICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+cmVzb3Vy
Y2VCdWZmZXIoKSA6IDA7CiB9CiAKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZWRpcmVjdFJl
Y2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQoreworICAgIEFTU0VS
VF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fcmVzb3VyY2UpOworICAgIHdpbGxTZW5k
UmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKK30KKwogdm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgLy8gTm90ZSB0
aGF0IHRoZXJlIGFyZSBubyBhc3NlcnRzIGhlcmUgYXMgdGhlcmUgYXJlIGZvciB0aGUgb3RoZXIg
Y2FsbGJhY2tzLiBUaGlzIGlzIGR1ZSB0byB0aGUKQEAgLTIxMiw3ICsyMzMsNyBAQAogICAgICAg
ICAvLyB0aGVuIGJsb2NrIHRoZSByZWRpcmVjdC4KICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiByZWRpcmVjdGluZ09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUocmVkaXJlY3RS
ZXNwb25zZS51cmwoKSk7CiAgICAgICAgIGlmICghcmVkaXJlY3RpbmdPcmlnaW4tPmNhbkRpc3Bs
YXkobmV3UmVxdWVzdC51cmwoKSkpIHsKLSAgICAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRM
b2NhbExvYWRGYWlsZWQobV9mcmFtZS5nZXQoKSwgbmV3UmVxdWVzdC51cmwoKS5zdHJpbmcoKSk7
CisgICAgICAgICAgICBGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKG1fZG9jdW1l
bnRMb2FkZXItPmZyYW1lKCksIG5ld1JlcXVlc3QudXJsKCkuc3RyaW5nKCkpOwogICAgICAgICAg
ICAgY2FuY2VsKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTIzMSwxOCAr
MjUyLDE3IEBACiAgICAgaWYgKG5ld1JlcXVlc3QuY2FjaGVQb2xpY3koKSA9PSBVc2VQcm90b2Nv
bENhY2hlUG9saWN5ICYmIGlzUG9zdE9yUmVkaXJlY3RBZnRlclBvc3QobmV3UmVxdWVzdCwgcmVk
aXJlY3RSZXNwb25zZSkpCiAgICAgICAgIG5ld1JlcXVlc3Quc2V0Q2FjaGVQb2xpY3koUmVsb2Fk
SWdub3JpbmdDYWNoZURhdGEpOwogCi0gICAgRnJhbWUqIHRvcCA9IG1fZnJhbWUtPnRyZWUoKS0+
dG9wKCk7Ci0gICAgaWYgKHRvcCAhPSBtX2ZyYW1lKSB7CisgICAgRnJhbWUqIHRvcCA9IG1fZG9j
dW1lbnRMb2FkZXItPmZyYW1lKCktPnRyZWUoKS0+dG9wKCk7CisgICAgaWYgKHRvcCAhPSBtX2Rv
Y3VtZW50TG9hZGVyLT5mcmFtZSgpKSB7CiAgICAgICAgIGlmICghZnJhbWVMb2FkZXIoKS0+bWl4
ZWRDb250ZW50Q2hlY2tlcigpLT5jYW5EaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmV3UmVxdWVzdC51cmwoKSkpIHsKICAgICAgICAgICAg
IGNhbmNlbCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3Bv
bnNlKTsKLQogICAgIC8vIERvbid0IHNldCB0aGlzIG9uIHRoZSBmaXJzdCByZXF1ZXN0LiBJdCBp
cyBzZXQgd2hlbiB0aGUgbWFpbiBsb2FkIHdhcyBzdGFydGVkLgotICAgIG1fZG9jdW1lbnRMb2Fk
ZXItPnNldFJlcXVlc3QobmV3UmVxdWVzdCk7CisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlz
TnVsbCgpKQorICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zZXRSZXF1ZXN0KG5ld1JlcXVlc3Qp
OwogCiAgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7CiAgICAgICAgIC8vIFdl
IGNoZWNrZWQgYXBwbGljYXRpb24gY2FjaGUgZm9yIGluaXRpYWwgVVJMLCBub3cgd2UgbmVlZCB0
byBjaGVjayBpdCBmb3IgcmVkaXJlY3RlZCBvbmUuCkBAIC0yNzcsMjcgKzI5NywyNiBAQAogICAg
ICAgICBpZiAoIWZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5jYW5TaG93TUlNRVR5cGUobWltZVR5
cGUpIHx8IGlzUmVtb3RlV2ViQXJjaGl2ZSkgewogICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+
cG9saWN5Q2hlY2tlcigpLT5jYW5ub3RTaG93TUlNRVR5cGUocik7CiAgICAgICAgICAgICAvLyBD
aGVjayByZWFjaGVkVGVybWluYWxTdGF0ZSBzaW5jZSB0aGUgbG9hZCBtYXkgaGF2ZSBhbHJlYWR5
IGJlZW4gY2FuY2VsZWQgaW5zaWRlIG9mIF9oYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3lXaXRo
RXJyb3JDb2RlOjouCi0gICAgICAgICAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0g
ICAgICAgICAgICAgICAgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKKyAgICAgICAgICAg
IHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgY2FzZSBQb2xpY3lEb3dubG9hZDog
ewotICAgICAgICAvLyBtX2hhbmRsZSBjYW4gYmUgbnVsbCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBz
dWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBwbGljYXRpb24gY2FjaGUuCi0gICAgICAgIGlmICgh
bV9oYW5kbGUpIHsKLSAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VSTEVycm9y
KCkpOworICAgICAgICAvLyBtX3Jlc291cmNlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGlu
ZyBhIHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KKyAgICAgICAg
aWYgKCFtX3Jlc291cmNlKSB7CisgICAgICAgICAgICByZWNlaXZlZEVycm9yKGZyYW1lTG9hZGVy
KCktPmNsaWVudCgpLT5jYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCgpKSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpj
b250aW51ZVdpdGhQb2xpY3lEb3dubG9hZChtX2ZyYW1lLmdldCgpLCBkb2N1bWVudExvYWRlcigp
LCBpZGVudGlmaWVyKCksIHIpOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNv
bnRpbnVlV2l0aFBvbGljeURvd25sb2FkKG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCksIGRvY3Vt
ZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcik7CiAKICAgICAgICAgLy8gV2hlbiBzdGFydGlu
ZyB0aGUgcmVxdWVzdCwgd2UgZGlkbid0IGtub3cgdGhhdCBpdCB3b3VsZCByZXN1bHQgaW4gZG93
bmxvYWQgYW5kIG5vdCBuYXZpZ2F0aW9uLiBOb3cgd2Uga25vdyB0aGF0IG1haW4gZG9jdW1lbnQg
VVJMIGRpZG4ndCBjaGFuZ2UuCiAgICAgICAgIC8vIERvd25sb2FkIG1heSB1c2UgdGhpcyBrbm93
bGVkZ2UgZm9yIHB1cnBvc2VzIHVucmVsYXRlZCB0byBjb29raWVzLCBub3RhYmx5IGZvciBzZXR0
aW5nIGZpbGUgcXVhcmFudGluZSBkYXRhLgogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCA9IHRoaXMtPnJlcXVlc3QoKTsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+c2V0T3JpZ2luYWxV
UkxGb3JEb3dubG9hZFJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+
Y2xpZW50KCktPmRvd25sb2FkKG1faGFuZGxlLmdldCgpLCByZXF1ZXN0LCByKTsKKyAgICAgICAg
ZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1fcmVzb3VyY2UtPmxvYWRlcigpLT5o
YW5kbGUoKSwgcmVxdWVzdCwgcik7CiAKICAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBnb25lIG1p
c3NpbmcKICAgICAgICAgaWYgKGZyYW1lTG9hZGVyKCkpCkBAIC0zMDUsNyArMzI0LDcgQEAKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIFBvbGljeUlnbm9yZToKLSAgICAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUobV9mcmFtZS5n
ZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKKyAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUobV9kb2N1bWVudExv
YWRlci0+ZnJhbWUoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKICAgICAg
ICAgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIApA
QCAtMzI5LDE0ICszNDgsMTAgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIHdlIG1heSBo
YXZlIGNhbmNlbGxlZCB0aGlzIGxvYWQgYXMgcGFydCBvZiBzd2l0Y2hpbmcgdG8gZmFsbGJhY2sg
Y29udGVudAotICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAgUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShyKTsKLQotICAgIGlmIChmcmFtZUxvYWRlcigp
ICYmICFmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5pc1N0b3BwaW5nKCkg
JiYgbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKKyAgICBpZiAoIW1fZG9jdW1lbnRMb2Fk
ZXItPmlzU3RvcHBpbmcoKSAmJiBtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgewogICAgICAg
ICBpZiAobV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSkKLSAgICAgICAgICAgIGRp
ZFJlY2VpdmVEYXRhKG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5kYXRhKCksIG1fc3Vic3Rp
dHV0ZURhdGEuY29udGVudCgpLT5zaXplKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5z
aXplKCksIHRydWUpOwotICAgICAgICBpZiAoZnJhbWVMb2FkZXIoKSAmJiAhZnJhbWVMb2FkZXIo
KS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+aXNTdG9wcGluZygpKSAKKyAgICAgICAgICAgIGRh
dGFSZWNlaXZlZCgwLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+ZGF0YSgpLCBtX3N1YnN0
aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKTsKKyAgICAgICAgaWYgKCFtX2RvY3VtZW50TG9h
ZGVyLT5pc1N0b3BwaW5nKCkpCiAgICAgICAgICAgICBkaWRGaW5pc2hMb2FkaW5nKDApOwogICAg
IH0KIH0KQEAgLTM1MCwxMyArMzY1LDE0IEBACiB7CiAgICAgQVNTRVJUKG1fd2FpdGluZ0ZvckNv
bnRlbnRQb2xpY3kpOwogICAgIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kgPSBmYWxzZTsKLSAg
ICBpZiAoZnJhbWVMb2FkZXIoKSAmJiAhZnJhbWVMb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2Fk
ZXIoKS0+aXNTdG9wcGluZygpKQorICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGlu
ZygpKQogICAgICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShwb2xpY3ksIG1fcmVzcG9u
c2UpOwotICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiBkaWRSZWNlaXZlUmVzcG9uc2UK
KyAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gcmVzcG9uc2VSZWNlaXZlZAogfQogCi12
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHIpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCiB7Cisg
ICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgbV9yZXNvdXJjZSA9PSByZXNvdXJjZSk7CiAgICAg
aWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZh
bGxiYWNrRm9yTWFpblJlc3BvbnNlKHJlcXVlc3QoKSwgcikpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMzY0LDEwICszODAsMTAgQEAKICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IHIuaHR0cEhlYWRlckZpZWxkcygpLmZpbmQoeEZyYW1lT3B0aW9uSGVhZGVyKTsKICAgICBp
ZiAoaXQgIT0gci5odHRwSGVhZGVyRmllbGRzKCkuZW5kKCkpIHsKICAgICAgICAgU3RyaW5nIGNv
bnRlbnQgPSBpdC0+dmFsdWU7Ci0gICAgICAgIGlmIChtX2ZyYW1lLT5sb2FkZXIoKS0+c2hvdWxk
SW50ZXJydXB0TG9hZEZvclhGcmFtZU9wdGlvbnMoY29udGVudCwgci51cmwoKSwgaWRlbnRpZmll
cigpKSkgewotICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZUFm
dGVyWEZyYW1lT3B0aW9uc0RlbmllZChtX2ZyYW1lLmdldCgpLCBkb2N1bWVudExvYWRlcigpLCBp
ZGVudGlmaWVyKCksIHIpOworICAgICAgICBpZiAoZnJhbWVMb2FkZXIoKS0+c2hvdWxkSW50ZXJy
dXB0TG9hZEZvclhGcmFtZU9wdGlvbnMoY29udGVudCwgci51cmwoKSwgaWRlbnRpZmllcigpKSkg
eworICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZUFmdGVyWEZy
YW1lT3B0aW9uc0RlbmllZChkb2N1bWVudExvYWRlcigpLT5mcmFtZSgpLCBkb2N1bWVudExvYWRl
cigpLCBpZGVudGlmaWVyKCksIHIpOwogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiUmVm
dXNlZCB0byBkaXNwbGF5ICciICsgci51cmwoKS5zdHJpbmcoKSArICInIGluIGEgZnJhbWUgYmVj
YXVzZSBpdCBzZXQgJ1gtRnJhbWUtT3B0aW9ucycgdG8gJyIgKyBjb250ZW50ICsgIicuIjsKLSAg
ICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCByLnVy
bCgpLnN0cmluZygpLCAwLCAwLCBpZGVudGlmaWVyKCkpOworICAgICAgICAgICAgZG9jdW1lbnRM
b2FkZXIoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHIudXJs
KCkuc3RyaW5nKCksIDAsIDAsIGlkZW50aWZpZXIoKSk7CiAKICAgICAgICAgICAgIGNhbmNlbCgp
OwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzgyLDcgKzM5OCw3IEBACiAKICAgICBpZiAobV9s
b2FkaW5nTXVsdGlwYXJ0Q29udGVudCkgewogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zZXR1
cEZvclJlcGxhY2UoKTsKLSAgICAgICAgY2xlYXJSZXNvdXJjZURhdGEoKTsKKyAgICAgICAgbV9y
ZXNvdXJjZS0+Y2xlYXIoKTsKICAgICB9CiAgICAgCiAgICAgaWYgKHIuaXNNdWx0aXBhcnQoKSkK
QEAgLTM5OCwxOSArNDE0LDE3IEBACiAKICAgICBBU1NFUlQoIW1fd2FpdGluZ0ZvckNvbnRlbnRQ
b2xpY3kpOwogICAgIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kgPSB0cnVlOwotICAgIHJlZigp
OyAvLyBiYWxhbmNlZCBieSBkZXJlZiBpbiBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeSBhbmQg
ZGlkQ2FuY2VsCisgICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRpbnVlQWZ0
ZXJDb250ZW50UG9saWN5IGFuZCBjYW5jZWwKIAotICAgIEFTU0VSVChmcmFtZUxvYWRlcigpLT5h
Y3RpdmVEb2N1bWVudExvYWRlcigpKTsKLQogICAgIC8vIEFsd2F5cyBzaG93IGNvbnRlbnQgd2l0
aCB2YWxpZCBzdWJzdGl0dXRlIGRhdGEuCi0gICAgaWYgKGZyYW1lTG9hZGVyKCktPmFjdGl2ZURv
Y3VtZW50TG9hZGVyKCktPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxpZCgpKSB7CisgICAgaWYgKG1f
ZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxpZCgpKSB7CiAgICAgICAgIGNh
bGxDb250aW51ZUFmdGVyQ29udGVudFBvbGljeSh0aGlzLCBQb2xpY3lVc2UpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAjaWYgRU5BQkxFKEZUUERJUikKICAgICAvLyBSZXNwZWN0IHRoZSBo
aWRkZW4gRlRQIERpcmVjdG9yeSBMaXN0aW5nIHByZWYgc28gaXQgY2FuIGJlIHRlc3RlZCBldmVu
IGlmIHRoZSBwb2xpY3kgZGVsZWdhdGUgbWlnaHQgb3RoZXJ3aXNlIGRpc2FsbG93IGl0Ci0gICAg
U2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKKyAgICBTZXR0aW5ncyog
c2V0dGluZ3MgPSBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpLT5zZXR0aW5ncygpOwogICAgIGlm
IChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+Zm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncygpICYmIG1f
cmVzcG9uc2UubWltZVR5cGUoKSA9PSAiYXBwbGljYXRpb24veC1mdHAtZGlyZWN0b3J5Iikgewog
ICAgICAgICBjYWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3kodGhpcywgUG9saWN5VXNlKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtNDI1LDExICs0MzksMTEgQEAKICAgICBmcmFtZUxvYWRlcigp
LT5wb2xpY3lDaGVja2VyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCBjYWxsQ29u
dGludWVBZnRlckNvbnRlbnRQb2xpY3ksIHRoaXMpOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBs
b25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3ZvaWQgTWFpblJlc291cmNl
TG9hZGVyOjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChkYXRhKTsKICAgICBBU1NFUlQobGVu
Z3RoICE9IDApOwotCisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9y
ZXNvdXJjZSk7CiAgICAgQVNTRVJUKCFtX3Jlc3BvbnNlLmlzTnVsbCgpKTsKIAogI2lmIFVTRShD
Rk5FVFdPUkspIHx8IFBMQVRGT1JNKE1BQykKQEAgLTQ1NCwxNiArNDY4LDE1IEBACiAgICAgICAg
IC8vIElmIHdlIGRvbid0IGhhdmUgYmxvY2tlZERhdGEsIHRoYXQgbWVhbnMgd2UncmUgc3RpbGwg
YWNjdW11bGF0aW5nIGRhdGEKICAgICAgICAgaWYgKCFibG9ja2VkRGF0YSkgewogICAgICAgICAg
ICAgLy8gVHJhbnNpdGlvbiB0byBjb21taXR0ZWQgc3RhdGUuCi0gICAgICAgICAgICBSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoIiIsIDAsIDAsIGZhbHNlKTsKKyAgICAgICAgICAgIGRv
Y3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YSgwLCAwKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCiAgICAgICAgIGRhdGEgPSBibG9ja2VkRGF0YTsKLSAgICAgICAgZW5jb2Rl
ZERhdGFMZW5ndGggPSAtMTsKICAgICB9CiAjZW5kaWYKIAotICAgIGRvY3VtZW50TG9hZGVyKCkt
PmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNlaXZlZChkYXRhLCBs
ZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOworICAgIGRvY3VtZW50TG9hZGVy
KCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNlaXZlZChkYXRh
LCBsZW5ndGgsIC0xLCBmYWxzZSk7CiAKICAgICAvLyBUaGUgYWRkaXRpb25hbCBwcm9jZXNzaW5n
IGNhbiBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3ZpbmcgdGhlIGxhc3QKICAg
ICAvLyByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2
NjIxNi4KQEAgLTQ3MSw3ICs0ODQsNyBAQAogCiAgICAgbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVk
ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAKLSAgICBSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNl
KTsKKyAgICBkb2N1bWVudExvYWRlcigpLT5yZWNlaXZlZERhdGEoZGF0YSwgbGVuZ3RoKTsKIAog
I2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKFdlYkZpbHRlckV2YWx1YXRvciAqZmlsdGVy
ID0gbV9maWx0ZXIpIHsKQEAgLTUwOCw3ICs1MjEsNyBAQAogICAgICAgICAvLyBSZW1vdmUgdGhp
cy0+bV9maWx0ZXIgZWFybHkgc28gZGlkUmVjZWl2ZURhdGEgZG9lc24ndCBzZWUgaXQuCiAgICAg
ICAgIG1fZmlsdGVyID0gMDsKICAgICAgICAgaWYgKGRhdGEpCi0gICAgICAgICAgICBkaWRSZWNl
aXZlRGF0YShkYXRhLCBsZW5ndGgsIC0xLCBmYWxzZSk7CisgICAgICAgICAgICBkYXRhUmVjZWl2
ZWQobV9yZXNvdXJjZS5nZXQoKSwgZGF0YSwgbGVuZ3RoKTsKICAgICAgICAgd2tGaWx0ZXJSZWxl
YXNlKGZpbHRlcik7CiAgICAgfQogI2VuZGlmCkBAIC01MTgsMTMgKzUzMSwxOCBAQAogCiAgICAg
ZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPnNldFJlc3BvbnNlRW5kKGZpbmlzaFRpbWUgPyBm
aW5pc2hUaW1lIDogKG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA/IG1fdGltZU9mTGFzdERhdGFS
ZWNlaXZlZCA6IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKSk7CiAgICAgZG9jdW1lbnRM
b2FkZXIoKS0+ZmluaXNoZWRMb2FkaW5nKCk7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlz
aExvYWRpbmcoZmluaXNoVGltZSk7CiAKICAgICBkbC0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+
ZmluaXNoZWRMb2FkaW5nTWFpblJlc291cmNlKCk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKKyAg
ICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCBtX3Jlc291cmNlID09IHJlc291cmNlKTsKKyAgICBp
ZiAoIW1fcmVzb3VyY2UgfHwgKCFtX3Jlc291cmNlLT5lcnJvck9jY3VycmVkKCkgJiYgIW1fcmVz
b3VyY2UtPndhc0NhbmNlbGVkKCkpKSB7CisgICAgICAgIGRpZEZpbmlzaExvYWRpbmcobV9yZXNv
dXJjZS0+bG9hZEZpbmlzaFRpbWUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICNpZiBQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChtX2ZpbHRlcikgewogICAgICAgICB3a0ZpbHRlclJl
bGVhc2UobV9maWx0ZXIpOwpAQCAtNTMyLDYgKzU1MCw3IEBACiAgICAgfQogI2VuZGlmCiAKKyAg
ICBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IG1fcmVzb3VyY2UtPnJlc291cmNlRXJyb3Io
KTsKICAgICBpZiAoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5
YmVMb2FkRmFsbGJhY2tGb3JNYWluRXJyb3IocmVxdWVzdCgpLCBlcnJvcikpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtNTQ3LDcgKzU2Niw2IEBACiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
IHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkxvYWRlcik7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9y
eVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1faW5pdGlhbFJl
cXVlc3QpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc3Vic3RpdHV0ZURhdGEpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1fZGF0YUxvYWRUaW1lcik7CkBAIC01NjYsNyArNTg0LDcgQEAKICAgICBtX2lu
aXRpYWxSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiAgICAgICAgIAogICAgIFJlc291cmNl
UmVzcG9uc2UgcmVzcG9uc2UodXJsLCBtX3N1YnN0aXR1dGVEYXRhLm1pbWVUeXBlKCksIG1fc3Vi
c3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCksIG1fc3Vic3RpdHV0ZURhdGEudGV4dEVuY29k
aW5nKCksICIiKTsKLSAgICBkaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOworICAgIHJlc3Bv
bnNlUmVjZWl2ZWQoMCwgcmVzcG9uc2UpOwogfQogCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6
c3RhcnREYXRhTG9hZFRpbWVyKCkKQEAgLTU3NCw3ICs1OTIsNyBAQAogICAgIG1fZGF0YUxvYWRU
aW1lci5zdGFydE9uZVNob3QoMCk7CiAKICNpZiBIQVZFKFJVTkxPT1BfVElNRVIpCi0gICAgaWYg
KFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gbV9mcmFtZS0+cGFnZSgpLT5z
Y2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkKKyAgICBpZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2No
ZWR1bGVkUGFpcnMgPSBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpLT5wYWdlKCktPnNjaGVkdWxl
ZFJ1bkxvb3BQYWlycygpKQogICAgICAgICBtX2RhdGFMb2FkVGltZXIuc2NoZWR1bGUoKnNjaGVk
dWxlZFBhaXJzKTsKICNlbmRpZgogfQpAQCAtNTg5LDI5ICs2MDcsOCBAQAogICAgICAgICBoYW5k
bGVTdWJzdGl0dXRlRGF0YUxvYWROb3coMCk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVy
Ojpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikKLXsKLSAgICBBU1NFUlQoIW1faGFuZGxlKTsK
LSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0KLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRF
R0lFUykKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyKCktPmFkZE1haW5SZXNvdXJjZUxvYWQodGhpcyk7Ci0jZWxzZQotICAg
IHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5hZGRNYWluUmVzb3VyY2VMb2FkKHRoaXMpOwotI2Vu
ZGlmCi0KLSAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpCi0gICAgICAgIGhhbmRs
ZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocik7Ci0gICAgZWxzZQotICAgICAgICBtX2hhbmRsZSA9
IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250
ZXh0KCksIHIsIHRoaXMsIGZhbHNlLCB0cnVlKTsKLQotICAgIHJldHVybjsKLX0KLQogdm9pZCBN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByLCBjb25zdCBT
dWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCiB7Ci0gICAgQVNTRVJUKCFtX2hhbmRsZSk7
Ci0KICAgICAvLyBJdCBhcHBlYXJzIHRoYXQgaXQgaXMgcG9zc2libGUgZm9yIHRoaXMgbG9hZCB0
byBiZSBjYW5jZWxsZWQgYW5kIGRlcmVmZW5jZWQgYnkgdGhlIERvY3VtZW50TG9hZGVyCiAgICAg
Ly8gaW4gd2lsbFNlbmRSZXF1ZXN0KCkgaWYgbG9hZE5vdygpIGlzIGNhbGxlZC4KICAgICBSZWZQ
dHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwpAQCAtNjI5LDM3ICs2MjYsNjQg
QEAKICAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSgpKTsKICAg
ICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7CiAKLSAgICAvLyA8cmRhcjovL3Byb2JsZW0v
NDgwMTA2Nj4KLSAgICAvLyB3aWxsU2VuZFJlcXVlc3QoKSBpcyBsaWFibGUgdG8gbWFrZSB0aGUg
Y2FsbCB0byBmcmFtZUxvYWRlcigpIHJldHVybiBudWxsLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHRo
YXQgaGVyZQotICAgIGlmICghZnJhbWVMb2FkZXIoKSB8fCByZXF1ZXN0LmlzTnVsbCgpKSB7Ci0g
ICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAgICAgIHJlbGVhc2VS
ZXNvdXJjZXMoKTsKKyAgICAvLyB3aWxsU2VuZFJlcXVlc3QoKSBtYXkgbGVhZCB0byBvdXIgRG9j
dW1lbnRMb2FkZXIgYmVpbmcgZGV0YWNoZWQgb3IgY2FuY2VsbGluZyB0aGUgbG9hZCB2aWEgbnVs
bGluZyB0aGUgUmVzb3VyY2VSZXF1ZXN0LgorICAgIGlmICghZG9jdW1lbnRMb2FkZXIoKS0+ZnJh
bWUoKSB8fCByZXF1ZXN0LmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAg
ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkTWFpblJl
c291cmNlKHJlcXVlc3QsIG1fc3Vic3RpdHV0ZURhdGEpOwogCi0gICAgaWYgKGRlZmVyc0xvYWRp
bmcoKSkKLSAgICAgICAgbV9pbml0aWFsUmVxdWVzdCA9IHJlcXVlc3Q7Ci0gICAgZWxzZQotICAg
ICAgICBsb2FkTm93KHJlcXVlc3QpOworICAgIGNvbnN0IEtVUkwmIHVybCA9IHIudXJsKCk7CisK
KyAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpCisgICAgICAgIGhhbmRsZVN1YnN0
aXR1dGVEYXRhTG9hZFNvb24ocik7CisgICAgZWxzZSB7CisgICAgICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRp
b25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwKKyAgICAgICAgICAg
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlh
bHMsIFNraXBTZWN1cml0eUNoZWNrKSk7CisgICAgICAgIG1fcmVzb3VyY2UgPSBkb2N1bWVudExv
YWRlcigpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0TWFpblJlc291cmNlKGNhY2hl
ZFJlc291cmNlUmVxdWVzdCk7CisgICAgICAgIGlmICghbV9yZXNvdXJjZSkgeworICAgICAgICAg
ICAgZG9jdW1lbnRMb2FkZXIoKS0+c2V0UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoKSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50
KHRoaXMpOworCisgICAgICAgIC8vIFdlIG5lZWQgdG8gd2FpdCB1bnRpbCBhZnRlciByZXF1ZXN0
TWFpblJlc291cmNlKCkgaXMgY2FsbGVkIHRvIHNldFJlcXVlc3QoKSwgYmVjYXVzZSB0aGVyZSBh
cmUgYSBidW5jaCBvZiBoZWFkZXJzIHNldCB3aGVuCisgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5n
IFJlc291cmNlTG9hZGVyIGlzIGNyZWF0ZWQsIGFuZCBEb2N1bWVudExvYWRlcjo6bV9yZXF1ZXN0
IG5lZWRzIHRvIGluY2x1ZGUgdGhvc2UuIEhvd2V2ZXIsIHRoZSBjYWNoZSB3aWxsCisgICAgICAg
IC8vIHN0cmlwIHRoZSBmcmFnbWVudCBpZGVudGlmaWVyICh3aGljaCBEb2N1bWVudExvYWRlcjo6
bV9yZXF1ZXN0IHNob3VsZCBhbHNvIGluY2x1ZGUpLCBzbyBhZGQgdGhhdCBiYWNrIGluLgorICAg
ICAgICBpZiAobG9hZGVyKCkpCisgICAgICAgICAgICByZXF1ZXN0ID0gbG9hZGVyKCktPm9yaWdp
bmFsUmVxdWVzdCgpOworICAgICAgICBpZiAodXJsICE9IHJlcXVlc3QudXJsKCkpCisgICAgICAg
ICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworICAgICAgICBkb2N1bWVudExvYWRlcigpLT5zZXRS
ZXF1ZXN0KHJlcXVlc3QpOworICAgIH0KIH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnNl
dERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OnNldERl
ZmVyc0xvYWRpbmcoZGVmZXJzKTsKKyAgICBpZiAobG9hZGVyKCkpCisgICAgICAgIGxvYWRlcigp
LT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7Cit9CiAKLSAgICBpZiAoZGVmZXJzKSB7Ci0gICAg
ICAgIGlmIChtX2RhdGFMb2FkVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fZGF0YUxv
YWRUaW1lci5zdG9wKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1faW5pdGlhbFJlcXVl
c3QuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm47Citib29sIE1haW5SZXNvdXJjZUxvYWRl
cjo6ZGVmZXJzTG9hZGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGxvYWRlcigpID8gbG9hZGVy
KCktPmRlZmVyc0xvYWRpbmcoKSA6IGZhbHNlOworfQogCi0gICAgICAgIFJlc291cmNlUmVxdWVz
dCBpbml0aWFsUmVxdWVzdChtX2luaXRpYWxSZXF1ZXN0KTsKLSAgICAgICAgbV9pbml0aWFsUmVx
dWVzdCA9IFJlc291cmNlUmVxdWVzdCgpOwotICAgICAgICBsb2FkTm93KGluaXRpYWxSZXF1ZXN0
KTsKLSAgICB9Cit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YShE
YXRhQnVmZmVyaW5nUG9saWN5IHNob3VsZEJ1ZmZlckRhdGEpCit7CisgICAgQVNTRVJUKG1fcmVz
b3VyY2UpOworICAgIG1fcmVzb3VyY2UtPnNldFNob3VsZEJ1ZmZlckRhdGEoc2hvdWxkQnVmZmVy
RGF0YSk7CiB9CiAKK1Jlc291cmNlTG9hZGVyKiBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWRlcigp
IGNvbnN0Cit7IAorICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+bG9hZGVyKCkg
OiAwOwogfQorCit1bnNpZ25lZCBsb25nIE1haW5SZXNvdXJjZUxvYWRlcjo6aWRlbnRpZmllcigp
IGNvbnN0Cit7CisgICAgaWYgKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciA9IGxvYWRl
cigpKQorICAgICAgICByZXR1cm4gcmVzb3VyY2VMb2FkZXItPmlkZW50aWZpZXIoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzYyNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUJ1
ZmZlci5oIgpAQCAtMTQ3LDYgKzE0OCwxMCBAQAogICAgICAgICByZXR1cm47CiAKICAgICBSZXNv
dXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2Up
OworCisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpICYmIG1fcmVzb3VyY2UtPnR5
cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKQorICAgICAgICBmcmFtZUxvYWRl
cigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWQoKTsKKwogICAgIGlmIChuZXdSZXF1ZXN0LmlzTnVsbCgpKQogICAgICAgICBjYW5j
ZWwoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmgJKHJl
dmlzaW9uIDEzNjI0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUu
aAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQAogICAgIC8vIFRoZXNlIG1ldGhvZHMg
YXJlIG1lYW50IGZvciBzdWJjbGFzc2VzIGZvciBkaWZmZXJlbnQgYXJjaGl2ZSB0eXBlcyB0byBh
ZGQgcmVzb3VyY2VzIGluIHRvIHRoZSBhcmNoaXZlLAogICAgIC8vIGFuZCBzaG91bGQgbm90IGJl
IGV4cG9zZWQgYXMgYXJjaGl2ZXMgc2hvdWxkIGJlIGltbXV0YWJsZSB0byBjbGllbnRzCiAgICAg
dm9pZCBzZXRNYWluUmVzb3VyY2UoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IG1haW5SZXNv
dXJjZSkgeyBtX21haW5SZXNvdXJjZSA9IG1haW5SZXNvdXJjZTsgfQotICAgIHZvaWQgYWRkU3Vi
cmVzb3VyY2UoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YlJlc291cmNlKSB7IG1fc3Vi
cmVzb3VyY2VzLmFwcGVuZChzdWJSZXNvdXJjZSk7IH0KKyAgICB2b2lkIGFkZFN1YnJlc291cmNl
KFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBzdWJyZXNvdXJjZSk7CiAgICAgdm9pZCBhZGRT
dWJmcmFtZUFyY2hpdmUoUGFzc1JlZlB0cjxBcmNoaXZlPiBzdWJmcmFtZUFyY2hpdmUpIHsgbV9z
dWJmcmFtZUFyY2hpdmVzLmFwcGVuZChzdWJmcmFtZUFyY2hpdmUpOyB9CiAKICAgICB2b2lkIGNs
ZWFyQWxsU3ViZnJhbWVBcmNoaXZlcygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvQXJjaGl2ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvQXJjaGl2ZS5jcHAJKHJldmlzaW9uIDEzNjI0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMiBA
QAogewogfQogCit2b2lkIEFyY2hpdmU6OmFkZFN1YnJlc291cmNlKFBhc3NSZWZQdHI8QXJjaGl2
ZVJlc291cmNlPiBzdWJyZXNvdXJjZSkKK3sKKyAgICBpZiAobV9tYWluUmVzb3VyY2UtPnVybCgp
ICE9IHN1YnJlc291cmNlLT51cmwoKSkKKyAgICAgICAgbV9zdWJyZXNvdXJjZXMuYXBwZW5kKHN1
YnJlc291cmNlKTsKK30KKwogdm9pZCBBcmNoaXZlOjpjbGVhckFsbFN1YmZyYW1lQXJjaGl2ZXMo
KQogewogICAgIFZlY3RvcjxSZWZQdHI8QXJjaGl2ZT4gPiBjbGVhcmVkQXJjaGl2ZXM7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM2MjQ5KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTY1LDYgKzY1LDcgQEAKICAgICBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcigp
OwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOworICAgIGJv
b2wgZGVmZXJzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJzTG9hZGluZzsgfQogCiAg
ICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CiAKQEAgLTE2OCw3ICsxNjksNiBAQAogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ09uZVBh
cnQoZG91YmxlIGZpbmlzaFRpbWUpOwogCiAgICAgYm9vbCBjYW5jZWxsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2NhbmNlbGxlZDsgfQotICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0IHsgcmV0
dXJuIG1fZGVmZXJzTG9hZGluZzsgfQogCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX2hh
bmRsZTsKICAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHJldmlzaW9uIDEzNjI0OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCwxMyAr
MTgwLDcgQEAKICAgICAvLyB3b3VsZCBiZSBhIFdlYkZvdW5kYXRpb24gYnVnIGlmIGl0IHNlbnQg
YSByZWRpcmVjdCBjYWxsYmFjayBhZnRlciBjb21taXQuCiAgICAgQVNTRVJUKCFtX2NvbW1pdHRl
ZCk7CiAKLSAgICBLVVJMIG9sZFVSTCA9IG1fcmVxdWVzdC51cmwoKTsKICAgICBtX3JlcXVlc3Qg
PSByZXE7Ci0KLSAgICAvLyBPbmx5IGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkKCkgaWYgVVJMIGNoYW5nZWQgKGFuZCBpcyBub24tbnVsbCkuCi0gICAg
Ly8gQWxzbywgZG9uJ3Qgc2VuZCBpdCB3aGVuIHJlcGxhY2luZyB1bnJlYWNoYWJsZSBVUkxzIHdp
dGggYWx0ZXJuYXRlIGNvbnRlbnQuCi0gICAgaWYgKCFoYW5kbGluZ1VucmVhY2hhYmxlVVJMICYm
ICFyZXEudXJsKCkuaXNOdWxsKCkgJiYgb2xkVVJMICE9IHJlcS51cmwoKSkKLSAgICAgICAgZnJh
bWVMb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldE1haW5Eb2N1
bWVudEVycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtODExLDExICs4MDUsMjAg
QEAKIAogdm9pZCBEb2N1bWVudExvYWRlcjo6YWRkU3VicmVzb3VyY2VMb2FkZXIoUmVzb3VyY2VM
b2FkZXIqIGxvYWRlcikKIHsKKyAgICAvLyBUaGUgbWFpbiByZXNvdXJjZSdzIHVuZGVybHlpbmcg
UmVzb3VyY2VMb2FkZXIgd2lsbCBhc2sgdG8gYmUgYWRkZWQgaGVyZS4KKyAgICAvLyBJdCBpcyBt
dWNoIHNpbXBsZXIgdG8gaGFuZGxlIHNwZWNpYWwgY2FzaW5nIG9mIG1haW4gcmVzb3VyY2UgbG9h
ZHMgaWYgd2UgZG9uJ3QKKyAgICAvLyBsZXQgaXQgYmUgYWRkZWQuIEluIHRoZSBtYWluIHJlc291
cmNlIGxvYWQgY2FzZSwgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpCisgICAgLy8gd2ls
bCBzdGlsbCBiZSBudWxsIGF0IHRoaXMgcG9pbnQsIGJ1dCBtX2dvdEZpcnN0Qnl0ZSBzaG91bGQg
YmUgZmFsc2UgaGVyZSBpZiBhbmQgb25seQorICAgIC8vIGlmIHdlIGFyZSBqdXN0IHN0YXJ0aW5n
IHRoZSBtYWluIHJlc291cmNlIGxvYWQuCisgICAgaWYgKCFtX2dvdEZpcnN0Qnl0ZSkKKyAgICAg
ICAgcmV0dXJuOwogICAgIG1fc3VicmVzb3VyY2VMb2FkZXJzLmFkZChsb2FkZXIpOwogfQogCiB2
b2lkIERvY3VtZW50TG9hZGVyOjpyZW1vdmVTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRl
ciogbG9hZGVyKQogeworICAgIGlmICghbV9zdWJyZXNvdXJjZUxvYWRlcnMuY29udGFpbnMobG9h
ZGVyKSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fc3VicmVzb3VyY2VMb2FkZXJzLnJlbW92ZShs
b2FkZXIpOwogICAgIGNoZWNrTG9hZENvbXBsZXRlKCk7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9
IG1fZnJhbWUpCkBAIC04NzIsNyArODc1LDcgQEAKICAgICBpZiAobWF5YmVMb2FkRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9tYWluUmVzb3VyY2VMb2FkZXIgPSBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmNyZWF0ZShtX2ZyYW1lKTsKKyAgICBtX21haW5SZXNvdXJjZUxvYWRlciA9IE1h
aW5SZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHRoaXMpOwogCiAgICAgLy8gRklYTUU6IElzIHRoZXJl
IGFueSB3YXkgdGhlIGV4dHJhIGZpZWxkcyBjb3VsZCBoYXZlIG5vdCBiZWVuIGFkZGVkIGJ5IG5v
dz8KICAgICAvLyBJZiBub3QsIGl0IHdvdWxkIGJlIGdyZWF0IHRvIHJlbW92ZSB0aGlzIGxpbmUg
b2YgY29kZS4KQEAgLTg4MSw2ICs4ODQsMTAgQEAKIAogICAgIGlmIChtX3JlcXVlc3QuaXNOdWxs
KCkpIHsKICAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXIgPSAwOworICAgICAgICAvLyBJZiB0
aGUgbG9hZCB3YXMgYWJvcnRlZCBieSBjbGVhcmluZyBtX3JlcXVlc3QsIGl0J3MgcG9zc2libGUg
dGhlIEFwcGxpY2F0aW9uQ2FjaGVIb3N0CisgICAgICAgIC8vIGlzIG5vdyBpbiBhIHN0YXRlIHdo
ZXJlIHN0YXJ0aW5nIGFuIGVtcHR5IGxvYWQgd2lsbCBiZSBpbmNvbnNpc3RlbnQuIFJlcGxhY2Ug
aXQgd2l0aAorICAgICAgICAvLyBhIG5ldyBBcHBsaWNhdGlvbkNhY2hlSG9zdC4KKyAgICAgICAg
bV9hcHBsaWNhdGlvbkNhY2hlSG9zdCA9IGFkb3B0UHRyKG5ldyBBcHBsaWNhdGlvbkNhY2hlSG9z
dCh0aGlzKSk7CiAgICAgICAgIG1heWJlTG9hZEVtcHR5KCk7CiAgICAgfQogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM2MjQ5
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaWZuZGVmIE1haW5SZXNvdXJjZUxvYWRlcl9oCiAj
ZGVmaW5lIE1haW5SZXNvdXJjZUxvYWRlcl9oCiAKKyNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJj
ZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3Vi
c3RpdHV0ZURhdGEuaCIKQEAgLTQ5LDQwICs1MSw0MiBAQAogY2xhc3MgRm9ybVN0YXRlOwogY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OwogCi1jbGFzcyBNYWluUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMg
UmVzb3VyY2VMb2FkZXIgeworY2xhc3MgTWFpblJlc291cmNlTG9hZGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8TWFpblJlc291cmNlTG9hZGVyPiwgcHVibGljIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShGcmFtZSopOworICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gY3JlYXRlKERvY3VtZW50TG9hZGVyKik7CiAg
ICAgdmlydHVhbCB+TWFpblJlc291cmNlTG9hZGVyKCk7CiAKICAgICB2b2lkIGxvYWQoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKLSAgICB2aXJ0dWFsIHZv
aWQgYWRkRGF0YShjb25zdCBjaGFyKiwgaW50LCBib29sIGFsbEF0T25jZSkgT1ZFUlJJREU7Cisg
ICAgdm9pZCBjYW5jZWwoKTsKKyAgICB2b2lkIGNhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJik7
CisgICAgUmVzb3VyY2VMb2FkZXIqIGxvYWRlcigpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8UmVz
b3VyY2VCdWZmZXI+IHJlc291cmNlRGF0YSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldERlZmVy
c0xvYWRpbmcoYm9vbCkgT1ZFUlJJREU7CisgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wp
OworICAgIHZvaWQgc2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVmZmVyaW5nUG9saWN5KTsKIAot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxv
bmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJ
REU7Ci0KICNpZiBIQVZFKFJVTkxPT1BfVElNRVIpCiAgICAgdHlwZWRlZiBSdW5Mb29wVGltZXI8
TWFpblJlc291cmNlTG9hZGVyPiBNYWluUmVzb3VyY2VMb2FkZXJUaW1lcjsKICNlbHNlCiAgICAg
dHlwZWRlZiBUaW1lcjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNvdXJjZUxvYWRlclRpbWVy
OwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBjb25zdDsKICAgICBi
b29sIGlzTG9hZGluZ011bHRpcGFydENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2xvYWRpbmdN
dWx0aXBhcnRDb250ZW50OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworICAgIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IE1haW5SZXNvdXJjZUxvYWRlcihGcmFtZSopOworICAgIGV4cGxpY2l0IE1haW5SZXNvdXJjZUxv
YWRlcihEb2N1bWVudExvYWRlciopOwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29u
c3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwo
Y29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWRpcmVj
dFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVk
KENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgZGF0YUxlbmd0aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZp
bmlzaGVkKENhY2hlZFJlc291cmNlKikgT1ZFUlJJREU7CiAKLSAgICB2b2lkIGxvYWROb3coUmVz
b3VyY2VSZXF1ZXN0Jik7Ci0KKyAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgaGFuZGxlU3Vi
c3RpdHV0ZURhdGFMb2FkU29vbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGhh
bmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdyhNYWluUmVzb3VyY2VMb2FkZXJUaW1lciopOwogCkBA
IC0xMDQsMTAgKzEwOCwyMiBAQAogICAgIHZvaWQgc3Vic3RpdHV0ZU1JTUVUeXBlRnJvbVBsdWdp
bkRhdGFiYXNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICNlbmRpZgogCisgICAgRnJhbWVM
b2FkZXIqIGZyYW1lTG9hZGVyKCkgY29uc3Q7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50
TG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQoKTsgfQorCisgICAg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgY29uc3Q7CisgICAgdm9pZCBjbGVhclJl
c291cmNlKCk7CisKKyAgICBib29sIGRlZmVyc0xvYWRpbmcoKSBjb25zdDsKKworICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOworCiAgICAgUmVz
b3VyY2VSZXF1ZXN0IG1faW5pdGlhbFJlcXVlc3Q7CiAgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJz
dGl0dXRlRGF0YTsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAKICAgICBNYWlu
UmVzb3VyY2VMb2FkZXJUaW1lciBtX2RhdGFMb2FkVGltZXI7CisgICAgUmVmUHRyPERvY3VtZW50
TG9hZGVyPiBtX2RvY3VtZW50TG9hZGVyOwogCiAgICAgYm9vbCBtX2xvYWRpbmdNdWx0aXBhcnRD
b250ZW50OwogICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVI
b3N0LmNwcAkocmV2aXNpb24gMTM2MjQ5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEw
Myw3IEBACiAgICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsKICAgICAg
ICAgICAgIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZSA9IEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5SZXF1ZXN0KHJlcXVlc3QsIGRvY3VtZW50TG9hZGVy
KCkpOwogCi0gICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21B
cHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBt
X21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKHNj
aGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExv
YWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBw
bGljYXRpb25DYWNoZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0xMTcsNyArMTE3LDcgQEAKICAgICAgICAgaWYgKGlzQXBwbGljYXRp
b25DYWNoZUVuYWJsZWQoKSkgewogICAgICAgICAgICAgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlv
bkNhY2hlID0gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9yTWFpblJlcXVl
c3QocmVxdWVzdCwgbV9kb2N1bWVudExvYWRlcik7CiAKLSAgICAgICAgICAgIGlmIChzY2hlZHVs
ZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIo
KS0+bWFpblJlc291cmNlTG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5n
ZXQoKSkpCisgICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21B
cHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5s
b2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDEzNjI0OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDEyLTExLTI4ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJjZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkg
Y2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sOiBUaGUgbWFpbiBy
ZXNvdXJjZSdzIHVybCB3aWxsIGV4Y2x1ZGUgdGhlIGZyYWdtZW50IGlkZW50aWZpZXIgaGVyZS4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxs
LW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogVGhlIGVycm9yIGNvZGUgZm9yIGxvYWRzIGNhbmNl
bGxlZAorICAgICAgICAgICAgYnkgYW4gZW1iZWRkZXIncyB3aWxsU2VuZFJlcXVlc3QoKSB3aWxs
IHNob3cgYXMgc3RhbmRhcmQgbG9hZCBjYW5jZWxsYXRpb25zIHJhdGhlciB0aGFuIGFzIGEgY29u
dGVudCBwb2xpY3kKKyAgICAgICAgICAgIGZhaWx1cmUuIFRoaXMgd2FzIGFuIG9kZCBxdWlyayBv
ZiBob3cgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoKSB3YXMgaW1wbGVtZW50
ZWQgKG5hbWVseSwgZG9pbmcgYQorICAgICAgICAgICAgY29udGVudCBwb2xpY3kgY2hlY2sgb24g
UmVzb3VyY2VSZXF1ZXN0cyB3aXRoIGVtcHR5IHVybHMpLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24t
cmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBTZWUgcHJldmlvdXMuCisKIDIwMTItMTEtMzAgIFN0ZXBo
ZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1d
IEZpeGluZyBUZXN0RXhwZWN0YXRpb25zCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJl
cXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTM2
MjQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJl
dHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIs
NyArMiw3IEBACiA8dW5rbm93bj4gLSBkaWRGaW5pc2hMb2FkaW5nCiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gd2lsbFNlbmRS
ZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vLCBtYWluIGRv
Y3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1y
ZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJl
c3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNl
cy9yZWRpcmVjdC10by1odHRwLXVybC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgogUmV0dXJu
aW5nIG51bGwgZm9yIHRoaXMgcmVkaXJlY3QKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jl
c291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJv
cjogPE5TRXJyb3IgZG9tYWluIFdlYktpdEVycm9yRG9tYWluLCBjb2RlIDEwMj4KK2h0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBk
aWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21haW4s
IGNvZGUgLTk5OT4KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU5
NQogVGhpcyB0ZXN0IGNoZWNrcyB0byBtYWtlIHN1cmUgdGhhdCB0aGluZ3MgYmVoYXZlIGFzIGV4
cGVjdGVkIHdoZW4gdGhlIHJlc291cmNlIGxvYWQgZGVsZWdhdGUgcmV0dXJucyBudWxsIGluIHJl
c3BvbnNlIHRvIHdpbGxTZW5kUmVxdWVzdC4KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbAkocmV2
aXNpb24gMTM2MjQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2UtcGFyYW1ldGVycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw3ICsxNyw3IEBACiAgICAg
ZnVuY3Rpb24gb25SZXF1ZXN0RmluaXNoZWQoZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgcmVx
dWVzdCA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmIChyZXF1ZXN0LnVybCAhPT0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaT9xdWVyeVBh
cmFtMT1xdWVyeVZhbHVlMSZxdWVyeVBhcmFtMj0jZnJhZ21lbnRQYXJhbTE9ZnJhZ21lbnRWYWx1
ZTEmZnJhZ21lbnRQYXJhbTI9IikKKyAgICAgICAgaWYgKHJlcXVlc3QudXJsICE9PSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5
UGFyYW0xPXF1ZXJ5VmFsdWUxJnF1ZXJ5UGFyYW0yPSIpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KG5ldyBXZWJJbnNwZWN0b3IuSEFSRW50cnko
cmVxdWVzdCkuYnVpbGQoKSwgSW5zcGVjdG9yVGVzdC5IQVJQcm9wZXJ0eUZvcm1hdHRlcnMpOwog
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVy
bnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJl
dHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNjI0OSkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQt
cmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0yLDcgKzIsNyBAQAogPHVua25vd24+IC0gZGlkRmluaXNoTG9hZGluZwogaHR0cDov
LzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAt
IHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vd3d3LmV4YW1wbGUuY29t
LywgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2Mvd2lsbC1zZW5k
LXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4g
cmVkaXJlY3RSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwLCBodHRwIHN0YXR1cyBjb2RlIDMw
Mj4KIFJldHVybmluZyBudWxsIGZvciB0aGlzIHJlZGlyZWN0Ci1odHRwOi8vMTI3LjAuMC4xOjgw
MDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gZGlkRmFpbExvYWRp
bmdXaXRoRXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBXZWJLaXQsIGNvZGUgLTEwMDAwLCBmYWlsaW5n
IFVSTCAiKG51bGwpIj4KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRp
cmVjdC10by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3Ig
ZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5OSwgZmFpbGluZyBVUkwgIihudWxsKSI+
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1OTUKIFRoaXMgdGVz
dCBjaGVja3MgdG8gbWFrZSBzdXJlIHRoYXQgdGhpbmdzIGJlaGF2ZSBhcyBleHBlY3RlZCB3aGVu
IHRoZSByZXNvdXJjZSBsb2FkIGRlbGVnYXRlIHJldHVybnMgbnVsbCBpbiByZXNwb25zZSB0byB3
aWxsU2VuZFJlcXVlc3QuCiAK
</data>
<flag name="commit-queue"
          id="193146"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177317</attachid>
            <date>2012-12-03 13:42:56 -0800</date>
            <delta_ts>2012-12-04 11:04:41 -0800</delta_ts>
            <desc>Merged in r136412, rebase the failing cr-linux test</desc>
            <filename>cmr_1203c.txt</filename>
            <type>text/plain</type>
            <size>58600</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjQzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDEyLTEyLTAzICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJj
ZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGRvZXNuJ3QgYWN0
dWFsbHkgZW5hYmxlIGNhY2hpbmcgb2YgbWFpbiByZXNvdXJjZXMuIFRoYXQgd2lsbCBiZSBkb25l
IGluIGEgbGF0ZXIgcGF0Y2guCisgICAgICAgIFRoZSBNYWluUmVzb3VyY2VMb2FkZXIgYWN0dWFs
bHkgaGFzIGFuIHVuZGVybHlpbmcgU3VicmVzb3VyY2VMb2FkZXIgKHdpdGggdGhlIGNhY2hlIGxh
eWVyIGJldHdlZW4gdGhlbSkuCisgICAgICAgIEluIHNldmVyYWwgcGxhY2VzLCB0aGUgTWFpblJl
c291cmNlTG9hZGVyJ3MgU3VicmVzb3VyY2VMb2FkZXIgaXMgdHJlYXRlZCBhcyBzcGVjaWFsLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpcyBwcmltYXJpbHkgYSByZWZhY3Rvci4g
QSBjb3VwbGUgb2YgZXhwZWN0ZWQgcmVzdWx0cyBjaGFuZ2VkIHNsaWdodGx5LgorCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjpzZXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjph
ZGRTdWJyZXNvdXJjZUxvYWRlcik6IEJlY2F1c2UgdGhlIFN1YnJlc291cmNlTG9hZGVyIHVuZGVy
bHlpbmcgdGhlIG1haW4gcmVzb3VyY2UKKyAgICAgICAgICAgIG5lZWRzIHNwZWNpYWwgaGFuZGxp
bmcgaW4gY2VydGFpbiBjYXNlcywgdHJhY2sgaXQgc2VwYXJhdGVseSBmcm9tIHRoZSByZWFsIFN1
YnJlc291cmNlTG9hZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZW1v
dmVTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6TWFpblJl
c291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6cmVj
ZWl2ZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNl
bCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVzb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2Fk
ZXI6OmZyYW1lTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVl
QWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6cmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRl
cjo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2Fk
ZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWlu
UmVzb3VyY2VMb2FkZXI6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJl
c291cmNlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWlu
UmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWFp
blJlc291cmNlTG9hZGVyOjpkZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OmlkZW50aWZpZXIpOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuaDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OmRvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkZWZlcnNM
b2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpjYW5jZWxsZWQpOgor
ICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRGYWxsYmFja0Zv
ck1haW5FcnJvcik6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBcmNoaXZlOjphZGRTdWJyZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmg6CisgICAgICAgIChBcmNoaXZl
KToKKyAgICAgICAgKiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzY2hlZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6dW5zY2hlZHVsZSk6CisKIDIwMTItMTItMDMgIFhhbiBMb3BleiAgPHhh
bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFN1cHBvcnQgPHBlcmNl
bnRhZ2U+IGFuZCB2aWV3cG9ydC1yZWxhdGl2ZSBicmVhZHRoIHNpemVzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHJldmlzaW9uIDEzNjQxNykKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4MCwxMyArMTgwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c2V0UmVxdWVzdChjb25zdCBS
ZQogICAgIC8vIHdvdWxkIGJlIGEgV2ViRm91bmRhdGlvbiBidWcgaWYgaXQgc2VudCBhIHJlZGly
ZWN0IGNhbGxiYWNrIGFmdGVyIGNvbW1pdC4KICAgICBBU1NFUlQoIW1fY29tbWl0dGVkKTsKIAot
ICAgIEtVUkwgb2xkVVJMID0gbV9yZXF1ZXN0LnVybCgpOwogICAgIG1fcmVxdWVzdCA9IHJlcTsK
LQotICAgIC8vIE9ubHkgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWQoKSBpZiBVUkwgY2hhbmdlZCAoYW5kIGlzIG5vbi1udWxsKS4KLSAgICAvLyBBbHNv
LCBkb24ndCBzZW5kIGl0IHdoZW4gcmVwbGFjaW5nIHVucmVhY2hhYmxlIFVSTHMgd2l0aCBhbHRl
cm5hdGUgY29udGVudC4KLSAgICBpZiAoIWhhbmRsaW5nVW5yZWFjaGFibGVVUkwgJiYgIXJlcS51
cmwoKS5pc051bGwoKSAmJiBvbGRVUkwgIT0gcmVxLnVybCgpKQotICAgICAgICBmcmFtZUxvYWRl
cigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWQoKTsKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6c2V0TWFpbkRvY3VtZW50RXJy
b3IoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC04MTEsMTEgKzgwNSwyMCBAQCB2b2lk
IERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZ1N1YnJlc291CiAKIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OmFkZFN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCiB7CisgICAg
Ly8gVGhlIG1haW4gcmVzb3VyY2UncyB1bmRlcmx5aW5nIFJlc291cmNlTG9hZGVyIHdpbGwgYXNr
IHRvIGJlIGFkZGVkIGhlcmUuCisgICAgLy8gSXQgaXMgbXVjaCBzaW1wbGVyIHRvIGhhbmRsZSBz
cGVjaWFsIGNhc2luZyBvZiBtYWluIHJlc291cmNlIGxvYWRzIGlmIHdlIGRvbid0CisgICAgLy8g
bGV0IGl0IGJlIGFkZGVkLiBJbiB0aGUgbWFpbiByZXNvdXJjZSBsb2FkIGNhc2UsIG1fbWFpblJl
c291cmNlTG9hZGVyLT5sb2FkZXIoKQorICAgIC8vIHdpbGwgc3RpbGwgYmUgbnVsbCBhdCB0aGlz
IHBvaW50LCBidXQgbV9nb3RGaXJzdEJ5dGUgc2hvdWxkIGJlIGZhbHNlIGhlcmUgaWYgYW5kIG9u
bHkKKyAgICAvLyBpZiB3ZSBhcmUganVzdCBzdGFydGluZyB0aGUgbWFpbiByZXNvdXJjZSBsb2Fk
LgorICAgIGlmICghbV9nb3RGaXJzdEJ5dGUpCisgICAgICAgIHJldHVybjsKICAgICBtX3N1YnJl
c291cmNlTG9hZGVycy5hZGQobG9hZGVyKTsKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6cmVt
b3ZlU3VicmVzb3VyY2VMb2FkZXIoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKIHsKKyAgICBpZiAo
IW1fc3VicmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5zKGxvYWRlcikpCisgICAgICAgIHJldHVybjsK
ICAgICBtX3N1YnJlc291cmNlTG9hZGVycy5yZW1vdmUobG9hZGVyKTsKICAgICBjaGVja0xvYWRD
b21wbGV0ZSgpOwogICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2ZyYW1lKQpAQCAtODgxLDYgKzg4
NCwxMCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzCiAKICAgICBp
ZiAobV9yZXF1ZXN0LmlzTnVsbCgpKSB7CiAgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0g
MDsKKyAgICAgICAgLy8gSWYgdGhlIGxvYWQgd2FzIGFib3J0ZWQgYnkgY2xlYXJpbmcgbV9yZXF1
ZXN0LCBpdCdzIHBvc3NpYmxlIHRoZSBBcHBsaWNhdGlvbkNhY2hlSG9zdAorICAgICAgICAvLyBp
cyBub3cgaW4gYSBzdGF0ZSB3aGVyZSBzdGFydGluZyBhbiBlbXB0eSBsb2FkIHdpbGwgYmUgaW5j
b25zaXN0ZW50LiBSZXBsYWNlIGl0IHdpdGgKKyAgICAgICAgLy8gYSBuZXcgQXBwbGljYXRpb25D
YWNoZUhvc3QuCisgICAgICAgIG1fYXBwbGljYXRpb25DYWNoZUhvc3QgPSBhZG9wdFB0cihuZXcg
QXBwbGljYXRpb25DYWNoZUhvc3QodGhpcykpOwogICAgICAgICBtYXliZUxvYWRFbXB0eSgpOwog
ICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwCShyZXZpc2lvbiAxMzY0MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJl
c291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQAogCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNDQsMTUgKzQ2LDE1IEBACiAj
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJMb2FkZXJTdHJh
dGVneS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCIKKyNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRs
ZS5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNjaGVt
ZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgorI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAKICNpZiBQTEFURk9STShRVCkKQEAgLTYzLDEzICs2NSwxMSBAQAogI2lu
Y2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCi0vLyBGSVhNRTogTW9y
ZSB0aGF0IGlzIGluIGNvbW1vbiB3aXRoIFN1YnJlc291cmNlTG9hZGVyIHNob3VsZCBtb3ZlIHVw
IGludG8gUmVzb3VyY2VMb2FkZXIuCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWFpblJlc291
cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9h
ZGVyKQotICAgIDogUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnRMb2FkZXItPmZyYW1lKCksIFJlc291
cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEs
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlh
bHMsIFNraXBTZWN1cml0eUNoZWNrKSkKLSAgICAsIG1fZGF0YUxvYWRUaW1lcih0aGlzLCAmTWFp
blJlc291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3cpCisgICAgOiBtX2Rh
dGFMb2FkVGltZXIodGhpcywgJk1haW5SZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURh
dGFMb2FkTm93KQorICAgICwgbV9kb2N1bWVudExvYWRlcihkb2N1bWVudExvYWRlcikKICAgICAs
IG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3dhaXRpbmdGb3JDb250
ZW50UG9saWN5KGZhbHNlKQogICAgICwgbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkKDAuMCkKQEAg
LTEwMiwzNCArMTAyLDMyIEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZWNlaXZlZEVycm9y
KGMKICAgICAvLyBkb2N1bWVudCBsb2FkZXJzLiBBbHNvLCBtYWluUmVjZWl2ZWRFcnJvciBlbmRz
IHVwIGNhbGxpbmcgYSBGcmFtZUxvYWREZWxlZ2F0ZSBtZXRob2QKICAgICAvLyBhbmQgZGlkRmFp
bFRvTG9hZCBjYWxscyBhIFJlc291cmNlTG9hZERlbGVnYXRlIG1ldGhvZCBhbmQgdGhleSBuZWVk
IHRvIGJlIGluIHRoZSBjb3JyZWN0IG9yZGVyLgogICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5S
ZWNlaXZlZEVycm9yKGVycm9yKTsKK30KIAotICAgIGlmICghY2FuY2VsbGVkKCkpIHsKLSAgICAg
ICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsKLSAgICAgICAgZnJhbWVMb2FkZXIo
KS0+bm90aWZpZXIoKS0+ZGlkRmFpbFRvTG9hZCh0aGlzLCBlcnJvcik7Ci0gICAgICAgIAotICAg
ICAgICByZWxlYXNlUmVzb3VyY2VzKCk7Ci0gICAgfQotCi0gICAgQVNTRVJUKHJlYWNoZWRUZXJt
aW5hbFN0YXRlKCkpOwordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbCgpCit7CisgICAg
Y2FuY2VsKFJlc291cmNlRXJyb3IoKSk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3
aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OmNhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKKyAgICBSZWZQdHI8TWFpblJl
c291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VF
cnJvciA9IGVycm9yLmlzTnVsbCgpID8gZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IocmVx
dWVzdCgpKSA6IGVycm9yOworCiAgICAgbV9kYXRhTG9hZFRpbWVyLnN0b3AoKTsKIAogICAgIGlm
IChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KSB7CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnBv
bGljeUNoZWNrZXIoKS0+Y2FuY2VsQ2hlY2soKTsKICAgICAgICAgQVNTRVJUKG1fd2FpdGluZ0Zv
ckNvbnRlbnRQb2xpY3kpOwogICAgICAgICBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5ID0gZmFs
c2U7Ci0gICAgICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiBkaWRSZWNlaXZlUmVzcG9u
c2UKKyAgICAgICAgZGVyZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGluIHJlc3BvbnNlUmVjZWl2ZWQK
ICAgICB9Ci19CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRDYW5jZWwoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgLy8gV2Ugc2hvdWxkIG5vdGlmeSB0aGUgZnJhbWUg
bG9hZGVyIGFmdGVyIGZ1bGx5IGNhbmNlbGluZyB0aGUgbG9hZCwgYmVjYXVzZSBpdCBjYW4gZG8g
Y29tcGxpY2F0ZWQgd29yawotICAgIC8vIGxpa2UgY2FsbGluZyBET01XaW5kb3c6OnByaW50KCks
IGR1cmluZyB3aGljaCBhIGhhbGYtY2FuY2VsZWQgbG9hZCBjb3VsZCB0cnkgdG8gZmluaXNoLgot
ICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNlaXZlZEVycm9yKGVycm9yKTsKKyAgICBpZiAo
bG9hZGVyKCkpCisgICAgICAgIGxvYWRlcigpLT5jYW5jZWwocmVzb3VyY2VFcnJvcik7CisKKyAg
ICBjbGVhclJlc291cmNlKCk7CisgICAgcmVjZWl2ZWRFcnJvcihyZXNvdXJjZUVycm9yKTsKIAog
I2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKG1fZmlsdGVyKSB7CkBAIC0xMzksNiArMTM3
LDI0IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRDYW5jZWwoY29uc3QKICNlbmRpZgog
fQogCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y2xlYXJSZXNvdXJjZSgpCit7CisgICAgaWYg
KG1fcmVzb3VyY2UpIHsKKyAgICAgICAgbV9yZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOwor
ICAgICAgICBtX3Jlc291cmNlID0gMDsKKyAgICB9Cit9CisKK0ZyYW1lTG9hZGVyKiBNYWluUmVz
b3VyY2VMb2FkZXI6OmZyYW1lTG9hZGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb2N1bWVu
dExvYWRlci0+ZnJhbWVMb2FkZXIoKTsKK30KKworY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBNYWlu
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc291cmNl
ID8gbV9yZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCkgOiBtX2luaXRpYWxSZXF1ZXN0OworfQor
CiBSZXNvdXJjZUVycm9yIE1haW5SZXNvdXJjZUxvYWRlcjo6aW50ZXJydXB0ZWRGb3JQb2xpY3lD
aGFuZ2VFcnJvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgp
LT5pbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QoKSk7CkBAIC0xNjMsNyAr
MTc5LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJOYQogICAgIGVs
c2UgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAgICAgIC8vIEEgcmVkaXJl
Y3QgcmVzdWx0ZWQgaW4gbG9hZGluZyBzdWJzdGl0dXRlIGRhdGEuCiAgICAgICAgIEFTU0VSVChk
b2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+cmVkaXJlY3RDb3VudCgpKTsKLSAgICAgICAgaGFu
ZGxlKCktPmNhbmNlbCgpOworICAgICAgICBjbGVhclJlc291cmNlKCk7CiAgICAgICAgIGhhbmRs
ZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocmVxdWVzdCk7CiAgICAgfQogCkBAIC0xODMsMTAgKzE5
OSwxNSBAQCBib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6aXNQb3N0T3JSZWRpcmVjCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK1Bhc3NSZWZQdHI8UmVzb3Vy
Y2VCdWZmZXI+IE1haW5SZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VEYXRhKCkKIHsKLSAgICBSZXNv
dXJjZUxvYWRlcjo6YWRkRGF0YShkYXRhLCBsZW5ndGgsIGFsbEF0T25jZSk7Ci0gICAgZG9jdW1l
bnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKGRhdGEsIGxlbmd0aCk7CisgICAgcmV0dXJuIG1fcmVz
b3VyY2UgPyBtX3Jlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpIDogMDsKK30KKwordm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OnJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UpCit7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0g
bV9yZXNvdXJjZSk7CisgICAgd2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9u
c2UpOwogfQogCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RS
ZXNwb25zZSkKQEAgLTIzOSwxMCArMjYwLDkgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6Ondp
bGxTZW5kUmVxdWVzdAogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVzb3VyY2VMb2FkZXI6Ondp
bGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKLQogICAgIC8vIERv
bid0IHNldCB0aGlzIG9uIHRoZSBmaXJzdCByZXF1ZXN0LiBJdCBpcyBzZXQgd2hlbiB0aGUgbWFp
biBsb2FkIHdhcyBzdGFydGVkLgotICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3
UmVxdWVzdCk7CisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKQorICAgICAgICBt
X2RvY3VtZW50TG9hZGVyLT5zZXRSZXF1ZXN0KG5ld1JlcXVlc3QpOwogCiAgICAgaWYgKCFyZWRp
cmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7CiAgICAgICAgIC8vIFdlIGNoZWNrZWQgYXBwbGljYXRp
b24gY2FjaGUgZm9yIGluaXRpYWwgVVJMLCBub3cgd2UgbmVlZCB0byBjaGVjayBpdCBmb3IgcmVk
aXJlY3RlZCBvbmUuCkBAIC0yNzcsMTcgKzI5NywxNiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRl
cjo6Y29udGludWVBZnRlckNvCiAgICAgICAgIGlmICghZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkt
PmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSkgfHwgaXNSZW1vdGVXZWJBcmNoaXZlKSB7CiAgICAg
ICAgICAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNhbm5vdFNob3dNSU1FVHlw
ZShyKTsKICAgICAgICAgICAgIC8vIENoZWNrIHJlYWNoZWRUZXJtaW5hbFN0YXRlIHNpbmNlIHRo
ZSBsb2FkIG1heSBoYXZlIGFscmVhZHkgYmVlbiBjYW5jZWxlZCBpbnNpZGUgb2YgX2hhbmRsZVVu
aW1wbGVtZW50YWJsZVBvbGljeVdpdGhFcnJvckNvZGU6Oi4KLSAgICAgICAgICAgIGlmICghcmVh
Y2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAgICAgICAgICBzdG9wTG9hZGluZ0ZvclBvbGlj
eUNoYW5nZSgpOworICAgICAgICAgICAgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CiAKICAg
ICBjYXNlIFBvbGljeURvd25sb2FkOiB7Ci0gICAgICAgIC8vIG1faGFuZGxlIGNhbiBiZSBudWxs
LCBlLmcuIHdoZW4gbG9hZGluZyBhIHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlv
biBjYWNoZS4KLSAgICAgICAgaWYgKCFtX2hhbmRsZSkgewotICAgICAgICAgICAgcmVjZWl2ZWRF
cnJvcihjYW5ub3RTaG93VVJMRXJyb3IoKSk7CisgICAgICAgIC8vIG1fcmVzb3VyY2UgY2FuIGJl
IG51bGwsIGUuZy4gd2hlbiBsb2FkaW5nIGEgc3Vic3RpdHV0ZSByZXNvdXJjZSBmcm9tIGFwcGxp
Y2F0aW9uIGNhY2hlLgorICAgICAgICBpZiAoIW1fcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHJl
Y2VpdmVkRXJyb3IoZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmNhbm5vdFNob3dVUkxFcnJvcihy
ZXF1ZXN0KCkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBvbGljeURvd25sb2FkKG1fZG9jdW1l
bnRMb2FkZXItPmZyYW1lKCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcik7CkBA
IC0yOTcsNyArMzE2LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJD
bwogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IHRoaXMtPnJlcXVlc3QoKTsKICAg
ICAgICAgZnJhbWVMb2FkZXIoKS0+c2V0T3JpZ2luYWxVUkxGb3JEb3dubG9hZFJlcXVlc3QocmVx
dWVzdCk7CiAKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1faGFu
ZGxlLmdldCgpLCByZXF1ZXN0LCByKTsKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkt
PmRvd25sb2FkKG1fcmVzb3VyY2UtPmxvYWRlcigpLT5oYW5kbGUoKSwgcmVxdWVzdCwgcik7CiAK
ICAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBnb25lIG1pc3NpbmcKICAgICAgICAgaWYgKGZyYW1l
TG9hZGVyKCkpCkBAIC0zMjksMTMgKzM0OCw5IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpj
b250aW51ZUFmdGVyQ28KICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIHdlIG1heSBoYXZlIGNh
bmNlbGxlZCB0aGlzIGxvYWQgYXMgcGFydCBvZiBzd2l0Y2hpbmcgdG8gZmFsbGJhY2sgY29udGVu
dAotICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZShyKTsKLQotICAgIGlmIChtX2RvY3VtZW50TG9hZGVyICYm
ICFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3BwaW5nKCkgJiYgbV9zdWJzdGl0dXRlRGF0YS5pc1Zh
bGlkKCkpIHsKKyAgICBpZiAoIW1fZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSAmJiBtX3N1
YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgewogICAgICAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5j
b250ZW50KCktPnNpemUoKSkKLSAgICAgICAgICAgIGRpZFJlY2VpdmVEYXRhKG1fc3Vic3RpdHV0
ZURhdGEuY29udGVudCgpLT5kYXRhKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXpl
KCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCksIHRydWUpOworICAgICAgICAg
ICAgZGF0YVJlY2VpdmVkKDAsIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5kYXRhKCksIG1f
c3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCkpOwogICAgICAgICBpZiAoIW1fZG9jdW1l
bnRMb2FkZXItPmlzU3RvcHBpbmcoKSkKICAgICAgICAgICAgIGRpZEZpbmlzaExvYWRpbmcoMCk7
CiAgICAgfQpAQCAtMzUyLDExICszNjcsMTIgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNv
bnRpbnVlQWZ0ZXJDbwogICAgIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kgPSBmYWxzZTsKICAg
ICBpZiAoIW1fZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSkKICAgICAgICAgY29udGludWVB
ZnRlckNvbnRlbnRQb2xpY3kocG9saWN5LCBtX3Jlc3BvbnNlKTsKLSAgICBkZXJlZigpOyAvLyBi
YWxhbmNlcyByZWYgaW4gZGlkUmVjZWl2ZVJlc3BvbnNlCisgICAgZGVyZWYoKTsgLy8gYmFsYW5j
ZXMgcmVmIGluIHJlc3BvbnNlUmVjZWl2ZWQKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQordm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQogeworICAgIEFTU0VSVF9VTlVTRUQocmVzb3Vy
Y2UsIG1fcmVzb3VyY2UgPT0gcmVzb3VyY2UpOwogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5h
cHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZShy
ZXF1ZXN0KCksIHIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTM4Miw3ICszOTgsNyBAQCB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvCiAKICAgICBpZiAobV9sb2FkaW5n
TXVsdGlwYXJ0Q29udGVudCkgewogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zZXR1cEZvclJl
cGxhY2UoKTsKLSAgICAgICAgY2xlYXJSZXNvdXJjZURhdGEoKTsKKyAgICAgICAgbV9yZXNvdXJj
ZS0+Y2xlYXIoKTsKICAgICB9CiAgICAgCiAgICAgaWYgKHIuaXNNdWx0aXBhcnQoKSkKQEAgLTM5
OCw3ICs0MTQsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvCiAK
ICAgICBBU1NFUlQoIW1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kpOwogICAgIG1fd2FpdGluZ0Zv
ckNvbnRlbnRQb2xpY3kgPSB0cnVlOwotICAgIHJlZigpOyAvLyBiYWxhbmNlZCBieSBkZXJlZiBp
biBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeSBhbmQgZGlkQ2FuY2VsCisgICAgcmVmKCk7IC8v
IGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5IGFuZCBjYW5j
ZWwKIAogICAgIC8vIEFsd2F5cyBzaG93IGNvbnRlbnQgd2l0aCB2YWxpZCBzdWJzdGl0dXRlIGRh
dGEuCiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxpZCgp
KSB7CkBAIC00MjMsMTEgKzQzOSwxMSBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvCiAgICAgZnJhbWVMb2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLT5jaGVja0NvbnRl
bnRQb2xpY3kobV9yZXNwb25zZSwgY2FsbENvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5LCB0aGlz
KTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBh
bGxBdE9uY2UpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGF0YVJlY2VpdmVkKENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBB
U1NFUlQoZGF0YSk7CiAgICAgQVNTRVJUKGxlbmd0aCAhPSAwKTsKLQorICAgIEFTU0VSVF9VTlVT
RUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fcmVzb3VyY2UpOwogICAgIEFTU0VSVCghbV9yZXNw
b25zZS5pc051bGwoKSk7CiAKICNpZiBVU0UoQ0ZORVRXT1JLKSB8fCBQTEFURk9STShNQUMpCkBA
IC00NTIsMTYgKzQ2OCwxNSBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURh
dGEoCiAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYmxvY2tlZERhdGEsIHRoYXQgbWVhbnMg
d2UncmUgc3RpbGwgYWNjdW11bGF0aW5nIGRhdGEKICAgICAgICAgaWYgKCFibG9ja2VkRGF0YSkg
ewogICAgICAgICAgICAgLy8gVHJhbnNpdGlvbiB0byBjb21taXR0ZWQgc3RhdGUuCi0gICAgICAg
ICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoIiIsIDAsIDAsIGZhbHNlKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YSgwLCAwKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGRhdGEgPSBibG9ja2VkRGF0YTsKLSAg
ICAgICAgZW5jb2RlZERhdGFMZW5ndGggPSAtMTsKICAgICB9CiAjZW5kaWYKIAotICAgIGRvY3Vt
ZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNl
aXZlZChkYXRhLCBsZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOworICAgIGRv
Y3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFS
ZWNlaXZlZChkYXRhLCBsZW5ndGgsIC0xLCBmYWxzZSk7CiAKICAgICAvLyBUaGUgYWRkaXRpb25h
bCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3Zpbmcg
dGhlIGxhc3QKICAgICAvLyByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9m
IHRoaXMgaXMgMzI2NjIxNi4KQEAgLTQ2OSw3ICs0ODQsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZURhdGEoCiAKICAgICBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIAotICAgIFJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YShkYXRhLCBsZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOwor
ICAgIGRvY3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YShkYXRhLCBsZW5ndGgpOwogCiAjaWYg
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwODAKICAgICBpZiAoV2ViRmlsdGVyRXZhbHVhdG9yICpmaWx0ZXIgPSBt
X2ZpbHRlcikgewpAQCAtNDkwLDcgKzUwNSw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW4KICAgICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUg
Y2FsbGJhY2tzIGNhbiBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQu
CiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgog
I2lmICFVU0UoQ0YpCi0gICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkgfHwgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjppc0RlYnVnZ2VyUGF1c2VkKG1fZnJhbWUuZ2V0KCkpKTsKKyAgICBBU1NF
UlQoIWRlZmVyc0xvYWRpbmcoKSB8fCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRGVidWdn
ZXJQYXVzZWQobV9kb2N1bWVudExvYWRlci0+ZnJhbWUoKSkpOwogI2VuZGlmCiAKICAgICAvLyBU
aGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2li
bHkgcmVtb3ZpbmcgdGhlIGxhc3QKQEAgLTUwNiw3ICs1MjEsNyBAQCB2b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluCiAgICAgICAgIC8vIFJlbW92ZSB0aGlzLT5tX2ZpbHRl
ciBlYXJseSBzbyBkaWRSZWNlaXZlRGF0YSBkb2Vzbid0IHNlZSBpdC4KICAgICAgICAgbV9maWx0
ZXIgPSAwOwogICAgICAgICBpZiAoZGF0YSkKLSAgICAgICAgICAgIGRpZFJlY2VpdmVEYXRhKGRh
dGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKKyAgICAgICAgICAgIGRhdGFSZWNlaXZlZChtX3Jlc291
cmNlLmdldCgpLCBkYXRhLCBsZW5ndGgpOwogICAgICAgICB3a0ZpbHRlclJlbGVhc2UoZmlsdGVy
KTsKICAgICB9CiAjZW5kaWYKQEAgLTUxNiwxMyArNTMxLDE4IEBAIHZvaWQgTWFpblJlc291cmNl
TG9hZGVyOjpkaWRGaW5pc2hMb2FkaW4KIAogICAgIGRvY3VtZW50TG9hZGVyKCktPnRpbWluZygp
LT5zZXRSZXNwb25zZUVuZChmaW5pc2hUaW1lID8gZmluaXNoVGltZSA6IChtX3RpbWVPZkxhc3RE
YXRhUmVjZWl2ZWQgPyBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgOiBtb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKSkpOwogICAgIGRvY3VtZW50TG9hZGVyKCktPmZpbmlzaGVkTG9hZGluZygp
OwotICAgIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOwogCiAg
ICAgZGwtPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPmZpbmlzaGVkTG9hZGluZ01haW5SZXNvdXJj
ZSgpOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwg
bV9yZXNvdXJjZSA9PSByZXNvdXJjZSk7CisgICAgaWYgKCFtX3Jlc291cmNlIHx8ICghbV9yZXNv
dXJjZS0+ZXJyb3JPY2N1cnJlZCgpICYmICFtX3Jlc291cmNlLT53YXNDYW5jZWxlZCgpKSkgewor
ICAgICAgICBkaWRGaW5pc2hMb2FkaW5nKG1fcmVzb3VyY2UtPmxvYWRGaW5pc2hUaW1lKCkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICBpZiAo
bV9maWx0ZXIpIHsKICAgICAgICAgd2tGaWx0ZXJSZWxlYXNlKG1fZmlsdGVyKTsKQEAgLTUzMCw2
ICs1NTAsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSCiAgICAg
fQogI2VuZGlmCiAKKyAgICBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IG1fcmVzb3VyY2Ut
PnJlc291cmNlRXJyb3IoKTsKICAgICBpZiAoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluRXJyb3IocmVxdWVzdCgpLCBlcnJv
cikpCiAgICAgICAgIHJldHVybjsKIApAQCAtNTQ1LDcgKzU2Niw2IEBAIHZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFIKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAog
ewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNv
cmVNZW1vcnlUeXBlczo6TG9hZGVyKTsKLSAgICBSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5
VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9pbml0aWFsUmVx
dWVzdCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdWJzdGl0dXRlRGF0YSk7CiAgICAgaW5mby5h
ZGRNZW1iZXIobV9kYXRhTG9hZFRpbWVyKTsKQEAgLTU2NCw3ICs1ODQsNyBAQCB2b2lkIE1haW5S
ZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0CiAgICAgbV9pbml0aWFsUmVxdWVzdCA9IFJl
c291cmNlUmVxdWVzdCgpOwogICAgICAgICAKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
KHVybCwgbV9zdWJzdGl0dXRlRGF0YS5taW1lVHlwZSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRl
bnQoKS0+c2l6ZSgpLCBtX3N1YnN0aXR1dGVEYXRhLnRleHRFbmNvZGluZygpLCAiIik7Ci0gICAg
ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKyAgICByZXNwb25zZVJlY2VpdmVkKDAsIHJl
c3BvbnNlKTsKIH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnN0YXJ0RGF0YUxvYWRUaW1l
cigpCkBAIC01ODcsMjkgKzYwNyw4IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVT
dWJzdGl0dXQKICAgICAgICAgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KDApOwogfQogCi12
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZE5vdyhSZXNvdXJjZVJlcXVlc3QmIHIpCi17Ci0g
ICAgQVNTRVJUKCFtX2hhbmRsZSk7Ci0gICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkpOwotCi0j
aWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0gICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxv
YWRlclN0cmF0ZWd5KCktPnJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5hZGRNYWluUmVzb3VyY2VM
b2FkKHRoaXMpOwotI2Vsc2UKLSAgICByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+YWRkTWFpblJl
c291cmNlTG9hZCh0aGlzKTsKLSNlbmRpZgotCi0gICAgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNW
YWxpZCgpKQotICAgICAgICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWRTb29uKHIpOwotICAgIGVs
c2UKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxv
YWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCByLCB0aGlzLCBmYWxzZSwgdHJ1ZSk7Ci0KLSAg
ICByZXR1cm47Ci19Ci0KIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgciwgY29uc3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKQogewot
ICAgIEFTU0VSVCghbV9oYW5kbGUpOwotCiAgICAgLy8gSXQgYXBwZWFycyB0aGF0IGl0IGlzIHBv
c3NpYmxlIGZvciB0aGlzIGxvYWQgdG8gYmUgY2FuY2VsbGVkIGFuZCBkZXJlZmVuY2VkIGJ5IHRo
ZSBEb2N1bWVudExvYWRlcgogICAgIC8vIGluIHdpbGxTZW5kUmVxdWVzdCgpIGlmIGxvYWROb3co
KSBpcyBjYWxsZWQuCiAgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlz
KTsKQEAgLTYyNywzNyArNjI2LDY0IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNv
bnN0IFJlc28KICAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSgp
KTsKICAgICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7CiAKLSAgICAvLyA8cmRhcjovL3By
b2JsZW0vNDgwMTA2Nj4KLSAgICAvLyB3aWxsU2VuZFJlcXVlc3QoKSBpcyBsaWFibGUgdG8gbWFr
ZSB0aGUgY2FsbCB0byBmcmFtZUxvYWRlcigpIHJldHVybiBudWxsLCBzbyB3ZSBuZWVkIHRvIGNo
ZWNrIHRoYXQgaGVyZQotICAgIGlmICghZnJhbWVMb2FkZXIoKSB8fCByZXF1ZXN0LmlzTnVsbCgp
KSB7Ci0gICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAgICAgIHJl
bGVhc2VSZXNvdXJjZXMoKTsKKyAgICAvLyB3aWxsU2VuZFJlcXVlc3QoKSBtYXkgbGVhZCB0byBv
dXIgRG9jdW1lbnRMb2FkZXIgYmVpbmcgZGV0YWNoZWQgb3IgY2FuY2VsbGluZyB0aGUgbG9hZCB2
aWEgbnVsbGluZyB0aGUgUmVzb3VyY2VSZXF1ZXN0LgorICAgIGlmICghZG9jdW1lbnRMb2FkZXIo
KS0+ZnJhbWUoKSB8fCByZXF1ZXN0LmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQog
CiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2Fk
TWFpblJlc291cmNlKHJlcXVlc3QsIG1fc3Vic3RpdHV0ZURhdGEpOwogCi0gICAgaWYgKGRlZmVy
c0xvYWRpbmcoKSkKLSAgICAgICAgbV9pbml0aWFsUmVxdWVzdCA9IHJlcXVlc3Q7Ci0gICAgZWxz
ZQotICAgICAgICBsb2FkTm93KHJlcXVlc3QpOworICAgIGNvbnN0IEtVUkwmIHVybCA9IHIudXJs
KCk7CisKKyAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpCisgICAgICAgIGhhbmRs
ZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocik7CisgICAgZWxzZSB7CisgICAgICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwKKyAgICAg
ICAgICAgIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3Jl
ZGVudGlhbHMsIFNraXBTZWN1cml0eUNoZWNrKSk7CisgICAgICAgIG1fcmVzb3VyY2UgPSBkb2N1
bWVudExvYWRlcigpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0TWFpblJlc291cmNl
KGNhY2hlZFJlc291cmNlUmVxdWVzdCk7CisgICAgICAgIGlmICghbV9yZXNvdXJjZSkgeworICAg
ICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+c2V0UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoKSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9yZXNvdXJjZS0+YWRk
Q2xpZW50KHRoaXMpOworCisgICAgICAgIC8vIFdlIG5lZWQgdG8gd2FpdCB1bnRpbCBhZnRlciBy
ZXF1ZXN0TWFpblJlc291cmNlKCkgaXMgY2FsbGVkIHRvIHNldFJlcXVlc3QoKSwgYmVjYXVzZSB0
aGVyZSBhcmUgYSBidW5jaCBvZiBoZWFkZXJzIHNldCB3aGVuCisgICAgICAgIC8vIHRoZSB1bmRl
cmx5aW5nIFJlc291cmNlTG9hZGVyIGlzIGNyZWF0ZWQsIGFuZCBEb2N1bWVudExvYWRlcjo6bV9y
ZXF1ZXN0IG5lZWRzIHRvIGluY2x1ZGUgdGhvc2UuIEhvd2V2ZXIsIHRoZSBjYWNoZSB3aWxsCisg
ICAgICAgIC8vIHN0cmlwIHRoZSBmcmFnbWVudCBpZGVudGlmaWVyICh3aGljaCBEb2N1bWVudExv
YWRlcjo6bV9yZXF1ZXN0IHNob3VsZCBhbHNvIGluY2x1ZGUpLCBzbyBhZGQgdGhhdCBiYWNrIGlu
LgorICAgICAgICBpZiAobG9hZGVyKCkpCisgICAgICAgICAgICByZXF1ZXN0ID0gbG9hZGVyKCkt
Pm9yaWdpbmFsUmVxdWVzdCgpOworICAgICAgICBpZiAodXJsICE9IHJlcXVlc3QudXJsKCkpCisg
ICAgICAgICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworICAgICAgICBkb2N1bWVudExvYWRlcigp
LT5zZXRSZXF1ZXN0KHJlcXVlc3QpOworICAgIH0KIH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2Fk
ZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7Ci0gICAgUmVzb3VyY2VMb2FkZXI6
OnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKKyAgICBpZiAobG9hZGVyKCkpCisgICAgICAgIGxv
YWRlcigpLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7Cit9CiAKLSAgICBpZiAoZGVmZXJzKSB7
Ci0gICAgICAgIGlmIChtX2RhdGFMb2FkVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1f
ZGF0YUxvYWRUaW1lci5zdG9wKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1faW5pdGlh
bFJlcXVlc3QuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm47Citib29sIE1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGVmZXJzTG9hZGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGxvYWRlcigpID8g
bG9hZGVyKCktPmRlZmVyc0xvYWRpbmcoKSA6IGZhbHNlOworfQogCi0gICAgICAgIFJlc291cmNl
UmVxdWVzdCBpbml0aWFsUmVxdWVzdChtX2luaXRpYWxSZXF1ZXN0KTsKLSAgICAgICAgbV9pbml0
aWFsUmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCgpOwotICAgICAgICBsb2FkTm93KGluaXRpYWxS
ZXF1ZXN0KTsKLSAgICB9Cit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVy
RGF0YShEYXRhQnVmZmVyaW5nUG9saWN5IHNob3VsZEJ1ZmZlckRhdGEpCit7CisgICAgQVNTRVJU
KG1fcmVzb3VyY2UpOworICAgIG1fcmVzb3VyY2UtPnNldFNob3VsZEJ1ZmZlckRhdGEoc2hvdWxk
QnVmZmVyRGF0YSk7Cit9CisKK1Jlc291cmNlTG9hZGVyKiBNYWluUmVzb3VyY2VMb2FkZXI6Omxv
YWRlcigpIGNvbnN0Cit7IAorICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+bG9h
ZGVyKCkgOiAwOworfQorCit1bnNpZ25lZCBsb25nIE1haW5SZXNvdXJjZUxvYWRlcjo6aWRlbnRp
ZmllcigpIGNvbnN0Cit7CisgICAgaWYgKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciA9
IGxvYWRlcigpKQorICAgICAgICByZXR1cm4gcmVzb3VyY2VMb2FkZXItPmlkZW50aWZpZXIoKTsK
KyAgICByZXR1cm4gMDsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5S
ZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM2NDE3KQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBA
CiAjaWZuZGVmIE1haW5SZXNvdXJjZUxvYWRlcl9oCiAjZGVmaW5lIE1haW5SZXNvdXJjZUxvYWRl
cl9oCiAKKyNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUg
IlJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKQEAgLTQ5LDIx
ICs1MSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGb3JtU3RhdGU7CiBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CiAKLWNsYXNzIE1haW5SZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZXNv
dXJjZUxvYWRlciB7CitjbGFzcyBNYWluUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNYWluUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gY3JlYXRlKERvY3VtZW50TG9hZGVyKik7CiAgICAgdmly
dHVhbCB+TWFpblJlc291cmNlTG9hZGVyKCk7CiAKICAgICB2b2lkIGxvYWQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRk
RGF0YShjb25zdCBjaGFyKiwgaW50LCBib29sIGFsbEF0T25jZSkgT1ZFUlJJREU7CisgICAgdm9p
ZCBjYW5jZWwoKTsKKyAgICB2b2lkIGNhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAg
UmVzb3VyY2VMb2FkZXIqIGxvYWRlcigpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VC
dWZmZXI+IHJlc291cmNlRGF0YSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRp
bmcoYm9vbCkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2Up
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0
YShjb25zdCBjaGFyKiwgaW50LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxs
QXRPbmNlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3Vi
bGUgZmluaXNoVGltZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3Qg
UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOworICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29s
KTsKKyAgICB2b2lkIHNldFNob3VsZEJ1ZmZlckRhdGEoRGF0YUJ1ZmZlcmluZ1BvbGljeSk7CiAK
ICNpZiBIQVZFKFJVTkxPT1BfVElNRVIpCiAgICAgdHlwZWRlZiBSdW5Mb29wVGltZXI8TWFpblJl
c291cmNlTG9hZGVyPiBNYWluUmVzb3VyY2VMb2FkZXJUaW1lcjsKQEAgLTcxLDE4ICs3MiwyMSBA
QCBwdWJsaWM6CiAgICAgdHlwZWRlZiBUaW1lcjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNv
dXJjZUxvYWRlclRpbWVyOwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIo
KSBjb25zdDsKICAgICBib29sIGlzTG9hZGluZ011bHRpcGFydENvbnRlbnQoKSBjb25zdCB7IHJl
dHVybiBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IE1haW5SZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciopOwogCi0g
ICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJS
SURFOwotCi0gICAgdm9pZCBsb2FkTm93KFJlc291cmNlUmVxdWVzdCYpOworICAgIHZpcnR1YWwg
dm9pZCByZWRpcmVjdFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNw
b25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBj
b25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgT1ZFUlJJREU7CiAKKyAgICB2b2lk
IHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZp
bmlzaFRpbWUpOwogICAgIHZvaWQgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29vbihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdyhN
YWluUmVzb3VyY2VMb2FkZXJUaW1lciopOwogCkBAIC0xMDQsMTAgKzEwOCwyMiBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3Vic3RpdHV0ZU1JTUVUeXBlRnJvbVBsdWdpbkRhdGFiYXNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKTsKICNlbmRpZgogCisgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVy
KCkgY29uc3Q7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQoKTsgfQorCisgICAgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KCkgY29uc3Q7CisgICAgdm9pZCBjbGVhclJlc291cmNlKCk7CisKKyAgICBi
b29sIGRlZmVyc0xvYWRpbmcoKSBjb25zdDsKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOworCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1faW5p
dGlhbFJlcXVlc3Q7CiAgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0YTsKKyAgICBS
ZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAKICAgICBNYWluUmVzb3VyY2VMb2FkZXJUaW1l
ciBtX2RhdGFMb2FkVGltZXI7CisgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBtX2RvY3VtZW50
TG9hZGVyOwogCiAgICAgYm9vbCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50OwogICAgIGJvb2wg
bV93YWl0aW5nRm9yQ29udGVudFBvbGljeTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5oCShyZXZpc2lvbiAxMzY0MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6
CiAgICAgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoKTsKICAgICAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKKyAgICBib29sIGRlZmVyc0xvYWRpbmco
KSBjb25zdCB7IHJldHVybiBtX2RlZmVyc0xvYWRpbmc7IH0KIAogICAgIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCkBAIC0xNjgsNyAr
MTY5LDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ09uZVBhcnQoZG91
YmxlIGZpbmlzaFRpbWUpOwogCiAgICAgYm9vbCBjYW5jZWxsZWQoKSBjb25zdCB7IHJldHVybiBt
X2NhbmNlbGxlZDsgfQotICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
ZGVmZXJzTG9hZGluZzsgfQogCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsK
ICAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEzNjQxNykKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUg
IlJlc291cmNlQnVmZmVyLmgiCkBAIC0xNDcsNiArMTQ4LDEwIEBAIHZvaWQgU3VicmVzb3VyY2VM
b2FkZXI6OndpbGxTZW5kUmVxdWVzdCgKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VM
b2FkZXI6OndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKwor
ICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSAmJiBtX3Jlc291cmNlLT50eXBlKCkg
PT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+
Y2xpZW50KCktPmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkKCk7CisKICAgICBpZiAobmV3UmVxdWVzdC5pc051bGwoKSkKICAgICAgICAgY2FuY2VsKCk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHJldmlzaW9uIDEzNjQxNykKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxv
YWRGYWxsCiAgICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsKICAgICAg
ICAgICAgIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZSA9IEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5SZXF1ZXN0KHJlcXVlc3QsIGRvY3VtZW50TG9hZGVy
KCkpOwogCi0gICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21B
cHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBt
X21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKHNj
aGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExv
YWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBw
bGljYXRpb25DYWNoZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0xMTcsNyArMTE3LDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9z
dDo6bWF5YmVMb2FkRmFsbAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgp
KSB7CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBBcHBsaWNh
dGlvbkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0LCBtX2Rv
Y3VtZW50TG9hZGVyKTsKIAotICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVz
b3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VM
b2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKKyAgICAgICAg
ICAgIGlmIChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUo
ZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCktPmxvYWRlcigpLCBtX21haW5S
ZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hp
dmUvQXJjaGl2ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hp
dmUvQXJjaGl2ZS5jcHAJKHJldmlzaW9uIDEzNjQxNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL0FyY2hpdmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMiBAQCBB
cmNoaXZlOjp+QXJjaGl2ZSgpCiB7CiB9CiAKK3ZvaWQgQXJjaGl2ZTo6YWRkU3VicmVzb3VyY2Uo
UGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YnJlc291cmNlKQoreworICAgIGlmIChtX21h
aW5SZXNvdXJjZS0+dXJsKCkgIT0gc3VicmVzb3VyY2UtPnVybCgpKQorICAgICAgICBtX3N1YnJl
c291cmNlcy5hcHBlbmQoc3VicmVzb3VyY2UpOworfQorCiB2b2lkIEFyY2hpdmU6OmNsZWFyQWxs
U3ViZnJhbWVBcmNoaXZlcygpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxBcmNoaXZlPiA+IGNsZWFy
ZWRBcmNoaXZlczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmgJ
KHJldmlzaW9uIDEzNjQxNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hp
dmUuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8g
VGhlc2UgbWV0aG9kcyBhcmUgbWVhbnQgZm9yIHN1YmNsYXNzZXMgZm9yIGRpZmZlcmVudCBhcmNo
aXZlIHR5cGVzIHRvIGFkZCByZXNvdXJjZXMgaW4gdG8gdGhlIGFyY2hpdmUsCiAgICAgLy8gYW5k
IHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyBhcmNoaXZlcyBzaG91bGQgYmUgaW1tdXRhYmxlIHRv
IGNsaWVudHMKICAgICB2b2lkIHNldE1haW5SZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNv
dXJjZT4gbWFpblJlc291cmNlKSB7IG1fbWFpblJlc291cmNlID0gbWFpblJlc291cmNlOyB9Ci0g
ICAgdm9pZCBhZGRTdWJyZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3ViUmVz
b3VyY2UpIHsgbV9zdWJyZXNvdXJjZXMuYXBwZW5kKHN1YlJlc291cmNlKTsgfQorICAgIHZvaWQg
YWRkU3VicmVzb3VyY2UoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHN1YnJlc291cmNlKTsK
ICAgICB2b2lkIGFkZFN1YmZyYW1lQXJjaGl2ZShQYXNzUmVmUHRyPEFyY2hpdmU+IHN1YmZyYW1l
QXJjaGl2ZSkgeyBtX3N1YmZyYW1lQXJjaGl2ZXMuYXBwZW5kKHN1YmZyYW1lQXJjaGl2ZSk7IH0K
IAogICAgIHZvaWQgY2xlYXJBbGxTdWJmcmFtZUFyY2hpdmVzKCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAkocmV2aXNpb24gMTM2
NDE3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1LDggQEAgc3RhdGljIHZvaWQgdW5zY2hlZHVsZUFs
bChjb25zdCBSZXNvdXJjZQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzY2hlZHVsZShTY2hlZHVs
ZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJl
c291cmNlTG9hZGVyLT5oYW5kbGUoKSkKLSAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhh
bmRsZSgpLT5zY2hlZHVsZShwYWlyKTsKKyAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYg
bV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5s
b2FkZXIoKS0+aGFuZGxlKCkpCisgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIo
KS0+aGFuZGxlKCktPnNjaGVkdWxlKHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fc3VicmVzb3Vy
Y2VMb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX3BsdWdJblN0cmVhbUxvYWRlcnMs
IHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fbXVsdGlwYXJ0U3VicmVzb3VyY2VMb2FkZXJzLCBw
YWlyKTsKQEAgLTY0LDggKzY0LDggQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c2NoZWR1bGUoU2No
ZWR1bGVQYQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjp1bnNjaGVkdWxlKFNjaGVkdWxlUGFpciog
cGFpcikKIHsKLSAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9tYWluUmVzb3VyY2VM
b2FkZXItPmhhbmRsZSgpKQotICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkt
PnVuc2NoZWR1bGUocGFpcik7CisgICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFp
blJlc291cmNlTG9hZGVyLT5sb2FkZXIoKSAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVy
KCktPmhhbmRsZSgpKQorICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhh
bmRsZSgpLT51bnNjaGVkdWxlKHBhaXIpOwogICAgIHVuc2NoZWR1bGVBbGwobV9zdWJyZXNvdXJj
ZUxvYWRlcnMsIHBhaXIpOwogICAgIHVuc2NoZWR1bGVBbGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJz
LCBwYWlyKTsKICAgICB1bnNjaGVkdWxlQWxsKG1fbXVsdGlwYXJ0U3VicmVzb3VyY2VMb2FkZXJz
LCBwYWlyKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjQzMikKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEyLTAzICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJj
ZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNo
YW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9u
IGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sOiBUaGUgbWFpbiByZXNvdXJjZSdzIHVybCB3
aWxsIGV4Y2x1ZGUgdGhlIGZyYWdtZW50IGlkZW50aWZpZXIgaGVyZS4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4
cGVjdGVkLnR4dDogVGhlIGVycm9yIGNvZGUgZm9yIGxvYWRzIGNhbmNlbGxlZAorICAgICAgICAg
ICAgYnkgYW4gZW1iZWRkZXIncyB3aWxsU2VuZFJlcXVlc3QoKSB3aWxsIHNob3cgYXMgc3RhbmRh
cmQgbG9hZCBjYW5jZWxsYXRpb25zIHJhdGhlciB0aGFuIGFzIGEgY29udGVudCBwb2xpY3kKKyAg
ICAgICAgICAgIGZhaWx1cmUuIFRoaXMgd2FzIGFuIG9kZCBxdWlyayBvZiBob3cgTWFpblJlc291
cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoKSB3YXMgaW1wbGVtZW50ZWQgKG5hbWVseSwgZG9p
bmcgYQorICAgICAgICAgICAgY29udGVudCBwb2xpY3kgY2hlY2sgb24gUmVzb3VyY2VSZXF1ZXN0
cyB3aXRoIGVtcHR5IHVybHMpLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zh
c3QvcmVwbGFjZWQvYm9yZGVyLXJhZGl1cy1jbGlwLWNvbnRlbnQtZWRnZS1leHBlY3RlZC5wbmc6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1y
ZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQ6IFRoZSBlcnJvciBj
b2RlIGZvciBsb2FkcyBjYW5jZWxsZWQKKyAgICAgICAgICAgIGJ5IGFuIGVtYmVkZGVyJ3Mgd2ls
bFNlbmRSZXF1ZXN0KCkgd2lsbCBzaG93IGFzIHN0YW5kYXJkIGxvYWQgY2FuY2VsbGF0aW9ucyBy
YXRoZXIgdGhhbiBhcyBhIGNvbnRlbnQgcG9saWN5CisgICAgICAgICAgICBmYWlsdXJlLiBUaGlz
IHdhcyBhbiBvZGQgcXVpcmsgb2YgaG93IE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1
ZXN0KCkgd2FzIGltcGxlbWVudGVkIChuYW1lbHksIGRvaW5nIGEKKyAgICAgICAgICAgIGNvbnRl
bnQgcG9saWN5IGNoZWNrIG9uIFJlc291cmNlUmVxdWVzdHMgd2l0aCBlbXB0eSB1cmxzKS4KKwog
MjAxMi0xMi0wMyAgWGFuIExvcGV6ICA8eGFuQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBH
cmlkIExheW91dF0gU3VwcG9ydCA8cGVyY2VudGFnZT4gYW5kIHZpZXdwb3J0LXJlbGF0aXZlIGJy
ZWFkdGggc2l6ZXMKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlLXBhcmFtZXRlcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwJKHJldmlzaW9uIDEzNjQxNykKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBm
dW5jdGlvbiBvblJlcXVlc3RGaW5pc2hlZChldmVudCkKICAgICB7CiAgICAgICAgIHZhciByZXF1
ZXN0ID0gZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKHJlcXVlc3QudXJsICE9PSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5UGFy
YW0xPXF1ZXJ5VmFsdWUxJnF1ZXJ5UGFyYW0yPSNmcmFnbWVudFBhcmFtMT1mcmFnbWVudFZhbHVl
MSZmcmFnbWVudFBhcmFtMj0iKQorICAgICAgICBpZiAocmVxdWVzdC51cmwgIT09ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2k/cXVlcnlQ
YXJhbTE9cXVlcnlWYWx1ZTEmcXVlcnlQYXJhbTI9IikKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRPYmplY3QobmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShy
ZXF1ZXN0KS5idWlsZCgpLCBJbnNwZWN0b3JUZXN0LkhBUlByb3BlcnR5Rm9ybWF0dGVycyk7CiAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
d2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTM2NDE3KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dpbGwtc2Vu
ZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTIsNyArMiw3IEBAIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNl
cy9yZWQKIDx1bmtub3duPiAtIGRpZEZpbmlzaExvYWRpbmcKIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSB3aWxsU2VuZFJlcXVl
c3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8sIG1haW4gZG9jdW1l
bnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVy
bnMtbnVsbC1vbi1yZWRpcmVjdC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9u
c2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3Jl
ZGlyZWN0LXRvLWh0dHAtdXJsLnBocCwgaHR0cCBzdGF0dXMgY29kZSAzMDI+CiBSZXR1cm5pbmcg
bnVsbCBmb3IgdGhpcyByZWRpcmVjdAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3Vy
Y2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8
TlNFcnJvciBkb21haW4gV2ViS2l0RXJyb3JEb21haW4sIGNvZGUgMTAyPgoraHR0cDovLzEyNy4w
LjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZh
aWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29k
ZSAtOTk5PgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NTk1CiBU
aGlzIHRlc3QgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaW5ncyBiZWhhdmUgYXMgZXhwZWN0
ZWQgd2hlbiB0aGUgcmVzb3VyY2UgbG9hZCBkZWxlZ2F0ZSByZXR1cm5zIG51bGwgaW4gcmVzcG9u
c2UgdG8gd2lsbFNlbmRSZXF1ZXN0LgogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJl
ZGlyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9u
LXJlZGlyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTM2NDE3KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVy
bnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyAr
Miw3IEBAIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWQKIDx1bmtub3du
PiAtIGRpZEZpbmlzaExvYWRpbmcKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNl
cy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVz
dCBVUkwgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8sIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRp
cmVjdC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9u
c2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAt
dXJsLnBocCwgaHR0cCBzdGF0dXMgY29kZSAzMDI+CiBSZXR1cm5pbmcgbnVsbCBmb3IgdGhpcyBy
ZWRpcmVjdAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRv
LWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4g
V2ViS2l0LCBjb2RlIC0xMDAwMCwgZmFpbGluZyBVUkwgIihudWxsKSI+CitodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gZGlkRmFp
bExvYWRpbmdXaXRoRXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBOU1VSTEVycm9yRG9tYWluLCBjb2Rl
IC05OTksIGZhaWxpbmcgVVJMICIobnVsbCkiPgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3NTk1CiBUaGlzIHRlc3QgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGF0IHRo
aW5ncyBiZWhhdmUgYXMgZXhwZWN0ZWQgd2hlbiB0aGUgcmVzb3VyY2UgbG9hZCBkZWxlZ2F0ZSBy
ZXR1cm5zIG51bGwgaW4gcmVzcG9uc2UgdG8gd2lsbFNlbmRSZXF1ZXN0LgogCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3JlcGxhY2VkL2JvcmRlci1yYWRp
dXMtY2xpcC1jb250ZW50LWVkZ2UtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3Bs
YXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9w
bmcKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVuQUFBQUtYUkZX
SFJqYUdWamEzTjFiUUJrTURrNU0yVTMKTkRJek16RTBNbVE0TVdNMU0yUTNNV1V3WXprMVpqRmla
VUhpSXlZQUFDQUFTVVJCVkhpYzdkMXhiQnZYZ2VmeFIwZC9NRGx0T0RhRQpXTWdaRnROTmFqVjJZ
d250bmdRMEtPVWtDMTMvdU5oeWcxWCt1SVVkcEVDM2FCSkw5aDZTYm9ERzdoL2J0TGlGeGFMRmJm
NEkxdXJ0CmJSMWthMG5aV3lBRzRvcDBiRUJPY3hYVmRUY1U0RlNrNDNVcEl6YUhxSXJRQ0syNVA2
WlZxWkU0NGxEdmNUaHZ2cC8vU0k2bGwrQ0gKcHg5bjNwdUpXSllsQUFBQUlNOFd2d2NBQUFDZ0d3
b1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQQprSXlDQlFBQUlC
a0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpD
TWdnVUFBQ0FaCkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFC
SVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1cKQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFB
QUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlGbWIzd01JbnR1M2IzLzY2YWMzYjk0VQpRbVN6V2Z2
TmJEWnJtdWJhZzNmdTNIbi8vZmNMSWU2Nzc3NXQyN1oxZG5iZWRkZGRiVzM4YjljQlNZQ05KQUJZ
SzJKWmx0OWphR20zCmI5OHVGb3VsVWltWHk5V2FNYjB5RE9QTFgvNXlQQjZQeFdKYnRuQVNNUmhJ
QW13a0FVQTlLRmpyV0ZwYXVubnpaamFiblptWlVmMjcKOXV6Wjg2VXZmYW16czFQMUwwSURTQUpz
SkFHQVZ4U3MzMXRlWHI1eDQ4YUhIMzc0emp2ditES0FKNTU0NGd0ZitFSTBHdlhsdDJNRgpTWUNO
SkFEWWpMQVhMSHNPdlhqeDR1WExsLzBlaXhCQzlQZjNKeElKcHRUbUl3bXdrUVFBVW9TM1lCV0x4
Wi85N0djdE1vYzY5UGYzClAvNzQ0Nng3YlE2U0FCdEpBQ0JSNkFwV3VWeis0SU1QenA4L0wyVnBx
bEpQUC8zMHJsMjcvQjZGdGtnQ2JDUUJnQW9oS2xqRll2RzkKOTk1cndocFZpUXpEZVBiWlo5dmIy
LzBlaUZaSUFtd2tBWUE2b1NoWXhXSnhjbkx5NnRXcmZnK2tRWHh0bFlVa3dFWVNBS2ltZWNFSwor
alM2WXMrZVBVTkRROXdncDJFa0FUYVNBS0E1dEMxWVMwdExiNzc1cHFKcE5CNlBSNlBSenM3T1dD
eG1HTWJLKzRaaFZMOFVRcGltCmFacG11VnhlWEZ3c0ZBcUZRcUhoZFI2R1lYenptOTlrbGF0WEpB
RTJrZ0NnbVRRc1dKVks1ZHk1Y3hMWFZSaUcwZDNkSFl2Rk9qczcKMTA2WFhwbW1tY3ZsNXVmblZ4
NnA0V2trektmMUl3bXdrUVFBemFkYndacWZuejk5K3ZUbWY0NWhHUEY0dkt1ckt4NlBiM0wyck1V
MAp6V3cyZStuU0phL2ZYNTkvL3ZsdDI3YXBHSkpPU0FKc0pBR0FML1FwV0V0TFM2Ky8vdm9tTjFy
SDQvRzllL2VxbTBEWGxjbGswdW0wCnA1Ry8vUExMZkdldGhTVEFSaElBK0VpVGduWHg0c1hOUE03
Q01JeSt2cjd1N3U1bXpxRU82WFI2Wm1hbVhDN1hjekRYQldvaENiQ1IKQkFEK0NuekIyc3lYMUdn
MDJ0UFRzM2Z2WHEvUFZWMTQ5NlA4TDI2bUprMnpGTWtzeEZiZXp5MTE1Q3M3cW8vc2Fyc1diLzg0
M3JIVQo4L2s3aWIvWTN2dDB0OHVQTlUzejdObXpkYTdETUF6aitlZWZady9SQ2wrU2tMdHdMZi8v
UGw0M0NiblZTWWhYSjJHNHMyZlliWTg5ClNkZ01mK2FFQlN1ZkY2bVVNRTJSeWZ6eC9WeE81UE9S
NmlPN3VxeDRYTVRqb3FkSEpCS2l0emZpL0ZsVlNBSVFYTUV1V0EydnJqQU0KSTVGSTlQVDAxSGw4
S3BsSlRacXBqR0hldm52dWs4WnZQeE9MbEFZNnM0Y1Bpd04vMjFmcm1KbVptYk5uejliejAvYnMy
ZlBWcjM2MQo0Y0hvcEdsSlNGY2xJYk9KSkJoL1NNSitraUJWOCthRWxKVksvYjVSemMyNWxTUjNz
WmcxTUNBT0h4WUhEdFQ4SVNRQkNLS2dGcXhLCnBUSTFOZFhBVThQcW4wWlhTbFhhckhmT3JWOHNV
aHBKekI3NWg1NnQ4WFV1UUJRS2hmSHg4WG91RFF3UEQzZDN1NTBWMDE0VGtyQlMKcWxJS2ttRFlT
VGpWYTNURjFuNUtFdXJYakRuaEQ2VXFuVzY4VWRVU2kxa2pJK0xJRWJGMTZ6by9uQ1FBZ1JQSWd0
WFlKWUE2cDlISgp2N2swK2Vhbmt4OSt2bVN0OHdkUExwZWFWUzZYeDhmSEM0WENoai9rMkxGam9Y
MXVodElrVFAwaENhYjZKTGpVTEpKUUQ3Vnp3cVExCk9Ta21KMFdwSkw5WE9ialVMSklBQkV2d0Ns
WStuejkxNnBTbmYySVl4dURnb1B1M3V0blQyZkh2TDU3SzlEU2hWemwwdFYwN2VlemEKMEt2OWp2
ZnJuRThOd3poeTVJaXkwYlV1UlVuSXZERS8vcjNDcVV4UEUzcVZRN3p0MnNtLy9vOEQzM1ZlTkNR
SjdsVE5DYlBXK0xnNApkYW9admNxaHE4czZlVklNRFRYWXNVS2JCS0NsQkt4Z3pjN092dlhXVzU3
K1NYOS9meUtSaUVhajYzNWF6Sm5qUitmRy91VlBIWXZUCm0rOUliM3JzRnduSG0zWE9weUc4S0NB
OUNXYStORDZhR2Z1WFA4MzVuWVNSM3ZSSmtsQTMrWE5DMFJvZkYyTmp6c1hwelhma2lEVTIKMW1E
SENtRVNnRllUcElMMTA1LysxTk1DaTNnOFBqZzRXR3MzVURGbkpwL0pqS1Y3bTMvS3FwYTlkODlQ
Ly90MngrWENjcm1jVENZMwpYSHNScXJ2Z3lFMkNtUzhsRDgrT3BYdWJmOHFxbHA2NzU2Yy82SFJj
TGlRSmEwbWVFNHBXTWluR3hudzRaVlhMM3IzVzlMVHpjaUZKCkFBSWhHQVhMNi9MVmFEUTZPRGhZ
YTJuRndyc2ZKWS84MnBlcmdSdnFhcnMyOGIrWEhIZHpLQlFLcjczMm12cy83Ty92SHh3Y1ZEbTAK
bGlBM0Nia0wxNUl2Zk9qTDFjQU54ZHV1VGZ6ajd4eDNjeUFKS3lUUENRdFdNdW5QMWNBTmRYVlpF
eFBPdXptUUJLRDFCYUJnVlNxVgpILzNvUi9Vdlg0M0g0OFBEdyt1ZS95L216TkUvdnp4KzVWR3BB
NVFzRmlsTi85TnZIQjJybm4zYUw3NzRZcTJySG5xUW1BUXpYeHA5CjR0OU90WFlTakVocCtpY0ZS
OGNpQ1VMdW5GQzBSa2ZGK0hqTDlhcHFzWmcxUGUzc1dDUUJhSEd0ZmtzNnJ6UHB3TURBb1VPSDFw
MVQKeGc2bUgvaE1wTVhibFJDaVpNV0cvcks5bUZ2MW45emYzNy9oaW9wME9xMXlYRDZUbUlUa3dm
UURENGdXYjFkQ0NOT0tEZjMzLzJUbQpTOVZ2a2dTWmM4S1k5Y0FEcmQ2dWhCQ2xVbVJvU0JTTHE3
NE1rd1NneGJWMHdmSTBrMGFqMFVPSERpVVN6dFhCUW9qcGs3TTk5OHlQClRpUmE4SnJndXZLVkhm
c2VYblM4T1RnNDZQNWx0UDZuYWdTT3JDU2t4aks5OTh5UFRDUmE4SnJndW5LVkhmcys1MXpPVEJJ
a3pBblQKVmsrUE5Ub2FhY0ZyZ3V2SzV5UDc5am5mREhNU2dOWjMxL0hqeC8wZXcvbzh6YVR4ZVB6
Wlo1L3Q2T2h3dkYvTW1kLzRzL2VQL3FSdgpzZUw4cU1VdFZqcUtVK212L0ZWODVaMW9OSHJuenAx
Y0x1ZnlyNkxSNk02ZE8xV1ByY21rSk1ITWw3N3haKytQL3VTL0ZJS1doRUtsCnc1eEsvMWVTSUd0
T0tGcmYrSVk0ZWpTeXVCaU1hclZpY1RGU0xGcGYrY29maHgzYUpBQ0IwS0puc0phWGwrdWZTV3Rk
QXBnK09SdUkKYTRLMS9DQ1RtSGhwcHZxZFJDTGgvdWpaYytmT0tSNVVzMGxKUW1vc0U0aHJnclVr
TTRuSmIxMnFmb2NrdUtzNUowd0g0NXBnTFQvNApRV1JpWXRXRndoQW1BUWlLRmkxWUV4TVRkYzZr
Ky9mdlgvY1N3UEY5cWNlT3R0QXRHQm96K25jN0hJdXgxdjJQclZiUGpaNERaUE5KCk9MRXZ0Vysw
RmZjSmVqTDZQLyt6WXpFV1NhaWw1cHh3M0hyc3NjQmNFNnhsZE5TNUdDdHNTUUNDb2hVTFZ2MzN0
dG0vZi8vYWZkY0wKNzM3VWM4LzhpZFNBL0pFMVhiNnlZK3h3cHZxZG5wNGU5eStzRnk5ZVZEeW81
dGxrRW5JWHJ2WGVNMzljaXlUa0tqdkdEczFXdjBNUwoxclgrbkxCZzlmUllKMDRFdTFyWjh2bkky
TmlxZDBLVkJDQkFXcTVnemM3TzFqT1RScVBScjMvOTYydG4wb21YWm5vVDk4NTlzbXZkCmZ4VkV5
Zk85anBOWWZYM09SNmxVdTN6NTh2THlzdUpCTmNNbWt6RDVyVXU5WC82VGpGNUpjSnpFSWduVmFz
NEpFMVp2cjVpYjA2RmQKMlpKSjUwbXNrQ1FCQ0piV0tsajVmTDZlcDE3WW00UFczbzU1N0dENjRQ
ZjZnMzVaMEtGa3hSd25zVGJjbSszMWtiY3RhSk5KU0I1TQpENzNhRi9UTGdnNm1GWE9jeENJSksy
ck9DV1BXd1lPQnZ5em9VQ281VDJLRklRbEE0TFJRd1ZwYVdxcm5pYTIxWnRMREQxMFluZGhnCkxV
SkFKYy8zVnI4MERDTWVqN3NjbjgvbjFRNUlzVTBtNFptSExveVFCQ0ZFNkpOdytMQTFPcXBWdFZx
UlRLNTZxWDBTZ0NCcWxZSlYKcVZSZWYvMzFEUTl6YVZmQjNTMjRvWklWYzJ3bjNMdDNyOHZ4NTgr
ZlZ6d2loVGFaaEdjZXVoRGMzWUliTXEyWVl6c2hTWEJwVjhIZApMYmloVXNtNW5WRGpKQUFCMVNv
RmEycHFxcDZUMkd0bjBtTE9ITmlhMGJoZDJVNnQvbFBoL20zVk5NMUtwYUoyUU1vMG5BUXpYOXEz
Ck5hTnh1N0k1VHVpUWhIWG1oS0kxTUtCenU3S0ZKd2xBUUxWRXdjcG1zL1VzWXQyL2YvL2Fkclh2
NGNXMHVmNERYSFdTWGx5MXhzSXcKRFBkOVF3R2RUQnRPZ3BrdjdmdGNJVVVTMWdoYkVvcEZhOTgr
a1U1cjNxNkVFSTZuNE9pYUJDQzQvQzlZUzB0TGI3enh4b2FIcmQxOQpiYmNyblRZTXVpaFpzZG5U
MmVwMzFsNFRxYmE0Nkh6U1R1dHJPQWwydTlKcHc2QUwwNHBsM3BpdmZvY2tyTERibFU0YkJsMlVT
cEhaCjJWVlhDZlZMQWhCby9oZXNlcFpaREF3TXJOMTlQZFNiQzBtN3NxVk9yN3Bib1B0a2V1dldM
Y1hEa2EveEpQUXNoS1JkMlVpQ3FKV0UKb2JDMEsxc3F0ZXFsZmtrQUFzM25nblh4NHNVTmwxbkU0
L0cxdHlvKy9OQ0ZNRndackpiTHIvckxzWDM3ZHBlRGI5eTRvWGc0a2pXYwpoR2NldWhDR0s0UFZI
SStlSXdtMnc0ZXRNRndacktaM0VvQ2c4N05nTFMwdHZmUE9PKzdIUktQUjRlRmh4NXQ2N3htc0pi
T3c2cTVPCmE1K3pGbHdOSjBIdlBZTzFrSVIxNWdTdDl3eldrbGwxZ3p5dGtnQm93TStDVmMrRmdP
SGhZY2VzY2ZKQUtvVHRTZ2lSLzExSDlVdjMKeWZUNjlldUtoeU5UWTBrWUcwcUhzRjBKa3JCMlRq
Z1p4bllsaEhEYzNFcW5KQUFhOEsxZ1piUFpEUzhFREF3TU9QWWVUN3cwYzNScQpRTjJvV2xtK3Nx
UDZwZnQ2aTZ0WHJ5b2VqalNOSldIeVc1ZEdKL1c4bStpR2NpU2h5c1NFZGZSb0dOdVZFQ0svZXRt
QU5ra0E5T0JQCndhcFVLaHZ1RWxxN3pHTGgzWStlK2Y3blZJNEx6ZFpZRW5JWHJqM3p2UTJlRFlK
Z2FYQk9XTENlZVVibHNBQ2dVZjRVckhQbnpya2YKc1A2Q215ZHZhdmFjUVRTWWhQLzJzV2JQR1VT
RFNYaEdhUGFjUVFEYThLRmdMUzB0emN6TXVCOHpPRGpvV0Uvd3lrQXFiTnNHdGRkWQpFbzRQcE1L
MmJWQjdEYzRKcjRSdTJ5Q0FBUEdoWUwzNTVwdnVCOFRqY2NjZGJxWlB6bjRuUGFCd1RQQkRBMGxJ
aldWT2tBVHROREluClRGdmYrUTd0Q2tEcmFuYkJ1blhyMW9ackxRY0hCNnRmRm5QbTBMSFBxQndV
Zk5CQUVzeDhhZWpvQXlvSEJSODBNaWNVcmFFaGxXTUMKZ0UxcmRzR2FtcHB5UDZDL3Y5K3hGMmJr
aWNzc3ZkSlBJMGw0L045WWVxV2ZScEl3d3RJckFLMnVxUVZydzYrcWhtRTRkZ2xObjV6OQo4WWRo
dk5lUjNocElRbW9zTTA0U3ROUEluREJ0L2ZqSHRDc0FyYTZwQld2RHI2cHIxN0dPdm55UHloSEJI
NDBrNFcvdVZqa2krS09SCkpJeXFIQkFBU05LOGdsWFBWOVh1N2xVM056cDVJQldxeHptSFJBTkpH
QnRLaCtweHppSFJ5Snh3MGdyVjQ1d0JCRmZ6Q3RiUGYvNXoKOXdNY0Z3S0tPZlBFVzcwcVJ3Ui9l
RTJDbVMrZG1PSytEQnJ5UENjVXJSTW5WQTRJQU9ScFVzRXFsOHZ1OTdreERNT3hEWnUxN1ZwcQpK
QW1zYmRkUkkwbGdiVHVBNEdoU3dmcmdndy9jRDFqN1ZCeld0bXZKYXhKeUY2Nnh0bDFMbnVlRUJk
YTJBd2lTSmhXczgrZlB1M3k2CjlxdnEyQXUvVmp3aStNTnpFcDcvVVBHSTRBL1BTUmhUUENBQWtL
b1pCZXZXclZ1bWFib2NzSGIxMWZnY2EyNDA1RFVKWnI1RUVyVGsKZVU0b1d1UGppc2NFQUZJMW8y
Qk5UMCs3ZkJxTlJwMWZWUTluV0gybEpjOUpPRFRMNmlzdGVVN0NHS3V2QUFTTThvSzF2THg4K2ZK
bApsd01jTTJreFp5YlBzM2xRUTE2VFlPWkxKRUZMbnVlRW9wVk1LaDRUQU1pbXZHRGR1SEhEL1lD
OWUvZFd2encxd3VrclBUV1FCRTVmCmFjbHpFazV4K2dwQThDZ3ZXQmN2WG5UNTFEQU14MVBHa3Yv
Nm9PSVJ3Uitlay9CLy8xVHhpT0FQejBuZzlCV0FBRkpic0RhOEZ0RFgKMTFmOWN2WjBObC9ab1hS
SThJWFhKR1RlbU0rUkJCMTVuaE5tclh5ZTAxY0Fna2R0d2Ryd1dvRGpPUmludnJlb2NqandqZWNr
dkZwUQpPUno0eG5NU1Rpa2NEQUNvbzdaZ1hibHl4ZVhUZUR4dUdFYjFPK3pKMXhWSmdNMXpFcmc3
QTRCZ1VsdXd6cDA3NS9LcFl5bnJ4RXN6CkxHL1hsYWNrVEg3ckVzdmJkZVZ0VHBpd1dONE9JS0FV
RnF5bHBTWDNBK0x4ZVBYTHlYK3VxQnNNZk9RNUNXOStxbkEwOEkvbkpFd3EKSEF3QUtLV3dZTjI4
ZWRQbFU4TXdITmNDcG43OWVYV0RnWTlJQW15ZWt6Q2xlRUFBb0l6Q2dwWE5abDArZFh4Vm5UMmQ1
ZnFncmp3bApJZlBHUE5jSGRlVnRUcGpsK2lDQUFGTllzR1ptWmx3KzdlcnFxbjQ1K2Zmc0d0T1d0
eVQ4cjk4b0hnNTg0eTBKWEI4RUVHU3FDbGE1ClhIWS93UEZ0TlpVeGFoeUlZQ01Kc0hsT1FrcmRX
QUJBT1ZVRnl6Uk5sMC9YTHJZNFgySmJ2cDY4SmlGTkVqVGxlVTQ0ei9WQkFBSG0KVDhGeTNFdHcr
dVNzb21IQWQ1NlNrQnJMS0I0T2ZPTnRUcGkyRkE4SEFOUlNWYkR5K2J6THA3SFlxbFhNcWFtU29t
SEFkOTZTTU9uMgpOeGlCNWkwSktiV0RBUURWVkJVczkrMUNqb2U1WnVidlZqUU0rSTRrd09ZdENa
ektCQkJ3dnEzQnFuNlpMN0d1V1Zza0FUWnZTWEE3CjJ3VUFBYUNrWUcyNFhjZ3htYzU5c2t2Rk1P
QTdyMG5Ja0FSTmVaNFQ1bGpoRGlEWWxCU3NTc1h0b1RlT3pkZ0w3MzZrWWd4b0JaNlMKa0x0d1Rl
MW80Qjl2YzhJQ0s5d0JCSjZTZ3VYK1FJeG9ORnI5TXZmK3h5ckdnRlpBRW1EemxvU2Myc0VBUUJN
b3ZKTjdMWTdWckd3aApEQzFuRXRoQ0dGYk9KS1I4R2djQXlLT2tZTGx2RjNMc3h6WjUzSmkrU0FK
czNwSkEwd1lRZkQ2Y3dYS3VhMTdneWI0aFJSSmdjeWFCCmV6UUFDRDRmQ2hZQUFJRGVsQlNzNjll
dnEvaXhDQnlTQUJ0SkFCQTJTZ3JXMWF0WFZmeFlCQTVKZ0kwa0FBZ2IvOWRnNVgvWDBmd3gKb0JX
UUJOaTRqVHNBL2JSQXdhcnNhUDRZMEFvY1NjaVJoTEJhVTdEWVR3b2c4RmprRGdBQUlCa0ZDd0FB
UURJS0ZnQUFnR1FVTEFBQQpBTW1VRkt5ZE8zZTZmR3F1ZmhER3pydXVxUmdEV29HbkpIU1JCSDE1
bXhOMldvcUhBd0RLS1NsWTk5OS92OHVuanNrMDN2NnhpakdnCkZaQUUyTHdsSWE1Mk1BRFFCRDVj
SWl5WHk5VXY0eDFMelI4RFdnRkpnTTJaaExoUDR3QUFlWlFVclB2dXU4L2wwOFhGeGVxWFBYc3EK
S3NhQVZ1QXRDWisvbzNnNDhJMjNKUFFvSGcwQXFLZWtZRzNidHMzbDAwS2hVUDF5NE9sT0ZXTkFL
eUFKc0hsTHdvRGF3UUJBRXlncApXTnUzYjNmNTFER1o5ajdkZmE4b3FSZ0dmT2NwQ1QzRHUySWtR
VlBlNW9UZXlMMzNzczRkUUxBcEtWaHRiVzB1bjVxbTZWalRPdENaClZURU0rSTRrd09ZNUNRTnF4
d01BcXFrcVdMRll6T1dBWEM1WC9mTHdJYjZ0NnNsekVnNHJIUTU4UXhJQWhJMnFYWVJmL09JWFhU
NmQKbjUrdmZqbjBhajlYQ1hYbEtRa0h2dHZIVlVKZGVac1RocmhLQ0NEWVZCV3NoeDkrMk9YVGJE
YnJ1Q0l3a3BoVk5CTDRpeVRBNWprSgpJNG9IQkFBcXFTcFlobUc0SDVETnJscHRNM0txaDVOWVd2
S2NoUEZlVG1KcHlYTVNSZ1Fuc1FBRWw2cUN0V1hMbHQyN2Q3c2NjT25TCnBlcVhXK01HcHk2MDVE
VUpSbGVNSkdqSjg1eXdOY0pKTEFEQnBmQk83bzgrK3FqTHA2WnBaaktaNm5kR1R2WHdYRUl0ZVU3
Q2VDL1AKSmRTUzV5U004RnhDQUVHbHNHQjFkbTV3MzhoME9sMzljbXZjR1B0ci9xeHF5R3NTaks3
WTJQLzRENVVqZ2o4OHp3bGJJMk5qS2djRQpBTXFvZlJiaDQ0OC83dktwYVpvek16UFY3d3k5MnY5
Q1Q3clc4UWd1cjBrNDhOMitJeVJCUjU3bmhLSElDeTl3RWd0QThLZ3RXTzRiCnM0VVE2WFRhc1hV
b09adDRKRHBmNjNnRVZBTkpHSnRON0NVSjJtbGtUa2hHSG5tRWpnVWdZTlFXckdnMDJ0L2Y3M0pB
dVZ3K2UvYXMKNDgzVUI5dFpqS1daQnBPUTdXUXhsbVlhVEVLS3hWZ0FBa1p0d1JKQ0pCSUo5d095
MmF6am9zRFd1REg1ajB2Y3RVRXpEU1RCNklwTgovcC9mY2RjR3pUUXlKMnlOVEU1eTF3WUFRYUs4
WUczNGhWVUljZmJzMmJWUGdFNzk1RGVjeDlKSlkwbm9HZDZWT2wzZ1BKWk9HcHdUCmVpT2N4d0lR
SU1vTGxxampDNnNRWW54OHZGd3VWNy9UKzNSMzVrbzc2N0YwMGxnU2VvWjNaVDc4RTlaajZhVEJP
YUUza3NrSTFtTUIKQ0lSbUZLeG9ORG84UE94K1RMbGNYanVmYm8wYmM1L3NZbCtoTmhwT2d0RVZ5
M3l5aTMyRjJtaDhUdGdhbVp0alh5R0FBR2hHd1JKQwpkSGQzeDJJeDkyTUtoY0xhK1ZRSWtaeE5u
SGx4aHN1RmV0aE1Fc1ptRXhNdlhlSnlvUjQyTlNja0kyZk9XRnd1Qk5ES21sU3doQkJmCis5clhO
anltMW53NjlHcC81a3I3dHhNcFZyNXJZRE5KT1BEZHZzeUhmL0pLSXNYS2R3MXNhazRZaW1ReTR0
dmZ0bGo1RHFBMU5hOWcKdGJlM2IzaFJRQWhSS0JTU3lhUmpmYXNRWW12Y09KRWF5QzFZMUt5ZzIy
UVNqSzdZOGRSQUxpZW9XVUczMlRsaGErVEVpVWd1UjgwQwowSXFhVjdDRUVOM2QzZTVQZTdXVnkr
WFhYbnZOOGVSWG0xMnpTbGJzeklzelQzWmVvbWtGMU9hVFlOY3MwNHBOdkhScGYrY2xtbFpBClNa
Z1R0a1pPbklpVVNwRXpaNndubjZScEFXZ1ZiVTMrZlFjUEhyeDI3VnFwdFBHZnc3ZmZmanVYeXcw
T0RocUdzZmJUb1ZmN2gxNFYKUW9qWjA5blU2VUl1SDhrc3hISkxIVmZ2N0pBK1pxZ2dLd2tIdnR0
MzRMdENDSkY1WXo1MXVwRExDVHNKZVpJUUVOTG1oS0hJMEpBUQpRc3pPV3FtVXlPVkVKaU55T1hI
MWFrVDZtQUZnUXhITGF2WVh2a3FsOHNNZi9yQ2UrVlFJRVkxR0J3WUcrdnI2Vkk4cWlFNmNPT0h5
CjZTdXZ2Tkswa1RTR0pNaENFbUFMZWhJQW5UVDFFcUd0cmEzdHVlZWVxL1BnY3JuODl0dHZKNVBK
dWJrNXBhTkM4NUVFMkVnQ0FQM2MKZGZ6NDhlYi8xaTFidGp6eXlDUHZ2ZmRlbmNlWHkrVnNOanMz
TnhlSlJOcmIyNlBScU5MaEJVVTY3WFpmcUlHQmdXWU5wSEVrUVFxUwpRQkpzR2lRQjBJWS9CVXNJ
Y2ZmZGR6LzY2S08vL09VdmI5KytYZWMvS1pmTFY2NWN1WFRwMHVMaTRwMDdkNkxSYU1oblZUMG1V
NUt3CmVTU0JKTmowU0FLZ2gyWXZjbC8xdTl2YW5udnV1ZnJYWHF6SVpyUFpiRllJWVJoRzV4OUVv
OUZZTExidTZsZTBPSklBRzBrQW9BMGYKRnJrN0xDOHZuemx6NWxlLytwVy93OUJQNEJhMGtnUkZT
QUpzZ1VzQ0VHZytMSEozam1ETGxxZWVlcXFlK3cxQ2J5UUJOcElBUUFQKwpGeXhiZDNmM3NXUEhO
bncyR2JSSEVtQWpDUUFDclZVS2xoQ2l2YjE5WkdTRXI2MVMxSE4zN0paRkVpUWlDYkFGT2dsQUVQ
bTJpN0NXCmpvNk8vdjcrTzNmdVhMdDJ6ZSt4Qk5oamp6M1cwZEhoOXlnMmhTUklRUkpnMHlBSlFM
QzBYTUVTUXJTMXRUMzQ0SU5NcVp0eDhPREIKU0NUd1R3Z2hDWnRIRW1EVEl3bEFnUGkvaTlCZHVW
eCsvLzMzejUwNzUvZEFnbVI0ZUxpN3U5dnZVVWhHRWhwQUVtRFRNZ2xBaTJ2MQpncldpVUNoY3VI
Q0JuZHNiMnIxNzkxTlBQZVgzS0JRaUNYVWlDYkJwbndTZ05RV21ZTm1XbDVkTjA4em44K2wwMnV1
dENNTWdQTjlUClNZSTdrZ0JiZUpJQXRKcUFGYXhxdDI3ZCt1MXZmMnZmdnRsMi9mcjFxMWV2K2pn
a3YremV2WHZQbmoyZi9leG50Mnhwb1cyaFRVTVMKVnBBRWttQUxlUktBVmhEZ2dnVUFBTkNhK0hJ
REFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZwpBUUFBU0Vi
QkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1Nq
WUFFQUFFaEd3UUlBCkFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNT
VWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWcKR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFB
eVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJSwpGZ0FB
Z0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FB
RUF5Q2hZQUFJQmtGQ3dBCkFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZB
QUFnV1p2ZkF3aWUyN2R2Zi9ycHB6ZHYzaFJDWkxOWis4MXMKTm11YTV0cURkKzdjZWYvOTl3c2g3
cnZ2dm0zYnRuVjJkdDUxMTExdGJmeHYxd0ZKZ0kwa0FGZ3JZbG1XMzJOb2FiZHYzeTRXaTZWUwpL
WmZMMVpveHZUSU00OHRmL25JOEhvL0ZZbHUyY0JJeEdFZ0NiQ1FCUUQwb1dPdFlXbHE2ZWZObU5w
dWRtWmxSL2J2MjdObnpwUzk5CnFiT3pVL1V2UWdOSUFtd2tBWUJYRkt6ZlcxNWV2bkhqeG9jZmZ2
ak9PKy80TW9Bbm5uamlDMS80UWpRYTllVzNZd1ZKZ0kwa0FOaU0Kc0Jjc2V3NjllUEhpNWN1WC9S
NkxFRUwwOS9jbkVnbW0xT1lqQ2JDUkJBQlNoTGRnRll2Rm4vM3NaeTB5aHpyMDkvYy8vdmpqckh0
dApEcElBRzBrQUlGSG9DbGE1WFA3Z2d3L09uejh2WldtcVVrOC8vZlN1WGJ2OEhvVzJTQUpzSkFH
QUNpRXFXTVZpOGIzMzNtdkNHbFdKCkRNTjQ5dGxuMjl2Yi9SNklWa2dDYkNRQmdEcWhLRmpGWW5G
eWN2THExYXQrRDZSQmZHMlZoU1RBUmhJQXFLWjV3UXI2TkxwaXo1NDkKUTBORDNDQ25ZU1FCTnBJ
QW9EbTBMVmhMUzB0dnZ2bW1vbWswSG85SG85SE96czVZTEdZWXhzcjdobUZVdnhSQ21LWnBtbWE1
WEY1YwpYQ3dVQ29WQ29lRjFIb1poZlBPYjMyU1ZxMWNrQVRhU0FLQ1pOQ3hZbFVybDNMbHpFdGRW
R0liUjNkMGRpOFU2T3p2WFRwZGVtYWFaCnkrWG01K2RYSHFuaGFTVE1wL1VqQ2JDUkJBRE5wMXZC
bXArZlAzMzY5T1ovam1FWThYaThxNnNySG85dmN2YXN4VFROYkRaNzZkSWwKcjk5Zm4zLysrVzNi
dHFrWWtrNUlBbXdrQVlBdjlDbFlTMHRMcjcvKytpWTNXc2ZqOGIxNzk2cWJRTmVWeVdUUzZiU25r
Yi84OHN0OApaNjJGSk1CR0VnRDRTSk9DZGZIaXhjMDh6c0l3akw2K3Z1N3U3bWJPb1E3cGRIcG1a
cVpjTHRkek1OY0ZhaUVKc0pFRUFQNEtmTUhhCnpKZlVhRFRhMDlPemQrOWVyODlWWFZpdzhubVJT
Z25URkpuTUg5L1A1VVErSDZrK3Nxdkxpc2RGUEM1NmVrUWlJWHA3STg2ZlZjVTAKemJObno5YTVE
c013ak9lZmY1NDlSQ3Y4U2NLN0grVi9jVE0xYVpxbFNHWWh0dkorYnFralg5bFJmV1JYMjdWNCs4
ZnhqcVdlejk5SgovTVgyM3FlN1hYNHNTZGdNa3VCcDVBQVVDWGJCYW5oMWhXRVlpVVNpcDZlbnp1
TlRLU3VWK24yam1wdHpLMG51WWpGcllFQWNQaXdPCkhLajVRMlptWnM2ZVBWdlBUOXV6Wjg5WHYv
clZoZ2VqaytZbElabEpUWnFwakdIZXZudnVrOFp2UkJTTGxBWTZzNGNQaXdOLzIxZnIKR0pMUUFK
SkFFb0FXRWRTQ1ZhbFVwcWFtR25ocVdQM1Q2RXFwU3FjYmIxUzF4R0xXeUlnNGNrUnMzYnJPRHk4
VUN1UGo0L1ZjR2hnZQpIdTd1ZHZzR3JMMW1KT0VQZjByVFpyMS9mZXNYaTVSR0VyTkgvcUZuYTN5
ZFMxRWtvWDRrd1VZU2dCWVJ5SUxWMkNXQU9xZlJ5VWxyCmNsSk1Ub3BTU1g2dmNuQ3BXZVZ5ZVh4
OHZGQW9iUGhEamgwN0Z0cm5acWhOd3Q5Y21uenowOGtQUDEreVl1NUhicDdMSDFlU1VBK1MKVUMz
TVNRQmFSL0FLVmo2ZlAzWHFsS2QvWWhqR3dxY2U5d0FBR0RoSlJFRlU0T0NnKzdlNjJWbHJmRnlj
T3RXTVh1WFExV1dkUENtRwpoaHJzV0laaEhEbHlSTm5vV3BlcUpKek9qbjkvOFZTbXB3bC9UUjI2
MnE2ZFBIWnQ2TlYreC9za3dSMUpjQWh0RW9DV0VyQ0NOVHM3Cis5WmJiM242Si8zOS9ZbEVJaHFO
cnZ0cHNXaU5qNHV4TWVmaTlPWTdjc1FhRzJ1d1k0WHdvb0Q4Sk9UTThhTnpZLy95cDQ0bHljMTMK
cERjOTlvdUU0MDJTVUF0SldGY0lrd0MwbWlBVnJKLys5S2VlRmxqRTQvSEJ3Y0ZhdTRHS1JTdVpG
R05qUHB5eXFtWHZYbXQ2Mm5tNQpzRnd1SjVQSkRkZGVoT291T0pLVGtET1R6MlRHMHIzTlAxRlJ5
OTY3NTZmL2ZidmpJaEZKV0lza3VBaFZFb0FXRkl5QzVYWDVhalFhCkhSd2NyTFcwWW1IQlNpYjl1
UnE0b2E0dWEyTENlVGVIUXFIdzJtdXZ1Zi9EL3Y3K3djRkJsVU5yQ1pLVDhPNUh5U08vOXVVYTBJ
YTYKMnE1Ti9POGx4eDUra3JDQ0pKQUVvTVVGb0dCVktwVWYvZWhIOVM5ZmpjZmp3OFBENjU3L0x4
YXQwVkV4UHQ1eXZhcGFMR1pOVHpzNwpWajM3dEY5ODhjVmFWejMwSURNSk9YUDB6eStQWDNsVTZn
QWxpMFZLMC8vMEc4ZGZWcElnU0lJUWdpUUFMYS9WYjBubmRTWWRHQmc0CmRPalF1blBLMkpqMXdB
T3QzcTZFRUtWU1pHaElGSXVyaW05L2YvK0dLeXJTNmJUS2NmbE1aaElPcGgvNFRLVEYvNllLSVVw
V2JPZ3YKMjR1NVZmL0pKSUVrMkVnQzBPSmF1bUI1bWttajBlaWhRNGNTQ2VlYVVDSEU5TFRWMDJP
TmprWmE4SnJndXZMNXlMNTl6amNIQndmZAp2NHpXLzFTTndKR1doSk96UGZmTWowNGtXdkJLMExy
eWxSMzdIbDUwdkVrU1NJSXR6RWtBV3Q5ZHg0OGY5M3NNNi9NMGs4Ymo4V2VmCmZiYWpvOFB4ZnJG
b2ZlTWI0dWpSeU9KaU1LclZpc1hGU0xGb2ZlVXJmeHgyTkJxOWMrZE9McGR6K1ZmUmFIVG56cDNL
QjlkY2NwS1EKTTcveForOGYvVW5mWXNYNVVZdGJySFFVcDlKZithdjR5anNrb1o2RFNjTEtNZm9s
QVFpRUZqMkR0Ynk4WFA5TVd1c1N3UFIwTUs0SgoxdktESDBRbUpsWmRLRXdrRXU2UG5qMTM3cHpp
UVRXYm5DU2NuQTNFbGFCYWZwQkpUTHcwVS8wT1NYQkhFbGJvbHdRZ0tGcTBZRTFNClROUTVrKzdm
djMvZFN3REhqMXVQUFJhWWE0SzFqSTQ2RjJPdCt4OWJyWjRiUFFlSWhDVHNTejEydElVMjNqZG05
TzkyT0piZ2tJUmEKU0lLRFpra0FncUlWQzFiOTk3Ylp2My8vMm4zWEN3dFdUNDkxNGtTd3E1VXRu
NCtNamExNnA2ZW54LzBMNjhXTEY5V09xWWsybTRSMwpQK3E1Wi81RWFrRCt5Sm91WDlreGRqaFQv
UTVKV0JkSldFdW5KQUFCMG5JRmEzWjJ0cDZaTkJxTmZ2M3JYMTg3azA1TVdMMjlZbTVPCmgzWmxT
eWFkSjdINit2cGNqcjk4K2ZMeThyTGlRVFhEWnBQdzBreHY0dDY1VDNhcEdaMFBrdWQ3SGFjdVNF
STFrbENMTmtrQWdxVzEKQ2xZK242L25xUmYyNXFDMXQyTWVHN01PSGd6OFpVR0hVc2w1RW12RHZk
bGVIM25iZ2phYmhJUHBnOS9yRC9yRklJZVNGWE9jdWlBSgpLMGlDK3ovUklBbEE0TFJRd1ZwYVdx
cm5pYTIxWnRMRGg2M1JVYTJxMVlwa2N0Vkx3ekRpOGJqTDhmbDhYdWw0Vk50c0VoNjZNRHF4Cndh
cVVnRXFlNzYxK1NSSnNKRUg3SkFCQjFDb0ZxMUtwdlA3NjZ4c2U1dEt1Z3J0YmNFT2xrbk03NGQ2
OWUxMk9QMy8rdk9JUktiVFoKSkR4MEliaDd4RFpVc21LT1RXUWtnU1RZTkU0Q0VGQ3RVckNtcHFi
cU9ZbTlkaVl0RnEyQkFaM2JsYzN4TmQ3OTI2cHBtcFZLUmVWdwpGR284Q1RsellHdEc0NytwdGxP
cm8wNFNTSUpONHlRQUFkVVNCU3ViemRhemlIWC8vdjFyMjlXK2ZTS2QxcnhkQ1NFY1Q3d3dETU45
CjMxQkFKOVBHazVBejl6MjhtRGJYZjVTdlR0S0xxMWJia0FTU1lOTTFDVUJ3K1Yrd2xwYVczbmpq
alEwUFc3djcybTVYT20wWWRGRXEKUldablYxMGxYSHROcE5yaW92T3BHcTJ2OFNUa3pIMFBMK3Ew
VGN4RnlZck5uczVXdjBNU1ZwQUVsK09EbUFRZzBQd3ZXUFVzc3hnWQpHRmk3KzNwb0tDenR5cFpL
clhycFBwbmV1blZMNldCVWFEd0p2Ym1RL0UyMXBVNnZ1bThrU1ZoQkVsd09EbUlTZ0VEenVXQmR2
SGh4CncyVVc4WGg4N2EyS0R4KzJ3bkJsc0pyamdXUGJ0MjkzT2ZqR2pSdEtCeU5kNDBsNDZFSVly
Z2RWeStWWEpaOGsyRWlDWmtrQWdzN1AKZ3JXMHRQVE9PKys0SHhPTlJvZUhoeDF2NnIxbnNKYk1x
aHZmaUxYUFdRdXV4cE9nOVU2eFdqSUxxKzdxUkJJRVNSQkM2SlVFUUFOKwpGcXg2TGdRTUR3ODda
bzJUSjhQWXJvUVFqaHZadUUrbTE2OWZWenNhcVJwTXdvRlVDUCttQ2lIeXYrdW9ma2tTU0lKTnB5
UUFHdkN0CllHV3oyUTB2QkF3TUREajJIazlNV0VlUGhyRmRDU0h5cXk4SHVLKzN1SHIxcXVMaFNO
TmdFbDZhT1RvMW9HNVVyU3hmMlZIOWtpU1EKQkpzMlNRRDA0RS9CcWxRcUcrNFNXcnZNWW1IQmV1
WVpsY05DMHpXWWhIYy9ldWI3bjFNNUxqUWJTUUNnR1g4SzFybHo1OXdQV0hlWgp4VFBQQ00yZU00
Z0drL0RrVGMyZUxnZVNBRUF6UGhTc3BhV2xtWmtaOTJNR0J3Y2Q2d2xlZVNWMDJ3YTExMkFTQmxK
aDJ5eW1QWklBClFEOCtGS3czMzN6VC9ZQjRQTzY0dzgzMHRQV2Q3OUN1ZE5OSUVrN09maWM5b0hC
TThBTkpBS0NmWmhlc1c3ZHViYmpXY25Cd3NQcGwKc1dnTkRha2NFL3pRU0JKeTV0Q3h6NmdjRkh4
QUVnQm9xZGtGYTJwcXl2MkEvdjUreDE2WWtSR1dYbW1va1NROGNaa0ZOL29oQ1FDMAoxTlNDdGVG
WFZjTXdITHVFcHFldEgvK1lkcVdiUnBKd2N2YkhINGJ4WGtkNkl3a0FkTlhVZ3JYaFY5VzE2MWhI
UjFVT0NENXBKQWt2CjM2TnlSUEFIU1FDZ3ErWVZySHErcW5aM2QxZS9jL0trRmFySE9ZZEVJMGs0
a0FyVlEzeERnaVFBMEZqekN0YlBmLzV6OXdNY0Z3S0sKUmV2RUNaVURnazg4SnlGbm5uaXJWK1dJ
NEErU0FFQmpUU3BZNVhMWi9UNDNobUU0dG1HenRsMUxqU1NCRmMwNklna0E5TmFrZ3ZYQgpCeCs0
SDdEMnFUaXNiZGVTNXlTOCt4RXJtclZFRWdEb3JVa0Y2L3o1OHk2ZnJ2MnFPamFtZUVEd2llY2t2
UEJyeFNPQ1AwZ0NBTDAxCm8yRGR1blhMTkUyWEE5YXV2aG9mVnp3bStNRnpFbkxtK0J6UFF0RVFT
UUNndldZVXJPbnBhWmRQbzlIbzJ0TlhyTDdTa3Vja0hNNncKNWtaTEpBR0E5cFFYck9YbDVjdVhM
N3NjNEpoSmkwVXJtVlE4SnZqQmN4Snladkk4VzhZMFJCSUFoSUh5Z25YanhnMzNBL2J1M1Z2OQo4
dFFwVGwvcHlYTVNSamhwb1NlU0FDQU1sQmVzaXhjdnVueHFHSWJqS1dPY3Z0S1Y1eVQ4NjRPS1J3
Ui9rQVFBWWFDMllHMTRMYUN2CnI2LzY1ZXlzbGM5eitrcERucE53T3B1djdGQThLUGlBSkFBSUNi
VUZhOE5yQVk3bllKdzZwWEF3OEpIbkpIeHZVZVZ3NEJ1U0FDQWsKMUJhc0sxZXV1SHdhajhjTnc2
aCtoN3N6Nk1wekV0aVRyeW1TQUNBazFCYXNjK2ZPdVh6cVdNbzZNV0d4dkYxWDNwTHcwZ3lMbW5W
RgpFZ0NFaE1LQ3RiUzA1SDVBUEI2dmZqazVxVzRzOEpQbkpQeHpSZUZvNEIrU0FDQThGQmFzbXpk
dnVueHFHSWJqV3NEVWxMcXh3RStlCmsvRHJ6eXNlRWZ4QkVnQ0VoOEtDbGMxbVhUNTFmRldkbmVY
Nm9MYThKZUYwbHF0Q3VpSUpBTUpEWWNHYW1abHgrYlNycTZ2NkpkY0gKTmVZdENYOWZVRHdjK0lZ
a0FBZ1BWUVdyWEM2N0grRDR0cHBLS1JvSWZPWTVDUm1qeG9FSU5wSUFJRlJVRlN6VE5GMCtYYnZZ
NHZ4NQpyZy9xeVhNU1NtekwxeE5KQUJBcS9oUXN4NzBFcDZjdFJjT0E3N3dsNGVTczR1SEFOeVFC
UUtpb0tsajVmTjdsMDFoczFkcFZyZzlxCnpGc1Nwa3FLaHdQZmtBUUFvYUtxWUxsdkYzSTh6RFdU
VVRRSytNOWJFdWJ2Vmp3YytJWWtBQWdWMzlaZ1ZiOTAvV2FMWVBPV2hCTHIKbXJWRkVnQ0VpcEtD
dGVGMkljZGtPamZIQ25jOWVVN0NKN3RVRGdlK0lRa0F3a1pKd2FwVTNCNXc0ZGlNdmJEQUNuZHRl
VXZDdXgrcApIUTM4UXhJQWhJMlNndVgrUUl4b05GcjlNcGRUTVFTMEJHOUplUDlqeGNPQmIwZ0Nn
TEJSZUNmM1doeXJXZGxDR0ZyT0pMQnhMS3hJCkFnRDlLQ2xZN3R1RkhQdXhYVmUrSXRpOEpZR0hV
ZXFMSkFBSUd4L09ZRGxXczNLUGh0QnlKbUdCSi91R0ZFa0FvQjhmQ2hZQUFJRGUKbEJTczY5ZXZx
L2l4Q0J5U0FCdEpBQkEyU2dyVzFhdFhWZnhZQkE1SmdJMGtBQWdiLzlkZ2NSdjMwSEltNFhjZGZv
MEUvaUlKQVBUVApDZ1dMSFVNaDVVeENaWWRmSTRHL1NBSUEvYkRJSFFBQVFESUtGZ0FBZ0dRVUxB
QUFBTWtvV0FBQUFKSXBLVmc3ZCs1MCtkUmMvWENjCm5Uc3RGV05BSy9DV2hMdXVLUjRPZkVNU0FJ
U05rb0oxLy8zM3UzenFtRXpqY1JWRFFFdndsb1QyanhVUEI3NGhDUURDeG9kTGhPVnkKdWZvbEJT
dTBuRW5vV1BKckpQQVhTUUNnSHlVRjY3Nzc3blA1ZEhGeHNmcGxUNCtLSWFBbGVFdkNub3JpNGNB
M0pBRkEyQ2dwV051MgpiWFA1dEZBb1ZMOGNHRkF4QkxRRWIwbDR1bFB4Y09BYmtnQWdiSlFVck8z
YnQ3dDg2cGhNZTNzajk5N0xPbmM5ZVV2QzA5MzNpcExpCkVjRWZKQUZBMkNncFdHMXRiUzZmbXFi
cFdOUEtTU3hkZVU1Q1oxYnhpT0FQa2dBZ2JGUVZyRmdzNW5KQUxwZXJmbm40c0lwUndIK2UKazND
SWM1bDZJZ2tBd2tiVkxzSXZmdkdMTHAvT3o4OVh2eHdhNGlxaHRyd2w0ZFYrcmczcGlpUUFDQlZW
QmV2aGh4OTIrVFNielRxdQpDSXlNS0JvSWZPWTVDWWxaeFNPQ1AwZ0NnRkJSVmJBTXczQS9JSnRk
dGNaaVpFUndFa3RMbnBOd3FvZFRGMW9pQ1FCQ1JWWEIyckpsCnkrN2R1MTBPdUhUcFV2WExyVnNq
bk1UU2t1Y2t4QTFPWFdpSkpBQUlGWVYzY24vMDBVZGRQalZOTTVQSlZMOHpNc0p6Q2ZYa09RbW4K
ZW5nYW5aWklBb0R3VUZpd09qczN1RnRnT3AydWZybDFhMlJzVE4xdzRCdlBTWWdiWTMvTm4xVU5r
UVFBNGFIMldZU1BQLzY0eTZlbQphYzdNekZTL016UVVlZUVGVG1KcHlITVNYdTEvb1NkZDYzZ0VG
MGtBRUJKcUM1Yjd4bXdoUkRxZGRtd2RTaVlqanp4Q3g5Sk5JMG1ZClRUd1NuYTkxUEFLS0pBQUlD
YlVGS3hxTjl2ZjN1eHhRTHBmUG5qM3JlRE9WWWpHV2JocE13Z2ZiV1lLakdaSUFJQ1RVRml3aFJD
S1IKY0Q4Z204MDZMZ3BzM1JxWm5PU3VEYnBwSkFseFkvSWZsOWlycnhtU0FDQU1sQmVzRGIrd0Np
SE9uajI3OWduUW5NZlNUSU5KZUxvNwo5WlBmY1BaQ0p5UUJRQmdvTDFpaWppK3NRb2p4OGZGeXVW
ejlUbTl2SkpNUnJNZlNTWU5KZUxvN2M2V2RWVGc2SVFrQXROZU1naFdOClJvZUhoOTJQS1pmTGEr
ZlRyVnNqYzNQc0s5Ukg0MG1JRzNPZjdHSTNtVFpJQWdEdE5hTmdDU0c2dTd0anNaajdNWVZDWWUx
OEtvUkkKSmlObnpsaGNMdFREcHBJd216ano0Z3dYaWZSQUVnRG9yVWtGU3dqeHRhOTliY05qYXMy
blEwT1JURVo4KzlzV0s5ODFzS2trdk5xZgp1ZEwrN1VTSzljNGFJQWtBTk5hOGd0WGUzcjdoUlFF
aFJLRlFTQ2FUanZXdFFvaXRXeU1uVGtSeU9XcFc0RzAyQ1hIalJHb2d0MkR4Cnh6WG9TQUlBalRX
dllBa2h1cnU3M1ovMmFpdVh5Nis5OXByanlhODJ1MmFWU3BFelo2d25uNlJwQlpXRUpNU05FNm1C
a2hVNzgrTE0KazUyWCtQc2FVQ1FCZ0s3YW12ejdEaDQ4ZU8zYXRWSnA0MG53N2JmZnp1VnlnNE9E
aG1Hcy9YUm9LREkwSklRUXM3TldLaVZ5T1pISgppRnhPWEwwYWtUNW1xQ0F0Q2EvMkQ3MHFoQkN6
cDdPcDA0VmNQcEpaaU9XV09xN2UyU0Y5ekZDQkpBRFFVc1N5bW4wU3FGS3AvUENIClA2eG5QaFZD
UktQUmdZR0J2cjQrMWFNS29oTW5Ucmg4K3NvcnJ6UnRKSTBoQ2JLUUJOaUNuZ1JBSjAyOVJHaHJh
MnQ3N3JubjZqeTQKWEM2Ly9mYmJ5V1J5Ym01TzZhalFmQ1FCTnBJQVFEOTNIVDkrdlBtL2RjdVdM
WTg4OHNoNzc3MVg1L0hsY2ptYnpjN056VVVpa2ZiMgo5bWcwcW5SNFFaRk91OTBOYUdCZ29Ga0Rh
UnhKa0lJa2tBU2JCa2tBdE9GUHdSSkMzSDMzM1k4Kyt1Z3ZmL25MMjdkdjEvbFB5dVh5CmxTdFhM
bDI2dExpNGVPZk9uV2cwR3ZKWlZZL0psQ1JzSGtrZ0NUWTlrZ0Rvb2RtTDNGZjk3cmEyNTU1N3J2
NjFGeXV5Mld3Mm14VkMKR0liUitRZlJhRFFXaTYyNytoVXRqaVRBUmhJQWFNT0hSZTRPeTh2TFo4
NmMrZFd2ZnVYdk1QUVR1QVd0SkVFUmtnQmI0SklBQkpvUAppOXlkSTlpeTVhbW5ucXJuZm9QUUcw
bUFqU1FBMElEL0JjdlczZDE5N05peERaOU5CdTJSQk5oSUFvQkFhNVdDSllSb2IyOGZHUm5oCmE2
c1U5ZHdkdTJXUkJJbElBbXlCVGdJUVJMN3RJcXlsbzZPanY3Ly96cDA3MTY1ZDgzc3NBZmJZWTQ5
MWRIVDRQWXBOSVFsU2tBVFkKTkVnQ0VDd3RWN0NFRUcxdGJROCsrQ0JUNm1ZY1BIZ3dFZ244VTRO
SXd1YVJCTmowU0FJUUlQN3ZJblJYTHBmZmYvLzljK2ZPK1QyUQpJQmtlSHU3dTd2WjdGSktSaEFh
UUJOaTBUQUxRNGxxOVlLMG9GQW9YTGx4ZzUvYUdkdS9lL2RSVFQvazlDb1ZJUXAxSUFtemFKd0Zv
ClRZRXBXTGJsNVdYVE5QUDVmRHFkOW5vcndqQUl6L2RVa3VDT0pNQVduaVFBclNaZ0JhdmFyVnUz
ZnZ2YjM5cTNiN1pkdjM3OTZ0V3IKUGc3Skw3dDM3OTZ6Wjg5blAvdlpMVnRhYUZ0bzA1Q0VGU1NC
Sk5oQ25nU2dGUVM0WUFFQUFMUW12dHdBQUFCSVJzRUNBQUNRaklJRgpBQUFnR1FVTEFBQkFNZ29X
QUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZD
d0FBClFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01n
Z1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmsKRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklS
c0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWQpBQUFBa2xHd0FBQUFK
S05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFK
SlJzQUFBCkFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFB
REpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQkkKUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FB
Q0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5QwpCUUFBSUJrRkN3
QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dV
QUFDQVpCUXNBCkFFQXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNF
Q0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0EKWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktO
Z0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rbwpXQUFBQUpK
UnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURK
S0ZnQUFBQ1NVYkFBCkFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNB
WkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUEKU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FB
UURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTQpnZ1VB
QUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNB
QUNRaklJRkFBQWdHUVVMCkFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdB
UUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUEKZ0dRVUxBQUFBTWtvV0FBQUFKSlJz
QUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESgpL
RmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpC
UXNBQUFBeVNoWUFBQUFrbEd3CkFBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFE
SUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUEKQUVoR3dRSUFBSkNNZ2dVQUFD
QVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFD
UQpqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFB
QVNFYkJBZ0FBa0l5Q0JRQUFJQmtGCkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FB
QUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUEKQUlCa0ZDd0FBQURKS0Zn
QUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFz
QUFBQQp5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElL
RmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSCnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0Fa
QlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUIKQUFCSVJzRUNBQUNR
aklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFT
RWJCQWdBQQprSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFB
Q1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaCkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FB
QUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1cKQUFDQVpCUXNB
QUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0Zn
QUFnR1FVTEFBQQpBTWtvV0FBQUFKSlJzQUFBQUNUNy8zVll6cnZiN0RrNkFBQUFBRWxGVGtTdVFt
Q0MKCg==
</data>
<flag name="commit-queue"
          id="193562"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177515</attachid>
            <date>2012-12-04 11:04:41 -0800</date>
            <delta_ts>2012-12-05 15:07:49 -0800</delta_ts>
            <desc>Attempt of the day, Dec 4.</desc>
            <filename>cmr_1204.txt</filename>
            <type>text/plain</type>
            <size>58417</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjUzMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDEyLTEyLTA0ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJj
ZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGRvZXNuJ3QgYWN0
dWFsbHkgZW5hYmxlIGNhY2hpbmcgb2YgbWFpbiByZXNvdXJjZXMuIFRoYXQgd2lsbCBiZSBkb25l
IGluIGEgbGF0ZXIgcGF0Y2guCisgICAgICAgIFRoZSBNYWluUmVzb3VyY2VMb2FkZXIgYWN0dWFs
bHkgaGFzIGFuIHVuZGVybHlpbmcgU3VicmVzb3VyY2VMb2FkZXIgKHdpdGggdGhlIGNhY2hlIGxh
eWVyIGJldHdlZW4gdGhlbSkuCisgICAgICAgIEluIHNldmVyYWwgcGxhY2VzLCB0aGUgTWFpblJl
c291cmNlTG9hZGVyJ3MgU3VicmVzb3VyY2VMb2FkZXIgaXMgdHJlYXRlZCBhcyBzcGVjaWFsLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpcyBwcmltYXJpbHkgYSByZWZhY3Rvci4g
QSBjb3VwbGUgb2YgZXhwZWN0ZWQgcmVzdWx0cyBjaGFuZ2VkIHNsaWdodGx5LgorCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjpzZXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjph
ZGRTdWJyZXNvdXJjZUxvYWRlcik6IEJlY2F1c2UgdGhlIFN1YnJlc291cmNlTG9hZGVyIHVuZGVy
bHlpbmcgdGhlIG1haW4gcmVzb3VyY2UKKyAgICAgICAgICAgIG5lZWRzIHNwZWNpYWwgaGFuZGxp
bmcgaW4gY2VydGFpbiBjYXNlcywgdHJhY2sgaXQgc2VwYXJhdGVseSBmcm9tIHRoZSByZWFsIFN1
YnJlc291cmNlTG9hZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZW1v
dmVTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6TWFpblJl
c291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6cmVj
ZWl2ZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNl
bCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVzb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2Fk
ZXI6OmZyYW1lTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVl
QWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6cmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRl
cjo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2Fk
ZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWlu
UmVzb3VyY2VMb2FkZXI6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJl
c291cmNlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWlu
UmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWFp
blJlc291cmNlTG9hZGVyOjpkZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OmlkZW50aWZpZXIpOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuaDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OmRvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkZWZlcnNM
b2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpjYW5jZWxsZWQpOgor
ICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRGYWxsYmFja0Zv
ck1haW5FcnJvcik6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBcmNoaXZlOjphZGRTdWJyZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmg6CisgICAgICAgIChBcmNoaXZl
KToKKyAgICAgICAgKiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzY2hlZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6dW5zY2hlZHVsZSk6CisKIDIwMTItMTItMDQgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMzY1MDkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAJKHJldmlzaW9uIDEzNjUzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCwxMyArMTgwLDcgQEAgdm9pZCBEb2N1
bWVudExvYWRlcjo6c2V0UmVxdWVzdChjb25zdCBSZQogICAgIC8vIHdvdWxkIGJlIGEgV2ViRm91
bmRhdGlvbiBidWcgaWYgaXQgc2VudCBhIHJlZGlyZWN0IGNhbGxiYWNrIGFmdGVyIGNvbW1pdC4K
ICAgICBBU1NFUlQoIW1fY29tbWl0dGVkKTsKIAotICAgIEtVUkwgb2xkVVJMID0gbV9yZXF1ZXN0
LnVybCgpOwogICAgIG1fcmVxdWVzdCA9IHJlcTsKLQotICAgIC8vIE9ubHkgZGlzcGF0Y2hEaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBpZiBVUkwgY2hhbmdlZCAo
YW5kIGlzIG5vbi1udWxsKS4KLSAgICAvLyBBbHNvLCBkb24ndCBzZW5kIGl0IHdoZW4gcmVwbGFj
aW5nIHVucmVhY2hhYmxlIFVSTHMgd2l0aCBhbHRlcm5hdGUgY29udGVudC4KLSAgICBpZiAoIWhh
bmRsaW5nVW5yZWFjaGFibGVVUkwgJiYgIXJlcS51cmwoKS5pc051bGwoKSAmJiBvbGRVUkwgIT0g
cmVxLnVybCgpKQotICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKTsKIH0KIAogdm9pZCBEb2N1
bWVudExvYWRlcjo6c2V0TWFpbkRvY3VtZW50RXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCkBAIC04MTEsMTEgKzgwNSwyMCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGlu
Z1N1YnJlc291CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmFkZFN1YnJlc291cmNlTG9hZGVyKFJl
c291cmNlTG9hZGVyKiBsb2FkZXIpCiB7CisgICAgLy8gVGhlIG1haW4gcmVzb3VyY2UncyB1bmRl
cmx5aW5nIFJlc291cmNlTG9hZGVyIHdpbGwgYXNrIHRvIGJlIGFkZGVkIGhlcmUuCisgICAgLy8g
SXQgaXMgbXVjaCBzaW1wbGVyIHRvIGhhbmRsZSBzcGVjaWFsIGNhc2luZyBvZiBtYWluIHJlc291
cmNlIGxvYWRzIGlmIHdlIGRvbid0CisgICAgLy8gbGV0IGl0IGJlIGFkZGVkLiBJbiB0aGUgbWFp
biByZXNvdXJjZSBsb2FkIGNhc2UsIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKQorICAg
IC8vIHdpbGwgc3RpbGwgYmUgbnVsbCBhdCB0aGlzIHBvaW50LCBidXQgbV9nb3RGaXJzdEJ5dGUg
c2hvdWxkIGJlIGZhbHNlIGhlcmUgaWYgYW5kIG9ubHkKKyAgICAvLyBpZiB3ZSBhcmUganVzdCBz
dGFydGluZyB0aGUgbWFpbiByZXNvdXJjZSBsb2FkLgorICAgIGlmICghbV9nb3RGaXJzdEJ5dGUp
CisgICAgICAgIHJldHVybjsKICAgICBtX3N1YnJlc291cmNlTG9hZGVycy5hZGQobG9hZGVyKTsK
IH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6cmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIoUmVzb3Vy
Y2VMb2FkZXIqIGxvYWRlcikKIHsKKyAgICBpZiAoIW1fc3VicmVzb3VyY2VMb2FkZXJzLmNvbnRh
aW5zKGxvYWRlcikpCisgICAgICAgIHJldHVybjsKICAgICBtX3N1YnJlc291cmNlTG9hZGVycy5y
ZW1vdmUobG9hZGVyKTsKICAgICBjaGVja0xvYWRDb21wbGV0ZSgpOwogICAgIGlmIChGcmFtZSog
ZnJhbWUgPSBtX2ZyYW1lKQpAQCAtODgxLDYgKzg4NCwxMCBAQCB2b2lkIERvY3VtZW50TG9hZGVy
OjpzdGFydExvYWRpbmdNYWluUmVzCiAKICAgICBpZiAobV9yZXF1ZXN0LmlzTnVsbCgpKSB7CiAg
ICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0gMDsKKyAgICAgICAgLy8gSWYgdGhlIGxvYWQg
d2FzIGFib3J0ZWQgYnkgY2xlYXJpbmcgbV9yZXF1ZXN0LCBpdCdzIHBvc3NpYmxlIHRoZSBBcHBs
aWNhdGlvbkNhY2hlSG9zdAorICAgICAgICAvLyBpcyBub3cgaW4gYSBzdGF0ZSB3aGVyZSBzdGFy
dGluZyBhbiBlbXB0eSBsb2FkIHdpbGwgYmUgaW5jb25zaXN0ZW50LiBSZXBsYWNlIGl0IHdpdGgK
KyAgICAgICAgLy8gYSBuZXcgQXBwbGljYXRpb25DYWNoZUhvc3QuCisgICAgICAgIG1fYXBwbGlj
YXRpb25DYWNoZUhvc3QgPSBhZG9wdFB0cihuZXcgQXBwbGljYXRpb25DYWNoZUhvc3QodGhpcykp
OwogICAgICAgICBtYXliZUxvYWRFbXB0eSgpOwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzY1MzEpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNiArMzIsOCBAQAogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3Qu
aCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgpAQCAtNDQsMTUgKzQ2LDE1IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKLSNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJQcm9ncmVzc1RyYWNr
ZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJy
b3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN1YnJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNpZiBQTEFURk9S
TShRVCkKQEAgLTYzLDEzICs2NSwxMSBAQAogI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNlbmRpZgogCi0vLyBGSVhNRTogTW9yZSB0aGF0IGlzIGluIGNvbW1vbiB3aXRoIFN1
YnJlc291cmNlTG9hZGVyIHNob3VsZCBtb3ZlIHVwIGludG8gUmVzb3VyY2VMb2FkZXIuCi0KIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogTWFpblJlc291cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VMb2Fk
ZXIoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQotICAgIDogUmVzb3VyY2VMb2FkZXIo
ZG9jdW1lbnRMb2FkZXItPmZyYW1lKCksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJh
Y2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFz
a0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIFNraXBTZWN1cml0eUNoZWNrKSkKLSAg
ICAsIG1fZGF0YUxvYWRUaW1lcih0aGlzLCAmTWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVTdWJz
dGl0dXRlRGF0YUxvYWROb3cpCisgICAgOiBtX2RhdGFMb2FkVGltZXIodGhpcywgJk1haW5SZXNv
dXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KQorICAgICwgbV9kb2N1bWVu
dExvYWRlcihkb2N1bWVudExvYWRlcikKICAgICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQo
ZmFsc2UpCiAgICAgLCBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KGZhbHNlKQogICAgICwgbV90
aW1lT2ZMYXN0RGF0YVJlY2VpdmVkKDAuMCkKQEAgLTEwMiwzNCArMTAyLDMyIEBAIHZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpyZWNlaXZlZEVycm9yKGMKICAgICAvLyBkb2N1bWVudCBsb2FkZXJz
LiBBbHNvLCBtYWluUmVjZWl2ZWRFcnJvciBlbmRzIHVwIGNhbGxpbmcgYSBGcmFtZUxvYWREZWxl
Z2F0ZSBtZXRob2QKICAgICAvLyBhbmQgZGlkRmFpbFRvTG9hZCBjYWxscyBhIFJlc291cmNlTG9h
ZERlbGVnYXRlIG1ldGhvZCBhbmQgdGhleSBuZWVkIHRvIGJlIGluIHRoZSBjb3JyZWN0IG9yZGVy
LgogICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNlaXZlZEVycm9yKGVycm9yKTsKK30KIAot
ICAgIGlmICghY2FuY2VsbGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxT
dGF0ZSgpKTsKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkRmFpbFRvTG9h
ZCh0aGlzLCBlcnJvcik7Ci0gICAgICAgIAotICAgICAgICByZWxlYXNlUmVzb3VyY2VzKCk7Ci0g
ICAgfQotCi0gICAgQVNTRVJUKHJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpOwordm9pZCBNYWluUmVz
b3VyY2VMb2FkZXI6OmNhbmNlbCgpCit7CisgICAgY2FuY2VsKFJlc291cmNlRXJyb3IoKSk7CiB9
CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJy
b3ImKQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKIHsKKyAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMp
OworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvciA9IGVycm9yLmlzTnVsbCgpID8gZnJh
bWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCgpKSA6IGVycm9yOworCiAgICAgbV9k
YXRhTG9hZFRpbWVyLnN0b3AoKTsKIAogICAgIGlmIChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5
KSB7CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2FuY2VsQ2hlY2so
KTsKICAgICAgICAgQVNTRVJUKG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kpOwogICAgICAgICBt
X3dhaXRpbmdGb3JDb250ZW50UG9saWN5ID0gZmFsc2U7Ci0gICAgICAgIGRlcmVmKCk7IC8vIGJh
bGFuY2VzIHJlZiBpbiBkaWRSZWNlaXZlUmVzcG9uc2UKKyAgICAgICAgZGVyZWYoKTsgLy8gYmFs
YW5jZXMgcmVmIGluIHJlc3BvbnNlUmVjZWl2ZWQKICAgICB9Ci19CiAKLXZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAg
Ly8gV2Ugc2hvdWxkIG5vdGlmeSB0aGUgZnJhbWUgbG9hZGVyIGFmdGVyIGZ1bGx5IGNhbmNlbGlu
ZyB0aGUgbG9hZCwgYmVjYXVzZSBpdCBjYW4gZG8gY29tcGxpY2F0ZWQgd29yawotICAgIC8vIGxp
a2UgY2FsbGluZyBET01XaW5kb3c6OnByaW50KCksIGR1cmluZyB3aGljaCBhIGhhbGYtY2FuY2Vs
ZWQgbG9hZCBjb3VsZCB0cnkgdG8gZmluaXNoLgotICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5S
ZWNlaXZlZEVycm9yKGVycm9yKTsKKyAgICBpZiAobG9hZGVyKCkpCisgICAgICAgIGxvYWRlcigp
LT5jYW5jZWwocmVzb3VyY2VFcnJvcik7CisKKyAgICBjbGVhclJlc291cmNlKCk7CisgICAgcmVj
ZWl2ZWRFcnJvcihyZXNvdXJjZUVycm9yKTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRG
T1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAg
aWYgKG1fZmlsdGVyKSB7CkBAIC0xMzksNiArMTM3LDI0IEBAIHZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjpkaWRDYW5jZWwoY29uc3QKICNlbmRpZgogfQogCit2b2lkIE1haW5SZXNvdXJjZUxvYWRl
cjo6Y2xlYXJSZXNvdXJjZSgpCit7CisgICAgaWYgKG1fcmVzb3VyY2UpIHsKKyAgICAgICAgbV9y
ZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICBtX3Jlc291cmNlID0gMDsKKyAg
ICB9Cit9CisKK0ZyYW1lTG9hZGVyKiBNYWluUmVzb3VyY2VMb2FkZXI6OmZyYW1lTG9hZGVyKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlci0+ZnJhbWVMb2FkZXIoKTsKK30K
KworY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBNYWluUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3QoKSBj
b25zdAoreworICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+cmVzb3VyY2VSZXF1
ZXN0KCkgOiBtX2luaXRpYWxSZXF1ZXN0OworfQorCiBSZXNvdXJjZUVycm9yIE1haW5SZXNvdXJj
ZUxvYWRlcjo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5pbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5n
ZUVycm9yKHJlcXVlc3QoKSk7CkBAIC0xNjMsNyArMTc5LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmNvbnRpbnVlQWZ0ZXJOYQogICAgIGVsc2UgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNW
YWxpZCgpKSB7CiAgICAgICAgIC8vIEEgcmVkaXJlY3QgcmVzdWx0ZWQgaW4gbG9hZGluZyBzdWJz
dGl0dXRlIGRhdGEuCiAgICAgICAgIEFTU0VSVChkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+
cmVkaXJlY3RDb3VudCgpKTsKLSAgICAgICAgaGFuZGxlKCktPmNhbmNlbCgpOworICAgICAgICBj
bGVhclJlc291cmNlKCk7CiAgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocmVx
dWVzdCk7CiAgICAgfQogCkBAIC0xODMsMTAgKzE5OSwxNSBAQCBib29sIE1haW5SZXNvdXJjZUxv
YWRlcjo6aXNQb3N0T3JSZWRpcmVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIE1haW5S
ZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBib29s
IGFsbEF0T25jZSkKK1Bhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IE1haW5SZXNvdXJjZUxvYWRl
cjo6cmVzb3VyY2VEYXRhKCkKIHsKLSAgICBSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShkYXRhLCBs
ZW5ndGgsIGFsbEF0T25jZSk7Ci0gICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKGRh
dGEsIGxlbmd0aCk7CisgICAgcmV0dXJuIG1fcmVzb3VyY2UgPyBtX3Jlc291cmNlLT5yZXNvdXJj
ZUJ1ZmZlcigpIDogMDsKK30KKwordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnJlZGlyZWN0UmVj
ZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAgQVNTRVJU
X1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9yZXNvdXJjZSk7CisgICAgd2lsbFNlbmRS
ZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogfQogCiB2b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKQEAgLTIzOSwxMCArMjYwLDkg
QEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdAogICAgICAgICB9CiAg
ICAgfQogCi0gICAgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCBy
ZWRpcmVjdFJlc3BvbnNlKTsKLQogICAgIC8vIERvbid0IHNldCB0aGlzIG9uIHRoZSBmaXJzdCBy
ZXF1ZXN0LiBJdCBpcyBzZXQgd2hlbiB0aGUgbWFpbiBsb2FkIHdhcyBzdGFydGVkLgotICAgIG1f
ZG9jdW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3UmVxdWVzdCk7CisgICAgaWYgKCFyZWRpcmVj
dFJlc3BvbnNlLmlzTnVsbCgpKQorICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zZXRSZXF1ZXN0
KG5ld1JlcXVlc3QpOwogCiAgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7CiAg
ICAgICAgIC8vIFdlIGNoZWNrZWQgYXBwbGljYXRpb24gY2FjaGUgZm9yIGluaXRpYWwgVVJMLCBu
b3cgd2UgbmVlZCB0byBjaGVjayBpdCBmb3IgcmVkaXJlY3RlZCBvbmUuCkBAIC0yNzcsMTcgKzI5
NywxNiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvCiAgICAgICAg
IGlmICghZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSkg
fHwgaXNSZW1vdGVXZWJBcmNoaXZlKSB7CiAgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5wb2xp
Y3lDaGVja2VyKCktPmNhbm5vdFNob3dNSU1FVHlwZShyKTsKICAgICAgICAgICAgIC8vIENoZWNr
IHJlYWNoZWRUZXJtaW5hbFN0YXRlIHNpbmNlIHRoZSBsb2FkIG1heSBoYXZlIGFscmVhZHkgYmVl
biBjYW5jZWxlZCBpbnNpZGUgb2YgX2hhbmRsZVVuaW1wbGVtZW50YWJsZVBvbGljeVdpdGhFcnJv
ckNvZGU6Oi4KLSAgICAgICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAg
ICAgICAgICAgICBzdG9wTG9hZGluZ0ZvclBvbGljeUNoYW5nZSgpOworICAgICAgICAgICAgc3Rv
cExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBjYXNlIFBvbGljeURvd25sb2FkOiB7Ci0g
ICAgICAgIC8vIG1faGFuZGxlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBhIHN1YnN0
aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KLSAgICAgICAgaWYgKCFtX2hh
bmRsZSkgewotICAgICAgICAgICAgcmVjZWl2ZWRFcnJvcihjYW5ub3RTaG93VVJMRXJyb3IoKSk7
CisgICAgICAgIC8vIG1fcmVzb3VyY2UgY2FuIGJlIG51bGwsIGUuZy4gd2hlbiBsb2FkaW5nIGEg
c3Vic3RpdHV0ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLgorICAgICAgICBpZiAo
IW1fcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoZnJhbWVMb2FkZXIoKS0+
Y2xpZW50KCktPmNhbm5vdFNob3dVUkxFcnJvcihyZXF1ZXN0KCkpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRp
bnVlV2l0aFBvbGljeURvd25sb2FkKG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCksIGRvY3VtZW50
TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcik7CkBAIC0yOTcsNyArMzE2LDcgQEAgdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDbwogICAgICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCA9IHRoaXMtPnJlcXVlc3QoKTsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+c2V0T3Jp
Z2luYWxVUkxGb3JEb3dubG9hZFJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICAgICAgZnJhbWVMb2Fk
ZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1faGFuZGxlLmdldCgpLCByZXF1ZXN0LCByKTsKKyAg
ICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRvd25sb2FkKG1fcmVzb3VyY2UtPmxvYWRl
cigpLT5oYW5kbGUoKSwgcmVxdWVzdCwgcik7CiAKICAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBn
b25lIG1pc3NpbmcKICAgICAgICAgaWYgKGZyYW1lTG9hZGVyKCkpCkBAIC0zMjksMTMgKzM0OCw5
IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyQ28KICAgICAgICAgfQog
ICAgIH0KIAotICAgIC8vIHdlIG1heSBoYXZlIGNhbmNlbGxlZCB0aGlzIGxvYWQgYXMgcGFydCBv
ZiBzd2l0Y2hpbmcgdG8gZmFsbGJhY2sgY29udGVudAotICAgIGlmICghcmVhY2hlZFRlcm1pbmFs
U3RhdGUoKSkKLSAgICAgICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShyKTsK
LQotICAgIGlmIChtX2RvY3VtZW50TG9hZGVyICYmICFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3Bw
aW5nKCkgJiYgbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKKyAgICBpZiAoIW1fZG9jdW1l
bnRMb2FkZXItPmlzU3RvcHBpbmcoKSAmJiBtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgewog
ICAgICAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSkKLSAgICAgICAg
ICAgIGRpZFJlY2VpdmVEYXRhKG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5kYXRhKCksIG1f
c3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVu
dCgpLT5zaXplKCksIHRydWUpOworICAgICAgICAgICAgZGF0YVJlY2VpdmVkKDAsIG1fc3Vic3Rp
dHV0ZURhdGEuY29udGVudCgpLT5kYXRhKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5z
aXplKCkpOwogICAgICAgICBpZiAoIW1fZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSkKICAg
ICAgICAgICAgIGRpZEZpbmlzaExvYWRpbmcoMCk7CiAgICAgfQpAQCAtMzUyLDExICszNjcsMTIg
QEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDbwogICAgIG1fd2FpdGlu
Z0ZvckNvbnRlbnRQb2xpY3kgPSBmYWxzZTsKICAgICBpZiAoIW1fZG9jdW1lbnRMb2FkZXItPmlz
U3RvcHBpbmcoKSkKICAgICAgICAgY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kocG9saWN5LCBt
X3Jlc3BvbnNlKTsKLSAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gZGlkUmVjZWl2ZVJl
c3BvbnNlCisgICAgZGVyZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGluIHJlc3BvbnNlUmVjZWl2ZWQK
IH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByKQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVj
ZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
KQogeworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIG1fcmVzb3VyY2UgPT0gcmVzb3VyY2Up
OwogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXli
ZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZShyZXF1ZXN0KCksIHIpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTM4Miw3ICszOTgsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvCiAKICAgICBpZiAobV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkgewogICAgICAg
ICBtX2RvY3VtZW50TG9hZGVyLT5zZXR1cEZvclJlcGxhY2UoKTsKLSAgICAgICAgY2xlYXJSZXNv
dXJjZURhdGEoKTsKKyAgICAgICAgbV9yZXNvdXJjZS0+Y2xlYXIoKTsKICAgICB9CiAgICAgCiAg
ICAgaWYgKHIuaXNNdWx0aXBhcnQoKSkKQEAgLTM5OCw3ICs0MTQsNyBAQCB2b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvCiAKICAgICBBU1NFUlQoIW1fd2FpdGluZ0ZvckNv
bnRlbnRQb2xpY3kpOwogICAgIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kgPSB0cnVlOwotICAg
IHJlZigpOyAvLyBiYWxhbmNlZCBieSBkZXJlZiBpbiBjb250aW51ZUFmdGVyQ29udGVudFBvbGlj
eSBhbmQgZGlkQ2FuY2VsCisgICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRp
bnVlQWZ0ZXJDb250ZW50UG9saWN5IGFuZCBjYW5jZWwKIAogICAgIC8vIEFsd2F5cyBzaG93IGNv
bnRlbnQgd2l0aCB2YWxpZCBzdWJzdGl0dXRlIGRhdGEuCiAgICAgaWYgKG1fZG9jdW1lbnRMb2Fk
ZXItPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxpZCgpKSB7CkBAIC00MjMsMTEgKzQzOSwxMSBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvCiAgICAgZnJhbWVMb2FkZXIo
KS0+cG9saWN5Q2hlY2tlcigpLT5jaGVja0NvbnRlbnRQb2xpY3kobV9yZXNwb25zZSwgY2FsbENv
bnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5LCB0aGlzKTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcg
bG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpCit2b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBBU1NFUlQoZGF0YSk7CiAgICAgQVNTRVJUKGxl
bmd0aCAhPSAwKTsKLQorICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1f
cmVzb3VyY2UpOwogICAgIEFTU0VSVCghbV9yZXNwb25zZS5pc051bGwoKSk7CiAKICNpZiBVU0Uo
Q0ZORVRXT1JLKSB8fCBQTEFURk9STShNQUMpCkBAIC00NTIsMTYgKzQ2OCwxNSBAQCB2b2lkIE1h
aW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoCiAgICAgICAgIC8vIElmIHdlIGRvbid0
IGhhdmUgYmxvY2tlZERhdGEsIHRoYXQgbWVhbnMgd2UncmUgc3RpbGwgYWNjdW11bGF0aW5nIGRh
dGEKICAgICAgICAgaWYgKCFibG9ja2VkRGF0YSkgewogICAgICAgICAgICAgLy8gVHJhbnNpdGlv
biB0byBjb21taXR0ZWQgc3RhdGUuCi0gICAgICAgICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoIiIsIDAsIDAsIGZhbHNlKTsKKyAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyKCkt
PnJlY2VpdmVkRGF0YSgwLCAwKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAg
ICAgICAgIGRhdGEgPSBibG9ja2VkRGF0YTsKLSAgICAgICAgZW5jb2RlZERhdGFMZW5ndGggPSAt
MTsKICAgICB9CiAjZW5kaWYKIAotICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2Fj
aGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNlaXZlZChkYXRhLCBsZW5ndGgsIGVuY29kZWRE
YXRhTGVuZ3RoLCBhbGxBdE9uY2UpOworICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9u
Q2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNlaXZlZChkYXRhLCBsZW5ndGgsIC0xLCBm
YWxzZSk7CiAKICAgICAvLyBUaGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGlu
ZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3ZpbmcgdGhlIGxhc3QKICAgICAvLyByZWZlcmVuY2Ug
dG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4KQEAgLTQ2OSw3
ICs0ODQsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoCiAKICAg
ICBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KTsKIAotICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShkYXRhLCBsZW5ndGgsIGVu
Y29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOworICAgIGRvY3VtZW50TG9hZGVyKCktPnJlY2Vp
dmVkRGF0YShkYXRhLCBsZW5ndGgpOwogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAKICAgICBpZiAo
V2ViRmlsdGVyRXZhbHVhdG9yICpmaWx0ZXIgPSBtX2ZpbHRlcikgewpAQCAtNDkwLDcgKzUwNSw3
IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW4KICAgICAvLyBUaGVy
ZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBkaXNwYXRjaGVk
IGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxl
bS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgogI2lmICFVU0UoQ0YpCi0gICAgQVNTRVJUKCFk
ZWZlcnNMb2FkaW5nKCkgfHwgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc0RlYnVnZ2VyUGF1
c2VkKG1fZnJhbWUuZ2V0KCkpKTsKKyAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSB8fCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRGVidWdnZXJQYXVzZWQobV9kb2N1bWVudExvYWRlci0+
ZnJhbWUoKSkpOwogI2VuZGlmCiAKICAgICAvLyBUaGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNh
biBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3ZpbmcgdGhlIGxhc3QKQEAgLTUw
Niw3ICs1MjEsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluCiAg
ICAgICAgIC8vIFJlbW92ZSB0aGlzLT5tX2ZpbHRlciBlYXJseSBzbyBkaWRSZWNlaXZlRGF0YSBk
b2Vzbid0IHNlZSBpdC4KICAgICAgICAgbV9maWx0ZXIgPSAwOwogICAgICAgICBpZiAoZGF0YSkK
LSAgICAgICAgICAgIGRpZFJlY2VpdmVEYXRhKGRhdGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKKyAg
ICAgICAgICAgIGRhdGFSZWNlaXZlZChtX3Jlc291cmNlLmdldCgpLCBkYXRhLCBsZW5ndGgpOwog
ICAgICAgICB3a0ZpbHRlclJlbGVhc2UoZmlsdGVyKTsKICAgICB9CiAjZW5kaWYKQEAgLTUxNiwx
MyArNTMxLDE4IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW4KIAog
ICAgIGRvY3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5zZXRSZXNwb25zZUVuZChmaW5pc2hUaW1l
ID8gZmluaXNoVGltZSA6IChtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgPyBtX3RpbWVPZkxhc3RE
YXRhUmVjZWl2ZWQgOiBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSkpOwogICAgIGRvY3Vt
ZW50TG9hZGVyKCktPmZpbmlzaGVkTG9hZGluZygpOwotICAgIFJlc291cmNlTG9hZGVyOjpkaWRG
aW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOwogCiAgICAgZGwtPmFwcGxpY2F0aW9uQ2FjaGVIb3N0
KCktPmZpbmlzaGVkTG9hZGluZ01haW5SZXNvdXJjZSgpOwogfQogCi12b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7
CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgbV9yZXNvdXJjZSA9PSByZXNvdXJjZSk7Cisg
ICAgaWYgKCFtX3Jlc291cmNlIHx8ICghbV9yZXNvdXJjZS0+ZXJyb3JPY2N1cnJlZCgpICYmICFt
X3Jlc291cmNlLT53YXNDYW5jZWxlZCgpKSkgeworICAgICAgICBkaWRGaW5pc2hMb2FkaW5nKG1f
cmVzb3VyY2UtPmxvYWRGaW5pc2hUaW1lKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAj
aWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwODAKICAgICBpZiAobV9maWx0ZXIpIHsKICAgICAgICAgd2tGaWx0
ZXJSZWxlYXNlKG1fZmlsdGVyKTsKQEAgLTUzMCw2ICs1NTAsNyBAQCB2b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSCiAgICAgfQogI2VuZGlmCiAKKyAgICBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvciA9IG1fcmVzb3VyY2UtPnJlc291cmNlRXJyb3IoKTsKICAgICBpZiAo
ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJh
Y2tGb3JNYWluRXJyb3IocmVxdWVzdCgpLCBlcnJvcikpCiAgICAgICAgIHJldHVybjsKIApAQCAt
NTQ1LDcgKzU2Niw2IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFIK
IHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6TG9hZGVyKTsKLSAg
ICBSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAg
ICAgaW5mby5hZGRNZW1iZXIobV9pbml0aWFsUmVxdWVzdCk7CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9zdWJzdGl0dXRlRGF0YSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9kYXRhTG9hZFRpbWVyKTsK
QEAgLTU2NCw3ICs1ODQsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3Rp
dHV0CiAgICAgbV9pbml0aWFsUmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCgpOwogICAgICAgICAK
ICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHVybCwgbV9zdWJzdGl0dXRlRGF0YS5taW1l
VHlwZSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpLCBtX3N1YnN0aXR1dGVE
YXRhLnRleHRFbmNvZGluZygpLCAiIik7Ci0gICAgZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNl
KTsKKyAgICByZXNwb25zZVJlY2VpdmVkKDAsIHJlc3BvbnNlKTsKIH0KIAogdm9pZCBNYWluUmVz
b3VyY2VMb2FkZXI6OnN0YXJ0RGF0YUxvYWRUaW1lcigpCkBAIC01ODcsMjkgKzYwNyw4IEBAIHZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXQKICAgICAgICAgaGFuZGxlU3Vi
c3RpdHV0ZURhdGFMb2FkTm93KDApOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9h
ZE5vdyhSZXNvdXJjZVJlcXVlc3QmIHIpCi17Ci0gICAgQVNTRVJUKCFtX2hhbmRsZSk7Ci0gICAg
QVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkpOwotCi0jaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMp
Ci0gICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPnJlc291cmNlTG9h
ZFNjaGVkdWxlcigpLT5hZGRNYWluUmVzb3VyY2VMb2FkKHRoaXMpOwotI2Vsc2UKLSAgICByZXNv
dXJjZUxvYWRTY2hlZHVsZXIoKS0+YWRkTWFpblJlc291cmNlTG9hZCh0aGlzKTsKLSNlbmRpZgot
Ci0gICAgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKQotICAgICAgICBoYW5kbGVTdWJz
dGl0dXRlRGF0YUxvYWRTb29uKHIpOwotICAgIGVsc2UKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKG1fZnJhbWUtPmxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgp
LCByLCB0aGlzLCBmYWxzZSwgdHJ1ZSk7Ci0KLSAgICByZXR1cm47Ci19Ci0KIHZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgciwgY29uc3QgU3Vic3Rp
dHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKQogewotICAgIEFTU0VSVCghbV9oYW5kbGUpOwotCiAg
ICAgLy8gSXQgYXBwZWFycyB0aGF0IGl0IGlzIHBvc3NpYmxlIGZvciB0aGlzIGxvYWQgdG8gYmUg
Y2FuY2VsbGVkIGFuZCBkZXJlZmVuY2VkIGJ5IHRoZSBEb2N1bWVudExvYWRlcgogICAgIC8vIGlu
IHdpbGxTZW5kUmVxdWVzdCgpIGlmIGxvYWROb3coKSBpcyBjYWxsZWQuCiAgICAgUmVmUHRyPE1h
aW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKQEAgLTYyNywzNyArNjI2LDY0IEBAIHZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc28KICAgICB3aWxsU2VuZFJlcXVl
c3QocmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSgpKTsKICAgICBBU1NFUlQoIWRlbGV0aW9uSGFz
QmVndW4oKSk7CiAKLSAgICAvLyA8cmRhcjovL3Byb2JsZW0vNDgwMTA2Nj4KLSAgICAvLyB3aWxs
U2VuZFJlcXVlc3QoKSBpcyBsaWFibGUgdG8gbWFrZSB0aGUgY2FsbCB0byBmcmFtZUxvYWRlcigp
IHJldHVybiBudWxsLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQgaGVyZQotICAgIGlmICghZnJh
bWVMb2FkZXIoKSB8fCByZXF1ZXN0LmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmICghcmVhY2hlZFRl
cm1pbmFsU3RhdGUoKSkKLSAgICAgICAgICAgIHJlbGVhc2VSZXNvdXJjZXMoKTsKKyAgICAvLyB3
aWxsU2VuZFJlcXVlc3QoKSBtYXkgbGVhZCB0byBvdXIgRG9jdW1lbnRMb2FkZXIgYmVpbmcgZGV0
YWNoZWQgb3IgY2FuY2VsbGluZyB0aGUgbG9hZCB2aWEgbnVsbGluZyB0aGUgUmVzb3VyY2VSZXF1
ZXN0LgorICAgIGlmICghZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSB8fCByZXF1ZXN0LmlzTnVs
bCgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBw
bGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkTWFpblJlc291cmNlKHJlcXVlc3QsIG1fc3Vi
c3RpdHV0ZURhdGEpOwogCi0gICAgaWYgKGRlZmVyc0xvYWRpbmcoKSkKLSAgICAgICAgbV9pbml0
aWFsUmVxdWVzdCA9IHJlcXVlc3Q7Ci0gICAgZWxzZQotICAgICAgICBsb2FkTm93KHJlcXVlc3Qp
OworICAgIGNvbnN0IEtVUkwmIHVybCA9IHIudXJsKCk7CisKKyAgICBpZiAobV9zdWJzdGl0dXRl
RGF0YS5pc1ZhbGlkKCkpCisgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocik7
CisgICAgZWxzZSB7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNoZWRSZXNvdXJj
ZVJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNu
aWZmQ29udGVudCwgQnVmZmVyRGF0YSwKKyAgICAgICAgICAgIEFsbG93U3RvcmVkQ3JlZGVudGlh
bHMsIEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIFNraXBTZWN1cml0eUNoZWNr
KSk7CisgICAgICAgIG1fcmVzb3VyY2UgPSBkb2N1bWVudExvYWRlcigpLT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLT5yZXF1ZXN0TWFpblJlc291cmNlKGNhY2hlZFJlc291cmNlUmVxdWVzdCk7Cisg
ICAgICAgIGlmICghbV9yZXNvdXJjZSkgeworICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+
c2V0UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOworCisgICAgICAgIC8v
IFdlIG5lZWQgdG8gd2FpdCB1bnRpbCBhZnRlciByZXF1ZXN0TWFpblJlc291cmNlKCkgaXMgY2Fs
bGVkIHRvIHNldFJlcXVlc3QoKSwgYmVjYXVzZSB0aGVyZSBhcmUgYSBidW5jaCBvZiBoZWFkZXJz
IHNldCB3aGVuCisgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIFJlc291cmNlTG9hZGVyIGlzIGNy
ZWF0ZWQsIGFuZCBEb2N1bWVudExvYWRlcjo6bV9yZXF1ZXN0IG5lZWRzIHRvIGluY2x1ZGUgdGhv
c2UuIEhvd2V2ZXIsIHRoZSBjYWNoZSB3aWxsCisgICAgICAgIC8vIHN0cmlwIHRoZSBmcmFnbWVu
dCBpZGVudGlmaWVyICh3aGljaCBEb2N1bWVudExvYWRlcjo6bV9yZXF1ZXN0IHNob3VsZCBhbHNv
IGluY2x1ZGUpLCBzbyBhZGQgdGhhdCBiYWNrIGluLgorICAgICAgICBpZiAobG9hZGVyKCkpCisg
ICAgICAgICAgICByZXF1ZXN0ID0gbG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpOworICAgICAg
ICBpZiAodXJsICE9IHJlcXVlc3QudXJsKCkpCisgICAgICAgICAgICByZXF1ZXN0LnNldFVSTCh1
cmwpOworICAgICAgICBkb2N1bWVudExvYWRlcigpLT5zZXRSZXF1ZXN0KHJlcXVlc3QpOworICAg
IH0KIH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBk
ZWZlcnMpCiB7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsK
KyAgICBpZiAobG9hZGVyKCkpCisgICAgICAgIGxvYWRlcigpLT5zZXREZWZlcnNMb2FkaW5nKGRl
ZmVycyk7Cit9CiAKLSAgICBpZiAoZGVmZXJzKSB7Ci0gICAgICAgIGlmIChtX2RhdGFMb2FkVGlt
ZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgaWYgKG1faW5pdGlhbFJlcXVlc3QuaXNOdWxsKCkpCi0gICAgICAg
ICAgICByZXR1cm47Citib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGVmZXJzTG9hZGluZygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGxvYWRlcigpID8gbG9hZGVyKCktPmRlZmVyc0xvYWRpbmcoKSA6
IGZhbHNlOworfQogCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCBpbml0aWFsUmVxdWVzdChtX2lu
aXRpYWxSZXF1ZXN0KTsKLSAgICAgICAgbV9pbml0aWFsUmVxdWVzdCA9IFJlc291cmNlUmVxdWVz
dCgpOwotICAgICAgICBsb2FkTm93KGluaXRpYWxSZXF1ZXN0KTsKLSAgICB9Cit2b2lkIE1haW5S
ZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVmZmVyaW5nUG9saWN5IHNo
b3VsZEJ1ZmZlckRhdGEpCit7CisgICAgQVNTRVJUKG1fcmVzb3VyY2UpOworICAgIG1fcmVzb3Vy
Y2UtPnNldFNob3VsZEJ1ZmZlckRhdGEoc2hvdWxkQnVmZmVyRGF0YSk7Cit9CisKK1Jlc291cmNl
TG9hZGVyKiBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWRlcigpIGNvbnN0Cit7IAorICAgIHJldHVy
biBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+bG9hZGVyKCkgOiAwOworfQorCit1bnNpZ25lZCBs
b25nIE1haW5SZXNvdXJjZUxvYWRlcjo6aWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgaWYgKFJl
c291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciA9IGxvYWRlcigpKQorICAgICAgICByZXR1cm4g
cmVzb3VyY2VMb2FkZXItPmlkZW50aWZpZXIoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24g
MTM2NTMxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaWZuZGVmIE1haW5SZXNvdXJjZUxvYWRl
cl9oCiAjZGVmaW5lIE1haW5SZXNvdXJjZUxvYWRlcl9oCiAKKyNpbmNsdWRlICJDYWNoZWRSYXdS
ZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiU3Vic3RpdHV0ZURhdGEuaCIKQEAgLTQ5LDIxICs1MSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBGb3JtU3RhdGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKLWNsYXNzIE1h
aW5SZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZXNvdXJjZUxvYWRlciB7CitjbGFzcyBNYWluUmVz
b3VyY2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNYWluUmVzb3VyY2VMb2FkZXI+LCBwdWJs
aWMgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gY3Jl
YXRlKERvY3VtZW50TG9hZGVyKik7CiAgICAgdmlydHVhbCB+TWFpblJlc291cmNlTG9hZGVyKCk7
CiAKICAgICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0
ZURhdGEmKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiwgaW50LCBib29s
IGFsbEF0T25jZSkgT1ZFUlJJREU7CisgICAgdm9pZCBjYW5jZWwoKTsKKyAgICB2b2lkIGNhbmNl
bChjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgUmVzb3VyY2VMb2FkZXIqIGxvYWRlcigpIGNv
bnN0OworICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IHJlc291cmNlRGF0YSgpOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCkgT1ZFUlJJREU7Ci0KLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgaW50LCBsb25nIGxv
bmcgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwor
ICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKKyAgICB2b2lkIHNldFNob3VsZEJ1ZmZl
ckRhdGEoRGF0YUJ1ZmZlcmluZ1BvbGljeSk7CiAKICNpZiBIQVZFKFJVTkxPT1BfVElNRVIpCiAg
ICAgdHlwZWRlZiBSdW5Mb29wVGltZXI8TWFpblJlc291cmNlTG9hZGVyPiBNYWluUmVzb3VyY2VM
b2FkZXJUaW1lcjsKQEAgLTcxLDE4ICs3MiwyMSBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBUaW1l
cjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNvdXJjZUxvYWRlclRpbWVyOwogI2VuZGlmCiAK
KyAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBjb25zdDsKICAgICBib29sIGlzTG9hZGlu
Z011bHRpcGFydENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2xvYWRpbmdNdWx0aXBhcnRDb250
ZW50OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0IE9WRVJSSURFOworICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1haW5SZXNvdXJj
ZUxvYWRlcihEb2N1bWVudExvYWRlciopOwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwo
Y29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5j
ZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotCi0gICAgdm9pZCBsb2FkTm93KFJl
c291cmNlUmVxdWVzdCYpOworICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdFJlY2VpdmVkKENhY2hl
ZFJlc291cmNlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNl
KiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
YXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxl
bmd0aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlKikgT1ZFUlJJREU7CiAKKyAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB2
b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgaGFuZGxl
U3Vic3RpdHV0ZURhdGFMb2FkU29vbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lk
IGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdyhNYWluUmVzb3VyY2VMb2FkZXJUaW1lciopOwog
CkBAIC0xMDQsMTAgKzEwOCwyMiBAQCBwcml2YXRlOgogICAgIHZvaWQgc3Vic3RpdHV0ZU1JTUVU
eXBlRnJvbVBsdWdpbkRhdGFiYXNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICNlbmRpZgog
CisgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyKCkgY29uc3Q7CisgICAgRG9jdW1lbnRMb2Fk
ZXIqIGRvY3VtZW50TG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQo
KTsgfQorCisgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgY29uc3Q7CisgICAg
dm9pZCBjbGVhclJlc291cmNlKCk7CisKKyAgICBib29sIGRlZmVyc0xvYWRpbmcoKSBjb25zdDsK
KworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNl
OworCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1faW5pdGlhbFJlcXVlc3Q7CiAgICAgU3Vic3RpdHV0
ZURhdGEgbV9zdWJzdGl0dXRlRGF0YTsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7
CiAKICAgICBNYWluUmVzb3VyY2VMb2FkZXJUaW1lciBtX2RhdGFMb2FkVGltZXI7CisgICAgUmVm
UHRyPERvY3VtZW50TG9hZGVyPiBtX2RvY3VtZW50TG9hZGVyOwogCiAgICAgYm9vbCBtX2xvYWRp
bmdNdWx0aXBhcnRDb250ZW50OwogICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAxMzY1
MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VFcnJvciBjYW5ub3RT
aG93VVJMRXJyb3IoKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhi
b29sKTsKKyAgICBib29sIGRlZmVyc0xvYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyc0xv
YWRpbmc7IH0KIAogICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQogCkBAIC0xNjgsNyArMTY5LDYgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgZGlkRmluaXNoTG9hZGluZ09uZVBhcnQoZG91YmxlIGZpbmlzaFRpbWUpOwogCiAgICAgYm9v
bCBjYW5jZWxsZWQoKSBjb25zdCB7IHJldHVybiBtX2NhbmNlbGxlZDsgfQotICAgIGJvb2wgZGVm
ZXJzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJzTG9hZGluZzsgfQogCiAgICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsKICAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDEzNjUzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCkBAIC0xNDcs
NiArMTQ4LDEwIEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCgKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChuZXdS
ZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKworICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5p
c051bGwoKSAmJiBtX3Jlc291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNv
dXJjZSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCk7CisKICAgICBpZiAobmV3UmVxdWVz
dC5pc051bGwoKSkKICAgICAgICAgY2FuY2VsKCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHJl
dmlzaW9uIDEzNjUzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBib29s
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRGYWxsCiAgICAgICAgIGlmIChpc0FwcGxp
Y2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsKICAgICAgICAgICAgIG1fbWFpblJlc291cmNlQXBwbGlj
YXRpb25DYWNoZSA9IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5S
ZXF1ZXN0KHJlcXVlc3QsIGRvY3VtZW50TG9hZGVyKCkpOwogCi0gICAgICAgICAgICBpZiAoc2No
ZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9h
ZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2Fj
aGUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VG
cm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIo
KS0+bG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTcsNyArMTE3
LDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbAogICAgICAgICBp
ZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBtX21haW5SZXNv
dXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2Fj
aGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0LCBtX2RvY3VtZW50TG9hZGVyKTsKIAotICAgICAgICAg
ICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShk
b2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBs
aWNhdGlvbkNhY2hlLmdldCgpKSkKKyAgICAgICAgICAgIGlmIChzY2hlZHVsZUxvYWRGYWxsYmFj
a1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291
cmNlTG9hZGVyKCktPmxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0
KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5jcHAJKHJldmlzaW9uIDEz
NjUzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMiBAQCBBcmNoaXZlOjp+QXJjaGl2ZSgpCiB7CiB9CiAK
K3ZvaWQgQXJjaGl2ZTo6YWRkU3VicmVzb3VyY2UoUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+
IHN1YnJlc291cmNlKQoreworICAgIGlmIChtX21haW5SZXNvdXJjZS0+dXJsKCkgIT0gc3VicmVz
b3VyY2UtPnVybCgpKQorICAgICAgICBtX3N1YnJlc291cmNlcy5hcHBlbmQoc3VicmVzb3VyY2Up
OworfQorCiB2b2lkIEFyY2hpdmU6OmNsZWFyQWxsU3ViZnJhbWVBcmNoaXZlcygpCiB7CiAgICAg
VmVjdG9yPFJlZlB0cjxBcmNoaXZlPiA+IGNsZWFyZWRBcmNoaXZlczsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmgJKHJldmlzaW9uIDEzNjUzMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmUuaAkod29ya2luZyBjb3B5KQpAQCAtNTQs
NyArNTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgbWVhbnQgZm9y
IHN1YmNsYXNzZXMgZm9yIGRpZmZlcmVudCBhcmNoaXZlIHR5cGVzIHRvIGFkZCByZXNvdXJjZXMg
aW4gdG8gdGhlIGFyY2hpdmUsCiAgICAgLy8gYW5kIHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyBh
cmNoaXZlcyBzaG91bGQgYmUgaW1tdXRhYmxlIHRvIGNsaWVudHMKICAgICB2b2lkIHNldE1haW5S
ZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gbWFpblJlc291cmNlKSB7IG1fbWFp
blJlc291cmNlID0gbWFpblJlc291cmNlOyB9Ci0gICAgdm9pZCBhZGRTdWJyZXNvdXJjZShQYXNz
UmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3ViUmVzb3VyY2UpIHsgbV9zdWJyZXNvdXJjZXMuYXBw
ZW5kKHN1YlJlc291cmNlKTsgfQorICAgIHZvaWQgYWRkU3VicmVzb3VyY2UoUGFzc1JlZlB0cjxB
cmNoaXZlUmVzb3VyY2U+IHN1YnJlc291cmNlKTsKICAgICB2b2lkIGFkZFN1YmZyYW1lQXJjaGl2
ZShQYXNzUmVmUHRyPEFyY2hpdmU+IHN1YmZyYW1lQXJjaGl2ZSkgeyBtX3N1YmZyYW1lQXJjaGl2
ZXMuYXBwZW5kKHN1YmZyYW1lQXJjaGl2ZSk7IH0KIAogICAgIHZvaWQgY2xlYXJBbGxTdWJmcmFt
ZUFyY2hpdmVzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9h
ZGVyTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3Vt
ZW50TG9hZGVyTWFjLmNwcAkocmV2aXNpb24gMTM2NTMxKQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1
LDggQEAgc3RhdGljIHZvaWQgdW5zY2hlZHVsZUFsbChjb25zdCBSZXNvdXJjZQogCiB2b2lkIERv
Y3VtZW50TG9hZGVyOjpzY2hlZHVsZShTY2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYgKG1f
bWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKSkKLSAg
ICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLT5zY2hlZHVsZShwYWlyKTsKKyAg
ICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRl
cigpICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+aGFuZGxlKCkpCisgICAgICAg
IG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+aGFuZGxlKCktPnNjaGVkdWxlKHBhaXIp
OwogICAgIHNjaGVkdWxlQWxsKG1fc3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKICAgICBzY2hl
ZHVsZUFsbChtX3BsdWdJblN0cmVhbUxvYWRlcnMsIHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1f
bXVsdGlwYXJ0U3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKQEAgLTY0LDggKzY0LDggQEAgdm9p
ZCBEb2N1bWVudExvYWRlcjo6c2NoZWR1bGUoU2NoZWR1bGVQYQogCiB2b2lkIERvY3VtZW50TG9h
ZGVyOjp1bnNjaGVkdWxlKFNjaGVkdWxlUGFpciogcGFpcikKIHsKLSAgICBpZiAobV9tYWluUmVz
b3VyY2VMb2FkZXIgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpKQotICAgICAgICBt
X21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCktPnVuc2NoZWR1bGUocGFpcik7CisgICAgaWYg
KG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKSAm
JiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpKQorICAgICAgICBtX21h
aW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpLT51bnNjaGVkdWxlKHBhaXIpOwog
ICAgIHVuc2NoZWR1bGVBbGwobV9zdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwogICAgIHVuc2No
ZWR1bGVBbGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICB1bnNjaGVkdWxlQWxs
KG1fbXVsdGlwYXJ0U3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDEzNjUzMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDEyLTEyLTA0ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJjZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkg
Y2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sOiBUaGUgbWFpbiBy
ZXNvdXJjZSdzIHVybCB3aWxsIGV4Y2x1ZGUgdGhlIGZyYWdtZW50IGlkZW50aWZpZXIgaGVyZS4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxs
LW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogVGhlIGVycm9yIGNvZGUgZm9yIGxvYWRzIGNhbmNl
bGxlZAorICAgICAgICAgICAgYnkgYW4gZW1iZWRkZXIncyB3aWxsU2VuZFJlcXVlc3QoKSB3aWxs
IHNob3cgYXMgc3RhbmRhcmQgbG9hZCBjYW5jZWxsYXRpb25zIHJhdGhlciB0aGFuIGFzIGEgY29u
dGVudCBwb2xpY3kKKyAgICAgICAgICAgIGZhaWx1cmUuIFRoaXMgd2FzIGFuIG9kZCBxdWlyayBv
ZiBob3cgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoKSB3YXMgaW1wbGVtZW50
ZWQgKG5hbWVseSwgZG9pbmcgYQorICAgICAgICAgICAgY29udGVudCBwb2xpY3kgY2hlY2sgb24g
UmVzb3VyY2VSZXF1ZXN0cyB3aXRoIGVtcHR5IHVybHMpLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2Zhc3QvcmVwbGFjZWQvYm9yZGVyLXJhZGl1cy1jbGlwLWNvbnRlbnQtZWRn
ZS1leHBlY3RlZC5wbmc6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9t
aXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50
eHQ6IFRoZSBlcnJvciBjb2RlIGZvciBsb2FkcyBjYW5jZWxsZWQKKyAgICAgICAgICAgIGJ5IGFu
IGVtYmVkZGVyJ3Mgd2lsbFNlbmRSZXF1ZXN0KCkgd2lsbCBzaG93IGFzIHN0YW5kYXJkIGxvYWQg
Y2FuY2VsbGF0aW9ucyByYXRoZXIgdGhhbiBhcyBhIGNvbnRlbnQgcG9saWN5CisgICAgICAgICAg
ICBmYWlsdXJlLiBUaGlzIHdhcyBhbiBvZGQgcXVpcmsgb2YgaG93IE1haW5SZXNvdXJjZUxvYWRl
cjo6d2lsbFNlbmRSZXF1ZXN0KCkgd2FzIGltcGxlbWVudGVkIChuYW1lbHksIGRvaW5nIGEKKyAg
ICAgICAgICAgIGNvbnRlbnQgcG9saWN5IGNoZWNrIG9uIFJlc291cmNlUmVxdWVzdHMgd2l0aCBl
bXB0eSB1cmxzKS4KKwogMjAxMi0xMi0wNCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNjUwOS4K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRl
cnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwJKHJldmlzaW9uIDEzNjUzMSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBmdW5jdGlvbiBvblJl
cXVlc3RGaW5pc2hlZChldmVudCkKICAgICB7CiAgICAgICAgIHZhciByZXF1ZXN0ID0gZXZlbnQu
ZGF0YTsKLSAgICAgICAgaWYgKHJlcXVlc3QudXJsICE9PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5UGFyYW0xPXF1ZXJ5VmFs
dWUxJnF1ZXJ5UGFyYW0yPSNmcmFnbWVudFBhcmFtMT1mcmFnbWVudFZhbHVlMSZmcmFnbWVudFBh
cmFtMj0iKQorICAgICAgICBpZiAocmVxdWVzdC51cmwgIT09ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2k/cXVlcnlQYXJhbTE9cXVlcnlW
YWx1ZTEmcXVlcnlQYXJhbTI9IikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRPYmplY3QobmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShyZXF1ZXN0KS5idWls
ZCgpLCBJbnNwZWN0b3JUZXN0LkhBUlByb3BlcnR5Rm9ybWF0dGVycyk7CiAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJl
cXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTM2
NTMxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJl
dHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIs
NyArMiw3IEBAIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWQKIDx1bmtu
b3duPiAtIGRpZEZpbmlzaExvYWRpbmcKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291
cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVx
dWVzdCBVUkwgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8sIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1y
ZWRpcmVjdC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVz
cG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0
dHAtdXJsLnBocCwgaHR0cCBzdGF0dXMgY29kZSAzMDI+CiBSZXR1cm5pbmcgbnVsbCBmb3IgdGhp
cyByZWRpcmVjdAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0
LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21h
aW4gV2ViS2l0RXJyb3JEb21haW4sIGNvZGUgMTAyPgoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21p
c2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0
aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5PgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NTk1CiBUaGlzIHRlc3QgY2hl
Y2tzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaW5ncyBiZWhhdmUgYXMgZXhwZWN0ZWQgd2hlbiB0aGUg
cmVzb3VyY2UgbG9hZCBkZWxlZ2F0ZSByZXR1cm5zIG51bGwgaW4gcmVzcG9uc2UgdG8gd2lsbFNl
bmRSZXF1ZXN0LgogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rl
c3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRw
L3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTM2NTMxKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1y
ZWRpcmVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWQKIDx1bmtub3duPiAtIGRpZEZpbmlz
aExvYWRpbmcKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10
by1odHRwLXVybC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDov
L3d3dy5leGFtcGxlLmNvbS8sIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC5odG1sLCBo
dHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCwgaHR0
cCBzdGF0dXMgY29kZSAzMDI+CiBSZXR1cm5pbmcgbnVsbCBmb3IgdGhpcyByZWRpcmVjdAotaHR0
cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBo
cCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gV2ViS2l0LCBjb2Rl
IC0xMDAwMCwgZmFpbGluZyBVUkwgIihudWxsKSI+CitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gZGlkRmFpbExvYWRpbmdXaXRo
RXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBOU1VSTEVycm9yRG9tYWluLCBjb2RlIC05OTksIGZhaWxp
bmcgVVJMICIobnVsbCkiPgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI3NTk1CiBUaGlzIHRlc3QgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaW5ncyBiZWhhdmUg
YXMgZXhwZWN0ZWQgd2hlbiB0aGUgcmVzb3VyY2UgbG9hZCBkZWxlZ2F0ZSByZXR1cm5zIG51bGwg
aW4gcmVzcG9uc2UgdG8gd2lsbFNlbmRSZXF1ZXN0LgogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3JlcGxhY2VkL2JvcmRlci1yYWRpdXMtY2xpcC1jb250
ZW50LWVkZ2UtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFy
a2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKCmlWQk9SdzBL
R2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVuQUFBQUtYUkZXSFJqYUdWamEzTjFi
UUJrTURrNU0yVTMKTkRJek16RTBNbVE0TVdNMU0yUTNNV1V3WXprMVpqRmlaVUhpSXlZQUFDQUFT
VVJCVkhpYzdkMXhiQnZYZ2VmeFIwZC9NRGx0T0RhRQpXTWdaRnROTmFqVjJZd250bmdRMEtPVWtD
MTMvdU5oeWcxWCt1SVVkcEVDM2FCSkw5aDZTYm9ERzdoL2J0TGlGeGFMRmJmNEkxdXJ0CmJSMWth
MG5aV3lBRzRvcDBiRUJPY3hYVmRUY1U0RlNrNDNVcEl6YUhxSXJRQ0syNVA2WlZxWkU0NGxEdmNU
aHZ2cC8vU0k2bGwrQ0gKcHg5bjNwdUpXSllsQUFBQUlNOFd2d2NBQUFDZ0d3b1dBQUNBWkJRc0FB
QUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQQprSXlDQlFBQUlCa0ZDd0FBUURJS0Zn
QUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaCkJR
c0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJ
RkFBQWdHUVVMQUFCQU1nb1cKQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0Vi
QkFnQUFrSXlDQlFBQUlGbWIzd01JbnR1M2IzLzY2YWMzYjk0VQpRbVN6V2Z2TmJEWnJtdWJhZzNm
dTNIbi8vZmNMSWU2Nzc3NXQyN1oxZG5iZWRkZGRiVzM4YjljQlNZQ05KQUJZSzJKWmx0OWphR20z
CmI5OHVGb3VsVWltWHk5V2FNYjB5RE9QTFgvNXlQQjZQeFdKYnRuQVNNUmhJQW13a0FVQTlLRmpy
V0ZwYXVubnpaamFiblptWlVmMjcKOXV6Wjg2VXZmYW16czFQMUwwSURTQUpzSkFHQVZ4U3MzMXRl
WHI1eDQ4YUhIMzc0emp2ditES0FKNTU0NGd0ZitFSTBHdlhsdDJNRgpTWUNOSkFEWWpMQVhMSHNP
dlhqeDR1WExsLzBlaXhCQzlQZjNKeElKcHRUbUl3bXdrUVFBVW9TM1lCV0x4Wi85N0djdE1vYzY5
UGYzClAvNzQ0Nng3YlE2U0FCdEpBQ0JSNkFwV3VWeis0SU1QenA4L0wyVnBxbEpQUC8zMHJsMjcv
QjZGdGtnQ2JDUUJnQW9oS2xqRll2RzkKOTk1cndocFZpUXpEZVBiWlo5dmIyLzBlaUZaSUFtd2tB
WUE2b1NoWXhXSnhjbkx5NnRXcmZnK2tRWHh0bFlVa3dFWVNBS2ltZWNFSworalM2WXMrZVBVTkRR
OXdncDJFa0FUYVNBS0E1dEMxWVMwdExiNzc1cHFKcE5CNlBSNlBSenM3T1dDeG1HTWJLKzRaaFZM
OFVRcGltCmFacG11VnhlWEZ3c0ZBcUZRcUhoZFI2R1lYenptOTlrbGF0WEpBRTJrZ0NnbVRRc1dK
Vks1ZHk1Y3hMWFZSaUcwZDNkSFl2Rk9qczcKMTA2WFhwbW1tY3ZsNXVmblZ4NnA0V2trektmMUl3
bXdrUVFBemFkYndacWZuejk5K3ZUbWY0NWhHUEY0dkt1ckt4NlBiM0wyck1VMAp6V3cyZStuU0ph
L2ZYNTkvL3ZsdDI3YXBHSkpPU0FKc0pBR0FML1FwV0V0TFM2Ky8vdm9tTjFySDQvRzllL2VxbTBE
WGxjbGswdW0wCnA1Ry8vUExMZkdldGhTVEFSaElBK0VpVGduWHg0c1hOUE03Q01JeSt2cjd1N3U1
bXpxRU82WFI2Wm1hbVhDN1hjekRYQldvaENiQ1IKQkFEK0NuekIyc3lYMUdnMDJ0UFRzM2Z2WHEv
UFZWMTQ5NlA4TDI2bUprMnpGTWtzeEZiZXp5MTE1Q3M3cW8vc2Fyc1diLzg0M3JIVQo4L2s3aWIv
WTN2dDB0OHVQTlUzejdObXpkYTdETUF6aitlZWZady9SQ2wrU2tMdHdMZi8vUGw0M0NiblZTWWhY
SjJHNHMyZlliWTg5ClNkZ01mK2FFQlN1ZkY2bVVNRTJSeWZ6eC9WeE81UE9SNmlPN3VxeDRYTVRq
b3FkSEpCS2l0emZpL0ZsVlNBSVFYTUV1V0EydnJqQU0KSTVGSTlQVDAxSGw4S3BsSlRacXBqR0hl
dm52dWs4WnZQeE9MbEFZNnM0Y1Bpd04vMjFmcm1KbVptYk5uejliejAvYnMyZlBWcjM2MQo0Y0hv
cEdsSlNGY2xJYk9KSkJoL1NNSitraUJWOCthRWxKVksvYjVSemMyNWxTUjNzWmcxTUNBT0h4WUhE
dFQ4SVNRQkNLS2dGcXhLCnBUSTFOZFhBVThQcW4wWlhTbFhhckhmT3JWOHNVaHBKekI3NWg1NnQ4
WFV1UUJRS2hmSHg4WG91RFF3UEQzZDN1NTBWMDE0VGtyQlMKcWxJS2ttRFlTVGpWYTNURjFuNUtF
dXJYakRuaEQ2VXFuVzY4VWRVU2kxa2pJK0xJRWJGMTZ6by9uQ1FBZ1JQSWd0WFlKWUE2cDlISgp2
N2swK2Vhbmt4OSt2bVN0OHdkUExwZWFWUzZYeDhmSEM0WENoai9rMkxGam9YMXVodElrVFAwaENh
YjZKTGpVTEpKUUQ3Vnp3cVExCk9Ta21KMFdwSkw5WE9ialVMSklBQkV2d0NsWStuejkxNnBTbmYy
SVl4dURnb1B1M3V0blQyZkh2TDU3SzlEU2hWemwwdFYwN2VlemEKMEt2OWp2ZnJuRThOd3poeTVJ
aXkwYlV1UlVuSXZERS8vcjNDcVV4UEUzcVZRN3p0MnNtLy9vOEQzM1ZlTkNRSjdsVE5DYlBXK0xn
NApkYW9admNxaHE4czZlVklNRFRYWXNVS2JCS0NsQkt4Z3pjN092dlhXVzU3K1NYOS9meUtSaUVh
ajYzNWF6Sm5qUitmRy91VlBIWXZUCm0rOUliM3JzRnduSG0zWE9weUc4S0NBOUNXYStORDZhR2Z1
WFA4MzVuWVNSM3ZSSmtsQTMrWE5DMFJvZkYyTmp6c1hwelhma2lEVTIKMW1ESENtRVNnRllUcElM
MTA1LysxTk1DaTNnOFBqZzRXR3MzVURGbkpwL0pqS1Y3bTMvS3FwYTlkODlQLy90MngrWENjcm1j
VENZMwpYSHNScXJ2Z3lFMkNtUzhsRDgrT3BYdWJmOHFxbHA2NzU2Yy82SFJjTGlRSmEwbWVFNHBX
TWluR3hudzRaVlhMM3IzVzlMVHpjaUZKCkFBSWhHQVhMNi9MVmFEUTZPRGhZYTJuRndyc2ZKWS84
MnBlcmdSdnFhcnMyOGIrWEhIZHpLQlFLcjczMm12cy83Ty92SHh3Y1ZEbTAKbGlBM0Nia0wxNUl2
Zk9qTDFjQU54ZHV1VGZ6ajd4eDNjeUFKS3lUUENRdFdNdW5QMWNBTmRYVlpFeFBPdXptUUJLRDFC
YUJnVlNxVgpILzNvUi9Vdlg0M0g0OFBEdyt1ZS95L216TkUvdnp4KzVWR3BBNVFzRmlsTi85TnZI
QjJybm4zYUw3NzRZcTJySG5xUW1BUXpYeHA5CjR0OU90WFlTakVocCtpY0ZSOGNpQ1VMdW5GQzBS
a2ZGK0hqTDlhcHFzWmcxUGUzc1dDUUJhSEd0ZmtzNnJ6UHB3TURBb1VPSDFwMVQKeGc2bUgvaE1w
TVhibFJDaVpNV0cvcks5bUZ2MW45emYzNy9oaW9wME9xMXlYRDZUbUlUa3dmUURENGdXYjFkQ0NO
T0tEZjMzLzJUbQpTOVZ2a2dTWmM4S1k5Y0FEcmQ2dWhCQ2xVbVJvU0JTTHE3NE1rd1NneGJWMHdm
STBrMGFqMFVPSERpVVN6dFhCUW9qcGs3TTk5OHlQClRpUmE4SnJndXZLVkhmc2VYblM4T1RnNDZQ
NWx0UDZuYWdTT3JDU2t4aks5OTh5UFRDUmE4SnJndW5LVkhmcys1MXpPVEJJa3pBblQKVmsrUE5U
b2FhY0ZyZ3V2SzV5UDc5am5mREhNU2dOWjMxL0hqeC8wZXcvbzh6YVR4ZVB6Wlo1L3Q2T2h3dkYv
TW1kLzRzL2VQL3FSdgpzZUw4cU1VdFZqcUtVK212L0ZWODVaMW9OSHJuenAxY0x1ZnlyNkxSNk02
ZE8xV1ByY21rSk1ITWw3N3haKytQL3VTL0ZJS1doRUtsCnc1eEsvMWVTSUd0T0tGcmYrSVk0ZWpT
eXVCaU1hclZpY1RGU0xGcGYrY29maHgzYUpBQ0IwS0puc0phWGwrdWZTV3RkQXBnK09SdUkKYTRL
MS9DQ1RtSGhwcHZxZFJDTGgvdWpaYytmT0tSNVVzMGxKUW1vc0U0aHJnclVrTTRuSmIxMnFmb2Nr
dUtzNUowd0g0NXBnTFQvNApRV1JpWXRXRndoQW1BUWlLRmkxWUV4TVRkYzZrKy9mdlgvY1N3UEY5
cWNlT3R0QXRHQm96K25jN0hJdXgxdjJQclZiUGpaNERaUE5KCk9MRXZ0VyswRmZjSmVqTDZQLyt6
WXpFV1NhaWw1cHh3M0hyc3NjQmNFNnhsZE5TNUdDdHNTUUNDb2hVTFZ2MzN0dG0vZi8vYWZkY0wK
NzM3VWM4LzhpZFNBL0pFMVhiNnlZK3h3cHZxZG5wNGU5eStzRnk5ZVZEeW81dGxrRW5JWHJ2WGVN
MzljaXlUa0tqdkdEczFXdjBNUwoxclgrbkxCZzlmUllKMDRFdTFyWjh2bkkyTmlxZDBLVkJDQkFX
cTVnemM3TzFqT1RScVBScjMvOTYydG4wb21YWm5vVDk4NTlzbXZkCmZ4VkV5Zk85anBOWWZYM09S
NmxVdTN6NTh2THlzdUpCTmNNbWt6RDVyVXU5WC82VGpGNUpjSnpFSWduVmFzNEpFMVp2cjVpYjA2
RmQKMlpKSjUwbXNrQ1FCQ0piV0tsajVmTDZlcDE3WW00UFczbzU1N0dENjRQZjZnMzVaMEtGa3hS
d25zVGJjbSszMWtiY3RhSk5KU0I1TQpENzNhRi9UTGdnNm1GWE9jeENJSksyck9DV1BXd1lPQnZ5
em9VQ281VDJLRklRbEE0TFJRd1ZwYVdxcm5pYTIxWnRMREQxMFluZGhnCkxVSkFKYy8zVnI4MERD
TWVqN3NjbjgvbjFRNUlzVTBtNFptSExveVFCQ0ZFNkpOdytMQTFPcXBWdFZxUlRLNTZxWDBTZ0NC
cWxZSlYKcVZSZWYvMzFEUTl6YVZmQjNTMjRvWklWYzJ3bjNMdDNyOHZ4NTgrZlZ6d2loVGFaaEdj
ZXVoRGMzWUliTXEyWVl6c2hTWEJwVjhIZApMYmloVXNtNW5WRGpKQUFCMVNvRmEycHFxcDZUMkd0
bjBtTE9ITmlhMGJoZDJVNnQvbFBoL20zVk5NMUtwYUoyUU1vMG5BUXpYOXEzCk5hTnh1N0k1VHVp
UWhIWG1oS0kxTUtCenU3S0ZKd2xBUUxWRXdjcG1zL1VzWXQyL2YvL2Fkclh2NGNXMHVmNERYSFdT
WGx5MXhzSXcKRFBkOVF3R2RUQnRPZ3BrdjdmdGNJVVVTMWdoYkVvcEZhOTgra1U1cjNxNkVFSTZu
NE9pYUJDQzQvQzlZUzB0TGI3enh4b2FIcmQxOQpiYmNyblRZTXVpaFpzZG5UMmVwMzFsNFRxYmE0
Nkh6U1R1dHJPQWwydTlKcHc2QUwwNHBsM3BpdmZvY2tyTERibFU0YkJsMlVTcEhaCjJWVlhDZlZM
QWhCby9oZXNlcFpaREF3TXJOMTlQZFNiQzBtN3NxVk9yN3Bib1B0a2V1dldMY1hEa2EveEpQUXNo
S1JkMlVpQ3FKV0UKb2JDMEsxc3F0ZXFsZmtrQUFzM25nblh4NHNVTmwxbkU0L0cxdHlvKy9OQ0ZN
RndackpiTHIvckxzWDM3ZHBlRGI5eTRvWGc0a2pXYwpoR2NldWhDR0s0UFZISStlSXdtMnc0ZXRN
RndacktaM0VvQ2c4N05nTFMwdHZmUE9PKzdIUktQUjRlRmh4NXQ2N3htc0piT3c2cTVPCmE1K3pG
bHdOSjBIdlBZTzFrSVIxNWdTdDl3eldrbGwxZ3p5dGtnQm93TStDVmMrRmdPSGhZY2VzY2ZKQUtv
VHRTZ2lSLzExSDlVdjMKeWZUNjlldUtoeU5UWTBrWUcwcUhzRjBKa3JCMlRqZ1p4bllsaEhEYzNF
cW5KQUFhOEsxZ1piUFpEUzhFREF3TU9QWWVUN3cwYzNScQpRTjJvV2xtK3NxUDZwZnQ2aTZ0WHJ5
b2VqalNOSldIeVc1ZEdKL1c4bStpR2NpU2h5c1NFZGZSb0dOdVZFQ0svZXRtQU5ra0E5T0JQCndh
cFVLaHZ1RWxxN3pHTGgzWStlK2Y3blZJNEx6ZFpZRW5JWHJqM3p2UTJlRFlKZ2FYQk9XTENlZVVi
bHNBQ2dVZjRVckhQbnpya2YKc1A2Q215ZHZhdmFjUVRTWWhQLzJzV2JQR1VTRFNYaEdhUGFjUVFE
YThLRmdMUzB0emN6TXVCOHpPRGpvV0Uvd3lrQXFiTnNHdGRkWQpFbzRQcE1LMmJWQjdEYzRKcjRS
dTJ5Q0FBUEdoWUwzNTVwdnVCOFRqY2NjZGJxWlB6bjRuUGFCd1RQQkRBMGxJaldWT2tBVHRORElu
ClRGdmYrUTd0Q2tEcmFuYkJ1blhyMW9ackxRY0hCNnRmRm5QbTBMSFBxQndVZk5CQUVzeDhhZWpv
QXlvSEJSODBNaWNVcmFFaGxXTUMKZ0UxcmRzR2FtcHB5UDZDL3Y5K3hGMmJraWNzc3ZkSlBJMGw0
L045WWVxV2ZScEl3d3RJckFLMnVxUVZydzYrcWhtRTRkZ2xObjV6OQo4WWRodk5lUjNocElRbW9z
TTA0U3ROUEluREJ0L2ZqSHRDc0FyYTZwQld2RHI2cHIxN0dPdm55UHloSEJINDBrNFcvdVZqa2kr
S09SCkpJeXFIQkFBU05LOGdsWFBWOVh1N2xVM056cDVJQldxeHptSFJBTkpHQnRLaCtweHppSFJ5
Snh3MGdyVjQ1d0JCRmZ6Q3RiUGYvNXoKOXdNY0Z3S0tPZlBFVzcwcVJ3Ui9lRTJDbVMrZG1PSytE
QnJ5UENjVXJSTW5WQTRJQU9ScFVzRXFsOHZ1OTdreERNT3hEWnUxN1ZwcQpKQW1zYmRkUkkwbGdi
VHVBNEdoU3dmcmdndy9jRDFqN1ZCeld0bXZKYXhKeUY2Nnh0bDFMbnVlRUJkYTJBd2lTSmhXczgr
ZlB1M3k2CjlxdnEyQXUvVmp3aStNTnpFcDcvVVBHSTRBL1BTUmhUUENBQWtLb1pCZXZXclZ1bWFi
b2NzSGIxMWZnY2EyNDA1RFVKWnI1RUVyVGsKZVU0b1d1UGppc2NFQUZJMW8yQk5UMCs3ZkJxTlJw
MWZWUTluV0gybEpjOUpPRFRMNmlzdGVVN0NHS3V2QUFTTThvSzF2THg4K2ZKbApsd01jTTJreFp5
YlBzM2xRUTE2VFlPWkxKRUZMbnVlRW9wVk1LaDRUQU1pbXZHRGR1SEhEL1lDOWUvZFd2encxd3Vr
clBUV1FCRTVmCmFjbHpFazV4K2dwQThDZ3ZXQmN2WG5UNTFEQU14MVBHa3YvNm9PSVJ3Uitlay9C
Ly8xVHhpT0FQejBuZzlCV0FBRkpic0RhOEZ0RFgKMTFmOWN2WjBObC9ab1hSSThJWFhKR1RlbU0r
UkJCMTVuaE5tclh5ZTAxY0Fna2R0d2Ryd1dvRGpPUmludnJlb2NqandqZWNrdkZwUQpPUno0eG5N
U1Rpa2NEQUNvbzdaZ1hibHl4ZVhUZUR4dUdFYjFPK3pKMXhWSmdNMXpFcmc3QTRCZ1VsdXd6cDA3
NS9LcFl5bnJ4RXN6CkxHL1hsYWNrVEg3ckVzdmJkZVZ0VHBpd1dONE9JS0FVRnF5bHBTWDNBK0x4
ZVBYTHlYK3VxQnNNZk9RNUNXOStxbkEwOEkvbkpFd3EKSEF3QUtLV3dZTjI4ZWRQbFU4TXdITmND
cG43OWVYV0RnWTlJQW15ZWt6Q2xlRUFBb0l6Q2dwWE5abDArZFh4Vm5UMmQ1ZnFncmp3bApJZlBH
UE5jSGRlVnRUcGpsK2lDQUFGTllzR1ptWmx3KzdlcnFxbjQ1K2Zmc0d0T1d0eVQ4cjk4b0hnNTg0
eTBKWEI4RUVHU3FDbGE1ClhIWS93UEZ0TlpVeGFoeUlZQ01Kc0hsT1FrcmRXQUJBT1ZVRnl6Uk5s
MC9YTHJZNFgySmJ2cDY4SmlGTkVqVGxlVTQ0ei9WQkFBSG0KVDhGeTNFdHcrdVNzb21IQWQ1NlNr
QnJMS0I0T2ZPTnRUcGkyRkE4SEFOUlNWYkR5K2J6THA3SFlxbFhNcWFtU29tSEFkOTZTTU9uMgpO
eGlCNWkwSktiV0RBUURWVkJVczkrMUNqb2U1WnVidlZqUU0rSTRrd09ZdENaektCQkJ3dnEzQnFu
NlpMN0d1V1Zza0FUWnZTWEE3CjJ3VUFBYUNrWUcyNFhjZ3htYzU5c2t2Rk1PQTdyMG5Ja0FSTmVa
NFQ1bGpoRGlEWWxCU3NTc1h0b1RlT3pkZ0w3MzZrWWd4b0JaNlMKa0x0d1RlMW80Qjl2YzhJQ0s5
d0JCSjZTZ3VYK1FJeG9ORnI5TXZmK3h5ckdnRlpBRW1EemxvU2Myc0VBUUJNb3ZKTjdMWTdWckd3
aApEQzFuRXRoQ0dGYk9KS1I4R2djQXlLT2tZTGx2RjNMc3h6WjUzSmkrU0FKczNwSkEwd1lRZkQ2
Y3dYS3VhMTdneWI0aFJSSmdjeWFCCmV6UUFDRDRmQ2hZQUFJRGVsQlNzNjlldnEvaXhDQnlTQUJ0
SkFCQTJTZ3JXMWF0WFZmeFlCQTVKZ0kwa0FBZ2IvOWRnNVgvWDBmd3gKb0JXUUJOaTRqVHNBL2JS
QXdhcnNhUDRZMEFvY1NjaVJoTEJhVTdEWVR3b2c4RmprRGdBQUlCa0ZDd0FBUURJS0ZnQUFnR1FV
TEFBQQpBTW1VRkt5ZE8zZTZmR3F1ZmhER3pydXVxUmdEV29HbkpIU1JCSDE1bXhOMldvcUhBd0RL
S1NsWTk5OS92OHVuanNrMDN2NnhpakdnCkZaQUUyTHdsSWE1Mk1BRFFCRDVjSWl5WHk5VXY0eDFM
elI4RFdnRkpnTTJaaExoUDR3QUFlWlFVclB2dXU4L2wwOFhGeGVxWFBYc3EKS3NhQVZ1QXRDWisv
bzNnNDhJMjNKUFFvSGcwQXFLZWtZRzNidHMzbDAwS2hVUDF5NE9sT0ZXTkFLeUFKc0hsTHdvRGF3
UUJBRXlncApXTnUzYjNmNTFER1o5ajdkZmE4b3FSZ0dmT2NwQ1QzRHUySWtRVlBlNW9UZXlMMzNz
czRkUUxBcEtWaHRiVzB1bjVxbTZWalRPdENaClZURU0rSTRrd09ZNUNRTnF4d01BcXFrcVdMRll6
T1dBWEM1WC9mTHdJYjZ0NnNsekVnNHJIUTU4UXhJQWhJMnFYWVJmL09JWFhUNmQKbjUrdmZqbjBh
ajlYQ1hYbEtRa0h2dHZIVlVKZGVac1RocmhLQ0NEWVZCV3NoeDkrMk9YVGJEYnJ1Q0l3a3BoVk5C
TDRpeVRBNWprSgpJNG9IQkFBcXFTcFlobUc0SDVETnJscHRNM0txaDVOWVd2S2NoUEZlVG1KcHlY
TVNSZ1Fuc1FBRWw2cUN0V1hMbHQyN2Q3c2NjT25TCnBlcVhXK01HcHk2MDVEVUpSbGVNSkdqSjg1
eXdOY0pKTEFEQnBmQk83bzgrK3FqTHA2WnBaaktaNm5kR1R2WHdYRUl0ZVU3Q2VDL1AKSmRTUzV5
U004RnhDQUVHbHNHQjFkbTV3MzhoME9sMzljbXZjR1B0ci9xeHF5R3NTaks3WTJQLzRENVVqZ2o4
OHp3bGJJMk5qS2djRQpBTXFvZlJiaDQ0OC83dktwYVpvek16UFY3d3k5MnY5Q1Q3clc4UWd1cjBr
NDhOMitJeVJCUjU3bmhLSElDeTl3RWd0QThLZ3RXTzRiCnM0VVE2WFRhc1hVb09adDRKRHBmNjNn
RVZBTkpHSnRON0NVSjJtbGtUa2hHSG5tRWpnVWdZTlFXckdnMDJ0L2Y3M0pBdVZ3K2UvYXMKNDgz
VUI5dFpqS1daQnBPUTdXUXhsbVlhVEVLS3hWZ0FBa1p0d1JKQ0pCSUo5d095MmF6am9zRFd1REg1
ajB2Y3RVRXpEU1RCNklwTgovcC9mY2RjR3pUUXlKMnlOVEU1eTF3WUFRYUs4WUczNGhWVUljZmJz
MmJWUGdFNzk1RGVjeDlKSlkwbm9HZDZWT2wzZ1BKWk9HcHdUCmVpT2N4d0lRSU1vTGxxampDNnNR
WW54OHZGd3VWNy9UKzNSMzVrbzc2N0YwMGxnU2VvWjNaVDc4RTlaajZhVEJPYUUza3NrSTFtTUIK
Q0lSbUZLeG9ORG84UE94K1RMbGNYanVmYm8wYmM1L3NZbCtoTmhwT2d0RVZ5M3l5aTMyRjJtaDhU
dGdhbVp0alh5R0FBR2hHd1JKQwpkSGQzeDJJeDkyTUtoY0xhK1ZRSWtaeE5uSGx4aHN1RmV0aE1F
c1ptRXhNdlhlSnlvUjQyTlNja0kyZk9XRnd1Qk5ES21sU3doQkJmCis5clhOanltMW53NjlHcC81
a3I3dHhNcFZyNXJZRE5KT1BEZHZzeUhmL0pLSXNYS2R3MXNhazRZaW1ReTR0dmZ0bGo1RHFBMU5h
OWcKdGJlM2IzaFJRQWhSS0JTU3lhUmpmYXNRWW12Y09KRWF5QzFZMUt5ZzIyUVNqSzdZOGRSQUxp
ZW9XVUczMlRsaGErVEVpVWd1UjgwQwowSXFhVjdDRUVOM2QzZTVQZTdXVnkrWFhYbnZOOGVSWG0x
MnpTbGJzeklzelQzWmVvbWtGMU9hVFlOY3MwNHBOdkhScGYrY2xtbFpBClNaZ1R0a1pPbklpVVNw
RXpaNndubjZScEFXZ1ZiVTMrZlFjUEhyeDI3VnFwdFBHZnc3ZmZmanVYeXcwT0RocUdzZmJUb1Zm
N2gxNFYKUW9qWjA5blU2VUl1SDhrc3hISkxIVmZ2N0pBK1pxZ2dLd2tIdnR0MzRMdENDSkY1WXo1
MXVwRExDVHNKZVpJUUVOTG1oS0hJMEpBUQpRc3pPV3FtVXlPVkVKaU55T1hIMWFrVDZtQUZnUXhI
TGF2WVh2a3FsOHNNZi9yQ2UrVlFJRVkxR0J3WUcrdnI2Vkk4cWlFNmNPT0h5CjZTdXZ2Tkswa1RT
R0pNaENFbUFMZWhJQW5UVDFFcUd0cmEzdHVlZWVxL1BnY3JuODl0dHZKNVBKdWJrNXBhTkM4NUVF
MkVnQ0FQM2MKZGZ6NDhlYi8xaTFidGp6eXlDUHZ2ZmRlbmNlWHkrVnNOanMzTnhlSlJOcmIyNlBS
cU5MaEJVVTY3WFpmcUlHQmdXWU5wSEVrUVFxUwpRQkpzR2lRQjBJWS9CVXNJY2ZmZGR6LzY2S08v
L09VdmI5KytYZWMvS1pmTFY2NWN1WFRwMHVMaTRwMDdkNkxSYU1oblZUMG1VNUt3CmVTU0JKTmow
U0FLZ2gyWXZjbC8xdTl2YW5udnV1ZnJYWHF6SVpyUFpiRllJWVJoRzV4OUVvOUZZTExidTZsZTBP
SklBRzBrQW9BMGYKRnJrN0xDOHZuemx6NWxlLytwVy93OUJQNEJhMGtnUkZTQUpzZ1VzQ0VHZytM
SEozam1ETGxxZWVlcXFlK3cxQ2J5UUJOcElBUUFQKwpGeXhiZDNmM3NXUEhObncyR2JSSEVtQWpD
UUFDclZVS2xoQ2l2YjE5WkdTRXI2MVMxSE4zN0paRkVpUWlDYkFGT2dsQUVQbTJpN0NXCmpvNk8v
djcrTzNmdVhMdDJ6ZSt4Qk5oamp6M1cwZEhoOXlnMmhTUklRUkpnMHlBSlFMQzBYTUVTUXJTMXRU
MzQ0SU5NcVp0eDhPREIKU0NUd1R3Z2hDWnRIRW1EVEl3bEFnUGkvaTlCZHVWeCsvLzMzejUwNzUv
ZEFnbVI0ZUxpN3U5dnZVVWhHRWhwQUVtRFRNZ2xBaTJ2MQpncldpVUNoY3VIQ0JuZHNiMnIxNzkx
TlBQZVgzS0JRaUNYVWlDYkJwbndTZ05RV21ZTm1XbDVkTjA4em44K2wwMnV1dENNTWdQTjlUClNZ
STdrZ0JiZUpJQXRKcUFGYXhxdDI3ZCt1MXZmMnZmdnRsMi9mcjFxMWV2K2pna3YremV2WHZQbmoy
Zi9leG50Mnhwb1cyaFRVTVMKVnBBRWttQUxlUktBVmhEZ2dnVUFBTkNhK0hJREFBQWdHUVVMQUFC
QU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZwpBUUFBU0ViQkFnQUFrSXlDQlFB
QUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlB
CkFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFC
QUFCSVJzRUNBQUNRaklJRkFBQWcKR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3
QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJSwpGZ0FBZ0dRVUxBQUFBTWtv
V0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtG
Q3dBCkFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnV1p2ZkF3aWUy
N2R2Zi9ycHB6ZHYzaFJDWkxOWis4MXMKTm11YTV0cURkKzdjZWYvOTl3c2g3cnZ2dm0zYnRuVjJk
dDUxMTExdGJmeHYxd0ZKZ0kwa0FGZ3JZbG1XMzJOb2FiZHYzeTRXaTZWUwpLWmZMMVpveHZUSU00
OHRmL25JOEhvL0ZZbHUyY0JJeEdFZ0NiQ1FCUUQwb1dPdFlXbHE2ZWZObU5wdWRtWmxSL2J2MjdO
bnpwUzk5CnFiT3pVL1V2UWdOSUFtd2tBWUJYRkt6ZlcxNWV2bkhqeG9jZmZ2ak9PKy80TW9Bbm5u
amlDMS80UWpRYTllVzNZd1ZKZ0kwa0FOaU0Kc0Jjc2V3NjllUEhpNWN1WC9SNkxFRUwwOS9jbkVn
bW0xT1lqQ2JDUkJBQlNoTGRnRll2Rm4vM3NaeTB5aHpyMDkvYy8vdmpqckh0dApEcElBRzBrQUlG
SG9DbGE1WFA3Z2d3L09uejh2WldtcVVrOC8vZlN1WGJ2OEhvVzJTQUpzSkFHQUNpRXFXTVZpOGIz
MzNtdkNHbFdKCkRNTjQ5dGxuMjl2Yi9SNklWa2dDYkNRQmdEcWhLRmpGWW5GeWN2THExYXQrRDZS
QmZHMlZoU1RBUmhJQXFLWjV3UXI2TkxwaXo1NDkKUTBORDNDQ25ZU1FCTnBJQW9EbTBMVmhMUzB0
dnZ2bW1vbWswSG85SG85SE96czVZTEdZWXhzcjdobUZVdnhSQ21LWnBtbWE1WEY1YwpYQ3dVQ29W
Q29lRjFIb1poZlBPYjMyU1ZxMWNrQVRhU0FLQ1pOQ3hZbFVybDNMbHpFdGRWR0liUjNkMGRpOFU2
T3p2WFRwZGVtYWFaCnkrWG01K2RYSHFuaGFTVE1wL1VqQ2JDUkJBRE5wMXZCbXArZlAzMzY5T1ov
am1FWThYaThxNnNySG85dmN2YXN4VFROYkRaNzZkSWwKcjk5Zm4zLysrVzNidHFrWWtrNUlBbXdr
QVlBdjlDbFlTMHRMcjcvKytpWTNXc2ZqOGIxNzk2cWJRTmVWeVdUUzZiU25rYi84OHN0OApaNjJG
Sk1CR0VnRDRTSk9DZGZIaXhjMDh6c0l3akw2K3Z1N3U3bWJPb1E3cGRIcG1acVpjTHRkek1OY0Zh
aUVKc0pFRUFQNEtmTUhhCnpKZlVhRFRhMDlPemQrOWVyODlWWFZpdzhubVJTZ25URkpuTUg5L1A1
VVErSDZrK3Nxdkxpc2RGUEM1NmVrUWlJWHA3STg2ZlZjVTAKemJObno5YTVEc013ak9lZmY1NDlS
Q3Y4U2NLN0grVi9jVE0xYVpxbFNHWWh0dkorYnFralg5bFJmV1JYMjdWNCs4ZnhqcVdlejk5Sgov
TVgyM3FlN1hYNHNTZGdNa3VCcDVBQVVDWGJCYW5oMWhXRVlpVVNpcDZlbnp1TlRLU3VWK24yam1w
dHpLMG51WWpGcllFQWNQaXdPCkhLajVRMlptWnM2ZVBWdlBUOXV6Wjg5WHYvclZoZ2VqaytZbEla
bEpUWnFwakdIZXZudnVrOFp2UkJTTGxBWTZzNGNQaXdOLzIxZnIKR0pMUUFKSkFFb0FXRWRTQ1Zh
bFVwcWFtR25ocVdQM1Q2RXFwU3FjYmIxUzF4R0xXeUlnNGNrUnMzYnJPRHk4VUN1UGo0L1ZjR2hn
ZQpIdTd1ZHZzR3JMMW1KT0VQZjByVFpyMS9mZXNYaTVSR0VyTkgvcUZuYTN5ZFMxRWtvWDRrd1VZ
U2dCWVJ5SUxWMkNXQU9xZlJ5VWxyCmNsSk1Ub3BTU1g2dmNuQ3BXZVZ5ZVh4OHZGQW9iUGhEamgw
N0Z0cm5acWhOd3Q5Y21uenowOGtQUDEreVl1NUhicDdMSDFlU1VBK1MKVUMzTVNRQmFSL0FLVmo2
ZlAzWHFsS2QvWWhqR3dxY2U5d0FBR0RoSlJFRlU0T0NnKzdlNjJWbHJmRnljT3RXTVh1WFExV1dk
UENtRwpoaHJzV0laaEhEbHlSTm5vV3BlcUpKek9qbjkvOFZTbXB3bC9UUjI2MnE2ZFBIWnQ2TlYr
eC9za3dSMUpjQWh0RW9DV0VyQ0NOVHM3Cis5WmJiM242Si8zOS9ZbEVJaHFOcnZ0cHNXaU5qNHV4
TWVmaTlPWTdjc1FhRzJ1d1k0WHdvb0Q4Sk9UTThhTnpZLy95cDQ0bHljMTMKcERjOTlvdUU0MDJT
VUF0SldGY0lrd0MwbWlBVnJKLys5S2VlRmxqRTQvSEJ3Y0ZhdTRHS1JTdVpGR05qUHB5eXFtWHZY
bXQ2Mm5tNQpzRnd1SjVQSkRkZGVoT291T0pLVGtET1R6MlRHMHIzTlAxRlJ5OTY3NTZmL2ZidmpJ
aEZKV0lza3VBaFZFb0FXRkl5QzVYWDVhalFhCkhSd2NyTFcwWW1IQlNpYjl1UnE0b2E0dWEyTENl
VGVIUXFIdzJtdXZ1Zi9EL3Y3K3djRkJsVU5yQ1pLVDhPNUh5U08vOXVVYTBJYTYKMnE1Ti9POGx4
eDUra3JDQ0pKQUVvTVVGb0dCVktwVWYvZWhIOVM5ZmpjZmp3OFBENjU3L0x4YXQwVkV4UHQ1eXZh
cGFMR1pOVHpzNwpWajM3dEY5ODhjVmFWejMwSURNSk9YUDB6eStQWDNsVTZnQWxpMFZLMC8vMEc4
ZGZWcElnU0lJUWdpUUFMYS9WYjBubmRTWWRHQmc0CmRPalF1blBLMkpqMXdBT3QzcTZFRUtWU1pH
aElGSXVyaW05L2YvK0dLeXJTNmJUS2NmbE1aaElPcGgvNFRLVEYvNllLSVVwV2JPZ3YKMjR1NVZm
L0pKSUVrMkVnQzBPSmF1bUI1bWttajBlaWhRNGNTQ2VlYVVDSEU5TFRWMDJPTmprWmE4SnJndXZM
NXlMNTl6amNIQndmZAp2NHpXLzFTTndKR1doSk96UGZmTWowNGtXdkJLMExyeWxSMzdIbDUwdkVr
U1NJSXR6RWtBV3Q5ZHg0OGY5M3NNNi9NMGs4Ymo4V2VmCmZiYWpvOFB4ZnJGb2ZlTWI0dWpSeU9K
aU1LclZpc1hGU0xGb2ZlVXJmeHgyTkJxOWMrZE9McGR6K1ZmUmFIVG56cDNLQjlkY2NwS1EKTTcv
eForOGYvVW5mWXNYNVVZdGJySFFVcDlKZithdjR5anNrb1o2RFNjTEtNZm9sQVFpRUZqMkR0Ynk4
WFA5TVd1c1N3UFIwTUs0SgoxdktESDBRbUpsWmRLRXdrRXU2UG5qMTM3cHppUVRXYm5DU2NuQTNF
bGFCYWZwQkpUTHcwVS8wT1NYQkhFbGJvbHdRZ0tGcTBZRTFNClROUTVrKzdmdjMvZFN3REhqMXVQ
UFJhWWE0SzFqSTQ2RjJPdCt4OWJyWjRiUFFlSWhDVHNTejEydElVMjNqZG05TzkyT0piZ2tJUmEK
U0lLRFpra0FncUlWQzFiOTk3Ylp2My8vMm4zWEN3dFdUNDkxNGtTd3E1VXRuNCtNamExNnA2ZW54
LzBMNjhXTEY5V09xWWsybTRSMwpQK3E1Wi81RWFrRCt5Sm91WDlreGRqaFQvUTVKV0JkSldFdW5K
QUFCMG5JRmEzWjJ0cDZaTkJxTmZ2M3JYMTg3azA1TVdMMjlZbTVPCmgzWmxTeWFkSjdINit2cGNq
cjk4K2ZMeThyTGlRVFhEWnBQdzBreHY0dDY1VDNhcEdaMFBrdWQ3SGFjdVNFSTFrbENMTmtrQWdx
VzEKQ2xZK242L25xUmYyNXFDMXQyTWVHN01PSGd6OFpVR0hVc2w1RW12RHZkbGVIM25iZ2phYmhJ
UHBnOS9yRC9yRklJZVNGWE9jdWlBSgpLMGlDK3ovUklBbEE0TFJRd1ZwYVdxcm5pYTIxWnRMRGg2
M1JVYTJxMVlwa2N0Vkx3ekRpOGJqTDhmbDhYdWw0Vk50c0VoNjZNRHF4CndhcVVnRXFlNzYxK1NS
SnNKRUg3SkFCQjFDb0ZxMUtwdlA3NjZ4c2U1dEt1Z3J0YmNFT2xrbk03NGQ2OWUxMk9QMy8rdk9J
UktiVFoKSkR4MEliaDd4RFpVc21LT1RXUWtnU1RZTkU0Q0VGQ3RVckNtcHFicU9ZbTlkaVl0RnEy
QkFaM2JsYzN4TmQ3OTI2cHBtcFZLUmVWdwpGR284Q1RsellHdEc0NytwdGxPcm8wNFNTSUpONHlR
QUFkVVNCU3ViemRhemlIWC8vdjFyMjlXK2ZTS2QxcnhkQ1NFY1Q3d3dETU45CjMxQkFKOVBHazVB
ejl6MjhtRGJYZjVTdlR0S0xxMWJia0FTU1lOTTFDVUJ3K1Yrd2xwYVczbmpqalEwUFc3djcybTVY
T20wWWRGRXEKUldablYxMGxYSHROcE5yaW92T3BHcTJ2OFNUa3pIMFBMK3EwVGN4RnlZck5uczVX
djBNU1ZwQUVsK09EbUFRZzBQd3ZXUFVzc3hnWQpHRmk3KzNwb0tDenR5cFpLclhycFBwbmV1blZM
NldCVWFEd0p2Ym1RL0UyMXBVNnZ1bThrU1ZoQkVsd09EbUlTZ0VEenVXQmR2SGh4CncyVVc4WGg4
N2EyS0R4KzJ3bkJsc0pyamdXUGJ0MjkzT2ZqR2pSdEtCeU5kNDBsNDZFSVlyZ2RWeStWWEpaOGsy
RWlDWmtrQWdzN1AKZ3JXMHRQVE9PKys0SHhPTlJvZUhoeDF2NnIxbnNKYk1xaHZmaUxYUFdRdXV4
cE9nOVU2eFdqSUxxKzdxUkJJRVNSQkM2SlVFUUFOKwpGcXg2TGdRTUR3ODdabzJUSjhQWXJvUVFq
aHZadUUrbTE2OWZWenNhcVJwTXdvRlVDUCttQ2lIeXYrdW9ma2tTU0lKTnB5UUFHdkN0CllHV3oy
UTB2QkF3TUREajJIazlNV0VlUGhyRmRDU0h5cXk4SHVLKzN1SHIxcXVMaFNOTmdFbDZhT1RvMW9H
NVVyU3hmMlZIOWtpU1EKQkpzMlNRRDA0RS9CcWxRcUcrNFNXcnZNWW1IQmV1WVpsY05DMHpXWWhI
Yy9ldWI3bjFNNUxqUWJTUUNnR1g4SzFybHo1OXdQV0hlWgp4VFBQQ00yZU00Z0drL0RrVGMyZUxn
ZVNBRUF6UGhTc3BhV2xtWmtaOTJNR0J3Y2Q2d2xlZVNWMDJ3YTExMkFTQmxKaDJ5eW1QWklBClFE
OCtGS3czMzN6VC9ZQjRQTzY0dzgzMHRQV2Q3OUN1ZE5OSUVrN09maWM5b0hCTThBTkpBS0NmWmhl
c1c3ZHViYmpXY25Cd3NQcGwKc1dnTkRha2NFL3pRU0JKeTV0Q3h6NmdjRkh4QUVnQm9xZGtGYTJw
cXl2MkEvdjUreDE2WWtSR1dYbW1va1NROGNaa0ZOL29oQ1FDMAoxTlNDdGVGWFZjTXdITHVFcHFl
dEgvK1lkcVdiUnBKd2N2YkhINGJ4WGtkNkl3a0FkTlhVZ3JYaFY5VzE2MWhIUjFVT0NENXBKQWt2
CjM2TnlSUEFIU1FDZ3ErWVZySHErcW5aM2QxZS9jL0trRmFySE9ZZEVJMGs0a0FyVlEzeERnaVFB
MEZqekN0YlBmLzV6OXdNY0Z3S0sKUmV2RUNaVURnazg4SnlGbm5uaXJWK1dJNEErU0FFQmpUU3BZ
NVhMWi9UNDNobUU0dG1HenRsMUxqU1NCRmMwNklna0E5TmFrZ3ZYQgpCeCs0SDdEMnFUaXNiZGVT
NXlTOCt4RXJtclZFRWdEb3JVa0Y2L3o1OHk2ZnJ2MnFPamFtZUVEd2llY2t2UEJyeFNPQ1AwZ0NB
TDAxCm8yRGR1blhMTkUyWEE5YXV2aG9mVnp3bStNRnpFbkxtK0J6UFF0RVFTUUNndldZVXJPbnBh
WmRQbzlIbzJ0TlhyTDdTa3Vja0hNNncKNWtaTEpBR0E5cFFYck9YbDVjdVhMN3NjNEpoSmkwVXJt
VlE4SnZqQmN4Snladkk4VzhZMFJCSUFoSUh5Z25YanhnMzNBL2J1M1Z2OQo4dFFwVGwvcHlYTVNS
amhwb1NlU0FDQU1sQmVzaXhjdnVueHFHSWJqS1dPY3Z0S1Y1eVQ4NjRPS1J3Ui9rQVFBWWFDMllH
MTRMYUN2CnI2LzY1ZXlzbGM5eitrcERucE53T3B1djdGQThLUGlBSkFBSUNiVUZhOE5yQVk3bllK
dzZwWEF3OEpIbkpIeHZVZVZ3NEJ1U0FDQWsKMUJhc0sxZXV1SHdhajhjTnc2aCtoN3N6Nk1wekV0
aVRyeW1TQUNBazFCYXNjK2ZPdVh6cVdNbzZNV0d4dkYxWDNwTHcwZ3lMbW5WRgpFZ0NFaE1LQ3Ri
UzA1SDVBUEI2dmZqazVxVzRzOEpQbkpQeHpSZUZvNEIrU0FDQThGQmFzbXpkdnVueHFHSWJqV3NE
VWxMcXh3RStlCmsvRHJ6eXNlRWZ4QkVnQ0VoOEtDbGMxbVhUNTFmRldkbmVYNm9MYThKZUYwbHF0
Q3VpSUpBTUpEWWNHYW1abHgrYlNycTZ2NkpkY0gKTmVZdENYOWZVRHdjK0lZa0FBZ1BWUVdyWEM2
N0grRDR0cHBLS1JvSWZPWTVDUm1qeG9FSU5wSUFJRlJVRlN6VE5GMCtYYnZZNHZ4NQpyZy9xeVhN
U1NtekwxeE5KQUJBcS9oUXN4NzBFcDZjdFJjT0E3N3dsNGVTczR1SEFOeVFCUUtpb0tsajVmTjds
MDFoczFkcFZyZzlxCnpGc1Nwa3FLaHdQZmtBUUFvYUtxWUxsdkYzSTh6RFdUVVRRSytNOWJFdWJ2
Vmp3YytJWWtBQWdWMzlaZ1ZiOTAvV2FMWVBPV2hCTHIKbXJWRkVnQ0VpcEtDdGVGMkljZGtPamZI
Q25jOWVVN0NKN3RVRGdlK0lRa0F3a1pKd2FwVTNCNXc0ZGlNdmJEQUNuZHRlVXZDdXgrcApIUTM4
UXhJQWhJMlNndVgrUUl4b05GcjlNcGRUTVFTMEJHOUplUDlqeGNPQmIwZ0NnTEJSZUNmM1doeXJX
ZGxDR0ZyT0pMQnhMS3hJCkFnRDlLQ2xZN3R1RkhQdXhYVmUrSXRpOEpZR0hVZXFMSkFBSUd4L09Z
RGxXczNLUGh0QnlKbUdCSi91R0ZFa0FvQjhmQ2hZQUFJRGUKbEJTczY5ZXZxL2l4Q0J5U0FCdEpB
QkEyU2dyVzFhdFhWZnhZQkE1SmdJMGtBQWdiLzlkZ2NSdjMwSEltNFhjZGZvMEUvaUlKQVBUVApD
Z1dMSFVNaDVVeENaWWRmSTRHL1NBSUEvYkRJSFFBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFK
SXBLVmc3ZCs1MCtkUmMvWENjCm5Uc3RGV05BSy9DV2hMdXVLUjRPZkVNU0FJU05rb0oxLy8zM3Uz
enFtRXpqY1JWRFFFdndsb1QyanhVUEI3NGhDUURDeG9kTGhPVnkKdWZvbEJTdTBuRW5vV1BKckpQ
QVhTUUNnSHlVRjY3Nzc3blA1ZEhGeHNmcGxUNCtLSWFBbGVFdkNub3JpNGNBM0pBRkEyQ2dwV051
MgpiWFA1dEZBb1ZMOGNHRkF4QkxRRWIwbDR1bFB4Y09BYmtnQWdiSlFVck8zYnQ3dDg2cGhNZTNz
ajk5N0xPbmM5ZVV2QzA5MzNpcExpCkVjRWZKQUZBMkNncFdHMXRiUzZmbXFicFdOUEtTU3hkZVU1
Q1oxYnhpT0FQa2dBZ2JGUVZyRmdzNW5KQUxwZXJmbm40c0lwUndIK2UKazNDSWM1bDZJZ2tBd2ti
VkxzSXZmdkdMTHAvT3o4OVh2eHdhNGlxaHRyd2w0ZFYrcmczcGlpUUFDQlZWQmV2aGh4OTIrVFNi
elRxdQpDSXlNS0JvSWZPWTVDWWxaeFNPQ1AwZ0NnRkJSVmJBTXczQS9JSnRkdGNaaVpFUndFa3RM
bnBOd3FvZFRGMW9pQ1FCQ1JWWEIyckpsCnkrN2R1MTBPdUhUcFV2WExyVnNqbk1UU2t1Y2t4QTFP
WFdpSkpBQUlGWVYzY24vMDBVZGRQalZOTTVQSlZMOHpNc0p6Q2ZYa09RbW4KZW5nYW5aWklBb0R3
VUZpd09qczN1RnRnT3AydWZybDFhMlJzVE4xdzRCdlBTWWdiWTMvTm4xVU5rUVFBNGFIMldZU1BQ
LzY0eTZlbQphYzdNekZTL016UVVlZUVGVG1KcHlITVNYdTEvb1NkZDYzZ0VGMGtBRUJKcUM1Yjd4
bXdoUkRxZGRtd2RTaVlqanp4Q3g5Sk5JMG1ZClRUd1NuYTkxUEFLS0pBQUlDYlVGS3hxTjl2ZjN1
eHhRTHBmUG5qM3JlRE9WWWpHV2JocE13Z2ZiV1lLakdaSUFJQ1RVRml3aFJDS1IKY0Q4Z204MDZM
Z3BzM1JxWm5PU3VEYnBwSkFseFkvSWZsOWlycnhtU0FDQU1sQmVzRGIrd0NpSE9uajI3OWduUW5N
ZlNUSU5KZUxvNwo5WlBmY1BaQ0p5UUJRQmdvTDFpaWppK3NRb2p4OGZGeXVWejlUbTl2SkpNUnJN
ZlNTWU5KZUxvN2M2V2RWVGc2SVFrQXROZU1naFdOClJvZUhoOTJQS1pmTGErZlRyVnNqYzNQc0s5
Ukg0MG1JRzNPZjdHSTNtVFpJQWdEdE5hTmdDU0c2dTd0anNaajdNWVZDWWUxOEtvUkkKSmlObnps
aGNMdFREcHBJd216ano0Z3dYaWZSQUVnRG9yVWtGU3dqeHRhOTliY05qYXMyblEwT1JURVo4Kzlz
V0s5ODFzS2trdk5xZgp1ZEwrN1VTSzljNGFJQWtBTk5hOGd0WGUzcjdoUlFFaFJLRlFTQ2FUanZX
dFFvaXRXeU1uVGtSeU9XcFc0RzAyQ1hIalJHb2d0MkR4Cnh6WG9TQUlBalRXdllBa2h1cnU3M1ov
MmFpdVh5Nis5OXByanlhODJ1MmFWU3BFelo2d25uNlJwQlpXRUpNU05FNm1Ca2hVNzgrTE0KazUy
WCtQc2FVQ1FCZ0s3YW12ejdEaDQ4ZU8zYXRWSnA0MG53N2JmZnp1VnlnNE9EaG1Hcy9YUm9LREkw
SklRUXM3TldLaVZ5T1pISgppRnhPWEwwYWtUNW1xQ0F0Q2EvMkQ3MHFoQkN6cDdPcDA0VmNQcEpa
aU9XV09xN2UyU0Y5ekZDQkpBRFFVc1N5bW4wU3FGS3AvUENIClA2eG5QaFZDUktQUmdZR0J2cjQr
MWFNS29oTW5Ucmg4K3NvcnJ6UnRKSTBoQ2JLUUJOaUNuZ1JBSjAyOVJHaHJhMnQ3N3JubjZqeTQK
WEM2Ly9mYmJ5V1J5Ym01TzZhalFmQ1FCTnBJQVFEOTNIVDkrdlBtL2RjdVdMWTg4OHNoNzc3MVg1
L0hsY2ptYnpjN056VVVpa2ZiMgo5bWcwcW5SNFFaRk91OTBOYUdCZ29Ga0RhUnhKa0lJa2tBU2JC
a2tBdE9GUHdSSkMzSDMzM1k4Kyt1Z3ZmL25MMjdkdjEvbFB5dVh5CmxTdFhMbDI2dExpNGVPZk9u
V2cwR3ZKWlZZL0psQ1JzSGtrZ0NUWTlrZ0Rvb2RtTDNGZjk3cmEyNTU1N3J2NjFGeXV5Mld3Mm14
VkMKR0liUitRZlJhRFFXaTYyNytoVXRqaVRBUmhJQWFNT0hSZTRPeTh2TFo4NmMrZFd2ZnVYdk1Q
UVR1QVd0SkVFUmtnQmI0SklBQkpvUAppOXlkSTlpeTVhbW5ucXJuZm9QUUcwbUFqU1FBMElEL0Jj
dlczZDE5N05peERaOU5CdTJSQk5oSUFvQkFhNVdDSllSb2IyOGZHUm5oCmE2c1U5ZHdkdTJXUkJJ
bElBbXlCVGdJUVJMN3RJcXlsbzZPanY3Ly96cDA3MTY1ZDgzc3NBZmJZWTQ5MWRIVDRQWXBOSVFs
U2tBVFkKTkVnQ0VDd3RWN0NFRUcxdGJROCsrQ0JUNm1ZY1BIZ3dFZ244VTROSXd1YVJCTmowU0FJ
UUlQN3ZJblJYTHBmZmYvLzljK2ZPK1QyUQpJQmtlSHU3dTd2WjdGSktSaEFhUUJOaTBUQUxRNGxx
OVlLMG9GQW9YTGx4ZzUvYUdkdS9lL2RSVFQvazlDb1ZJUXAxSUFtemFKd0ZvClRZRXBXTGJsNVdY
VE5QUDVmRHFkOW5vcndqQUl6L2RVa3VDT0pNQVduaVFBclNaZ0JhdmFyVnUzZnZ2YjM5cTNiN1pk
djM3OTZ0V3IKUGc3Skw3dDM3OTZ6Wjg5blAvdlpMVnRhYUZ0bzA1Q0VGU1NCSk5oQ25nU2dGUVM0
WUFFQUFMUW12dHdBQUFCSVJzRUNBQUNRaklJRgpBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFB
eVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBClFESUtGZ0FB
Z0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FB
RUF5Q2hZQUFJQmsKRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZB
QUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWQpBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJB
Z0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBCkFDU2pZ
QUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1Vi
QUFBQUFrbzJBQkFBQkkKUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlT
aFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5QwpCUUFBSUJrRkN3QUFRRElLRmdBQWdH
UVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBCkFF
QXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFB
Z0dRVUxBQUJBTWdvV0FBQ0EKWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdB
QWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rbwpXQUFBQUpKUnNBQUFBQ1NqWUFF
QUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFB
CkFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZ
QUFBQWtsR3dBQUFBSktOZ0FRQUEKU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FV
TEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTQpnZ1VBQUNBWkJRc0FBRUF5
Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdH
UVVMCkFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFr
SXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUEKZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFB
RWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESgpLRmdBQUFDU1ViQUFB
QUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFB
QUFrbEd3CkFBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxB
QUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUEKQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNo
WUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUQpqSUlGQUFBZ0dR
VUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5
Q0JRQUFJQmtGCkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVo
R3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUEKQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFB
a28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQQp5U2hZQUFB
QWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFB
QU1rb1dBQUFBSkpSCnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlB
QUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUIKQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVM
QUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQQprSXlD
QlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3
UUlBQUpDTWdnVUFBQ0FaCkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtv
MkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1cKQUFDQVpCUXNBQUFBeVNoWUFBQUFr
bEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQQpB
TWtvV0FBQUFKSlJzQUFBQUNUNy8zVll6cnZiN0RrNkFBQUFBRWxGVGtTdVFtQ0MKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177839</attachid>
            <date>2012-12-05 15:07:49 -0800</date>
            <delta_ts>2012-12-10 13:36:38 -0800</delta_ts>
            <desc>Address abarth&apos;s comments</desc>
            <filename>cmr_1205.txt</filename>
            <type>text/plain</type>
            <size>57255</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjc2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDEyLTEyLTA1ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJj
ZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGRvZXNuJ3QgYWN0
dWFsbHkgZW5hYmxlIGNhY2hpbmcgb2YgbWFpbiByZXNvdXJjZXMuIFRoYXQgd2lsbCBiZSBkb25l
IGluIGEgbGF0ZXIgcGF0Y2guCisgICAgICAgIFRoZSBNYWluUmVzb3VyY2VMb2FkZXIgYWN0dWFs
bHkgaGFzIGFuIHVuZGVybHlpbmcgU3VicmVzb3VyY2VMb2FkZXIgKHdpdGggdGhlIGNhY2hlIGxh
eWVyIGJldHdlZW4gdGhlbSkuCisgICAgICAgIEluIHNldmVyYWwgcGxhY2VzLCB0aGUgTWFpblJl
c291cmNlTG9hZGVyJ3MgU3VicmVzb3VyY2VMb2FkZXIgaXMgdHJlYXRlZCBhcyBzcGVjaWFsLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpcyBwcmltYXJpbHkgYSByZWZhY3Rvci4g
QSBjb3VwbGUgb2YgZXhwZWN0ZWQgcmVzdWx0cyBjaGFuZ2VkIHNsaWdodGx5LgorCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjpzZXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
dWJyZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6YWRkU3VicmVz
b3VyY2VMb2FkZXIpOiBCZWNhdXNlIHRoZSBTdWJyZXNvdXJjZUxvYWRlciB1bmRlcmx5aW5nIHRo
ZSBtYWluIHJlc291cmNlCisgICAgICAgICAgICBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nIGluIGNl
cnRhaW4gY2FzZXMsIHRyYWNrIGl0IHNlcGFyYXRlbHkgZnJvbSB0aGUgcmVhbCBTdWJyZXNvdXJj
ZUxvYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVtb3ZlU3VicmVz
b3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9h
ZGluZ01haW5SZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxv
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlY2VpdmVkRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjbGVhclJlc291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpmcmFt
ZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyTmF2
aWdhdGlvblBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJl
c291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlZGly
ZWN0UmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjp3aWxs
U2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250
aW51ZUFmdGVyQ29udGVudFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpkYXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OmhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdyk6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OnNldFNob3VsZEJ1ZmZlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpsb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
OjppZGVudGlmaWVyKToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgIChNYWluUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpkb2N1bWVudExvYWRlcik6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVl
c3QpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXI6OmRlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXI6OmNhbmNlbGxlZCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVI
b3N0OjptYXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluRXJyb3IpOgor
ICAgICAgICAqIGxvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXI6OnNjaGVkdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjp1bnNjaGVkdWxlKToKKwogMjAxMi0xMi0wNSAgSnVzdGluIE5vdm9zYWQgIDxq
dW5vdkBnb29nbGUuY29tPgogCiAgICAgICAgIFtza2lhXSBJbXByb3ZlIHBlcmZvcm1hbmNlIG9m
IEdyYXBoaWNzQ29udGV4dDo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlciBieSB1c2luZyBTa0Rldmlj
ZTpjcmVhdGVDb21wYXRpYmxlRGV2aWNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAJKHJldmlzaW9uIDEzNjcxMikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCwxMyArMTgwLDcgQEAg
dm9pZCBEb2N1bWVudExvYWRlcjo6c2V0UmVxdWVzdChjb25zdCBSZQogICAgIC8vIHdvdWxkIGJl
IGEgV2ViRm91bmRhdGlvbiBidWcgaWYgaXQgc2VudCBhIHJlZGlyZWN0IGNhbGxiYWNrIGFmdGVy
IGNvbW1pdC4KICAgICBBU1NFUlQoIW1fY29tbWl0dGVkKTsKIAotICAgIEtVUkwgb2xkVVJMID0g
bV9yZXF1ZXN0LnVybCgpOwogICAgIG1fcmVxdWVzdCA9IHJlcTsKLQotICAgIC8vIE9ubHkgZGlz
cGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBpZiBVUkwg
Y2hhbmdlZCAoYW5kIGlzIG5vbi1udWxsKS4KLSAgICAvLyBBbHNvLCBkb24ndCBzZW5kIGl0IHdo
ZW4gcmVwbGFjaW5nIHVucmVhY2hhYmxlIFVSTHMgd2l0aCBhbHRlcm5hdGUgY29udGVudC4KLSAg
ICBpZiAoIWhhbmRsaW5nVW5yZWFjaGFibGVVUkwgJiYgIXJlcS51cmwoKS5pc051bGwoKSAmJiBv
bGRVUkwgIT0gcmVxLnVybCgpKQotICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZGlz
cGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKTsKIH0KIAog
dm9pZCBEb2N1bWVudExvYWRlcjo6c2V0TWFpbkRvY3VtZW50RXJyb3IoY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCkBAIC01ODUsNiArNTc5LDkgQEAgUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3Vy
Y2U+IERvY3VtZW50TG9hZAogICAgIGlmICghcmVzb3VyY2UgfHwgIXJlc291cmNlLT5pc0xvYWRl
ZCgpKQogICAgICAgICByZXR1cm4gYXJjaGl2ZVJlc291cmNlRm9yVVJMKHVybCk7CiAKKyAgICBp
ZiAocmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKQorICAg
ICAgICByZXR1cm4gMDsKKwogICAgIC8vIEZJWE1FOiBUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3Qg
b2YgbWFraW5nIHRoZSByZXNvdXJjZSBub24tcHVyZ2VhYmxlLgogICAgIC8vIEl0IHdvdWxkIGJl
IGJldHRlciBpZiBpdCBkaWRuJ3QgaGF2ZSB0aGlzIHBlcm1hbmVudCBlZmZlY3QuCiAgICAgaWYg
KCFyZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCkBAIC04MTEsMTEgKzgwOCwyMiBAQCB2
b2lkIERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZ1N1YnJlc291CiAKIHZvaWQgRG9jdW1lbnRM
b2FkZXI6OmFkZFN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCiB7Cisg
ICAgLy8gVGhlIG1haW4gcmVzb3VyY2UncyB1bmRlcmx5aW5nIFJlc291cmNlTG9hZGVyIHdpbGwg
YXNrIHRvIGJlIGFkZGVkIGhlcmUuCisgICAgLy8gSXQgaXMgbXVjaCBzaW1wbGVyIHRvIGhhbmRs
ZSBzcGVjaWFsIGNhc2luZyBvZiBtYWluIHJlc291cmNlIGxvYWRzIGlmIHdlIGRvbid0CisgICAg
Ly8gbGV0IGl0IGJlIGFkZGVkLiBJbiB0aGUgbWFpbiByZXNvdXJjZSBsb2FkIGNhc2UsIG1fbWFp
blJlc291cmNlTG9hZGVyLT5sb2FkZXIoKQorICAgIC8vIHdpbGwgc3RpbGwgYmUgbnVsbCBhdCB0
aGlzIHBvaW50LCBidXQgbV9nb3RGaXJzdEJ5dGUgc2hvdWxkIGJlIGZhbHNlIGhlcmUgaWYgYW5k
IG9ubHkKKyAgICAvLyBpZiB3ZSBhcmUganVzdCBzdGFydGluZyB0aGUgbWFpbiByZXNvdXJjZSBs
b2FkLgorICAgIGlmICghbV9nb3RGaXJzdEJ5dGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NF
UlQoIW1fc3VicmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5zKGxvYWRlcikpOworICAgIEFTU0VSVCgh
bV9tYWluUmVzb3VyY2VMb2FkZXIgfHwgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpICE9
IGxvYWRlcik7CiAgICAgbV9zdWJyZXNvdXJjZUxvYWRlcnMuYWRkKGxvYWRlcik7CiB9CiAKIHZv
aWQgRG9jdW1lbnRMb2FkZXI6OnJlbW92ZVN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVy
KiBsb2FkZXIpCiB7CisgICAgaWYgKCFtX3N1YnJlc291cmNlTG9hZGVycy5jb250YWlucyhsb2Fk
ZXIpKQorICAgICAgICByZXR1cm47CiAgICAgbV9zdWJyZXNvdXJjZUxvYWRlcnMucmVtb3ZlKGxv
YWRlcik7CiAgICAgY2hlY2tMb2FkQ29tcGxldGUoKTsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0g
bV9mcmFtZSkKQEAgLTg4MSw2ICs4ODksMTAgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRM
b2FkaW5nTWFpblJlcwogCiAgICAgaWYgKG1fcmVxdWVzdC5pc051bGwoKSkgewogICAgICAgICBt
X21haW5SZXNvdXJjZUxvYWRlciA9IDA7CisgICAgICAgIC8vIElmIHRoZSBsb2FkIHdhcyBhYm9y
dGVkIGJ5IGNsZWFyaW5nIG1fcmVxdWVzdCwgaXQncyBwb3NzaWJsZSB0aGUgQXBwbGljYXRpb25D
YWNoZUhvc3QKKyAgICAgICAgLy8gaXMgbm93IGluIGEgc3RhdGUgd2hlcmUgc3RhcnRpbmcgYW4g
ZW1wdHkgbG9hZCB3aWxsIGJlIGluY29uc2lzdGVudC4gUmVwbGFjZSBpdCB3aXRoCisgICAgICAg
IC8vIGEgbmV3IEFwcGxpY2F0aW9uQ2FjaGVIb3N0LgorICAgICAgICBtX2FwcGxpY2F0aW9uQ2Fj
aGVIb3N0ID0gYWRvcHRQdHIobmV3IEFwcGxpY2F0aW9uQ2FjaGVIb3N0KHRoaXMpKTsKICAgICAg
ICAgbWF5YmVMb2FkRW1wdHkoKTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTM2NzEyKQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDggQEAKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCiAjaW5j
bHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJD
b25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
QEAgLTQ0LDE1ICs0NiwxNSBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgi
Ci0jaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVk
ZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisj
aW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaCIKICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiAjaWYgUExBVEZPUk0oUVQpCkBA
IC02MywxMyArNjUsMTEgQEAKICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAj
ZW5kaWYKIAotLy8gRklYTUU6IE1vcmUgdGhhdCBpcyBpbiBjb21tb24gd2l0aCBTdWJyZXNvdXJj
ZUxvYWRlciBzaG91bGQgbW92ZSB1cCBpbnRvIFJlc291cmNlTG9hZGVyLgotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIE1haW5SZXNvdXJjZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKERvY3Vt
ZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikKLSAgICA6IFJlc291cmNlTG9hZGVyKGRvY3VtZW50
TG9hZGVyLT5mcmFtZSgpLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25p
ZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBBc2tDbGllbnRG
b3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBTa2lwU2VjdXJpdHlDaGVjaykpCi0gICAgLCBtX2Rh
dGFMb2FkVGltZXIodGhpcywgJk1haW5SZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURh
dGFMb2FkTm93KQorICAgIDogbV9kYXRhTG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2Fk
ZXI6OmhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdykKKyAgICAsIG1fZG9jdW1lbnRMb2FkZXIo
ZG9jdW1lbnRMb2FkZXIpCiAgICAgLCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KGZhbHNlKQog
ICAgICwgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeShmYWxzZSkKICAgICAsIG1fdGltZU9mTGFz
dERhdGFSZWNlaXZlZCgwLjApCkBAIC0xMDIsMzQgKzEwMiwzMiBAQCB2b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6cmVjZWl2ZWRFcnJvcihjCiAgICAgLy8gZG9jdW1lbnQgbG9hZGVycy4gQWxzbywg
bWFpblJlY2VpdmVkRXJyb3IgZW5kcyB1cCBjYWxsaW5nIGEgRnJhbWVMb2FkRGVsZWdhdGUgbWV0
aG9kCiAgICAgLy8gYW5kIGRpZEZhaWxUb0xvYWQgY2FsbHMgYSBSZXNvdXJjZUxvYWREZWxlZ2F0
ZSBtZXRob2QgYW5kIHRoZXkgbmVlZCB0byBiZSBpbiB0aGUgY29ycmVjdCBvcmRlci4KICAgICBk
b2N1bWVudExvYWRlcigpLT5tYWluUmVjZWl2ZWRFcnJvcihlcnJvcik7Cit9CiAKLSAgICBpZiAo
IWNhbmNlbGxlZCgpKSB7Ci0gICAgICAgIEFTU0VSVCghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7
Ci0gICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZEZhaWxUb0xvYWQodGhpcywg
ZXJyb3IpOwotICAgICAgICAKLSAgICAgICAgcmVsZWFzZVJlc291cmNlcygpOwotICAgIH0KLQot
ICAgIEFTU0VSVChyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsKK3ZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjpjYW5jZWwoKQoreworICAgIGNhbmNlbChSZXNvdXJjZUVycm9yKCkpOwogfQogCi12b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikKK3Zv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
CiB7CisgICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKKyAgICBS
ZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IgPSBlcnJvci5pc051bGwoKSA/IGZyYW1lTG9hZGVy
KCktPmNhbmNlbGxlZEVycm9yKHJlcXVlc3QoKSkgOiBlcnJvcjsKKwogICAgIG1fZGF0YUxvYWRU
aW1lci5zdG9wKCk7CiAKICAgICBpZiAobV93YWl0aW5nRm9yQ29udGVudFBvbGljeSkgewogICAg
ICAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7CiAgICAg
ICAgIEFTU0VSVChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsKICAgICAgICAgbV93YWl0aW5n
Rm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwotICAgICAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyBy
ZWYgaW4gZGlkUmVjZWl2ZVJlc3BvbnNlCisgICAgICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJl
ZiBpbiByZXNwb25zZVJlY2VpdmVkCiAgICAgfQotfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRl
cjo6ZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIC8vIFdlIHNo
b3VsZCBub3RpZnkgdGhlIGZyYW1lIGxvYWRlciBhZnRlciBmdWxseSBjYW5jZWxpbmcgdGhlIGxv
YWQsIGJlY2F1c2UgaXQgY2FuIGRvIGNvbXBsaWNhdGVkIHdvcmsKLSAgICAvLyBsaWtlIGNhbGxp
bmcgRE9NV2luZG93OjpwcmludCgpLCBkdXJpbmcgd2hpY2ggYSBoYWxmLWNhbmNlbGVkIGxvYWQg
Y291bGQgdHJ5IHRvIGZpbmlzaC4KLSAgICBkb2N1bWVudExvYWRlcigpLT5tYWluUmVjZWl2ZWRF
cnJvcihlcnJvcik7CisgICAgaWYgKGxvYWRlcigpKQorICAgICAgICBsb2FkZXIoKS0+Y2FuY2Vs
KHJlc291cmNlRXJyb3IpOworCisgICAgY2xlYXJSZXNvdXJjZSgpOworICAgIHJlY2VpdmVkRXJy
b3IocmVzb3VyY2VFcnJvcik7CiAKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1Mp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChtX2Zp
bHRlcikgewpAQCAtMTM5LDYgKzEzNywyNCBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlk
Q2FuY2VsKGNvbnN0CiAjZW5kaWYKIH0KIAordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFy
UmVzb3VyY2UoKQoreworICAgIGlmIChtX3Jlc291cmNlKSB7CisgICAgICAgIG1fcmVzb3VyY2Ut
PnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9yZXNvdXJjZSA9IDA7CisgICAgfQorfQor
CitGcmFtZUxvYWRlciogTWFpblJlc291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lTG9hZGVyKCk7Cit9CisKK2NvbnN0
IFJlc291cmNlUmVxdWVzdCYgTWFpblJlc291cmNlTG9hZGVyOjpyZXF1ZXN0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9yZXNvdXJjZSA/IG1fcmVzb3VyY2UtPnJlc291cmNlUmVxdWVzdCgpIDog
bV9pbml0aWFsUmVxdWVzdDsKK30KKwogUmVzb3VyY2VFcnJvciBNYWluUmVzb3VyY2VMb2FkZXI6
OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoKSBjb25zdAogewogICAgIHJldHVybiBm
cmFtZUxvYWRlcigpLT5jbGllbnQoKS0+aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihy
ZXF1ZXN0KCkpOwpAQCAtMTYzLDcgKzE3OSw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpj
b250aW51ZUFmdGVyTmEKICAgICBlbHNlIGlmIChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkg
ewogICAgICAgICAvLyBBIHJlZGlyZWN0IHJlc3VsdGVkIGluIGxvYWRpbmcgc3Vic3RpdHV0ZSBk
YXRhLgogICAgICAgICBBU1NFUlQoZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPnJlZGlyZWN0
Q291bnQoKSk7Ci0gICAgICAgIGhhbmRsZSgpLT5jYW5jZWwoKTsKKyAgICAgICAgY2xlYXJSZXNv
dXJjZSgpOwogICAgICAgICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWRTb29uKHJlcXVlc3QpOwog
ICAgIH0KIApAQCAtMTgzLDEwICsxOTksMTUgQEAgYm9vbCBNYWluUmVzb3VyY2VMb2FkZXI6Omlz
UG9zdE9yUmVkaXJlYwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgYm9vbCBhbGxBdE9u
Y2UpCitQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBNYWluUmVzb3VyY2VMb2FkZXI6OnJlc291
cmNlRGF0YSgpCiB7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGEoZGF0YSwgbGVuZ3RoLCBh
bGxBdE9uY2UpOwotICAgIGRvY3VtZW50TG9hZGVyKCktPnJlY2VpdmVkRGF0YShkYXRhLCBsZW5n
dGgpOworICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIo
KSA6IDA7Cit9CisKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQoreworICAgIEFTU0VSVF9VTlVTRUQo
cmVzb3VyY2UsIHJlc291cmNlID09IG1fcmVzb3VyY2UpOworICAgIHdpbGxTZW5kUmVxdWVzdChy
ZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCkBAIC0yMzksOCArMjYwLDYgQEAgdm9pZCBN
YWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdAogICAgICAgICB9CiAgICAgfQogCi0g
ICAgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJl
c3BvbnNlKTsKLQogICAgIC8vIERvbid0IHNldCB0aGlzIG9uIHRoZSBmaXJzdCByZXF1ZXN0LiBJ
dCBpcyBzZXQgd2hlbiB0aGUgbWFpbiBsb2FkIHdhcyBzdGFydGVkLgogICAgIG1fZG9jdW1lbnRM
b2FkZXItPnNldFJlcXVlc3QobmV3UmVxdWVzdCk7CiAKQEAgLTI3NywxNyArMjk2LDE2IEBAIHZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyQ28KICAgICAgICAgaWYgKCFmcmFt
ZUxvYWRlcigpLT5jbGllbnQoKS0+Y2FuU2hvd01JTUVUeXBlKG1pbWVUeXBlKSB8fCBpc1JlbW90
ZVdlYkFyY2hpdmUpIHsKICAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIo
KS0+Y2Fubm90U2hvd01JTUVUeXBlKHIpOwogICAgICAgICAgICAgLy8gQ2hlY2sgcmVhY2hlZFRl
cm1pbmFsU3RhdGUgc2luY2UgdGhlIGxvYWQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNhbmNlbGVk
IGluc2lkZSBvZiBfaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5V2l0aEVycm9yQ29kZTo6Lgot
ICAgICAgICAgICAgaWYgKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKQotICAgICAgICAgICAgICAg
IHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CisgICAgICAgICAgICBzdG9wTG9hZGluZ0Zv
clBvbGljeUNoYW5nZSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAogICAgIGNhc2UgUG9saWN5RG93bmxvYWQ6IHsKLSAgICAgICAgLy8g
bV9oYW5kbGUgY2FuIGJlIG51bGwsIGUuZy4gd2hlbiBsb2FkaW5nIGEgc3Vic3RpdHV0ZSByZXNv
dXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLgotICAgICAgICBpZiAoIW1faGFuZGxlKSB7Ci0g
ICAgICAgICAgICByZWNlaXZlZEVycm9yKGNhbm5vdFNob3dVUkxFcnJvcigpKTsKKyAgICAgICAg
Ly8gbV9yZXNvdXJjZSBjYW4gYmUgbnVsbCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRl
IHJlc291cmNlIGZyb20gYXBwbGljYXRpb24gY2FjaGUuCisgICAgICAgIGlmICghbV9yZXNvdXJj
ZSkgeworICAgICAgICAgICAgcmVjZWl2ZWRFcnJvcihmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+
Y2Fubm90U2hvd1VSTEVycm9yKHJlcXVlc3QoKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRoUG9s
aWN5RG93bmxvYWQobV9kb2N1bWVudExvYWRlci0+ZnJhbWUoKSwgZG9jdW1lbnRMb2FkZXIoKSwg
aWRlbnRpZmllcigpLCByKTsKQEAgLTI5Nyw3ICszMTUsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6Y29udGludWVBZnRlckNvCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0g
dGhpcy0+cmVxdWVzdCgpOwogICAgICAgICBmcmFtZUxvYWRlcigpLT5zZXRPcmlnaW5hbFVSTEZv
ckRvd25sb2FkUmVxdWVzdChyZXF1ZXN0KTsKIAotICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGll
bnQoKS0+ZG93bmxvYWQobV9oYW5kbGUuZ2V0KCksIHJlcXVlc3QsIHIpOworICAgICAgICBmcmFt
ZUxvYWRlcigpLT5jbGllbnQoKS0+ZG93bmxvYWQobG9hZGVyKCktPmhhbmRsZSgpLCByZXF1ZXN0
LCByKTsKIAogICAgICAgICAvLyBJdCBtaWdodCBoYXZlIGdvbmUgbWlzc2luZwogICAgICAgICBp
ZiAoZnJhbWVMb2FkZXIoKSkKQEAgLTMyOSwxMyArMzQ3LDkgQEAgdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmNvbnRpbnVlQWZ0ZXJDbwogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gd2UgbWF5
IGhhdmUgY2FuY2VsbGVkIHRoaXMgbG9hZCBhcyBwYXJ0IG9mIHN3aXRjaGluZyB0byBmYWxsYmFj
ayBjb250ZW50Ci0gICAgaWYgKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKQotICAgICAgICBSZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHIpOwotCi0gICAgaWYgKG1fZG9jdW1lbnRM
b2FkZXIgJiYgIW1fZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSAmJiBtX3N1YnN0aXR1dGVE
YXRhLmlzVmFsaWQoKSkgeworICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygp
ICYmIG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAgICAgIGlmIChtX3N1YnN0aXR1
dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKQotICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEobV9z
dWJzdGl0dXRlRGF0YS5jb250ZW50KCktPmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50
KCktPnNpemUoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgdHJ1ZSk7Cisg
ICAgICAgICAgICBkYXRhUmVjZWl2ZWQoMCwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPmRh
dGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSk7CiAgICAgICAgIGlmICgh
bV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpKQogICAgICAgICAgICAgZGlkRmluaXNoTG9h
ZGluZygwKTsKICAgICB9CkBAIC0zNTIsMTEgKzM2NiwxMiBAQCB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6Y29udGludWVBZnRlckNvCiAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZh
bHNlOwogICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpKQogICAgICAgICBj
b250aW51ZUFmdGVyQ29udGVudFBvbGljeShwb2xpY3ksIG1fcmVzcG9uc2UpOwotICAgIGRlcmVm
KCk7IC8vIGJhbGFuY2VzIHJlZiBpbiBkaWRSZWNlaXZlUmVzcG9uc2UKKyAgICBkZXJlZigpOyAv
LyBiYWxhbmNlcyByZWYgaW4gcmVzcG9uc2VSZWNlaXZlZAogfQogCi12b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCit2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCiB7CisgICAgQVNTRVJUX1VOVVNF
RChyZXNvdXJjZSwgbV9yZXNvdXJjZSA9PSByZXNvdXJjZSk7CiAgICAgaWYgKGRvY3VtZW50TG9h
ZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJl
c3BvbnNlKHJlcXVlc3QoKSwgcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzgyLDcgKzM5Nyw3
IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG8KIAogICAgIGlmICht
X2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KSB7CiAgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnNl
dHVwRm9yUmVwbGFjZSgpOwotICAgICAgICBjbGVhclJlc291cmNlRGF0YSgpOworICAgICAgICBt
X3Jlc291cmNlLT5jbGVhcigpOwogICAgIH0KICAgICAKICAgICBpZiAoci5pc011bHRpcGFydCgp
KQpAQCAtMzk4LDcgKzQxMyw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
UmVzcG8KIAogICAgIEFTU0VSVCghbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSk7CiAgICAgbV93
YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IHRydWU7Ci0gICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5
IGRlcmVmIGluIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5IGFuZCBkaWRDYW5jZWwKKyAgICBy
ZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kg
YW5kIGNhbmNlbAogCiAgICAgLy8gQWx3YXlzIHNob3cgY29udGVudCB3aXRoIHZhbGlkIHN1YnN0
aXR1dGUgZGF0YS4KICAgICBpZiAobV9kb2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5p
c1ZhbGlkKCkpIHsKQEAgLTQyMywxMSArNDM4LDExIEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlUmVzcG8KICAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNo
ZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCBjYWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xp
Y3ksIHRoaXMpOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEo
Y29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3Ro
LCBib29sIGFsbEF0T25jZSkKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2ZWQo
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQog
ewogICAgIEFTU0VSVChkYXRhKTsKICAgICBBU1NFUlQobGVuZ3RoICE9IDApOwotCisgICAgQVNT
RVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9yZXNvdXJjZSk7CiAgICAgQVNTRVJU
KCFtX3Jlc3BvbnNlLmlzTnVsbCgpKTsKIAogI2lmIFVTRShDRk5FVFdPUkspIHx8IFBMQVRGT1JN
KE1BQykKQEAgLTQ1MiwxNiArNDY3LDE1IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YSgKICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBibG9ja2VkRGF0YSwgdGhh
dCBtZWFucyB3ZSdyZSBzdGlsbCBhY2N1bXVsYXRpbmcgZGF0YQogICAgICAgICBpZiAoIWJsb2Nr
ZWREYXRhKSB7CiAgICAgICAgICAgICAvLyBUcmFuc2l0aW9uIHRvIGNvbW1pdHRlZCBzdGF0ZS4K
LSAgICAgICAgICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSgiIiwgMCwgMCwgZmFs
c2UpOworICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKDAsIDApOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgZGF0YSA9IGJsb2NrZWRE
YXRhOwotICAgICAgICBlbmNvZGVkRGF0YUxlbmd0aCA9IC0xOwogICAgIH0KICNlbmRpZgogCi0g
ICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291cmNl
RGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7
CisgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291
cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKIAogICAgIC8vIFRoZSBh
ZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5nIGluY2x1ZGluZyBwb3NzaWJseSBy
ZW1vdmluZyB0aGUgbGFzdAogICAgIC8vIHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25lIGV4
YW1wbGUgb2YgdGhpcyBpcyAzMjY2MjE2LgpAQCAtNDY5LDcgKzQ4Myw3IEBAIHZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSgKIAogICAgIG1fdGltZU9mTGFzdERhdGFSZWNl
aXZlZCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogCi0gICAgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhKGRhdGEsIGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0
T25jZSk7CisgICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKGRhdGEsIGxlbmd0aCk7
CiAKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChXZWJGaWx0ZXJFdmFsdWF0b3IgKmZp
bHRlciA9IG1fZmlsdGVyKSB7CkBAIC00OTAsNyArNTA0LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmRpZEZpbmlzaExvYWRpbgogICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0d29y
ayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBk
ZWZlcnJlZC4KICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRl
dGFpbHMuCiAjaWYgIVVTRShDRikKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSB8fCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRGVidWdnZXJQYXVzZWQobV9mcmFtZS5nZXQoKSkpOwor
ICAgIEFTU0VSVCghZGVmZXJzTG9hZGluZygpIHx8IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
aXNEZWJ1Z2dlclBhdXNlZChtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpKSk7CiAjZW5kaWYKIAog
ICAgIC8vIFRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5nIGluY2x1ZGlu
ZyBwb3NzaWJseSByZW1vdmluZyB0aGUgbGFzdApAQCAtNTA2LDcgKzUyMCw3IEBAIHZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW4KICAgICAgICAgLy8gUmVtb3ZlIHRoaXMt
Pm1fZmlsdGVyIGVhcmx5IHNvIGRpZFJlY2VpdmVEYXRhIGRvZXNuJ3Qgc2VlIGl0LgogICAgICAg
ICBtX2ZpbHRlciA9IDA7CiAgICAgICAgIGlmIChkYXRhKQotICAgICAgICAgICAgZGlkUmVjZWl2
ZURhdGEoZGF0YSwgbGVuZ3RoLCAtMSwgZmFsc2UpOworICAgICAgICAgICAgZGF0YVJlY2VpdmVk
KG1fcmVzb3VyY2UuZ2V0KCksIGRhdGEsIGxlbmd0aCk7CiAgICAgICAgIHdrRmlsdGVyUmVsZWFz
ZShmaWx0ZXIpOwogICAgIH0KICNlbmRpZgpAQCAtNTE2LDEzICs1MzAsMTggQEAgdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbgogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+
dGltaW5nKCktPnNldFJlc3BvbnNlRW5kKGZpbmlzaFRpbWUgPyBmaW5pc2hUaW1lIDogKG1fdGlt
ZU9mTGFzdERhdGFSZWNlaXZlZCA/IG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA6IG1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZSgpKSk7CiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+ZmluaXNoZWRM
b2FkaW5nKCk7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGlt
ZSk7CiAKICAgICBkbC0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+ZmluaXNoZWRMb2FkaW5nTWFp
blJlc291cmNlKCk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKKyAgICBBU1NFUlRfVU5VU0VEKHJl
c291cmNlLCBtX3Jlc291cmNlID09IHJlc291cmNlKTsKKyAgICBpZiAoIW1fcmVzb3VyY2UgfHwg
KCFtX3Jlc291cmNlLT5lcnJvck9jY3VycmVkKCkgJiYgIW1fcmVzb3VyY2UtPndhc0NhbmNlbGVk
KCkpKSB7CisgICAgICAgIGRpZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZS0+bG9hZEZpbmlzaFRp
bWUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICNpZiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAog
ICAgIGlmIChtX2ZpbHRlcikgewogICAgICAgICB3a0ZpbHRlclJlbGVhc2UobV9maWx0ZXIpOwpA
QCAtNTMwLDYgKzU0OSw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0
IFIKICAgICB9CiAjZW5kaWYKIAorICAgIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yID0gbV9y
ZXNvdXJjZS0+cmVzb3VyY2VFcnJvcigpOwogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBs
aWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5FcnJvcihyZXF1ZXN0
KCksIGVycm9yKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01NDUsNyArNTY1LDYgQEAgdm9pZCBN
YWluUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUgogdm9pZCBNYWluUmVzb3VyY2VMb2Fk
ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpMb2FkZXIpOwotICAgIFJlc291cmNlTG9hZGVyOjpyZXBv
cnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2lu
aXRpYWxSZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3N1YnN0aXR1dGVEYXRhKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX2RhdGFMb2FkVGltZXIpOwpAQCAtNTY0LDcgKzU4Myw3IEBAIHZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXQKICAgICBtX2luaXRpYWxSZXF1
ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiAgICAgICAgIAogICAgIFJlc291cmNlUmVzcG9uc2Ug
cmVzcG9uc2UodXJsLCBtX3N1YnN0aXR1dGVEYXRhLm1pbWVUeXBlKCksIG1fc3Vic3RpdHV0ZURh
dGEuY29udGVudCgpLT5zaXplKCksIG1fc3Vic3RpdHV0ZURhdGEudGV4dEVuY29kaW5nKCksICIi
KTsKLSAgICBkaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOworICAgIHJlc3BvbnNlUmVjZWl2
ZWQoMCwgcmVzcG9uc2UpOwogfQogCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c3RhcnREYXRh
TG9hZFRpbWVyKCkKQEAgLTU4NywyOSArNjA2LDggQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OmhhbmRsZVN1YnN0aXR1dAogICAgICAgICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3coMCk7
CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYg
cikKLXsKLSAgICBBU1NFUlQoIW1faGFuZGxlKTsKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmco
KSk7Ci0KLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLSAgICBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPmFkZE1haW5S
ZXNvdXJjZUxvYWQodGhpcyk7Ci0jZWxzZQotICAgIHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5h
ZGRNYWluUmVzb3VyY2VMb2FkKHRoaXMpOwotI2VuZGlmCi0KLSAgICBpZiAobV9zdWJzdGl0dXRl
RGF0YS5pc1ZhbGlkKCkpCi0gICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocik7
Ci0gICAgZWxzZQotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9m
cmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCksIHIsIHRoaXMsIGZhbHNlLCB0cnVl
KTsKLQotICAgIHJldHVybjsKLX0KLQotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURh
dGEpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IGluaXRpYWxSZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCiB7
Ci0gICAgQVNTRVJUKCFtX2hhbmRsZSk7Ci0KICAgICAvLyBJdCBhcHBlYXJzIHRoYXQgaXQgaXMg
cG9zc2libGUgZm9yIHRoaXMgbG9hZCB0byBiZSBjYW5jZWxsZWQgYW5kIGRlcmVmZW5jZWQgYnkg
dGhlIERvY3VtZW50TG9hZGVyCiAgICAgLy8gaW4gd2lsbFNlbmRSZXF1ZXN0KCkgaWYgbG9hZE5v
dygpIGlzIGNhbGxlZC4KICAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRo
aXMpOwpAQCAtNjE5LDcgKzYxNyw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNv
bnN0IFJlc28KICAgICBBU1NFUlQoZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPm5hdmlnYXRp
b25TdGFydCgpKTsKICAgICBBU1NFUlQoIWRvY3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5mZXRj
aFN0YXJ0KCkpOwogICAgIGRvY3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5tYXJrRmV0Y2hTdGFy
dCgpOwotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHIpOworICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KGluaXRpYWxSZXF1ZXN0KTsKIAogICAgIC8vIFNlbmQgdGhpcyBzeW50aGV0aWMg
ZGVsZWdhdGUgY2FsbGJhY2sgc2luY2UgY2xpZW50cyBleHBlY3QgaXQsIGFuZAogICAgIC8vIHdl
IG5vIGxvbmdlciBzZW5kIHRoZSBjYWxsYmFjayBmcm9tIHdpdGhpbiBOU1VSTENvbm5lY3Rpb24g
Zm9yCkBAIC02MjcsMzcgKzYyNSw2MyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZChj
b25zdCBSZXNvCiAgICAgd2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2Uo
KSk7CiAgICAgQVNTRVJUKCFkZWxldGlvbkhhc0JlZ3VuKCkpOwogCi0gICAgLy8gPHJkYXI6Ly9w
cm9ibGVtLzQ4MDEwNjY+Ci0gICAgLy8gd2lsbFNlbmRSZXF1ZXN0KCkgaXMgbGlhYmxlIHRvIG1h
a2UgdGhlIGNhbGwgdG8gZnJhbWVMb2FkZXIoKSByZXR1cm4gbnVsbCwgc28gd2UgbmVlZCB0byBj
aGVjayB0aGF0IGhlcmUKLSAgICBpZiAoIWZyYW1lTG9hZGVyKCkgfHwgcmVxdWVzdC5pc051bGwo
KSkgewotICAgICAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0gICAgICAgICAgICBy
ZWxlYXNlUmVzb3VyY2VzKCk7CisgICAgLy8gd2lsbFNlbmRSZXF1ZXN0KCkgbWF5IGxlYWQgdG8g
b3VyIERvY3VtZW50TG9hZGVyIGJlaW5nIGRldGFjaGVkIG9yIGNhbmNlbGxpbmcgdGhlIGxvYWQg
dmlhIG51bGxpbmcgdGhlIFJlc291cmNlUmVxdWVzdC4KKyAgICBpZiAoIWRvY3VtZW50TG9hZGVy
KCktPmZyYW1lKCkgfHwgcmVxdWVzdC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0K
IAogICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9h
ZE1haW5SZXNvdXJjZShyZXF1ZXN0LCBtX3N1YnN0aXR1dGVEYXRhKTsKIAotICAgIGlmIChkZWZl
cnNMb2FkaW5nKCkpCi0gICAgICAgIG1faW5pdGlhbFJlcXVlc3QgPSByZXF1ZXN0OwotICAgIGVs
c2UKLSAgICAgICAgbG9hZE5vdyhyZXF1ZXN0KTsKKyAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5p
c1ZhbGlkKCkpCisgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocmVxdWVzdCk7
CisgICAgZWxzZSB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVzb3VyY2VMb2FkZXJP
cHRpb25zLCBtYWluUmVzb3VyY2VMb2FkT3B0aW9ucywKKyAgICAgICAgICAgIChTZW5kQ2FsbGJh
Y2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFz
a0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIFNraXBTZWN1cml0eUNoZWNrKSk7Cisg
ICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVz
dCwgbWFpblJlc291cmNlTG9hZE9wdGlvbnMpOworICAgICAgICBtX3Jlc291cmNlID0gZG9jdW1l
bnRMb2FkZXIoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdE1haW5SZXNvdXJjZShj
YWNoZWRSZXNvdXJjZVJlcXVlc3QpOworICAgICAgICBpZiAoIW1fcmVzb3VyY2UpIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50TG9hZGVyKCktPnNldFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KCkpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fcmVzb3VyY2UtPmFkZENs
aWVudCh0aGlzKTsKKworICAgICAgICAvLyBXZSBuZWVkIHRvIHdhaXQgdW50aWwgYWZ0ZXIgcmVx
dWVzdE1haW5SZXNvdXJjZSgpIGlzIGNhbGxlZCB0byBzZXRSZXF1ZXN0KCksIGJlY2F1c2UgdGhl
cmUgYXJlIGEgYnVuY2ggb2YgaGVhZGVycyBzZXQgd2hlbgorICAgICAgICAvLyB0aGUgdW5kZXJs
eWluZyBSZXNvdXJjZUxvYWRlciBpcyBjcmVhdGVkLCBhbmQgRG9jdW1lbnRMb2FkZXI6Om1fcmVx
dWVzdCBuZWVkcyB0byBpbmNsdWRlIHRob3NlLiBIb3dldmVyLCB0aGUgY2FjaGUgd2lsbAorICAg
ICAgICAvLyBzdHJpcCB0aGUgZnJhZ21lbnQgaWRlbnRpZmllciAod2hpY2ggRG9jdW1lbnRMb2Fk
ZXI6Om1fcmVxdWVzdCBzaG91bGQgYWxzbyBpbmNsdWRlKSwgc28gYWRkIHRoYXQgYmFjayBpbi4K
KyAgICAgICAgaWYgKGxvYWRlcigpKQorICAgICAgICAgICAgcmVxdWVzdCA9IGxvYWRlcigpLT5v
cmlnaW5hbFJlcXVlc3QoKTsKKyAgICAgICAgaWYgKGluaXRpYWxSZXF1ZXN0LnVybCgpICE9IHJl
cXVlc3QudXJsKCkpCisgICAgICAgICAgICByZXF1ZXN0LnNldFVSTChpbml0aWFsUmVxdWVzdC51
cmwoKSk7CisgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPnNldFJlcXVlc3QocmVxdWVzdCk7Cisg
ICAgfQogfQogCiB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29s
IGRlZmVycykKIHsKLSAgICBSZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMp
OworICAgIGlmIChsb2FkZXIoKSkKKyAgICAgICAgbG9hZGVyKCktPnNldERlZmVyc0xvYWRpbmco
ZGVmZXJzKTsKK30KIAotICAgIGlmIChkZWZlcnMpIHsKLSAgICAgICAgaWYgKG1fZGF0YUxvYWRU
aW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9kYXRhTG9hZFRpbWVyLnN0b3AoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBpZiAobV9pbml0aWFsUmVxdWVzdC5pc051bGwoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKK2Jvb2wgTWFpblJlc291cmNlTG9hZGVyOjpkZWZlcnNMb2FkaW5nKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbG9hZGVyKCkgPyBsb2FkZXIoKS0+ZGVmZXJzTG9hZGluZygp
IDogZmFsc2U7Cit9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGluaXRpYWxSZXF1ZXN0KG1f
aW5pdGlhbFJlcXVlc3QpOwotICAgICAgICBtX2luaXRpYWxSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1
ZXN0KCk7Ci0gICAgICAgIGxvYWROb3coaW5pdGlhbFJlcXVlc3QpOwotICAgIH0KK3ZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpzZXRTaG91bGRCdWZmZXJEYXRhKERhdGFCdWZmZXJpbmdQb2xpY3kg
c2hvdWxkQnVmZmVyRGF0YSkKK3sKKyAgICBBU1NFUlQobV9yZXNvdXJjZSk7CisgICAgbV9yZXNv
dXJjZS0+c2V0U2hvdWxkQnVmZmVyRGF0YShzaG91bGRCdWZmZXJEYXRhKTsKK30KKworUmVzb3Vy
Y2VMb2FkZXIqIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZGVyKCkgY29uc3QKK3sgCisgICAgcmV0
dXJuIG1fcmVzb3VyY2UgPyBtX3Jlc291cmNlLT5sb2FkZXIoKSA6IDA7Cit9CisKK3Vuc2lnbmVk
IGxvbmcgTWFpblJlc291cmNlTG9hZGVyOjppZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBpZiAo
UmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyID0gbG9hZGVyKCkpCisgICAgICAgIHJldHVy
biByZXNvdXJjZUxvYWRlci0+aWRlbnRpZmllcigpOworICAgIHJldHVybiAwOwogfQogCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lv
biAxMzY3MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAKICNpZm5kZWYgTWFpblJlc291cmNlTG9h
ZGVyX2gKICNkZWZpbmUgTWFpblJlc291cmNlTG9hZGVyX2gKIAorI2luY2x1ZGUgIkNhY2hlZFJh
d1Jlc291cmNlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlICJTdWJzdGl0dXRlRGF0YS5oIgpAQCAtNDksMjEgKzUxLDIwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIAotY2xhc3Mg
TWFpblJlc291cmNlTG9hZGVyIDogcHVibGljIFJlc291cmNlTG9hZGVyIHsKK2NsYXNzIE1haW5S
ZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE1haW5SZXNvdXJjZUxvYWRlcj4sIHB1
YmxpYyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBj
cmVhdGUoRG9jdW1lbnRMb2FkZXIqKTsKICAgICB2aXJ0dWFsIH5NYWluUmVzb3VyY2VMb2FkZXIo
KTsKIAogICAgIHZvaWQgbG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0
dXRlRGF0YSYpOwotICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGJv
b2wgYWxsQXRPbmNlKSBPVkVSUklERTsKKyAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgY2Fu
Y2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICBSZXNvdXJjZUxvYWRlciogbG9hZGVyKCkg
Y29uc3Q7CisgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gcmVzb3VyY2VEYXRhKCk7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKSBPVkVSUklERTsKLQotICAg
IHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxvbmcg
bG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7
CisgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQnVm
ZmVyRGF0YShEYXRhQnVmZmVyaW5nUG9saWN5KTsKIAogI2lmIEhBVkUoUlVOTE9PUF9USU1FUikK
ICAgICB0eXBlZGVmIFJ1bkxvb3BUaW1lcjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNvdXJj
ZUxvYWRlclRpbWVyOwpAQCAtNzEsMTggKzcyLDIxIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIFRp
bWVyPE1haW5SZXNvdXJjZUxvYWRlcj4gTWFpblJlc291cmNlTG9hZGVyVGltZXI7CiAjZW5kaWYK
IAorICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0OwogICAgIGJvb2wgaXNMb2Fk
aW5nTXVsdGlwYXJ0Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGluZ011bHRpcGFydENv
bnRlbnQ7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWFpblJlc291
cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNl
bChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENh
bmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0KLSAgICB2b2lkIGxvYWROb3co
UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoQ2Fj
aGVkUmVzb3VyY2UqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3Vy
Y2UqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRh
TGVuZ3RoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqKSBPVkVSUklERTsKIAorICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOworICAg
IHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBoYW5k
bGVTdWJzdGl0dXRlRGF0YUxvYWRTb29uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogICAgIHZv
aWQgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KE1haW5SZXNvdXJjZUxvYWRlclRpbWVyKik7
CiAKQEAgLTEwNCwxMCArMTA4LDIyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdWJzdGl0dXRlTUlN
RVR5cGVGcm9tUGx1Z2luRGF0YWJhc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogI2VuZGlm
CiAKKyAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIoKSBjb25zdDsKKyAgICBEb2N1bWVudExv
YWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50TG9hZGVyLmdl
dCgpOyB9CisKKyAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdDsKKyAg
ICB2b2lkIGNsZWFyUmVzb3VyY2UoKTsKKworICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0
OworCisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3Vy
Y2U7CisKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9pbml0aWFsUmVxdWVzdDsKICAgICBTdWJzdGl0
dXRlRGF0YSBtX3N1YnN0aXR1dGVEYXRhOworICAgIFJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25z
ZTsKIAogICAgIE1haW5SZXNvdXJjZUxvYWRlclRpbWVyIG1fZGF0YUxvYWRUaW1lcjsKKyAgICBS
ZWZQdHI8RG9jdW1lbnRMb2FkZXI+IG1fZG9jdW1lbnRMb2FkZXI7CiAKICAgICBib29sIG1fbG9h
ZGluZ011bHRpcGFydENvbnRlbnQ7CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5
OwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lv
biAxMzY3MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDkgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2ls
bFNlbmRSZXF1ZXN0KFJlcwogI2VuZGlmCiAgICAgfQogICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7
CisKKyAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkgJiYgIW1fZG9jdW1lbnRMb2Fk
ZXItPmlzQ29tbWl0dGVkKCkpCisgICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5kaXNw
YXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpOwogfQogCiB2
b2lkIFJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2ln
bmVkIGxvbmcgbG9uZykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5o
CShyZXZpc2lvbiAxMzY3MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgUmVzb3Vy
Y2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
RGVmZXJzTG9hZGluZyhib29sKTsKKyAgICBib29sIGRlZmVyc0xvYWRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2RlZmVyc0xvYWRpbmc7IH0KIAogICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCkBAIC0xNjgsNyArMTY5LDYgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ09uZVBhcnQoZG91YmxlIGZpbmlzaFRp
bWUpOwogCiAgICAgYm9vbCBjYW5jZWxsZWQoKSBjb25zdCB7IHJldHVybiBtX2NhbmNlbGxlZDsg
fQotICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJzTG9hZGlu
ZzsgfQogCiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsKICAgICBSZWZQdHI8
RnJhbWU+IG1fZnJhbWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHJldmlzaW9uIDEzNjcxMikKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVI
b3N0OjptYXliZUxvYWRGYWxsCiAgICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVk
KCkpIHsKICAgICAgICAgICAgIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZSA9IEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5SZXF1ZXN0KHJlcXVlc3QsIGRv
Y3VtZW50TG9hZGVyKCkpOwogCi0gICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tS
ZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJj
ZUxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQorICAgICAg
ICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNo
ZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVyKCksIG1fbWFp
blJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTcsNyArMTE3LDcgQEAgYm9vbCBBcHBsaWNh
dGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2Fj
aGUgPSBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChy
ZXF1ZXN0LCBtX2RvY3VtZW50TG9hZGVyKTsKIAotICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9h
ZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5t
YWluUmVzb3VyY2VMb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgp
KSkKKyAgICAgICAgICAgIGlmIChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxp
Y2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCktPmxvYWRl
cigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHAJKHJldmlzaW9uIDEzNjcxMikK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSw4ICs1NSw4IEBAIHN0YXRpYyB2b2lkIHVuc2NoZWR1bGVBbGwoY29u
c3QgUmVzb3VyY2UKIAogdm9pZCBEb2N1bWVudExvYWRlcjo6c2NoZWR1bGUoU2NoZWR1bGVQYWly
KiBwYWlyKQogewotICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJj
ZUxvYWRlci0+aGFuZGxlKCkpCi0gICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUo
KS0+c2NoZWR1bGUocGFpcik7CisgICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFp
blJlc291cmNlTG9hZGVyLT5sb2FkZXIoKSAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVy
KCktPmhhbmRsZSgpKQorICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhh
bmRsZSgpLT5zY2hlZHVsZShwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9h
ZGVycywgcGFpcik7CiAgICAgc2NoZWR1bGVBbGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWly
KTsKICAgICBzY2hlZHVsZUFsbChtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7
CkBAIC02NCw4ICs2NCw4IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNjaGVkdWxlKFNjaGVkdWxl
UGEKIAogdm9pZCBEb2N1bWVudExvYWRlcjo6dW5zY2hlZHVsZShTY2hlZHVsZVBhaXIqIHBhaXIp
CiB7Ci0gICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVy
LT5oYW5kbGUoKSkKLSAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLT51bnNj
aGVkdWxlKHBhaXIpOworICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNv
dXJjZUxvYWRlci0+bG9hZGVyKCkgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5o
YW5kbGUoKSkKKyAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUo
KS0+dW5zY2hlZHVsZShwYWlyKTsKICAgICB1bnNjaGVkdWxlQWxsKG1fc3VicmVzb3VyY2VMb2Fk
ZXJzLCBwYWlyKTsKICAgICB1bnNjaGVkdWxlQWxsKG1fcGx1Z0luU3RyZWFtTG9hZGVycywgcGFp
cik7CiAgICAgdW5zY2hlZHVsZUFsbChtX211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFp
cik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzY3MTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMS0yOCAgTmF0ZSBDaGFwaW4g
IDxqYXBoZXRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJvdXRlIG1haW4gcmVzb3VyY2UgbG9h
ZHMgdGhyb3VnaCB0aGUgbWVtb3J5IGNhY2hlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFt
ZXRlcnMuaHRtbDogVGhlIG1haW4gcmVzb3VyY2UncyB1cmwgd2lsbCBleGNsdWRlIHRoZSBmcmFn
bWVudCBpZGVudGlmaWVyIGhlcmUuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3dpbGwtc2Vu
ZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQ6IFRoZSBlcnJv
ciBjb2RlIGZvciBsb2FkcyBjYW5jZWxsZWQKKyAgICAgICAgICAgIGJ5IGFuIGVtYmVkZGVyJ3Mg
d2lsbFNlbmRSZXF1ZXN0KCkgd2lsbCBzaG93IGFzIHN0YW5kYXJkIGxvYWQgY2FuY2VsbGF0aW9u
cyByYXRoZXIgdGhhbiBhcyBhIGNvbnRlbnQgcG9saWN5CisgICAgICAgICAgICBmYWlsdXJlLiBU
aGlzIHdhcyBhbiBvZGQgcXVpcmsgb2YgaG93IE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0KCkgd2FzIGltcGxlbWVudGVkIChuYW1lbHksIGRvaW5nIGEKKyAgICAgICAgICAgIGNv
bnRlbnQgcG9saWN5IGNoZWNrIG9uIFJlc291cmNlUmVxdWVzdHMgd2l0aCBlbXB0eSB1cmxzKS4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJl
cXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogU2VlIHByZXZpb3Vz
LgorCiAyMDEyLTEyLTA1ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSRUdSRVNTSU9OKHIxMjY2ODMpOiBUYWJsZSBjZWxsIGFyZSBnZXR0aW5nIGJvcmRlcnMg
d2hlbiB0aGUgc3R5bGUgZG9lc24ndCBtZW50aW9uIGFueQpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRt
bAkocmV2aXNpb24gMTM2NzEyKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2UtcGFyYW1ldGVycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw3ICsxNyw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIG9uUmVxdWVzdEZpbmlzaGVkKGV2ZW50KQog
ICAgIHsKICAgICAgICAgdmFyIHJlcXVlc3QgPSBldmVudC5kYXRhOwotICAgICAgICBpZiAocmVx
dWVzdC51cmwgIT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9w
b3N0LXRhcmdldC5jZ2k/cXVlcnlQYXJhbTE9cXVlcnlWYWx1ZTEmcXVlcnlQYXJhbTI9I2ZyYWdt
ZW50UGFyYW0xPWZyYWdtZW50VmFsdWUxJmZyYWdtZW50UGFyYW0yPSIpCisgICAgICAgIGlmIChy
ZXF1ZXN0LnVybCAhPT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3Bvc3QtdGFyZ2V0LmNnaT9xdWVyeVBhcmFtMT1xdWVyeVZhbHVlMSZxdWVyeVBhcmFtMj0iKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChuZXcg
V2ViSW5zcGVjdG9yLkhBUkVudHJ5KHJlcXVlc3QpLmJ1aWxkKCksIEluc3BlY3RvclRlc3QuSEFS
UHJvcGVydHlGb3JtYXR0ZXJzKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1y
ZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24t
cmVkaXJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzY3MTIpCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAgaHR0cDovLzEyNy4w
LjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZAogPHVua25vd24+IC0gZGlkRmluaXNoTG9hZGlu
ZwogaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAt
dXJsLnBocCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vd3d3LmV4
YW1wbGUuY29tLywgbWFpbiBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2Mv
d2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwsIGh0dHAgbWV0
aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwLCBodHRwIHN0YXR1
cyBjb2RlIDMwMj4KIFJldHVybmluZyBudWxsIGZvciB0aGlzIHJlZGlyZWN0Ci1odHRwOi8vMTI3
LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gZGlk
RmFpbExvYWRpbmdXaXRoRXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBXZWJLaXRFcnJvckRvbWFpbiwg
Y29kZSAxMDI+CitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3Qt
dG8taHR0cC11cmwucGhwIC0gZGlkRmFpbExvYWRpbmdXaXRoRXJyb3I6IDxOU0Vycm9yIGRvbWFp
biBOU1VSTEVycm9yRG9tYWluLCBjb2RlIC05OTk+CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjc1OTUKIFRoaXMgdGVzdCBjaGVja3MgdG8gbWFrZSBzdXJlIHRoYXQg
dGhpbmdzIGJlaGF2ZSBhcyBleHBlY3RlZCB3aGVuIHRoZSByZXNvdXJjZSBsb2FkIGRlbGVnYXRl
IHJldHVybnMgbnVsbCBpbiByZXNwb25zZSB0byB3aWxsU2VuZFJlcXVlc3QuCiAKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVx
dWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQt
cmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
MzY3MTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL21pc2Mv
d2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2Mv
cmVzb3VyY2VzL3JlZAogPHVua25vd24+IC0gZGlkRmluaXNoTG9hZGluZwogaHR0cDovLzEyNy4w
LjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIHdpbGxT
ZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vd3d3LmV4YW1wbGUuY29tLywgbWFp
biBkb2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2Mvd2lsbC1zZW5kLXJlcXVl
c3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJl
Y3RSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNv
dXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwLCBodHRwIHN0YXR1cyBjb2RlIDMwMj4KIFJl
dHVybmluZyBudWxsIGZvciB0aGlzIHJlZGlyZWN0Ci1odHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gZGlkRmFpbExvYWRpbmdXaXRo
RXJyb3I6IDxOU0Vycm9yIGRvbWFpbiBXZWJLaXQsIGNvZGUgLTEwMDAwLCBmYWlsaW5nIFVSTCAi
KG51bGwpIj4KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10
by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWlu
IE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5OSwgZmFpbGluZyBVUkwgIihudWxsKSI+CiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1OTUKIFRoaXMgdGVzdCBjaGVj
a3MgdG8gbWFrZSBzdXJlIHRoYXQgdGhpbmdzIGJlaGF2ZSBhcyBleHBlY3RlZCB3aGVuIHRoZSBy
ZXNvdXJjZSBsb2FkIGRlbGVnYXRlIHJldHVybnMgbnVsbCBpbiByZXNwb25zZSB0byB3aWxsU2Vu
ZFJlcXVlc3QuCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zh
c3QvcmVwbGFjZWQvYm9yZGVyLXJhZGl1cy1jbGlwLWNvbnRlbnQtZWRnZS1leHBlY3RlZC5wbmcK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4K
c3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFB
SllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQmtNRGs1TTJVMwpOREl6TXpFME1t
UTRNV00xTTJRM01XVXdZemsxWmpGaVpVSGlJeVlBQUNBQVNVUkJWSGljN2QxeGJCdlhnZWZ4UjBk
L01EbHRPRGFFCldNZ1pGdE5OYWpWMll3bnRuZ1EwS09Va0MxMy91Tmh5ZzFYK3VJVWRwRUMzYUJK
TDloNlNib0RHN2gvYnRMaUZ4YUxGYmY0STF1cnQKYlIxa2EwblpXeUFHNG9wMGJFQk9jeFhWZFRj
VTRGU2s0M1VwSXphSHFJclFDSzI1UDZaVnFaRTQ0bER2Y1RodnZwLy9TSTZsbCtDSApweDluM3B1
SldKWWxBQUFBSU04V3Z3Y0FBQUNnR3dvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05n
QVFBQVNFYkJBZ0FBCmtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpS
c0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVoKQlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURK
S0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvVwpBQUNB
WkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUZtYjN3TUlu
dHUzYjMvNjZhYzNiOTRVClFtU3pXZnZOYkRacm11YmFnM2Z1M0huLy9mY0xJZTY3Nzc1dDI3WjFk
bmJlZGRkZGJXMzhiOWNCU1lDTkpBQllLMkpabHQ5amFHbTMKYjk4dUZvdWxVaW1YeTlXYU1iMHlE
T1BMWC81eVBCNlB4V0pidG5BU01SaElBbXdrQVVBOUtGanJXRnBhdW5uelpqYWJuWm1aVWYyNwo5
dXpaODZVdmZhbXpzMVAxTDBJRFNBSnNKQUdBVnhTczMxdGVYcjV4NDhhSEgzNzR6anZ2K0RLQUo1
NTQ0Z3RmK0VJMEd2WGx0Mk1GClNZQ05KQURZakxBWExIc092WGp4NHVYTGwvMGVpeEJDOVBmM0p4
SUpwdFRtSXdtd2tRUUFVb1MzWUJXTHhaLzk3R2N0TW9jNjlQZjMKUC83NDQ2eDdiUTZTQUJ0SkFD
QlI2QXBXdVZ6KzRJTVB6cDgvTDJWcHFsSlBQLzMwcmwyNy9CNkZ0a2dDYkNRQmdBb2hLbGpGWXZH
OQo5OTVyd2hwVmlRekRlUGJaWjl2YjIvMGVpRlpJQW13a0FZQTZvU2hZeFdKeGNuTHk2dFdyZmcr
a1FYeHRsWVVrd0VZU0FLaW1lY0VLCitqUzZZcytlUFVORFE5d2dwMkVrQVRhU0FLQTV0QzFZUzB0
TGI3NzVwcUpwTkI2UFI2UFJ6czdPV0N4bUdNYksrNFpoVkw4VVFwaW0KYVpwbXVWeGVYRndzRkFx
RlFxSGhkUjZHWVh6em05OWtsYXRYSkFFMmtnQ2dtVFFzV0pWSzVkeTVjeExYVlJpRzBkM2RIWXZG
T2pzNwoxMDZYWHBtbW1jdmw1dWZuVng2cDRXa2t6S2YxSXdtd2tRUUF6YWRid1pxZm56OTkrdlRt
ZjQ1aEdQRjR2S3VyS3g2UGIzTDJyTVUwCnpXdzJlK25TSmEvZlg1OS8vdmx0MjdhcEdKSk9TQUpz
SkFHQUwvUXBXRXRMUzYrLy92b21OMXJINC9HOWUvZXFtMERYbGNsazB1bTAKcDVHLy9QTExmR2V0
aFNUQVJoSUErRWlUZ25YeDRzWE5QTTdDTUl5K3ZyN3U3dTVtenFFTzZYUjZabWFtWEM3WGN6RFhC
V29oQ2JDUgpCQUQrQ256QjJzeVgxR2cwMnRQVHMzZnZYcS9QVlYxNDk2UDhMMjZtSmsyekZNa3N4
RmJlenkxMTVDczdxby9zYXJzV2IvODQzckhVCjgvazdpYi9ZM3Z0MHQ4dVBOVTN6N05temRhN0RN
QXpqK2VlZlp3L1JDbCtTa0x0d0xmLy9QbDQzQ2JuVlNZaFhKMkc0czJmWWJZODkKU2RnTWYrYUVC
U3VmRjZtVU1FMlJ5Znp4L1Z4TzVQT1I2aU83dXF4NFhNVGpvcWRISkJLaXR6ZmkvRmxWU0FJUVhN
RXVXQTJ2cmpBTQpJNUZJOVBUMDFIbDhLcGxKVFpxcGpHSGV2bnZ1azhadlB4T0xsQVk2czRjUGl3
Ti8yMWZybUptWm1iTm56OWJ6MC9iczJmUFZyMzYxCjRjSG9wR2xKU0ZjbEliT0pKQmgvU01KK2tp
QlY4K2FFbEpWSy9iNVJ6YzI1bFNSM3NaZzFNQ0FPSHhZSER0VDhJU1FCQ0tLZ0ZxeEsKcFRJMU5k
WEFVOFBxbjBaWFNsWGFySGZPclY4c1VocEp6Qjc1aDU2dDhYVXVRQlFLaGZIeDhYb3VEUXdQRDNk
M3U1MFYwMTRUa3JCUwpxbElLa21EWVNUalZhM1RGMW41S0V1clhqRG5oRDZVcW5XNjhVZFVTaTFr
akkrTElFYkYxNnpvL25DUUFnUlBJZ3RYWUpZQTZwOUhKCnY3azArZWFua3g5K3ZtU3Q4d2RQTHBl
YVZTNlh4OGZIQzRYQ2hqL2syTEZqb1gxdWh0SWtUUDBoQ2FiNkpMalVMSkpRRDdWendxUTEKT1Nr
bUowV3BKTDlYT2JqVUxKSUFCRXZ3Q2xZK256OTE2cFNuZjJJWXh1RGdvUHUzdXRuVDJmSHZMNTdL
OURTaFZ6bDB0VjA3ZWV6YQowS3Y5anZmcm5FOE53emh5NUlpeTBiVXVSVW5JdkRFLy9yM0NxVXhQ
RTNxVlE3enQyc20vL284RDMzVmVOQ1FKN2xUTkNiUFcrTGc0CmRhb1p2Y3FocThzNmVWSU1EVFhZ
c1VLYkJLQ2xCS3hnemM3T3Z2WFdXNTcrU1g5L2Z5S1JpRWFqNjM1YXpKbmpSK2ZHL3VWUEhZdlQK
bSs5SWIzcnNGd25IbTNYT3B5RzhLQ0E5Q1dhK05ENmFHZnVYUDgzNW5ZU1IzdlJKa2xBMytYTkMw
Um9mRjJOanpzWHB6WGZraURVMgoxbURIQ21FU2dGWVRwSUwxMDUvKzFOTUNpM2c4UGpnNFdHczNV
REZuSnAvSmpLVjdtMy9LcXBhOWQ4OVAvL3QyeCtYQ2NybWNUQ1kzClhIc1JxcnZneUUyQ21TOGxE
OCtPcFh1YmY4cXFscDY3NTZjLzZIUmNMaVFKYTBtZUU0cFdNaW5HeG53NFpWWEwzcjNXOUxUemNp
RkoKQUFJaEdBWEw2L0xWYURRNk9EaFlhMm5Gd3JzZkpZLzgycGVyZ1J2cWFyczI4YitYSEhkektC
UUtyNzMybXZzLzdPL3ZIeHdjVkRtMApsaUEzQ2JrTDE1SXZmT2pMMWNBTnhkdXVUZnpqN3h4M2N5
QUpLeVRQQ1F0V011blAxY0FOZFhWWkV4UE91em1RQktEMUJhQmdWU3FWCkgvM29SL1V2WDQzSDQ4
UER3K3VlL3kvbXpORS92engrNVZHcEE1UXNGaWxOLzlOdkhCMnJubjNhTDc3NFlxMnJIbnFRbUFR
elh4cDkKNHQ5T3RYWVNqRWhwK2ljRlI4Y2lDVUx1bkZDMFJrZkYrSGpMOWFwcXNaZzFQZTNzV0NR
QmFIR3Rma3M2cnpQcHdNREFvVU9IMXAxVAp4ZzZtSC9oTXBNWGJsUkNpWk1XRy9ySzltRnYxbjl6
ZjM3L2hpb3AwT3ExeVhENlRtSVRrd2ZRREQ0Z1diMWRDQ05PS0RmMzMvMlRtClM5VnZrZ1NaYzhL
WTljQURyZDZ1aEJDbFVtUm9TQlNMcTc0TWt3U2d4YlYwd2ZJMGswYWowVU9IRGlVU3p0WEJRb2pw
azdNOTk4eVAKVGlSYThKcmd1dktWSGZzZVhuUzhPVGc0NlA1bHRQNm5hZ1NPckNTa3hqSzk5OHlQ
VENSYThKcmd1bktWSGZzKzUxek9UQklrekFuVApWaytQTlRvYWFjRnJndXZLNXlQNzlqbmZESE1T
Z05aMzEvSGp4LzBldy9vOHphVHhlUHpaWjUvdDZPaHd2Ri9NbWQvNHMvZVAvcVJ2CnNlTDhxTVV0
VmpxS1UrbXYvRlY4NVoxb05Icm56cDFjTHVmeXI2TFI2TTZkTzFXUHJjbWtKTUhNbDc3eForK1Av
dVMvRklLV2hFS2wKdzV4Sy8xZVNJR3RPS0ZyZitJWTRlalN5dUJpTWFyVmljVEZTTEZwZitjb2Zo
eDNhSkFDQjBLSm5zSmFYbCt1ZlNXdGRBcGcrT1J1SQphNEsxL0NDVG1IaHBwdnFkUkNMaC91alpj
K2ZPS1I1VXMwbEpRbW9zRTRocmdyVWtNNG5KYjEycWZvY2t1S3M1SjB3SDQ1cGdMVC80ClFXUmlZ
dFdGd2hBbUFRaUtGaTFZRXhNVGRjNmsrL2Z2WC9jU3dQRjlxY2VPdHRBdEdCb3orbmM3SEl1eDF2
MlByVmJQalo0RFpQTkoKT0xFdnRXKzBGZmNKZWpMNlAvK3pZekVXU2FpbDVweHczSHJzc2NCY0U2
eGxkTlM1R0N0c1NRQ0NvaFVMVnYzM3R0bS9mLy9hZmRjTAo3MzdVYzgvOGlkU0EvSkUxWGI2eVkr
eHdwdnFkbnA0ZTl5K3NGeTllVkR5bzV0bGtFbklYcnZYZU0zOWNpeVRrS2p2R0RzMVd2ME1TCjFy
WCtuTEJnOWZSWUowNEV1MXJaOHZuSTJOaXFkMEtWQkNCQVdxNWd6YzdPMWpPVFJxUFJyMy85NjJ0
bjBvbVhabm9UOTg1OXNtdmQKZnhWRXlmTzlqcE5ZZlgzT1I2bFV1M3o1OHZMeXN1SkJOY01ta3pE
NXJVdTlYLzZUakY1SmNKekVJZ25WYXM0SkUxWnZyNWliMDZGZAoyWkpKNTBtc2tDUUJDSmJXS2xq
NWZMNmVwMTdZbTRQVzNvNTU3R0Q2NFBmNmczNVowS0ZreFJ3bnNUYmNtKzMxa2JjdGFKTkpTQjVN
CkQ3M2FGL1RMZ2c2bUZYT2N4Q0lKSzJyT0NXUFd3WU9Cdnl6b1VDbzVUMktGSVFsQTRMUlF3VnBh
V3FybmlhMjFadExERDEwWW5kaGcKTFVKQUpjLzNWcjgwRENNZWo3c2NuOC9uMVE1SXNVMG00Wm1I
TG95UUJDRkU2Sk53K0xBMU9xcFZ0VnFSVEs1NnFYMFNnQ0JxbFlKVgpxVlJlZi8zMURROXphVmZC
M1MyNG9aSVZjMnduM0x0M3I4dng1OCtmVnp3aWhUYVpoR2NldWhEYzNZSWJNcTJZWXpzaFNYQnBW
OEhkCkxiaWhVc201blZEakpBQUIxU29GYTJwcXFwNlQyR3RuMG1MT0hOaWEwYmhkMlU2dC9sUGgv
bTNWTk0xS3BhSjJRTW8wbkFRelg5cTMKTmFOeHU3STVUdWlRaEhYbWhLSTFNS0J6dTdLRkp3bEFR
TFZFd2NwbXMvVXNZdDIvZi8vYWRyWHY0Y1cwdWY0RFhIV1NYbHkxeHNJdwpEUGQ5UXdHZFRCdE9n
cGt2N2Z0Y0lVVVMxZ2hiRW9wRmE5OCtrVTVyM3E2RUVJNm40T2lhQkNDNC9DOVlTMHRMYjd6eHhv
YUhyZDE5CmJiY3JuVFlNdWloWnNkblQyZXAzMWw0VHFiYTQ2SHpTVHV0ck9BbDJ1OUpwdzZBTDA0
cGwzcGl2Zm9ja3JMRGJsVTRiQmwyVVNwSFoKMlZWWENmVkxBaEJvL2hlc2VwWlpEQXdNck4xOVBk
U2JDMG03c3FWT3I3cGJvUHRrZXV2V0xjWERrYS94SlBRc2hLUmQyVWlDcUpXRQpvYkMwSzFzcXRl
cWxma2tBQXMzbmduWHg0c1VObDFuRTQvRzF0eW8rL05DRk1Gd1pySmJMci9yTHNYMzdkcGVEYjl5
NG9YZzRraldjCmhHY2V1aENHSzRQVkhJK2VJd20ydzRldE1Gd1pyS1ozRW9DZzg3TmdMUzB0dmZQ
T08rN0hSS1BSNGVGaHg1dDY3eG1zSmJPdzZxNU8KYTUrekZsd05KMEh2UFlPMWtJUjE1Z1N0OXd6
V2tsbDFnenl0a2dCb3dNK0NWYytGZ09IaFljZXNjZkpBS29UdFNnaVIvMTFIOVV2Mwp5ZlQ2OWV1
S2h5TlRZMGtZRzBxSHNGMEprckIyVGpnWnhuWWxoSERjM0VxbkpBQWE4SzFnWmJQWkRTOEVEQXdN
T1BZZVQ3dzBjM1JxClFOMm9XbG0rc3FQNnBmdDZpNnRYcnlvZWpqU05KV0h5VzVkR0ovVzhtK2lH
Y2lTaHlzU0VkZlJvR051VkVDSy9ldG1BTmtrQTlPQlAKd2FwVUtodnVFbHE3ekdMaDNZK2UrZjdu
Vkk0THpkWllFbklYcmozenZRMmVEWUpnYVhCT1dMQ2VlVWJsc0FDZ1VmNFVySFBuenJrZgpzUDZD
bXlkdmF2YWNRVFNZaFAvMnNXYlBHVVNEU1hoR2FQYWNRUURhOEtGZ0xTMHR6Y3pNdUI4ek9Eam9X
RS93eWtBcWJOc0d0ZGRZCkVvNFBwTUsyYlZCN0RjNEpyNFJ1MnlDQUFQR2hZTDM1NXB2dUI4VGpj
Y2NkYnFaUHpuNG5QYUJ3VFBCREEwbElqV1ZPa0FUdE5ESW4KVEZ2ZitRN3RDa0RyYW5iQnVuWHIx
b1pyTFFjSEI2dGZGblBtMExIUHFCd1VmTkJBRXN4OGFlam9BeW9IQlI4ME1pY1VyYUVobFdNQwpn
RTFyZHNHYW1wcHlQNkMvdjkreEYyYmtpY3NzdmRKUEkwbDQvTjlZZXFXZlJwSXd3dElyQUsydXFR
VnJ3NitxaG1FNGRnbE5uNXo5CjhZZGh2TmVSM2hwSVFtb3NNMDRTdE5QSW5EQnQvZmpIdENzQXJh
NnBCV3ZEcjZwcjE3R092bnlQeWhIQkg0MGs0Vy91VmpraStLT1IKSkl5cUhCQUFTTks4Z2xYUFY5
WHU3bFUzTnpwNUlCV3F4em1IUkFOSkdCdEtoK3B4emlIUnlKeHcwZ3JWNDV3QkJGZnpDdGJQZi81
ego5d01jRndLS09mUEVXNzBxUndSL2VFMkNtUytkbU9LK0RCcnlQQ2NVclJNblZBNElBT1JwVXNF
cWw4dnU5N2t4RE1PeERadTE3VnBxCkpBbXNiZGRSSTBsZ2JUdUE0R2hTd2ZyZ2d3L2NEMWo3VkJ6
V3RtdkpheEp5RjY2eHRsMUxudWVFQmRhMkF3aVNKaFdzOCtmUHUzeTYKOXF2cTJBdS9WandpK01O
ekVwNy9VUEdJNEEvUFNSaFRQQ0FBa0tvWkJldldyVnVtYWJvY3NIYjExZmdjYTI0MDVEVUpacjVF
RXJUawplVTRvV3VQamlzY0VBRkkxbzJCTlQwKzdmQnFOUnAxZlZROW5XSDJsSmM5Sk9EVEw2aXN0
ZVU3Q0dLdXZBQVNNOG9LMXZMeDgrZkpsCmx3TWNNMmt4WnliUHMzbFFRMTZUWU9aTEpFRkxudWVF
b3BWTUtoNFRBTWltdkdEZHVISEQvWUM5ZS9kV3Z6dzF3dWtyUFRXUUJFNWYKYWNsekVrNXgrZ3BB
OENndldCY3ZYblQ1MURBTXgxUEdrdi82b09JUndSK2VrL0IvLzFUeGlPQVB6MG5nOUJXQUFGSmJz
RGE4RnREWAoxMWY5Y3ZaME5sL1pvWFJJOElYWEpHVGVtTStSQkIxNW5oTm1yWHllMDFjQWdrZHR3
ZHJ3V29Eak9SaW52cmVvY2pqd2plY2t2RnBRCk9SejR4bk1TVGlrY0RBQ29vN1pnWGJseXhlWFRl
RHh1R0ViMU8rekoxeFZKZ00xekVyZzdBNEJnVWx1d3pwMDc1L0twWXlucnhFc3oKTEcvWGxhY2tU
SDdyRXN2YmRlVnRUcGl3V040T0lLQVVGcXlscFNYM0ErTHhlUFhMeVgrdXFCc01mT1E1Q1c5K3Fu
QTA4SS9uSkV3cQpIQXdBS0tXd1lOMjhlZFBsVThNd0hOY0Nwbjc5ZVhXRGdZOUlBbXlla3pDbGVF
QUFvSXpDZ3BYTlpsMCtkWHhWblQyZDVmcWdyandsCklmUEdQTmNIZGVWdFRwamwraUNBQUZOWXNH
Wm1abHcrN2VycXFuNDUrZmZzR3RPV3R5VDhyOThvSGc1ODR5MEpYQjhFRUdTcUNsYTUKWEhZL3dQ
RnROWlV4YWh5SVlDTUpzSGxPUWtyZFdBQkFPVlVGeXpSTmwwL1hMclk0WDJKYnZwNjhKaUZORWpU
bGVVNDR6L1ZCQUFIbQpUOEZ5M0V0dyt1U3NvbUhBZDU2U2tCckxLQjRPZk9OdFRwaTJGQThIQU5S
U1ZiRHkrYnpMcDdIWXFsWE1xYW1Tb21IQWQ5NlNNT24yCk54aUI1aTBKS2JXREFRRFZWQlVzOSsx
Q2pvZTVadWJ2VmpRTStJNGt3T1l0Q1p6S0JCQnd2cTNCcW42Wkw3R3VXVnNrQVRadlNYQTcKMndV
QUFhQ2tZRzI0WGNneG1jNTlza3ZGTU9BN3IwbklrQVJOZVo0VDVsamhEaURZbEJTc1NzWHRvVGVP
emRnTDczNmtZZ3hvQlo2UwprTHR3VGUxbzRCOXZjOElDSzl3QkJKNlNndVgrUUl4b05GcjlNdmYr
eHlyR2dGWkFFbUR6bG9TYzJzRUFRQk1vdkpON0xZN1ZyR3doCkRDMW5FdGhDR0ZiT0pLUjhHZ2NB
eUtPa1lMbHZGM0xzeHpaNTNKaStTQUpzM3BKQTB3WVFmRDZjd1hLdWExN2d5YjRoUlJKZ2N5YUIK
ZXpRQUNENGZDaFlBQUlEZWxCU3M2OWV2cS9peENCeVNBQnRKQUJBMlNnclcxYXRYVmZ4WUJBNUpn
STBrQUFnYi85ZGc1WC9YMGZ3eApvQldRQk5pNGpUc0EvYlJBd2Fyc2FQNFkwQW9jU2NpUmhMQmFV
N0RZVHdvZzhGamtEZ0FBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBCkFNbVVGS3lkTzNlNmZHcXVm
aERHenJ1dXFSZ0RXb0duSkhTUkJIMTVteE4yV29xSEF3REtLU2xZOTk5L3Y4dW5qc2swM3Y2eGlq
R2cKRlpBRTJMd2xJYTUyTUFEUUJENWNJaXlYeTlVdjR4MUx6UjhEV2dGSmdNMlpoTGhQNHdBQWVa
UVVyUHZ1dTgvbDA4WEZ4ZXFYUFhzcQpLc2FBVnVBdENaKy9vM2c0OEkyM0pQUW9IZzBBcUtla1lH
M2J0czNsMDBLaFVQMXk0T2xPRldOQUt5QUpzSGxMd29EYXdRQkFFeWdwCldOdTNiM2Y1MURHWjlq
N2RmYThvcVJnR2ZPY3BDVDNEdTJJa1FWUGU1b1RleUwzM3NzNGRRTEFwS1ZodGJXMHVuNXFtNlZq
VE90Q1oKVlRFTStJNGt3T1k1Q1FOcXh3TUFxcWtxV0xGWXpPV0FYQzVYL2ZMd0liNnQ2c2x6RWc0
ckhRNThReElBaEkycVhZUmYvT0lYWFQ2ZApuNSt2ZmpuMGFqOVhDWFhsS1FrSHZ0dkhWVUpkZVpz
VGhyaEtDQ0RZVkJXc2h4OSsyT1hUYkRicnVDSXdrcGhWTkJMNGl5VEE1amtKCkk0b0hCQUFxcVNw
WWhtRzRINUROcmxwdE0zS3FoNU5ZV3ZLY2hQRmVUbUpweVhNU1JnUW5zUUFFbDZxQ3RXWExsdDI3
ZDdzY2NPblMKcGVxWFcrTUdweTYwNURVSlJsZU1KR2pKODV5d05jSkpMQURCcGZCTzdvOCsrcWpM
cDZacFpqS1o2bmRHVHZYd1hFSXRlVTdDZUMvUApKZFNTNXlTTThGeENBRUdsc0dCMWRtNXczOGgw
T2wzOWNtdmNHUHRyL3F4cXlHc1NqSzdZMlAvNEQ1VWpnajg4endsYkkyTmpLZ2NFCkFNcW9mUmJo
NDQ4Lzd2S3BhWm96TXpQVjd3eTkydjlDVDdyVzhRZ3VyMGs0OE4yK0l5UkJSNTduaEtISUN5OXdF
Z3RBOEtndFdPNGIKczRVUTZYVGFzWFVvT1p0NEpEcGY2M2dFVkFOSkdKdE43Q1VKMm1sa1RraEdI
bm1FamdVZ1lOUVdyR2cwMnQvZjczSkF1VncrZS9hcwo0ODNVQjl0WmpLV1pCcE9RN1dReGxtWWFU
RUtLeFZnQUFrWnR3UkpDSkJJSjl3T3kyYXpqb3NEV3VESDVqMHZjdFVFekRTVEI2SXBOCi9wL2Zj
ZGNHelRReUoyeU5URTV5MXdZQVFhSzhZRzM0aFZVSWNmYnMyYlZQZ0U3OTVEZWN4OUpKWTBub0dk
NlZPbDNnUEpaT0dwd1QKZWlPY3h3SVFJTW9MbHFqakM2c1FZbng4dkZ3dVY3L1QrM1IzNWtvNzY3
RjAwbGdTZW9aM1pUNzhFOVpqNmFUQk9hRTNrc2tJMW1NQgpDSVJtRkt4b05EbzhQT3grVExsY1hq
dWZibzBiYzUvc1lsK2hOaHBPZ3RFVnkzeXlpMzJGMm1oOFR0Z2FtWnRqWHlHQUFHaEd3UkpDCmRI
ZDN4Mkl4OTJNS2hjTGErVlFJa1p4Tm5IbHhoc3VGZXRoTUVzWm1FeE12WGVKeW9SNDJOU2NrSTJm
T1dGd3VCTkRLbWxTd2hCQmYKKzlyWE5qeW0xbnc2OUdwLzVrcjd0eE1wVnI1cllETkpPUERkdnN5
SGYvSktJc1hLZHcxc2FrNFlpbVF5NHR2ZnRsajVEcUExTmE5Zwp0YmUzYjNoUlFBaFJLQlNTeWFS
amZhc1FZbXZjT0pFYXlDMVkxS3lnMjJRU2pLN1k4ZFJBTGllb1dVRzMyVGxoYStURWlVZ3VSODBD
CjBJcWFWN0NFRU4zZDNlNVBlN1dWeStYWFhudk44ZVJYbTEyelNsYnN6SXN6VDNaZW9ta0YxT2FU
WU5jczA0cE52SFJwZitjbG1sWkEKU1pnVHRrWk9uSWlVU3BFelo2d25uNlJwQVdnVmJVMytmUWNQ
SHJ4MjdWcXB0UEdmdzdmZmZqdVh5dzBPRGhxR3NmYlRvVmY3aDE0VgpRb2paMDluVTZVSXVIOGtz
eEhKTEhWZnY3SkErWnFnZ0t3a0h2dHQzNEx0Q0NKRjVZejUxdXBETENUc0plWklRRU5MbWhLSEkw
SkFRClFzek9XcW1VeU9WRUppTnlPWEgxYWtUNm1BRmdReEhMYXZZWHZrcWw4c01mL3JDZStWUUlF
WTFHQndZRyt2cjZWSThxaUU2Y09PSHkKNlN1dnZOSzBrVFNHSk1oQ0VtQUxlaElBblRUMUVxR3Ry
YTN0dWVlZXEvUGdjcm44OXR0dko1UEp1Yms1cGFOQzg1RUUyRWdDQVAzYwpkZno0OGViLzFpMWJ0
anp5eUNQdnZmZGVuY2VYeStWc05qczNOeGVKUk5yYjI2UFJxTkxoQlVVNjdYWmZxSUdCZ1dZTnBI
RWtRUXFTClFCSnNHaVFCMElZL0JVc0ljZmZkZHovNjZLTy8vT1V2YjkrK1hlYy9LWmZMVjY1Y3VY
VHAwdUxpNHAwN2Q2TFJhTWhuVlQwbVU1S3cKZVNTQkpOajBTQUtnaDJZdmNsLzF1OXZhbm52dXVm
clhYcXpJWnJQWmJGWUlZUmhHNXg5RW85RllMTGJ1NmxlME9KSUFHMGtBb0EwZgpGcms3TEM4dm56
bHo1bGUvK3BXL3c5QlA0QmEwa2dSRlNBSnNnVXNDRUdnK0xISjNqbURMbHFlZWVxcWUrdzFDYnlR
Qk5wSUFRQVArCkZ5eGJkM2Yzc1dQSE5udzJHYlJIRW1BakNRQUNyVlVLbGhDaXZiMTlaR1NFcjYx
UzFITjM3SlpGRWlRaUNiQUZPZ2xBRVBtMmk3Q1cKam82Ty92NytPM2Z1WEx0MnplK3hCTmhqanoz
VzBkSGg5eWcyaFNSSVFSSmcweUFKUUxDMFhNRVNRclMxdFQzNDRJTk1xWnR4OE9EQgpTQ1R3VHdn
aENadEhFbURUSXdsQWdQaS9pOUJkdVZ4Ky8vMzN6NTA3NS9kQWdtUjRlTGk3dTl2dlVVaEdFaHBB
RW1EVE1nbEFpMnYxCmdyV2lVQ2hjdUhDQm5kc2IycjE3OTFOUFBlWDNLQlFpQ1hVaUNiQnBud1Nn
TlFXbVlObVdsNWROMDh6bjgrbDAydXV0Q01NZ1BOOVQKU1lJN2tnQmJlSklBdEpxQUZheHF0Mjdk
K3UxdmYydmZ2dGwyL2ZyMXExZXYramdrdit6ZXZYdlBuajJmL2V4bnQyeHBvVzJoVFVNUwpWcEFF
a21BTGVSS0FWaERnZ2dVQUFOQ2ErSElEQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlB
QUFBa2xHd0FBQUFKS05nCkFRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVM
QUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUEKQUpDTWdnVUFBQ0FaQlFzQUFFQXlD
aFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZwpH
UVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJ
eUNCUUFBSUJrRkN3QUFRRElLCkZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFF
aEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0EKQUFESktGZ0FBQUNTVWJBQUFB
QWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdXWnZmQXdpZTI3ZHZmL3JwcHpkdjNoUkNaTE5aKzgx
cwpObXVhNXRxRGQrN2NlZi85OXdzaDdydnZ2bTNidG5WMmR0NTExMTF0YmZ4djF3RkpnSTBrQUZn
cllsbVczMk5vYWJkdjN5NFdpNlZTCktaZkwxWm94dlRJTTQ4dGYvbkk4SG8vRllsdTJjQkl4R0Vn
Q2JDUUJRRDBvV090WVdscTZlZk5tTnB1ZG1abFIvYnYyN05uenBTOTkKcWJPelUvVXZRZ05JQW13
a0FZQlhGS3pmVzE1ZXZuSGp4b2NmZnZqT08rLzRNb0Fubm5qaUMxLzRRalFhOWVXM1l3VkpnSTBr
QU5pTQpzQmNzZXc2OWVQSGk1Y3VYL1I2TEVFTDA5L2NuRWdtbTFPWWpDYkNSQkFCU2hMZGdGWXZG
bi8zc1p5MHloenIwOS9jLy92ampySHR0CkRwSUFHMGtBSUZIb0NsYTVYUDdnZ3cvT256OHZaV21x
VWs4Ly9mU3VYYnY4SG9XMlNBSnNKQUdBQ2lFcVdNVmk4YjMzM212Q0dsV0oKRE1ONDl0bG4yOXZi
L1I2SVZrZ0NiQ1FCZ0RxaEtGakZZbkZ5Y3ZMcTFhdCtENlJCZkcyVmhTVEFSaElBcUtaNXdRcjZO
THBpejU0OQpRME5EM0NDbllTUUJOcElBb0RtMExWaExTMHR2dnZtbW9tazBIbzlIbzlIT3pzNVlM
R1lZeHNyN2htRlV2eFJDbUtacG1tYTVYRjVjClhDd1VDb1ZDb2VGMUhvWmhmUE9iMzJTVnExY2tB
VGFTQUtDWk5DeFlsVXJsM0xsekV0ZFZHSWJSM2QwZGk4VTZPenZYVHBkZW1hYVoKeStYbTUrZFhI
cW5oYVNUTXAvVWpDYkNSQkFETnAxdkJtcCtmUDMzNjlPWi9qbUVZOFhpOHE2c3JIbzl2Y3Zhc3hU
VE5iRFo3NmRJbApyOTlmbjMvKytXM2J0cWtZa2s1SUFtd2tBWUF2OUNsWVMwdExyNy8rK2lZM1dz
Zmo4YjE3OTZxYlFOZVZ5V1RTNmJTbmtiLzg4c3Q4Clo2MkZKTUJHRWdENFNKT0NkZkhpeGMwOHpz
SXdqTDYrdnU3dTdtYk9vUTdwZEhwbVpxWmNMdGR6TU5jRmFpRUpzSkVFQVA0S2ZNSGEKekpmVWFE
VGEwOU96ZCs5ZXI4OVZYVml3OG5tUlNnblRGSm5NSDkvUDVVUStINmsrc3F2TGlzZEZQQzU2ZWtR
aUlYcDdJODZmVmNVMAp6Yk5uejlhNURzTXdqT2VmZjU0OVJDdjhTY0s3SCtWL2NUTTFhWnFsU0dZ
aHR2SiticWtqWDlsUmZXUlgyN1Y0KzhmeGpxV2V6OTlKCi9NWDIzcWU3WFg0c1NkZ01rdUJwNUFB
VUNYYkJhbmgxaFdFWWlVU2lwNmVuenVOVEtTdVYrbjJqbXB0ekswbnVZakZyWUVBY1Bpd08KSEtq
NVEyWm1aczZlUFZ2UFQ5dXpaODlYdi9yVmhnZWprK1lsSVpsSlRacXBqR0hldm52dWs4WnZSQlNM
bEFZNnM0Y1Bpd04vMjFmcgpHSkxRQUpKQUVvQVdFZFNDVmFsVXBxYW1HbmhxV1AzVDZFcXBTcWNi
YjFTMXhHTFd5SWc0Y2tSczNick9EeThVQ3VQajQvVmNHaGdlCkh1N3VkdnNHckwxbUpPRVBmMHJU
WnIxL2Zlc1hpNVJHRXJOSC9xRm5hM3lkUzFFa29YNGt3VVlTZ0JZUnlJTFYyQ1dBT3FmUnlVbHIK
Y2xKTVRvcFNTWDZ2Y25DcFdlVnllWHg4dkZBb2JQaERqaDA3RnRyblpxaE53dDljbW56ejA4a1BQ
MSt5WXU1SGJwN0xIMWVTVUErUwpVQzNNU1FCYVIvQUtWajZmUDNYcWxLZC9ZaGpHd3FjZTl3QUFH
RGhKUkVGVTRPQ2crN2U2MlZscmZGeWNPdFdNWHVYUTFXV2RQQ21HCmhocnNXSVpoSERseVJObm9X
cGVxSkp6T2puOS84VlNtcHdsL1RSMjYycTZkUEhadDZOVit4L3Nrd1IxSmNBaHRFb0NXRXJDQ05U
czcKKzlaYmIzbjZKLzM5L1lsRUlocU5ydnRwc1dpTmo0dXhNZWZpOU9ZN2NzUWFHMnV3WTRYd29v
RDhKT1RNOGFOelkvL3lwNDRseWMxMwpwRGM5OW91RTQwMlNVQXRKV0ZjSWt3QzBtaUFWckovKzlL
ZWVGbGpFNC9IQndjRmF1NEdLUlN1WkZHTmpQcHl5cW1YdlhtdDYybm01CnNGd3VKNVBKRGRkZWhP
b3VPSktUa0RPVHoyVEcwcjNOUDFGUnk5Njc1NmYvZmJ2akloRkpXSXNrdUFoVkVvQVdGSXlDNVhY
NWFqUWEKSFJ3Y3JMVzBZbUhCU2liOXVScTRvYTR1YTJMQ2VUZUhRcUh3Mm11dnVmL0Qvdjcrd2NG
QmxVTnJDWktUOE81SHlTTy85dVVhMElhNgoycTVOL084bHh4NStrckNDSkpBRW9NVUZvR0JWS3BV
Zi9laEg5UzlmamNmanc4UEQ2NTcvTHhhdDBWRXhQdDV5dmFwYUxHWk5UenM3ClZqMzd0Rjk4OGNW
YVZ6MzBJRE1KT1hQMHp5K1BYM2xVNmdBbGkwVkswLy8wRzhkZlZwSWdTSUlRZ2lRQUxhL1ZiMG5u
ZFNZZEdCZzQKZE9qUXVuUEsySmoxd0FPdDNxNkVFS1ZTWkdoSUZJdXJpbTkvZi8rR0t5clM2YlRL
Y2ZsTVpoSU9waC80VEtURi82WUtJVXBXYk9ndgoyNHU1VmYvSkpJRWsyRWdDME9KYXVtQjVta21q
MGVpaFE0Y1NDZWVhVUNIRTlMVFYwMk9OamtaYThKcmd1dkw1eUw1OXpqY0hCd2ZkCnY0elcvMVNO
d0pHV2hKT3pQZmZNajA0a1d2QkswTHJ5bFIzN0hsNTB2RWtTU0lJdHpFa0FXdDlkeDQ4Zjkzc002
L00wazhiajhXZWYKZmJham84UHhmckZvZmVNYjR1alJ5T0ppTUtyVmlzWEZTTEZvZmVVcmZ4eDJO
QnE5YytkT0xwZHorVmZSYUhUbnpwM0tCOWRjY3BLUQpNNy94Wis4Zi9VbmZZc1g1VVl0YnJIUVVw
OUpmK2F2NHlqc2tvWjZEU2NMS01mb2xBUWlFRmoyRHRieThYUDlNV3VzU3dQUjBNSzRKCjF2S0RI
MFFtSmxaZEtFd2tFdTZQbmoxMzdwemlRVFdibkNTY25BM0VsYUJhZnBCSlRMdzBVLzBPU1hCSEVs
Ym9sd1FnS0ZxMFlFMU0KVE5RNWsrN2Z2My9kU3dESGoxdVBQUmFZYTRLMWpJNDZGMk90K3g5YnJa
NGJQUWVJaENUc1N6MTJ0SVUyM2pkbTlPOTJPSmJna0lSYQpTSUtEWmtrQWdxSVZDMWI5OTdiWnYz
Ly8ybjNYQ3d0V1Q0OTE0a1N3cTVVdG40K01qYTE2cDZlbngvMEw2OFdMRjlXT3FZazJtNFIzClAr
cTVaLzVFYWtEK3lKb3VYOWt4ZGpoVC9RNUpXQmRKV0V1bkpBQUIwbklGYTNaMnRwNlpOQnFOZnYz
clgxODdrMDVNV0wyOVltNU8KaDNabFN5YWRKN0g2K3ZwY2pyOTgrZkx5OHJMaVFUWERacFB3MGt4
djR0NjVUM2FwR1owUGt1ZDdIYWN1U0VJMWtsQ0xOa2tBZ3FXMQpDbFkrbjYvbnFSZjI1cUMxdDJN
ZUc3TU9IZ3o4WlVHSFVzbDVFbXZEdmRsZUgzbmJnamFiaElQcGc5L3JEL3JGSUllU0ZYT2N1aUFK
CkswaUMrei9SSUFsQTRMUlF3VnBhV3FybmlhMjFadExEaDYzUlVhMnExWXBrY3RWTHd6RGk4YmpM
OGZsOFh1bDRWTnRzRWg2Nk1EcXgKd2FxVWdFcWU3NjErU1JKc0pFSDdKQUJCMUNvRnExS3B2UDc2
NnhzZTV0S3VncnRiY0VPbGtuTTc0ZDY5ZTEyT1AzLyt2T0lSS2JUWgpKRHgwSWJoN3hEWlVzbUtP
VFdRa2dTVFlORTRDRUZDdFVyQ21wcWJxT1ltOWRpWXRGcTJCQVozYmxjM3hOZDc5MjZwcG1wVktS
ZVZ3CkZHbzhDVGx6WUd0RzQ3K3B0bE9ybzA0U1NJSk40eVFBQWRVU0JTdWJ6ZGF6aUhYLy92MXIy
OVcrZlNLZDFyeGRDU0VjVDd3d0RNTjkKMzFCQUo5UEdrNUF6OXoyOG1EYlhmNVN2VHRLTHExYmJr
QVNTWU5NMUNVQncrVit3bHBhVzNuampqUTBQVzd2NzJtNVhPbTBZZEZFcQpSV1puVjEwbFhIdE5w
TnJpb3ZPcEdxMnY4U1RrekgwUEwrcTBUY3hGeVlyTm5zNVd2ME1TVnBBRWwrT0RtQVFnMFB3dldQ
VXNzeGdZCkdGaTcrM3BvS0N6dHlwWktyWHJwUHBuZXVuVkw2V0JVYUR3SnZibVEvRTIxcFU2dnVt
OGtTVmhCRWx3T0RtSVNnRUR6dVdCZHZIaHgKdzJVVzhYaDg3YTJLRHgrMnduQmxzSnJqZ1dQYnQy
OTNPZmpHalJ0S0J5TmQ0MGw0NkVJWXJnZFZ5K1ZYSlo4azJFaUNaa2tBZ3M3UApnclcwdFBUT08r
KzRIeE9OUm9lSGh4MXY2cjFuc0piTXFodmZpTFhQV1F1dXhwT2c5VTZ4V2pJTHErN3FSQklFU1JC
QzZKVUVRQU4rCkZxeDZMZ1FNRHc4N1pvMlRKOFBZcm9RUWpodlp1RSttMTY5ZlZ6c2FxUnBNd29G
VUNQK21DaUh5dit1b2Zra1NTSUpOcHlRQUd2Q3QKWUdXejJRMHZCQXdNRERqMkhrOU1XRWVQaHJG
ZENTSHlxeThIdUsrM3VIcjFxdUxoU05OZ0VsNmFPVG8xb0c1VXJTeGYyVkg5a2lTUQpCSnMyU1FE
MDRFL0JxbFFxRys0U1dydk1ZbUhCZXVZWmxjTkMweldZaEhjL2V1YjduMU01TGpRYlNRQ2dHWDhL
MXJsejU5d1BXSGVaCnhUUFBDTTJlTTRnR2svRGtUYzJlTGdlU0FFQXpQaFNzcGFXbG1aa1o5Mk1H
QndjZDZ3bGVlU1YwMndhMTEyQVNCbEpoMnl5bVBaSUEKUUQ4K0ZLdzMzM3pUL1lCNFBPNjR3ODMw
dFBXZDc5Q3VkTk5JRWs3T2ZpYzlvSEJNOEFOSkFLQ2ZaaGVzVzdkdWJialdjbkJ3c1BwbApzV2dO
RGFrY0UvelFTQkp5NXRDeHo2Z2NGSHhBRWdCb3Fka0ZhMnBxeXYyQS92NSt4MTZZa1JHV1htbW9r
U1E4Y1prRk4vb2hDUUMwCjFOU0N0ZUZYVmNNd0hMdUVwcWV0SC8rWWRxV2JScEp3Y3ZiSEg0YnhY
a2Q2SXdrQWROWFVnclhoVjlXMTYxaEhSMVVPQ0Q1cEpBa3YKMzZOeVJQQUhTUUNncStZVnJIcStx
blozZDFlL2MvS2tGYXJIT1lkRUkwazRrQXJWUTN4RGdpUUEwRmp6Q3RiUGYvNXo5d01jRndLSwpS
ZXZFQ1pVRGdrODhKeUZubm5pclYrV0k0QStTQUVCalRTcFk1WExaL1Q0M2htRTR0bUd6dGwxTGpT
U0JGYzA2SWdrQTlOYWtndlhCCkJ4KzRIN0QycVRpc2JkZVM1eVM4K3hFcm1yVkVFZ0RvclVrRjYv
ejU4eTZmcnYycU9qYW1lRUR3aWVja3ZQQnJ4U09DUDBnQ0FMMDEKbzJEZHVuWExORTJYQTlhdXZo
b2ZWendtK01GekVuTG0rQnpQUXRFUVNRQ2d2V1lVck9ucGFaZFBvOUhvMnROWHJMN1NrdWNrSE02
dwo1a1pMSkFHQTlwUVhyT1hsNWN1WEw3c2M0SmhKaTBVcm1WUThKdmpCY3hKeVp2SThXOFkwUkJJ
QWhJSHlnblhqeGczM0EvYnUzVnY5Cjh0UXBUbC9weVhNU1JqaHBvU2VTQUNBTWxCZXNpeGN2dW54
cUdJYmpLV09jdnRLVjV5VDg2NE9LUndSL2tBUUFZYUMyWUcxNExhQ3YKcjYvNjVleXNsYzl6K2tw
RG5wTndPcHV2N0ZBOEtQaUFKQUFJQ2JVRmE4TnJBWTduWUp3NnBYQXc4SkhuSkh4dlVlVnc0QnVT
QUNBawoxQmFzSzFldXVId2FqOGNOdzZoK2g3c3o2TXB6RXRpVHJ5bVNBQ0FrMUJhc2MrZk91WHpx
V01vNk1XR3h2RjFYM3BMdzBneUxtblZGCkVnQ0VoTUtDdGJTMDVINUFQQjZ2ZmprNXFXNHM4SlBu
SlB4elJlRm80QitTQUNBOEZCYXNtemR2dW54cUdJYmpXc0RVbExxeHdFK2UKay9Ecnp5c2VFZnhC
RWdDRWg4S0NsYzFtWFQ1MWZGV2RuZVg2b0xhOEplRjBscXRDdWlJSkFNSkRZY0dhbVpseCtiU3Jx
NnY2SmRjSApOZVl0Q1g5ZlVEd2MrSVlrQUFnUFZRV3JYQzY3SCtENHRwcEtLUm9JZk9ZNUNSbWp4
b0VJTnBJQUlGUlVGU3pUTkYwK1hidlk0dng1CnJnL3F5WE1TU216TDF4TkpBQkFxL2hRc3g3MEVw
NmN0UmNPQTc3d2w0ZVNzNHVIQU55UUJRS2lvS2xqNWZON2wwMWhzMWRwVnJnOXEKekZzU3BrcUto
d1Bma0FRQW9hS3FZTGx2RjNJOHpEV1RVVFFLK005YkV1YnZWandjK0lZa0FBZ1YzOVpnVmI5MC9X
YUxZUE9XaEJMcgptclZGRWdDRWlwS0N0ZUYySWNka09qZkhDbmM5ZVU3Q0o3dFVEZ2UrSVFrQXdr
Wkp3YXBVM0I1dzRkaU12YkRBQ25kdGVVdkN1eCtwCkhRMzhReElBaEkyU2d1WCtRSXhvTkZyOU1w
ZFRNUVMwQkc5SmVQOWp4Y09CYjBnQ2dMQlJlQ2YzV2h5cldkbENHRnJPSkxCeExLeEkKQWdEOUtD
bFk3dHVGSFB1eFhWZStJdGk4SllHSFVlcUxKQUFJR3gvT1lEbFdzM0tQaHRCeUptR0JKL3VHRkVr
QW9COGZDaFlBQUlEZQpsQlNzNjlldnEvaXhDQnlTQUJ0SkFCQTJTZ3JXMWF0WFZmeFlCQTVKZ0kw
a0FBZ2IvOWRnY1J2MzBISW00WGNkZm8wRS9pSUpBUFRUCkNnV0xIVU1oNVV4Q1pZZGZJNEcvU0FJ
QS9iRElIUUFBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpJcEtWZzdkKzUwK2RSYy9YQ2MKblRz
dEZXTkFLL0NXaEx1dUtSNE9mRU1TQUlTTmtvSjEvLzMzdTN6cW1FempjUlZEUUV2d2xvVDJqeFVQ
Qjc0aENRREN4b2RMaE9WeQp1Zm9sQlN1MG5Fbm9XUEpySlBBWFNRQ2dIeVVGNjc3NzduUDVkSEZ4
c2ZwbFQ0K0tJYUFsZUV2Q25vcmk0Y0EzSkFGQTJDZ3BXTnUyCmJYUDV0RkFvVkw4Y0dGQXhCTFFF
YjBsNHVsUHhjT0Fia2dBZ2JKUVVyTzNidDd0ODZwaE1lM3NqOTk3TE9uYzllVXZDMDkzM2lwTGkK
RWNFZkpBRkEyQ2dwV0cxdGJTNmZtcWJwV05QS1NTeGRlVTVDWjFieGlPQVBrZ0FnYkZRVnJGZ3M1
bkpBTHBlcmZubjRzSXBSd0grZQprM0NJYzVsNklna0F3a2JWTHNJdmZ2R0xMcC9Pejg5WHZ4d2E0
aXFodHJ3bDRkVityZzNwaWlRQUNCVlZCZXZoaHg5MitUU2J6VHF1CkNJeU1LQm9JZk9ZNUNZbFp4
U09DUDBnQ2dGQlJWYkFNdzNBL0lKdGR0Y1ppWkVSd0VrdExucE53cW9kVEYxb2lDUUJDUlZYQjJy
SmwKeSs3ZHUxME91SFRwVXZYTHJWc2puTVRTa3Vja3hBMU9YV2lKSkFBSUZZVjNjbi8wMFVkZFBq
Vk5NNVBKVkw4ek1zSnpDZlhrT1FtbgplbmdhblpaSUFvRHdVRml3T2pzM3VGdGdPcDJ1ZnJsMWEy
UnNUTjF3NEJ2UFNZZ2JZMy9ObjFVTmtRUUE0YUgyV1lTUFAvNjR5NmVtCmFjN016RlMvTXpRVWVl
RUZUbUpweUhNU1h1MS9vU2RkNjNnRUYwa0FFQkpxQzViN3htd2hSRHFkZG13ZFNpWWpqenhDeDlK
TkkwbVkKVFR3U25hOTFQQUtLSkFBSUNiVUZLeHFOOXZmM3V4eFFMcGZQbmozcmVET1ZZakdXYmhw
TXdnZmJXWUtqR1pJQUlDVFVGaXdoUkNLUgpjRDhnbTgwNkxncHMzUnFabk9TdURicHBKQWx4WS9J
Zmw5aXJyeG1TQUNBTWxCZXNEYit3Q2lIT25qMjc5Z25Rbk1mU1RJTkplTG83CjlaUGZjUFpDSnlR
QlFCZ29MMWlpamkrc1Fvang4ZkZ5dVZ6OVRtOXZKSk1Sck1mU1NZTkplTG83YzZXZFZUZzZJUWtB
dE5lTWdoV04KUm9lSGg5MlBLWmZMYStmVHJWc2pjM1BzSzlSSDQwbUlHM09mN0dJM21UWklBZ0R0
TmFOZ0NTRzZ1N3Rqc1pqN01ZVkNZZTE4S29SSQpKaU5uemxoY0x0VERwcEl3bXpqejRnd1hpZlJB
RWdEb3JVa0ZTd2p4dGE5OWJjTmphczJuUTBPUlRFWjgrOXNXSzk4MXNLa2t2TnFmCnVkTCs3VVNL
OWM0YUlBa0FOTmE4Z3RYZTNyN2hSUUVoUktGUVNDYVRqdld0UW9pdFd5TW5Ua1J5T1dwVzRHMDJD
WEhqUkdvZ3QyRHgKeHpYb1NBSUFqVFd2WUFraHVydTczWi8yYWl1WHk2Kzk5cHJqeWE4MnUyYVZT
cEV6WjZ3bm42UnBCWldFSk1TTkU2bUJraFU3OCtMTQprNTJYK1BzYVVDUUJnSzdhbXZ6N0RoNDhl
TzNhdFZKcDQwbnc3YmZmenVWeWc0T0RobUdzL1hSb0tESTBKSVFRczdOV0tpVnlPWkhKCmlGeE9Y
TDBha1Q1bXFDQXRDYS8yRDcwcWhCQ3pwN09wMDRWY1BwSlppT1dXT3E3ZTJTRjl6RkNCSkFEUVVz
U3ltbjBTcUZLcC9QQ0gKUDZ4blBoVkNSS1BSZ1lHQnZyNCsxYU1Lb2hNblRyaDgrc29ycnpSdEpJ
MGhDYktRQk5pQ25nUkFKMDI5UkdocmEydDc3cm5uNmp5NApYQzYvL2ZiYnlXUnlibTVPNmFqUWZD
UUJOcElBUUQ5M0hUOSt2UG0vZGN1V0xZODg4c2g3NzcxWDUvSGxjam1iemM3TnpVVWlrZmIyCjlt
ZzBxblI0UVpGT3U5ME5hR0Jnb0ZrRGFSeEprSUlra0FTYkJra0F0T0ZQd1JKQzNIMzMzWTgrK3Vn
dmYvbkwyN2R2MS9sUHl1WHkKbFN0WExsMjZ0TGk0ZU9mT25XZzBHdkpaVlkvSmxDUnNIa2tnQ1RZ
OWtnRG9vZG1MM0ZmOTdyYTI1NTU3cnY2MUZ5dXkyV3cybXhWQwpHSWJSK1FmUmFEUVdpNjI3K2hV
dGppVEFSaElBYU1PSFJlNE95OHZMWjg2YytkV3ZmdVh2TVBRVHVBV3RKRUVSa2dCYjRKSUFCSm9Q
Cmk5eWRJOWl5NWFtbm5xcm5mb1BRRzBtQWpTUUEwSUQvQmN2VzNkMTk3Tml4RFo5TkJ1MlJCTmhJ
QW9CQWE1V0NKWVJvYjI4ZkdSbmgKYTZzVTlkd2R1MldSQklsSUFteUJUZ0lRUkw3dElxeWxvNk9q
djcvL3pwMDcxNjVkODNzc0FmYllZNDkxZEhUNFBZcE5JUWxTa0FUWQpORWdDRUN3dFY3Q0VFRzF0
YlE4KytDQlQ2bVljUEhnd0VnbjhVNE5Jd3VhUkJOajBTQUlRSVA3dkluUlhMcGZmZi8vOWMrZk8r
VDJRCklCa2VIdTd1N3ZaN0ZKS1JoQWFRQk5pMFRBTFE0bHE5WUswb0ZBb1hMbHhnNS9hR2R1L2Uv
ZFJUVC9rOUNvVklRcDFJQW16YUp3Rm8KVFlFcFdMYmw1V1hUTlBQNWZEcWQ5bm9yd2pBSXovZFVr
dUNPSk1BV25pUUFyU1pnQmF2YXJWdTNmdnZiMzlxM2I3WmR2Mzc5NnRXcgpQZzdKTDd0Mzc5Nnpa
ODluUC92WkxWdGFhRnRvMDVDRUZTU0JKTmhDbmdTZ0ZRUzRZQUVBQUxRbXZ0d0FBQUJJUnNFQ0FB
Q1FqSUlGCkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FR
QUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUEKUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNB
QUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCawpGQ3dBQUFESktG
Z0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJR
c0FBQUF5U2hZCkFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJ
S0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUEKQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNB
WkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSQpSc0VDQUFD
UWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFB
U0ViQkFnQUFrSXlDCkJRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFB
QUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0EKQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdB
QUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQQpaQlFz
QUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtG
Z0FBZ0dRVUxBQUFBTWtvCldBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpC
UXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUEKQUFBa28yQUJBQUJJUnNFQ0FBQ1Fq
SUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQQpT
RWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFD
U2pZQUVBQUVoR3dRSUFBSkNNCmdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFB
Q1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUwKQUFCQU1nb1dBQUNBWkJRc0FB
QUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElLRmdB
QQpnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFz
QUFFQXlDaFlBQUlCa0ZDd0FBQURKCktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJ
RkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3cKQUFBQUpLTmdBUUFBU0Vi
QkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1Nq
WUFFQQpBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNT
VWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRCmpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFB
eVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0YKQ3dBQVFESUtGZ0FB
Z0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FB
RUF5Q2hZQQpBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZB
QUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBCnlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJB
Z0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlIKc0FBQUFDU2pZ
QUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1Vi
QUFBQUFrbzJBQgpBQUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlT
aFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBCmtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdH
UVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVoKQlFzQUFF
QXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFB
Z0dRVUxBQUJBTWdvVwpBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdB
QWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBCkFNa29XQUFBQUpKUnNBQUFBQ1Q3LzNW
WXpydmI3RGs2QUFBQUFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178623</attachid>
            <date>2012-12-10 13:36:46 -0800</date>
            <delta_ts>2012-12-10 14:29:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-49246-20121210133408.patch</filename>
            <type>text/plain</type>
            <size>57176</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzE5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDEyLTEyLTA1ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJj
ZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFu
dHRpIEtvaXZpc3RvLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGRvZXNuJ3QgYWN0
dWFsbHkgZW5hYmxlIGNhY2hpbmcgb2YgbWFpbiByZXNvdXJjZXMuIFRoYXQgd2lsbCBiZSBkb25l
IGluIGEgbGF0ZXIgcGF0Y2guCisgICAgICAgIFRoZSBNYWluUmVzb3VyY2VMb2FkZXIgYWN0dWFs
bHkgaGFzIGFuIHVuZGVybHlpbmcgU3VicmVzb3VyY2VMb2FkZXIgKHdpdGggdGhlIGNhY2hlIGxh
eWVyIGJldHdlZW4gdGhlbSkuCisgICAgICAgIEluIHNldmVyYWwgcGxhY2VzLCB0aGUgTWFpblJl
c291cmNlTG9hZGVyJ3MgU3VicmVzb3VyY2VMb2FkZXIgaXMgdHJlYXRlZCBhcyBzcGVjaWFsLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpcyBwcmltYXJpbHkgYSByZWZhY3Rvci4g
QSBjb3VwbGUgb2YgZXhwZWN0ZWQgcmVzdWx0cyBjaGFuZ2VkIHNsaWdodGx5LgorCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjpzZXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
dWJyZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6YWRkU3VicmVz
b3VyY2VMb2FkZXIpOiBCZWNhdXNlIHRoZSBTdWJyZXNvdXJjZUxvYWRlciB1bmRlcmx5aW5nIHRo
ZSBtYWluIHJlc291cmNlCisgICAgICAgICAgICBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nIGluIGNl
cnRhaW4gY2FzZXMsIHRyYWNrIGl0IHNlcGFyYXRlbHkgZnJvbSB0aGUgcmVhbCBTdWJyZXNvdXJj
ZUxvYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVtb3ZlU3VicmVz
b3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9h
ZGluZ01haW5SZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxv
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlY2VpdmVkRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjbGVhclJlc291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpmcmFt
ZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyTmF2
aWdhdGlvblBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJl
c291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlZGly
ZWN0UmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjp3aWxs
U2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250
aW51ZUFmdGVyQ29udGVudFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpkYXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OmhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdyk6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OnNldFNob3VsZEJ1ZmZlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpsb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
OjppZGVudGlmaWVyKToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgIChNYWluUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpkb2N1bWVudExvYWRlcik6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVl
c3QpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXI6OmRlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXI6OmNhbmNlbGxlZCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVI
b3N0OjptYXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluRXJyb3IpOgor
ICAgICAgICAqIGxvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXI6OnNjaGVkdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjp1bnNjaGVkdWxlKToKKwogMjAxMi0xMi0xMCAgR3VzdGF2byBOb3JvbmhhIFNp
bHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGRpc3RjaGVjayBmaXgu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHJldmlzaW9u
IDEzNzE5NykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE4MCwxMyArMTgwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c2V0
UmVxdWVzdChjb25zdCBSZQogICAgIC8vIHdvdWxkIGJlIGEgV2ViRm91bmRhdGlvbiBidWcgaWYg
aXQgc2VudCBhIHJlZGlyZWN0IGNhbGxiYWNrIGFmdGVyIGNvbW1pdC4KICAgICBBU1NFUlQoIW1f
Y29tbWl0dGVkKTsKIAotICAgIEtVUkwgb2xkVVJMID0gbV9yZXF1ZXN0LnVybCgpOwogICAgIG1f
cmVxdWVzdCA9IHJlcTsKLQotICAgIC8vIE9ubHkgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBpZiBVUkwgY2hhbmdlZCAoYW5kIGlzIG5vbi1udWxs
KS4KLSAgICAvLyBBbHNvLCBkb24ndCBzZW5kIGl0IHdoZW4gcmVwbGFjaW5nIHVucmVhY2hhYmxl
IFVSTHMgd2l0aCBhbHRlcm5hdGUgY29udGVudC4KLSAgICBpZiAoIWhhbmRsaW5nVW5yZWFjaGFi
bGVVUkwgJiYgIXJlcS51cmwoKS5pc051bGwoKSAmJiBvbGRVUkwgIT0gcmVxLnVybCgpKQotICAg
ICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWQoKTsKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6c2V0
TWFpbkRvY3VtZW50RXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC01ODUsNiAr
NTc5LDkgQEAgUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IERvY3VtZW50TG9hZAogICAgIGlm
ICghcmVzb3VyY2UgfHwgIXJlc291cmNlLT5pc0xvYWRlZCgpKQogICAgICAgICByZXR1cm4gYXJj
aGl2ZVJlc291cmNlRm9yVVJMKHVybCk7CiAKKyAgICBpZiAocmVzb3VyY2UtPnR5cGUoKSA9PSBD
YWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIC8v
IEZJWE1FOiBUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgbWFraW5nIHRoZSByZXNvdXJjZSBu
b24tcHVyZ2VhYmxlLgogICAgIC8vIEl0IHdvdWxkIGJlIGJldHRlciBpZiBpdCBkaWRuJ3QgaGF2
ZSB0aGlzIHBlcm1hbmVudCBlZmZlY3QuCiAgICAgaWYgKCFyZXNvdXJjZS0+bWFrZVB1cmdlYWJs
ZShmYWxzZSkpCkBAIC04MTEsMTEgKzgwOCwyMiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdG9w
TG9hZGluZ1N1YnJlc291CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmFkZFN1YnJlc291cmNlTG9h
ZGVyKFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCiB7CisgICAgLy8gVGhlIG1haW4gcmVzb3VyY2Un
cyB1bmRlcmx5aW5nIFJlc291cmNlTG9hZGVyIHdpbGwgYXNrIHRvIGJlIGFkZGVkIGhlcmUuCisg
ICAgLy8gSXQgaXMgbXVjaCBzaW1wbGVyIHRvIGhhbmRsZSBzcGVjaWFsIGNhc2luZyBvZiBtYWlu
IHJlc291cmNlIGxvYWRzIGlmIHdlIGRvbid0CisgICAgLy8gbGV0IGl0IGJlIGFkZGVkLiBJbiB0
aGUgbWFpbiByZXNvdXJjZSBsb2FkIGNhc2UsIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIo
KQorICAgIC8vIHdpbGwgc3RpbGwgYmUgbnVsbCBhdCB0aGlzIHBvaW50LCBidXQgbV9nb3RGaXJz
dEJ5dGUgc2hvdWxkIGJlIGZhbHNlIGhlcmUgaWYgYW5kIG9ubHkKKyAgICAvLyBpZiB3ZSBhcmUg
anVzdCBzdGFydGluZyB0aGUgbWFpbiByZXNvdXJjZSBsb2FkLgorICAgIGlmICghbV9nb3RGaXJz
dEJ5dGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoIW1fc3VicmVzb3VyY2VMb2FkZXJz
LmNvbnRhaW5zKGxvYWRlcikpOworICAgIEFTU0VSVCghbV9tYWluUmVzb3VyY2VMb2FkZXIgfHwg
bV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpICE9IGxvYWRlcik7CiAgICAgbV9zdWJyZXNv
dXJjZUxvYWRlcnMuYWRkKGxvYWRlcik7CiB9CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlbW92
ZVN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCiB7CisgICAgaWYgKCFt
X3N1YnJlc291cmNlTG9hZGVycy5jb250YWlucyhsb2FkZXIpKQorICAgICAgICByZXR1cm47CiAg
ICAgbV9zdWJyZXNvdXJjZUxvYWRlcnMucmVtb3ZlKGxvYWRlcik7CiAgICAgY2hlY2tMb2FkQ29t
cGxldGUoKTsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9mcmFtZSkKQEAgLTg4MSw2ICs4ODks
MTAgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlcwogCiAgICAgaWYg
KG1fcmVxdWVzdC5pc051bGwoKSkgewogICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlciA9IDA7
CisgICAgICAgIC8vIElmIHRoZSBsb2FkIHdhcyBhYm9ydGVkIGJ5IGNsZWFyaW5nIG1fcmVxdWVz
dCwgaXQncyBwb3NzaWJsZSB0aGUgQXBwbGljYXRpb25DYWNoZUhvc3QKKyAgICAgICAgLy8gaXMg
bm93IGluIGEgc3RhdGUgd2hlcmUgc3RhcnRpbmcgYW4gZW1wdHkgbG9hZCB3aWxsIGJlIGluY29u
c2lzdGVudC4gUmVwbGFjZSBpdCB3aXRoCisgICAgICAgIC8vIGEgbmV3IEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LgorICAgICAgICBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0ID0gYWRvcHRQdHIobmV3IEFw
cGxpY2F0aW9uQ2FjaGVIb3N0KHRoaXMpKTsKICAgICAgICAgbWF5YmVMb2FkRW1wdHkoKTsKICAg
ICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmNwcAkocmV2aXNpb24gMTM3MTk3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNv
dXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAKIAogI2luY2x1
ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9s
bGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9N
V2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTQ0LDE1ICs0NiwxNSBAQAogI2lu
Y2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiTG9hZGVyU3RyYXRl
Z3kuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgi
CisjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUu
aCIKLSNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTY2hlbWVS
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKKyNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgogCiAjaWYgUExBVEZPUk0oUVQpCkBAIC02MywxMyArNjUsMTEgQEAKICNpbmNs
dWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjZW5kaWYKIAotLy8gRklYTUU6IE1vcmUg
dGhhdCBpcyBpbiBjb21tb24gd2l0aCBTdWJyZXNvdXJjZUxvYWRlciBzaG91bGQgbW92ZSB1cCBp
bnRvIFJlc291cmNlTG9hZGVyLgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1haW5SZXNvdXJj
ZUxvYWRlcjo6TWFpblJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRl
cikKLSAgICA6IFJlc291cmNlTG9hZGVyKGRvY3VtZW50TG9hZGVyLT5mcmFtZSgpLCBSZXNvdXJj
ZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBB
bGxvd1N0b3JlZENyZWRlbnRpYWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxz
LCBTa2lwU2VjdXJpdHlDaGVjaykpCi0gICAgLCBtX2RhdGFMb2FkVGltZXIodGhpcywgJk1haW5S
ZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KQorICAgIDogbV9kYXRh
TG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZVN1YnN0aXR1dGVEYXRh
TG9hZE5vdykKKyAgICAsIG1fZG9jdW1lbnRMb2FkZXIoZG9jdW1lbnRMb2FkZXIpCiAgICAgLCBt
X2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KGZhbHNlKQogICAgICwgbV93YWl0aW5nRm9yQ29udGVu
dFBvbGljeShmYWxzZSkKICAgICAsIG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCgwLjApCkBAIC0x
MDIsMzQgKzEwMiwzMiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVjZWl2ZWRFcnJvcihj
CiAgICAgLy8gZG9jdW1lbnQgbG9hZGVycy4gQWxzbywgbWFpblJlY2VpdmVkRXJyb3IgZW5kcyB1
cCBjYWxsaW5nIGEgRnJhbWVMb2FkRGVsZWdhdGUgbWV0aG9kCiAgICAgLy8gYW5kIGRpZEZhaWxU
b0xvYWQgY2FsbHMgYSBSZXNvdXJjZUxvYWREZWxlZ2F0ZSBtZXRob2QgYW5kIHRoZXkgbmVlZCB0
byBiZSBpbiB0aGUgY29ycmVjdCBvcmRlci4KICAgICBkb2N1bWVudExvYWRlcigpLT5tYWluUmVj
ZWl2ZWRFcnJvcihlcnJvcik7Cit9CiAKLSAgICBpZiAoIWNhbmNlbGxlZCgpKSB7Ci0gICAgICAg
IEFTU0VSVCghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7Ci0gICAgICAgIGZyYW1lTG9hZGVyKCkt
Pm5vdGlmaWVyKCktPmRpZEZhaWxUb0xvYWQodGhpcywgZXJyb3IpOwotICAgICAgICAKLSAgICAg
ICAgcmVsZWFzZVJlc291cmNlcygpOwotICAgIH0KLQotICAgIEFTU0VSVChyZWFjaGVkVGVybWlu
YWxTdGF0ZSgpKTsKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwoKQoreworICAgIGNh
bmNlbChSZXNvdXJjZUVycm9yKCkpOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2ls
bENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpj
YW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CisgICAgUmVmUHRyPE1haW5SZXNv
dXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKKyAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJy
b3IgPSBlcnJvci5pc051bGwoKSA/IGZyYW1lTG9hZGVyKCktPmNhbmNlbGxlZEVycm9yKHJlcXVl
c3QoKSkgOiBlcnJvcjsKKwogICAgIG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7CiAKICAgICBpZiAo
bV93YWl0aW5nRm9yQ29udGVudFBvbGljeSkgewogICAgICAgICBmcmFtZUxvYWRlcigpLT5wb2xp
Y3lDaGVja2VyKCktPmNhbmNlbENoZWNrKCk7CiAgICAgICAgIEFTU0VSVChtX3dhaXRpbmdGb3JD
b250ZW50UG9saWN5KTsKICAgICAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNl
OwotICAgICAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gZGlkUmVjZWl2ZVJlc3BvbnNl
CisgICAgICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiByZXNwb25zZVJlY2VpdmVkCiAg
ICAgfQotfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkQ2FuY2VsKGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yKQotewotICAgIC8vIFdlIHNob3VsZCBub3RpZnkgdGhlIGZyYW1lIGxv
YWRlciBhZnRlciBmdWxseSBjYW5jZWxpbmcgdGhlIGxvYWQsIGJlY2F1c2UgaXQgY2FuIGRvIGNv
bXBsaWNhdGVkIHdvcmsKLSAgICAvLyBsaWtlIGNhbGxpbmcgRE9NV2luZG93OjpwcmludCgpLCBk
dXJpbmcgd2hpY2ggYSBoYWxmLWNhbmNlbGVkIGxvYWQgY291bGQgdHJ5IHRvIGZpbmlzaC4KLSAg
ICBkb2N1bWVudExvYWRlcigpLT5tYWluUmVjZWl2ZWRFcnJvcihlcnJvcik7CisgICAgaWYgKGxv
YWRlcigpKQorICAgICAgICBsb2FkZXIoKS0+Y2FuY2VsKHJlc291cmNlRXJyb3IpOworCisgICAg
Y2xlYXJSZXNvdXJjZSgpOworICAgIHJlY2VpdmVkRXJyb3IocmVzb3VyY2VFcnJvcik7CiAKICNp
ZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChtX2ZpbHRlcikgewpAQCAtMTM5LDYgKzEzNywy
NCBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkQ2FuY2VsKGNvbnN0CiAjZW5kaWYKIH0K
IAordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVzb3VyY2UoKQoreworICAgIGlmICht
X3Jlc291cmNlKSB7CisgICAgICAgIG1fcmVzb3VyY2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAg
ICAgICAgbV9yZXNvdXJjZSA9IDA7CisgICAgfQorfQorCitGcmFtZUxvYWRlciogTWFpblJlc291
cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZG9jdW1lbnRM
b2FkZXItPmZyYW1lTG9hZGVyKCk7Cit9CisKK2NvbnN0IFJlc291cmNlUmVxdWVzdCYgTWFpblJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNvdXJjZSA/
IG1fcmVzb3VyY2UtPnJlc291cmNlUmVxdWVzdCgpIDogbV9pbml0aWFsUmVxdWVzdDsKK30KKwog
UmVzb3VyY2VFcnJvciBNYWluUmVzb3VyY2VMb2FkZXI6OmludGVycnVwdGVkRm9yUG9saWN5Q2hh
bmdlRXJyb3IoKSBjb25zdAogewogICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+
aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihyZXF1ZXN0KCkpOwpAQCAtMTYzLDcgKzE3
OSw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyTmEKICAgICBlbHNl
IGlmIChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgewogICAgICAgICAvLyBBIHJlZGlyZWN0
IHJlc3VsdGVkIGluIGxvYWRpbmcgc3Vic3RpdHV0ZSBkYXRhLgogICAgICAgICBBU1NFUlQoZG9j
dW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPnJlZGlyZWN0Q291bnQoKSk7Ci0gICAgICAgIGhhbmRs
ZSgpLT5jYW5jZWwoKTsKKyAgICAgICAgY2xlYXJSZXNvdXJjZSgpOwogICAgICAgICBoYW5kbGVT
dWJzdGl0dXRlRGF0YUxvYWRTb29uKHJlcXVlc3QpOwogICAgIH0KIApAQCAtMTgzLDEwICsxOTks
MTUgQEAgYm9vbCBNYWluUmVzb3VyY2VMb2FkZXI6OmlzUG9zdE9yUmVkaXJlYwogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmFkZERhdGEoY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpCitQYXNzUmVmUHRyPFJlc291cmNl
QnVmZmVyPiBNYWluUmVzb3VyY2VMb2FkZXI6OnJlc291cmNlRGF0YSgpCiB7Ci0gICAgUmVzb3Vy
Y2VMb2FkZXI6OmFkZERhdGEoZGF0YSwgbGVuZ3RoLCBhbGxBdE9uY2UpOwotICAgIGRvY3VtZW50
TG9hZGVyKCktPnJlY2VpdmVkRGF0YShkYXRhLCBsZW5ndGgpOworICAgIHJldHVybiBtX3Jlc291
cmNlID8gbV9yZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSA6IDA7Cit9CisKK3ZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlKQoreworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1f
cmVzb3VyY2UpOworICAgIHdpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNl
KTsKIH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UpCkBAIC0yMzksOCArMjYwLDYgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxT
ZW5kUmVxdWVzdAogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVzb3VyY2VMb2FkZXI6OndpbGxT
ZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKLQogICAgIC8vIERvbid0
IHNldCB0aGlzIG9uIHRoZSBmaXJzdCByZXF1ZXN0LiBJdCBpcyBzZXQgd2hlbiB0aGUgbWFpbiBs
b2FkIHdhcyBzdGFydGVkLgogICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3UmVx
dWVzdCk7CiAKQEAgLTI3NywxNyArMjk2LDE2IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpj
b250aW51ZUFmdGVyQ28KICAgICAgICAgaWYgKCFmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+Y2Fu
U2hvd01JTUVUeXBlKG1pbWVUeXBlKSB8fCBpc1JlbW90ZVdlYkFyY2hpdmUpIHsKICAgICAgICAg
ICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2Fubm90U2hvd01JTUVUeXBlKHIp
OwogICAgICAgICAgICAgLy8gQ2hlY2sgcmVhY2hlZFRlcm1pbmFsU3RhdGUgc2luY2UgdGhlIGxv
YWQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNhbmNlbGVkIGluc2lkZSBvZiBfaGFuZGxlVW5pbXBs
ZW1lbnRhYmxlUG9saWN5V2l0aEVycm9yQ29kZTo6LgotICAgICAgICAgICAgaWYgKCFyZWFjaGVk
VGVybWluYWxTdGF0ZSgpKQotICAgICAgICAgICAgICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hh
bmdlKCk7CisgICAgICAgICAgICBzdG9wTG9hZGluZ0ZvclBvbGljeUNoYW5nZSgpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGNh
c2UgUG9saWN5RG93bmxvYWQ6IHsKLSAgICAgICAgLy8gbV9oYW5kbGUgY2FuIGJlIG51bGwsIGUu
Zy4gd2hlbiBsb2FkaW5nIGEgc3Vic3RpdHV0ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNh
Y2hlLgotICAgICAgICBpZiAoIW1faGFuZGxlKSB7Ci0gICAgICAgICAgICByZWNlaXZlZEVycm9y
KGNhbm5vdFNob3dVUkxFcnJvcigpKTsKKyAgICAgICAgLy8gbV9yZXNvdXJjZSBjYW4gYmUgbnVs
bCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBwbGljYXRp
b24gY2FjaGUuCisgICAgICAgIGlmICghbV9yZXNvdXJjZSkgeworICAgICAgICAgICAgcmVjZWl2
ZWRFcnJvcihmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+Y2Fubm90U2hvd1VSTEVycm9yKHJlcXVl
c3QoKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRoUG9saWN5RG93bmxvYWQobV9kb2N1bWVudExv
YWRlci0+ZnJhbWUoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKQEAgLTI5
Nyw3ICszMTUsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvCiAg
ICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gdGhpcy0+cmVxdWVzdCgpOwogICAgICAg
ICBmcmFtZUxvYWRlcigpLT5zZXRPcmlnaW5hbFVSTEZvckRvd25sb2FkUmVxdWVzdChyZXF1ZXN0
KTsKIAotICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZG93bmxvYWQobV9oYW5kbGUu
Z2V0KCksIHJlcXVlc3QsIHIpOworICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZG93
bmxvYWQobG9hZGVyKCktPmhhbmRsZSgpLCByZXF1ZXN0LCByKTsKIAogICAgICAgICAvLyBJdCBt
aWdodCBoYXZlIGdvbmUgbWlzc2luZwogICAgICAgICBpZiAoZnJhbWVMb2FkZXIoKSkKQEAgLTMy
OSwxMyArMzQ3LDkgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDbwog
ICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gd2UgbWF5IGhhdmUgY2FuY2VsbGVkIHRoaXMgbG9h
ZCBhcyBwYXJ0IG9mIHN3aXRjaGluZyB0byBmYWxsYmFjayBjb250ZW50Ci0gICAgaWYgKCFyZWFj
aGVkVGVybWluYWxTdGF0ZSgpKQotICAgICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKHIpOwotCi0gICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIgJiYgIW1fZG9jdW1lbnRMb2Fk
ZXItPmlzU3RvcHBpbmcoKSAmJiBtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgeworICAgIGlm
ICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpICYmIG1fc3Vic3RpdHV0ZURhdGEuaXNW
YWxpZCgpKSB7CiAgICAgICAgIGlmIChtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgp
KQotICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEobV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCkt
PmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgbV9zdWJzdGl0dXRl
RGF0YS5jb250ZW50KCktPnNpemUoKSwgdHJ1ZSk7CisgICAgICAgICAgICBkYXRhUmVjZWl2ZWQo
MCwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5j
b250ZW50KCktPnNpemUoKSk7CiAgICAgICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9w
cGluZygpKQogICAgICAgICAgICAgZGlkRmluaXNoTG9hZGluZygwKTsKICAgICB9CkBAIC0zNTIs
MTEgKzM2NiwxMiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvCiAg
ICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwogICAgIGlmICghbV9kb2N1bWVu
dExvYWRlci0+aXNTdG9wcGluZygpKQogICAgICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGlj
eShwb2xpY3ksIG1fcmVzcG9uc2UpOwotICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiBk
aWRSZWNlaXZlUmVzcG9uc2UKKyAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gcmVzcG9u
c2VSZWNlaXZlZAogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6
cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHIpCiB7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgbV9yZXNvdXJjZSA9
PSByZXNvdXJjZSk7CiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVI
b3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKHJlcXVlc3QoKSwgcikpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMzgyLDcgKzM5Nyw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlUmVzcG8KIAogICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50
KSB7CiAgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldHVwRm9yUmVwbGFjZSgpOwotICAgICAg
ICBjbGVhclJlc291cmNlRGF0YSgpOworICAgICAgICBtX3Jlc291cmNlLT5jbGVhcigpOwogICAg
IH0KICAgICAKICAgICBpZiAoci5pc011bHRpcGFydCgpKQpAQCAtMzk4LDcgKzQxMyw3IEBAIHZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG8KIAogICAgIEFTU0VSVCghbV93
YWl0aW5nRm9yQ29udGVudFBvbGljeSk7CiAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9
IHRydWU7Ci0gICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRpbnVlQWZ0ZXJD
b250ZW50UG9saWN5IGFuZCBkaWRDYW5jZWwKKyAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVy
ZWYgaW4gY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kgYW5kIGNhbmNlbAogCiAgICAgLy8gQWx3
YXlzIHNob3cgY29udGVudCB3aXRoIHZhbGlkIHN1YnN0aXR1dGUgZGF0YS4KICAgICBpZiAobV9k
b2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5pc1ZhbGlkKCkpIHsKQEAgLTQyMywxMSAr
NDM4LDExIEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG8KICAgICBm
cmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3Bv
bnNlLCBjYWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3ksIHRoaXMpOwogfQogCi12b2lkIE1h
aW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3ZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
LCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChkYXRhKTsKICAg
ICBBU1NFUlQobGVuZ3RoICE9IDApOwotCisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVz
b3VyY2UgPT0gbV9yZXNvdXJjZSk7CiAgICAgQVNTRVJUKCFtX3Jlc3BvbnNlLmlzTnVsbCgpKTsK
IAogI2lmIFVTRShDRk5FVFdPUkspIHx8IFBMQVRGT1JNKE1BQykKQEAgLTQ1MiwxNiArNDY3LDE1
IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSgKICAgICAgICAgLy8g
SWYgd2UgZG9uJ3QgaGF2ZSBibG9ja2VkRGF0YSwgdGhhdCBtZWFucyB3ZSdyZSBzdGlsbCBhY2N1
bXVsYXRpbmcgZGF0YQogICAgICAgICBpZiAoIWJsb2NrZWREYXRhKSB7CiAgICAgICAgICAgICAv
LyBUcmFuc2l0aW9uIHRvIGNvbW1pdHRlZCBzdGF0ZS4KLSAgICAgICAgICAgIFJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlRGF0YSgiIiwgMCwgMCwgZmFsc2UpOworICAgICAgICAgICAgZG9jdW1l
bnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKDAsIDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKICAgICAgICAgZGF0YSA9IGJsb2NrZWREYXRhOwotICAgICAgICBlbmNvZGVkRGF0
YUxlbmd0aCA9IC0xOwogICAgIH0KICNlbmRpZgogCi0gICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBw
bGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0
aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7CisgICAgZG9jdW1lbnRMb2FkZXIoKS0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxl
bmd0aCwgLTEsIGZhbHNlKTsKIAogICAgIC8vIFRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2Fu
IGRvIGFueXRoaW5nIGluY2x1ZGluZyBwb3NzaWJseSByZW1vdmluZyB0aGUgbGFzdAogICAgIC8v
IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25lIGV4YW1wbGUgb2YgdGhpcyBpcyAzMjY2MjE2
LgpAQCAtNDY5LDcgKzQ4Myw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YSgKIAogICAgIG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOwogCi0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGRhdGEs
IGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7CisgICAgZG9jdW1lbnRMb2Fk
ZXIoKS0+cmVjZWl2ZWREYXRhKGRhdGEsIGxlbmd0aCk7CiAKICNpZiBQTEFURk9STShNQUMpICYm
ICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4
MAogICAgIGlmIChXZWJGaWx0ZXJFdmFsdWF0b3IgKmZpbHRlciA9IG1fZmlsdGVyKSB7CkBAIC00
OTAsNyArNTA0LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbgog
ICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJl
IGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBkZWZlcnJlZC4KICAgICAvLyBTZWUgPHJk
YXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRldGFpbHMuCiAjaWYgIVVTRShDRikKLSAg
ICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSB8fCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omlz
RGVidWdnZXJQYXVzZWQobV9mcmFtZS5nZXQoKSkpOworICAgIEFTU0VSVCghZGVmZXJzTG9hZGlu
ZygpIHx8IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNEZWJ1Z2dlclBhdXNlZChtX2RvY3Vt
ZW50TG9hZGVyLT5mcmFtZSgpKSk7CiAjZW5kaWYKIAogICAgIC8vIFRoZSBhZGRpdGlvbmFsIHBy
b2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5nIGluY2x1ZGluZyBwb3NzaWJseSByZW1vdmluZyB0aGUg
bGFzdApAQCAtNTA2LDcgKzUyMCw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5p
c2hMb2FkaW4KICAgICAgICAgLy8gUmVtb3ZlIHRoaXMtPm1fZmlsdGVyIGVhcmx5IHNvIGRpZFJl
Y2VpdmVEYXRhIGRvZXNuJ3Qgc2VlIGl0LgogICAgICAgICBtX2ZpbHRlciA9IDA7CiAgICAgICAg
IGlmIChkYXRhKQotICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCAtMSwg
ZmFsc2UpOworICAgICAgICAgICAgZGF0YVJlY2VpdmVkKG1fcmVzb3VyY2UuZ2V0KCksIGRhdGEs
IGxlbmd0aCk7CiAgICAgICAgIHdrRmlsdGVyUmVsZWFzZShmaWx0ZXIpOwogICAgIH0KICNlbmRp
ZgpAQCAtNTE2LDEzICs1MzAsMTggQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlz
aExvYWRpbgogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPnNldFJlc3BvbnNlRW5k
KGZpbmlzaFRpbWUgPyBmaW5pc2hUaW1lIDogKG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA/IG1f
dGltZU9mTGFzdERhdGFSZWNlaXZlZCA6IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKSk7
CiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+ZmluaXNoZWRMb2FkaW5nKCk7Ci0gICAgUmVzb3VyY2VM
b2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7CiAKICAgICBkbC0+YXBwbGljYXRp
b25DYWNoZUhvc3QoKS0+ZmluaXNoZWRMb2FkaW5nTWFpblJlc291cmNlKCk7CiB9CiAKLXZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQor
dm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSkKIHsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCBtX3Jlc291cmNlID09IHJl
c291cmNlKTsKKyAgICBpZiAoIW1fcmVzb3VyY2UgfHwgKCFtX3Jlc291cmNlLT5lcnJvck9jY3Vy
cmVkKCkgJiYgIW1fcmVzb3VyY2UtPndhc0NhbmNlbGVkKCkpKSB7CisgICAgICAgIGRpZEZpbmlz
aExvYWRpbmcobV9yZXNvdXJjZS0+bG9hZEZpbmlzaFRpbWUoKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChtX2ZpbHRlcikgewogICAg
ICAgICB3a0ZpbHRlclJlbGVhc2UobV9maWx0ZXIpOwpAQCAtNTMwLDYgKzU0OSw3IEBAIHZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFIKICAgICB9CiAjZW5kaWYKIAorICAg
IGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yID0gbV9yZXNvdXJjZS0+cmVzb3VyY2VFcnJvcigp
OwogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXli
ZUxvYWRGYWxsYmFja0Zvck1haW5FcnJvcihyZXF1ZXN0KCksIGVycm9yKSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC01NDUsNyArNTY1LDYgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZh
aWwoY29uc3QgUgogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xh
c3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpM
b2FkZXIpOwotICAgIFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmpl
Y3RJbmZvKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2luaXRpYWxSZXF1ZXN0KTsKICAgICBpbmZv
LmFkZE1lbWJlcihtX3N1YnN0aXR1dGVEYXRhKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2RhdGFM
b2FkVGltZXIpOwpAQCAtNTY0LDcgKzU4Myw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpo
YW5kbGVTdWJzdGl0dXQKICAgICBtX2luaXRpYWxSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7
CiAgICAgICAgIAogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UodXJsLCBtX3N1YnN0aXR1
dGVEYXRhLm1pbWVUeXBlKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCksIG1f
c3Vic3RpdHV0ZURhdGEudGV4dEVuY29kaW5nKCksICIiKTsKLSAgICBkaWRSZWNlaXZlUmVzcG9u
c2UocmVzcG9uc2UpOworICAgIHJlc3BvbnNlUmVjZWl2ZWQoMCwgcmVzcG9uc2UpOwogfQogCiB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c3RhcnREYXRhTG9hZFRpbWVyKCkKQEAgLTU4NywyOSAr
NjA2LDggQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZVN1YnN0aXR1dAogICAgICAg
ICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3coMCk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNl
TG9hZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikKLXsKLSAgICBBU1NFUlQoIW1faGFu
ZGxlKTsKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0KLSNpZiBVU0UoUExBVEZPUk1f
U1RSQVRFR0lFUykKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+
cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPmFkZE1haW5SZXNvdXJjZUxvYWQodGhpcyk7Ci0jZWxz
ZQotICAgIHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5hZGRNYWluUmVzb3VyY2VMb2FkKHRoaXMp
OwotI2VuZGlmCi0KLSAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpCi0gICAgICAg
IGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocik7Ci0gICAgZWxzZQotICAgICAgICBtX2hh
bmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtp
bmdDb250ZXh0KCksIHIsIHRoaXMsIGZhbHNlLCB0cnVlKTsKLQotICAgIHJldHVybjsKLX0KLQot
dm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByLCBj
b25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCit2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGluaXRpYWxSZXF1ZXN0LCBjb25zdCBT
dWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCiB7Ci0gICAgQVNTRVJUKCFtX2hhbmRsZSk7
Ci0KICAgICAvLyBJdCBhcHBlYXJzIHRoYXQgaXQgaXMgcG9zc2libGUgZm9yIHRoaXMgbG9hZCB0
byBiZSBjYW5jZWxsZWQgYW5kIGRlcmVmZW5jZWQgYnkgdGhlIERvY3VtZW50TG9hZGVyCiAgICAg
Ly8gaW4gd2lsbFNlbmRSZXF1ZXN0KCkgaWYgbG9hZE5vdygpIGlzIGNhbGxlZC4KICAgICBSZWZQ
dHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwpAQCAtNjE5LDcgKzYxNyw3IEBA
IHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc28KICAgICBBU1NFUlQoZG9j
dW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKTsKICAgICBBU1NFUlQo
IWRvY3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5mZXRjaFN0YXJ0KCkpOwogICAgIGRvY3VtZW50
TG9hZGVyKCktPnRpbWluZygpLT5tYXJrRmV0Y2hTdGFydCgpOwotICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KHIpOworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGluaXRpYWxSZXF1ZXN0
KTsKIAogICAgIC8vIFNlbmQgdGhpcyBzeW50aGV0aWMgZGVsZWdhdGUgY2FsbGJhY2sgc2luY2Ug
Y2xpZW50cyBleHBlY3QgaXQsIGFuZAogICAgIC8vIHdlIG5vIGxvbmdlciBzZW5kIHRoZSBjYWxs
YmFjayBmcm9tIHdpdGhpbiBOU1VSTENvbm5lY3Rpb24gZm9yCkBAIC02MjcsMzcgKzYyNSw2NiBA
QCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvCiAgICAgd2lsbFNlbmRS
ZXF1ZXN0KHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7CiAgICAgQVNTRVJUKCFkZWxldGlv
bkhhc0JlZ3VuKCkpOwogCi0gICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzQ4MDEwNjY+Ci0gICAgLy8g
d2lsbFNlbmRSZXF1ZXN0KCkgaXMgbGlhYmxlIHRvIG1ha2UgdGhlIGNhbGwgdG8gZnJhbWVMb2Fk
ZXIoKSByZXR1cm4gbnVsbCwgc28gd2UgbmVlZCB0byBjaGVjayB0aGF0IGhlcmUKLSAgICBpZiAo
IWZyYW1lTG9hZGVyKCkgfHwgcmVxdWVzdC5pc051bGwoKSkgewotICAgICAgICBpZiAoIXJlYWNo
ZWRUZXJtaW5hbFN0YXRlKCkpCi0gICAgICAgICAgICByZWxlYXNlUmVzb3VyY2VzKCk7CisgICAg
Ly8gd2lsbFNlbmRSZXF1ZXN0KCkgbWF5IGxlYWQgdG8gb3VyIERvY3VtZW50TG9hZGVyIGJlaW5n
IGRldGFjaGVkIG9yIGNhbmNlbGxpbmcgdGhlIGxvYWQgdmlhIG51bGxpbmcgdGhlIFJlc291cmNl
UmVxdWVzdC4KKyAgICBpZiAoIWRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkgfHwgcmVxdWVzdC5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIGRvY3VtZW50TG9hZGVyKCkt
PmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZE1haW5SZXNvdXJjZShyZXF1ZXN0LCBt
X3N1YnN0aXR1dGVEYXRhKTsKIAotICAgIGlmIChkZWZlcnNMb2FkaW5nKCkpCi0gICAgICAgIG1f
aW5pdGlhbFJlcXVlc3QgPSByZXF1ZXN0OwotICAgIGVsc2UKLSAgICAgICAgbG9hZE5vdyhyZXF1
ZXN0KTsKKyAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaGFu
ZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29vbihyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVzb3VyY2VMb2FkZXJPcHRpb25zLCBtYWlu
UmVzb3VyY2VMb2FkT3B0aW9ucywKKyAgICAgICAgKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVu
dCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NP
cmlnaW5DcmVkZW50aWFscywgU2tpcFNlY3VyaXR5Q2hlY2spKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QsIG1haW5SZXNvdXJjZUxvYWRP
cHRpb25zKTsKKyAgICBtX3Jlc291cmNlID0gZG9jdW1lbnRMb2FkZXIoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+cmVxdWVzdE1haW5SZXNvdXJjZShjYWNoZWRSZXNvdXJjZVJlcXVlc3QpOwor
ICAgIGlmICghbV9yZXNvdXJjZSkgeworICAgICAgICBkb2N1bWVudExvYWRlcigpLT5zZXRSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3Jl
c291cmNlLT5hZGRDbGllbnQodGhpcyk7CisKKyAgICAvLyBXZSBuZWVkIHRvIHdhaXQgdW50aWwg
YWZ0ZXIgcmVxdWVzdE1haW5SZXNvdXJjZSgpIGlzIGNhbGxlZCB0byBzZXRSZXF1ZXN0KCksIGJl
Y2F1c2UgdGhlcmUgYXJlIGEgYnVuY2ggb2YgaGVhZGVycyBzZXQgd2hlbgorICAgIC8vIHRoZSB1
bmRlcmx5aW5nIFJlc291cmNlTG9hZGVyIGlzIGNyZWF0ZWQsIGFuZCBEb2N1bWVudExvYWRlcjo6
bV9yZXF1ZXN0IG5lZWRzIHRvIGluY2x1ZGUgdGhvc2UuIEhvd2V2ZXIsIHRoZSBjYWNoZSB3aWxs
CisgICAgLy8gc3RyaXAgdGhlIGZyYWdtZW50IGlkZW50aWZpZXIgKHdoaWNoIERvY3VtZW50TG9h
ZGVyOjptX3JlcXVlc3Qgc2hvdWxkIGFsc28gaW5jbHVkZSksIHNvIGFkZCB0aGF0IGJhY2sgaW4u
CisgICAgaWYgKGxvYWRlcigpKQorICAgICAgICByZXF1ZXN0ID0gbG9hZGVyKCktPm9yaWdpbmFs
UmVxdWVzdCgpOworICAgIGlmIChpbml0aWFsUmVxdWVzdC51cmwoKSAhPSByZXF1ZXN0LnVybCgp
KSB7CisgICAgICAgIEFTU0VSVChlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGluaXRp
YWxSZXF1ZXN0LnVybCgpLCByZXF1ZXN0LnVybCgpKSk7CisgICAgICAgIHJlcXVlc3Quc2V0VVJM
KGluaXRpYWxSZXF1ZXN0LnVybCgpKTsKKyAgICB9CisgICAgZG9jdW1lbnRMb2FkZXIoKS0+c2V0
UmVxdWVzdChyZXF1ZXN0KTsKIH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnNldERlZmVy
c0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xv
YWRpbmcoZGVmZXJzKTsKKyAgICBpZiAobG9hZGVyKCkpCisgICAgICAgIGxvYWRlcigpLT5zZXRE
ZWZlcnNMb2FkaW5nKGRlZmVycyk7Cit9CiAKLSAgICBpZiAoZGVmZXJzKSB7Ci0gICAgICAgIGlm
IChtX2RhdGFMb2FkVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fZGF0YUxvYWRUaW1l
ci5zdG9wKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1faW5pdGlhbFJlcXVlc3QuaXNO
dWxsKCkpCi0gICAgICAgICAgICByZXR1cm47Citib29sIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGVm
ZXJzTG9hZGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGxvYWRlcigpID8gbG9hZGVyKCktPmRl
ZmVyc0xvYWRpbmcoKSA6IGZhbHNlOworfQogCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCBpbml0
aWFsUmVxdWVzdChtX2luaXRpYWxSZXF1ZXN0KTsKLSAgICAgICAgbV9pbml0aWFsUmVxdWVzdCA9
IFJlc291cmNlUmVxdWVzdCgpOwotICAgICAgICBsb2FkTm93KGluaXRpYWxSZXF1ZXN0KTsKLSAg
ICB9Cit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVm
ZmVyaW5nUG9saWN5IHNob3VsZEJ1ZmZlckRhdGEpCit7CisgICAgQVNTRVJUKG1fcmVzb3VyY2Up
OworICAgIG1fcmVzb3VyY2UtPnNldFNob3VsZEJ1ZmZlckRhdGEoc2hvdWxkQnVmZmVyRGF0YSk7
Cit9CisKK1Jlc291cmNlTG9hZGVyKiBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWRlcigpIGNvbnN0
Cit7IAorICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+bG9hZGVyKCkgOiAwOwor
fQorCit1bnNpZ25lZCBsb25nIE1haW5SZXNvdXJjZUxvYWRlcjo6aWRlbnRpZmllcigpIGNvbnN0
Cit7CisgICAgaWYgKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciA9IGxvYWRlcigpKQor
ICAgICAgICByZXR1cm4gcmVzb3VyY2VMb2FkZXItPmlkZW50aWZpZXIoKTsKKyAgICByZXR1cm4g
MDsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuaAkocmV2aXNpb24gMTM3MTk3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNv
dXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaWZuZGVmIE1h
aW5SZXNvdXJjZUxvYWRlcl9oCiAjZGVmaW5lIE1haW5SZXNvdXJjZUxvYWRlcl9oCiAKKyNpbmNs
dWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxl
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKQEAgLTQ5LDIxICs1MSwyMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGb3JtU3RhdGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiAKLWNsYXNzIE1haW5SZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZXNvdXJjZUxvYWRlciB7
CitjbGFzcyBNYWluUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNYWluUmVzb3Vy
Y2VMb2FkZXI+LCBwdWJsaWMgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1haW5SZXNv
dXJjZUxvYWRlcj4gY3JlYXRlKERvY3VtZW50TG9hZGVyKik7CiAgICAgdmlydHVhbCB+TWFpblJl
c291cmNlTG9hZGVyKCk7CiAKICAgICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YShjb25zdCBj
aGFyKiwgaW50LCBib29sIGFsbEF0T25jZSkgT1ZFUlJJREU7CisgICAgdm9pZCBjYW5jZWwoKTsK
KyAgICB2b2lkIGNhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgUmVzb3VyY2VMb2Fk
ZXIqIGxvYWRlcigpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IHJlc291
cmNlRGF0YSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCkgT1ZF
UlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFy
KiwgaW50LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGlt
ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYpIE9WRVJSSURFOworICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKKyAgICB2b2lk
IHNldFNob3VsZEJ1ZmZlckRhdGEoRGF0YUJ1ZmZlcmluZ1BvbGljeSk7CiAKICNpZiBIQVZFKFJV
TkxPT1BfVElNRVIpCiAgICAgdHlwZWRlZiBSdW5Mb29wVGltZXI8TWFpblJlc291cmNlTG9hZGVy
PiBNYWluUmVzb3VyY2VMb2FkZXJUaW1lcjsKQEAgLTcxLDE4ICs3MiwyMSBAQCBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBUaW1lcjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNvdXJjZUxvYWRlclRp
bWVyOwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBjb25zdDsKICAg
ICBib29sIGlzTG9hZGluZ011bHRpcGFydENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2xvYWRp
bmdNdWx0aXBhcnRDb250ZW50OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworICAgIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IE1haW5SZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciopOwogCi0gICAgdmlydHVhbCB2
b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotCi0gICAg
dm9pZCBsb2FkTm93KFJlc291cmNlUmVxdWVzdCYpOworICAgIHZpcnR1YWwgdm9pZCByZWRpcmVj
dFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVk
KENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgZGF0YUxlbmd0aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZp
bmlzaGVkKENhY2hlZFJlc291cmNlKikgT1ZFUlJJREU7CiAKKyAgICB2b2lkIHdpbGxTZW5kUmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJl
c3BvbnNlKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpOwog
ICAgIHZvaWQgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29vbihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKICAgICB2b2lkIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdyhNYWluUmVzb3VyY2VM
b2FkZXJUaW1lciopOwogCkBAIC0xMDQsMTAgKzEwOCwyMiBAQCBwcml2YXRlOgogICAgIHZvaWQg
c3Vic3RpdHV0ZU1JTUVUeXBlRnJvbVBsdWdpbkRhdGFiYXNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKICNlbmRpZgogCisgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyKCkgY29uc3Q7Cisg
ICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1
bWVudExvYWRlci5nZXQoKTsgfQorCisgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KCkgY29uc3Q7CisgICAgdm9pZCBjbGVhclJlc291cmNlKCk7CisKKyAgICBib29sIGRlZmVyc0xv
YWRpbmcoKSBjb25zdDsKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291
cmNlPiBtX3Jlc291cmNlOworCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1faW5pdGlhbFJlcXVlc3Q7
CiAgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRlRGF0YTsKKyAgICBSZXNvdXJjZVJlc3Bv
bnNlIG1fcmVzcG9uc2U7CiAKICAgICBNYWluUmVzb3VyY2VMb2FkZXJUaW1lciBtX2RhdGFMb2Fk
VGltZXI7CisgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBtX2RvY3VtZW50TG9hZGVyOwogCiAg
ICAgYm9vbCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50OwogICAgIGJvb2wgbV93YWl0aW5nRm9y
Q29udGVudFBvbGljeTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcAkocmV2aXNpb24gMTM3MTk3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUxLDYgKzI1MSw5IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXMKICNlbmRpZgogICAgIH0KICAgICBtX3JlcXVl
c3QgPSByZXF1ZXN0OworCisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpICYmICFt
X2RvY3VtZW50TG9hZGVyLT5pc0NvbW1pdHRlZCgpKQorICAgICAgICBmcmFtZUxvYWRlcigpLT5j
bGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEodW5zaWduZWQgbG9u
ZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM3MTk3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGlj
OgogICAgIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKCk7CiAgICAgCiAgICAgdmly
dHVhbCB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CisgICAgYm9vbCBkZWZlcnNMb2FkaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcnNMb2FkaW5nOyB9CiAKICAgICB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIApAQCAtMTY3LDcg
KzE2OCw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdPbmVQYXJ0KGRv
dWJsZSBmaW5pc2hUaW1lKTsKIAogICAgIGJvb2wgY2FuY2VsbGVkKCkgY29uc3QgeyByZXR1cm4g
bV9jYW5jZWxsZWQ7IH0KLSAgICBib29sIGRlZmVyc0xvYWRpbmcoKSBjb25zdCB7IHJldHVybiBt
X2RlZmVyc0xvYWRpbmc7IH0KIAogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7
CiAgICAgUmVmUHRyPEZyYW1lPiBtX2ZyYW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCShyZXZpc2lv
biAxMzcxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBBcHBs
aWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9u
Q2FjaGUgPSBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVz
dChyZXF1ZXN0LCBkb2N1bWVudExvYWRlcigpKTsKIAotICAgICAgICAgICAgaWYgKHNjaGVkdWxl
TG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigp
LT5tYWluUmVzb3VyY2VMb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdl
dCgpKSkKKyAgICAgICAgICAgIGlmIChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFw
cGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCktPmxv
YWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTE3LDcgKzExNyw3IEBA
IGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZEZhbGwKICAgICAgICAgaWYgKGlz
QXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKSkgewogICAgICAgICAgICAgbV9tYWluUmVzb3VyY2VB
cHBsaWNhdGlvbkNhY2hlID0gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9y
TWFpblJlcXVlc3QocmVxdWVzdCwgbV9kb2N1bWVudExvYWRlcik7CiAKLSAgICAgICAgICAgIGlm
IChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1l
bnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRp
b25DYWNoZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNv
dXJjZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxv
YWRlcigpLT5sb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCShyZXZp
c2lvbiAxMzcxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVy
TWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsOCArNTUsOCBAQCBzdGF0aWMgdm9pZCB1bnNj
aGVkdWxlQWxsKGNvbnN0IFJlc291cmNlCiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNjaGVkdWxl
KFNjaGVkdWxlUGFpciogcGFpcikKIHsKLSAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYg
bV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpKQotICAgICAgICBtX21haW5SZXNvdXJjZUxv
YWRlci0+aGFuZGxlKCktPnNjaGVkdWxlKHBhaXIpOworICAgIGlmIChtX21haW5SZXNvdXJjZUxv
YWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCkgJiYgbV9tYWluUmVzb3VyY2VM
b2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKSkKKyAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXIt
PmxvYWRlcigpLT5oYW5kbGUoKS0+c2NoZWR1bGUocGFpcik7CiAgICAgc2NoZWR1bGVBbGwobV9z
dWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fcGx1Z0luU3RyZWFt
TG9hZGVycywgcGFpcik7CiAgICAgc2NoZWR1bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxv
YWRlcnMsIHBhaXIpOwpAQCAtNjQsOCArNjQsOCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzY2hl
ZHVsZShTY2hlZHVsZVBhCiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnVuc2NoZWR1bGUoU2NoZWR1
bGVQYWlyKiBwYWlyKQogewotICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5S
ZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkpCi0gICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5o
YW5kbGUoKS0+dW5zY2hlZHVsZShwYWlyKTsKKyAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIg
JiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpICYmIG1fbWFpblJlc291cmNlTG9hZGVy
LT5sb2FkZXIoKS0+aGFuZGxlKCkpCisgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2Fk
ZXIoKS0+aGFuZGxlKCktPnVuc2NoZWR1bGUocGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX3N1
YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX3BsdWdJblN0cmVh
bUxvYWRlcnMsIHBhaXIpOwogICAgIHVuc2NoZWR1bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJj
ZUxvYWRlcnMsIHBhaXIpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3MTk3KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTEtMjgg
IE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSb3V0ZSBtYWlu
IHJlc291cmNlIGxvYWRzIHRocm91Z2ggdGhlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MjQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWw6IFRoZSBtYWluIHJlc291cmNlJ3MgdXJsIHdpbGwgZXhj
bHVkZSB0aGUgZnJhZ21lbnQgaWRlbnRpZmllciBoZXJlLgorICAgICAgICAqIGh0dHAvdGVzdHMv
bWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQu
dHh0OiBUaGUgZXJyb3IgY29kZSBmb3IgbG9hZHMgY2FuY2VsbGVkCisgICAgICAgICAgICBieSBh
biBlbWJlZGRlcidzIHdpbGxTZW5kUmVxdWVzdCgpIHdpbGwgc2hvdyBhcyBzdGFuZGFyZCBsb2Fk
IGNhbmNlbGxhdGlvbnMgcmF0aGVyIHRoYW4gYXMgYSBjb250ZW50IHBvbGljeQorICAgICAgICAg
ICAgZmFpbHVyZS4gVGhpcyB3YXMgYW4gb2RkIHF1aXJrIG9mIGhvdyBNYWluUmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVxdWVzdCgpIHdhcyBpbXBsZW1lbnRlZCAobmFtZWx5LCBkb2luZyBhCisg
ICAgICAgICAgICBjb250ZW50IHBvbGljeSBjaGVjayBvbiBSZXNvdXJjZVJlcXVlc3RzIHdpdGgg
ZW1wdHkgdXJscykuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNj
L3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQ6
IFNlZSBwcmV2aW91cy4KKwogMjAxMi0xMi0xMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9w
aGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIE1hc3NpdmUgcmViYXNlbGluZSBh
ZnRlciByMTM3MTQ2CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZS1wYXJhbWV0ZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sCShyZXZpc2lvbiAxMzcxOTcpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ZnVuY3Rpb24gb25SZXF1ZXN0RmluaXNoZWQoZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgcmVx
dWVzdCA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmIChyZXF1ZXN0LnVybCAhPT0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaT9xdWVyeVBh
cmFtMT1xdWVyeVZhbHVlMSZxdWVyeVBhcmFtMj0jZnJhZ21lbnRQYXJhbTE9ZnJhZ21lbnRWYWx1
ZTEmZnJhZ21lbnRQYXJhbTI9IikKKyAgICAgICAgaWYgKHJlcXVlc3QudXJsICE9PSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5
UGFyYW0xPXF1ZXJ5VmFsdWUxJnF1ZXJ5UGFyYW0yPSIpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KG5ldyBXZWJJbnNwZWN0b3IuSEFSRW50cnko
cmVxdWVzdCkuYnVpbGQoKSwgSW5zcGVjdG9yVGVzdC5IQVJQcm9wZXJ0eUZvcm1hdHRlcnMpOwog
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVj
dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDEzNzE5NykKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNl
bmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0yLDcgKzIsNyBAQCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJj
ZXMvcmVkCiA8dW5rbm93bj4gLSBkaWRGaW5pc2hMb2FkaW5nCiBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gd2lsbFNlbmRSZXF1
ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vLCBtYWluIGRvY3Vt
ZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1
cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3Bv
bnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9y
ZWRpcmVjdC10by1odHRwLXVybC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgogUmV0dXJuaW5n
IG51bGwgZm9yIHRoaXMgcmVkaXJlY3QKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291
cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjog
PE5TRXJyb3IgZG9tYWluIFdlYktpdEVycm9yRG9tYWluLCBjb2RlIDEwMj4KK2h0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRG
YWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNv
ZGUgLTk5OT4KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU5NQog
VGhpcyB0ZXN0IGNoZWNrcyB0byBtYWtlIHN1cmUgdGhhdCB0aGluZ3MgYmVoYXZlIGFzIGV4cGVj
dGVkIHdoZW4gdGhlIHJlc291cmNlIGxvYWQgZGVsZWdhdGUgcmV0dXJucyBudWxsIGluIHJlc3Bv
bnNlIHRvIHdpbGxTZW5kUmVxdWVzdC4KIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1y
ZWRpcmVjdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1v
bi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNzE5NykKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1
cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcg
KzIsNyBAQCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkCiA8dW5rbm93
bj4gLSBkaWRGaW5pc2hMb2FkaW5nCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJj
ZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVl
c3QgVVJMIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVk
aXJlY3QuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3Bv
bnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRw
LXVybC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgogUmV0dXJuaW5nIG51bGwgZm9yIHRoaXMg
cmVkaXJlY3QKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10
by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWlu
IFdlYktpdCwgY29kZSAtMTAwMDAsIGZhaWxpbmcgVVJMICIobnVsbCkiPgoraHR0cDovLzEyNy4w
LjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZh
aWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29k
ZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwpIj4KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNzU5NQogVGhpcyB0ZXN0IGNoZWNrcyB0byBtYWtlIHN1cmUgdGhhdCB0
aGluZ3MgYmVoYXZlIGFzIGV4cGVjdGVkIHdoZW4gdGhlIHJlc291cmNlIGxvYWQgZGVsZWdhdGUg
cmV0dXJucyBudWxsIGluIHJlc3BvbnNlIHRvIHdpbGxTZW5kUmVxdWVzdC4KIApJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFk
aXVzLWNsaXAtY29udGVudC1lZGdlLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNw
bGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2Uv
cG5nCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJG
V0hSamFHVmphM04xYlFCa01EazVNMlUzCk5ESXpNekUwTW1RNE1XTTFNMlEzTVdVd1l6azFaakZp
WlVIaUl5WUFBQ0FBU1VSQlZIaWM3ZDF4YkJ2WGdlZnhSMGQvTURsdE9EYUUKV01nWkZ0Tk5halYy
WXdudG5nUTBLT1VrQzEzL3VOaHlnMVgrdUlVZHBFQzNhQkpMOWg2U2JvREc3aC9idExpRnhhTEZi
ZjRJMXVydApiUjFrYTBuWld5QUc0b3AwYkVCT2N4WFZkVGNVNEZTazQzVXBJemFIcUlyUUNLMjVQ
NlpWcVpFNDRsRHZjVGh2dnAvL1NJNmxsK0NICnB4OW4zcHVKV0pZbEFBQUFJTThXdndjQUFBQ2dH
d29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUEKa0l5Q0JRQUFJ
QmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFK
Q01nZ1VBQUNBWgpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFB
QklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XCkFBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FB
QUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJRm1iM3dNSW50dTNiMy82NmFjM2I5NFUKUW1Teldm
dk5iRFpybXViYWczZnUzSG4vL2ZjTEllNjc3NzV0MjdaMWRuYmVkZGRkYlczOGI5Y0JTWUNOSkFC
WUsySlpsdDlqYUdtMwpiOTh1Rm91bFVpbVh5OVdhTWIweURPUExYLzV5UEI2UHhXSmJ0bkFTTVJo
SUFtd2tBVUE5S0ZqcldGcGF1bm56WmphYm5abVpVZjI3Cjl1elo4NlV2ZmFtenMxUDFMMElEU0FK
c0pBR0FWeFNzMzF0ZVhyNXg0OGFISDM3NHpqdnYrREtBSjU1NDRndGYrRUkwR3ZYbHQyTUYKU1lD
TkpBRFlqTEFYTEhzT3ZYang0dVhMbC8wZWl4QkM5UGYzSnhJSnB0VG1Jd213a1FRQVVvUzNZQldM
eFovOTdHY3RNb2M2OVBmMwpQLzc0NDZ4N2JRNlNBQnRKQUNCUjZBcFd1VnorNElNUHpwOC9MMlZw
cWxKUFAvMzBybDI3L0I2RnRrZ0NiQ1FCZ0FvaEtsakZZdkc5Cjk5NXJ3aHBWaVF6RGVQYlpaOXZi
Mi8wZWlGWklBbXdrQVlBNm9TaFl4V0p4Y25MeTZ0V3JmZytrUVh4dGxZVWt3RVlTQUtpbWVjRUsK
K2pTNllzK2VQVU5EUTl3Z3AyRWtBVGFTQUtBNXRDMVlTMHRMYjc3NXBxSnBOQjZQUjZQUnpzN09X
Q3htR01iSys0WmhWTDhVUXBpbQphWnBtdVZ4ZVhGd3NGQXFGUXFIaGRSNkdZWHp6bTk5a2xhdFhK
QUUya2dDZ21UUXNXSlZLNWR5NWN4TFhWUmlHMGQzZEhZdkZPanM3CjEwNlhYcG1tbWN2bDV1Zm5W
eDZwNFdra3pLZjFJd213a1FRQXphZGJ3WnFmbno5OSt2VG1mNDVoR1BGNHZLdXJLeDZQYjNMMnJN
VTAKeld3MmUrblNKYS9mWDU5Ly92bHQyN2FwR0pKT1NBSnNKQUdBTC9RcFdFdExTNisvL3ZvbU4x
ckg0L0c5ZS9lcW0wRFhsY2xrMHVtMApwNUcvL1BMTGZHZXRoU1RBUmhJQStFaVRnblh4NHNYTlBN
N0NNSXkrdnI3dTd1NW16cUVPNlhSNlptYW1YQzdYY3pEWEJXb2hDYkNSCkJBRCtDbnpCMnN5WDFH
ZzAydFBUczNmdlhxL1BWVjE0OTZQOEwyNm1KazJ6Rk1rc3hGYmV6eTExNUNzN3FvL3NhcnNXYi84
NDNySFUKOC9rN2liL1kzdnQwdDh1UE5VM3o3Tm16ZGE3RE1BemorZWVmWncvUkNsK1NrTHR3TGYv
L1BsNDNDYm5WU1loWEoyRzRzMmZZYlk4OQpTZGdNZithRUJTdWZGNm1VTUUyUnlmengvVnhPNVBP
UjZpTzd1cXg0WE1Uam9xZEhKQktpdHpmaS9GbFZTQUlRWE1FdVdBMnZyakFNCkk1Rkk5UFQwMUhs
OEtwbEpUWnFwakdIZXZudnVrOFp2UHhPTGxBWTZzNGNQaXdOLzIxZnJtSm1abWJObno5YnowL2Jz
MmZQVnIzNjEKNGNIb3BHbEpTRmNsSWJPSkpCaC9TTUora2lCVjgrYUVsSlZLL2I1UnpjMjVsU1Iz
c1pnMU1DQU9IeFlIRHRUOElTUUJDS0tnRnF4SwpwVEkxTmRYQVU4UHFuMFpYU2xYYXJIZk9yVjhz
VWhwSnpCNzVoNTZ0OFhVdVFCUUtoZkh4OFhvdURRd1BEM2QzdTUwVjAxNFRrckJTCnFsSUtrbURZ
U1RqVmEzVEYxbjVLRXVyWGpEbmhENlVxblc2OFVkVVNpMWtqSStMSUViRjE2em8vbkNRQWdSUEln
dFhZSllBNnA5SEoKdjdrMCtlYW5reDkrdm1TdDh3ZFBMcGVhVlM2WHg4ZkhDNFhDaGovazJMRmpv
WDF1aHRJa1RQMGhDYWI2SkxqVUxKSlFEN1Z6d3FRMQpPU2ttSjBXcEpMOVhPYmpVTEpJQUJFdndD
bFkrbno5MTZwU25mMklZeHVEZ29QdTN1dG5UMmZIdkw1N0s5RFNoVnpsMHRWMDdlZXphCjBLdjlq
dmZybkU4Tnd6aHk1SWl5MGJVdVJVbkl2REUvL3IzQ3FVeFBFM3FWUTd6dDJzbS8vbzhEMzNWZU5D
UUo3bFROQ2JQVytMZzQKZGFvWnZjcWhxOHM2ZVZJTURUWFlzVUtiQktDbEJLeGd6YzdPdnZYV1c1
NytTWDkvZnlLUmlFYWo2MzVhekpualIrZkcvdVZQSFl2VAptKzlJYjNyc0Z3bkhtM1hPcHlHOEtD
QTlDV2ErTkQ2YUdmdVhQODM1bllTUjN2UkprbEEzK1hOQzBSb2ZGMk5qenNYcHpYZmtpRFUyCjFt
REhDbUVTZ0ZZVHBJTDEwNS8rMU5NQ2kzZzhQamc0V0dzM1VERm5KcC9KaktWN20zL0txcGE5ZDg5
UC8vdDJ4K1hDY3JtY1RDWTMKWEhzUnFydmd5RTJDbVM4bEQ4K09wWHViZjhxcWxwNjc1NmMvNkhS
Y0xpUUphMG1lRTRwV01pbkd4bnc0WlZYTDNyM1c5TFR6Y2lGSgpBQUloR0FYTDYvTFZhRFE2T0Ro
WWEybkZ3cnNmSlkvODJwZXJnUnZxYXJzMjhiK1hISGR6S0JRS3I3MzJtdnMvN08vdkh4d2NWRG0w
CmxpQTNDYmtMMTVJdmZPakwxY0FOeGR1dVRmemo3eHgzY3lBSkt5VFBDUXRXTXVuUDFjQU5kWFZa
RXhQT3V6bVFCS0QxQmFCZ1ZTcVYKSC8zb1IvVXZYNDNINDhQRHcrdWUveS9tek5FL3Z6eCs1Vkdw
QTVRc0ZpbE4vOU52SEIycm5uM2FMNzc0WXEyckhucVFtQVF6WHhwOQo0dDlPdFhZU2pFaHAraWNG
UjhjaUNVTHVuRkMwUmtmRitIakw5YXBxc1pnMVBlM3NXQ1FCYUhHdGZrczZyelBwd01EQW9VT0gx
cDFUCnhnNm1IL2hNcE1YYmxSQ2laTVdHL3JLOW1GdjFuOXpmMzcvaGlvcDBPcTF5WEQ2VG1JVGt3
ZlFERDRnV2IxZENDTk9LRGYzMy8yVG0KUzlWdmtnU1pjOEtZOWNBRHJkNnVoQkNsVW1Sb1NCU0xx
NzRNa3dTZ3hiVjB3ZkkwazBhajBVT0hEaVVTenRYQlFvanBrN005OTh5UApUaVJhOEpyZ3V2S1ZI
ZnNlWG5TOE9UZzQ2UDVsdFA2bmFnU09yQ1NreGpLOTk4eVBUQ1JhOEpyZ3VuS1ZIZnMrNTF6T1RC
SWt6QW5UClZrK1BOVG9hYWNGcmd1dks1eVA3OWpuZkRITVNnTlozMS9IangvMGV3L284emFUeGVQ
elpaNS90Nk9od3ZGL01tZC80cy9lUC9xUnYKc2VMOHFNVXRWanFLVSttdi9GVjg1WjFvTkhybnpw
MWNMdWZ5cjZMUjZNNmRPMVdQcmNta0pNSE1sNzd4WisrUC91Uy9GSUtXaEVLbAp3NXhLLzFlU0lH
dE9LRnJmK0lZNGVqU3l1QmlNYXJWaWNURlNMRnBmK2NvZmh4M2FKQUNCMEtKbnNKYVhsK3VmU1d0
ZEFwZytPUnVJCmE0SzEvQ0NUbUhocHB2cWRSQ0xoL3VqWmMrZk9LUjVVczBsSlFtb3NFNGhyZ3JV
a000bkpiMTJxZm9ja3VLczVKMHdINDVwZ0xULzQKUVdSaVl0V0Z3aEFtQVFpS0ZpMVlFeE1UZGM2
aysvZnZYL2NTd1BGOXFjZU90dEF0R0JveituYzdISXV4MXYyUHJWYlBqWjREWlBOSgpPTEV2dFcr
MEZmY0plakw2UC8rell6RVdTYWlsNXB4dzNIcnNzY0JjRTZ4bGROUzVHQ3RzU1FDQ29oVUxWdjMz
dHRtL2YvL2FmZGNMCjczN1VjOC84aWRTQS9KRTFYYjZ5WSt4d3B2cWRucDRlOXkrc0Z5OWVWRHlv
NXRsa0VuSVhydlhlTTM5Y2l5VGtLanZHRHMxV3YwTVMKMXJYK25MQmc5ZlJZSjA0RXUxclo4dm5J
Mk5pcWQwS1ZCQ0JBV3E1Z3pjN08xak9UUnFQUnIzLzk2MnRuMG9tWFpub1Q5ODU5c212ZApmeFZF
eWZPOWpwTllmWDNPUjZsVXUzejU4dkx5c3VKQk5jTW1rekQ1clV1OVgvNlRqRjVKY0p6RUlnblZh
czRKRTFadnI1aWIwNkZkCjJaSko1MG1za0NRQkNKYldLbGo1Zkw2ZXAxN1ltNFBXM281NTdHRDY0
UGY2ZzM1WjBLRmt4Unduc1RiY20rMzFrYmN0YUpOSlNCNU0KRDczYUYvVExnZzZtRlhPY3hDSUpL
MnJPQ1dQV3dZT0J2eXpvVUNvNVQyS0ZJUWxBNExSUXdWcGFXcXJuaWEyMVp0TEREMTBZbmRoZwpM
VUpBSmMvM1ZyODBEQ01lajdzY244L24xUTVJc1UwbTRabUhMb3lRQkNGRTZKTncrTEExT3FwVnRW
cVJUSzU2cVgwU2dDQnFsWUpWCnFWUmVmLzMxRFE5emFWZkIzUzI0b1pJVmMyd24zTHQzcjh2eDU4
K2ZWendpaFRhWmhHY2V1aERjM1lJYk1xMllZenNoU1hCcFY4SGQKTGJpaFVzbTVuVkRqSkFBQjFT
b0ZhMnBxcXA2VDJHdG4wbUxPSE5pYTBiaGQyVTZ0L2xQaC9tM1ZOTTFLcGFKMlFNbzBuQVF6WDlx
MwpOYU54dTdJNVR1aVFoSFhtaEtJMU1LQnp1N0tGSndsQVFMVkV3Y3Btcy9Vc1l0Mi9mLy9hZHJY
djRjVzB1ZjREWEhXU1hseTF4c0l3CkRQZDlRd0dkVEJ0T2dwa3Y3ZnRjSVVVUzFnaGJFb3BGYTk4
K2tVNXIzcTZFRUk2bjRPaWFCQ0M0L0M5WVMwdExiN3p4eG9hSHJkMTkKYmJjcm5UWU11aWhac2Ru
VDJlcDMxbDRUcWJhNDZIelNUdXRyT0FsMnU5SnB3NkFMMDRwbDNwaXZmb2NrckxEYmxVNGJCbDJV
U3BIWgoyVlZYQ2ZWTEFoQm8vaGVzZXBaWkRBd01yTjE5UGRTYkMwbTdzcVZPcjdwYm9QdGtldXZX
TGNYRGthL3hKUFFzaEtSZDJVaUNxSldFCm9iQzBLMXNxdGVxbGZra0FBczNuZ25YeDRzVU5sMW5F
NC9HMXR5bysvTkNGTUZ3WnJKYkxyL3JMc1gzN2RwZURiOXk0b1hnNGtqV2MKaEdjZXVoQ0dLNFBW
SEkrZUl3bTJ3NGV0TUZ3WnJLWjNFb0NnODdOZ0xTMHR2ZlBPTys3SFJLUFI0ZUZoeDV0Njd4bXNK
Yk93NnE1TwphNSt6Rmx3TkowSHZQWU8xa0lSMTVnU3Q5d3pXa2xsMWd6eXRrZ0Jvd00rQ1ZjK0Zn
T0hoWWNlc2NmSkFLb1R0U2dpUi8xMUg5VXYzCnlmVDY5ZXVLaHlOVFkwa1lHMHFIc0YwSmtyQjJU
amdaeG5ZbGhIRGMzRXFuSkFBYThLMWdaYlBaRFM4RURBd01PUFllVDd3MGMzUnEKUU4yb1dsbStz
cVA2cGZ0Nmk2dFhyeW9lampTTkpXSHlXNWRHSi9XOG0raUdjaVNoeXNTRWRmUm9HTnVWRUNLL2V0
bUFOa2tBOU9CUAp3YXBVS2h2dUVscTd6R0xoM1krZStmN25WSTRMemRaWUVuSVhyajN6dlEyZURZ
SmdhWEJPV0xDZWVVYmxzQUNnVWY0VXJIUG56cmtmCnNQNkNteWR2YXZhY1FUU1loUC8yc1diUEdV
U0RTWGhHYVBhY1FRRGE4S0ZnTFMwdHpjek11Qjh6T0Rqb1dFL3d5a0FxYk5zR3RkZFkKRW80UHBN
SzJiVkI3RGM0SnI0UnUyeUNBQVBHaFlMMzU1cHZ1QjhUamNjY2RicVpQem40blBhQndUUEJEQTBs
SWpXVk9rQVR0TkRJbgpURnZmK1E3dENrRHJhbmJCdW5YcjFvWnJMUWNIQjZ0ZkZuUG0wTEhQcUJ3
VWZOQkFFc3g4YWVqb0F5b0hCUjgwTWljVXJhRWhsV01DCmdFMXJkc0dhbXBweVA2Qy92OSt4RjJi
a2ljc3N2ZEpQSTBsNC9OOVllcVdmUnBJd3d0SXJBSzJ1cVFWcnc2K3FobUU0ZGdsTm41ejkKOFlk
aHZOZVIzaHBJUW1vc00wNFN0TlBJbkRCdC9makh0Q3NBcmE2cEJXdkRyNnByMTdHT3ZueVB5aEhC
SDQwazRXL3VWamtpK0tPUgpKSXlxSEJBQVNOSzhnbFhQVjlYdTdsVTNOenA1SUJXcXh6bUhSQU5K
R0J0S2grcHh6aUhSeUp4dzBnclY0NXdCQkZmekN0YlBmLzV6Cjl3TWNGd0tLT2ZQRVc3MHFSd1Iv
ZUUyQ21TK2RtT0srREJyeVBDY1VyUk1uVkE0SUFPUnBVc0VxbDh2dTk3a3hETU94RFp1MTdWcHEK
SkFtc2JkZFJJMGxnYlR1QTRHaFN3ZnJnZ3cvY0QxajdWQnpXdG12SmF4SnlGNjZ4dGwxTG51ZUVC
ZGEyQXdpU0poV3M4K2ZQdTN5Ngo5cXZxMkF1L1Zqd2krTU56RXA3L1VQR0k0QS9QU1JoVFBDQUFr
S29aQmV2V3JWdW1hYm9jc0hiMTFmZ2NhMjQwNURVSlpyNUVFclRrCmVVNG9XdVBqaXNjRUFGSTFv
MkJOVDArN2ZCcU5ScDFmVlE5bldIMmxKYzlKT0RUTDZpc3RlVTdDR0t1dkFBU004b0sxdkx4OCtm
SmwKbHdNY00ya3haeWJQczNsUVExNlRZT1pMSkVGTG51ZUVvcFZNS2g0VEFNaW12R0RkdUhIRC9Z
QzllL2RXdnp3MXd1a3JQVFdRQkU1ZgphY2x6RWs1eCtncEE4Q2d2V0JjdlhuVDUxREFNeDFQR2t2
LzZvT0lSd1IrZWsvQi8vMVR4aU9BUHowbmc5QldBQUZKYnNEYThGdERYCjExZjljdlowTmwvWm9Y
Ukk4SVhYSkdUZW1NK1JCQjE1bmhObXJYeWUwMWNBZ2tkdHdkcndXb0RqT1JpbnZyZW9jamp3amVj
a3ZGcFEKT1J6NHhuTVNUaWtjREFDb283WmdYYmx5eGVYVGVEeHVHRWIxTyt6SjF4VkpnTTF6RXJn
N0E0QmdVbHV3enAwNzUvS3BZeW5yeEVzegpMRy9YbGFja1RIN3JFc3ZiZGVWdFRwaXdXTjRPSUtB
VUZxeWxwU1gzQStMeGVQWEx5WCt1cUJzTWZPUTVDVzkrcW5BMDhJL25KRXdxCkhBd0FLS1d3WU4y
OGVkUGxVOE13SE5jQ3BuNzllWFdEZ1k5SUFteWVrekNsZUVBQW9JekNncFhOWmwwK2RYeFZuVDJk
NWZxZ3Jqd2wKSWZQR1BOY0hkZVZ0VHBqbCtpQ0FBRk5Zc0dabVpsdys3ZXJxcW40NStmZnNHdE9X
dHlUOHI5OG9IZzU4NHkwSlhCOEVFR1NxQ2xhNQpYSFkvd1BGdE5aVXhhaHlJWUNNSnNIbE9Ra3Jk
V0FCQU9WVUZ5elJObDAvWExyWTRYMkpidnA2OEppRk5FalRsZVU0NHovVkJBQUhtClQ4RnkzRXR3
K3VTc29tSEFkNTZTa0JyTEtCNE9mT050VHBpMkZBOEhBTlJTVmJEeStiekxwN0hZcWxYTXFhbVNv
bUhBZDk2U01PbjIKTnhpQjVpMEpLYldEQVFEVlZCVXM5KzFDam9lNVp1YnZWalFNK0k0a3dPWXRD
WnpLQkJCd3ZxM0JxbjZaTDdHdVdWc2tBVFp2U1hBNwoyd1VBQWFDa1lHMjRYY2d4bWM1OXNrdkZN
T0E3cjBuSWtBUk5lWjRUNWxqaERpRFlsQlNzU3NYdG9UZU96ZGdMNzM2a1lneG9CWjZTCmtMdHdU
ZTFvNEI5dmM4SUNLOXdCQko2U2d1WCtRSXhvTkZyOU12Zit4eXJHZ0ZaQUVtRHpsb1NjMnNFQVFC
TW92Sk43TFk3VnJHd2gKREMxbkV0aENHRmJPSktSOEdnY0F5S09rWUxsdkYzTHN4elo1M0ppK1NB
SnMzcEpBMHdZUWZENmN3WEt1YTE3Z3liNGhSUkpnY3lhQgplelFBQ0Q0ZkNoWUFBSURlbEJTczY5
ZXZxL2l4Q0J5U0FCdEpBQkEyU2dyVzFhdFhWZnhZQkE1SmdJMGtBQWdiLzlkZzVYL1gwZnd4Cm9C
V1FCTmk0alRzQS9iUkF3YXJzYVA0WTBBb2NTY2lSaExCYVU3RFlUd29nOEZqa0RnQUFJQmtGQ3dB
QVFESUtGZ0FBZ0dRVUxBQUEKQU1tVUZLeWRPM2U2ZkdxdWZoREd6cnV1cVJnRFdvR25KSFNSQkgx
NW14TjJXb3FIQXdES0tTbFk5OTkvdjh1bmpzazAzdjZ4aWpHZwpGWkFFMkx3bElhNTJNQURRQkQ1
Y0lpeVh5OVV2NHgxTHpSOERXZ0ZKZ00yWmhMaFA0d0FBZVpRVXJQdnV1OC9sMDhYRnhlcVhQWHNx
CktzYUFWdUF0Q1orL28zZzQ4STIzSlBRb0hnMEFxS2VrWUczYnRzM2wwMEtoVVAxeTRPbE9GV05B
S3lBSnNIbEx3b0Rhd1FCQUV5Z3AKV051M2IzZjUxREdaOWo3ZGZhOG9xUmdHZk9jcENUM0R1Mklr
UVZQZTVvVGV5TDMzc3M0ZFFMQXBLVmh0YlcwdW41cW02VmpUT3RDWgpWVEVNK0k0a3dPWTVDUU5x
eHdNQXFxa3FXTEZZek9XQVhDNVgvZkx3SWI2dDZzbHpFZzRySFE1OFF4SUFoSTJxWFlSZi9PSVhY
VDZkCm41K3Zmam4wYWo5WENYWGxLUWtIdnR2SFZVSmRlWnNUaHJoS0NDRFlWQldzaHg5KzJPWFRi
RGJydUNJd2twaFZOQkw0aXlUQTVqa0oKSTRvSEJBQXFxU3BZaG1HNEg1RE5ybHB0TTNLcWg1TllX
dktjaFBGZVRtSnB5WE1TUmdRbnNRQUVsNnFDdFdYTGx0MjdkN3NjY09uUwpwZXFYVytNR3B5NjA1
RFVKUmxlTUpHako4NXl3TmNKSkxBREJwZkJPN284KytxakxwNlpwWmpLWjZuZEdUdlh3WEVJdGVV
N0NlQy9QCkpkU1M1eVNNOEZ4Q0FFR2xzR0IxZG01dzM4aDBPbDM5Y212Y0dQdHIvcXhxeUdzU2pL
N1kyUC80RDVVamdqODh6d2xiSTJOaktnY0UKQU1xb2ZSYmg0NDgvN3ZLcGFab3pNelBWN3d5OTJ2
OUNUN3JXOFFndXIwazQ4TjIrSXlSQlI1N25oS0hJQ3k5d0VndEE4S2d0V080YgpzNFVRNlhUYXNY
VW9PWnQ0SkRwZjYzZ0VWQU5KR0p0TjdDVUoybWxrVGtoR0hubUVqZ1VnWU5RV3JHZzAydC9mNzNK
QXVWdytlL2FzCjQ4M1VCOXRaaktXWkJwT1E3V1F4bG1ZYVRFS0t4VmdBQWtadHdSSkNKQklKOXdP
eTJhempvc0RXdURINWowdmN0VUV6RFNUQjZJcE4KL3AvZmNkY0d6VFF5SjJ5TlRFNXkxd1lBUWFL
OFlHMzRoVlVJY2ZiczJiVlBnRTc5NURlY3g5SkpZMG5vR2Q2Vk9sM2dQSlpPR3B3VAplaU9jeHdJ
UUlNb0xscWpqQzZzUVlueDh2Rnd1VjcvVCszUjM1a283NjdGMDBsZ1Nlb1ozWlQ3OEU5Wmo2YVRC
T2FFM2tza0kxbU1CCkNJUm1GS3hvTkRvOFBPeCtUTGxjWGp1ZmJvMGJjNS9zWWwraE5ocE9ndEVW
eTN5eWkzMkYybWg4VHRnYW1adGpYeUdBQUdoR3dSSkMKZEhkM3gySXg5Mk1LaGNMYStWUUlrWnhO
bkhseGhzdUZldGhNRXNabUV4TXZYZUp5b1I0Mk5TY2tJMmZPV0Z3dUJOREttbFN3aEJCZgorOXJY
Tmp5bTFudzY5R3AvNWtyN3R4TXBWcjVyWUROSk9QRGR2c3lIZi9KS0lzWEtkdzFzYWs0WWltUXk0
dHZmdGxqNURxQTFOYTlnCnRiZTNiM2hSUUFoUktCU1N5YVJqZmFzUVltdmNPSkVheUMxWTFLeWcy
MlFTaks3WThkUkFMaWVvV1VHMzJUbGhhK1RFaVVndVI4MEMKMElxYVY3Q0VFTjNkM2U1UGU3V1Z5
K1hYWG52TjhlUlhtMTJ6U2xic3pJc3pUM1plb21rRjFPYVRZTmNzMDRwTnZIUnBmK2NsbWxaQQpT
WmdUdGtaT25JaVVTcEV6WjZ3bm42UnBBV2dWYlUzK2ZRY1BIcngyN1ZxcHRQR2Z3N2ZmZmp1WHl3
ME9EaHFHc2ZiVG9WZjdoMTRWClFvalowOW5VNlVJdUg4a3N4SEpMSFZmdjdKQStacWdnS3drSHZ0
dDM0THRDQ0pGNVl6NTF1cERMQ1RzSmVaSVFFTkxtaEtISTBKQVEKUXN6T1dxbVV5T1ZFSmlOeU9Y
SDFha1Q2bUFGZ1F4SExhdllYdmtxbDhzTWYvckNlK1ZRSUVZMUdCd1lHK3ZyNlZJOHFpRTZjT09I
eQo2U3V2dk5LMGtUU0dKTWhDRW1BTGVoSUFuVFQxRXFHdHJhM3R1ZWVlcS9QZ2Nybjg5dHR2SjVQ
SnViazVwYU5DODVFRTJFZ0NBUDNjCmRmejQ4ZWIvMWkxYnRqenl5Q1B2dmZkZW5jZVh5K1ZzTmpz
M054ZUpSTnJiMjZQUnFOTGhCVVU2N1haZnFJR0JnV1lOcEhFa1FRcVMKUUJKc0dpUUIwSVkvQlVz
SWNmZmRkei82NktPLy9PVXZiOSsrWGVjL0taZkxWNjVjdVhUcDB1TGk0cDA3ZDZMUmFNaG5WVDBt
VTVLdwplU1NCSk5qMFNBS2doMll2Y2wvMXU5dmFubnZ1dWZyWFhxeklaclBaYkZZSVlSaEc1eDlF
bzlGWUxMYnU2bGUwT0pJQUcwa0FvQTBmCkZyazdMQzh2bnpsejVsZS8rcFcvdzlCUDRCYTBrZ1JG
U0FKc2dVc0NFR2crTEhKM2ptRExscWVlZXFxZSt3MUNieVFCTnBJQVFBUCsKRnl4YmQzZjNzV1BI
Tm53MkdiUkhFbUFqQ1FBQ3JWVUtsaENpdmIxOVpHU0VyNjFTMUhOMzdKWkZFaVFpQ2JBRk9nbEFF
UG0yaTdDVwpqbzZPL3Y3K08zZnVYTHQyemUreEJOaGpqejNXMGRIaDl5ZzJoU1JJUVJKZzB5QUpR
TEMwWE1FU1FyUzF0VDM0NElOTXFadHg4T0RCClNDVHdUd2doQ1p0SEVtRFRJd2xBZ1BpL2k5QmR1
VngrLy8zM3o1MDc1L2RBZ21SNGVMaTd1OXZ2VVVoR0VocEFFbURUTWdsQWkydjEKZ3JXaVVDaGN1
SENCbmRzYjJyMTc5MU5QUGVYM0tCUWlDWFVpQ2JCcG53U2dOUVdtWU5tV2w1ZE4wOHpuOCtsMDJ1
dXRDTU1nUE45VApTWUk3a2dCYmVKSUF0SnFBRmF4cXQyN2QrdTF2ZjJ2ZnZ0bDIvZnIxcTFlditq
Z2t2K3pldlh2UG5qMmYvZXhudDJ4cG9XMmhUVU1TClZwQUVrbUFMZVJLQVZoRGdnZ1VBQU5DYStI
SURBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmcKQVFBQVNF
YkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNT
allBRUFBRWhHd1FJQQpBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFD
U1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnCkdRVUxBQUJBTWdvV0FBQ0FaQlFzQUFB
QXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUsKRmdB
QWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNB
QUVBeUNoWUFBSUJrRkN3QQpBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlG
QUFBZ1dadmZBd2llMjdkdmYvcnBwemR2M2hSQ1pMTlorODFzCk5tdWE1dHFEZCs3Y2VmLzk5d3No
N3J2dnZtM2J0blYyZHQ1MTExMXRiZnh2MXdGSmdJMGtBRmdyWWxtVzMyTm9hYmR2M3k0V2k2VlMK
S1pmTDFab3h2VElNNDh0Zi9uSThIby9GWWx1MmNCSXhHRWdDYkNRQlFEMG9XT3RZV2xxNmVmTm1O
cHVkbVpsUi9idjI3Tm56cFM5OQpxYk96VS9VdlFnTklBbXdrQVlCWEZLemZXMTVldm5IanhvY2Zm
dmpPTysvNE1vQW5ubmppQzEvNFFqUWE5ZVczWXdWSmdJMGtBTmlNCnNCY3NldzY5ZVBIaTVjdVgv
UjZMRUVMMDkvY25FZ21tMU9ZakNiQ1JCQUJTaExkZ0ZZdkZuLzNzWnkweWh6cjA5L2MvL3ZqanJI
dHQKRHBJQUcwa0FJRkhvQ2xhNVhQN2dndy9Pbno4dlpXbXFVazgvL2ZTdVhidjhIb1cyU0FKc0pB
R0FDaUVxV01WaThiMzMzbXZDR2xXSgpETU40OXRsbjI5dmIvUjZJVmtnQ2JDUUJnRHFoS0ZqRllu
RnljdkxxMWF0K0Q2UkJmRzJWaFNUQVJoSUFxS1o1d1FyNk5McGl6NTQ5ClEwTkQzQ0NuWVNRQk5w
SUFvRG0wTFZoTFMwdHZ2dm1tb21rMEhvOUhvOUhPenM1WUxHWVl4c3I3aG1GVXZ4UkNtS1pwbW1h
NVhGNWMKWEN3VUNvVkNvZUYxSG9aaGZQT2IzMlNWcTFja0FUYVNBS0NaTkN4WWxVcmwzTGx6RXRk
VkdJYlIzZDBkaThVNk96dlhUcGRlbWFhWgp5K1htNStkWEhxbmhhU1RNcC9VakNiQ1JCQUROcDF2
Qm1wK2ZQMzM2OU9aL2ptRVk4WGk4cTZzckhvOXZjdmFzeFRUTmJEWjc2ZElsCnI5OWZuMy8rK1cz
YnRxa1lrazVJQW13a0FZQXY5Q2xZUzB0THI3LysraVkzV3NmajhiMTc5NnFiUU5lVnlXVFM2YlNu
a2IvODhzdDgKWjYyRkpNQkdFZ0Q0U0pPQ2RmSGl4YzA4enNJd2pMNit2dTd1N21iT29RN3BkSHBt
WnFaY0x0ZHpNTmNGYWlFSnNKRUVBUDRLZk1IYQp6SmZVYURUYTA5T3pkKzllcjg5VlhWaXc4bm1S
U2duVEZKbk1IOS9QNVVRK0g2aytzcXZMaXNkRlBDNTZla1FpSVhwN0k4NmZWY1UwCnpiTm56OWE1
RHNNd2pPZWZmNTQ5UkN2OFNjSzdIK1YvY1RNMWFacWxTR1lodHZKK2Jxa2pYOWxSZldSWDI3VjQr
OGZ4anFXZXo5OUoKL01YMjNxZTdYWDRzU2RnTWt1QnA1QUFVQ1hiQmFuaDFoV0VZaVVTaXA2ZW56
dU5US1N1VituMmptcHR6SzBudVlqRnJZRUFjUGl3TwpIS2o1UTJabVpzNmVQVnZQVDl1elo4OVh2
L3JWaGdlamsrWWxJWmxKVFpxcGpHSGV2bnZ1azhadlJCU0xsQVk2czRjUGl3Ti8yMWZyCkdKTFFB
SkpBRW9BV0VkU0NWYWxVcHFhbUduaHFXUDNUNkVxcFNxY2JiMVMxeEdMV3lJZzRja1JzM2JyT0R5
OFVDdVBqNC9WY0doZ2UKSHU3dWR2c0dyTDFtSk9FUGYwclRacjEvZmVzWGk1UkdFck5IL3FGbmEz
eWRTMUVrb1g0a3dVWVNnQllSeUlMVjJDV0FPcWZSeVVscgpjbEpNVG9wU1NYNnZjbkNwV2VWeWVY
eDh2RkFvYlBoRGpoMDdGdHJuWnFoTnd0OWNtbnp6MDhrUFAxK3lZdTVIYnA3TEgxZVNVQStTClVD
M01TUUJhUi9BS1ZqNmZQM1hxbEtkL1loakd3cWNlOXdBQUdEaEpSRUZVNE9DZys3ZTYyVmxyZkZ5
Y090V01YdVhRMVdXZFBDbUcKaGhyc1dJWmhIRGx5Uk5ub1dwZXFKSnpPam45LzhWU21wd2wvVFIy
NjJxNmRQSFp0Nk5WK3gvc2t3UjFKY0FodEVvQ1dFckNDTlRzNworOVpiYjNuNkovMzkvWWxFSWhx
TnJ2dHBzV2lOajR1eE1lZmk5T1k3Y3NRYUcydXdZNFh3b29EOEpPVE04YU56WS8veXA0NGx5YzEz
CnBEYzk5b3VFNDAyU1VBdEpXRmNJa3dDMG1pQVZySi8rOUtlZUZsakU0L0hCd2NGYXU0R0tSU3Va
RkdOalBweXlxbVh2WG10NjJubTUKc0Z3dUo1UEpEZGRlaE9vdU9KS1RrRE9UejJURzByM05QMUZS
eTk2NzU2Zi9mYnZqSWhGSldJc2t1QWhWRW9BV0ZJeUM1WFg1YWpRYQpIUndjckxXMFltSEJTaWI5
dVJxNG9hNHVhMkxDZVRlSFFxSHcybXV2dWYvRC92Nyt3Y0ZCbFVOckNaS1Q4TzVIeVNPLzl1VWEw
SWE2CjJxNU4vTzhseHg1K2tyQ0NKSkFFb01VRm9HQlZLcFVmL2VoSDlTOWZqY2ZqdzhQRDY1Ny9M
eGF0MFZFeFB0NXl2YXBhTEdaTlR6czcKVmozN3RGOTg4Y1ZhVnozMElETUpPWFAwenkrUFgzbFU2
Z0FsaTBWSzAvLzBHOGRmVnBJZ1NJSVFnaVFBTGEvVmIwbm5kU1lkR0JnNApkT2pRdW5QSzJKajF3
QU90M3E2RUVLVlNaR2hJRkl1cmltOS9mLytHS3lyUzZiVEtjZmxNWmhJT3BoLzRUS1RGLzZZS0lV
cFdiT2d2CjI0dTVWZi9KSklFazJFZ0MwT0phdW1CNW1rbWowZWloUTRjU0NlZWFVQ0hFOUxUVjAy
T05qa1phOEpyZ3V2TDV5TDU5empjSEJ3ZmQKdjR6Vy8xU053SkdXaEpPelBmZk1qMDRrV3ZCSzBM
cnlsUjM3SGw1MHZFa1NTSUl0ekVrQVd0OWR4NDhmOTNzTTYvTTBrOGJqOFdlZgpmYmFqbzhQeGZy
Rm9mZU1iNHVqUnlPSmlNS3JWaXNYRlNMRm9mZVVyZnh4Mk5CcTljK2RPTHBkeitWZlJhSFRuenAz
S0I5ZGNjcEtRCk03L3haKzhmL1VuZllzWDVVWXRickhRVXA5SmYrYXY0eWpza29aNkRTY0xLTWZv
bEFRaUVGajJEdGJ5OFhQOU1XdXNTd1BSME1LNEoKMXZLREgwUW1KbFpkS0V3a0V1NlBuajEzN3B6
aVFUV2JuQ1NjbkEzRWxhQmFmcEJKVEx3MFUvME9TWEJIRWxib2x3UWdLRnEwWUUxTQpUTlE1ays3
ZnYzL2RTd0RIajF1UFBSYVlhNEsxakk0NkYyT3QreDliclo0YlBRZUloQ1RzU3oxMnRJVTIzamRt
OU85Mk9KYmdrSVJhClNJS0Raa2tBZ3FJVkMxYjk5N2JadjMvLzJuM1hDd3RXVDQ5MTRrU3dxNVV0
bjQrTWphMTZwNmVueC8wTDY4V0xGOVdPcVlrMm00UjMKUCtxNVovNUVha0QreUpvdVg5a3hkamhU
L1E1SldCZEpXRXVuSkFBQjBuSUZhM1oydHA2Wk5CcU5mdjNyWDE4N2swNU1XTDI5WW01TwpoM1ps
U3lhZEo3SDYrdnBjanI5OCtmTHk4ckxpUVRYRFpwUHcwa3h2NHQ2NVQzYXBHWjBQa3VkN0hhY3VT
RUkxa2xDTE5ra0FncVcxCkNsWStuNi9ucVJmMjVxQzF0Mk1lRzdNT0hnejhaVUdIVXNsNUVtdkR2
ZGxlSDNuYmdqYWJoSVBwZzkvckQvckZJSWVTRlhPY3VpQUoKSzBpQyt6L1JJQWxBNExSUXdWcGFX
cXJuaWEyMVp0TERoNjNSVWEycTFZcGtjdFZMd3pEaThiakw4Zmw4WHVsNFZOdHNFaDY2TURxeAp3
YXFVZ0VxZTc2MStTUkpzSkVIN0pBQkIxQ29GcTFLcHZQNzY2eHNlNXRLdWdydGJjRU9sa25NNzRk
NjllMTJPUDMvK3ZPSVJLYlRaCkpEeDBJYmg3eERaVXNtS09UV1FrZ1NUWU5FNENFRkN0VXJDbXBx
YnFPWW05ZGlZdEZxMkJBWjNibGMzeE5kNzkyNnBwbXBWS1JlVncKRkdvOENUbHpZR3RHNDcrcHRs
T3JvMDRTU0lKTjR5UUFBZFVTQlN1YnpkYXppSFgvL3YxcjI5VytmU0tkMXJ4ZENTRWNUN3d3RE1O
OQozMUJBSjlQR2s1QXo5ejI4bURiWGY1U3ZUdEtMcTFiYmtBU1NZTk0xQ1VCdytWK3dscGFXM25q
ampRMFBXN3Y3Mm01WE9tMFlkRkVxClJXWm5WMTBsWEh0TnBOcmlvdk9wR3EydjhTVGt6SDBQTCtx
MFRjeEZ5WXJObnM1V3YwTVNWcEFFbCtPRG1BUWcwUHd2V1BVc3N4Z1kKR0ZpNyszcG9LQ3p0eXBa
S3JYcnBQcG5ldW5WTDZXQlVhRHdKdmJtUS9FMjFwVTZ2dW04a1NWaEJFbHdPRG1JU2dFRHp1V0Jk
dkhoeAp3MlVXOFhoODdhMktEeCsyd25CbHNKcmpnV1BidDI5M09makdqUnRLQnlOZDQwbDQ2RUlZ
cmdkVnkrVlhKWjhrMkVpQ1pra0FnczdQCmdyVzB0UFRPTysrNEh4T05Sb2VIaHgxdjZyMW5zSmJN
cWh2ZmlMWFBXUXV1eHBPZzlVNnhXaklMcSs3cVJCSUVTUkJDNkpVRVFBTisKRnF4NkxnUU1Edzg3
Wm8yVEo4UFlyb1FRamh2WnVFK20xNjlmVnpzYXFScE13b0ZVQ1ArbUNpSHl2K3VvZmtrU1NJSk5w
eVFBR3ZDdApZR1d6MlEwdkJBd01ERGoySGs5TVdFZVBockZkQ1NIeXF5OEh1SyszdUhyMXF1TGhT
Tk5nRWw2YU9UbzFvRzVVclN4ZjJWSDlraVNRCkJKczJTUUQwNEUvQnFsUXFHKzRTV3J2TVltSEJl
dVlabGNOQzB6V1loSGMvZXViN24xTTVMalFiU1FDZ0dYOEsxcmx6NTl3UFdIZVoKeFRQUENNMmVN
NGdHay9Ea1RjMmVMZ2VTQUVBelBoU3NwYVdsbVprWjkyTUdCd2NkNndsZWVTVjAyd2ExMTJBU0Js
SmgyeXltUFpJQQpRRDgrRkt3MzMzelQvWUI0UE82NHc4MzB0UFdkNzlDdWROTklFazdPZmljOW9I
Qk04QU5KQUtDZlpoZXNXN2R1YmJqV2NuQndzUHBsCnNXZ05EYWtjRS96UVNCSnk1dEN4ejZnY0ZI
eEFFZ0JvcWRrRmEycHF5djJBL3Y1K3gxNllrUkdXWG1tb2tTUThjWmtGTi9vaENRQzAKMU5TQ3Rl
RlhWY013SEx1RXBxZXRILytZZHFXYlJwSndjdmJISDRieFhrZDZJd2tBZE5YVWdyWGhWOVcxNjFo
SFIxVU9DRDVwSkFrdgozNk55UlBBSFNRQ2dxK1lWckhxK3FuWjNkMWUvYy9La0ZhckhPWWRFSTBr
NGtBclZRM3hEZ2lRQTBGanpDdGJQZi81ejl3TWNGd0tLClJldkVDWlVEZ2s4OEp5Rm5ubmlyVitX
STRBK1NBRUJqVFNwWTVYTFovVDQzaG1FNHRtR3p0bDFMalNTQkZjMDZJZ2tBOU5ha2d2WEIKQngr
NEg3RDJxVGlzYmRlUzV5UzgreEVybXJWRUVnRG9yVWtGNi96NTh5NmZydjJxT2phbWVFRHdpZWNr
dlBCcnhTT0NQMGdDQUwwMQpvMkRkdW5YTE5FMlhBOWF1dmhvZlZ6d20rTUZ6RW5MbStCelBRdEVR
U1FDZ3ZXWVVyT25wYVpkUG85SG8ydE5Yckw3U2t1Y2tITTZ3CjVrWkxKQUdBOXBRWHJPWGw1Y3VY
TDdzYzRKaEppMFVybVZROEp2akJjeEp5WnZJOFc4WTBSQklBaElIeWduWGp4ZzMzQS9idTNWdjkK
OHRRcFRsL3B5WE1TUmpocG9TZVNBQ0FNbEJlc2l4Y3Z1bnhxR0liaktXT2N2dEtWNXlUODY0T0tS
d1Iva0FRQVlhQzJZRzE0TGFDdgpyNi82NWV5c2xjOXora3BEbnBOd09wdXY3RkE4S1BpQUpBQUlD
YlVGYThOckFZN25ZSnc2cFhBdzhKSG5KSHh2VWVWdzRCdVNBQ0FrCjFCYXNLMWV1dUh3YWo4Y053
NmgraDdzejZNcHpFdGlUcnltU0FDQWsxQmFzYytmT3VYenFXTW82TVdHeHZGMVgzcEx3MGd5TG1u
VkYKRWdDRWhNS0N0YlMwNUg1QVBCNnZmams1cVc0czhKUG5KUHh6UmVGbzRCK1NBQ0E4RkJhc216
ZHZ1bnhxR0lialdzRFVsTHF4d0UrZQprL0RyenlzZUVmeEJFZ0NFaDhLQ2xjMW1YVDUxZkZXZG5l
WDZvTGE4SmVGMGxxdEN1aUlKQU1KRFljR2FtWmx4K2JTcnE2djZKZGNICk5lWXRDWDlmVUR3YytJ
WWtBQWdQVlFXclhDNjdIK0Q0dHBwS0tSb0lmT1k1Q1JtanhvRUlOcElBSUZSVUZTelRORjArWGJ2
WTR2eDUKcmcvcXlYTVNTbXpMMXhOSkFCQXEvaFFzeDcwRXA2Y3RSY09BNzd3bDRlU3M0dUhBTnlR
QlFLaW9LbGo1Zk43bDAxaHMxZHBWcmc5cQp6RnNTcGtxS2h3UGZrQVFBb2FLcVlMbHZGM0k4ekRX
VFVUUUsrTTliRXVidlZqd2MrSVlrQUFnVjM5WmdWYjkwL1dhTFlQT1doQkxyCm1yVkZFZ0NFaXBL
Q3RlRjJJY2RrT2pmSENuYzllVTdDSjd0VURnZStJUWtBd2taSndhcFUzQjV3NGRpTXZiREFDbmR0
ZVV2Q3V4K3AKSFEzOFF4SUFoSTJTZ3VYK1FJeG9ORnI5TXBkVE1RUzBCRzlKZVA5anhjT0JiMGdD
Z0xCUmVDZjNXaHlyV2RsQ0dGck9KTEJ4TEt4SQpBZ0Q5S0NsWTd0dUZIUHV4WFZlK0l0aThKWUdI
VWVxTEpBQUlHeC9PWURsV3MzS1BodEJ5Sm1HQkovdUdGRWtBb0I4ZkNoWUFBSURlCmxCU3M2OWV2
cS9peENCeVNBQnRKQUJBMlNnclcxYXRYVmZ4WUJBNUpnSTBrQUFnYi85ZGdjUnYzMEhJbTRYY2Rm
bzBFL2lJSkFQVFQKQ2dXTEhVTWg1VXhDWllkZkk0Ry9TQUlBL2JESUhRQUFRRElLRmdBQWdHUVVM
QUFBQU1rb1dBQUFBSklwS1ZnN2QrNTArZFJjL1hDYwpuVHN0RldOQUsvQ1doTHV1S1I0T2ZFTVNB
SVNOa29KMS8vMzN1M3pxbUV6amNSVkRRRXZ3bG9UMmp4VVBCNzRoQ1FEQ3hvZExoT1Z5CnVmb2xC
U3UwbkVub1dQSnJKUEFYU1FDZ0h5VUY2Nzc3N25QNWRIRnhzZnBsVDQrS0lhQWxlRXZDbm9yaTRj
QTNKQUZBMkNncFdOdTIKYlhQNXRGQW9WTDhjR0ZBeEJMUUViMGw0dWxQeGNPQWJrZ0FnYkpRVXJP
M2J0N3Q4NnBoTWUzc2o5OTdMT25jOWVVdkMwOTMzaXBMaQpFY0VmSkFGQTJDZ3BXRzF0YlM2Zm1x
YnBXTlBLU1N4ZGVVNUNaMWJ4aU9BUGtnQWdiRlFWckZnczVuSkFMcGVyZm5uNHNJcFJ3SCtlCmsz
Q0ljNWw2SWdrQXdrYlZMc0l2ZnZHTExwL096ODlYdnh3YTRpcWh0cndsNGRWK3JnM3BpaVFBQ0JW
VkJldmhoeDkyK1RTYnpUcXUKQ0l5TUtCb0lmT1k1Q1lsWnhTT0NQMGdDZ0ZCUlZiQU13M0EvSUp0
ZHRjWmlaRVJ3RWt0TG5wTndxb2RURjFvaUNRQkNSVlhCMnJKbAp5KzdkdTEwT3VIVHBVdlhMclZz
am5NVFNrdWNreEExT1hXaUpKQUFJRllWM2NuLzAwVWRkUGpWTk01UEpWTDh6TXNKekNmWGtPUW1u
CmVuZ2FuWlpJQW9Ed1VGaXdPanMzdUZ0Z09wMnVmcmwxYTJSc1ROMXc0QnZQU1lnYlkzL05uMVVO
a1FRQTRhSDJXWVNQUC82NHk2ZW0KYWM3TXpGUy9NelFVZWVFRlRtSnB5SE1TWHUxL29TZGQ2M2dF
RjBrQUVCSnFDNWI3eG13aFJEcWRkbXdkU2lZamp6eEN4OUpOSTBtWQpUVHdTbmE5MVBBS0tKQUFJ
Q2JVRkt4cU45dmYzdXh4UUxwZlBuajNyZURPVllqR1diaHBNd2dmYldZS2pHWklBSUNUVUZpd2hS
Q0tSCmNEOGdtODA2TGdwczNScVpuT1N1RGJwcEpBbHhZL0lmbDlpcnJ4bVNBQ0FNbEJlc0RiK3dD
aUhPbmoyNzlnblFuTWZTVElOSmVMbzcKOVpQZmNQWkNKeVFCUUJnb0wxaWlqaStzUW9qeDhmRnl1
Vno5VG05dkpKTVJyTWZTU1lOSmVMbzdjNldkVlRnNklRa0F0TmVNZ2hXTgpSb2VIaDkyUEtaZkxh
K2ZUclZzamMzUHNLOVJINDBtSUczT2Y3R0kzbVRaSUFnRHROYU5nQ1NHNnU3dGpzWmo3TVlWQ1ll
MThLb1JJCkppTm56bGhjTHRURHBwSXdtemp6NGd3WGlmUkFFZ0RvclVrRlN3anh0YTk5YmNOamFz
Mm5RME9SVEVaOCs5c1dLOTgxc0tra3ZOcWYKdWRMKzdVU0s5YzRhSUFrQU5OYThndFhlM3I3aFJR
RWhSS0ZRU0NhVGp2V3RRb2l0V3lNblRrUnlPV3BXNEcwMkNYSGpSR29ndDJEeAp4elhvU0FJQWpU
V3ZZQWtodXJ1NzNaLzJhaXVYeTYrOTlwcmp5YTgydTJhVlNwRXpaNndubjZScEJaV0VKTVNORTZt
QmtoVTc4K0xNCms1MlgrUHNhVUNRQmdLN2Ftdno3RGg0OGVPM2F0VkpwNDBudzdiZmZ6dVZ5ZzRP
RGhtR3MvWFJvS0RJMEpJUVFzN05XS2lWeU9aSEoKaUZ4T1hMMGFrVDVtcUNBdENhLzJENzBxaEJD
enA3T3AwNFZjUHBKWmlPV1dPcTdlMlNGOXpGQ0JKQURRVXNTeW1uMFNxRktwL1BDSApQNnhuUGhW
Q1JLUFJnWUdCdnI0KzFhTUtvaE1uVHJoOCtzb3JyelJ0SkkwaENiS1FCTmlDbmdSQUowMjlSR2hy
YTJ0Nzdybm42ank0ClhDNi8vZmJieVdSeWJtNU82YWpRZkNRQk5wSUFRRDkzSFQ5K3ZQbS9kY3VX
TFk4ODhzaDc3NzFYNS9IbGNqbWJ6YzdOelVVaWtmYjIKOW1nMHFuUjRRWkZPdTkwTmFHQmdvRmtE
YVJ4SmtJSWtrQVNiQmtrQXRPRlB3UkpDM0gzMzNZOCsrdWd2Zi9uTDI3ZHYxL2xQeXVYeQpsU3RY
TGwyNnRMaTRlT2ZPbldnMEd2SlpWWS9KbENSc0hra2dDVFk5a2dEb29kbUwzRmY5N3JhMjU1NTdy
djYxRnl1eTJXdzJteFZDCkdJYlIrUWZSYURRV2k2MjcraFV0amlUQVJoSUFhTU9IUmU0T3k4dkxa
ODZjK2RXdmZ1WHZNUFFUdUFXdEpFRVJrZ0JiNEpJQUJKb1AKaTl5ZEk5aXk1YW1ubnFybmZvUFFH
MG1BalNRQTBJRC9CY3ZXM2QxOTdOaXhEWjlOQnUyUkJOaElBb0JBYTVXQ0pZUm9iMjhmR1JuaAph
NnNVOWR3ZHUyV1JCSWxJQW15QlRnSVFSTDd0SXF5bG82T2p2Ny8venAwNzE2NWQ4M3NzQWZiWVk0
OTFkSFQ0UFlwTklRbFNrQVRZCk5FZ0NFQ3d0VjdDRUVHMXRiUTgrK0NCVDZtWWNQSGd3RWduOFU0
Tkl3dWFSQk5qMFNBSVFJUDd2SW5SWExwZmZmLy85YytmTytUMlEKSUJrZUh1N3U3dlo3RkpLUmhB
YVFCTmkwVEFMUTRscTlZSzBvRkFvWExseGc1L2FHZHUvZS9kUlRUL2s5Q29WSVFwMUlBbXphSndG
bwpUWUVwV0xibDVXWFROUFA1ZkRxZDlub3J3akFJei9kVWt1Q09KTUFXbmlRQXJTWmdCYXZhclZ1
M2Z2dmIzOXEzYjdaZHYzNzk2dFdyClBnN0pMN3QzNzk2elo4OW5QL3ZaTFZ0YWFGdG8wNUNFRlNT
QkpOaENuZ1NnRlFTNFlBRUFBTFFtdnR3QUFBQklSc0VDQUFDUWpJSUYKQUFBZ0dRVUxBQUJBTWdv
V0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtG
Q3dBQQpRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNN
Z2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrCkZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJ
UnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFkKQUFBQWtsR3dBQUFB
SktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFB
SkpSc0FBQQpBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0FB
QURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJClJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dB
QUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUMKQlFBQUlCa0ZD
d0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdn
VUFBQ0FaQlFzQQpBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJz
RUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBClpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpL
TmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa28KV0FBQUFK
SlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFE
SktGZ0FBQUNTVWJBQQpBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFD
QVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBClNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dB
QVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ00KZ2dV
QUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VD
QUFDUWpJSUZBQUFnR1FVTApBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05n
QVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBCmdHUVVMQUFBQU1rb1dBQUFBSkpS
c0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREoK
S0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0Fa
QlFzQUFBQXlTaFlBQUFBa2xHdwpBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFR
RElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBCkFFaEd3UUlBQUpDTWdnVUFB
Q0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FB
Q1EKaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FR
QUFTRWJCQWdBQWtJeUNCUUFBSUJrRgpDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNB
QUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBCkFJQmtGQ3dBQUFESktG
Z0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJR
c0FBQUEKeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJ
S0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUgpzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNB
WkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCCkFBQklSc0VDQUFD
UWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFB
U0ViQkFnQUEKa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFB
QUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWgpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdB
QUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XCkFBQ0FaQlFz
QUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtG
Z0FBZ0dRVUxBQUEKQU1rb1dBQUFBSkpSc0FBQUFDVDcvM1ZZenJ2YjdEazZBQUFBQUVsRlRrU3VR
bUNDCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178826</attachid>
            <date>2012-12-11 10:00:50 -0800</date>
            <delta_ts>2012-12-12 15:55:49 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-49246-20121211095811.patch</filename>
            <type>text/plain</type>
            <size>58637</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzMyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDEyLTEyLTA1ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJj
ZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFu
dHRpIEtvaXZpc3RvLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGRvZXNuJ3QgYWN0
dWFsbHkgZW5hYmxlIGNhY2hpbmcgb2YgbWFpbiByZXNvdXJjZXMuIFRoYXQgd2lsbCBiZSBkb25l
IGluIGEgbGF0ZXIgcGF0Y2guCisgICAgICAgIFRoZSBNYWluUmVzb3VyY2VMb2FkZXIgYWN0dWFs
bHkgaGFzIGFuIHVuZGVybHlpbmcgU3VicmVzb3VyY2VMb2FkZXIgKHdpdGggdGhlIGNhY2hlIGxh
eWVyIGJldHdlZW4gdGhlbSkuCisgICAgICAgIEluIHNldmVyYWwgcGxhY2VzLCB0aGUgTWFpblJl
c291cmNlTG9hZGVyJ3MgU3VicmVzb3VyY2VMb2FkZXIgaXMgdHJlYXRlZCBhcyBzcGVjaWFsLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpcyBwcmltYXJpbHkgYSByZWZhY3Rvci4g
QSBjb3VwbGUgb2YgZXhwZWN0ZWQgcmVzdWx0cyBjaGFuZ2VkIHNsaWdodGx5LgorCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjpzZXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
dWJyZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6YWRkU3VicmVz
b3VyY2VMb2FkZXIpOiBCZWNhdXNlIHRoZSBTdWJyZXNvdXJjZUxvYWRlciB1bmRlcmx5aW5nIHRo
ZSBtYWluIHJlc291cmNlCisgICAgICAgICAgICBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nIGluIGNl
cnRhaW4gY2FzZXMsIHRyYWNrIGl0IHNlcGFyYXRlbHkgZnJvbSB0aGUgcmVhbCBTdWJyZXNvdXJj
ZUxvYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVtb3ZlU3VicmVz
b3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9h
ZGluZ01haW5SZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxv
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlY2VpdmVkRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjbGVhclJlc291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpmcmFt
ZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyTmF2
aWdhdGlvblBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJl
c291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlZGly
ZWN0UmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjp3aWxs
U2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250
aW51ZUFmdGVyQ29udGVudFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpkYXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9h
ZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OmhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5vdyk6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OnNldFNob3VsZEJ1ZmZlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpsb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
OjppZGVudGlmaWVyKToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgIChNYWluUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpkb2N1bWVudExvYWRlcik6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVl
c3QpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXI6OmRlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXI6OmNhbmNlbGxlZCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVI
b3N0OjptYXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluRXJyb3IpOgor
ICAgICAgICAqIGxvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXI6OnNjaGVkdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjp1bnNjaGVkdWxlKToKKwogMjAxMi0xMi0xMSAgTWFyayBQaWxncmltICA8cGls
Z3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBDbGVhbiB1cCB1bnVzZWQg
aW50ZXJmYWNlcyBpbiBQbGF0Zm9ybVN1cHBvcnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcAkocmV2aXNpb24gMTM3MzI4KQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgwLDEzICsxODAs
NyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRSZXF1ZXN0KGNvbnN0IFJlCiAgICAgLy8gd291
bGQgYmUgYSBXZWJGb3VuZGF0aW9uIGJ1ZyBpZiBpdCBzZW50IGEgcmVkaXJlY3QgY2FsbGJhY2sg
YWZ0ZXIgY29tbWl0LgogICAgIEFTU0VSVCghbV9jb21taXR0ZWQpOwogCi0gICAgS1VSTCBvbGRV
UkwgPSBtX3JlcXVlc3QudXJsKCk7CiAgICAgbV9yZXF1ZXN0ID0gcmVxOwotCi0gICAgLy8gT25s
eSBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpIGlm
IFVSTCBjaGFuZ2VkIChhbmQgaXMgbm9uLW51bGwpLgotICAgIC8vIEFsc28sIGRvbid0IHNlbmQg
aXQgd2hlbiByZXBsYWNpbmcgdW5yZWFjaGFibGUgVVJMcyB3aXRoIGFsdGVybmF0ZSBjb250ZW50
LgotICAgIGlmICghaGFuZGxpbmdVbnJlYWNoYWJsZVVSTCAmJiAhcmVxLnVybCgpLmlzTnVsbCgp
ICYmIG9sZFVSTCAhPSByZXEudXJsKCkpCi0gICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgp
LT5kaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpOwog
fQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRNYWluRG9jdW1lbnRFcnJvcihjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKQEAgLTU4NSw2ICs1NzksOSBAQCBQYXNzUmVmUHRyPEFyY2hpdmVS
ZXNvdXJjZT4gRG9jdW1lbnRMb2FkCiAgICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2UtPmlz
TG9hZGVkKCkpCiAgICAgICAgIHJldHVybiBhcmNoaXZlUmVzb3VyY2VGb3JVUkwodXJsKTsKIAor
ICAgIGlmIChyZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2Up
CisgICAgICAgIHJldHVybiAwOworCiAgICAgLy8gRklYTUU6IFRoaXMgaGFzIHRoZSBzaWRlIGVm
ZmVjdCBvZiBtYWtpbmcgdGhlIHJlc291cmNlIG5vbi1wdXJnZWFibGUuCiAgICAgLy8gSXQgd291
bGQgYmUgYmV0dGVyIGlmIGl0IGRpZG4ndCBoYXZlIHRoaXMgcGVybWFuZW50IGVmZmVjdC4KICAg
ICBpZiAoIXJlc291cmNlLT5tYWtlUHVyZ2VhYmxlKGZhbHNlKSkKQEAgLTgxMSwxMSArODA4LDIy
IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0b3BMb2FkaW5nU3VicmVzb3UKIAogdm9pZCBEb2N1
bWVudExvYWRlcjo6YWRkU3VicmVzb3VyY2VMb2FkZXIoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikK
IHsKKyAgICAvLyBUaGUgbWFpbiByZXNvdXJjZSdzIHVuZGVybHlpbmcgUmVzb3VyY2VMb2FkZXIg
d2lsbCBhc2sgdG8gYmUgYWRkZWQgaGVyZS4KKyAgICAvLyBJdCBpcyBtdWNoIHNpbXBsZXIgdG8g
aGFuZGxlIHNwZWNpYWwgY2FzaW5nIG9mIG1haW4gcmVzb3VyY2UgbG9hZHMgaWYgd2UgZG9uJ3QK
KyAgICAvLyBsZXQgaXQgYmUgYWRkZWQuIEluIHRoZSBtYWluIHJlc291cmNlIGxvYWQgY2FzZSwg
bV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpCisgICAgLy8gd2lsbCBzdGlsbCBiZSBudWxs
IGF0IHRoaXMgcG9pbnQsIGJ1dCBtX2dvdEZpcnN0Qnl0ZSBzaG91bGQgYmUgZmFsc2UgaGVyZSBp
ZiBhbmQgb25seQorICAgIC8vIGlmIHdlIGFyZSBqdXN0IHN0YXJ0aW5nIHRoZSBtYWluIHJlc291
cmNlIGxvYWQuCisgICAgaWYgKCFtX2dvdEZpcnN0Qnl0ZSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVCghbV9zdWJyZXNvdXJjZUxvYWRlcnMuY29udGFpbnMobG9hZGVyKSk7CisgICAgQVNT
RVJUKCFtX21haW5SZXNvdXJjZUxvYWRlciB8fCBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVy
KCkgIT0gbG9hZGVyKTsKICAgICBtX3N1YnJlc291cmNlTG9hZGVycy5hZGQobG9hZGVyKTsKIH0K
IAogdm9pZCBEb2N1bWVudExvYWRlcjo6cmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIoUmVzb3VyY2VM
b2FkZXIqIGxvYWRlcikKIHsKKyAgICBpZiAoIW1fc3VicmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5z
KGxvYWRlcikpCisgICAgICAgIHJldHVybjsKICAgICBtX3N1YnJlc291cmNlTG9hZGVycy5yZW1v
dmUobG9hZGVyKTsKICAgICBjaGVja0xvYWRDb21wbGV0ZSgpOwogICAgIGlmIChGcmFtZSogZnJh
bWUgPSBtX2ZyYW1lKQpAQCAtODgxLDYgKzg4OSwxMCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpz
dGFydExvYWRpbmdNYWluUmVzCiAKICAgICBpZiAobV9yZXF1ZXN0LmlzTnVsbCgpKSB7CiAgICAg
ICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0gMDsKKyAgICAgICAgLy8gSWYgdGhlIGxvYWQgd2Fz
IGFib3J0ZWQgYnkgY2xlYXJpbmcgbV9yZXF1ZXN0LCBpdCdzIHBvc3NpYmxlIHRoZSBBcHBsaWNh
dGlvbkNhY2hlSG9zdAorICAgICAgICAvLyBpcyBub3cgaW4gYSBzdGF0ZSB3aGVyZSBzdGFydGlu
ZyBhbiBlbXB0eSBsb2FkIHdpbGwgYmUgaW5jb25zaXN0ZW50LiBSZXBsYWNlIGl0IHdpdGgKKyAg
ICAgICAgLy8gYSBuZXcgQXBwbGljYXRpb25DYWNoZUhvc3QuCisgICAgICAgIG1fYXBwbGljYXRp
b25DYWNoZUhvc3QgPSBhZG9wdFB0cihuZXcgQXBwbGljYXRpb25DYWNoZUhvc3QodGhpcykpOwog
ICAgICAgICBtYXliZUxvYWRFbXB0eSgpOwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzczMjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNiArMzIsOCBAQAogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIK
ICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgpAQCAtNDQsMTUgKzQ2LDE1IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAj
aW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKLSNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNp
bmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIu
aCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3Iu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZFNj
aGVkdWxlci5oIgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN1YnJlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNpZiBQTEFURk9STShR
VCkKQEAgLTYzLDEzICs2NSwxMSBAQAogI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aCIKICNlbmRpZgogCi0vLyBGSVhNRTogTW9yZSB0aGF0IGlzIGluIGNvbW1vbiB3aXRoIFN1YnJl
c291cmNlTG9hZGVyIHNob3VsZCBtb3ZlIHVwIGludG8gUmVzb3VyY2VMb2FkZXIuCi0KIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTWFpblJlc291cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VMb2FkZXIo
RG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQotICAgIDogUmVzb3VyY2VMb2FkZXIoZG9j
dW1lbnRMb2FkZXItPmZyYW1lKCksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tz
LCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0Ns
aWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIFNraXBTZWN1cml0eUNoZWNrKSkKLSAgICAs
IG1fZGF0YUxvYWRUaW1lcih0aGlzLCAmTWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0
dXRlRGF0YUxvYWROb3cpCisgICAgOiBtX2RhdGFMb2FkVGltZXIodGhpcywgJk1haW5SZXNvdXJj
ZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KQorICAgICwgbV9kb2N1bWVudExv
YWRlcihkb2N1bWVudExvYWRlcikKICAgICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFs
c2UpCiAgICAgLCBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KGZhbHNlKQogICAgICwgbV90aW1l
T2ZMYXN0RGF0YVJlY2VpdmVkKDAuMCkKQEAgLTEwMiwzNCArMTAyLDMyIEBAIHZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpyZWNlaXZlZEVycm9yKGMKICAgICAvLyBkb2N1bWVudCBsb2FkZXJzLiBB
bHNvLCBtYWluUmVjZWl2ZWRFcnJvciBlbmRzIHVwIGNhbGxpbmcgYSBGcmFtZUxvYWREZWxlZ2F0
ZSBtZXRob2QKICAgICAvLyBhbmQgZGlkRmFpbFRvTG9hZCBjYWxscyBhIFJlc291cmNlTG9hZERl
bGVnYXRlIG1ldGhvZCBhbmQgdGhleSBuZWVkIHRvIGJlIGluIHRoZSBjb3JyZWN0IG9yZGVyLgog
ICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNlaXZlZEVycm9yKGVycm9yKTsKK30KIAotICAg
IGlmICghY2FuY2VsbGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxTdGF0
ZSgpKTsKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkRmFpbFRvTG9hZCh0
aGlzLCBlcnJvcik7Ci0gICAgICAgIAotICAgICAgICByZWxlYXNlUmVzb3VyY2VzKCk7Ci0gICAg
fQotCi0gICAgQVNTRVJUKHJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpOwordm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmNhbmNlbCgpCit7CisgICAgY2FuY2VsKFJlc291cmNlRXJyb3IoKSk7CiB9CiAK
LXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3Im
KQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKIHsKKyAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwor
ICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvciA9IGVycm9yLmlzTnVsbCgpID8gZnJhbWVM
b2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCgpKSA6IGVycm9yOworCiAgICAgbV9kYXRh
TG9hZFRpbWVyLnN0b3AoKTsKIAogICAgIGlmIChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KSB7
CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2FuY2VsQ2hlY2soKTsK
ICAgICAgICAgQVNTRVJUKG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kpOwogICAgICAgICBtX3dh
aXRpbmdGb3JDb250ZW50UG9saWN5ID0gZmFsc2U7Ci0gICAgICAgIGRlcmVmKCk7IC8vIGJhbGFu
Y2VzIHJlZiBpbiBkaWRSZWNlaXZlUmVzcG9uc2UKKyAgICAgICAgZGVyZWYoKTsgLy8gYmFsYW5j
ZXMgcmVmIGluIHJlc3BvbnNlUmVjZWl2ZWQKICAgICB9Ci19CiAKLXZvaWQgTWFpblJlc291cmNl
TG9hZGVyOjpkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgLy8g
V2Ugc2hvdWxkIG5vdGlmeSB0aGUgZnJhbWUgbG9hZGVyIGFmdGVyIGZ1bGx5IGNhbmNlbGluZyB0
aGUgbG9hZCwgYmVjYXVzZSBpdCBjYW4gZG8gY29tcGxpY2F0ZWQgd29yawotICAgIC8vIGxpa2Ug
Y2FsbGluZyBET01XaW5kb3c6OnByaW50KCksIGR1cmluZyB3aGljaCBhIGhhbGYtY2FuY2VsZWQg
bG9hZCBjb3VsZCB0cnkgdG8gZmluaXNoLgotICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNl
aXZlZEVycm9yKGVycm9yKTsKKyAgICBpZiAobG9hZGVyKCkpCisgICAgICAgIGxvYWRlcigpLT5j
YW5jZWwocmVzb3VyY2VFcnJvcik7CisKKyAgICBjbGVhclJlc291cmNlKCk7CisgICAgcmVjZWl2
ZWRFcnJvcihyZXNvdXJjZUVycm9yKTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYg
KG1fZmlsdGVyKSB7CkBAIC0xMzksNiArMTM3LDI0IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVy
OjpkaWRDYW5jZWwoY29uc3QKICNlbmRpZgogfQogCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6
Y2xlYXJSZXNvdXJjZSgpCit7CisgICAgaWYgKG1fcmVzb3VyY2UpIHsKKyAgICAgICAgbV9yZXNv
dXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICBtX3Jlc291cmNlID0gMDsKKyAgICB9
Cit9CisKK0ZyYW1lTG9hZGVyKiBNYWluUmVzb3VyY2VMb2FkZXI6OmZyYW1lTG9hZGVyKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlci0+ZnJhbWVMb2FkZXIoKTsKK30KKwor
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBNYWluUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3QoKSBjb25z
dAoreworICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0
KCkgOiBtX2luaXRpYWxSZXF1ZXN0OworfQorCiBSZXNvdXJjZUVycm9yIE1haW5SZXNvdXJjZUxv
YWRlcjo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcigpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5pbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVy
cm9yKHJlcXVlc3QoKSk7CkBAIC0xNjMsNyArMTc5LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2Fk
ZXI6OmNvbnRpbnVlQWZ0ZXJOYQogICAgIGVsc2UgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxp
ZCgpKSB7CiAgICAgICAgIC8vIEEgcmVkaXJlY3QgcmVzdWx0ZWQgaW4gbG9hZGluZyBzdWJzdGl0
dXRlIGRhdGEuCiAgICAgICAgIEFTU0VSVChkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+cmVk
aXJlY3RDb3VudCgpKTsKLSAgICAgICAgaGFuZGxlKCktPmNhbmNlbCgpOworICAgICAgICBjbGVh
clJlc291cmNlKCk7CiAgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocmVxdWVz
dCk7CiAgICAgfQogCkBAIC0xODMsMTAgKzE5OSwxNSBAQCBib29sIE1haW5SZXNvdXJjZUxvYWRl
cjo6aXNQb3N0T3JSZWRpcmVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBib29sIGFs
bEF0T25jZSkKK1Bhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IE1haW5SZXNvdXJjZUxvYWRlcjo6
cmVzb3VyY2VEYXRhKCkKIHsKLSAgICBSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShkYXRhLCBsZW5n
dGgsIGFsbEF0T25jZSk7Ci0gICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRhKGRhdGEs
IGxlbmd0aCk7CisgICAgcmV0dXJuIG1fcmVzb3VyY2UgPyBtX3Jlc291cmNlLT5yZXNvdXJjZUJ1
ZmZlcigpIDogMDsKK30KKwordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnJlZGlyZWN0UmVjZWl2
ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAgQVNTRVJUX1VO
VVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9yZXNvdXJjZSk7CisgICAgd2lsbFNlbmRSZXF1
ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogfQogCiB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKQEAgLTIzOSw4ICsyNjAsNiBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0CiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGly
ZWN0UmVzcG9uc2UpOwotCiAgICAgLy8gRG9uJ3Qgc2V0IHRoaXMgb24gdGhlIGZpcnN0IHJlcXVl
c3QuIEl0IGlzIHNldCB3aGVuIHRoZSBtYWluIGxvYWQgd2FzIHN0YXJ0ZWQuCiAgICAgbV9kb2N1
bWVudExvYWRlci0+c2V0UmVxdWVzdChuZXdSZXF1ZXN0KTsKIApAQCAtMjc3LDE3ICsyOTYsMTYg
QEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDbwogICAgICAgICBpZiAo
IWZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5jYW5TaG93TUlNRVR5cGUobWltZVR5cGUpIHx8IGlz
UmVtb3RlV2ViQXJjaGl2ZSkgewogICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+cG9saWN5Q2hl
Y2tlcigpLT5jYW5ub3RTaG93TUlNRVR5cGUocik7CiAgICAgICAgICAgICAvLyBDaGVjayByZWFj
aGVkVGVybWluYWxTdGF0ZSBzaW5jZSB0aGUgbG9hZCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gY2Fu
Y2VsZWQgaW5zaWRlIG9mIF9oYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3lXaXRoRXJyb3JDb2Rl
OjouCi0gICAgICAgICAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0gICAgICAgICAg
ICAgICAgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKKyAgICAgICAgICAgIHN0b3BMb2Fk
aW5nRm9yUG9saWN5Q2hhbmdlKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgY2FzZSBQb2xpY3lEb3dubG9hZDogewotICAgICAg
ICAvLyBtX2hhbmRsZSBjYW4gYmUgbnVsbCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRl
IHJlc291cmNlIGZyb20gYXBwbGljYXRpb24gY2FjaGUuCi0gICAgICAgIGlmICghbV9oYW5kbGUp
IHsKLSAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VSTEVycm9yKCkpOworICAg
ICAgICAvLyBtX3Jlc291cmNlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBhIHN1YnN0
aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KKyAgICAgICAgaWYgKCFtX3Jl
c291cmNlKSB7CisgICAgICAgICAgICByZWNlaXZlZEVycm9yKGZyYW1lTG9hZGVyKCktPmNsaWVu
dCgpLT5jYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCgpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdp
dGhQb2xpY3lEb3dubG9hZChtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpLCBkb2N1bWVudExvYWRl
cigpLCBpZGVudGlmaWVyKCksIHIpOwpAQCAtMjk3LDcgKzMxNSw3IEBAIHZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyQ28KICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QgPSB0aGlzLT5yZXF1ZXN0KCk7CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnNldE9yaWdpbmFs
VVJMRm9yRG93bmxvYWRSZXF1ZXN0KHJlcXVlc3QpOwogCi0gICAgICAgIGZyYW1lTG9hZGVyKCkt
PmNsaWVudCgpLT5kb3dubG9hZChtX2hhbmRsZS5nZXQoKSwgcmVxdWVzdCwgcik7CisgICAgICAg
IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5kb3dubG9hZChsb2FkZXIoKS0+aGFuZGxlKCksIHJl
cXVlc3QsIHIpOwogCiAgICAgICAgIC8vIEl0IG1pZ2h0IGhhdmUgZ29uZSBtaXNzaW5nCiAgICAg
ICAgIGlmIChmcmFtZUxvYWRlcigpKQpAQCAtMzI5LDEzICszNDcsOSBAQCB2b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyB3
ZSBtYXkgaGF2ZSBjYW5jZWxsZWQgdGhpcyBsb2FkIGFzIHBhcnQgb2Ygc3dpdGNoaW5nIHRvIGZh
bGxiYWNrIGNvbnRlbnQKLSAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0gICAgICAg
IFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uocik7Ci0KLSAgICBpZiAobV9kb2N1
bWVudExvYWRlciAmJiAhbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpICYmIG1fc3Vic3Rp
dHV0ZURhdGEuaXNWYWxpZCgpKSB7CisgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3Bw
aW5nKCkgJiYgbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKICAgICAgICAgaWYgKG1fc3Vi
c3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCkpCi0gICAgICAgICAgICBkaWRSZWNlaXZlRGF0
YShtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+ZGF0YSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNv
bnRlbnQoKS0+c2l6ZSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpLCB0cnVl
KTsKKyAgICAgICAgICAgIGRhdGFSZWNlaXZlZCgwLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQo
KS0+ZGF0YSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKTsKICAgICAgICAg
aWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3BwaW5nKCkpCiAgICAgICAgICAgICBkaWRGaW5p
c2hMb2FkaW5nKDApOwogICAgIH0KQEAgLTM1MiwxMSArMzY2LDEyIEBAIHZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyQ28KICAgICBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5
ID0gZmFsc2U7CiAgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3BwaW5nKCkpCiAgICAg
ICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSwgbV9yZXNwb25zZSk7Ci0gICAg
ZGVyZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGluIGRpZFJlY2VpdmVSZXNwb25zZQorICAgIGRlcmVm
KCk7IC8vIGJhbGFuY2VzIHJlZiBpbiByZXNwb25zZVJlY2VpdmVkCiB9CiAKLXZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsKKyAgICBBU1NFUlRf
VU5VU0VEKHJlc291cmNlLCBtX3Jlc291cmNlID09IHJlc291cmNlKTsKICAgICBpZiAoZG9jdW1l
bnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tGb3JN
YWluUmVzcG9uc2UocmVxdWVzdCgpLCByKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0zODIsNyAr
Mzk3LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwbwogCiAgICAg
aWYgKG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQpIHsKICAgICAgICAgbV9kb2N1bWVudExvYWRl
ci0+c2V0dXBGb3JSZXBsYWNlKCk7Ci0gICAgICAgIGNsZWFyUmVzb3VyY2VEYXRhKCk7CisgICAg
ICAgIG1fcmVzb3VyY2UtPmNsZWFyKCk7CiAgICAgfQogICAgIAogICAgIGlmIChyLmlzTXVsdGlw
YXJ0KCkpCkBAIC0zOTgsNyArNDEzLDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVSZXNwbwogCiAgICAgQVNTRVJUKCFtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsKICAg
ICBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5ID0gdHJ1ZTsKLSAgICByZWYoKTsgLy8gYmFsYW5j
ZWQgYnkgZGVyZWYgaW4gY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kgYW5kIGRpZENhbmNlbAor
ICAgIHJlZigpOyAvLyBiYWxhbmNlZCBieSBkZXJlZiBpbiBjb250aW51ZUFmdGVyQ29udGVudFBv
bGljeSBhbmQgY2FuY2VsCiAKICAgICAvLyBBbHdheXMgc2hvdyBjb250ZW50IHdpdGggdmFsaWQg
c3Vic3RpdHV0ZSBkYXRhLgogICAgIGlmIChtX2RvY3VtZW50TG9hZGVyLT5zdWJzdGl0dXRlRGF0
YSgpLmlzVmFsaWQoKSkgewpAQCAtNDIzLDExICs0MzgsMTEgQEAgdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVSZXNwbwogICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIo
KS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIGNhbGxDb250aW51ZUFmdGVyQ29udGVu
dFBvbGljeSwgdGhpcyk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFM
ZW5ndGgsIGJvb2wgYWxsQXRPbmNlKQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRhdGFSZWNl
aXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5n
dGgpCiB7CiAgICAgQVNTRVJUKGRhdGEpOwogICAgIEFTU0VSVChsZW5ndGggIT0gMCk7Ci0KKyAg
ICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJjZSA9PSBtX3Jlc291cmNlKTsKICAgICBB
U1NFUlQoIW1fcmVzcG9uc2UuaXNOdWxsKCkpOwogCiAjaWYgVVNFKENGTkVUV09SSykgfHwgUExB
VEZPUk0oTUFDKQpAQCAtNDUyLDE2ICs0NjcsMTUgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVEYXRhKAogICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGJsb2NrZWREYXRh
LCB0aGF0IG1lYW5zIHdlJ3JlIHN0aWxsIGFjY3VtdWxhdGluZyBkYXRhCiAgICAgICAgIGlmICgh
YmxvY2tlZERhdGEpIHsKICAgICAgICAgICAgIC8vIFRyYW5zaXRpb24gdG8gY29tbWl0dGVkIHN0
YXRlLgotICAgICAgICAgICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKCIiLCAwLCAw
LCBmYWxzZSk7CisgICAgICAgICAgICBkb2N1bWVudExvYWRlcigpLT5yZWNlaXZlZERhdGEoMCwg
MCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBkYXRhID0gYmxv
Y2tlZERhdGE7Ci0gICAgICAgIGVuY29kZWREYXRhTGVuZ3RoID0gLTE7CiAgICAgfQogI2VuZGlm
CiAKLSAgICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYWluUmVz
b3VyY2VEYXRhUmVjZWl2ZWQoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRP
bmNlKTsKKyAgICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYWlu
UmVzb3VyY2VEYXRhUmVjZWl2ZWQoZGF0YSwgbGVuZ3RoLCAtMSwgZmFsc2UpOwogCiAgICAgLy8g
VGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8gYW55dGhpbmcgaW5jbHVkaW5nIHBvc3Np
Ymx5IHJlbW92aW5nIHRoZSBsYXN0CiAgICAgLy8gcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0OyBv
bmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMyNjYyMTYuCkBAIC00NjksNyArNDgzLDcgQEAgdm9pZCBN
YWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKAogCiAgICAgbV90aW1lT2ZMYXN0RGF0
YVJlY2VpdmVkID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAKLSAgICBSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwg
YWxsQXRPbmNlKTsKKyAgICBkb2N1bWVudExvYWRlcigpLT5yZWNlaXZlZERhdGEoZGF0YSwgbGVu
Z3RoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKFdlYkZpbHRlckV2YWx1YXRv
ciAqZmlsdGVyID0gbV9maWx0ZXIpIHsKQEAgLTQ5MCw3ICs1MDQsNyBAQCB2b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluCiAgICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gQ0ZO
ZXR3b3JrIHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUgZGlzcGF0Y2hlZCBldmVuIHdoZW4gbG9hZHMg
YXJlIGRlZmVycmVkLgogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNjMwNDYwMD4gZm9yIG1v
cmUgZGV0YWlscy4KICNpZiAhVVNFKENGKQotICAgIEFTU0VSVCghZGVmZXJzTG9hZGluZygpIHx8
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNEZWJ1Z2dlclBhdXNlZChtX2ZyYW1lLmdldCgp
KSk7CisgICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkgfHwgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjppc0RlYnVnZ2VyUGF1c2VkKG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkpKTsKICNlbmRp
ZgogCiAgICAgLy8gVGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8gYW55dGhpbmcgaW5j
bHVkaW5nIHBvc3NpYmx5IHJlbW92aW5nIHRoZSBsYXN0CkBAIC01MDYsNyArNTIwLDcgQEAgdm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbgogICAgICAgICAvLyBSZW1vdmUg
dGhpcy0+bV9maWx0ZXIgZWFybHkgc28gZGlkUmVjZWl2ZURhdGEgZG9lc24ndCBzZWUgaXQuCiAg
ICAgICAgIG1fZmlsdGVyID0gMDsKICAgICAgICAgaWYgKGRhdGEpCi0gICAgICAgICAgICBkaWRS
ZWNlaXZlRGF0YShkYXRhLCBsZW5ndGgsIC0xLCBmYWxzZSk7CisgICAgICAgICAgICBkYXRhUmVj
ZWl2ZWQobV9yZXNvdXJjZS5nZXQoKSwgZGF0YSwgbGVuZ3RoKTsKICAgICAgICAgd2tGaWx0ZXJS
ZWxlYXNlKGZpbHRlcik7CiAgICAgfQogI2VuZGlmCkBAIC01MTYsMTMgKzUzMCwxOCBAQCB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluCiAKICAgICBkb2N1bWVudExvYWRl
cigpLT50aW1pbmcoKS0+c2V0UmVzcG9uc2VFbmQoZmluaXNoVGltZSA/IGZpbmlzaFRpbWUgOiAo
bV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkID8gbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkIDogbW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpKTsKICAgICBkb2N1bWVudExvYWRlcigpLT5maW5p
c2hlZExvYWRpbmcoKTsKLSAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhmaW5p
c2hUaW1lKTsKIAogICAgIGRsLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5maW5pc2hlZExvYWRp
bmdNYWluUmVzb3VyY2UoKTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bm90
aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogeworICAgIEFTU0VSVF9VTlVT
RUQocmVzb3VyY2UsIG1fcmVzb3VyY2UgPT0gcmVzb3VyY2UpOworICAgIGlmICghbV9yZXNvdXJj
ZSB8fCAoIW1fcmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiAhbV9yZXNvdXJjZS0+d2FzQ2Fu
Y2VsZWQoKSkpIHsKKyAgICAgICAgZGlkRmluaXNoTG9hZGluZyhtX3Jlc291cmNlLT5sb2FkRmlu
aXNoVGltZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogI2lmIFBMQVRGT1JNKE1BQykg
JiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDgwCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIHdrRmlsdGVyUmVsZWFzZShtX2ZpbHRl
cik7CkBAIC01MzAsNiArNTQ5LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwo
Y29uc3QgUgogICAgIH0KICNlbmRpZgogCisgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ig
PSBtX3Jlc291cmNlLT5yZXNvdXJjZUVycm9yKCk7CiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCkt
PmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpbkVycm9yKHJl
cXVlc3QoKSwgZXJyb3IpKQogICAgICAgICByZXR1cm47CiAKQEAgLTU0NSw3ICs1NjUsNiBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSCiB2b2lkIE1haW5SZXNvdXJj
ZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkxvYWRlcik7Ci0gICAgUmVzb3VyY2VMb2FkZXI6
OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVy
KG1faW5pdGlhbFJlcXVlc3QpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc3Vic3RpdHV0ZURhdGEp
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fZGF0YUxvYWRUaW1lcik7CkBAIC01NjQsNyArNTgzLDcg
QEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZVN1YnN0aXR1dAogICAgIG1faW5pdGlh
bFJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKICAgICAgICAgCiAgICAgUmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZSh1cmwsIG1fc3Vic3RpdHV0ZURhdGEubWltZVR5cGUoKSwgbV9zdWJzdGl0
dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgbV9zdWJzdGl0dXRlRGF0YS50ZXh0RW5jb2Rpbmco
KSwgIiIpOwotICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CisgICAgcmVzcG9uc2VS
ZWNlaXZlZCgwLCByZXNwb25zZSk7CiB9CiAKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpzdGFy
dERhdGFMb2FkVGltZXIoKQpAQCAtNTg3LDI5ICs2MDYsOCBAQCB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6aGFuZGxlU3Vic3RpdHV0CiAgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZE5v
dygwKTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWROb3coUmVzb3VyY2VSZXF1
ZXN0JiByKQotewotICAgIEFTU0VSVCghbV9oYW5kbGUpOwotICAgIEFTU0VSVCghZGVmZXJzTG9h
ZGluZygpKTsKLQotI2lmIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQotICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5yZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+YWRk
TWFpblJlc291cmNlTG9hZCh0aGlzKTsKLSNlbHNlCi0gICAgcmVzb3VyY2VMb2FkU2NoZWR1bGVy
KCktPmFkZE1haW5SZXNvdXJjZUxvYWQodGhpcyk7Ci0jZW5kaWYKLQotICAgIGlmIChtX3N1YnN0
aXR1dGVEYXRhLmlzVmFsaWQoKSkKLSAgICAgICAgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29v
bihyKTsKLSAgICBlbHNlCi0gICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgciwgdGhpcywgZmFsc2Us
IHRydWUpOwotCi0gICAgcmV0dXJuOwotfQotCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9h
ZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHIsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0
dXRlRGF0YSkKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgaW5pdGlhbFJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0
YSkKIHsKLSAgICBBU1NFUlQoIW1faGFuZGxlKTsKLQogICAgIC8vIEl0IGFwcGVhcnMgdGhhdCBp
dCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBsb2FkIHRvIGJlIGNhbmNlbGxlZCBhbmQgZGVyZWZlbmNl
ZCBieSB0aGUgRG9jdW1lbnRMb2FkZXIKICAgICAvLyBpbiB3aWxsU2VuZFJlcXVlc3QoKSBpZiBs
b2FkTm93KCkgaXMgY2FsbGVkLgogICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IHByb3Rl
Y3QodGhpcyk7CkBAIC02MTksNyArNjE3LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6Omxv
YWQoY29uc3QgUmVzbwogICAgIEFTU0VSVChkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+bmF2
aWdhdGlvblN0YXJ0KCkpOwogICAgIEFTU0VSVCghZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCkt
PmZldGNoU3RhcnQoKSk7CiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPm1hcmtGZXRj
aFN0YXJ0KCk7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qocik7CisgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOwogCiAgICAgLy8gU2VuZCB0aGlzIHN5bnRo
ZXRpYyBkZWxlZ2F0ZSBjYWxsYmFjayBzaW5jZSBjbGllbnRzIGV4cGVjdCBpdCwgYW5kCiAgICAg
Ly8gd2Ugbm8gbG9uZ2VyIHNlbmQgdGhlIGNhbGxiYWNrIGZyb20gd2l0aGluIE5TVVJMQ29ubmVj
dGlvbiBmb3IKQEAgLTYyNywzNyArNjI1LDY2IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjps
b2FkKGNvbnN0IFJlc28KICAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VSZXNw
b25zZSgpKTsKICAgICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7CiAKLSAgICAvLyA8cmRh
cjovL3Byb2JsZW0vNDgwMTA2Nj4KLSAgICAvLyB3aWxsU2VuZFJlcXVlc3QoKSBpcyBsaWFibGUg
dG8gbWFrZSB0aGUgY2FsbCB0byBmcmFtZUxvYWRlcigpIHJldHVybiBudWxsLCBzbyB3ZSBuZWVk
IHRvIGNoZWNrIHRoYXQgaGVyZQotICAgIGlmICghZnJhbWVMb2FkZXIoKSB8fCByZXF1ZXN0Lmlz
TnVsbCgpKSB7Ci0gICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAg
ICAgIHJlbGVhc2VSZXNvdXJjZXMoKTsKKyAgICAvLyB3aWxsU2VuZFJlcXVlc3QoKSBtYXkgbGVh
ZCB0byBvdXIgRG9jdW1lbnRMb2FkZXIgYmVpbmcgZGV0YWNoZWQgb3IgY2FuY2VsbGluZyB0aGUg
bG9hZCB2aWEgbnVsbGluZyB0aGUgUmVzb3VyY2VSZXF1ZXN0LgorICAgIGlmICghZG9jdW1lbnRM
b2FkZXIoKS0+ZnJhbWUoKSB8fCByZXF1ZXN0LmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgfQogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5
YmVMb2FkTWFpblJlc291cmNlKHJlcXVlc3QsIG1fc3Vic3RpdHV0ZURhdGEpOwogCi0gICAgaWYg
KGRlZmVyc0xvYWRpbmcoKSkKLSAgICAgICAgbV9pbml0aWFsUmVxdWVzdCA9IHJlcXVlc3Q7Ci0g
ICAgZWxzZQotICAgICAgICBsb2FkTm93KHJlcXVlc3QpOworICAgIGlmIChtX3N1YnN0aXR1dGVE
YXRhLmlzVmFsaWQoKSkgeworICAgICAgICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWRTb29uKHJl
cXVlc3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChSZXNvdXJjZUxvYWRlck9wdGlvbnMsIG1haW5SZXNvdXJjZUxvYWRPcHRpb25zLAorICAgICAg
ICAoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBTa2lwU2VjdXJp
dHlDaGVjaykpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNoZWRSZXNvdXJjZVJlcXVl
c3QocmVxdWVzdCwgbWFpblJlc291cmNlTG9hZE9wdGlvbnMpOworICAgIG1fcmVzb3VyY2UgPSBk
b2N1bWVudExvYWRlcigpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0TWFpblJlc291
cmNlKGNhY2hlZFJlc291cmNlUmVxdWVzdCk7CisgICAgaWYgKCFtX3Jlc291cmNlKSB7CisgICAg
ICAgIGRvY3VtZW50TG9hZGVyKCktPnNldFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKKwor
ICAgIC8vIFdlIG5lZWQgdG8gd2FpdCB1bnRpbCBhZnRlciByZXF1ZXN0TWFpblJlc291cmNlKCkg
aXMgY2FsbGVkIHRvIHNldFJlcXVlc3QoKSwgYmVjYXVzZSB0aGVyZSBhcmUgYSBidW5jaCBvZiBo
ZWFkZXJzIHNldCB3aGVuCisgICAgLy8gdGhlIHVuZGVybHlpbmcgUmVzb3VyY2VMb2FkZXIgaXMg
Y3JlYXRlZCwgYW5kIERvY3VtZW50TG9hZGVyOjptX3JlcXVlc3QgbmVlZHMgdG8gaW5jbHVkZSB0
aG9zZS4gSG93ZXZlciwgdGhlIGNhY2hlIHdpbGwKKyAgICAvLyBzdHJpcCB0aGUgZnJhZ21lbnQg
aWRlbnRpZmllciAod2hpY2ggRG9jdW1lbnRMb2FkZXI6Om1fcmVxdWVzdCBzaG91bGQgYWxzbyBp
bmNsdWRlKSwgc28gYWRkIHRoYXQgYmFjayBpbi4KKyAgICBpZiAobG9hZGVyKCkpCisgICAgICAg
IHJlcXVlc3QgPSBsb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCk7CisgICAgaWYgKGluaXRpYWxS
ZXF1ZXN0LnVybCgpICE9IHJlcXVlc3QudXJsKCkpIHsKKyAgICAgICAgQVNTRVJUKGVxdWFsSWdu
b3JpbmdGcmFnbWVudElkZW50aWZpZXIoaW5pdGlhbFJlcXVlc3QudXJsKCksIHJlcXVlc3QudXJs
KCkpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRVUkwoaW5pdGlhbFJlcXVlc3QudXJsKCkpOworICAg
IH0KKyAgICBkb2N1bWVudExvYWRlcigpLT5zZXRSZXF1ZXN0KHJlcXVlc3QpOwogfQogCiB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKIHsKLSAg
ICBSZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOworICAgIGlmIChsb2Fk
ZXIoKSkKKyAgICAgICAgbG9hZGVyKCktPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKK30KIAot
ICAgIGlmIChkZWZlcnMpIHsKLSAgICAgICAgaWYgKG1fZGF0YUxvYWRUaW1lci5pc0FjdGl2ZSgp
KQotICAgICAgICAgICAgbV9kYXRhTG9hZFRpbWVyLnN0b3AoKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBpZiAobV9pbml0aWFsUmVxdWVzdC5pc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybjsK
K2Jvb2wgTWFpblJlc291cmNlTG9hZGVyOjpkZWZlcnNMb2FkaW5nKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbG9hZGVyKCkgPyBsb2FkZXIoKS0+ZGVmZXJzTG9hZGluZygpIDogZmFsc2U7Cit9CiAK
LSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGluaXRpYWxSZXF1ZXN0KG1faW5pdGlhbFJlcXVlc3Qp
OwotICAgICAgICBtX2luaXRpYWxSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgICAg
IGxvYWROb3coaW5pdGlhbFJlcXVlc3QpOwotICAgIH0KK3ZvaWQgTWFpblJlc291cmNlTG9hZGVy
OjpzZXRTaG91bGRCdWZmZXJEYXRhKERhdGFCdWZmZXJpbmdQb2xpY3kgc2hvdWxkQnVmZmVyRGF0
YSkKK3sKKyAgICBBU1NFUlQobV9yZXNvdXJjZSk7CisgICAgbV9yZXNvdXJjZS0+c2V0U2hvdWxk
QnVmZmVyRGF0YShzaG91bGRCdWZmZXJEYXRhKTsKK30KKworUmVzb3VyY2VMb2FkZXIqIE1haW5S
ZXNvdXJjZUxvYWRlcjo6bG9hZGVyKCkgY29uc3QKK3sgCisgICAgcmV0dXJuIG1fcmVzb3VyY2Ug
PyBtX3Jlc291cmNlLT5sb2FkZXIoKSA6IDA7Cit9CisKK3Vuc2lnbmVkIGxvbmcgTWFpblJlc291
cmNlTG9hZGVyOjppZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBpZiAoUmVzb3VyY2VMb2FkZXIq
IHJlc291cmNlTG9hZGVyID0gbG9hZGVyKCkpCisgICAgICAgIHJldHVybiByZXNvdXJjZUxvYWRl
ci0+aWRlbnRpZmllcigpOworICAgIHJldHVybiAwOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAxMzczMjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDYgKzI5LDggQEAKICNpZm5kZWYgTWFpblJlc291cmNlTG9hZGVyX2gKICNkZWZpbmUg
TWFpblJlc291cmNlTG9hZGVyX2gKIAorI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5
cGVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRl
RGF0YS5oIgpAQCAtNDksMjEgKzUxLDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZv
cm1TdGF0ZTsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIAotY2xhc3MgTWFpblJlc291cmNlTG9h
ZGVyIDogcHVibGljIFJlc291cmNlTG9hZGVyIHsKK2NsYXNzIE1haW5SZXNvdXJjZUxvYWRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPE1haW5SZXNvdXJjZUxvYWRlcj4sIHB1YmxpYyBDYWNoZWRSYXdS
ZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRM
b2FkZXIqKTsKICAgICB2aXJ0dWFsIH5NYWluUmVzb3VyY2VMb2FkZXIoKTsKIAogICAgIHZvaWQg
bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwotICAg
IHZpcnR1YWwgdm9pZCBhZGREYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGJvb2wgYWxsQXRPbmNlKSBP
VkVSUklERTsKKyAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgY2FuY2VsKGNvbnN0IFJlc291
cmNlRXJyb3ImKTsKKyAgICBSZXNvdXJjZUxvYWRlciogbG9hZGVyKCkgY29uc3Q7CisgICAgUGFz
c1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gcmVzb3VyY2VEYXRhKCk7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0RGVmZXJzTG9hZGluZyhib29sKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxvbmcgbG9uZyBlbmNvZGVkRGF0
YUxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CisgICAgdm9pZCBzZXRE
ZWZlcnNMb2FkaW5nKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVm
ZmVyaW5nUG9saWN5KTsKIAogI2lmIEhBVkUoUlVOTE9PUF9USU1FUikKICAgICB0eXBlZGVmIFJ1
bkxvb3BUaW1lcjxNYWluUmVzb3VyY2VMb2FkZXI+IE1haW5SZXNvdXJjZUxvYWRlclRpbWVyOwpA
QCAtNzEsMTggKzcyLDIxIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIFRpbWVyPE1haW5SZXNvdXJj
ZUxvYWRlcj4gTWFpblJlc291cmNlTG9hZGVyVGltZXI7CiAjZW5kaWYKIAorICAgIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllcigpIGNvbnN0OwogICAgIGJvb2wgaXNMb2FkaW5nTXVsdGlwYXJ0Q29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQ7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3Q7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWFpblJlc291cmNlTG9hZGVyKERvY3Vt
ZW50TG9hZGVyKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJj
ZUVycm9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNv
dXJjZUVycm9yJikgT1ZFUlJJREU7Ci0KLSAgICB2b2lkIGxvYWROb3coUmVzb3VyY2VSZXF1ZXN0
Jik7CisgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRhdGFSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBPVkVS
UklERTsKIAorICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOworICAgIHZvaWQgZGlkRmluaXNo
TG9hZGluZyhkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdm9pZCBoYW5kbGVTdWJzdGl0dXRlRGF0
YUxvYWRTb29uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgaGFuZGxlU3Vic3Rp
dHV0ZURhdGFMb2FkTm93KE1haW5SZXNvdXJjZUxvYWRlclRpbWVyKik7CiAKQEAgLTEwNCwxMCAr
MTA4LDIyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdWJzdGl0dXRlTUlNRVR5cGVGcm9tUGx1Z2lu
RGF0YWJhc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogI2VuZGlmCiAKKyAgICBGcmFtZUxv
YWRlciogZnJhbWVMb2FkZXIoKSBjb25zdDsKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRM
b2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50TG9hZGVyLmdldCgpOyB9CisKKyAgICBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdDsKKyAgICB2b2lkIGNsZWFyUmVz
b3VyY2UoKTsKKworICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0OworCisgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7CisKICAgICBSZXNv
dXJjZVJlcXVlc3QgbV9pbml0aWFsUmVxdWVzdDsKICAgICBTdWJzdGl0dXRlRGF0YSBtX3N1YnN0
aXR1dGVEYXRhOworICAgIFJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKIAogICAgIE1haW5S
ZXNvdXJjZUxvYWRlclRpbWVyIG1fZGF0YUxvYWRUaW1lcjsKKyAgICBSZWZQdHI8RG9jdW1lbnRM
b2FkZXI+IG1fZG9jdW1lbnRMb2FkZXI7CiAKICAgICBib29sIG1fbG9hZGluZ011bHRpcGFydENv
bnRlbnQ7CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5OwpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzczMjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTEsNiArMjUxLDkgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJl
cwogI2VuZGlmCiAgICAgfQogICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CisKKyAgICBpZiAoIXJl
ZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkgJiYgIW1fZG9jdW1lbnRMb2FkZXItPmlzQ29tbWl0dGVk
KCkpCisgICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpOwogfQogCiB2b2lkIFJlc291cmNlTG9h
ZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAxMzcz
MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VFcnJvciBjYW5ub3RT
aG93VVJMRXJyb3IoKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhi
b29sKTsKKyAgICBib29sIGRlZmVyc0xvYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyc0xv
YWRpbmc7IH0KIAogICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQogCkBAIC0xNjcsNyArMTY4LDYgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgZGlkRmluaXNoTG9hZGluZ09uZVBhcnQoZG91YmxlIGZpbmlzaFRpbWUpOwogCiAgICAgYm9v
bCBjYW5jZWxsZWQoKSBjb25zdCB7IHJldHVybiBtX2NhbmNlbGxlZDsgfQotICAgIGJvb2wgZGVm
ZXJzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJzTG9hZGluZzsgfQogCiAgICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsKICAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhv
c3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlSG9zdC5jcHAJKHJldmlzaW9uIDEzNzMyOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRG
YWxsCiAgICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsKICAgICAgICAg
ICAgIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZSA9IEFwcGxpY2F0aW9uQ2FjaGVHcm91
cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5SZXF1ZXN0KHJlcXVlc3QsIGRvY3VtZW50TG9hZGVyKCkp
OwogCi0gICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBs
aWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBtX21h
aW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKHNjaGVk
dWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRl
cigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGlj
YXRpb25DYWNoZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KICAgICB9CkBAIC0xMTcsNyArMTE3LDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6
bWF5YmVMb2FkRmFsbAogICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpKSB7
CiAgICAgICAgICAgICBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmZhbGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0LCBtX2RvY3Vt
ZW50TG9hZGVyKTsKIAotICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3Vy
Y2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2Fk
ZXIoKSwgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKKyAgICAgICAgICAg
IGlmIChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9j
dW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCktPmxvYWRlcigpLCBtX21haW5SZXNv
dXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJhd1Jlc291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCShyZXZpc2lvbiAxMzczMjgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05OCw2ICs5OCw3IEBAIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmFsbENsaWVudHNSZW1v
dmUKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CisgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IHByb3RlY3QodGhpcyk7CiAg
ICAgaWYgKCFyZXNwb25zZS5pc051bGwoKSkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZUNsaWVu
dFdhbGtlcjxDYWNoZWRSYXdSZXNvdXJjZUNsaWVudD4gdyhtX2NsaWVudHMpOwogICAgICAgICB3
aGlsZSAoQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQqIGMgPSB3Lm5leHQoKSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cAkocmV2aXNpb24gMTM3MzI4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzA2LDcgKzcwNiw4IEBAIHZv
aWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWREb25lKENhY2gKICAgICBSZWZQdHI8RG9jdW1l
bnQ+IHByb3RlY3REb2N1bWVudChtX2RvY3VtZW50KTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9U
SU1JTkcpCi0gICAgaWYgKHJlc291cmNlKSB7CisgICAgLy8gRklYTUU6IEFkZCByZXNvdXJjZSB0
aW1pbmcgc3VwcG9ydCBmb3IgbWFpbiByZXNvdXJjZXMuCisgICAgaWYgKHJlc291cmNlICYmIHJl
c291cmNlLT50eXBlKCkgIT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSkgewogICAgICAg
ICBIYXNoTWFwPENhY2hlZFJlc291cmNlKiwgSW5pdGlhdG9ySW5mbz46Oml0ZXJhdG9yIGluaXRp
YXRvckl0ID0gbV9pbml0aWF0b3JNYXAuZmluZChyZXNvdXJjZSk7CiAgICAgICAgIGlmIChpbml0
aWF0b3JJdCAhPSBtX2luaXRpYXRvck1hcC5lbmQoKSkgewogICAgICAgICAgICAgQVNTRVJUKGRv
Y3VtZW50KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRl
ck1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVu
dExvYWRlck1hYy5jcHAJKHJldmlzaW9uIDEzNzMyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw4ICs1NSw4
IEBAIHN0YXRpYyB2b2lkIHVuc2NoZWR1bGVBbGwoY29uc3QgUmVzb3VyY2UKIAogdm9pZCBEb2N1
bWVudExvYWRlcjo6c2NoZWR1bGUoU2NoZWR1bGVQYWlyKiBwYWlyKQogewotICAgIGlmIChtX21h
aW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkpCi0gICAg
ICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+c2NoZWR1bGUocGFpcik7CisgICAg
aWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIo
KSAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpKQorICAgICAgICBt
X21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpLT5zY2hlZHVsZShwYWlyKTsK
ICAgICBzY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAgICAgc2NoZWR1
bGVBbGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX211
bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkBAIC02NCw4ICs2NCw4IEBAIHZvaWQg
RG9jdW1lbnRMb2FkZXI6OnNjaGVkdWxlKFNjaGVkdWxlUGEKIAogdm9pZCBEb2N1bWVudExvYWRl
cjo6dW5zY2hlZHVsZShTY2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYgKG1fbWFpblJlc291
cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKSkKLSAgICAgICAgbV9t
YWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLT51bnNjaGVkdWxlKHBhaXIpOworICAgIGlmICht
X21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCkgJiYg
bV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKSkKKyAgICAgICAgbV9tYWlu
UmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKS0+dW5zY2hlZHVsZShwYWlyKTsKICAg
ICB1bnNjaGVkdWxlQWxsKG1fc3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKICAgICB1bnNjaGVk
dWxlQWxsKG1fcGx1Z0luU3RyZWFtTG9hZGVycywgcGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbCht
X211bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MzczMjgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0xMS0yOCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJvdXRlIG1haW4gcmVzb3VyY2UgbG9hZHMgdGhyb3VnaCB0aGUgbWVtb3J5IGNh
Y2hlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDky
NDYKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbDogVGhlIG1haW4gcmVz
b3VyY2UncyB1cmwgd2lsbCBleGNsdWRlIHRoZSBmcmFnbWVudCBpZGVudGlmaWVyIGhlcmUuCisg
ICAgICAgICogaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1v
bi1yZWRpcmVjdC1leHBlY3RlZC50eHQ6IFRoZSBlcnJvciBjb2RlIGZvciBsb2FkcyBjYW5jZWxs
ZWQKKyAgICAgICAgICAgIGJ5IGFuIGVtYmVkZGVyJ3Mgd2lsbFNlbmRSZXF1ZXN0KCkgd2lsbCBz
aG93IGFzIHN0YW5kYXJkIGxvYWQgY2FuY2VsbGF0aW9ucyByYXRoZXIgdGhhbiBhcyBhIGNvbnRl
bnQgcG9saWN5CisgICAgICAgICAgICBmYWlsdXJlLiBUaGlzIHdhcyBhbiBvZGQgcXVpcmsgb2Yg
aG93IE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KCkgd2FzIGltcGxlbWVudGVk
IChuYW1lbHksIGRvaW5nIGEKKyAgICAgICAgICAgIGNvbnRlbnQgcG9saWN5IGNoZWNrIG9uIFJl
c291cmNlUmVxdWVzdHMgd2l0aCBlbXB0eSB1cmxzKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJl
ZGlyZWN0LWV4cGVjdGVkLnR4dDogU2VlIHByZXZpb3VzLgorCiAyMDEyLTEyLTExICBBZGFtIEts
ZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEF0dGVtcHQgdG8gcmViYXNlbGlu
ZSBtb3ZlLWJ5LWxpbmUtMDAxLCB3aGljaCBoYXMgYmVjb21lIGxlc3MgZmxha3kuCkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
cGFyYW1ldGVycy5odG1sCShyZXZpc2lvbiAxMzczMjgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gb25SZXF1ZXN0Rmlu
aXNoZWQoZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgcmVxdWVzdCA9IGV2ZW50LmRhdGE7Ci0g
ICAgICAgIGlmIChyZXF1ZXN0LnVybCAhPT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0
b3IvcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaT9xdWVyeVBhcmFtMT1xdWVyeVZhbHVlMSZxdWVy
eVBhcmFtMj0jZnJhZ21lbnRQYXJhbTE9ZnJhZ21lbnRWYWx1ZTEmZnJhZ21lbnRQYXJhbTI9IikK
KyAgICAgICAgaWYgKHJlcXVlc3QudXJsICE9PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5UGFyYW0xPXF1ZXJ5VmFsdWUxJnF1
ZXJ5UGFyYW0yPSIpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkT2JqZWN0KG5ldyBXZWJJbnNwZWN0b3IuSEFSRW50cnkocmVxdWVzdCkuYnVpbGQoKSwgSW5z
cGVjdG9yVGVzdC5IQVJQcm9wZXJ0eUZvcm1hdHRlcnMpOwogICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dpbGwt
c2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJl
dHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNzMyOCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51
bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBA
QCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkCiA8dW5rbm93bj4gLSBk
aWRGaW5pc2hMb2FkaW5nCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVk
aXJlY3QtdG8taHR0cC11cmwucGhwIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJM
IGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3Qu
aHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5w
aHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgogUmV0dXJuaW5nIG51bGwgZm9yIHRoaXMgcmVkaXJl
Y3QKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRw
LXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIFdlYktp
dEVycm9yRG9tYWluLCBjb2RlIDEwMj4KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291
cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjog
PE5TRXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5OT4KIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU5NQogVGhpcyB0ZXN0IGNoZWNrcyB0byBt
YWtlIHN1cmUgdGhhdCB0aGluZ3MgYmVoYXZlIGFzIGV4cGVjdGVkIHdoZW4gdGhlIHJlc291cmNl
IGxvYWQgZGVsZWdhdGUgcmV0dXJucyBudWxsIGluIHJlc3BvbnNlIHRvIHdpbGxTZW5kUmVxdWVz
dC4KIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNj
L3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9t
aXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDEzNzMyOCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0
dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3Qt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkCiA8dW5rbm93bj4gLSBkaWRGaW5pc2hMb2FkaW5n
CiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11
cmwucGhwIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly93d3cuZXhh
bXBsZS5jb20vLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy93
aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbCwgaHR0cCBtZXRo
b2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAsIGh0dHAgc3RhdHVz
IGNvZGUgMzAyPgogUmV0dXJuaW5nIG51bGwgZm9yIHRoaXMgcmVkaXJlY3QKLWh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRG
YWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIFdlYktpdCwgY29kZSAtMTAwMDAs
IGZhaWxpbmcgVVJMICIobnVsbCkiPgoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3Vy
Y2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8
TlNFcnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAi
KG51bGwpIj4KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU5NQog
VGhpcyB0ZXN0IGNoZWNrcyB0byBtYWtlIHN1cmUgdGhhdCB0aGluZ3MgYmVoYXZlIGFzIGV4cGVj
dGVkIHdoZW4gdGhlIHJlc291cmNlIGxvYWQgZGVsZWdhdGUgcmV0dXJucyBudWxsIGluIHJlc3Bv
bnNlIHRvIHdpbGxTZW5kUmVxdWVzdC4KIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAtY29udGVudC1lZGdl
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFCa01EazVN
MlUzCk5ESXpNekUwTW1RNE1XTTFNMlEzTVdVd1l6azFaakZpWlVIaUl5WUFBQ0FBU1VSQlZIaWM3
ZDF4YkJ2WGdlZnhSMGQvTURsdE9EYUUKV01nWkZ0Tk5halYyWXdudG5nUTBLT1VrQzEzL3VOaHln
MVgrdUlVZHBFQzNhQkpMOWg2U2JvREc3aC9idExpRnhhTEZiZjRJMXVydApiUjFrYTBuWld5QUc0
b3AwYkVCT2N4WFZkVGNVNEZTazQzVXBJemFIcUlyUUNLMjVQNlpWcVpFNDRsRHZjVGh2dnAvL1NJ
NmxsK0NICnB4OW4zcHVKV0pZbEFBQUFJTThXdndjQUFBQ2dHd29XQUFDQVpCUXNBQUFBeVNoWUFB
QUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUEKa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxB
QUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWgpCUXNBQUVBeUNo
WUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FV
TEFBQkFNZ29XCkFBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5
Q0JRQUFJRm1iM3dNSW50dTNiMy82NmFjM2I5NFUKUW1Teldmdk5iRFpybXViYWczZnUzSG4vL2Zj
TEllNjc3NzV0MjdaMWRuYmVkZGRkYlczOGI5Y0JTWUNOSkFCWUsySlpsdDlqYUdtMwpiOTh1Rm91
bFVpbVh5OVdhTWIweURPUExYLzV5UEI2UHhXSmJ0bkFTTVJoSUFtd2tBVUE5S0ZqcldGcGF1bm56
WmphYm5abVpVZjI3Cjl1elo4NlV2ZmFtenMxUDFMMElEU0FKc0pBR0FWeFNzMzF0ZVhyNXg0OGFI
SDM3NHpqdnYrREtBSjU1NDRndGYrRUkwR3ZYbHQyTUYKU1lDTkpBRFlqTEFYTEhzT3ZYang0dVhM
bC8wZWl4QkM5UGYzSnhJSnB0VG1Jd213a1FRQVVvUzNZQldMeFovOTdHY3RNb2M2OVBmMwpQLzc0
NDZ4N2JRNlNBQnRKQUNCUjZBcFd1VnorNElNUHpwOC9MMlZwcWxKUFAvMzBybDI3L0I2RnRrZ0Ni
Q1FCZ0FvaEtsakZZdkc5Cjk5NXJ3aHBWaVF6RGVQYlpaOXZiMi8wZWlGWklBbXdrQVlBNm9TaFl4
V0p4Y25MeTZ0V3JmZytrUVh4dGxZVWt3RVlTQUtpbWVjRUsKK2pTNllzK2VQVU5EUTl3Z3AyRWtB
VGFTQUtBNXRDMVlTMHRMYjc3NXBxSnBOQjZQUjZQUnpzN09XQ3htR01iSys0WmhWTDhVUXBpbQph
WnBtdVZ4ZVhGd3NGQXFGUXFIaGRSNkdZWHp6bTk5a2xhdFhKQUUya2dDZ21UUXNXSlZLNWR5NWN4
TFhWUmlHMGQzZEhZdkZPanM3CjEwNlhYcG1tbWN2bDV1Zm5WeDZwNFdra3pLZjFJd213a1FRQXph
ZGJ3WnFmbno5OSt2VG1mNDVoR1BGNHZLdXJLeDZQYjNMMnJNVTAKeld3MmUrblNKYS9mWDU5Ly92
bHQyN2FwR0pKT1NBSnNKQUdBTC9RcFdFdExTNisvL3ZvbU4xckg0L0c5ZS9lcW0wRFhsY2xrMHVt
MApwNUcvL1BMTGZHZXRoU1RBUmhJQStFaVRnblh4NHNYTlBNN0NNSXkrdnI3dTd1NW16cUVPNlhS
NlptYW1YQzdYY3pEWEJXb2hDYkNSCkJBRCtDbnpCMnN5WDFHZzAydFBUczNmdlhxL1BWVjE0OTZQ
OEwyNm1KazJ6Rk1rc3hGYmV6eTExNUNzN3FvL3NhcnNXYi84NDNySFUKOC9rN2liL1kzdnQwdDh1
UE5VM3o3Tm16ZGE3RE1BemorZWVmWncvUkNsK1NrTHR3TGYvL1BsNDNDYm5WU1loWEoyRzRzMmZZ
Ylk4OQpTZGdNZithRUJTdWZGNm1VTUUyUnlmengvVnhPNVBPUjZpTzd1cXg0WE1Uam9xZEhKQktp
dHpmaS9GbFZTQUlRWE1FdVdBMnZyakFNCkk1Rkk5UFQwMUhsOEtwbEpUWnFwakdIZXZudnVrOFp2
UHhPTGxBWTZzNGNQaXdOLzIxZnJtSm1abWJObno5YnowL2JzMmZQVnIzNjEKNGNIb3BHbEpTRmNs
SWJPSkpCaC9TTUora2lCVjgrYUVsSlZLL2I1UnpjMjVsU1Izc1pnMU1DQU9IeFlIRHRUOElTUUJD
S0tnRnF4SwpwVEkxTmRYQVU4UHFuMFpYU2xYYXJIZk9yVjhzVWhwSnpCNzVoNTZ0OFhVdVFCUUto
Zkh4OFhvdURRd1BEM2QzdTUwVjAxNFRrckJTCnFsSUtrbURZU1RqVmEzVEYxbjVLRXVyWGpEbmhE
NlVxblc2OFVkVVNpMWtqSStMSUViRjE2em8vbkNRQWdSUElndFhZSllBNnA5SEoKdjdrMCtlYW5r
eDkrdm1TdDh3ZFBMcGVhVlM2WHg4ZkhDNFhDaGovazJMRmpvWDF1aHRJa1RQMGhDYWI2SkxqVUxK
SlFEN1Z6d3FRMQpPU2ttSjBXcEpMOVhPYmpVTEpJQUJFdndDbFkrbno5MTZwU25mMklZeHVEZ29Q
dTN1dG5UMmZIdkw1N0s5RFNoVnpsMHRWMDdlZXphCjBLdjlqdmZybkU4Tnd6aHk1SWl5MGJVdVJV
bkl2REUvL3IzQ3FVeFBFM3FWUTd6dDJzbS8vbzhEMzNWZU5DUUo3bFROQ2JQVytMZzQKZGFvWnZj
cWhxOHM2ZVZJTURUWFlzVUtiQktDbEJLeGd6YzdPdnZYV1c1NytTWDkvZnlLUmlFYWo2MzVhekpu
alIrZkcvdVZQSFl2VAptKzlJYjNyc0Z3bkhtM1hPcHlHOEtDQTlDV2ErTkQ2YUdmdVhQODM1bllT
UjN2UkprbEEzK1hOQzBSb2ZGMk5qenNYcHpYZmtpRFUyCjFtREhDbUVTZ0ZZVHBJTDEwNS8rMU5N
Q2kzZzhQamc0V0dzM1VERm5KcC9KaktWN20zL0txcGE5ZDg5UC8vdDJ4K1hDY3JtY1RDWTMKWEhz
UnFydmd5RTJDbVM4bEQ4K09wWHViZjhxcWxwNjc1NmMvNkhSY0xpUUphMG1lRTRwV01pbkd4bnc0
WlZYTDNyM1c5TFR6Y2lGSgpBQUloR0FYTDYvTFZhRFE2T0RoWWEybkZ3cnNmSlkvODJwZXJnUnZx
YXJzMjhiK1hISGR6S0JRS3I3MzJtdnMvN08vdkh4d2NWRG0wCmxpQTNDYmtMMTVJdmZPakwxY0FO
eGR1dVRmemo3eHgzY3lBSkt5VFBDUXRXTXVuUDFjQU5kWFZaRXhQT3V6bVFCS0QxQmFCZ1ZTcVYK
SC8zb1IvVXZYNDNINDhQRHcrdWUveS9tek5FL3Z6eCs1VkdwQTVRc0ZpbE4vOU52SEIycm5uM2FM
Nzc0WXEyckhucVFtQVF6WHhwOQo0dDlPdFhZU2pFaHAraWNGUjhjaUNVTHVuRkMwUmtmRitIakw5
YXBxc1pnMVBlM3NXQ1FCYUhHdGZrczZyelBwd01EQW9VT0gxcDFUCnhnNm1IL2hNcE1YYmxSQ2la
TVdHL3JLOW1GdjFuOXpmMzcvaGlvcDBPcTF5WEQ2VG1JVGt3ZlFERDRnV2IxZENDTk9LRGYzMy8y
VG0KUzlWdmtnU1pjOEtZOWNBRHJkNnVoQkNsVW1Sb1NCU0xxNzRNa3dTZ3hiVjB3ZkkwazBhajBV
T0hEaVVTenRYQlFvanBrN005OTh5UApUaVJhOEpyZ3V2S1ZIZnNlWG5TOE9UZzQ2UDVsdFA2bmFn
U09yQ1NreGpLOTk4eVBUQ1JhOEpyZ3VuS1ZIZnMrNTF6T1RCSWt6QW5UClZrK1BOVG9hYWNGcmd1
dks1eVA3OWpuZkRITVNnTlozMS9IangvMGV3L284emFUeGVQelpaNS90Nk9od3ZGL01tZC80cy9l
UC9xUnYKc2VMOHFNVXRWanFLVSttdi9GVjg1WjFvTkhybnpwMWNMdWZ5cjZMUjZNNmRPMVdQcmNt
a0pNSE1sNzd4WisrUC91Uy9GSUtXaEVLbAp3NXhLLzFlU0lHdE9LRnJmK0lZNGVqU3l1QmlNYXJW
aWNURlNMRnBmK2NvZmh4M2FKQUNCMEtKbnNKYVhsK3VmU1d0ZEFwZytPUnVJCmE0SzEvQ0NUbUho
cHB2cWRSQ0xoL3VqWmMrZk9LUjVVczBsSlFtb3NFNGhyZ3JVa000bkpiMTJxZm9ja3VLczVKMHdI
NDVwZ0xULzQKUVdSaVl0V0Z3aEFtQVFpS0ZpMVlFeE1UZGM2aysvZnZYL2NTd1BGOXFjZU90dEF0
R0JveituYzdISXV4MXYyUHJWYlBqWjREWlBOSgpPTEV2dFcrMEZmY0plakw2UC8rell6RVdTYWls
NXB4dzNIcnNzY0JjRTZ4bGROUzVHQ3RzU1FDQ29oVUxWdjMzdHRtL2YvL2FmZGNMCjczN1VjOC84
aWRTQS9KRTFYYjZ5WSt4d3B2cWRucDRlOXkrc0Z5OWVWRHlvNXRsa0VuSVhydlhlTTM5Y2l5VGtL
anZHRHMxV3YwTVMKMXJYK25MQmc5ZlJZSjA0RXUxclo4dm5JMk5pcWQwS1ZCQ0JBV3E1Z3pjN08x
ak9UUnFQUnIzLzk2MnRuMG9tWFpub1Q5ODU5c212ZApmeFZFeWZPOWpwTllmWDNPUjZsVXUzejU4
dkx5c3VKQk5jTW1rekQ1clV1OVgvNlRqRjVKY0p6RUlnblZhczRKRTFadnI1aWIwNkZkCjJaSko1
MG1za0NRQkNKYldLbGo1Zkw2ZXAxN1ltNFBXM281NTdHRDY0UGY2ZzM1WjBLRmt4Unduc1RiY20r
MzFrYmN0YUpOSlNCNU0KRDczYUYvVExnZzZtRlhPY3hDSUpLMnJPQ1dQV3dZT0J2eXpvVUNvNVQy
S0ZJUWxBNExSUXdWcGFXcXJuaWEyMVp0TEREMTBZbmRoZwpMVUpBSmMvM1ZyODBEQ01lajdzY244
L24xUTVJc1UwbTRabUhMb3lRQkNGRTZKTncrTEExT3FwVnRWcVJUSzU2cVgwU2dDQnFsWUpWCnFW
UmVmLzMxRFE5emFWZkIzUzI0b1pJVmMyd24zTHQzcjh2eDU4K2ZWendpaFRhWmhHY2V1aERjM1lJ
Yk1xMllZenNoU1hCcFY4SGQKTGJpaFVzbTVuVkRqSkFBQjFTb0ZhMnBxcXA2VDJHdG4wbUxPSE5p
YTBiaGQyVTZ0L2xQaC9tM1ZOTTFLcGFKMlFNbzBuQVF6WDlxMwpOYU54dTdJNVR1aVFoSFhtaEtJ
MU1LQnp1N0tGSndsQVFMVkV3Y3Btcy9Vc1l0Mi9mLy9hZHJYdjRjVzB1ZjREWEhXU1hseTF4c0l3
CkRQZDlRd0dkVEJ0T2dwa3Y3ZnRjSVVVUzFnaGJFb3BGYTk4K2tVNXIzcTZFRUk2bjRPaWFCQ0M0
L0M5WVMwdExiN3p4eG9hSHJkMTkKYmJjcm5UWU11aWhac2RuVDJlcDMxbDRUcWJhNDZIelNUdXRy
T0FsMnU5SnB3NkFMMDRwbDNwaXZmb2NrckxEYmxVNGJCbDJVU3BIWgoyVlZYQ2ZWTEFoQm8vaGVz
ZXBaWkRBd01yTjE5UGRTYkMwbTdzcVZPcjdwYm9QdGtldXZXTGNYRGthL3hKUFFzaEtSZDJVaUNx
SldFCm9iQzBLMXNxdGVxbGZra0FBczNuZ25YeDRzVU5sMW5FNC9HMXR5bysvTkNGTUZ3WnJKYkxy
L3JMc1gzN2RwZURiOXk0b1hnNGtqV2MKaEdjZXVoQ0dLNFBWSEkrZUl3bTJ3NGV0TUZ3WnJLWjNF
b0NnODdOZ0xTMHR2ZlBPTys3SFJLUFI0ZUZoeDV0Njd4bXNKYk93NnE1TwphNSt6Rmx3TkowSHZQ
WU8xa0lSMTVnU3Q5d3pXa2xsMWd6eXRrZ0Jvd00rQ1ZjK0ZnT0hoWWNlc2NmSkFLb1R0U2dpUi8x
MUg5VXYzCnlmVDY5ZXVLaHlOVFkwa1lHMHFIc0YwSmtyQjJUamdaeG5ZbGhIRGMzRXFuSkFBYThL
MWdaYlBaRFM4RURBd01PUFllVDd3MGMzUnEKUU4yb1dsbStzcVA2cGZ0Nmk2dFhyeW9lampTTkpX
SHlXNWRHSi9XOG0raUdjaVNoeXNTRWRmUm9HTnVWRUNLL2V0bUFOa2tBOU9CUAp3YXBVS2h2dUVs
cTd6R0xoM1krZStmN25WSTRMemRaWUVuSVhyajN6dlEyZURZSmdhWEJPV0xDZWVVYmxzQUNnVWY0
VXJIUG56cmtmCnNQNkNteWR2YXZhY1FUU1loUC8yc1diUEdVU0RTWGhHYVBhY1FRRGE4S0ZnTFMw
dHpjek11Qjh6T0Rqb1dFL3d5a0FxYk5zR3RkZFkKRW80UHBNSzJiVkI3RGM0SnI0UnUyeUNBQVBH
aFlMMzU1cHZ1QjhUamNjY2RicVpQem40blBhQndUUEJEQTBsSWpXVk9rQVR0TkRJbgpURnZmK1E3
dENrRHJhbmJCdW5YcjFvWnJMUWNIQjZ0ZkZuUG0wTEhQcUJ3VWZOQkFFc3g4YWVqb0F5b0hCUjgw
TWljVXJhRWhsV01DCmdFMXJkc0dhbXBweVA2Qy92OSt4RjJia2ljc3N2ZEpQSTBsNC9OOVllcVdm
UnBJd3d0SXJBSzJ1cVFWcnc2K3FobUU0ZGdsTm41ejkKOFlkaHZOZVIzaHBJUW1vc00wNFN0TlBJ
bkRCdC9makh0Q3NBcmE2cEJXdkRyNnByMTdHT3ZueVB5aEhCSDQwazRXL3VWamtpK0tPUgpKSXlx
SEJBQVNOSzhnbFhQVjlYdTdsVTNOenA1SUJXcXh6bUhSQU5KR0J0S2grcHh6aUhSeUp4dzBnclY0
NXdCQkZmekN0YlBmLzV6Cjl3TWNGd0tLT2ZQRVc3MHFSd1IvZUUyQ21TK2RtT0srREJyeVBDY1Vy
Uk1uVkE0SUFPUnBVc0VxbDh2dTk3a3hETU94RFp1MTdWcHEKSkFtc2JkZFJJMGxnYlR1QTRHaFN3
ZnJnZ3cvY0QxajdWQnpXdG12SmF4SnlGNjZ4dGwxTG51ZUVCZGEyQXdpU0poV3M4K2ZQdTN5Ngo5
cXZxMkF1L1Zqd2krTU56RXA3L1VQR0k0QS9QU1JoVFBDQUFrS29aQmV2V3JWdW1hYm9jc0hiMTFm
Z2NhMjQwNURVSlpyNUVFclRrCmVVNG9XdVBqaXNjRUFGSTFvMkJOVDArN2ZCcU5ScDFmVlE5bldI
MmxKYzlKT0RUTDZpc3RlVTdDR0t1dkFBU004b0sxdkx4OCtmSmwKbHdNY00ya3haeWJQczNsUVEx
NlRZT1pMSkVGTG51ZUVvcFZNS2g0VEFNaW12R0RkdUhIRC9ZQzllL2RXdnp3MXd1a3JQVFdRQkU1
ZgphY2x6RWs1eCtncEE4Q2d2V0JjdlhuVDUxREFNeDFQR2t2LzZvT0lSd1IrZWsvQi8vMVR4aU9B
UHowbmc5QldBQUZKYnNEYThGdERYCjExZjljdlowTmwvWm9YUkk4SVhYSkdUZW1NK1JCQjE1bmhO
bXJYeWUwMWNBZ2tkdHdkcndXb0RqT1JpbnZyZW9jamp3amVja3ZGcFEKT1J6NHhuTVNUaWtjREFD
b283WmdYYmx5eGVYVGVEeHVHRWIxTyt6SjF4VkpnTTF6RXJnN0E0QmdVbHV3enAwNzUvS3BZeW5y
eEVzegpMRy9YbGFja1RIN3JFc3ZiZGVWdFRwaXdXTjRPSUtBVUZxeWxwU1gzQStMeGVQWEx5WCt1
cUJzTWZPUTVDVzkrcW5BMDhJL25KRXdxCkhBd0FLS1d3WU4yOGVkUGxVOE13SE5jQ3BuNzllWFdE
Z1k5SUFteWVrekNsZUVBQW9JekNncFhOWmwwK2RYeFZuVDJkNWZxZ3Jqd2wKSWZQR1BOY0hkZVZ0
VHBqbCtpQ0FBRk5Zc0dabVpsdys3ZXJxcW40NStmZnNHdE9XdHlUOHI5OG9IZzU4NHkwSlhCOEVF
R1NxQ2xhNQpYSFkvd1BGdE5aVXhhaHlJWUNNSnNIbE9Ra3JkV0FCQU9WVUZ5elJObDAvWExyWTRY
MkpidnA2OEppRk5FalRsZVU0NHovVkJBQUhtClQ4RnkzRXR3K3VTc29tSEFkNTZTa0JyTEtCNE9m
T050VHBpMkZBOEhBTlJTVmJEeStiekxwN0hZcWxYTXFhbVNvbUhBZDk2U01PbjIKTnhpQjVpMEpL
YldEQVFEVlZCVXM5KzFDam9lNVp1YnZWalFNK0k0a3dPWXRDWnpLQkJCd3ZxM0JxbjZaTDdHdVdW
c2tBVFp2U1hBNwoyd1VBQWFDa1lHMjRYY2d4bWM1OXNrdkZNT0E3cjBuSWtBUk5lWjRUNWxqaERp
RFlsQlNzU3NYdG9UZU96ZGdMNzM2a1lneG9CWjZTCmtMdHdUZTFvNEI5dmM4SUNLOXdCQko2U2d1
WCtRSXhvTkZyOU12Zit4eXJHZ0ZaQUVtRHpsb1NjMnNFQVFCTW92Sk43TFk3VnJHd2gKREMxbkV0
aENHRmJPSktSOEdnY0F5S09rWUxsdkYzTHN4elo1M0ppK1NBSnMzcEpBMHdZUWZENmN3WEt1YTE3
Z3liNGhSUkpnY3lhQgplelFBQ0Q0ZkNoWUFBSURlbEJTczY5ZXZxL2l4Q0J5U0FCdEpBQkEyU2dy
VzFhdFhWZnhZQkE1SmdJMGtBQWdiLzlkZzVYL1gwZnd4Cm9CV1FCTmk0alRzQS9iUkF3YXJzYVA0
WTBBb2NTY2lSaExCYVU3RFlUd29nOEZqa0RnQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUEKQU1t
VUZLeWRPM2U2ZkdxdWZoREd6cnV1cVJnRFdvR25KSFNSQkgxNW14TjJXb3FIQXdES0tTbFk5OTkv
djh1bmpzazAzdjZ4aWpHZwpGWkFFMkx3bElhNTJNQURRQkQ1Y0lpeVh5OVV2NHgxTHpSOERXZ0ZK
Z00yWmhMaFA0d0FBZVpRVXJQdnV1OC9sMDhYRnhlcVhQWHNxCktzYUFWdUF0Q1orL28zZzQ4STIz
SlBRb0hnMEFxS2VrWUczYnRzM2wwMEtoVVAxeTRPbE9GV05BS3lBSnNIbEx3b0Rhd1FCQUV5Z3AK
V051M2IzZjUxREdaOWo3ZGZhOG9xUmdHZk9jcENUM0R1MklrUVZQZTVvVGV5TDMzc3M0ZFFMQXBL
Vmh0YlcwdW41cW02VmpUT3RDWgpWVEVNK0k0a3dPWTVDUU5xeHdNQXFxa3FXTEZZek9XQVhDNVgv
Zkx3SWI2dDZzbHpFZzRySFE1OFF4SUFoSTJxWFlSZi9PSVhYVDZkCm41K3Zmam4wYWo5WENYWGxL
UWtIdnR2SFZVSmRlWnNUaHJoS0NDRFlWQldzaHg5KzJPWFRiRGJydUNJd2twaFZOQkw0aXlUQTVq
a0oKSTRvSEJBQXFxU3BZaG1HNEg1RE5ybHB0TTNLcWg1TllXdktjaFBGZVRtSnB5WE1TUmdRbnNR
QUVsNnFDdFdYTGx0MjdkN3NjY09uUwpwZXFYVytNR3B5NjA1RFVKUmxlTUpHako4NXl3TmNKSkxB
REJwZkJPN284KytxakxwNlpwWmpLWjZuZEdUdlh3WEVJdGVVN0NlQy9QCkpkU1M1eVNNOEZ4Q0FF
R2xzR0IxZG01dzM4aDBPbDM5Y212Y0dQdHIvcXhxeUdzU2pLN1kyUC80RDVVamdqODh6d2xiSTJO
aktnY0UKQU1xb2ZSYmg0NDgvN3ZLcGFab3pNelBWN3d5OTJ2OUNUN3JXOFFndXIwazQ4TjIrSXlS
QlI1N25oS0hJQ3k5d0VndEE4S2d0V080YgpzNFVRNlhUYXNYVW9PWnQ0SkRwZjYzZ0VWQU5KR0p0
TjdDVUoybWxrVGtoR0hubUVqZ1VnWU5RV3JHZzAydC9mNzNKQXVWdytlL2FzCjQ4M1VCOXRaaktX
WkJwT1E3V1F4bG1ZYVRFS0t4VmdBQWtadHdSSkNKQklKOXdPeTJhempvc0RXdURINWowdmN0VUV6
RFNUQjZJcE4KL3AvZmNkY0d6VFF5SjJ5TlRFNXkxd1lBUWFLOFlHMzRoVlVJY2ZiczJiVlBnRTc5
NURlY3g5SkpZMG5vR2Q2Vk9sM2dQSlpPR3B3VAplaU9jeHdJUUlNb0xscWpqQzZzUVlueDh2Rnd1
VjcvVCszUjM1a283NjdGMDBsZ1Nlb1ozWlQ3OEU5Wmo2YVRCT2FFM2tza0kxbU1CCkNJUm1GS3hv
TkRvOFBPeCtUTGxjWGp1ZmJvMGJjNS9zWWwraE5ocE9ndEVWeTN5eWkzMkYybWg4VHRnYW1adGpY
eUdBQUdoR3dSSkMKZEhkM3gySXg5Mk1LaGNMYStWUUlrWnhObkhseGhzdUZldGhNRXNabUV4TXZY
ZUp5b1I0Mk5TY2tJMmZPV0Z3dUJOREttbFN3aEJCZgorOXJYTmp5bTFudzY5R3AvNWtyN3R4TXBW
cjVyWUROSk9QRGR2c3lIZi9KS0lzWEtkdzFzYWs0WWltUXk0dHZmdGxqNURxQTFOYTlnCnRiZTNi
M2hSUUFoUktCU1N5YVJqZmFzUVltdmNPSkVheUMxWTFLeWcyMlFTaks3WThkUkFMaWVvV1VHMzJU
bGhhK1RFaVVndVI4MEMKMElxYVY3Q0VFTjNkM2U1UGU3V1Z5K1hYWG52TjhlUlhtMTJ6U2xic3pJ
c3pUM1plb21rRjFPYVRZTmNzMDRwTnZIUnBmK2NsbWxaQQpTWmdUdGtaT25JaVVTcEV6WjZ3bm42
UnBBV2dWYlUzK2ZRY1BIcngyN1ZxcHRQR2Z3N2ZmZmp1WHl3ME9EaHFHc2ZiVG9WZjdoMTRWClFv
alowOW5VNlVJdUg4a3N4SEpMSFZmdjdKQStacWdnS3drSHZ0dDM0THRDQ0pGNVl6NTF1cERMQ1Rz
SmVaSVFFTkxtaEtISTBKQVEKUXN6T1dxbVV5T1ZFSmlOeU9YSDFha1Q2bUFGZ1F4SExhdllYdmtx
bDhzTWYvckNlK1ZRSUVZMUdCd1lHK3ZyNlZJOHFpRTZjT09IeQo2U3V2dk5LMGtUU0dKTWhDRW1B
TGVoSUFuVFQxRXFHdHJhM3R1ZWVlcS9QZ2Nybjg5dHR2SjVQSnViazVwYU5DODVFRTJFZ0NBUDNj
CmRmejQ4ZWIvMWkxYnRqenl5Q1B2dmZkZW5jZVh5K1ZzTmpzM054ZUpSTnJiMjZQUnFOTGhCVVU2
N1haZnFJR0JnV1lOcEhFa1FRcVMKUUJKc0dpUUIwSVkvQlVzSWNmZmRkei82NktPLy9PVXZiOSsr
WGVjL0taZkxWNjVjdVhUcDB1TGk0cDA3ZDZMUmFNaG5WVDBtVTVLdwplU1NCSk5qMFNBS2doMll2
Y2wvMXU5dmFubnZ1dWZyWFhxeklaclBaYkZZSVlSaEc1eDlFbzlGWUxMYnU2bGUwT0pJQUcwa0Fv
QTBmCkZyazdMQzh2bnpsejVsZS8rcFcvdzlCUDRCYTBrZ1JGU0FKc2dVc0NFR2crTEhKM2ptRExs
cWVlZXFxZSt3MUNieVFCTnBJQVFBUCsKRnl4YmQzZjNzV1BITm53MkdiUkhFbUFqQ1FBQ3JWVUts
aENpdmIxOVpHU0VyNjFTMUhOMzdKWkZFaVFpQ2JBRk9nbEFFUG0yaTdDVwpqbzZPL3Y3K08zZnVY
THQyemUreEJOaGpqejNXMGRIaDl5ZzJoU1JJUVJKZzB5QUpRTEMwWE1FU1FyUzF0VDM0NElOTXFa
dHg4T0RCClNDVHdUd2doQ1p0SEVtRFRJd2xBZ1BpL2k5QmR1VngrLy8zM3o1MDc1L2RBZ21SNGVM
aTd1OXZ2VVVoR0VocEFFbURUTWdsQWkydjEKZ3JXaVVDaGN1SENCbmRzYjJyMTc5MU5QUGVYM0tC
UWlDWFVpQ2JCcG53U2dOUVdtWU5tV2w1ZE4wOHpuOCtsMDJ1dXRDTU1nUE45VApTWUk3a2dCYmVK
SUF0SnFBRmF4cXQyN2QrdTF2ZjJ2ZnZ0bDIvZnIxcTFlditqZ2t2K3pldlh2UG5qMmYvZXhudDJ4
cG9XMmhUVU1TClZwQUVrbUFMZVJLQVZoRGdnZ1VBQU5DYStISURBQUFnR1FVTEFBQkFNZ29XQUFD
QVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmcKQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dB
QVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQQpBSkNNZ2dV
QUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VD
QUFDUWpJSUZBQUFnCkdRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05n
QVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUsKRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpS
c0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QQpBQURK
S0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ1dadmZBd2llMjdkdmYvcnBw
emR2M2hSQ1pMTlorODFzCk5tdWE1dHFEZCs3Y2VmLzk5d3NoN3J2dnZtM2J0blYyZHQ1MTExMXRi
Znh2MXdGSmdJMGtBRmdyWWxtVzMyTm9hYmR2M3k0V2k2VlMKS1pmTDFab3h2VElNNDh0Zi9uSThI
by9GWWx1MmNCSXhHRWdDYkNRQlFEMG9XT3RZV2xxNmVmTm1OcHVkbVpsUi9idjI3Tm56cFM5OQpx
Yk96VS9VdlFnTklBbXdrQVlCWEZLemZXMTVldm5IanhvY2ZmdmpPTysvNE1vQW5ubmppQzEvNFFq
UWE5ZVczWXdWSmdJMGtBTmlNCnNCY3NldzY5ZVBIaTVjdVgvUjZMRUVMMDkvY25FZ21tMU9ZakNi
Q1JCQUJTaExkZ0ZZdkZuLzNzWnkweWh6cjA5L2MvL3ZqanJIdHQKRHBJQUcwa0FJRkhvQ2xhNVhQ
N2dndy9Pbno4dlpXbXFVazgvL2ZTdVhidjhIb1cyU0FKc0pBR0FDaUVxV01WaThiMzMzbXZDR2xX
SgpETU40OXRsbjI5dmIvUjZJVmtnQ2JDUUJnRHFoS0ZqRlluRnljdkxxMWF0K0Q2UkJmRzJWaFNU
QVJoSUFxS1o1d1FyNk5McGl6NTQ5ClEwTkQzQ0NuWVNRQk5wSUFvRG0wTFZoTFMwdHZ2dm1tb21r
MEhvOUhvOUhPenM1WUxHWVl4c3I3aG1GVXZ4UkNtS1pwbW1hNVhGNWMKWEN3VUNvVkNvZUYxSG9a
aGZQT2IzMlNWcTFja0FUYVNBS0NaTkN4WWxVcmwzTGx6RXRkVkdJYlIzZDBkaThVNk96dlhUcGRl
bWFhWgp5K1htNStkWEhxbmhhU1RNcC9VakNiQ1JCQUROcDF2Qm1wK2ZQMzM2OU9aL2ptRVk4WGk4
cTZzckhvOXZjdmFzeFRUTmJEWjc2ZElsCnI5OWZuMy8rK1czYnRxa1lrazVJQW13a0FZQXY5Q2xZ
UzB0THI3LysraVkzV3NmajhiMTc5NnFiUU5lVnlXVFM2YlNua2IvODhzdDgKWjYyRkpNQkdFZ0Q0
U0pPQ2RmSGl4YzA4enNJd2pMNit2dTd1N21iT29RN3BkSHBtWnFaY0x0ZHpNTmNGYWlFSnNKRUVB
UDRLZk1IYQp6SmZVYURUYTA5T3pkKzllcjg5VlhWaXc4bm1SU2duVEZKbk1IOS9QNVVRK0g2aytz
cXZMaXNkRlBDNTZla1FpSVhwN0k4NmZWY1UwCnpiTm56OWE1RHNNd2pPZWZmNTQ5UkN2OFNjSzdI
K1YvY1RNMWFacWxTR1lodHZKK2Jxa2pYOWxSZldSWDI3VjQrOGZ4anFXZXo5OUoKL01YMjNxZTdY
WDRzU2RnTWt1QnA1QUFVQ1hiQmFuaDFoV0VZaVVTaXA2ZW56dU5US1N1VituMmptcHR6SzBudVlq
RnJZRUFjUGl3TwpIS2o1UTJabVpzNmVQVnZQVDl1elo4OVh2L3JWaGdlamsrWWxJWmxKVFpxcGpH
SGV2bnZ1azhadlJCU0xsQVk2czRjUGl3Ti8yMWZyCkdKTFFBSkpBRW9BV0VkU0NWYWxVcHFhbUdu
aHFXUDNUNkVxcFNxY2JiMVMxeEdMV3lJZzRja1JzM2JyT0R5OFVDdVBqNC9WY0doZ2UKSHU3dWR2
c0dyTDFtSk9FUGYwclRacjEvZmVzWGk1UkdFck5IL3FGbmEzeWRTMUVrb1g0a3dVWVNnQllSeUlM
VjJDV0FPcWZSeVVscgpjbEpNVG9wU1NYNnZjbkNwV2VWeWVYeDh2RkFvYlBoRGpoMDdGdHJuWnFo
Tnd0OWNtbnp6MDhrUFAxK3lZdTVIYnA3TEgxZVNVQStTClVDM01TUUJhUi9BS1ZqNmZQM1hxbEtk
L1loakd3cWNlOXdBQUdEaEpSRUZVNE9DZys3ZTYyVmxyZkZ5Y090V01YdVhRMVdXZFBDbUcKaGhy
c1dJWmhIRGx5Uk5ub1dwZXFKSnpPam45LzhWU21wd2wvVFIyNjJxNmRQSFp0Nk5WK3gvc2t3UjFK
Y0FodEVvQ1dFckNDTlRzNworOVpiYjNuNkovMzkvWWxFSWhxTnJ2dHBzV2lOajR1eE1lZmk5T1k3
Y3NRYUcydXdZNFh3b29EOEpPVE04YU56WS8veXA0NGx5YzEzCnBEYzk5b3VFNDAyU1VBdEpXRmNJ
a3dDMG1pQVZySi8rOUtlZUZsakU0L0hCd2NGYXU0R0tSU3VaRkdOalBweXlxbVh2WG10NjJubTUK
c0Z3dUo1UEpEZGRlaE9vdU9KS1RrRE9UejJURzByM05QMUZSeTk2NzU2Zi9mYnZqSWhGSldJc2t1
QWhWRW9BV0ZJeUM1WFg1YWpRYQpIUndjckxXMFltSEJTaWI5dVJxNG9hNHVhMkxDZVRlSFFxSHcy
bXV2dWYvRC92Nyt3Y0ZCbFVOckNaS1Q4TzVIeVNPLzl1VWEwSWE2CjJxNU4vTzhseHg1K2tyQ0NK
SkFFb01VRm9HQlZLcFVmL2VoSDlTOWZqY2ZqdzhQRDY1Ny9MeGF0MFZFeFB0NXl2YXBhTEdaTlR6
czcKVmozN3RGOTg4Y1ZhVnozMElETUpPWFAwenkrUFgzbFU2Z0FsaTBWSzAvLzBHOGRmVnBJZ1NJ
SVFnaVFBTGEvVmIwbm5kU1lkR0JnNApkT2pRdW5QSzJKajF3QU90M3E2RUVLVlNaR2hJRkl1cmlt
OS9mLytHS3lyUzZiVEtjZmxNWmhJT3BoLzRUS1RGLzZZS0lVcFdiT2d2CjI0dTVWZi9KSklFazJF
Z0MwT0phdW1CNW1rbWowZWloUTRjU0NlZWFVQ0hFOUxUVjAyT05qa1phOEpyZ3V2TDV5TDU5empj
SEJ3ZmQKdjR6Vy8xU053SkdXaEpPelBmZk1qMDRrV3ZCSzBMcnlsUjM3SGw1MHZFa1NTSUl0ekVr
QVd0OWR4NDhmOTNzTTYvTTBrOGJqOFdlZgpmYmFqbzhQeGZyRm9mZU1iNHVqUnlPSmlNS3JWaXNY
RlNMRm9mZVVyZnh4Mk5CcTljK2RPTHBkeitWZlJhSFRuenAzS0I5ZGNjcEtRCk03L3haKzhmL1Vu
ZllzWDVVWXRickhRVXA5SmYrYXY0eWpza29aNkRTY0xLTWZvbEFRaUVGajJEdGJ5OFhQOU1XdXNT
d1BSME1LNEoKMXZLREgwUW1KbFpkS0V3a0V1NlBuajEzN3B6aVFUV2JuQ1NjbkEzRWxhQmFmcEJK
VEx3MFUvME9TWEJIRWxib2x3UWdLRnEwWUUxTQpUTlE1ays3ZnYzL2RTd0RIajF1UFBSYVlhNEsx
akk0NkYyT3QreDliclo0YlBRZUloQ1RzU3oxMnRJVTIzamRtOU85Mk9KYmdrSVJhClNJS0Raa2tB
Z3FJVkMxYjk5N2JadjMvLzJuM1hDd3RXVDQ5MTRrU3dxNVV0bjQrTWphMTZwNmVueC8wTDY4V0xG
OVdPcVlrMm00UjMKUCtxNVovNUVha0QreUpvdVg5a3hkamhUL1E1SldCZEpXRXVuSkFBQjBuSUZh
M1oydHA2Wk5CcU5mdjNyWDE4N2swNU1XTDI5WW01TwpoM1psU3lhZEo3SDYrdnBjanI5OCtmTHk4
ckxpUVRYRFpwUHcwa3h2NHQ2NVQzYXBHWjBQa3VkN0hhY3VTRUkxa2xDTE5ra0FncVcxCkNsWStu
Ni9ucVJmMjVxQzF0Mk1lRzdNT0hnejhaVUdIVXNsNUVtdkR2ZGxlSDNuYmdqYWJoSVBwZzkvckQv
ckZJSWVTRlhPY3VpQUoKSzBpQyt6L1JJQWxBNExSUXdWcGFXcXJuaWEyMVp0TERoNjNSVWEycTFZ
cGtjdFZMd3pEaThiakw4Zmw4WHVsNFZOdHNFaDY2TURxeAp3YXFVZ0VxZTc2MStTUkpzSkVIN0pB
QkIxQ29GcTFLcHZQNzY2eHNlNXRLdWdydGJjRU9sa25NNzRkNjllMTJPUDMvK3ZPSVJLYlRaCkpE
eDBJYmg3eERaVXNtS09UV1FrZ1NUWU5FNENFRkN0VXJDbXBxYnFPWW05ZGlZdEZxMkJBWjNibGMz
eE5kNzkyNnBwbXBWS1JlVncKRkdvOENUbHpZR3RHNDcrcHRsT3JvMDRTU0lKTjR5UUFBZFVTQlN1
YnpkYXppSFgvL3YxcjI5VytmU0tkMXJ4ZENTRWNUN3d3RE1OOQozMUJBSjlQR2s1QXo5ejI4bURi
WGY1U3ZUdEtMcTFiYmtBU1NZTk0xQ1VCdytWK3dscGFXM25qampRMFBXN3Y3Mm01WE9tMFlkRkVx
ClJXWm5WMTBsWEh0TnBOcmlvdk9wR3EydjhTVGt6SDBQTCtxMFRjeEZ5WXJObnM1V3YwTVNWcEFF
bCtPRG1BUWcwUHd2V1BVc3N4Z1kKR0ZpNyszcG9LQ3p0eXBaS3JYcnBQcG5ldW5WTDZXQlVhRHdK
dmJtUS9FMjFwVTZ2dW04a1NWaEJFbHdPRG1JU2dFRHp1V0JkdkhoeAp3MlVXOFhoODdhMktEeCsy
d25CbHNKcmpnV1BidDI5M09makdqUnRLQnlOZDQwbDQ2RUlZcmdkVnkrVlhKWjhrMkVpQ1pra0Fn
czdQCmdyVzB0UFRPTysrNEh4T05Sb2VIaHgxdjZyMW5zSmJNcWh2ZmlMWFBXUXV1eHBPZzlVNnhX
aklMcSs3cVJCSUVTUkJDNkpVRVFBTisKRnF4NkxnUU1Edzg3Wm8yVEo4UFlyb1FRamh2WnVFK20x
NjlmVnpzYXFScE13b0ZVQ1ArbUNpSHl2K3VvZmtrU1NJSk5weVFBR3ZDdApZR1d6MlEwdkJBd01E
RGoySGs5TVdFZVBockZkQ1NIeXF5OEh1SyszdUhyMXF1TGhTTk5nRWw2YU9UbzFvRzVVclN4ZjJW
SDlraVNRCkJKczJTUUQwNEUvQnFsUXFHKzRTV3J2TVltSEJldVlabGNOQzB6V1loSGMvZXViN24x
TTVMalFiU1FDZ0dYOEsxcmx6NTl3UFdIZVoKeFRQUENNMmVNNGdHay9Ea1RjMmVMZ2VTQUVBelBo
U3NwYVdsbVprWjkyTUdCd2NkNndsZWVTVjAyd2ExMTJBU0JsSmgyeXltUFpJQQpRRDgrRkt3MzMz
elQvWUI0UE82NHc4MzB0UFdkNzlDdWROTklFazdPZmljOW9IQk04QU5KQUtDZlpoZXNXN2R1YmJq
V2NuQndzUHBsCnNXZ05EYWtjRS96UVNCSnk1dEN4ejZnY0ZIeEFFZ0JvcWRrRmEycHF5djJBL3Y1
K3gxNllrUkdXWG1tb2tTUThjWmtGTi9vaENRQzAKMU5TQ3RlRlhWY013SEx1RXBxZXRILytZZHFX
YlJwSndjdmJISDRieFhrZDZJd2tBZE5YVWdyWGhWOVcxNjFoSFIxVU9DRDVwSkFrdgozNk55UlBB
SFNRQ2dxK1lWckhxK3FuWjNkMWUvYy9La0ZhckhPWWRFSTBrNGtBclZRM3hEZ2lRQTBGanpDdGJQ
Zi81ejl3TWNGd0tLClJldkVDWlVEZ2s4OEp5Rm5ubmlyVitXSTRBK1NBRUJqVFNwWTVYTFovVDQz
aG1FNHRtR3p0bDFMalNTQkZjMDZJZ2tBOU5ha2d2WEIKQngrNEg3RDJxVGlzYmRlUzV5UzgreEVy
bXJWRUVnRG9yVWtGNi96NTh5NmZydjJxT2phbWVFRHdpZWNrdlBCcnhTT0NQMGdDQUwwMQpvMkRk
dW5YTE5FMlhBOWF1dmhvZlZ6d20rTUZ6RW5MbStCelBRdEVRU1FDZ3ZXWVVyT25wYVpkUG85SG8y
dE5Yckw3U2t1Y2tITTZ3CjVrWkxKQUdBOXBRWHJPWGw1Y3VYTDdzYzRKaEppMFVybVZROEp2akJj
eEp5WnZJOFc4WTBSQklBaElIeWduWGp4ZzMzQS9idTNWdjkKOHRRcFRsL3B5WE1TUmpocG9TZVNB
Q0FNbEJlc2l4Y3Z1bnhxR0liaktXT2N2dEtWNXlUODY0T0tSd1Iva0FRQVlhQzJZRzE0TGFDdgpy
Ni82NWV5c2xjOXora3BEbnBOd09wdXY3RkE4S1BpQUpBQUlDYlVGYThOckFZN25ZSnc2cFhBdzhK
SG5KSHh2VWVWdzRCdVNBQ0FrCjFCYXNLMWV1dUh3YWo4Y053NmgraDdzejZNcHpFdGlUcnltU0FD
QWsxQmFzYytmT3VYenFXTW82TVdHeHZGMVgzcEx3MGd5TG1uVkYKRWdDRWhNS0N0YlMwNUg1QVBC
NnZmams1cVc0czhKUG5KUHh6UmVGbzRCK1NBQ0E4RkJhc216ZHZ1bnhxR0lialdzRFVsTHF4d0Ur
ZQprL0RyenlzZUVmeEJFZ0NFaDhLQ2xjMW1YVDUxZkZXZG5lWDZvTGE4SmVGMGxxdEN1aUlKQU1K
RFljR2FtWmx4K2JTcnE2djZKZGNICk5lWXRDWDlmVUR3YytJWWtBQWdQVlFXclhDNjdIK0Q0dHBw
S0tSb0lmT1k1Q1JtanhvRUlOcElBSUZSVUZTelRORjArWGJ2WTR2eDUKcmcvcXlYTVNTbXpMMXhO
SkFCQXEvaFFzeDcwRXA2Y3RSY09BNzd3bDRlU3M0dUhBTnlRQlFLaW9LbGo1Zk43bDAxaHMxZHBW
cmc5cQp6RnNTcGtxS2h3UGZrQVFBb2FLcVlMbHZGM0k4ekRXVFVUUUsrTTliRXVidlZqd2MrSVlr
QUFnVjM5WmdWYjkwL1dhTFlQT1doQkxyCm1yVkZFZ0NFaXBLQ3RlRjJJY2RrT2pmSENuYzllVTdD
Sjd0VURnZStJUWtBd2taSndhcFUzQjV3NGRpTXZiREFDbmR0ZVV2Q3V4K3AKSFEzOFF4SUFoSTJT
Z3VYK1FJeG9ORnI5TXBkVE1RUzBCRzlKZVA5anhjT0JiMGdDZ0xCUmVDZjNXaHlyV2RsQ0dGck9K
TEJ4TEt4SQpBZ0Q5S0NsWTd0dUZIUHV4WFZlK0l0aThKWUdIVWVxTEpBQUlHeC9PWURsV3MzS1Bo
dEJ5Sm1HQkovdUdGRWtBb0I4ZkNoWUFBSURlCmxCU3M2OWV2cS9peENCeVNBQnRKQUJBMlNnclcx
YXRYVmZ4WUJBNUpnSTBrQUFnYi85ZGdjUnYzMEhJbTRYY2RmbzBFL2lJSkFQVFQKQ2dXTEhVTWg1
VXhDWllkZkk0Ry9TQUlBL2JESUhRQUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSklwS1ZnN2Qr
NTArZFJjL1hDYwpuVHN0RldOQUsvQ1doTHV1S1I0T2ZFTVNBSVNOa29KMS8vMzN1M3pxbUV6amNS
VkRRRXZ3bG9UMmp4VVBCNzRoQ1FEQ3hvZExoT1Z5CnVmb2xCU3UwbkVub1dQSnJKUEFYU1FDZ0h5
VUY2Nzc3N25QNWRIRnhzZnBsVDQrS0lhQWxlRXZDbm9yaTRjQTNKQUZBMkNncFdOdTIKYlhQNXRG
QW9WTDhjR0ZBeEJMUUViMGw0dWxQeGNPQWJrZ0FnYkpRVXJPM2J0N3Q4NnBoTWUzc2o5OTdMT25j
OWVVdkMwOTMzaXBMaQpFY0VmSkFGQTJDZ3BXRzF0YlM2Zm1xYnBXTlBLU1N4ZGVVNUNaMWJ4aU9B
UGtnQWdiRlFWckZnczVuSkFMcGVyZm5uNHNJcFJ3SCtlCmszQ0ljNWw2SWdrQXdrYlZMc0l2ZnZH
TExwL096ODlYdnh3YTRpcWh0cndsNGRWK3JnM3BpaVFBQ0JWVkJldmhoeDkyK1RTYnpUcXUKQ0l5
TUtCb0lmT1k1Q1lsWnhTT0NQMGdDZ0ZCUlZiQU13M0EvSUp0ZHRjWmlaRVJ3RWt0TG5wTndxb2RU
RjFvaUNRQkNSVlhCMnJKbAp5KzdkdTEwT3VIVHBVdlhMclZzam5NVFNrdWNreEExT1hXaUpKQUFJ
RllWM2NuLzAwVWRkUGpWTk01UEpWTDh6TXNKekNmWGtPUW1uCmVuZ2FuWlpJQW9Ed1VGaXdPanMz
dUZ0Z09wMnVmcmwxYTJSc1ROMXc0QnZQU1lnYlkzL05uMVVOa1FRQTRhSDJXWVNQUC82NHk2ZW0K
YWM3TXpGUy9NelFVZWVFRlRtSnB5SE1TWHUxL29TZGQ2M2dFRjBrQUVCSnFDNWI3eG13aFJEcWRk
bXdkU2lZamp6eEN4OUpOSTBtWQpUVHdTbmE5MVBBS0tKQUFJQ2JVRkt4cU45dmYzdXh4UUxwZlBu
ajNyZURPVllqR1diaHBNd2dmYldZS2pHWklBSUNUVUZpd2hSQ0tSCmNEOGdtODA2TGdwczNScVpu
T1N1RGJwcEpBbHhZL0lmbDlpcnJ4bVNBQ0FNbEJlc0RiK3dDaUhPbmoyNzlnblFuTWZTVElOSmVM
bzcKOVpQZmNQWkNKeVFCUUJnb0wxaWlqaStzUW9qeDhmRnl1Vno5VG05dkpKTVJyTWZTU1lOSmVM
bzdjNldkVlRnNklRa0F0TmVNZ2hXTgpSb2VIaDkyUEtaZkxhK2ZUclZzamMzUHNLOVJINDBtSUcz
T2Y3R0kzbVRaSUFnRHROYU5nQ1NHNnU3dGpzWmo3TVlWQ1llMThLb1JJCkppTm56bGhjTHRURHBw
SXdtemp6NGd3WGlmUkFFZ0RvclVrRlN3anh0YTk5YmNOamFzMm5RME9SVEVaOCs5c1dLOTgxc0tr
a3ZOcWYKdWRMKzdVU0s5YzRhSUFrQU5OYThndFhlM3I3aFJRRWhSS0ZRU0NhVGp2V3RRb2l0V3lN
blRrUnlPV3BXNEcwMkNYSGpSR29ndDJEeAp4elhvU0FJQWpUV3ZZQWtodXJ1NzNaLzJhaXVYeTYr
OTlwcmp5YTgydTJhVlNwRXpaNndubjZScEJaV0VKTVNORTZtQmtoVTc4K0xNCms1MlgrUHNhVUNR
QmdLN2Ftdno3RGg0OGVPM2F0VkpwNDBudzdiZmZ6dVZ5ZzRPRGhtR3MvWFJvS0RJMEpJUVFzN05X
S2lWeU9aSEoKaUZ4T1hMMGFrVDVtcUNBdENhLzJENzBxaEJDenA3T3AwNFZjUHBKWmlPV1dPcTdl
MlNGOXpGQ0JKQURRVXNTeW1uMFNxRktwL1BDSApQNnhuUGhWQ1JLUFJnWUdCdnI0KzFhTUtvaE1u
VHJoOCtzb3JyelJ0SkkwaENiS1FCTmlDbmdSQUowMjlSR2hyYTJ0Nzdybm42ank0ClhDNi8vZmJi
eVdSeWJtNU82YWpRZkNRQk5wSUFRRDkzSFQ5K3ZQbS9kY3VXTFk4ODhzaDc3NzFYNS9IbGNqbWJ6
YzdOelVVaWtmYjIKOW1nMHFuUjRRWkZPdTkwTmFHQmdvRmtEYVJ4SmtJSWtrQVNiQmtrQXRPRlB3
UkpDM0gzMzNZOCsrdWd2Zi9uTDI3ZHYxL2xQeXVYeQpsU3RYTGwyNnRMaTRlT2ZPbldnMEd2SlpW
WS9KbENSc0hra2dDVFk5a2dEb29kbUwzRmY5N3JhMjU1NTdydjYxRnl1eTJXdzJteFZDCkdJYlIr
UWZSYURRV2k2MjcraFV0amlUQVJoSUFhTU9IUmU0T3k4dkxaODZjK2RXdmZ1WHZNUFFUdUFXdEpF
RVJrZ0JiNEpJQUJKb1AKaTl5ZEk5aXk1YW1ubnFybmZvUFFHMG1BalNRQTBJRC9CY3ZXM2QxOTdO
aXhEWjlOQnUyUkJOaElBb0JBYTVXQ0pZUm9iMjhmR1JuaAphNnNVOWR3ZHUyV1JCSWxJQW15QlRn
SVFSTDd0SXF5bG82T2p2Ny8venAwNzE2NWQ4M3NzQWZiWVk0OTFkSFQ0UFlwTklRbFNrQVRZCk5F
Z0NFQ3d0VjdDRUVHMXRiUTgrK0NCVDZtWWNQSGd3RWduOFU0Tkl3dWFSQk5qMFNBSVFJUDd2SW5S
WExwZmZmLy85YytmTytUMlEKSUJrZUh1N3U3dlo3RkpLUmhBYVFCTmkwVEFMUTRscTlZSzBvRkFv
WExseGc1L2FHZHUvZS9kUlRUL2s5Q29WSVFwMUlBbXphSndGbwpUWUVwV0xibDVXWFROUFA1ZkRx
ZDlub3J3akFJei9kVWt1Q09KTUFXbmlRQXJTWmdCYXZhclZ1M2Z2dmIzOXEzYjdaZHYzNzk2dFdy
ClBnN0pMN3QzNzk2elo4OW5QL3ZaTFZ0YWFGdG8wNUNFRlNTQkpOaENuZ1NnRlFTNFlBRUFBTFFt
dnR3QUFBQklSc0VDQUFDUWpJSUYKQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFB
a2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQQpRRElLRmdBQWdHUVVMQUFB
QU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFB
SUJrCkZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxB
QUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFkKQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNC
UUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQQpBQ1NqWUFFQUFFaEd3
UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28y
QUJBQUJJClJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWts
R3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUMKQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFN
a29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQQpBRUF5Q2hZQUFJ
QmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFC
QU1nb1dBQUNBClpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFB
QUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa28KV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJ
QUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQQpBQUFrbzJB
QkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3
QUFBQUpLTmdBUUFBClNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtv
V0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ00KZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJr
RkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTApBQUJB
TWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJ
QmtGQ3dBQVFESUtGZ0FBCmdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFB
SkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREoKS0ZnQUFBQ1NVYkFBQUFBa28yQUJB
QUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHdwpB
QUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dB
QUFBSkpSc0FBQUFDU2pZQUVBCkFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZD
d0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1EKaklJRkFBQWdHUVVMQUFCQU1n
b1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJr
RgpDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpD
TWdnVUFBQ0FaQlFzQUFFQXlDaFlBCkFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFC
SVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUEKeVNoWUFBQUFrbEd3QUFB
QUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFB
QUpKUgpzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dB
QUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCCkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29X
QUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUEKa0l5Q0JRQUFJQmtG
Q3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01n
Z1VBQUNBWgpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklS
c0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XCkFBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFK
S05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUEKQU1rb1dBQUFB
SkpSc0FBQUFDVDcvM1ZZenJ2YjdEazZBQUFBQUVsRlRrU3VRbUNDCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179139</attachid>
            <date>2012-12-12 15:55:49 -0800</date>
            <delta_ts>2012-12-13 09:58:19 -0800</delta_ts>
            <desc>Re-land after revert</desc>
            <filename>cmr_1212.txt</filename>
            <type>text/plain</type>
            <size>37463</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY4IEBACisyMDEyLTEyLTEyICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJj
ZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGRvZXNuJ3QgYWN0
dWFsbHkgZW5hYmxlIGNhY2hpbmcgb2YgbWFpbiByZXNvdXJjZXMuIFRoYXQgd2lsbCBiZSBkb25l
IGluIGEgbGF0ZXIgcGF0Y2guCisgICAgICAgIFRoZSBNYWluUmVzb3VyY2VMb2FkZXIgYWN0dWFs
bHkgaGFzIGFuIHVuZGVybHlpbmcgU3VicmVzb3VyY2VMb2FkZXIgKHdpdGggdGhlIGNhY2hlIGxh
eWVyIGJldHdlZW4gdGhlbSkuCisgICAgICAgIEluIHNldmVyYWwgcGxhY2VzLCB0aGUgTWFpblJl
c291cmNlTG9hZGVyJ3MgU3VicmVzb3VyY2VMb2FkZXIgaXMgdHJlYXRlZCBhcyBzcGVjaWFsLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cywgYXMgdGhpcyBpcyBwcmltYXJpbHkgYSByZWZhY3Rvci4g
QSBjb3VwbGUgb2YgZXhwZWN0ZWQgcmVzdWx0cyBjaGFuZ2VkIHNsaWdodGx5LgorCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjpzZXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
dWJyZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6YWRkU3VicmVz
b3VyY2VMb2FkZXIpOiBCZWNhdXNlIHRoZSBTdWJyZXNvdXJjZUxvYWRlciB1bmRlcmx5aW5nIHRo
ZSBtYWluIHJlc291cmNlCisgICAgICAgICAgICBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nIGluIGNl
cnRhaW4gY2FzZXMsIHRyYWNrIGl0IHNlcGFyYXRlbHkgZnJvbSB0aGUgcmVhbCBTdWJyZXNvdXJj
ZUxvYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVtb3ZlU3VicmVz
b3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9h
ZGluZ01haW5SZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxv
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6On5NYWluUmVzb3Vy
Y2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZWNlaXZl
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y2FuY2VsKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y2xlYXJSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6
ZnJhbWVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRl
ck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVy
OjpyZXNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpy
ZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6
d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6
Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3cpOgorICAgICAgICAoV2ViQ29y
ZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6OmRlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpzZXRTaG91bGRCdWZmZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6bG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6aWRlbnRpZmllcik6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAoTWFpblJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6ZG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyOjpkZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyOjpjYW5jZWxsZWQpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNh
Y2hlSG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZEZhbGxiYWNrRm9yTWFpbkVycm9y
KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkRG9uZSk6CisgICAgICAgICogbG9hZGVyL21h
Yy9Eb2N1bWVudExvYWRlck1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6c2NoZWR1bGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnVuc2NoZWR1
bGUpOgorCiAyMDEyLTEyLTEyICBFbGxpb3R0IFNwcmVobiAgPGVzcHJlaG5AZ21haWwuY29tPgog
CiAgICAgICAgIFtSZWZhY3RvcmluZ10gUmVwbGFjZSBOb2RlJ3MgRG9jdW1lbnQgcG9pbnRlciB3
aXRoIGEgVHJlZVNjb3BlIHBvaW50ZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMv
RG9jdW1lbnRMb2FkZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCShyZXZpc2lvbiAxMzc1MTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTUsOCArNTUsOCBAQAogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzY2hlZHVsZShTY2hlZHVs
ZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJl
c291cmNlTG9hZGVyLT5oYW5kbGUoKSkKLSAgICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhh
bmRsZSgpLT5zY2hlZHVsZShwYWlyKTsKKyAgICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYg
bV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5s
b2FkZXIoKS0+aGFuZGxlKCkpCisgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIo
KS0+aGFuZGxlKCktPnNjaGVkdWxlKHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fc3VicmVzb3Vy
Y2VMb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX3BsdWdJblN0cmVhbUxvYWRlcnMs
IHBhaXIpOwogICAgIHNjaGVkdWxlQWxsKG1fbXVsdGlwYXJ0U3VicmVzb3VyY2VMb2FkZXJzLCBw
YWlyKTsKQEAgLTY0LDggKzY0LDggQEAKIAogdm9pZCBEb2N1bWVudExvYWRlcjo6dW5zY2hlZHVs
ZShTY2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYgKG1fbWFpblJlc291cmNlTG9hZGVyICYm
IG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKSkKLSAgICAgICAgbV9tYWluUmVzb3VyY2VM
b2FkZXItPmhhbmRsZSgpLT51bnNjaGVkdWxlKHBhaXIpOworICAgIGlmIChtX21haW5SZXNvdXJj
ZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCkgJiYgbV9tYWluUmVzb3Vy
Y2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKSkKKyAgICAgICAgbV9tYWluUmVzb3VyY2VMb2Fk
ZXItPmxvYWRlcigpLT5oYW5kbGUoKS0+dW5zY2hlZHVsZShwYWlyKTsKICAgICB1bnNjaGVkdWxl
QWxsKG1fc3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKICAgICB1bnNjaGVkdWxlQWxsKG1fcGx1
Z0luU3RyZWFtTG9hZGVycywgcGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX211bHRpcGFydFN1
YnJlc291cmNlTG9hZGVycywgcGFpcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEzNzUxNykK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcwNiw3ICs3MDYsOCBAQAogICAgIFJlZlB0cjxEb2N1bWVudD4g
cHJvdGVjdERvY3VtZW50KG1fZG9jdW1lbnQpOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlO
RykKLSAgICBpZiAocmVzb3VyY2UgJiYgIXJlc291cmNlLT5lcnJvck9jY3VycmVkKCkgJiYgIXJl
c291cmNlLT53YXNDYW5jZWxlZCgpKSB7CisgICAgLy8gRklYTUU6IEFkZCByZXNvdXJjZSB0aW1p
bmcgc3VwcG9ydCBmb3IgbWFpbiByZXNvdXJjZXMuCisgICAgaWYgKHJlc291cmNlICYmIHJlc291
cmNlLT50eXBlKCkgIT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSAmJiAhcmVzb3VyY2Ut
PmVycm9yT2NjdXJyZWQoKSAmJiAhcmVzb3VyY2UtPndhc0NhbmNlbGVkKCkpIHsKICAgICAgICAg
SGFzaE1hcDxDYWNoZWRSZXNvdXJjZSosIEluaXRpYXRvckluZm8+OjppdGVyYXRvciBpbml0aWF0
b3JJdCA9IG1faW5pdGlhdG9yTWFwLmZpbmQocmVzb3VyY2UpOwogICAgICAgICBpZiAoaW5pdGlh
dG9ySXQgIT0gbV9pbml0aWF0b3JNYXAuZW5kKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChkb2N1
bWVudCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmNwcAkocmV2aXNpb24gMTM3NTE3KQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiAr
OTgsNyBAQAogCiB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsK
KyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcHJvdGVjdCh0aGlz
KTsKICAgICBpZiAoIXJlc3BvbnNlLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNl
Q2xpZW50V2Fsa2VyPENhY2hlZFJhd1Jlc291cmNlQ2xpZW50PiB3KG1fY2xpZW50cyk7CiAgICAg
ICAgIHdoaWxlIChDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCogYyA9IHcubmV4dCgpKQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM3
NTE3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaWZuZGVmIE1haW5SZXNvdXJjZUxvYWRlcl9o
CiAjZGVmaW5lIE1haW5SZXNvdXJjZUxvYWRlcl9oCiAKKyNpbmNsdWRlICJDYWNoZWRSYXdSZXNv
dXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
U3Vic3RpdHV0ZURhdGEuaCIKQEAgLTQ5LDQwICs1MSw0MiBAQAogY2xhc3MgRm9ybVN0YXRlOwog
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCi1jbGFzcyBNYWluUmVzb3VyY2VMb2FkZXIgOiBwdWJs
aWMgUmVzb3VyY2VMb2FkZXIgeworY2xhc3MgTWFpblJlc291cmNlTG9hZGVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8TWFpblJlc291cmNlTG9hZGVyPiwgcHVibGljIENhY2hlZFJhd1Jlc291cmNlQ2xp
ZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShEb2N1bWVudExvYWRlciopOwog
ICAgIHZpcnR1YWwgfk1haW5SZXNvdXJjZUxvYWRlcigpOwogCiAgICAgdm9pZCBsb2FkKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJik7Ci0gICAgdmlydHVhbCB2
b2lkIGFkZERhdGEoY29uc3QgY2hhciosIGludCwgYm9vbCBhbGxBdE9uY2UpIE9WRVJSSURFOwor
ICAgIHZvaWQgY2FuY2VsKCk7CisgICAgdm9pZCBjYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYp
OworICAgIFJlc291cmNlTG9hZGVyKiBsb2FkZXIoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFJl
c291cmNlQnVmZmVyPiByZXNvdXJjZURhdGEoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXREZWZl
cnNMb2FkaW5nKGJvb2wpIE9WRVJSSURFOworICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29s
KTsKKyAgICB2b2lkIHNldFNob3VsZEJ1ZmZlckRhdGEoRGF0YUJ1ZmZlcmluZ1BvbGljeSk7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgaW50LCBs
b25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJS
SURFOwotCiAjaWYgSEFWRShSVU5MT09QX1RJTUVSKQogICAgIHR5cGVkZWYgUnVuTG9vcFRpbWVy
PE1haW5SZXNvdXJjZUxvYWRlcj4gTWFpblJlc291cmNlTG9hZGVyVGltZXI7CiAjZWxzZQogICAg
IHR5cGVkZWYgVGltZXI8TWFpblJlc291cmNlTG9hZGVyPiBNYWluUmVzb3VyY2VMb2FkZXJUaW1l
cjsKICNlbmRpZgogCisgICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc0xvYWRpbmdNdWx0aXBhcnRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkaW5n
TXVsdGlwYXJ0Q29udGVudDsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKyAgICB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBNYWluUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqKTsKIAotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNl
KiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIE9WRVJSSURFOwogCi0gICAg
dm9pZCBsb2FkTm93KFJlc291cmNlUmVxdWVzdCYpOwotCisgICAgdm9pZCB3aWxsU2VuZFJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNw
b25zZSk7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKTsKICAg
ICB2b2lkIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jik7CiAgICAgdm9pZCBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3coTWFpblJlc291cmNlTG9h
ZGVyVGltZXIqKTsKIApAQCAtMTA0LDEwICsxMDgsMjIgQEAKICAgICB2b2lkIHN1YnN0aXR1dGVN
SU1FVHlwZUZyb21QbHVnaW5EYXRhYmFzZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAjZW5k
aWYKIAorICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlcigpIGNvbnN0OworICAgIERvY3VtZW50
TG9hZGVyKiBkb2N1bWVudExvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIu
Z2V0KCk7IH0KKworICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIGNvbnN0Owor
ICAgIHZvaWQgY2xlYXJSZXNvdXJjZSgpOworCisgICAgYm9vbCBkZWZlcnNMb2FkaW5nKCkgY29u
c3Q7CisKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNv
dXJjZTsKKwogICAgIFJlc291cmNlUmVxdWVzdCBtX2luaXRpYWxSZXF1ZXN0OwogICAgIFN1YnN0
aXR1dGVEYXRhIG1fc3Vic3RpdHV0ZURhdGE7CisgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3Bv
bnNlOwogCiAgICAgTWFpblJlc291cmNlTG9hZGVyVGltZXIgbV9kYXRhTG9hZFRpbWVyOworICAg
IFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsKIAogICAgIGJvb2wgbV9s
b2FkaW5nTXVsdGlwYXJ0Q29udGVudDsKICAgICBib29sIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xp
Y3k7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHJldmlz
aW9uIDEzNzUxNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI1MSw2ICsyNTEsOSBAQAogI2VuZGlmCiAgICAgfQogICAgIG1f
cmVxdWVzdCA9IHJlcXVlc3Q7CisKKyAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkg
JiYgIW1fZG9jdW1lbnRMb2FkZXItPmlzQ29tbWl0dGVkKCkpCisgICAgICAgIGZyYW1lTG9hZGVy
KCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZCgpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25l
ZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkocmV2
aXNpb24gMTM3NTE3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBACiAgICAg
ICAgIGlmIChpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkpIHsKICAgICAgICAgICAgIG1fbWFp
blJlc291cmNlQXBwbGljYXRpb25DYWNoZSA9IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZmFsbGJh
Y2tDYWNoZUZvck1haW5SZXF1ZXN0KHJlcXVlc3QsIGRvY3VtZW50TG9hZGVyKCkpOwogCi0gICAg
ICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNh
Y2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLCBtX21haW5SZXNvdXJj
ZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZh
bGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWlu
UmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNo
ZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9
CkBAIC0xMTcsNyArMTE3LDcgQEAKICAgICAgICAgaWYgKGlzQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQoKSkgewogICAgICAgICAgICAgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlID0gQXBw
bGljYXRpb25DYWNoZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9yTWFpblJlcXVlc3QocmVxdWVzdCwg
bV9kb2N1bWVudExvYWRlcik7CiAKLSAgICAgICAgICAgIGlmIChzY2hlZHVsZUxvYWRGYWxsYmFj
a1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291
cmNlTG9hZGVyKCksIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCisgICAg
ICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNh
Y2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5sb2FkZXIoKSwgbV9t
YWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9N
YWluUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzc1MTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsOCBAQAogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnNv
bGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAt
NDQsMTUgKzQ2LDE1IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAi
SGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKLSNp
bmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVkdWxlci5o
IgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgi
CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNpZiBQTEFURk9STShRVCkKQEAgLTYz
LDEzICs2NSwxMSBAQAogI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRp
ZgogCi0vLyBGSVhNRTogTW9yZSB0aGF0IGlzIGluIGNvbW1vbiB3aXRoIFN1YnJlc291cmNlTG9h
ZGVyIHNob3VsZCBtb3ZlIHVwIGludG8gUmVzb3VyY2VMb2FkZXIuCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogTWFpblJlc291cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRM
b2FkZXIqIGRvY3VtZW50TG9hZGVyKQotICAgIDogUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnRMb2Fk
ZXItPmZyYW1lKCksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNv
bnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNy
b3NzT3JpZ2luQ3JlZGVudGlhbHMsIFNraXBTZWN1cml0eUNoZWNrKSkKLSAgICAsIG1fZGF0YUxv
YWRUaW1lcih0aGlzLCAmTWFpblJlc291cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxv
YWROb3cpCisgICAgOiBtX2RhdGFMb2FkVGltZXIodGhpcywgJk1haW5SZXNvdXJjZUxvYWRlcjo6
aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KQorICAgICwgbV9kb2N1bWVudExvYWRlcihkb2N1
bWVudExvYWRlcikKICAgICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAg
LCBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KGZhbHNlKQogICAgICwgbV90aW1lT2ZMYXN0RGF0
YVJlY2VpdmVkKDAuMCkKQEAgLTgxLDYgKzgxLDcgQEAKIAogTWFpblJlc291cmNlTG9hZGVyOjp+
TWFpblJlc291cmNlTG9hZGVyKCkKIHsKKyAgICBjbGVhclJlc291cmNlKCk7CiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwODAKICAgICBBU1NFUlQoIW1fZmlsdGVyKTsKICNlbmRpZgpAQCAtMTAyLDM1ICsx
MDMsMzMgQEAKICAgICAvLyBkb2N1bWVudCBsb2FkZXJzLiBBbHNvLCBtYWluUmVjZWl2ZWRFcnJv
ciBlbmRzIHVwIGNhbGxpbmcgYSBGcmFtZUxvYWREZWxlZ2F0ZSBtZXRob2QKICAgICAvLyBhbmQg
ZGlkRmFpbFRvTG9hZCBjYWxscyBhIFJlc291cmNlTG9hZERlbGVnYXRlIG1ldGhvZCBhbmQgdGhl
eSBuZWVkIHRvIGJlIGluIHRoZSBjb3JyZWN0IG9yZGVyLgogICAgIGRvY3VtZW50TG9hZGVyKCkt
Pm1haW5SZWNlaXZlZEVycm9yKGVycm9yKTsKK30KIAotICAgIGlmICghY2FuY2VsbGVkKCkpIHsK
LSAgICAgICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsKLSAgICAgICAgZnJhbWVM
b2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkRmFpbFRvTG9hZCh0aGlzLCBlcnJvcik7Ci0gICAgICAg
IAotICAgICAgICByZWxlYXNlUmVzb3VyY2VzKCk7Ci0gICAgfQotCi0gICAgQVNTRVJUKHJlYWNo
ZWRUZXJtaW5hbFN0YXRlKCkpOwordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbCgpCit7
CisgICAgY2FuY2VsKFJlc291cmNlRXJyb3IoKSk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjp3aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKQordm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmNhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKKyAgICBSZWZQdHI8
TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOworICAgIFJlc291cmNlRXJyb3IgcmVz
b3VyY2VFcnJvciA9IGVycm9yLmlzTnVsbCgpID8gZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJy
b3IocmVxdWVzdCgpKSA6IGVycm9yOworCiAgICAgbV9kYXRhTG9hZFRpbWVyLnN0b3AoKTsKIAog
ICAgIGlmIChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KSB7CiAgICAgICAgIGZyYW1lTG9hZGVy
KCktPnBvbGljeUNoZWNrZXIoKS0+Y2FuY2VsQ2hlY2soKTsKICAgICAgICAgQVNTRVJUKG1fd2Fp
dGluZ0ZvckNvbnRlbnRQb2xpY3kpOwogICAgICAgICBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5
ID0gZmFsc2U7Ci0gICAgICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiBkaWRSZWNlaXZl
UmVzcG9uc2UKKyAgICAgICAgZGVyZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGluIHJlc3BvbnNlUmVj
ZWl2ZWQKICAgICB9Ci19CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRDYW5jZWwoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgLy8gV2Ugc2hvdWxkIG5vdGlmeSB0aGUg
ZnJhbWUgbG9hZGVyIGFmdGVyIGZ1bGx5IGNhbmNlbGluZyB0aGUgbG9hZCwgYmVjYXVzZSBpdCBj
YW4gZG8gY29tcGxpY2F0ZWQgd29yawotICAgIC8vIGxpa2UgY2FsbGluZyBET01XaW5kb3c6OnBy
aW50KCksIGR1cmluZyB3aGljaCBhIGhhbGYtY2FuY2VsZWQgbG9hZCBjb3VsZCB0cnkgdG8gZmlu
aXNoLgotICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNlaXZlZEVycm9yKGVycm9yKTsKKyAg
ICBpZiAobG9hZGVyKCkpCisgICAgICAgIGxvYWRlcigpLT5jYW5jZWwocmVzb3VyY2VFcnJvcik7
CiAKKyAgICBjbGVhclJlc291cmNlKCk7CisgICAgcmVjZWl2ZWRFcnJvcihyZXNvdXJjZUVycm9y
KTsKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAg
IHdrRmlsdGVyUmVsZWFzZShtX2ZpbHRlcik7CkBAIC0xMzksNiArMTM4LDI0IEBACiAjZW5kaWYK
IH0KIAordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVzb3VyY2UoKQoreworICAgIGlm
IChtX3Jlc291cmNlKSB7CisgICAgICAgIG1fcmVzb3VyY2UtPnJlbW92ZUNsaWVudCh0aGlzKTsK
KyAgICAgICAgbV9yZXNvdXJjZSA9IDA7CisgICAgfQorfQorCitGcmFtZUxvYWRlciogTWFpblJl
c291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZG9jdW1l
bnRMb2FkZXItPmZyYW1lTG9hZGVyKCk7Cit9CisKK2NvbnN0IFJlc291cmNlUmVxdWVzdCYgTWFp
blJlc291cmNlTG9hZGVyOjpyZXF1ZXN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNvdXJj
ZSA/IG1fcmVzb3VyY2UtPnJlc291cmNlUmVxdWVzdCgpIDogbV9pbml0aWFsUmVxdWVzdDsKK30K
KwogUmVzb3VyY2VFcnJvciBNYWluUmVzb3VyY2VMb2FkZXI6OmludGVycnVwdGVkRm9yUG9saWN5
Q2hhbmdlRXJyb3IoKSBjb25zdAogewogICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQo
KS0+aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihyZXF1ZXN0KCkpOwpAQCAtMTYzLDcg
KzE4MCw3IEBACiAgICAgZWxzZSBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKICAg
ICAgICAgLy8gQSByZWRpcmVjdCByZXN1bHRlZCBpbiBsb2FkaW5nIHN1YnN0aXR1dGUgZGF0YS4K
ICAgICAgICAgQVNTRVJUKGRvY3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5yZWRpcmVjdENvdW50
KCkpOwotICAgICAgICBoYW5kbGUoKS0+Y2FuY2VsKCk7CisgICAgICAgIGNsZWFyUmVzb3VyY2Uo
KTsKICAgICAgICAgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkU29vbihyZXF1ZXN0KTsKICAgICB9
CiAKQEAgLTE4MywxMiArMjAwLDE3IEBACiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIE1h
aW5SZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBi
b29sIGFsbEF0T25jZSkKK1Bhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IE1haW5SZXNvdXJjZUxv
YWRlcjo6cmVzb3VyY2VEYXRhKCkKIHsKLSAgICBSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShkYXRh
LCBsZW5ndGgsIGFsbEF0T25jZSk7Ci0gICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVjZWl2ZWREYXRh
KGRhdGEsIGxlbmd0aCk7CisgICAgcmV0dXJuIG1fcmVzb3VyY2UgPyBtX3Jlc291cmNlLT5yZXNv
dXJjZUJ1ZmZlcigpIDogMDsKIH0KIAordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnJlZGlyZWN0
UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAgQVNT
RVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9yZXNvdXJjZSk7CisgICAgd2lsbFNl
bmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworfQorCiB2b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICAvLyBOb3Rl
IHRoYXQgdGhlcmUgYXJlIG5vIGFzc2VydHMgaGVyZSBhcyB0aGVyZSBhcmUgZm9yIHRoZSBvdGhl
ciBjYWxsYmFja3MuIFRoaXMgaXMgZHVlIHRvIHRoZQpAQCAtMjM5LDggKzI2MSw2IEBACiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KG5ld1Jl
cXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwotCiAgICAgLy8gRG9uJ3Qgc2V0IHRoaXMgb24gdGhl
IGZpcnN0IHJlcXVlc3QuIEl0IGlzIHNldCB3aGVuIHRoZSBtYWluIGxvYWQgd2FzIHN0YXJ0ZWQu
CiAgICAgbV9kb2N1bWVudExvYWRlci0+c2V0UmVxdWVzdChuZXdSZXF1ZXN0KTsKIApAQCAtMjc3
LDE3ICsyOTcsMTYgQEAKICAgICAgICAgaWYgKCFmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+Y2Fu
U2hvd01JTUVUeXBlKG1pbWVUeXBlKSB8fCBpc1JlbW90ZVdlYkFyY2hpdmUpIHsKICAgICAgICAg
ICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2Fubm90U2hvd01JTUVUeXBlKHIp
OwogICAgICAgICAgICAgLy8gQ2hlY2sgcmVhY2hlZFRlcm1pbmFsU3RhdGUgc2luY2UgdGhlIGxv
YWQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNhbmNlbGVkIGluc2lkZSBvZiBfaGFuZGxlVW5pbXBs
ZW1lbnRhYmxlUG9saWN5V2l0aEVycm9yQ29kZTo6LgotICAgICAgICAgICAgaWYgKCFyZWFjaGVk
VGVybWluYWxTdGF0ZSgpKQotICAgICAgICAgICAgICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hh
bmdlKCk7CisgICAgICAgICAgICBzdG9wTG9hZGluZ0ZvclBvbGljeUNoYW5nZSgpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGNh
c2UgUG9saWN5RG93bmxvYWQ6IHsKLSAgICAgICAgLy8gbV9oYW5kbGUgY2FuIGJlIG51bGwsIGUu
Zy4gd2hlbiBsb2FkaW5nIGEgc3Vic3RpdHV0ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNh
Y2hlLgotICAgICAgICBpZiAoIW1faGFuZGxlKSB7Ci0gICAgICAgICAgICByZWNlaXZlZEVycm9y
KGNhbm5vdFNob3dVUkxFcnJvcigpKTsKKyAgICAgICAgLy8gbV9yZXNvdXJjZSBjYW4gYmUgbnVs
bCwgZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBwbGljYXRp
b24gY2FjaGUuCisgICAgICAgIGlmICghbV9yZXNvdXJjZSkgeworICAgICAgICAgICAgcmVjZWl2
ZWRFcnJvcihmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+Y2Fubm90U2hvd1VSTEVycm9yKHJlcXVl
c3QoKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRoUG9saWN5RG93bmxvYWQobV9kb2N1bWVudExv
YWRlci0+ZnJhbWUoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKQEAgLTI5
Nyw3ICszMTYsNyBAQAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IHRoaXMtPnJl
cXVlc3QoKTsKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+c2V0T3JpZ2luYWxVUkxGb3JEb3dubG9h
ZFJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRv
d25sb2FkKG1faGFuZGxlLmdldCgpLCByZXF1ZXN0LCByKTsKKyAgICAgICAgZnJhbWVMb2FkZXIo
KS0+Y2xpZW50KCktPmRvd25sb2FkKGxvYWRlcigpLT5oYW5kbGUoKSwgcmVxdWVzdCwgcik7CiAK
ICAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBnb25lIG1pc3NpbmcKICAgICAgICAgaWYgKGZyYW1l
TG9hZGVyKCkpCkBAIC0zMjksMTMgKzM0OCw5IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAv
LyB3ZSBtYXkgaGF2ZSBjYW5jZWxsZWQgdGhpcyBsb2FkIGFzIHBhcnQgb2Ygc3dpdGNoaW5nIHRv
IGZhbGxiYWNrIGNvbnRlbnQKLSAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0gICAg
ICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uocik7Ci0KLSAgICBpZiAobV9k
b2N1bWVudExvYWRlciAmJiAhbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpICYmIG1fc3Vi
c3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CisgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0
b3BwaW5nKCkgJiYgbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKICAgICAgICAgaWYgKG1f
c3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCkpCi0gICAgICAgICAgICBkaWRSZWNlaXZl
RGF0YShtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+ZGF0YSgpLCBtX3N1YnN0aXR1dGVEYXRh
LmNvbnRlbnQoKS0+c2l6ZSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpLCB0
cnVlKTsKKyAgICAgICAgICAgIGRhdGFSZWNlaXZlZCgwLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRl
bnQoKS0+ZGF0YSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKTsKICAgICAg
ICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3BwaW5nKCkpCiAgICAgICAgICAgICBkaWRG
aW5pc2hMb2FkaW5nKDApOwogICAgIH0KQEAgLTM1MiwxMSArMzY3LDEyIEBACiAgICAgbV93YWl0
aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwogICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+
aXNTdG9wcGluZygpKQogICAgICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShwb2xpY3ks
IG1fcmVzcG9uc2UpOwotICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiBkaWRSZWNlaXZl
UmVzcG9uc2UKKyAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gcmVzcG9uc2VSZWNlaXZl
ZAogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHIpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VS
ZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHIpCiB7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgbV9yZXNvdXJjZSA9PSByZXNvdXJj
ZSk7CiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1h
eWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKHJlcXVlc3QoKSwgcikpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtMzgyLDcgKzM5OCw3IEBACiAKICAgICBpZiAobV9sb2FkaW5nTXVsdGlwYXJ0
Q29udGVudCkgewogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zZXR1cEZvclJlcGxhY2UoKTsK
LSAgICAgICAgY2xlYXJSZXNvdXJjZURhdGEoKTsKKyAgICAgICAgbV9yZXNvdXJjZS0+Y2xlYXIo
KTsKICAgICB9CiAgICAgCiAgICAgaWYgKHIuaXNNdWx0aXBhcnQoKSkKQEAgLTM5OCw3ICs0MTQs
NyBAQAogCiAgICAgQVNTRVJUKCFtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsKICAgICBtX3dh
aXRpbmdGb3JDb250ZW50UG9saWN5ID0gdHJ1ZTsKLSAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkg
ZGVyZWYgaW4gY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kgYW5kIGRpZENhbmNlbAorICAgIHJl
ZigpOyAvLyBiYWxhbmNlZCBieSBkZXJlZiBpbiBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeSBh
bmQgY2FuY2VsCiAKICAgICAvLyBBbHdheXMgc2hvdyBjb250ZW50IHdpdGggdmFsaWQgc3Vic3Rp
dHV0ZSBkYXRhLgogICAgIGlmIChtX2RvY3VtZW50TG9hZGVyLT5zdWJzdGl0dXRlRGF0YSgpLmlz
VmFsaWQoKSkgewpAQCAtNDIzLDExICs0MzksMTEgQEAKICAgICBmcmFtZUxvYWRlcigpLT5wb2xp
Y3lDaGVja2VyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCBjYWxsQ29udGludWVB
ZnRlckNvbnRlbnRQb2xpY3ksIHRoaXMpOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVu
Y29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVy
OjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChkYXRhKTsKICAgICBBU1NFUlQobGVuZ3RoICE9
IDApOwotCisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9yZXNvdXJj
ZSk7CiAgICAgQVNTRVJUKCFtX3Jlc3BvbnNlLmlzTnVsbCgpKTsKIAogI2lmIFVTRShDRk5FVFdP
UkspIHx8IFBMQVRGT1JNKE1BQykKQEAgLTQ1MiwxNiArNDY4LDE1IEBACiAgICAgICAgIC8vIElm
IHdlIGRvbid0IGhhdmUgYmxvY2tlZERhdGEsIHRoYXQgbWVhbnMgd2UncmUgc3RpbGwgYWNjdW11
bGF0aW5nIGRhdGEKICAgICAgICAgaWYgKCFibG9ja2VkRGF0YSkgewogICAgICAgICAgICAgLy8g
VHJhbnNpdGlvbiB0byBjb21taXR0ZWQgc3RhdGUuCi0gICAgICAgICAgICBSZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEoIiIsIDAsIDAsIGZhbHNlKTsKKyAgICAgICAgICAgIGRvY3VtZW50
TG9hZGVyKCktPnJlY2VpdmVkRGF0YSgwLCAwKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCiAgICAgICAgIGRhdGEgPSBibG9ja2VkRGF0YTsKLSAgICAgICAgZW5jb2RlZERhdGFM
ZW5ndGggPSAtMTsKICAgICB9CiAjZW5kaWYKIAotICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxp
Y2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNlaXZlZChkYXRhLCBsZW5ndGgs
IGVuY29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOworICAgIGRvY3VtZW50TG9hZGVyKCktPmFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNlaXZlZChkYXRhLCBsZW5n
dGgsIC0xLCBmYWxzZSk7CiAKICAgICAvLyBUaGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNhbiBk
byBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3ZpbmcgdGhlIGxhc3QKICAgICAvLyBy
ZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4K
QEAgLTQ2OSw3ICs0ODQsNyBAQAogCiAgICAgbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkID0gbW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAKLSAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsKKyAg
ICBkb2N1bWVudExvYWRlcigpLT5yZWNlaXZlZERhdGEoZGF0YSwgbGVuZ3RoKTsKIAogI2lmIFBM
QVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKFdlYkZpbHRlckV2YWx1YXRvciAqZmlsdGVyID0gbV9m
aWx0ZXIpIHsKQEAgLTQ5MCw3ICs1MDUsNyBAQAogICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENG
TmV0d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRz
IGFyZSBkZWZlcnJlZC4KICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBt
b3JlIGRldGFpbHMuCiAjaWYgIVVTRShDRikKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSB8
fCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRGVidWdnZXJQYXVzZWQobV9mcmFtZS5nZXQo
KSkpOworICAgIEFTU0VSVCghZGVmZXJzTG9hZGluZygpIHx8IEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6aXNEZWJ1Z2dlclBhdXNlZChtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpKSk7CiAjZW5k
aWYKIAogICAgIC8vIFRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5nIGlu
Y2x1ZGluZyBwb3NzaWJseSByZW1vdmluZyB0aGUgbGFzdApAQCAtNTA2LDcgKzUyMSw3IEBACiAg
ICAgICAgIC8vIFJlbW92ZSB0aGlzLT5tX2ZpbHRlciBlYXJseSBzbyBkaWRSZWNlaXZlRGF0YSBk
b2Vzbid0IHNlZSBpdC4KICAgICAgICAgbV9maWx0ZXIgPSAwOwogICAgICAgICBpZiAoZGF0YSkK
LSAgICAgICAgICAgIGRpZFJlY2VpdmVEYXRhKGRhdGEsIGxlbmd0aCwgLTEsIGZhbHNlKTsKKyAg
ICAgICAgICAgIGRhdGFSZWNlaXZlZChtX3Jlc291cmNlLmdldCgpLCBkYXRhLCBsZW5ndGgpOwog
ICAgICAgICB3a0ZpbHRlclJlbGVhc2UoZmlsdGVyKTsKICAgICB9CiAjZW5kaWYKQEAgLTUxNiwx
MyArNTMxLDE4IEBACiAKICAgICBkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+c2V0UmVzcG9u
c2VFbmQoZmluaXNoVGltZSA/IGZpbmlzaFRpbWUgOiAobV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVk
ID8gbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkIDogbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpKTsKICAgICBkb2N1bWVudExvYWRlcigpLT5maW5pc2hlZExvYWRpbmcoKTsKLSAgICBSZXNv
dXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKIAogICAgIGRsLT5hcHBs
aWNhdGlvbkNhY2hlSG9zdCgpLT5maW5pc2hlZExvYWRpbmdNYWluUmVzb3VyY2UoKTsKIH0KIAot
dm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlKQogeworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIG1fcmVzb3VyY2Ug
PT0gcmVzb3VyY2UpOworICAgIGlmICghbV9yZXNvdXJjZSB8fCAoIW1fcmVzb3VyY2UtPmVycm9y
T2NjdXJyZWQoKSAmJiAhbV9yZXNvdXJjZS0+d2FzQ2FuY2VsZWQoKSkpIHsKKyAgICAgICAgZGlk
RmluaXNoTG9hZGluZyhtX3Jlc291cmNlLT5sb2FkRmluaXNoVGltZSgpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKG1fZmlsdGVyKSB7
CiAgICAgICAgIHdrRmlsdGVyUmVsZWFzZShtX2ZpbHRlcik7CkBAIC01MzAsNiArNTUwLDcgQEAK
ICAgICB9CiAjZW5kaWYKIAorICAgIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yID0gbV9yZXNv
dXJjZS0+cmVzb3VyY2VFcnJvcigpOwogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5FcnJvcihyZXF1ZXN0KCks
IGVycm9yKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01NDUsNyArNTY2LDYgQEAKIHZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6TG9hZGVyKTsKLSAgICBSZXNvdXJj
ZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5h
ZGRNZW1iZXIobV9pbml0aWFsUmVxdWVzdCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdWJzdGl0
dXRlRGF0YSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9kYXRhTG9hZFRpbWVyKTsKQEAgLTU2NCw3
ICs1ODQsNyBAQAogICAgIG1faW5pdGlhbFJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKICAg
ICAgICAgCiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSh1cmwsIG1fc3Vic3RpdHV0ZURh
dGEubWltZVR5cGUoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgbV9zdWJz
dGl0dXRlRGF0YS50ZXh0RW5jb2RpbmcoKSwgIiIpOwotICAgIGRpZFJlY2VpdmVSZXNwb25zZShy
ZXNwb25zZSk7CisgICAgcmVzcG9uc2VSZWNlaXZlZCgwLCByZXNwb25zZSk7CiB9CiAKIHZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpzdGFydERhdGFMb2FkVGltZXIoKQpAQCAtNTg3LDI5ICs2MDcs
OCBAQAogICAgICAgICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3coMCk7CiB9CiAKLXZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikKK3ZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgaW5pdGlhbFJlcXVl
c3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKIHsKLSAgICBBU1NFUlQo
IW1faGFuZGxlKTsKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0KLSNpZiBVU0UoUExB
VEZPUk1fU1RSQVRFR0lFUykKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRl
Z3koKS0+cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPmFkZE1haW5SZXNvdXJjZUxvYWQodGhpcyk7
Ci0jZWxzZQotICAgIHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5hZGRNYWluUmVzb3VyY2VMb2Fk
KHRoaXMpOwotI2VuZGlmCi0KLSAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpCi0g
ICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocik7Ci0gICAgZWxzZQotICAgICAg
ICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5l
dHdvcmtpbmdDb250ZXh0KCksIHIsIHRoaXMsIGZhbHNlLCB0cnVlKTsKLQotICAgIHJldHVybjsK
LX0KLQotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCi17Ci0gICAgQVNTRVJU
KCFtX2hhbmRsZSk7Ci0KICAgICAvLyBJdCBhcHBlYXJzIHRoYXQgaXQgaXMgcG9zc2libGUgZm9y
IHRoaXMgbG9hZCB0byBiZSBjYW5jZWxsZWQgYW5kIGRlcmVmZW5jZWQgYnkgdGhlIERvY3VtZW50
TG9hZGVyCiAgICAgLy8gaW4gd2lsbFNlbmRSZXF1ZXN0KCkgaWYgbG9hZE5vdygpIGlzIGNhbGxl
ZC4KICAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwpAQCAtNjE5
LDcgKzYxOCw3IEBACiAgICAgQVNTRVJUKGRvY3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5uYXZp
Z2F0aW9uU3RhcnQoKSk7CiAgICAgQVNTRVJUKCFkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+
ZmV0Y2hTdGFydCgpKTsKICAgICBkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+bWFya0ZldGNo
U3RhcnQoKTsKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChyKTsKKyAgICBSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdChpbml0aWFsUmVxdWVzdCk7CiAKICAgICAvLyBTZW5kIHRoaXMgc3ludGhl
dGljIGRlbGVnYXRlIGNhbGxiYWNrIHNpbmNlIGNsaWVudHMgZXhwZWN0IGl0LCBhbmQKICAgICAv
LyB3ZSBubyBsb25nZXIgc2VuZCB0aGUgY2FsbGJhY2sgZnJvbSB3aXRoaW4gTlNVUkxDb25uZWN0
aW9uIGZvcgpAQCAtNjI3LDM3ICs2MjYsNjIgQEAKICAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVz
dCwgUmVzb3VyY2VSZXNwb25zZSgpKTsKICAgICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7
CiAKLSAgICAvLyA8cmRhcjovL3Byb2JsZW0vNDgwMTA2Nj4KLSAgICAvLyB3aWxsU2VuZFJlcXVl
c3QoKSBpcyBsaWFibGUgdG8gbWFrZSB0aGUgY2FsbCB0byBmcmFtZUxvYWRlcigpIHJldHVybiBu
dWxsLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQgaGVyZQotICAgIGlmICghZnJhbWVMb2FkZXIo
KSB8fCByZXF1ZXN0LmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3Rh
dGUoKSkKLSAgICAgICAgICAgIHJlbGVhc2VSZXNvdXJjZXMoKTsKKyAgICAvLyB3aWxsU2VuZFJl
cXVlc3QoKSBtYXkgbGVhZCB0byBvdXIgRG9jdW1lbnRMb2FkZXIgYmVpbmcgZGV0YWNoZWQgb3Ig
Y2FuY2VsbGluZyB0aGUgbG9hZCB2aWEgbnVsbGluZyB0aGUgUmVzb3VyY2VSZXF1ZXN0LgorICAg
IGlmICghZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSB8fCByZXF1ZXN0LmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+bWF5YmVMb2FkTWFpblJlc291cmNlKHJlcXVlc3QsIG1fc3Vic3RpdHV0ZURh
dGEpOwogCi0gICAgaWYgKGRlZmVyc0xvYWRpbmcoKSkKLSAgICAgICAgbV9pbml0aWFsUmVxdWVz
dCA9IHJlcXVlc3Q7Ci0gICAgZWxzZQotICAgICAgICBsb2FkTm93KHJlcXVlc3QpOworICAgIGlm
IChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgeworICAgICAgICBoYW5kbGVTdWJzdGl0dXRl
RGF0YUxvYWRTb29uKHJlcXVlc3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChSZXNvdXJjZUxvYWRlck9wdGlvbnMsIG1haW5SZXNvdXJjZUxvYWRP
cHRpb25zLAorICAgICAgICAoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRh
LCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRp
YWxzLCBTa2lwU2VjdXJpdHlDaGVjaykpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNo
ZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCwgbWFpblJlc291cmNlTG9hZE9wdGlvbnMpOworICAg
IG1fcmVzb3VyY2UgPSBkb2N1bWVudExvYWRlcigpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0TWFpblJlc291cmNlKGNhY2hlZFJlc291cmNlUmVxdWVzdCk7CisgICAgaWYgKCFtX3Jl
c291cmNlKSB7CisgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPnNldFJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fcmVzb3VyY2UtPmFkZENs
aWVudCh0aGlzKTsKKworICAgIC8vIFdlIG5lZWQgdG8gd2FpdCB1bnRpbCBhZnRlciByZXF1ZXN0
TWFpblJlc291cmNlKCkgaXMgY2FsbGVkIHRvIHNldFJlcXVlc3QoKSwgYmVjYXVzZSB0aGVyZSBh
cmUgYSBidW5jaCBvZiBoZWFkZXJzIHNldCB3aGVuCisgICAgLy8gdGhlIHVuZGVybHlpbmcgUmVz
b3VyY2VMb2FkZXIgaXMgY3JlYXRlZCwgYW5kIERvY3VtZW50TG9hZGVyOjptX3JlcXVlc3QgbmVl
ZHMgdG8gaW5jbHVkZSB0aG9zZS4gSG93ZXZlciwgdGhlIGNhY2hlIHdpbGwKKyAgICAvLyBzdHJp
cCB0aGUgZnJhZ21lbnQgaWRlbnRpZmllciAod2hpY2ggRG9jdW1lbnRMb2FkZXI6Om1fcmVxdWVz
dCBzaG91bGQgYWxzbyBpbmNsdWRlKSwgc28gYWRkIHRoYXQgYmFjayBpbi4KKyAgICBpZiAobG9h
ZGVyKCkpCisgICAgICAgIHJlcXVlc3QgPSBsb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCk7Cisg
ICAgZG9jdW1lbnRMb2FkZXIoKS0+c2V0UmVxdWVzdChyZXF1ZXN0KTsKIH0KIAogdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7Ci0gICAgUmVz
b3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKKyAgICBpZiAobG9hZGVyKCkp
CisgICAgICAgIGxvYWRlcigpLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7Cit9CiAKLSAgICBp
ZiAoZGVmZXJzKSB7Ci0gICAgICAgIGlmIChtX2RhdGFMb2FkVGltZXIuaXNBY3RpdmUoKSkKLSAg
ICAgICAgICAgIG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
aWYgKG1faW5pdGlhbFJlcXVlc3QuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm47Citib29s
IE1haW5SZXNvdXJjZUxvYWRlcjo6ZGVmZXJzTG9hZGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGxvYWRlcigpID8gbG9hZGVyKCktPmRlZmVyc0xvYWRpbmcoKSA6IGZhbHNlOworfQogCi0gICAg
ICAgIFJlc291cmNlUmVxdWVzdCBpbml0aWFsUmVxdWVzdChtX2luaXRpYWxSZXF1ZXN0KTsKLSAg
ICAgICAgbV9pbml0aWFsUmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCgpOwotICAgICAgICBsb2Fk
Tm93KGluaXRpYWxSZXF1ZXN0KTsKLSAgICB9Cit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0
U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVmZmVyaW5nUG9saWN5IHNob3VsZEJ1ZmZlckRhdGEpCit7
CisgICAgQVNTRVJUKG1fcmVzb3VyY2UpOworICAgIG1fcmVzb3VyY2UtPnNldFNob3VsZEJ1ZmZl
ckRhdGEoc2hvdWxkQnVmZmVyRGF0YSk7CiB9CiAKK1Jlc291cmNlTG9hZGVyKiBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmxvYWRlcigpIGNvbnN0Cit7IAorICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9y
ZXNvdXJjZS0+bG9hZGVyKCkgOiAwOwogfQorCit1bnNpZ25lZCBsb25nIE1haW5SZXNvdXJjZUxv
YWRlcjo6aWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgaWYgKFJlc291cmNlTG9hZGVyKiByZXNv
dXJjZUxvYWRlciA9IGxvYWRlcigpKQorICAgICAgICByZXR1cm4gcmVzb3VyY2VMb2FkZXItPmlk
ZW50aWZpZXIoKTsKKyAgICByZXR1cm4gMDsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzc1MTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsMTMg
KzE4MCw3IEBACiAgICAgLy8gd291bGQgYmUgYSBXZWJGb3VuZGF0aW9uIGJ1ZyBpZiBpdCBzZW50
IGEgcmVkaXJlY3QgY2FsbGJhY2sgYWZ0ZXIgY29tbWl0LgogICAgIEFTU0VSVCghbV9jb21taXR0
ZWQpOwogCi0gICAgS1VSTCBvbGRVUkwgPSBtX3JlcXVlc3QudXJsKCk7CiAgICAgbV9yZXF1ZXN0
ID0gcmVxOwotCi0gICAgLy8gT25seSBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZCgpIGlmIFVSTCBjaGFuZ2VkIChhbmQgaXMgbm9uLW51bGwpLgotICAg
IC8vIEFsc28sIGRvbid0IHNlbmQgaXQgd2hlbiByZXBsYWNpbmcgdW5yZWFjaGFibGUgVVJMcyB3
aXRoIGFsdGVybmF0ZSBjb250ZW50LgotICAgIGlmICghaGFuZGxpbmdVbnJlYWNoYWJsZVVSTCAm
JiAhcmVxLnVybCgpLmlzTnVsbCgpICYmIG9sZFVSTCAhPSByZXEudXJsKCkpCi0gICAgICAgIGZy
YW1lTG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZCgpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRNYWluRG9j
dW1lbnRFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTU4NSw2ICs1NzksOSBA
QAogICAgIGlmICghcmVzb3VyY2UgfHwgIXJlc291cmNlLT5pc0xvYWRlZCgpKQogICAgICAgICBy
ZXR1cm4gYXJjaGl2ZVJlc291cmNlRm9yVVJMKHVybCk7CiAKKyAgICBpZiAocmVzb3VyY2UtPnR5
cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKQorICAgICAgICByZXR1cm4gMDsK
KwogICAgIC8vIEZJWE1FOiBUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgbWFraW5nIHRoZSBy
ZXNvdXJjZSBub24tcHVyZ2VhYmxlLgogICAgIC8vIEl0IHdvdWxkIGJlIGJldHRlciBpZiBpdCBk
aWRuJ3QgaGF2ZSB0aGlzIHBlcm1hbmVudCBlZmZlY3QuCiAgICAgaWYgKCFyZXNvdXJjZS0+bWFr
ZVB1cmdlYWJsZShmYWxzZSkpCkBAIC04MTEsMTEgKzgwOCwyMiBAQAogCiB2b2lkIERvY3VtZW50
TG9hZGVyOjphZGRTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogewor
ICAgIC8vIFRoZSBtYWluIHJlc291cmNlJ3MgdW5kZXJseWluZyBSZXNvdXJjZUxvYWRlciB3aWxs
IGFzayB0byBiZSBhZGRlZCBoZXJlLgorICAgIC8vIEl0IGlzIG11Y2ggc2ltcGxlciB0byBoYW5k
bGUgc3BlY2lhbCBjYXNpbmcgb2YgbWFpbiByZXNvdXJjZSBsb2FkcyBpZiB3ZSBkb24ndAorICAg
IC8vIGxldCBpdCBiZSBhZGRlZC4gSW4gdGhlIG1haW4gcmVzb3VyY2UgbG9hZCBjYXNlLCBtX21h
aW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCkKKyAgICAvLyB3aWxsIHN0aWxsIGJlIG51bGwgYXQg
dGhpcyBwb2ludCwgYnV0IG1fZ290Rmlyc3RCeXRlIHNob3VsZCBiZSBmYWxzZSBoZXJlIGlmIGFu
ZCBvbmx5CisgICAgLy8gaWYgd2UgYXJlIGp1c3Qgc3RhcnRpbmcgdGhlIG1haW4gcmVzb3VyY2Ug
bG9hZC4KKyAgICBpZiAoIW1fZ290Rmlyc3RCeXRlKQorICAgICAgICByZXR1cm47CisgICAgQVNT
RVJUKCFtX3N1YnJlc291cmNlTG9hZGVycy5jb250YWlucyhsb2FkZXIpKTsKKyAgICBBU1NFUlQo
IW1fbWFpblJlc291cmNlTG9hZGVyIHx8IG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKSAh
PSBsb2FkZXIpOwogICAgIG1fc3VicmVzb3VyY2VMb2FkZXJzLmFkZChsb2FkZXIpOwogfQogCiB2
b2lkIERvY3VtZW50TG9hZGVyOjpyZW1vdmVTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRl
ciogbG9hZGVyKQogeworICAgIGlmICghbV9zdWJyZXNvdXJjZUxvYWRlcnMuY29udGFpbnMobG9h
ZGVyKSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fc3VicmVzb3VyY2VMb2FkZXJzLnJlbW92ZShs
b2FkZXIpOwogICAgIGNoZWNrTG9hZENvbXBsZXRlKCk7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9
IG1fZnJhbWUpCkBAIC04ODEsNiArODg5LDEwIEBACiAKICAgICBpZiAobV9yZXF1ZXN0LmlzTnVs
bCgpKSB7CiAgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0gMDsKKyAgICAgICAgLy8gSWYg
dGhlIGxvYWQgd2FzIGFib3J0ZWQgYnkgY2xlYXJpbmcgbV9yZXF1ZXN0LCBpdCdzIHBvc3NpYmxl
IHRoZSBBcHBsaWNhdGlvbkNhY2hlSG9zdAorICAgICAgICAvLyBpcyBub3cgaW4gYSBzdGF0ZSB3
aGVyZSBzdGFydGluZyBhbiBlbXB0eSBsb2FkIHdpbGwgYmUgaW5jb25zaXN0ZW50LiBSZXBsYWNl
IGl0IHdpdGgKKyAgICAgICAgLy8gYSBuZXcgQXBwbGljYXRpb25DYWNoZUhvc3QuCisgICAgICAg
IG1fYXBwbGljYXRpb25DYWNoZUhvc3QgPSBhZG9wdFB0cihuZXcgQXBwbGljYXRpb25DYWNoZUhv
c3QodGhpcykpOwogICAgICAgICBtYXliZUxvYWRFbXB0eSgpOwogICAgIH0KIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAxMzc1MTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NjUsNiArNjUsNyBAQAogICAgIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKCk7CiAg
ICAgCiAgICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CisgICAgYm9vbCBk
ZWZlcnNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcnNMb2FkaW5nOyB9CiAKICAgICB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0K
IApAQCAtMTY3LDcgKzE2OCw2IEBACiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nT25lUGFydChk
b3VibGUgZmluaXNoVGltZSk7CiAKICAgICBib29sIGNhbmNlbGxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2FuY2VsbGVkOyB9Ci0gICAgYm9vbCBkZWZlcnNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9kZWZlcnNMb2FkaW5nOyB9CiAKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxl
OwogICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzUyNSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTEyLTEyICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUm91dGUgbWFpbiByZXNvdXJjZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3Rl
ZC50eHQ6IFRoZSBlcnJvciBjb2RlIGZvciBsb2FkcyBjYW5jZWxsZWQKKyAgICAgICAgICAgIGJ5
IGFuIGVtYmVkZGVyJ3Mgd2lsbFNlbmRSZXF1ZXN0KCkgd2lsbCBzaG93IGFzIHN0YW5kYXJkIGxv
YWQgY2FuY2VsbGF0aW9ucyByYXRoZXIgdGhhbiBhcyBhIGNvbnRlbnQgcG9saWN5CisgICAgICAg
ICAgICBmYWlsdXJlLiBUaGlzIHdhcyBhbiBvZGQgcXVpcmsgb2YgaG93IE1haW5SZXNvdXJjZUxv
YWRlcjo6d2lsbFNlbmRSZXF1ZXN0KCkgd2FzIGltcGxlbWVudGVkIChuYW1lbHksIGRvaW5nIGEK
KyAgICAgICAgICAgIGNvbnRlbnQgcG9saWN5IGNoZWNrIG9uIFJlc291cmNlUmVxdWVzdHMgd2l0
aCBlbXB0eSB1cmxzKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3Jl
cGxhY2VkL2JvcmRlci1yYWRpdXMtY2xpcC1jb250ZW50LWVkZ2UtZXhwZWN0ZWQucG5nOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVz
dC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBUaGUgZXJyb3IgY29kZSBm
b3IgbG9hZHMgY2FuY2VsbGVkCisgICAgICAgICAgICBieSBhbiBlbWJlZGRlcidzIHdpbGxTZW5k
UmVxdWVzdCgpIHdpbGwgc2hvdyBhcyBzdGFuZGFyZCBsb2FkIGNhbmNlbGxhdGlvbnMgcmF0aGVy
IHRoYW4gYXMgYSBjb250ZW50IHBvbGljeQorICAgICAgICAgICAgZmFpbHVyZS4gVGhpcyB3YXMg
YW4gb2RkIHF1aXJrIG9mIGhvdyBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCgp
IHdhcyBpbXBsZW1lbnRlZCAobmFtZWx5LCBkb2luZyBhCisgICAgICAgICAgICBjb250ZW50IHBv
bGljeSBjaGVjayBvbiBSZXNvdXJjZVJlcXVlc3RzIHdpdGggZW1wdHkgdXJscykuCisKIDIwMTIt
MTItMTIgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCB0ZXN0IGV4cGVjdGF0aW9ucyB1cGRhdGU6IHR3ZWFrIGZsYWtpbmVzcyBvZiByZXNvdXJj
ZSB0aW1pbmcgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbC1z
ZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0
dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTM3NTE3KQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVs
bC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBA
CiA8dW5rbm93bj4gLSBkaWRGaW5pc2hMb2FkaW5nCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gd2lsbFNlbmRSZXF1ZXN0IDxO
U1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vLCBtYWluIGRvY3VtZW50IFVS
TCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51
bGwtb24tcmVkaXJlY3QuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxO
U1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVj
dC10by1odHRwLXVybC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgogUmV0dXJuaW5nIG51bGwg
Zm9yIHRoaXMgcmVkaXJlY3QKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9y
ZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJy
b3IgZG9tYWluIFdlYktpdEVycm9yRG9tYWluLCBjb2RlIDEwMj4KK2h0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9h
ZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5
OT4KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU5NQogVGhpcyB0
ZXN0IGNoZWNrcyB0byBtYWtlIHN1cmUgdGhhdCB0aGluZ3MgYmVoYXZlIGFzIGV4cGVjdGVkIHdo
ZW4gdGhlIHJlc291cmNlIGxvYWQgZGVsZWdhdGUgcmV0dXJucyBudWxsIGluIHJlc3BvbnNlIHRv
IHdpbGxTZW5kUmVxdWVzdC4KIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAtY29udGVudC1lZGdlLWV4cGVj
dGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFy
eSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1u
dWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJu
cy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTM3NTE3KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1
ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTIsNyArMiw3IEBACiA8dW5rbm93bj4gLSBkaWRGaW5pc2hMb2FkaW5nCiBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwucGhwIC0gd2ls
bFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vLCBt
YWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy93aWxsLXNlbmQtcmVx
dWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRp
cmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jl
c291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAsIGh0dHAgc3RhdHVzIGNvZGUgMzAyPgog
UmV0dXJuaW5nIG51bGwgZm9yIHRoaXMgcmVkaXJlY3QKLWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9t
aXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dp
dGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIFdlYktpdCwgY29kZSAtMTAwMDAsIGZhaWxpbmcgVVJM
ICIobnVsbCkiPgoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0
LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21h
aW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51bGwpIj4KIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU5NQogVGhpcyB0ZXN0IGNo
ZWNrcyB0byBtYWtlIHN1cmUgdGhhdCB0aGluZ3MgYmVoYXZlIGFzIGV4cGVjdGVkIHdoZW4gdGhl
IHJlc291cmNlIGxvYWQgZGVsZWdhdGUgcmV0dXJucyBudWxsIGluIHJlc3BvbnNlIHRvIHdpbGxT
ZW5kUmVxdWVzdC4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179293</attachid>
            <date>2012-12-13 09:58:27 -0800</date>
            <delta_ts>2012-12-13 09:59:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-49246-20121213175547.patch</filename>
            <type>text/plain</type>
            <size>61997</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMCBAQAorMjAxMi0xMi0wNSAgTmF0ZSBD
aGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJvdXRlIG1haW4gcmVzb3Vy
Y2UgbG9hZHMgdGhyb3VnaCB0aGUgbWVtb3J5IGNhY2hlLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNDYKKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyBwYXRjaCBkb2Vzbid0IGFj
dHVhbGx5IGVuYWJsZSBjYWNoaW5nIG9mIG1haW4gcmVzb3VyY2VzLiBUaGF0IHdpbGwgYmUgZG9u
ZSBpbiBhIGxhdGVyIHBhdGNoLgorICAgICAgICBUaGUgTWFpblJlc291cmNlTG9hZGVyIGFjdHVh
bGx5IGhhcyBhbiB1bmRlcmx5aW5nIFN1YnJlc291cmNlTG9hZGVyICh3aXRoIHRoZSBjYWNoZSBs
YXllciBiZXR3ZWVuIHRoZW0pLgorICAgICAgICBJbiBzZXZlcmFsIHBsYWNlcywgdGhlIE1haW5S
ZXNvdXJjZUxvYWRlcidzIFN1YnJlc291cmNlTG9hZGVyIGlzIHRyZWF0ZWQgYXMgc3BlY2lhbC4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgcHJpbWFyaWx5IGEgcmVmYWN0b3Iu
IEEgY291cGxlIG9mIGV4cGVjdGVkIHJlc3VsdHMgY2hhbmdlZCBzbGlnaHRseS4KKworICAgICAg
ICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlcjo6c2V0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
c3VicmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmFkZFN1YnJl
c291cmNlTG9hZGVyKTogQmVjYXVzZSB0aGUgU3VicmVzb3VyY2VMb2FkZXIgdW5kZXJseWluZyB0
aGUgbWFpbiByZXNvdXJjZQorICAgICAgICAgICAgbmVlZHMgc3BlY2lhbCBoYW5kbGluZyBpbiBj
ZXJ0YWluIGNhc2VzLCB0cmFjayBpdCBzZXBhcmF0ZWx5IGZyb20gdGhlIHJlYWwgU3VicmVzb3Vy
Y2VMb2FkZXJzLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlbW92ZVN1YnJl
c291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdGFydExv
YWRpbmdNYWluUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VM
b2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZWNlaXZlZEVy
cm9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y2FuY2VsKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y2xlYXJSZXNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZnJh
bWVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlck5h
dmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpy
ZXNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpyZWRp
cmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6d2ls
bFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y29u
dGludWVBZnRlckNvbnRlbnRQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3cpOgorICAgICAgICAoV2ViQ29yZTo6
TWFpblJlc291cmNlTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OmRlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNl
TG9hZGVyOjpzZXRTaG91bGRCdWZmZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6bG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRl
cjo6aWRlbnRpZmllcik6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oOgor
ICAgICAgICAoTWFpblJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6ZG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1
ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjpkZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZGVyOjpjYW5jZWxsZWQpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tGb3JNYWluUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZEZhbGxiYWNrRm9yTWFpbkVycm9yKToK
KyAgICAgICAgKiBsb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzY2hlZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudExvYWRlcjo6dW5zY2hlZHVsZSk6CisKKzw8PDw8PDwgLm1pbmUKKzIwMTItMTItMTIgIE5h
dGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSb3V0ZSBtYWluIHJl
c291cmNlIGxvYWRzIHRocm91Z2ggdGhlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MjQ2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyBwYXRjaCBk
b2Vzbid0IGFjdHVhbGx5IGVuYWJsZSBjYWNoaW5nIG9mIG1haW4gcmVzb3VyY2VzLiBUaGF0IHdp
bGwgYmUgZG9uZSBpbiBhIGxhdGVyIHBhdGNoLgorICAgICAgICBUaGUgTWFpblJlc291cmNlTG9h
ZGVyIGFjdHVhbGx5IGhhcyBhbiB1bmRlcmx5aW5nIFN1YnJlc291cmNlTG9hZGVyICh3aXRoIHRo
ZSBjYWNoZSBsYXllciBiZXR3ZWVuIHRoZW0pLgorICAgICAgICBJbiBzZXZlcmFsIHBsYWNlcywg
dGhlIE1haW5SZXNvdXJjZUxvYWRlcidzIFN1YnJlc291cmNlTG9hZGVyIGlzIHRyZWF0ZWQgYXMg
c3BlY2lhbC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMgaXMgcHJpbWFyaWx5IGEg
cmVmYWN0b3IuIEEgY291cGxlIG9mIGV4cGVjdGVkIHJlc3VsdHMgY2hhbmdlZCBzbGlnaHRseS4K
KworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudExvYWRlcjo6c2V0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlcjo6c3VicmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6
OmFkZFN1YnJlc291cmNlTG9hZGVyKTogQmVjYXVzZSB0aGUgU3VicmVzb3VyY2VMb2FkZXIgdW5k
ZXJseWluZyB0aGUgbWFpbiByZXNvdXJjZQorICAgICAgICAgICAgbmVlZHMgc3BlY2lhbCBoYW5k
bGluZyBpbiBjZXJ0YWluIGNhc2VzLCB0cmFjayBpdCBzZXBhcmF0ZWx5IGZyb20gdGhlIHJlYWwg
U3VicmVzb3VyY2VMb2FkZXJzLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJl
bW92ZVN1YnJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
OjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3Vy
Y2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpNYWlu
UmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjp+
TWFpblJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRl
cjo6cmVjZWl2ZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6
OmNhbmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVz
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OmZyYW1lTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNv
bnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6cmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJj
ZUxvYWRlcjo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1haW5SZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNYWluUmVzb3VyY2VMb2FkZXI6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
TWFpblJlc291cmNlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
YWluUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1haW5SZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNYWluUmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6TWFpblJlc291cmNlTG9hZGVyOjpkZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1haW5SZXNvdXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWlu
UmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIpOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3Vy
Y2VMb2FkZXIuaDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBsb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGVmZXJzTG9hZGluZyk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6Y2FuY2VsbGVkKToKKyAgICAgICAgKiBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZUhvc3Q6Om1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRGYWxsYmFja0Zv
ck1haW5FcnJvcik6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjp3aWxsU2VuZFJlcXVlc3Qp
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZERvbmUpOgorICAgICAgICAq
IGxvYWRlci9tYWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXI6OnNjaGVkdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
Ojp1bnNjaGVkdWxlKToKKworPT09PT09PQogMjAxMi0xMi0xMyAgSm9hbm1hcmllIERpZ2dzICA8
amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRXhwb3NlIEFSSUEgcm9sZXMgZm9y
IHRhYiwgdGFicGFuZWwgYW5kIHRhYmxpc3QKQEAgLTg0NCw2ICs5NzEsNyBAQAogICAgICAgICAq
IGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgogICAgICAgICAoV2ViQ29yZTo6Q2FyZXRCYXNl
OjpwYWludENhcmV0KTogUm91bmQgcGFpbnRPZmZzZXQgdG8gZW5zdXJlIGl0IGlzIG9uIGEgcGl4
ZWwgYm91bmRhcnkuCiAKKz4+Pj4+Pj4gLnIxMzc1OTgKIDIwMTItMTItMTIgIEVsbGlvdHQgU3By
ZWhuICA8ZXNwcmVobkBnbWFpbC5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTigxMzczMzYpOiBH
ZW5lcmF0ZWQgcnVuLWlucyBhcmUgbm90IHBsYWNlZCBjb3JyZWN0bHkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkocmV2aXNpb24gMTM3NjA0KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTgwLDEzICsxODAsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRSZXF1ZXN0KGNvbnN0IFJl
CiAgICAgLy8gd291bGQgYmUgYSBXZWJGb3VuZGF0aW9uIGJ1ZyBpZiBpdCBzZW50IGEgcmVkaXJl
Y3QgY2FsbGJhY2sgYWZ0ZXIgY29tbWl0LgogICAgIEFTU0VSVCghbV9jb21taXR0ZWQpOwogCi0g
ICAgS1VSTCBvbGRVUkwgPSBtX3JlcXVlc3QudXJsKCk7CiAgICAgbV9yZXF1ZXN0ID0gcmVxOwot
Ci0gICAgLy8gT25seSBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZCgpIGlmIFVSTCBjaGFuZ2VkIChhbmQgaXMgbm9uLW51bGwpLgotICAgIC8vIEFsc28s
IGRvbid0IHNlbmQgaXQgd2hlbiByZXBsYWNpbmcgdW5yZWFjaGFibGUgVVJMcyB3aXRoIGFsdGVy
bmF0ZSBjb250ZW50LgotICAgIGlmICghaGFuZGxpbmdVbnJlYWNoYWJsZVVSTCAmJiAhcmVxLnVy
bCgpLmlzTnVsbCgpICYmIG9sZFVSTCAhPSByZXEudXJsKCkpCi0gICAgICAgIGZyYW1lTG9hZGVy
KCktPmNsaWVudCgpLT5kaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZCgpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRNYWluRG9jdW1lbnRFcnJv
cihjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTU4NSw2ICs1NzksOSBAQCBQYXNzUmVm
UHRyPEFyY2hpdmVSZXNvdXJjZT4gRG9jdW1lbnRMb2FkCiAgICAgaWYgKCFyZXNvdXJjZSB8fCAh
cmVzb3VyY2UtPmlzTG9hZGVkKCkpCiAgICAgICAgIHJldHVybiBhcmNoaXZlUmVzb3VyY2VGb3JV
UkwodXJsKTsKIAorICAgIGlmIChyZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpN
YWluUmVzb3VyY2UpCisgICAgICAgIHJldHVybiAwOworCiAgICAgLy8gRklYTUU6IFRoaXMgaGFz
IHRoZSBzaWRlIGVmZmVjdCBvZiBtYWtpbmcgdGhlIHJlc291cmNlIG5vbi1wdXJnZWFibGUuCiAg
ICAgLy8gSXQgd291bGQgYmUgYmV0dGVyIGlmIGl0IGRpZG4ndCBoYXZlIHRoaXMgcGVybWFuZW50
IGVmZmVjdC4KICAgICBpZiAoIXJlc291cmNlLT5tYWtlUHVyZ2VhYmxlKGZhbHNlKSkKQEAgLTgx
MSwxMSArODA4LDIyIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0b3BMb2FkaW5nU3VicmVzb3UK
IAogdm9pZCBEb2N1bWVudExvYWRlcjo6YWRkU3VicmVzb3VyY2VMb2FkZXIoUmVzb3VyY2VMb2Fk
ZXIqIGxvYWRlcikKIHsKKyAgICAvLyBUaGUgbWFpbiByZXNvdXJjZSdzIHVuZGVybHlpbmcgUmVz
b3VyY2VMb2FkZXIgd2lsbCBhc2sgdG8gYmUgYWRkZWQgaGVyZS4KKyAgICAvLyBJdCBpcyBtdWNo
IHNpbXBsZXIgdG8gaGFuZGxlIHNwZWNpYWwgY2FzaW5nIG9mIG1haW4gcmVzb3VyY2UgbG9hZHMg
aWYgd2UgZG9uJ3QKKyAgICAvLyBsZXQgaXQgYmUgYWRkZWQuIEluIHRoZSBtYWluIHJlc291cmNl
IGxvYWQgY2FzZSwgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpCisgICAgLy8gd2lsbCBz
dGlsbCBiZSBudWxsIGF0IHRoaXMgcG9pbnQsIGJ1dCBtX2dvdEZpcnN0Qnl0ZSBzaG91bGQgYmUg
ZmFsc2UgaGVyZSBpZiBhbmQgb25seQorICAgIC8vIGlmIHdlIGFyZSBqdXN0IHN0YXJ0aW5nIHRo
ZSBtYWluIHJlc291cmNlIGxvYWQuCisgICAgaWYgKCFtX2dvdEZpcnN0Qnl0ZSkKKyAgICAgICAg
cmV0dXJuOworICAgIEFTU0VSVCghbV9zdWJyZXNvdXJjZUxvYWRlcnMuY29udGFpbnMobG9hZGVy
KSk7CisgICAgQVNTRVJUKCFtX21haW5SZXNvdXJjZUxvYWRlciB8fCBtX21haW5SZXNvdXJjZUxv
YWRlci0+bG9hZGVyKCkgIT0gbG9hZGVyKTsKICAgICBtX3N1YnJlc291cmNlTG9hZGVycy5hZGQo
bG9hZGVyKTsKIH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6cmVtb3ZlU3VicmVzb3VyY2VMb2Fk
ZXIoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKIHsKKyAgICBpZiAoIW1fc3VicmVzb3VyY2VMb2Fk
ZXJzLmNvbnRhaW5zKGxvYWRlcikpCisgICAgICAgIHJldHVybjsKICAgICBtX3N1YnJlc291cmNl
TG9hZGVycy5yZW1vdmUobG9hZGVyKTsKICAgICBjaGVja0xvYWRDb21wbGV0ZSgpOwogICAgIGlm
IChGcmFtZSogZnJhbWUgPSBtX2ZyYW1lKQpAQCAtODgxLDYgKzg4OSwxMCBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzCiAKICAgICBpZiAobV9yZXF1ZXN0LmlzTnVs
bCgpKSB7CiAgICAgICAgIG1fbWFpblJlc291cmNlTG9hZGVyID0gMDsKKyAgICAgICAgLy8gSWYg
dGhlIGxvYWQgd2FzIGFib3J0ZWQgYnkgY2xlYXJpbmcgbV9yZXF1ZXN0LCBpdCdzIHBvc3NpYmxl
IHRoZSBBcHBsaWNhdGlvbkNhY2hlSG9zdAorICAgICAgICAvLyBpcyBub3cgaW4gYSBzdGF0ZSB3
aGVyZSBzdGFydGluZyBhbiBlbXB0eSBsb2FkIHdpbGwgYmUgaW5jb25zaXN0ZW50LiBSZXBsYWNl
IGl0IHdpdGgKKyAgICAgICAgLy8gYSBuZXcgQXBwbGljYXRpb25DYWNoZUhvc3QuCisgICAgICAg
IG1fYXBwbGljYXRpb25DYWNoZUhvc3QgPSBhZG9wdFB0cihuZXcgQXBwbGljYXRpb25DYWNoZUhv
c3QodGhpcykpOwogICAgICAgICBtYXliZUxvYWRFbXB0eSgpOwogICAgIH0KIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAx
Mzc2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQAogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25D
YWNoZUhvc3QuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgpAQCAtNDQsMTUgKzQ2LDE1IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJQcm9n
cmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJl
c291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIlJl
c291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUg
IlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNp
ZiBQTEFURk9STShRVCkKQEAgLTYzLDEzICs2NSwxMSBAQAogI2luY2x1ZGUgIldlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCi0vLyBGSVhNRTogTW9yZSB0aGF0IGlzIGluIGNvbW1v
biB3aXRoIFN1YnJlc291cmNlTG9hZGVyIHNob3VsZCBtb3ZlIHVwIGludG8gUmVzb3VyY2VMb2Fk
ZXIuCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWFpblJlc291cmNlTG9hZGVyOjpNYWluUmVz
b3VyY2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQotICAgIDogUmVzb3Vy
Y2VMb2FkZXIoZG9jdW1lbnRMb2FkZXItPmZyYW1lKCksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhT
ZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVu
dGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIFNraXBTZWN1cml0eUNo
ZWNrKSkKLSAgICAsIG1fZGF0YUxvYWRUaW1lcih0aGlzLCAmTWFpblJlc291cmNlTG9hZGVyOjpo
YW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3cpCisgICAgOiBtX2RhdGFMb2FkVGltZXIodGhpcywg
Jk1haW5SZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KQorICAgICwg
bV9kb2N1bWVudExvYWRlcihkb2N1bWVudExvYWRlcikKICAgICAsIG1fbG9hZGluZ011bHRpcGFy
dENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KGZhbHNlKQog
ICAgICwgbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkKDAuMCkKQEAgLTgxLDYgKzgxLDcgQEAgTWFp
blJlc291cmNlTG9hZGVyOjpNYWluUmVzb3VyY2VMb2FkZXIoRAogCiBNYWluUmVzb3VyY2VMb2Fk
ZXI6On5NYWluUmVzb3VyY2VMb2FkZXIoKQogeworICAgIGNsZWFyUmVzb3VyY2UoKTsKICNpZiBQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA4MAogICAgIEFTU0VSVCghbV9maWx0ZXIpOwogI2VuZGlmCkBAIC0xMDIs
MzQgKzEwMywzMiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVjZWl2ZWRFcnJvcihjCiAg
ICAgLy8gZG9jdW1lbnQgbG9hZGVycy4gQWxzbywgbWFpblJlY2VpdmVkRXJyb3IgZW5kcyB1cCBj
YWxsaW5nIGEgRnJhbWVMb2FkRGVsZWdhdGUgbWV0aG9kCiAgICAgLy8gYW5kIGRpZEZhaWxUb0xv
YWQgY2FsbHMgYSBSZXNvdXJjZUxvYWREZWxlZ2F0ZSBtZXRob2QgYW5kIHRoZXkgbmVlZCB0byBi
ZSBpbiB0aGUgY29ycmVjdCBvcmRlci4KICAgICBkb2N1bWVudExvYWRlcigpLT5tYWluUmVjZWl2
ZWRFcnJvcihlcnJvcik7Cit9CiAKLSAgICBpZiAoIWNhbmNlbGxlZCgpKSB7Ci0gICAgICAgIEFT
U0VSVCghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7Ci0gICAgICAgIGZyYW1lTG9hZGVyKCktPm5v
dGlmaWVyKCktPmRpZEZhaWxUb0xvYWQodGhpcywgZXJyb3IpOwotICAgICAgICAKLSAgICAgICAg
cmVsZWFzZVJlc291cmNlcygpOwotICAgIH0KLQotICAgIEFTU0VSVChyZWFjaGVkVGVybWluYWxT
dGF0ZSgpKTsKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjYW5jZWwoKQoreworICAgIGNhbmNl
bChSZXNvdXJjZUVycm9yKCkpOwogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbENh
bmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjYW5j
ZWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CisgICAgUmVmUHRyPE1haW5SZXNvdXJj
ZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKKyAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3Ig
PSBlcnJvci5pc051bGwoKSA/IGZyYW1lTG9hZGVyKCktPmNhbmNlbGxlZEVycm9yKHJlcXVlc3Qo
KSkgOiBlcnJvcjsKKwogICAgIG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7CiAKICAgICBpZiAobV93
YWl0aW5nRm9yQ29udGVudFBvbGljeSkgewogICAgICAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lD
aGVja2VyKCktPmNhbmNlbENoZWNrKCk7CiAgICAgICAgIEFTU0VSVChtX3dhaXRpbmdGb3JDb250
ZW50UG9saWN5KTsKICAgICAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwot
ICAgICAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gZGlkUmVjZWl2ZVJlc3BvbnNlCisg
ICAgICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiByZXNwb25zZVJlY2VpdmVkCiAgICAg
fQotfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKQotewotICAgIC8vIFdlIHNob3VsZCBub3RpZnkgdGhlIGZyYW1lIGxvYWRl
ciBhZnRlciBmdWxseSBjYW5jZWxpbmcgdGhlIGxvYWQsIGJlY2F1c2UgaXQgY2FuIGRvIGNvbXBs
aWNhdGVkIHdvcmsKLSAgICAvLyBsaWtlIGNhbGxpbmcgRE9NV2luZG93OjpwcmludCgpLCBkdXJp
bmcgd2hpY2ggYSBoYWxmLWNhbmNlbGVkIGxvYWQgY291bGQgdHJ5IHRvIGZpbmlzaC4KLSAgICBk
b2N1bWVudExvYWRlcigpLT5tYWluUmVjZWl2ZWRFcnJvcihlcnJvcik7CisgICAgaWYgKGxvYWRl
cigpKQorICAgICAgICBsb2FkZXIoKS0+Y2FuY2VsKHJlc291cmNlRXJyb3IpOworCisgICAgY2xl
YXJSZXNvdXJjZSgpOworICAgIHJlY2VpdmVkRXJyb3IocmVzb3VyY2VFcnJvcik7CiAKICNpZiBQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChtX2ZpbHRlcikgewpAQCAtMTM5LDYgKzEzOCwyNCBA
QCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkQ2FuY2VsKGNvbnN0CiAjZW5kaWYKIH0KIAor
dm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVzb3VyY2UoKQoreworICAgIGlmIChtX3Jl
c291cmNlKSB7CisgICAgICAgIG1fcmVzb3VyY2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAg
ICAgbV9yZXNvdXJjZSA9IDA7CisgICAgfQorfQorCitGcmFtZUxvYWRlciogTWFpblJlc291cmNl
TG9hZGVyOjpmcmFtZUxvYWRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZG9jdW1lbnRMb2Fk
ZXItPmZyYW1lTG9hZGVyKCk7Cit9CisKK2NvbnN0IFJlc291cmNlUmVxdWVzdCYgTWFpblJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNvdXJjZSA/IG1f
cmVzb3VyY2UtPnJlc291cmNlUmVxdWVzdCgpIDogbV9pbml0aWFsUmVxdWVzdDsKK30KKwogUmVz
b3VyY2VFcnJvciBNYWluUmVzb3VyY2VMb2FkZXI6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdl
RXJyb3IoKSBjb25zdAogewogICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+aW50
ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihyZXF1ZXN0KCkpOwpAQCAtMTYzLDcgKzE4MCw3
IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyTmEKICAgICBlbHNlIGlm
IChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgewogICAgICAgICAvLyBBIHJlZGlyZWN0IHJl
c3VsdGVkIGluIGxvYWRpbmcgc3Vic3RpdHV0ZSBkYXRhLgogICAgICAgICBBU1NFUlQoZG9jdW1l
bnRMb2FkZXIoKS0+dGltaW5nKCktPnJlZGlyZWN0Q291bnQoKSk7Ci0gICAgICAgIGhhbmRsZSgp
LT5jYW5jZWwoKTsKKyAgICAgICAgY2xlYXJSZXNvdXJjZSgpOwogICAgICAgICBoYW5kbGVTdWJz
dGl0dXRlRGF0YUxvYWRTb29uKHJlcXVlc3QpOwogICAgIH0KIApAQCAtMTgzLDEwICsyMDAsMTUg
QEAgYm9vbCBNYWluUmVzb3VyY2VMb2FkZXI6OmlzUG9zdE9yUmVkaXJlYwogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmFkZERhdGEoY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpCitQYXNzUmVmUHRyPFJlc291cmNlQnVm
ZmVyPiBNYWluUmVzb3VyY2VMb2FkZXI6OnJlc291cmNlRGF0YSgpCiB7Ci0gICAgUmVzb3VyY2VM
b2FkZXI6OmFkZERhdGEoZGF0YSwgbGVuZ3RoLCBhbGxBdE9uY2UpOwotICAgIGRvY3VtZW50TG9h
ZGVyKCktPnJlY2VpdmVkRGF0YShkYXRhLCBsZW5ndGgpOworICAgIHJldHVybiBtX3Jlc291cmNl
ID8gbV9yZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSA6IDA7Cit9CisKK3ZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJl
c3BvbnNlKQoreworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fcmVz
b3VyY2UpOworICAgIHdpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
IH0KIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9u
c2UpCkBAIC0yMzksOCArMjYxLDYgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdAogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKLQogICAgIC8vIERvbid0IHNl
dCB0aGlzIG9uIHRoZSBmaXJzdCByZXF1ZXN0LiBJdCBpcyBzZXQgd2hlbiB0aGUgbWFpbiBsb2Fk
IHdhcyBzdGFydGVkLgogICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3UmVxdWVz
dCk7CiAKQEAgLTI3NywxNyArMjk3LDE2IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjb250
aW51ZUFmdGVyQ28KICAgICAgICAgaWYgKCFmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+Y2FuU2hv
d01JTUVUeXBlKG1pbWVUeXBlKSB8fCBpc1JlbW90ZVdlYkFyY2hpdmUpIHsKICAgICAgICAgICAg
IGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+Y2Fubm90U2hvd01JTUVUeXBlKHIpOwog
ICAgICAgICAgICAgLy8gQ2hlY2sgcmVhY2hlZFRlcm1pbmFsU3RhdGUgc2luY2UgdGhlIGxvYWQg
bWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNhbmNlbGVkIGluc2lkZSBvZiBfaGFuZGxlVW5pbXBsZW1l
bnRhYmxlUG9saWN5V2l0aEVycm9yQ29kZTo6LgotICAgICAgICAgICAgaWYgKCFyZWFjaGVkVGVy
bWluYWxTdGF0ZSgpKQotICAgICAgICAgICAgICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdl
KCk7CisgICAgICAgICAgICBzdG9wTG9hZGluZ0ZvclBvbGljeUNoYW5nZSgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGNhc2Ug
UG9saWN5RG93bmxvYWQ6IHsKLSAgICAgICAgLy8gbV9oYW5kbGUgY2FuIGJlIG51bGwsIGUuZy4g
d2hlbiBsb2FkaW5nIGEgc3Vic3RpdHV0ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0aW9uIGNhY2hl
LgotICAgICAgICBpZiAoIW1faGFuZGxlKSB7Ci0gICAgICAgICAgICByZWNlaXZlZEVycm9yKGNh
bm5vdFNob3dVUkxFcnJvcigpKTsKKyAgICAgICAgLy8gbV9yZXNvdXJjZSBjYW4gYmUgbnVsbCwg
ZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBwbGljYXRpb24g
Y2FjaGUuCisgICAgICAgIGlmICghbV9yZXNvdXJjZSkgeworICAgICAgICAgICAgcmVjZWl2ZWRF
cnJvcihmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+Y2Fubm90U2hvd1VSTEVycm9yKHJlcXVlc3Qo
KSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRoUG9saWN5RG93bmxvYWQobV9kb2N1bWVudExvYWRl
ci0+ZnJhbWUoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKQEAgLTI5Nyw3
ICszMTYsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvCiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gdGhpcy0+cmVxdWVzdCgpOwogICAgICAgICBm
cmFtZUxvYWRlcigpLT5zZXRPcmlnaW5hbFVSTEZvckRvd25sb2FkUmVxdWVzdChyZXF1ZXN0KTsK
IAotICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZG93bmxvYWQobV9oYW5kbGUuZ2V0
KCksIHJlcXVlc3QsIHIpOworICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZG93bmxv
YWQobG9hZGVyKCktPmhhbmRsZSgpLCByZXF1ZXN0LCByKTsKIAogICAgICAgICAvLyBJdCBtaWdo
dCBoYXZlIGdvbmUgbWlzc2luZwogICAgICAgICBpZiAoZnJhbWVMb2FkZXIoKSkKQEAgLTMyOSwx
MyArMzQ4LDkgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDbwogICAg
ICAgICB9CiAgICAgfQogCi0gICAgLy8gd2UgbWF5IGhhdmUgY2FuY2VsbGVkIHRoaXMgbG9hZCBh
cyBwYXJ0IG9mIHN3aXRjaGluZyB0byBmYWxsYmFjayBjb250ZW50Ci0gICAgaWYgKCFyZWFjaGVk
VGVybWluYWxTdGF0ZSgpKQotICAgICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKHIpOwotCi0gICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIgJiYgIW1fZG9jdW1lbnRMb2FkZXIt
PmlzU3RvcHBpbmcoKSAmJiBtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgeworICAgIGlmICgh
bV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpICYmIG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxp
ZCgpKSB7CiAgICAgICAgIGlmIChtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpKQot
ICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEobV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPmRh
dGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgbV9zdWJzdGl0dXRlRGF0
YS5jb250ZW50KCktPnNpemUoKSwgdHJ1ZSk7CisgICAgICAgICAgICBkYXRhUmVjZWl2ZWQoMCwg
bV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250
ZW50KCktPnNpemUoKSk7CiAgICAgICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGlu
ZygpKQogICAgICAgICAgICAgZGlkRmluaXNoTG9hZGluZygwKTsKICAgICB9CkBAIC0zNTIsMTEg
KzM2NywxMiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvCiAgICAg
bV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IGZhbHNlOwogICAgIGlmICghbV9kb2N1bWVudExv
YWRlci0+aXNTdG9wcGluZygpKQogICAgICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShw
b2xpY3ksIG1fcmVzcG9uc2UpOwotICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiBkaWRS
ZWNlaXZlUmVzcG9uc2UKKyAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gcmVzcG9uc2VS
ZWNlaXZlZAogfQogCi12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVz
cG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHIpCiB7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgbV9yZXNvdXJjZSA9PSBy
ZXNvdXJjZSk7CiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0
KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKHJlcXVlc3QoKSwgcikpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMzgyLDcgKzM5OCw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlUmVzcG8KIAogICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KSB7
CiAgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnNldHVwRm9yUmVwbGFjZSgpOwotICAgICAgICBj
bGVhclJlc291cmNlRGF0YSgpOworICAgICAgICBtX3Jlc291cmNlLT5jbGVhcigpOwogICAgIH0K
ICAgICAKICAgICBpZiAoci5pc011bHRpcGFydCgpKQpAQCAtMzk4LDcgKzQxNCw3IEBAIHZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG8KIAogICAgIEFTU0VSVCghbV93YWl0
aW5nRm9yQ29udGVudFBvbGljeSk7CiAgICAgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeSA9IHRy
dWU7Ci0gICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGNvbnRpbnVlQWZ0ZXJDb250
ZW50UG9saWN5IGFuZCBkaWRDYW5jZWwKKyAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYg
aW4gY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kgYW5kIGNhbmNlbAogCiAgICAgLy8gQWx3YXlz
IHNob3cgY29udGVudCB3aXRoIHZhbGlkIHN1YnN0aXR1dGUgZGF0YS4KICAgICBpZiAobV9kb2N1
bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5pc1ZhbGlkKCkpIHsKQEAgLTQyMywxMSArNDM5
LDExIEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG8KICAgICBmcmFt
ZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNl
LCBjYWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3ksIHRoaXMpOwogfQogCi12b2lkIE1haW5S
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3ZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBj
b25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChkYXRhKTsKICAgICBB
U1NFUlQobGVuZ3RoICE9IDApOwotCisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3Vy
Y2UgPT0gbV9yZXNvdXJjZSk7CiAgICAgQVNTRVJUKCFtX3Jlc3BvbnNlLmlzTnVsbCgpKTsKIAog
I2lmIFVTRShDRk5FVFdPUkspIHx8IFBMQVRGT1JNKE1BQykKQEAgLTQ1MiwxNiArNDY4LDE1IEBA
IHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSgKICAgICAgICAgLy8gSWYg
d2UgZG9uJ3QgaGF2ZSBibG9ja2VkRGF0YSwgdGhhdCBtZWFucyB3ZSdyZSBzdGlsbCBhY2N1bXVs
YXRpbmcgZGF0YQogICAgICAgICBpZiAoIWJsb2NrZWREYXRhKSB7CiAgICAgICAgICAgICAvLyBU
cmFuc2l0aW9uIHRvIGNvbW1pdHRlZCBzdGF0ZS4KLSAgICAgICAgICAgIFJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YSgiIiwgMCwgMCwgZmFsc2UpOworICAgICAgICAgICAgZG9jdW1lbnRM
b2FkZXIoKS0+cmVjZWl2ZWREYXRhKDAsIDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKICAgICAgICAgZGF0YSA9IGJsb2NrZWREYXRhOwotICAgICAgICBlbmNvZGVkRGF0YUxl
bmd0aCA9IC0xOwogICAgIH0KICNlbmRpZgogCi0gICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGlj
YXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0aCwg
ZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7CisgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBw
bGljYXRpb25DYWNoZUhvc3QoKS0+bWFpblJlc291cmNlRGF0YVJlY2VpdmVkKGRhdGEsIGxlbmd0
aCwgLTEsIGZhbHNlKTsKIAogICAgIC8vIFRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRv
IGFueXRoaW5nIGluY2x1ZGluZyBwb3NzaWJseSByZW1vdmluZyB0aGUgbGFzdAogICAgIC8vIHJl
ZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25lIGV4YW1wbGUgb2YgdGhpcyBpcyAzMjY2MjE2LgpA
QCAtNDY5LDcgKzQ4NCw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0
YSgKIAogICAgIG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA9IG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpOwogCi0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGRhdGEsIGxl
bmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7CisgICAgZG9jdW1lbnRMb2FkZXIo
KS0+cmVjZWl2ZWREYXRhKGRhdGEsIGxlbmd0aCk7CiAKICNpZiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAog
ICAgIGlmIChXZWJGaWx0ZXJFdmFsdWF0b3IgKmZpbHRlciA9IG1fZmlsdGVyKSB7CkBAIC00OTAs
NyArNTA1LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbgogICAg
IC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRp
c3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBkZWZlcnJlZC4KICAgICAvLyBTZWUgPHJkYXI6
Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRldGFpbHMuCiAjaWYgIVVTRShDRikKLSAgICBB
U1NFUlQoIWRlZmVyc0xvYWRpbmcoKSB8fCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlzRGVi
dWdnZXJQYXVzZWQobV9mcmFtZS5nZXQoKSkpOworICAgIEFTU0VSVCghZGVmZXJzTG9hZGluZygp
IHx8IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNEZWJ1Z2dlclBhdXNlZChtX2RvY3VtZW50
TG9hZGVyLT5mcmFtZSgpKSk7CiAjZW5kaWYKIAogICAgIC8vIFRoZSBhZGRpdGlvbmFsIHByb2Nl
c3NpbmcgY2FuIGRvIGFueXRoaW5nIGluY2x1ZGluZyBwb3NzaWJseSByZW1vdmluZyB0aGUgbGFz
dApAQCAtNTA2LDcgKzUyMSw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW4KICAgICAgICAgLy8gUmVtb3ZlIHRoaXMtPm1fZmlsdGVyIGVhcmx5IHNvIGRpZFJlY2Vp
dmVEYXRhIGRvZXNuJ3Qgc2VlIGl0LgogICAgICAgICBtX2ZpbHRlciA9IDA7CiAgICAgICAgIGlm
IChkYXRhKQotICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCAtMSwgZmFs
c2UpOworICAgICAgICAgICAgZGF0YVJlY2VpdmVkKG1fcmVzb3VyY2UuZ2V0KCksIGRhdGEsIGxl
bmd0aCk7CiAgICAgICAgIHdrRmlsdGVyUmVsZWFzZShmaWx0ZXIpOwogICAgIH0KICNlbmRpZgpA
QCAtNTE2LDEzICs1MzEsMTggQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbgogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPnNldFJlc3BvbnNlRW5kKGZp
bmlzaFRpbWUgPyBmaW5pc2hUaW1lIDogKG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZCA/IG1fdGlt
ZU9mTGFzdERhdGFSZWNlaXZlZCA6IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKSk7CiAg
ICAgZG9jdW1lbnRMb2FkZXIoKS0+ZmluaXNoZWRMb2FkaW5nKCk7Ci0gICAgUmVzb3VyY2VMb2Fk
ZXI6OmRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7CiAKICAgICBkbC0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+ZmluaXNoZWRMb2FkaW5nTWFpblJlc291cmNlKCk7CiB9CiAKLXZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSkKIHsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCBtX3Jlc291cmNlID09IHJlc291
cmNlKTsKKyAgICBpZiAoIW1fcmVzb3VyY2UgfHwgKCFtX3Jlc291cmNlLT5lcnJvck9jY3VycmVk
KCkgJiYgIW1fcmVzb3VyY2UtPndhc0NhbmNlbGVkKCkpKSB7CisgICAgICAgIGRpZEZpbmlzaExv
YWRpbmcobV9yZXNvdXJjZS0+bG9hZEZpbmlzaFRpbWUoKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MAogICAgIGlmIChtX2ZpbHRlcikgewogICAgICAg
ICB3a0ZpbHRlclJlbGVhc2UobV9maWx0ZXIpOwpAQCAtNTMwLDYgKzU1MCw3IEBAIHZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFIKICAgICB9CiAjZW5kaWYKIAorICAgIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yID0gbV9yZXNvdXJjZS0+cmVzb3VyY2VFcnJvcigpOwog
ICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxv
YWRGYWxsYmFja0Zvck1haW5FcnJvcihyZXF1ZXN0KCksIGVycm9yKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC01NDUsNyArNTY2LDYgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwo
Y29uc3QgUgogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpMb2Fk
ZXIpOwotICAgIFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJ
bmZvKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2luaXRpYWxSZXF1ZXN0KTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX3N1YnN0aXR1dGVEYXRhKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2RhdGFMb2Fk
VGltZXIpOwpAQCAtNTY0LDcgKzU4NCw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpoYW5k
bGVTdWJzdGl0dXQKICAgICBtX2luaXRpYWxSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiAg
ICAgICAgIAogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UodXJsLCBtX3N1YnN0aXR1dGVE
YXRhLm1pbWVUeXBlKCksIG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCksIG1fc3Vi
c3RpdHV0ZURhdGEudGV4dEVuY29kaW5nKCksICIiKTsKLSAgICBkaWRSZWNlaXZlUmVzcG9uc2Uo
cmVzcG9uc2UpOworICAgIHJlc3BvbnNlUmVjZWl2ZWQoMCwgcmVzcG9uc2UpOwogfQogCiB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6c3RhcnREYXRhTG9hZFRpbWVyKCkKQEAgLTU4NywyOSArNjA3
LDggQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZVN1YnN0aXR1dAogICAgICAgICBo
YW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3coMCk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjpsb2FkTm93KFJlc291cmNlUmVxdWVzdCYgcikKLXsKLSAgICBBU1NFUlQoIW1faGFuZGxl
KTsKLSAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7Ci0KLSNpZiBVU0UoUExBVEZPUk1fU1RS
QVRFR0lFUykKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cmVz
b3VyY2VMb2FkU2NoZWR1bGVyKCktPmFkZE1haW5SZXNvdXJjZUxvYWQodGhpcyk7Ci0jZWxzZQot
ICAgIHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5hZGRNYWluUmVzb3VyY2VMb2FkKHRoaXMpOwot
I2VuZGlmCi0KLSAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpCi0gICAgICAgIGhh
bmRsZVN1YnN0aXR1dGVEYXRhTG9hZFNvb24ocik7Ci0gICAgZWxzZQotICAgICAgICBtX2hhbmRs
ZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdD
b250ZXh0KCksIHIsIHRoaXMsIGZhbHNlLCB0cnVlKTsKLQotICAgIHJldHVybjsKLX0KLQotdm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByLCBjb25z
dCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCit2b2lkIE1haW5SZXNvdXJjZUxvYWRl
cjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGluaXRpYWxSZXF1ZXN0LCBjb25zdCBTdWJz
dGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCiB7Ci0gICAgQVNTRVJUKCFtX2hhbmRsZSk7Ci0K
ICAgICAvLyBJdCBhcHBlYXJzIHRoYXQgaXQgaXMgcG9zc2libGUgZm9yIHRoaXMgbG9hZCB0byBi
ZSBjYW5jZWxsZWQgYW5kIGRlcmVmZW5jZWQgYnkgdGhlIERvY3VtZW50TG9hZGVyCiAgICAgLy8g
aW4gd2lsbFNlbmRSZXF1ZXN0KCkgaWYgbG9hZE5vdygpIGlzIGNhbGxlZC4KICAgICBSZWZQdHI8
TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwpAQCAtNjE5LDcgKzYxOCw3IEBAIHZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc28KICAgICBBU1NFUlQoZG9jdW1l
bnRMb2FkZXIoKS0+dGltaW5nKCktPm5hdmlnYXRpb25TdGFydCgpKTsKICAgICBBU1NFUlQoIWRv
Y3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5mZXRjaFN0YXJ0KCkpOwogICAgIGRvY3VtZW50TG9h
ZGVyKCktPnRpbWluZygpLT5tYXJrRmV0Y2hTdGFydCgpOwotICAgIFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KHIpOworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGluaXRpYWxSZXF1ZXN0KTsK
IAogICAgIC8vIFNlbmQgdGhpcyBzeW50aGV0aWMgZGVsZWdhdGUgY2FsbGJhY2sgc2luY2UgY2xp
ZW50cyBleHBlY3QgaXQsIGFuZAogICAgIC8vIHdlIG5vIGxvbmdlciBzZW5kIHRoZSBjYWxsYmFj
ayBmcm9tIHdpdGhpbiBOU1VSTENvbm5lY3Rpb24gZm9yCkBAIC02MjcsMzcgKzYyNiw2MiBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvCiAgICAgd2lsbFNlbmRSZXF1
ZXN0KHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7CiAgICAgQVNTRVJUKCFkZWxldGlvbkhh
c0JlZ3VuKCkpOwogCi0gICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzQ4MDEwNjY+Ci0gICAgLy8gd2ls
bFNlbmRSZXF1ZXN0KCkgaXMgbGlhYmxlIHRvIG1ha2UgdGhlIGNhbGwgdG8gZnJhbWVMb2FkZXIo
KSByZXR1cm4gbnVsbCwgc28gd2UgbmVlZCB0byBjaGVjayB0aGF0IGhlcmUKLSAgICBpZiAoIWZy
YW1lTG9hZGVyKCkgfHwgcmVxdWVzdC5pc051bGwoKSkgewotICAgICAgICBpZiAoIXJlYWNoZWRU
ZXJtaW5hbFN0YXRlKCkpCi0gICAgICAgICAgICByZWxlYXNlUmVzb3VyY2VzKCk7CisgICAgLy8g
d2lsbFNlbmRSZXF1ZXN0KCkgbWF5IGxlYWQgdG8gb3VyIERvY3VtZW50TG9hZGVyIGJlaW5nIGRl
dGFjaGVkIG9yIGNhbmNlbGxpbmcgdGhlIGxvYWQgdmlhIG51bGxpbmcgdGhlIFJlc291cmNlUmVx
dWVzdC4KKyAgICBpZiAoIWRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkgfHwgcmVxdWVzdC5pc051
bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIGRvY3VtZW50TG9hZGVyKCktPmFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZE1haW5SZXNvdXJjZShyZXF1ZXN0LCBtX3N1
YnN0aXR1dGVEYXRhKTsKIAotICAgIGlmIChkZWZlcnNMb2FkaW5nKCkpCi0gICAgICAgIG1faW5p
dGlhbFJlcXVlc3QgPSByZXF1ZXN0OwotICAgIGVsc2UKLSAgICAgICAgbG9hZE5vdyhyZXF1ZXN0
KTsKKyAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaGFuZGxl
U3Vic3RpdHV0ZURhdGFMb2FkU29vbihyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVzb3VyY2VMb2FkZXJPcHRpb25zLCBtYWluUmVz
b3VyY2VMb2FkT3B0aW9ucywKKyAgICAgICAgKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwg
QnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NPcmln
aW5DcmVkZW50aWFscywgU2tpcFNlY3VyaXR5Q2hlY2spKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QsIG1haW5SZXNvdXJjZUxvYWRPcHRp
b25zKTsKKyAgICBtX3Jlc291cmNlID0gZG9jdW1lbnRMb2FkZXIoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+cmVxdWVzdE1haW5SZXNvdXJjZShjYWNoZWRSZXNvdXJjZVJlcXVlc3QpOworICAg
IGlmICghbV9yZXNvdXJjZSkgeworICAgICAgICBkb2N1bWVudExvYWRlcigpLT5zZXRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3Jlc291
cmNlLT5hZGRDbGllbnQodGhpcyk7CisKKyAgICAvLyBXZSBuZWVkIHRvIHdhaXQgdW50aWwgYWZ0
ZXIgcmVxdWVzdE1haW5SZXNvdXJjZSgpIGlzIGNhbGxlZCB0byBzZXRSZXF1ZXN0KCksIGJlY2F1
c2UgdGhlcmUgYXJlIGEgYnVuY2ggb2YgaGVhZGVycyBzZXQgd2hlbgorICAgIC8vIHRoZSB1bmRl
cmx5aW5nIFJlc291cmNlTG9hZGVyIGlzIGNyZWF0ZWQsIGFuZCBEb2N1bWVudExvYWRlcjo6bV9y
ZXF1ZXN0IG5lZWRzIHRvIGluY2x1ZGUgdGhvc2UuIEhvd2V2ZXIsIHRoZSBjYWNoZSB3aWxsCisg
ICAgLy8gc3RyaXAgdGhlIGZyYWdtZW50IGlkZW50aWZpZXIgKHdoaWNoIERvY3VtZW50TG9hZGVy
OjptX3JlcXVlc3Qgc2hvdWxkIGFsc28gaW5jbHVkZSksIHNvIGFkZCB0aGF0IGJhY2sgaW4uCisg
ICAgaWYgKGxvYWRlcigpKQorICAgICAgICByZXF1ZXN0ID0gbG9hZGVyKCktPm9yaWdpbmFsUmVx
dWVzdCgpOworICAgIGRvY3VtZW50TG9hZGVyKCktPnNldFJlcXVlc3QocmVxdWVzdCk7CiB9CiAK
IHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQog
ewotICAgIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CisgICAgaWYg
KGxvYWRlcigpKQorICAgICAgICBsb2FkZXIoKS0+c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOwor
fQogCi0gICAgaWYgKGRlZmVycykgewotICAgICAgICBpZiAobV9kYXRhTG9hZFRpbWVyLmlzQWN0
aXZlKCkpCi0gICAgICAgICAgICBtX2RhdGFMb2FkVGltZXIuc3RvcCgpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmIChtX2luaXRpYWxSZXF1ZXN0LmlzTnVsbCgpKQotICAgICAgICAgICAgcmV0
dXJuOworYm9vbCBNYWluUmVzb3VyY2VMb2FkZXI6OmRlZmVyc0xvYWRpbmcoKSBjb25zdAorewor
ICAgIHJldHVybiBsb2FkZXIoKSA/IGxvYWRlcigpLT5kZWZlcnNMb2FkaW5nKCkgOiBmYWxzZTsK
K30KIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgaW5pdGlhbFJlcXVlc3QobV9pbml0aWFsUmVx
dWVzdCk7Ci0gICAgICAgIG1faW5pdGlhbFJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKLSAg
ICAgICAgbG9hZE5vdyhpbml0aWFsUmVxdWVzdCk7Ci0gICAgfQordm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OnNldFNob3VsZEJ1ZmZlckRhdGEoRGF0YUJ1ZmZlcmluZ1BvbGljeSBzaG91bGRCdWZm
ZXJEYXRhKQoreworICAgIEFTU0VSVChtX3Jlc291cmNlKTsKKyAgICBtX3Jlc291cmNlLT5zZXRT
aG91bGRCdWZmZXJEYXRhKHNob3VsZEJ1ZmZlckRhdGEpOworfQorCitSZXNvdXJjZUxvYWRlciog
TWFpblJlc291cmNlTG9hZGVyOjpsb2FkZXIoKSBjb25zdAoreyAKKyAgICByZXR1cm4gbV9yZXNv
dXJjZSA/IG1fcmVzb3VyY2UtPmxvYWRlcigpIDogMDsKK30KKwordW5zaWduZWQgbG9uZyBNYWlu
UmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIoKSBjb25zdAoreworICAgIGlmIChSZXNvdXJjZUxv
YWRlciogcmVzb3VyY2VMb2FkZXIgPSBsb2FkZXIoKSkKKyAgICAgICAgcmV0dXJuIHJlc291cmNl
TG9hZGVyLT5pZGVudGlmaWVyKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDEzNzYwNCkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBNYWluUmVzb3VyY2VMb2FkZXJfaAogI2Rl
ZmluZSBNYWluUmVzb3VyY2VMb2FkZXJfaAogCisjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2Uu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyVHlwZXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlN1YnN0
aXR1dGVEYXRhLmgiCkBAIC00OSwyMSArNTEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgRm9ybVN0YXRlOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCi1jbGFzcyBNYWluUmVzb3Vy
Y2VMb2FkZXIgOiBwdWJsaWMgUmVzb3VyY2VMb2FkZXIgeworY2xhc3MgTWFpblJlc291cmNlTG9h
ZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TWFpblJlc291cmNlTG9hZGVyPiwgcHVibGljIENhY2hl
ZFJhd1Jlc291cmNlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShEb2N1
bWVudExvYWRlciopOwogICAgIHZpcnR1YWwgfk1haW5SZXNvdXJjZUxvYWRlcigpOwogCiAgICAg
dm9pZCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJik7
Ci0gICAgdmlydHVhbCB2b2lkIGFkZERhdGEoY29uc3QgY2hhciosIGludCwgYm9vbCBhbGxBdE9u
Y2UpIE9WRVJSSURFOworICAgIHZvaWQgY2FuY2VsKCk7CisgICAgdm9pZCBjYW5jZWwoY29uc3Qg
UmVzb3VyY2VFcnJvciYpOworICAgIFJlc291cmNlTG9hZGVyKiBsb2FkZXIoKSBjb25zdDsKKyAg
ICBQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiByZXNvdXJjZURhdGEoKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2
b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9uZyBsb25nIGVuY29k
ZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKKyAgICB2b2lk
IHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CisgICAgdm9pZCBzZXRTaG91bGRCdWZmZXJEYXRhKERh
dGFCdWZmZXJpbmdQb2xpY3kpOwogCiAjaWYgSEFWRShSVU5MT09QX1RJTUVSKQogICAgIHR5cGVk
ZWYgUnVuTG9vcFRpbWVyPE1haW5SZXNvdXJjZUxvYWRlcj4gTWFpblJlc291cmNlTG9hZGVyVGlt
ZXI7CkBAIC03MSwxOCArNzIsMjEgQEAgcHVibGljOgogICAgIHR5cGVkZWYgVGltZXI8TWFpblJl
c291cmNlTG9hZGVyPiBNYWluUmVzb3VyY2VMb2FkZXJUaW1lcjsKICNlbmRpZgogCisgICAgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgYm9vbCBpc0xvYWRpbmdNdWx0aXBh
cnRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudDsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBj
b25zdCBPVkVSUklERTsKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNYWluUmVzb3VyY2VMb2FkZXIo
RG9jdW1lbnRMb2FkZXIqKTsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNvbnN0IFJl
c291cmNlRXJyb3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKGNvbnN0
IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKLQotICAgIHZvaWQgbG9hZE5vdyhSZXNvdXJjZVJl
cXVlc3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJj
ZSosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGF0YVJlY2Vp
dmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSop
IE9WRVJSSURFOwogCisgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGhhbmRsZVN1YnN0aXR1
dGVEYXRhTG9hZFNvb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdm9pZCBoYW5kbGVT
dWJzdGl0dXRlRGF0YUxvYWROb3coTWFpblJlc291cmNlTG9hZGVyVGltZXIqKTsKIApAQCAtMTA0
LDEwICsxMDgsMjIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN1YnN0aXR1dGVNSU1FVHlwZUZyb21Q
bHVnaW5EYXRhYmFzZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAjZW5kaWYKIAorICAgIEZy
YW1lTG9hZGVyKiBmcmFtZUxvYWRlcigpIGNvbnN0OworICAgIERvY3VtZW50TG9hZGVyKiBkb2N1
bWVudExvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCk7IH0KKwor
ICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIGNvbnN0OworICAgIHZvaWQgY2xl
YXJSZXNvdXJjZSgpOworCisgICAgYm9vbCBkZWZlcnNMb2FkaW5nKCkgY29uc3Q7CisKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNvdXJjZTsKKwogICAg
IFJlc291cmNlUmVxdWVzdCBtX2luaXRpYWxSZXF1ZXN0OwogICAgIFN1YnN0aXR1dGVEYXRhIG1f
c3Vic3RpdHV0ZURhdGE7CisgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogCiAgICAg
TWFpblJlc291cmNlTG9hZGVyVGltZXIgbV9kYXRhTG9hZFRpbWVyOworICAgIFJlZlB0cjxEb2N1
bWVudExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsKIAogICAgIGJvb2wgbV9sb2FkaW5nTXVsdGlw
YXJ0Q29udGVudDsKICAgICBib29sIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3k7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEzNzYwNCkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI1MSw2ICsyNTEsOSBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVl
c3QoUmVzCiAjZW5kaWYKICAgICB9CiAgICAgbV9yZXF1ZXN0ID0gcmVxdWVzdDsKKworICAgIGlm
ICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSAmJiAhbV9kb2N1bWVudExvYWRlci0+aXNDb21t
aXR0ZWQoKSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCk7CiB9CiAKIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBs
b25nKQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHJldmlzaW9u
IDEzNzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBSZXNvdXJjZUVycm9yIGNh
bm5vdFNob3dVUkxFcnJvcigpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnNMb2Fk
aW5nKGJvb2wpOworICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVm
ZXJzTG9hZGluZzsgfQogCiAgICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKQEAgLTE2Nyw3ICsxNjgsNiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nT25lUGFydChkb3VibGUgZmluaXNoVGltZSk7CiAKICAg
ICBib29sIGNhbmNlbGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuY2VsbGVkOyB9Ci0gICAgYm9v
bCBkZWZlcnNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcnNMb2FkaW5nOyB9CiAKICAg
ICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOwogICAgIFJlZlB0cjxGcmFtZT4gbV9m
cmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlSG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkocmV2aXNpb24gMTM3NjA0KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJl
TG9hZEZhbGwKICAgICAgICAgaWYgKGlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKSkgewogICAg
ICAgICAgICAgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlID0gQXBwbGljYXRpb25DYWNo
ZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9yTWFpblJlcXVlc3QocmVxdWVzdCwgZG9jdW1lbnRMb2Fk
ZXIoKSk7CiAKLSAgICAgICAgICAgIGlmIChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNlRnJv
bUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCks
IG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAo
c2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50
TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5sb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VB
cHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTExNyw3ICsxMTcsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVI
b3N0OjptYXliZUxvYWRGYWxsCiAgICAgICAgIGlmIChpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVk
KCkpIHsKICAgICAgICAgICAgIG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZSA9IEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZmFsbGJhY2tDYWNoZUZvck1haW5SZXF1ZXN0KHJlcXVlc3QsIG1f
ZG9jdW1lbnRMb2FkZXIpOwogCi0gICAgICAgICAgICBpZiAoc2NoZWR1bGVMb2FkRmFsbGJhY2tS
ZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJj
ZUxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUuZ2V0KCkpKQorICAgICAg
ICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNo
ZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKS0+bG9hZGVyKCksIG1fbWFp
blJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAJKHJldmlzaW9uIDEzNzYwNCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTk4LDYgKzk4LDcgQEAgdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6YWxsQ2xpZW50
c1JlbW92ZQogCiB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsK
KyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcHJvdGVjdCh0aGlz
KTsKICAgICBpZiAoIXJlc3BvbnNlLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNl
Q2xpZW50V2Fsa2VyPENhY2hlZFJhd1Jlc291cmNlQ2xpZW50PiB3KG1fY2xpZW50cyk7CiAgICAg
ICAgIHdoaWxlIChDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCogYyA9IHcubmV4dCgpKQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCShyZXZpc2lvbiAxMzc2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MDMsNyArNzAzLDgg
QEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZERvbmUoQ2FjaAogICAgIFJlZlB0cjxE
b2N1bWVudD4gcHJvdGVjdERvY3VtZW50KG1fZG9jdW1lbnQpOwogCiAjaWYgRU5BQkxFKFJFU09V
UkNFX1RJTUlORykKLSAgICBpZiAocmVzb3VyY2UgJiYgIXJlc291cmNlLT5lcnJvck9jY3VycmVk
KCkgJiYgIXJlc291cmNlLT53YXNDYW5jZWxlZCgpKSB7CisgICAgLy8gRklYTUU6IEFkZCByZXNv
dXJjZSB0aW1pbmcgc3VwcG9ydCBmb3IgbWFpbiByZXNvdXJjZXMuCisgICAgaWYgKHJlc291cmNl
ICYmIHJlc291cmNlLT50eXBlKCkgIT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSAmJiAh
cmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiAhcmVzb3VyY2UtPndhc0NhbmNlbGVkKCkpIHsK
ICAgICAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJjZSosIEluaXRpYXRvckluZm8+OjppdGVyYXRv
ciBpbml0aWF0b3JJdCA9IG1faW5pdGlhdG9yTWFwLmZpbmQocmVzb3VyY2UpOwogICAgICAgICBp
ZiAoaW5pdGlhdG9ySXQgIT0gbV9pbml0aWF0b3JNYXAuZW5kKCkpIHsKICAgICAgICAgICAgIEFT
U0VSVChkb2N1bWVudCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvRG9jdW1l
bnRMb2FkZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMv
RG9jdW1lbnRMb2FkZXJNYWMuY3BwCShyZXZpc2lvbiAxMzc2MDQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvbWFjL0RvY3VtZW50TG9hZGVyTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUs
OCArNTUsOCBAQCBzdGF0aWMgdm9pZCB1bnNjaGVkdWxlQWxsKGNvbnN0IFJlc291cmNlCiAKIHZv
aWQgRG9jdW1lbnRMb2FkZXI6OnNjaGVkdWxlKFNjaGVkdWxlUGFpciogcGFpcikKIHsKLSAgICBp
ZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmhhbmRsZSgp
KQotICAgICAgICBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCktPnNjaGVkdWxlKHBhaXIp
OworICAgIGlmIChtX21haW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+
bG9hZGVyKCkgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKSkKKyAg
ICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKS0+c2NoZWR1bGUo
cGFpcik7CiAgICAgc2NoZWR1bGVBbGwobV9zdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwogICAg
IHNjaGVkdWxlQWxsKG1fcGx1Z0luU3RyZWFtTG9hZGVycywgcGFpcik7CiAgICAgc2NoZWR1bGVB
bGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwpAQCAtNjQsOCArNjQsOCBA
QCB2b2lkIERvY3VtZW50TG9hZGVyOjpzY2hlZHVsZShTY2hlZHVsZVBhCiAKIHZvaWQgRG9jdW1l
bnRMb2FkZXI6OnVuc2NoZWR1bGUoU2NoZWR1bGVQYWlyKiBwYWlyKQogewotICAgIGlmIChtX21h
aW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkpCi0gICAg
ICAgIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+dW5zY2hlZHVsZShwYWlyKTsKKyAg
ICBpZiAobV9tYWluUmVzb3VyY2VMb2FkZXIgJiYgbV9tYWluUmVzb3VyY2VMb2FkZXItPmxvYWRl
cigpICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+aGFuZGxlKCkpCisgICAgICAg
IG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKS0+aGFuZGxlKCktPnVuc2NoZWR1bGUocGFp
cik7CiAgICAgdW5zY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAgICAg
dW5zY2hlZHVsZUFsbChtX3BsdWdJblN0cmVhbUxvYWRlcnMsIHBhaXIpOwogICAgIHVuc2NoZWR1
bGVBbGwobV9tdWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMsIHBhaXIpOwpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTM3NjA0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTItMTItMTIgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSb3V0ZSBtYWluIHJlc291cmNlIGxvYWRzIHRocm91Z2ggdGhlIG1l
bW9yeSBjYWNoZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ5MjQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwt
b24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBUaGUgZXJyb3IgY29kZSBmb3IgbG9hZHMgY2FuY2Vs
bGVkCisgICAgICAgICAgICBieSBhbiBlbWJlZGRlcidzIHdpbGxTZW5kUmVxdWVzdCgpIHdpbGwg
c2hvdyBhcyBzdGFuZGFyZCBsb2FkIGNhbmNlbGxhdGlvbnMgcmF0aGVyIHRoYW4gYXMgYSBjb250
ZW50IHBvbGljeQorICAgICAgICAgICAgZmFpbHVyZS4gVGhpcyB3YXMgYW4gb2RkIHF1aXJrIG9m
IGhvdyBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCgpIHdhcyBpbXBsZW1lbnRl
ZCAobmFtZWx5LCBkb2luZyBhCisgICAgICAgICAgICBjb250ZW50IHBvbGljeSBjaGVjayBvbiBS
ZXNvdXJjZVJlcXVlc3RzIHdpdGggZW1wdHkgdXJscykuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAtY29udGVudC1lZGdl
LWV4cGVjdGVkLnBuZzoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL21p
c2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4
dDogVGhlIGVycm9yIGNvZGUgZm9yIGxvYWRzIGNhbmNlbGxlZAorICAgICAgICAgICAgYnkgYW4g
ZW1iZWRkZXIncyB3aWxsU2VuZFJlcXVlc3QoKSB3aWxsIHNob3cgYXMgc3RhbmRhcmQgbG9hZCBj
YW5jZWxsYXRpb25zIHJhdGhlciB0aGFuIGFzIGEgY29udGVudCBwb2xpY3kKKyAgICAgICAgICAg
IGZhaWx1cmUuIFRoaXMgd2FzIGFuIG9kZCBxdWlyayBvZiBob3cgTWFpblJlc291cmNlTG9hZGVy
Ojp3aWxsU2VuZFJlcXVlc3QoKSB3YXMgaW1wbGVtZW50ZWQgKG5hbWVseSwgZG9pbmcgYQorICAg
ICAgICAgICAgY29udGVudCBwb2xpY3kgY2hlY2sgb24gUmVzb3VyY2VSZXF1ZXN0cyB3aXRoIGVt
cHR5IHVybHMpLgorCiAyMDEyLTEyLTEzICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBFeHBvc2UgQVJJQSByb2xlcyBmb3IgdGFiLCB0YWJwYW5l
bCBhbmQgdGFibGlzdApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dpbGwtc2Vu
ZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVy
bnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNzYwNCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwt
b24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQCBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkCiA8dW5rbm93bj4gLSBkaWRG
aW5pc2hMb2FkaW5nCiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJl
Y3QtdG8taHR0cC11cmwucGhwIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0
dHA6Ly93d3cuZXhhbXBsZS5jb20vLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRt
bCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAs
IGh0dHAgc3RhdHVzIGNvZGUgMzAyPgogUmV0dXJuaW5nIG51bGwgZm9yIHRoaXMgcmVkaXJlY3QK
LWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVy
bC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIFdlYktpdEVy
cm9yRG9tYWluLCBjb2RlIDEwMj4KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNl
cy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5T
RXJyb3IgZG9tYWluIE5TVVJMRXJyb3JEb21haW4sIGNvZGUgLTk5OT4KIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU5NQogVGhpcyB0ZXN0IGNoZWNrcyB0byBtYWtl
IHN1cmUgdGhhdCB0aGluZ3MgYmVoYXZlIGFzIGV4cGVjdGVkIHdoZW4gdGhlIHJlc291cmNlIGxv
YWQgZGVsZWdhdGUgcmV0dXJucyBudWxsIGluIHJlc3BvbnNlIHRvIHdpbGxTZW5kUmVxdWVzdC4K
IApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNjL3dp
bGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNj
L3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDEzNzYwNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAv
dGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQCBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkCiA8dW5rbm93bj4gLSBkaWRGaW5pc2hMb2FkaW5nCiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8taHR0cC11cmwu
cGhwIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy93aWxs
LXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbCwgaHR0cCBtZXRob2Qg
R0VUPiByZWRpcmVjdFJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAsIGh0dHAgc3RhdHVzIGNv
ZGUgMzAyPgogUmV0dXJuaW5nIG51bGwgZm9yIHRoaXMgcmVkaXJlY3QKLWh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSBkaWRGYWls
TG9hZGluZ1dpdGhFcnJvcjogPE5TRXJyb3IgZG9tYWluIFdlYktpdCwgY29kZSAtMTAwMDAsIGZh
aWxpbmcgVVJMICIobnVsbCkiPgoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2Vz
L3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNF
cnJvciBkb21haW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5LCBmYWlsaW5nIFVSTCAiKG51
bGwpIj4KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU5NQogVGhp
cyB0ZXN0IGNoZWNrcyB0byBtYWtlIHN1cmUgdGhhdCB0aGluZ3MgYmVoYXZlIGFzIGV4cGVjdGVk
IHdoZW4gdGhlIHJlc291cmNlIGxvYWQgZGVsZWdhdGUgcmV0dXJucyBudWxsIGluIHJlc3BvbnNl
IHRvIHdpbGxTZW5kUmVxdWVzdC4KIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAtY29udGVudC1lZGdlLWV4
cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJp
bmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFCa01EazVNMlUz
Ck5ESXpNekUwTW1RNE1XTTFNMlEzTVdVd1l6azFaakZpWlVIaUl5WUFBQ0FBU1VSQlZIaWM3ZDF4
YkJ2WGdlZnhSMGQvTURsdE9EYUUKV01nWkZ0Tk5halYyWXdudG5nUTBLT1VrQzEzL3VOaHlnMVgr
dUlVZHBFQzNhQkpMOWg2U2JvREc3aC9idExpRnhhTEZiZjRJMXVydApiUjFrYTBuWld5QUc0b3Aw
YkVCT2N4WFZkVGNVNEZTazQzVXBJemFIcUlyUUNLMjVQNlpWcVpFNDRsRHZjVGh2dnAvL1NJNmxs
K0NICnB4OW4zcHVKV0pZbEFBQUFJTThXdndjQUFBQ2dHd29XQUFDQVpCUXNBQUFBeVNoWUFBQUFr
bEd3QUFBQUpLTmdBUUFBU0ViQkFnQUEKa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFB
TWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWgpCUXNBQUVBeUNoWUFB
SUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFB
QkFNZ29XCkFBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JR
QUFJRm1iM3dNSW50dTNiMy82NmFjM2I5NFUKUW1Teldmdk5iRFpybXViYWczZnUzSG4vL2ZjTEll
Njc3NzV0MjdaMWRuYmVkZGRkYlczOGI5Y0JTWUNOSkFCWUsySlpsdDlqYUdtMwpiOTh1Rm91bFVp
bVh5OVdhTWIweURPUExYLzV5UEI2UHhXSmJ0bkFTTVJoSUFtd2tBVUE5S0ZqcldGcGF1bm56Wmph
Ym5abVpVZjI3Cjl1elo4NlV2ZmFtenMxUDFMMElEU0FKc0pBR0FWeFNzMzF0ZVhyNXg0OGFISDM3
NHpqdnYrREtBSjU1NDRndGYrRUkwR3ZYbHQyTUYKU1lDTkpBRFlqTEFYTEhzT3ZYang0dVhMbC8w
ZWl4QkM5UGYzSnhJSnB0VG1Jd213a1FRQVVvUzNZQldMeFovOTdHY3RNb2M2OVBmMwpQLzc0NDZ4
N2JRNlNBQnRKQUNCUjZBcFd1VnorNElNUHpwOC9MMlZwcWxKUFAvMzBybDI3L0I2RnRrZ0NiQ1FC
Z0FvaEtsakZZdkc5Cjk5NXJ3aHBWaVF6RGVQYlpaOXZiMi8wZWlGWklBbXdrQVlBNm9TaFl4V0p4
Y25MeTZ0V3JmZytrUVh4dGxZVWt3RVlTQUtpbWVjRUsKK2pTNllzK2VQVU5EUTl3Z3AyRWtBVGFT
QUtBNXRDMVlTMHRMYjc3NXBxSnBOQjZQUjZQUnpzN09XQ3htR01iSys0WmhWTDhVUXBpbQphWnBt
dVZ4ZVhGd3NGQXFGUXFIaGRSNkdZWHp6bTk5a2xhdFhKQUUya2dDZ21UUXNXSlZLNWR5NWN4TFhW
UmlHMGQzZEhZdkZPanM3CjEwNlhYcG1tbWN2bDV1Zm5WeDZwNFdra3pLZjFJd213a1FRQXphZGJ3
WnFmbno5OSt2VG1mNDVoR1BGNHZLdXJLeDZQYjNMMnJNVTAKeld3MmUrblNKYS9mWDU5Ly92bHQy
N2FwR0pKT1NBSnNKQUdBTC9RcFdFdExTNisvL3ZvbU4xckg0L0c5ZS9lcW0wRFhsY2xrMHVtMApw
NUcvL1BMTGZHZXRoU1RBUmhJQStFaVRnblh4NHNYTlBNN0NNSXkrdnI3dTd1NW16cUVPNlhSNlpt
YW1YQzdYY3pEWEJXb2hDYkNSCkJBRCtDbnpCMnN5WDFHZzAydFBUczNmdlhxL1BWVjE0OTZQOEwy
Nm1KazJ6Rk1rc3hGYmV6eTExNUNzN3FvL3NhcnNXYi84NDNySFUKOC9rN2liL1kzdnQwdDh1UE5V
M3o3Tm16ZGE3RE1BemorZWVmWncvUkNsK1NrTHR3TGYvL1BsNDNDYm5WU1loWEoyRzRzMmZZYlk4
OQpTZGdNZithRUJTdWZGNm1VTUUyUnlmengvVnhPNVBPUjZpTzd1cXg0WE1Uam9xZEhKQktpdHpm
aS9GbFZTQUlRWE1FdVdBMnZyakFNCkk1Rkk5UFQwMUhsOEtwbEpUWnFwakdIZXZudnVrOFp2UHhP
TGxBWTZzNGNQaXdOLzIxZnJtSm1abWJObno5YnowL2JzMmZQVnIzNjEKNGNIb3BHbEpTRmNsSWJP
SkpCaC9TTUora2lCVjgrYUVsSlZLL2I1UnpjMjVsU1Izc1pnMU1DQU9IeFlIRHRUOElTUUJDS0tn
RnF4SwpwVEkxTmRYQVU4UHFuMFpYU2xYYXJIZk9yVjhzVWhwSnpCNzVoNTZ0OFhVdVFCUUtoZkh4
OFhvdURRd1BEM2QzdTUwVjAxNFRrckJTCnFsSUtrbURZU1RqVmEzVEYxbjVLRXVyWGpEbmhENlVx
blc2OFVkVVNpMWtqSStMSUViRjE2em8vbkNRQWdSUElndFhZSllBNnA5SEoKdjdrMCtlYW5reDkr
dm1TdDh3ZFBMcGVhVlM2WHg4ZkhDNFhDaGovazJMRmpvWDF1aHRJa1RQMGhDYWI2SkxqVUxKSlFE
N1Z6d3FRMQpPU2ttSjBXcEpMOVhPYmpVTEpJQUJFdndDbFkrbno5MTZwU25mMklZeHVEZ29QdTN1
dG5UMmZIdkw1N0s5RFNoVnpsMHRWMDdlZXphCjBLdjlqdmZybkU4Tnd6aHk1SWl5MGJVdVJVbkl2
REUvL3IzQ3FVeFBFM3FWUTd6dDJzbS8vbzhEMzNWZU5DUUo3bFROQ2JQVytMZzQKZGFvWnZjcWhx
OHM2ZVZJTURUWFlzVUtiQktDbEJLeGd6YzdPdnZYV1c1NytTWDkvZnlLUmlFYWo2MzVhekpualIr
ZkcvdVZQSFl2VAptKzlJYjNyc0Z3bkhtM1hPcHlHOEtDQTlDV2ErTkQ2YUdmdVhQODM1bllTUjN2
UkprbEEzK1hOQzBSb2ZGMk5qenNYcHpYZmtpRFUyCjFtREhDbUVTZ0ZZVHBJTDEwNS8rMU5NQ2kz
ZzhQamc0V0dzM1VERm5KcC9KaktWN20zL0txcGE5ZDg5UC8vdDJ4K1hDY3JtY1RDWTMKWEhzUnFy
dmd5RTJDbVM4bEQ4K09wWHViZjhxcWxwNjc1NmMvNkhSY0xpUUphMG1lRTRwV01pbkd4bnc0WlZY
TDNyM1c5TFR6Y2lGSgpBQUloR0FYTDYvTFZhRFE2T0RoWWEybkZ3cnNmSlkvODJwZXJnUnZxYXJz
MjhiK1hISGR6S0JRS3I3MzJtdnMvN08vdkh4d2NWRG0wCmxpQTNDYmtMMTVJdmZPakwxY0FOeGR1
dVRmemo3eHgzY3lBSkt5VFBDUXRXTXVuUDFjQU5kWFZaRXhQT3V6bVFCS0QxQmFCZ1ZTcVYKSC8z
b1IvVXZYNDNINDhQRHcrdWUveS9tek5FL3Z6eCs1VkdwQTVRc0ZpbE4vOU52SEIycm5uM2FMNzc0
WXEyckhucVFtQVF6WHhwOQo0dDlPdFhZU2pFaHAraWNGUjhjaUNVTHVuRkMwUmtmRitIakw5YXBx
c1pnMVBlM3NXQ1FCYUhHdGZrczZyelBwd01EQW9VT0gxcDFUCnhnNm1IL2hNcE1YYmxSQ2laTVdH
L3JLOW1GdjFuOXpmMzcvaGlvcDBPcTF5WEQ2VG1JVGt3ZlFERDRnV2IxZENDTk9LRGYzMy8yVG0K
UzlWdmtnU1pjOEtZOWNBRHJkNnVoQkNsVW1Sb1NCU0xxNzRNa3dTZ3hiVjB3ZkkwazBhajBVT0hE
aVVTenRYQlFvanBrN005OTh5UApUaVJhOEpyZ3V2S1ZIZnNlWG5TOE9UZzQ2UDVsdFA2bmFnU09y
Q1NreGpLOTk4eVBUQ1JhOEpyZ3VuS1ZIZnMrNTF6T1RCSWt6QW5UClZrK1BOVG9hYWNGcmd1dks1
eVA3OWpuZkRITVNnTlozMS9IangvMGV3L284emFUeGVQelpaNS90Nk9od3ZGL01tZC80cy9lUC9x
UnYKc2VMOHFNVXRWanFLVSttdi9GVjg1WjFvTkhybnpwMWNMdWZ5cjZMUjZNNmRPMVdQcmNta0pN
SE1sNzd4WisrUC91Uy9GSUtXaEVLbAp3NXhLLzFlU0lHdE9LRnJmK0lZNGVqU3l1QmlNYXJWaWNU
RlNMRnBmK2NvZmh4M2FKQUNCMEtKbnNKYVhsK3VmU1d0ZEFwZytPUnVJCmE0SzEvQ0NUbUhocHB2
cWRSQ0xoL3VqWmMrZk9LUjVVczBsSlFtb3NFNGhyZ3JVa000bkpiMTJxZm9ja3VLczVKMHdINDVw
Z0xULzQKUVdSaVl0V0Z3aEFtQVFpS0ZpMVlFeE1UZGM2aysvZnZYL2NTd1BGOXFjZU90dEF0R0Jv
eituYzdISXV4MXYyUHJWYlBqWjREWlBOSgpPTEV2dFcrMEZmY0plakw2UC8rell6RVdTYWlsNXB4
dzNIcnNzY0JjRTZ4bGROUzVHQ3RzU1FDQ29oVUxWdjMzdHRtL2YvL2FmZGNMCjczN1VjOC84aWRT
QS9KRTFYYjZ5WSt4d3B2cWRucDRlOXkrc0Z5OWVWRHlvNXRsa0VuSVhydlhlTTM5Y2l5VGtLanZH
RHMxV3YwTVMKMXJYK25MQmc5ZlJZSjA0RXUxclo4dm5JMk5pcWQwS1ZCQ0JBV3E1Z3pjN08xak9U
UnFQUnIzLzk2MnRuMG9tWFpub1Q5ODU5c212ZApmeFZFeWZPOWpwTllmWDNPUjZsVXUzejU4dkx5
c3VKQk5jTW1rekQ1clV1OVgvNlRqRjVKY0p6RUlnblZhczRKRTFadnI1aWIwNkZkCjJaSko1MG1z
a0NRQkNKYldLbGo1Zkw2ZXAxN1ltNFBXM281NTdHRDY0UGY2ZzM1WjBLRmt4Unduc1RiY20rMzFr
YmN0YUpOSlNCNU0KRDczYUYvVExnZzZtRlhPY3hDSUpLMnJPQ1dQV3dZT0J2eXpvVUNvNVQyS0ZJ
UWxBNExSUXdWcGFXcXJuaWEyMVp0TEREMTBZbmRoZwpMVUpBSmMvM1ZyODBEQ01lajdzY244L24x
UTVJc1UwbTRabUhMb3lRQkNGRTZKTncrTEExT3FwVnRWcVJUSzU2cVgwU2dDQnFsWUpWCnFWUmVm
LzMxRFE5emFWZkIzUzI0b1pJVmMyd24zTHQzcjh2eDU4K2ZWendpaFRhWmhHY2V1aERjM1lJYk1x
MllZenNoU1hCcFY4SGQKTGJpaFVzbTVuVkRqSkFBQjFTb0ZhMnBxcXA2VDJHdG4wbUxPSE5pYTBi
aGQyVTZ0L2xQaC9tM1ZOTTFLcGFKMlFNbzBuQVF6WDlxMwpOYU54dTdJNVR1aVFoSFhtaEtJMU1L
Qnp1N0tGSndsQVFMVkV3Y3Btcy9Vc1l0Mi9mLy9hZHJYdjRjVzB1ZjREWEhXU1hseTF4c0l3CkRQ
ZDlRd0dkVEJ0T2dwa3Y3ZnRjSVVVUzFnaGJFb3BGYTk4K2tVNXIzcTZFRUk2bjRPaWFCQ0M0L0M5
WVMwdExiN3p4eG9hSHJkMTkKYmJjcm5UWU11aWhac2RuVDJlcDMxbDRUcWJhNDZIelNUdXRyT0Fs
MnU5SnB3NkFMMDRwbDNwaXZmb2NrckxEYmxVNGJCbDJVU3BIWgoyVlZYQ2ZWTEFoQm8vaGVzZXBa
WkRBd01yTjE5UGRTYkMwbTdzcVZPcjdwYm9QdGtldXZXTGNYRGthL3hKUFFzaEtSZDJVaUNxSldF
Cm9iQzBLMXNxdGVxbGZra0FBczNuZ25YeDRzVU5sMW5FNC9HMXR5bysvTkNGTUZ3WnJKYkxyL3JM
c1gzN2RwZURiOXk0b1hnNGtqV2MKaEdjZXVoQ0dLNFBWSEkrZUl3bTJ3NGV0TUZ3WnJLWjNFb0Nn
ODdOZ0xTMHR2ZlBPTys3SFJLUFI0ZUZoeDV0Njd4bXNKYk93NnE1TwphNSt6Rmx3TkowSHZQWU8x
a0lSMTVnU3Q5d3pXa2xsMWd6eXRrZ0Jvd00rQ1ZjK0ZnT0hoWWNlc2NmSkFLb1R0U2dpUi8xMUg5
VXYzCnlmVDY5ZXVLaHlOVFkwa1lHMHFIc0YwSmtyQjJUamdaeG5ZbGhIRGMzRXFuSkFBYThLMWda
YlBaRFM4RURBd01PUFllVDd3MGMzUnEKUU4yb1dsbStzcVA2cGZ0Nmk2dFhyeW9lampTTkpXSHlX
NWRHSi9XOG0raUdjaVNoeXNTRWRmUm9HTnVWRUNLL2V0bUFOa2tBOU9CUAp3YXBVS2h2dUVscTd6
R0xoM1krZStmN25WSTRMemRaWUVuSVhyajN6dlEyZURZSmdhWEJPV0xDZWVVYmxzQUNnVWY0VXJI
UG56cmtmCnNQNkNteWR2YXZhY1FUU1loUC8yc1diUEdVU0RTWGhHYVBhY1FRRGE4S0ZnTFMwdHpj
ek11Qjh6T0Rqb1dFL3d5a0FxYk5zR3RkZFkKRW80UHBNSzJiVkI3RGM0SnI0UnUyeUNBQVBHaFlM
MzU1cHZ1QjhUamNjY2RicVpQem40blBhQndUUEJEQTBsSWpXVk9rQVR0TkRJbgpURnZmK1E3dENr
RHJhbmJCdW5YcjFvWnJMUWNIQjZ0ZkZuUG0wTEhQcUJ3VWZOQkFFc3g4YWVqb0F5b0hCUjgwTWlj
VXJhRWhsV01DCmdFMXJkc0dhbXBweVA2Qy92OSt4RjJia2ljc3N2ZEpQSTBsNC9OOVllcVdmUnBJ
d3d0SXJBSzJ1cVFWcnc2K3FobUU0ZGdsTm41ejkKOFlkaHZOZVIzaHBJUW1vc00wNFN0TlBJbkRC
dC9makh0Q3NBcmE2cEJXdkRyNnByMTdHT3ZueVB5aEhCSDQwazRXL3VWamtpK0tPUgpKSXlxSEJB
QVNOSzhnbFhQVjlYdTdsVTNOenA1SUJXcXh6bUhSQU5KR0J0S2grcHh6aUhSeUp4dzBnclY0NXdC
QkZmekN0YlBmLzV6Cjl3TWNGd0tLT2ZQRVc3MHFSd1IvZUUyQ21TK2RtT0srREJyeVBDY1VyUk1u
VkE0SUFPUnBVc0VxbDh2dTk3a3hETU94RFp1MTdWcHEKSkFtc2JkZFJJMGxnYlR1QTRHaFN3ZnJn
Z3cvY0QxajdWQnpXdG12SmF4SnlGNjZ4dGwxTG51ZUVCZGEyQXdpU0poV3M4K2ZQdTN5Ngo5cXZx
MkF1L1Zqd2krTU56RXA3L1VQR0k0QS9QU1JoVFBDQUFrS29aQmV2V3JWdW1hYm9jc0hiMTFmZ2Nh
MjQwNURVSlpyNUVFclRrCmVVNG9XdVBqaXNjRUFGSTFvMkJOVDArN2ZCcU5ScDFmVlE5bldIMmxK
YzlKT0RUTDZpc3RlVTdDR0t1dkFBU004b0sxdkx4OCtmSmwKbHdNY00ya3haeWJQczNsUVExNlRZ
T1pMSkVGTG51ZUVvcFZNS2g0VEFNaW12R0RkdUhIRC9ZQzllL2RXdnp3MXd1a3JQVFdRQkU1Zgph
Y2x6RWs1eCtncEE4Q2d2V0JjdlhuVDUxREFNeDFQR2t2LzZvT0lSd1IrZWsvQi8vMVR4aU9BUHow
bmc5QldBQUZKYnNEYThGdERYCjExZjljdlowTmwvWm9YUkk4SVhYSkdUZW1NK1JCQjE1bmhObXJY
eWUwMWNBZ2tkdHdkcndXb0RqT1JpbnZyZW9jamp3amVja3ZGcFEKT1J6NHhuTVNUaWtjREFDb283
WmdYYmx5eGVYVGVEeHVHRWIxTyt6SjF4VkpnTTF6RXJnN0E0QmdVbHV3enAwNzUvS3BZeW5yeEVz
egpMRy9YbGFja1RIN3JFc3ZiZGVWdFRwaXdXTjRPSUtBVUZxeWxwU1gzQStMeGVQWEx5WCt1cUJz
TWZPUTVDVzkrcW5BMDhJL25KRXdxCkhBd0FLS1d3WU4yOGVkUGxVOE13SE5jQ3BuNzllWFdEZ1k5
SUFteWVrekNsZUVBQW9JekNncFhOWmwwK2RYeFZuVDJkNWZxZ3Jqd2wKSWZQR1BOY0hkZVZ0VHBq
bCtpQ0FBRk5Zc0dabVpsdys3ZXJxcW40NStmZnNHdE9XdHlUOHI5OG9IZzU4NHkwSlhCOEVFR1Nx
Q2xhNQpYSFkvd1BGdE5aVXhhaHlJWUNNSnNIbE9Ra3JkV0FCQU9WVUZ5elJObDAvWExyWTRYMkpi
dnA2OEppRk5FalRsZVU0NHovVkJBQUhtClQ4RnkzRXR3K3VTc29tSEFkNTZTa0JyTEtCNE9mT050
VHBpMkZBOEhBTlJTVmJEeStiekxwN0hZcWxYTXFhbVNvbUhBZDk2U01PbjIKTnhpQjVpMEpLYldE
QVFEVlZCVXM5KzFDam9lNVp1YnZWalFNK0k0a3dPWXRDWnpLQkJCd3ZxM0JxbjZaTDdHdVdWc2tB
VFp2U1hBNwoyd1VBQWFDa1lHMjRYY2d4bWM1OXNrdkZNT0E3cjBuSWtBUk5lWjRUNWxqaERpRFls
QlNzU3NYdG9UZU96ZGdMNzM2a1lneG9CWjZTCmtMdHdUZTFvNEI5dmM4SUNLOXdCQko2U2d1WCtR
SXhvTkZyOU12Zit4eXJHZ0ZaQUVtRHpsb1NjMnNFQVFCTW92Sk43TFk3VnJHd2gKREMxbkV0aENH
RmJPSktSOEdnY0F5S09rWUxsdkYzTHN4elo1M0ppK1NBSnMzcEpBMHdZUWZENmN3WEt1YTE3Z3li
NGhSUkpnY3lhQgplelFBQ0Q0ZkNoWUFBSURlbEJTczY5ZXZxL2l4Q0J5U0FCdEpBQkEyU2dyVzFh
dFhWZnhZQkE1SmdJMGtBQWdiLzlkZzVYL1gwZnd4Cm9CV1FCTmk0alRzQS9iUkF3YXJzYVA0WTBB
b2NTY2lSaExCYVU3RFlUd29nOEZqa0RnQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUEKQU1tVUZL
eWRPM2U2ZkdxdWZoREd6cnV1cVJnRFdvR25KSFNSQkgxNW14TjJXb3FIQXdES0tTbFk5OTkvdjh1
bmpzazAzdjZ4aWpHZwpGWkFFMkx3bElhNTJNQURRQkQ1Y0lpeVh5OVV2NHgxTHpSOERXZ0ZKZ00y
WmhMaFA0d0FBZVpRVXJQdnV1OC9sMDhYRnhlcVhQWHNxCktzYUFWdUF0Q1orL28zZzQ4STIzSlBR
b0hnMEFxS2VrWUczYnRzM2wwMEtoVVAxeTRPbE9GV05BS3lBSnNIbEx3b0Rhd1FCQUV5Z3AKV051
M2IzZjUxREdaOWo3ZGZhOG9xUmdHZk9jcENUM0R1MklrUVZQZTVvVGV5TDMzc3M0ZFFMQXBLVmh0
YlcwdW41cW02VmpUT3RDWgpWVEVNK0k0a3dPWTVDUU5xeHdNQXFxa3FXTEZZek9XQVhDNVgvZkx3
SWI2dDZzbHpFZzRySFE1OFF4SUFoSTJxWFlSZi9PSVhYVDZkCm41K3Zmam4wYWo5WENYWGxLUWtI
dnR2SFZVSmRlWnNUaHJoS0NDRFlWQldzaHg5KzJPWFRiRGJydUNJd2twaFZOQkw0aXlUQTVqa0oK
STRvSEJBQXFxU3BZaG1HNEg1RE5ybHB0TTNLcWg1TllXdktjaFBGZVRtSnB5WE1TUmdRbnNRQUVs
NnFDdFdYTGx0MjdkN3NjY09uUwpwZXFYVytNR3B5NjA1RFVKUmxlTUpHako4NXl3TmNKSkxBREJw
ZkJPN284KytxakxwNlpwWmpLWjZuZEdUdlh3WEVJdGVVN0NlQy9QCkpkU1M1eVNNOEZ4Q0FFR2xz
R0IxZG01dzM4aDBPbDM5Y212Y0dQdHIvcXhxeUdzU2pLN1kyUC80RDVVamdqODh6d2xiSTJOaktn
Y0UKQU1xb2ZSYmg0NDgvN3ZLcGFab3pNelBWN3d5OTJ2OUNUN3JXOFFndXIwazQ4TjIrSXlSQlI1
N25oS0hJQ3k5d0VndEE4S2d0V080YgpzNFVRNlhUYXNYVW9PWnQ0SkRwZjYzZ0VWQU5KR0p0TjdD
VUoybWxrVGtoR0hubUVqZ1VnWU5RV3JHZzAydC9mNzNKQXVWdytlL2FzCjQ4M1VCOXRaaktXWkJw
T1E3V1F4bG1ZYVRFS0t4VmdBQWtadHdSSkNKQklKOXdPeTJhempvc0RXdURINWowdmN0VUV6RFNU
QjZJcE4KL3AvZmNkY0d6VFF5SjJ5TlRFNXkxd1lBUWFLOFlHMzRoVlVJY2ZiczJiVlBnRTc5NURl
Y3g5SkpZMG5vR2Q2Vk9sM2dQSlpPR3B3VAplaU9jeHdJUUlNb0xscWpqQzZzUVlueDh2Rnd1Vjcv
VCszUjM1a283NjdGMDBsZ1Nlb1ozWlQ3OEU5Wmo2YVRCT2FFM2tza0kxbU1CCkNJUm1GS3hvTkRv
OFBPeCtUTGxjWGp1ZmJvMGJjNS9zWWwraE5ocE9ndEVWeTN5eWkzMkYybWg4VHRnYW1adGpYeUdB
QUdoR3dSSkMKZEhkM3gySXg5Mk1LaGNMYStWUUlrWnhObkhseGhzdUZldGhNRXNabUV4TXZYZUp5
b1I0Mk5TY2tJMmZPV0Z3dUJOREttbFN3aEJCZgorOXJYTmp5bTFudzY5R3AvNWtyN3R4TXBWcjVy
WUROSk9QRGR2c3lIZi9KS0lzWEtkdzFzYWs0WWltUXk0dHZmdGxqNURxQTFOYTlnCnRiZTNiM2hS
UUFoUktCU1N5YVJqZmFzUVltdmNPSkVheUMxWTFLeWcyMlFTaks3WThkUkFMaWVvV1VHMzJUbGhh
K1RFaVVndVI4MEMKMElxYVY3Q0VFTjNkM2U1UGU3V1Z5K1hYWG52TjhlUlhtMTJ6U2xic3pJc3pU
M1plb21rRjFPYVRZTmNzMDRwTnZIUnBmK2NsbWxaQQpTWmdUdGtaT25JaVVTcEV6WjZ3bm42UnBB
V2dWYlUzK2ZRY1BIcngyN1ZxcHRQR2Z3N2ZmZmp1WHl3ME9EaHFHc2ZiVG9WZjdoMTRWClFvalow
OW5VNlVJdUg4a3N4SEpMSFZmdjdKQStacWdnS3drSHZ0dDM0THRDQ0pGNVl6NTF1cERMQ1RzSmVa
SVFFTkxtaEtISTBKQVEKUXN6T1dxbVV5T1ZFSmlOeU9YSDFha1Q2bUFGZ1F4SExhdllYdmtxbDhz
TWYvckNlK1ZRSUVZMUdCd1lHK3ZyNlZJOHFpRTZjT09IeQo2U3V2dk5LMGtUU0dKTWhDRW1BTGVo
SUFuVFQxRXFHdHJhM3R1ZWVlcS9QZ2Nybjg5dHR2SjVQSnViazVwYU5DODVFRTJFZ0NBUDNjCmRm
ejQ4ZWIvMWkxYnRqenl5Q1B2dmZkZW5jZVh5K1ZzTmpzM054ZUpSTnJiMjZQUnFOTGhCVVU2N1ha
ZnFJR0JnV1lOcEhFa1FRcVMKUUJKc0dpUUIwSVkvQlVzSWNmZmRkei82NktPLy9PVXZiOSsrWGVj
L0taZkxWNjVjdVhUcDB1TGk0cDA3ZDZMUmFNaG5WVDBtVTVLdwplU1NCSk5qMFNBS2doMll2Y2wv
MXU5dmFubnZ1dWZyWFhxeklaclBaYkZZSVlSaEc1eDlFbzlGWUxMYnU2bGUwT0pJQUcwa0FvQTBm
CkZyazdMQzh2bnpsejVsZS8rcFcvdzlCUDRCYTBrZ1JGU0FKc2dVc0NFR2crTEhKM2ptRExscWVl
ZXFxZSt3MUNieVFCTnBJQVFBUCsKRnl4YmQzZjNzV1BITm53MkdiUkhFbUFqQ1FBQ3JWVUtsaENp
dmIxOVpHU0VyNjFTMUhOMzdKWkZFaVFpQ2JBRk9nbEFFUG0yaTdDVwpqbzZPL3Y3K08zZnVYTHQy
emUreEJOaGpqejNXMGRIaDl5ZzJoU1JJUVJKZzB5QUpRTEMwWE1FU1FyUzF0VDM0NElOTXFadHg4
T0RCClNDVHdUd2doQ1p0SEVtRFRJd2xBZ1BpL2k5QmR1VngrLy8zM3o1MDc1L2RBZ21SNGVMaTd1
OXZ2VVVoR0VocEFFbURUTWdsQWkydjEKZ3JXaVVDaGN1SENCbmRzYjJyMTc5MU5QUGVYM0tCUWlD
WFVpQ2JCcG53U2dOUVdtWU5tV2w1ZE4wOHpuOCtsMDJ1dXRDTU1nUE45VApTWUk3a2dCYmVKSUF0
SnFBRmF4cXQyN2QrdTF2ZjJ2ZnZ0bDIvZnIxcTFlditqZ2t2K3pldlh2UG5qMmYvZXhudDJ4cG9X
MmhUVU1TClZwQUVrbUFMZVJLQVZoRGdnZ1VBQU5DYStISURBQUFnR1FVTEFBQkFNZ29XQUFDQVpC
UXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmcKQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFE
SUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQQpBSkNNZ2dVQUFD
QVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFD
UWpJSUZBQUFnCkdRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFB
QVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUsKRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FB
QUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QQpBQURKS0Zn
QUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ1dadmZBd2llMjdkdmYvcnBwemR2
M2hSQ1pMTlorODFzCk5tdWE1dHFEZCs3Y2VmLzk5d3NoN3J2dnZtM2J0blYyZHQ1MTExMXRiZnh2
MXdGSmdJMGtBRmdyWWxtVzMyTm9hYmR2M3k0V2k2VlMKS1pmTDFab3h2VElNNDh0Zi9uSThIby9G
WWx1MmNCSXhHRWdDYkNRQlFEMG9XT3RZV2xxNmVmTm1OcHVkbVpsUi9idjI3Tm56cFM5OQpxYk96
VS9VdlFnTklBbXdrQVlCWEZLemZXMTVldm5IanhvY2ZmdmpPTysvNE1vQW5ubmppQzEvNFFqUWE5
ZVczWXdWSmdJMGtBTmlNCnNCY3NldzY5ZVBIaTVjdVgvUjZMRUVMMDkvY25FZ21tMU9ZakNiQ1JC
QUJTaExkZ0ZZdkZuLzNzWnkweWh6cjA5L2MvL3ZqanJIdHQKRHBJQUcwa0FJRkhvQ2xhNVhQN2dn
dy9Pbno4dlpXbXFVazgvL2ZTdVhidjhIb1cyU0FKc0pBR0FDaUVxV01WaThiMzMzbXZDR2xXSgpE
TU40OXRsbjI5dmIvUjZJVmtnQ2JDUUJnRHFoS0ZqRlluRnljdkxxMWF0K0Q2UkJmRzJWaFNUQVJo
SUFxS1o1d1FyNk5McGl6NTQ5ClEwTkQzQ0NuWVNRQk5wSUFvRG0wTFZoTFMwdHZ2dm1tb21rMEhv
OUhvOUhPenM1WUxHWVl4c3I3aG1GVXZ4UkNtS1pwbW1hNVhGNWMKWEN3VUNvVkNvZUYxSG9aaGZQ
T2IzMlNWcTFja0FUYVNBS0NaTkN4WWxVcmwzTGx6RXRkVkdJYlIzZDBkaThVNk96dlhUcGRlbWFh
Wgp5K1htNStkWEhxbmhhU1RNcC9VakNiQ1JCQUROcDF2Qm1wK2ZQMzM2OU9aL2ptRVk4WGk4cTZz
ckhvOXZjdmFzeFRUTmJEWjc2ZElsCnI5OWZuMy8rK1czYnRxa1lrazVJQW13a0FZQXY5Q2xZUzB0
THI3LysraVkzV3NmajhiMTc5NnFiUU5lVnlXVFM2YlNua2IvODhzdDgKWjYyRkpNQkdFZ0Q0U0pP
Q2RmSGl4YzA4enNJd2pMNit2dTd1N21iT29RN3BkSHBtWnFaY0x0ZHpNTmNGYWlFSnNKRUVBUDRL
Zk1IYQp6SmZVYURUYTA5T3pkKzllcjg5VlhWaXc4bm1SU2duVEZKbk1IOS9QNVVRK0g2aytzcXZM
aXNkRlBDNTZla1FpSVhwN0k4NmZWY1UwCnpiTm56OWE1RHNNd2pPZWZmNTQ5UkN2OFNjSzdIK1Yv
Y1RNMWFacWxTR1lodHZKK2Jxa2pYOWxSZldSWDI3VjQrOGZ4anFXZXo5OUoKL01YMjNxZTdYWDRz
U2RnTWt1QnA1QUFVQ1hiQmFuaDFoV0VZaVVTaXA2ZW56dU5US1N1VituMmptcHR6SzBudVlqRnJZ
RUFjUGl3TwpIS2o1UTJabVpzNmVQVnZQVDl1elo4OVh2L3JWaGdlamsrWWxJWmxKVFpxcGpHSGV2
bnZ1azhadlJCU0xsQVk2czRjUGl3Ti8yMWZyCkdKTFFBSkpBRW9BV0VkU0NWYWxVcHFhbUduaHFX
UDNUNkVxcFNxY2JiMVMxeEdMV3lJZzRja1JzM2JyT0R5OFVDdVBqNC9WY0doZ2UKSHU3dWR2c0dy
TDFtSk9FUGYwclRacjEvZmVzWGk1UkdFck5IL3FGbmEzeWRTMUVrb1g0a3dVWVNnQllSeUlMVjJD
V0FPcWZSeVVscgpjbEpNVG9wU1NYNnZjbkNwV2VWeWVYeDh2RkFvYlBoRGpoMDdGdHJuWnFoTnd0
OWNtbnp6MDhrUFAxK3lZdTVIYnA3TEgxZVNVQStTClVDM01TUUJhUi9BS1ZqNmZQM1hxbEtkL1lo
akd3cWNlOXdBQUdEaEpSRUZVNE9DZys3ZTYyVmxyZkZ5Y090V01YdVhRMVdXZFBDbUcKaGhyc1dJ
WmhIRGx5Uk5ub1dwZXFKSnpPam45LzhWU21wd2wvVFIyNjJxNmRQSFp0Nk5WK3gvc2t3UjFKY0Fo
dEVvQ1dFckNDTlRzNworOVpiYjNuNkovMzkvWWxFSWhxTnJ2dHBzV2lOajR1eE1lZmk5T1k3Y3NR
YUcydXdZNFh3b29EOEpPVE04YU56WS8veXA0NGx5YzEzCnBEYzk5b3VFNDAyU1VBdEpXRmNJa3dD
MG1pQVZySi8rOUtlZUZsakU0L0hCd2NGYXU0R0tSU3VaRkdOalBweXlxbVh2WG10NjJubTUKc0Z3
dUo1UEpEZGRlaE9vdU9KS1RrRE9UejJURzByM05QMUZSeTk2NzU2Zi9mYnZqSWhGSldJc2t1QWhW
RW9BV0ZJeUM1WFg1YWpRYQpIUndjckxXMFltSEJTaWI5dVJxNG9hNHVhMkxDZVRlSFFxSHcybXV2
dWYvRC92Nyt3Y0ZCbFVOckNaS1Q4TzVIeVNPLzl1VWEwSWE2CjJxNU4vTzhseHg1K2tyQ0NKSkFF
b01VRm9HQlZLcFVmL2VoSDlTOWZqY2ZqdzhQRDY1Ny9MeGF0MFZFeFB0NXl2YXBhTEdaTlR6czcK
VmozN3RGOTg4Y1ZhVnozMElETUpPWFAwenkrUFgzbFU2Z0FsaTBWSzAvLzBHOGRmVnBJZ1NJSVFn
aVFBTGEvVmIwbm5kU1lkR0JnNApkT2pRdW5QSzJKajF3QU90M3E2RUVLVlNaR2hJRkl1cmltOS9m
LytHS3lyUzZiVEtjZmxNWmhJT3BoLzRUS1RGLzZZS0lVcFdiT2d2CjI0dTVWZi9KSklFazJFZ0Mw
T0phdW1CNW1rbWowZWloUTRjU0NlZWFVQ0hFOUxUVjAyT05qa1phOEpyZ3V2TDV5TDU5empjSEJ3
ZmQKdjR6Vy8xU053SkdXaEpPelBmZk1qMDRrV3ZCSzBMcnlsUjM3SGw1MHZFa1NTSUl0ekVrQVd0
OWR4NDhmOTNzTTYvTTBrOGJqOFdlZgpmYmFqbzhQeGZyRm9mZU1iNHVqUnlPSmlNS3JWaXNYRlNM
Rm9mZVVyZnh4Mk5CcTljK2RPTHBkeitWZlJhSFRuenAzS0I5ZGNjcEtRCk03L3haKzhmL1VuZllz
WDVVWXRickhRVXA5SmYrYXY0eWpza29aNkRTY0xLTWZvbEFRaUVGajJEdGJ5OFhQOU1XdXNTd1BS
ME1LNEoKMXZLREgwUW1KbFpkS0V3a0V1NlBuajEzN3B6aVFUV2JuQ1NjbkEzRWxhQmFmcEJKVEx3
MFUvME9TWEJIRWxib2x3UWdLRnEwWUUxTQpUTlE1ays3ZnYzL2RTd0RIajF1UFBSYVlhNEsxakk0
NkYyT3QreDliclo0YlBRZUloQ1RzU3oxMnRJVTIzamRtOU85Mk9KYmdrSVJhClNJS0Raa2tBZ3FJ
VkMxYjk5N2JadjMvLzJuM1hDd3RXVDQ5MTRrU3dxNVV0bjQrTWphMTZwNmVueC8wTDY4V0xGOVdP
cVlrMm00UjMKUCtxNVovNUVha0QreUpvdVg5a3hkamhUL1E1SldCZEpXRXVuSkFBQjBuSUZhM1oy
dHA2Wk5CcU5mdjNyWDE4N2swNU1XTDI5WW01TwpoM1psU3lhZEo3SDYrdnBjanI5OCtmTHk4ckxp
UVRYRFpwUHcwa3h2NHQ2NVQzYXBHWjBQa3VkN0hhY3VTRUkxa2xDTE5ra0FncVcxCkNsWStuNi9u
cVJmMjVxQzF0Mk1lRzdNT0hnejhaVUdIVXNsNUVtdkR2ZGxlSDNuYmdqYWJoSVBwZzkvckQvckZJ
SWVTRlhPY3VpQUoKSzBpQyt6L1JJQWxBNExSUXdWcGFXcXJuaWEyMVp0TERoNjNSVWEycTFZcGtj
dFZMd3pEaThiakw4Zmw4WHVsNFZOdHNFaDY2TURxeAp3YXFVZ0VxZTc2MStTUkpzSkVIN0pBQkIx
Q29GcTFLcHZQNzY2eHNlNXRLdWdydGJjRU9sa25NNzRkNjllMTJPUDMvK3ZPSVJLYlRaCkpEeDBJ
Ymg3eERaVXNtS09UV1FrZ1NUWU5FNENFRkN0VXJDbXBxYnFPWW05ZGlZdEZxMkJBWjNibGMzeE5k
NzkyNnBwbXBWS1JlVncKRkdvOENUbHpZR3RHNDcrcHRsT3JvMDRTU0lKTjR5UUFBZFVTQlN1Ynpk
YXppSFgvL3YxcjI5VytmU0tkMXJ4ZENTRWNUN3d3RE1OOQozMUJBSjlQR2s1QXo5ejI4bURiWGY1
U3ZUdEtMcTFiYmtBU1NZTk0xQ1VCdytWK3dscGFXM25qampRMFBXN3Y3Mm01WE9tMFlkRkVxClJX
Wm5WMTBsWEh0TnBOcmlvdk9wR3EydjhTVGt6SDBQTCtxMFRjeEZ5WXJObnM1V3YwTVNWcEFFbCtP
RG1BUWcwUHd2V1BVc3N4Z1kKR0ZpNyszcG9LQ3p0eXBaS3JYcnBQcG5ldW5WTDZXQlVhRHdKdmJt
US9FMjFwVTZ2dW04a1NWaEJFbHdPRG1JU2dFRHp1V0JkdkhoeAp3MlVXOFhoODdhMktEeCsyd25C
bHNKcmpnV1BidDI5M09makdqUnRLQnlOZDQwbDQ2RUlZcmdkVnkrVlhKWjhrMkVpQ1pra0FnczdQ
CmdyVzB0UFRPTysrNEh4T05Sb2VIaHgxdjZyMW5zSmJNcWh2ZmlMWFBXUXV1eHBPZzlVNnhXaklM
cSs3cVJCSUVTUkJDNkpVRVFBTisKRnF4NkxnUU1Edzg3Wm8yVEo4UFlyb1FRamh2WnVFK20xNjlm
VnpzYXFScE13b0ZVQ1ArbUNpSHl2K3VvZmtrU1NJSk5weVFBR3ZDdApZR1d6MlEwdkJBd01ERGoy
SGs5TVdFZVBockZkQ1NIeXF5OEh1SyszdUhyMXF1TGhTTk5nRWw2YU9UbzFvRzVVclN4ZjJWSDlr
aVNRCkJKczJTUUQwNEUvQnFsUXFHKzRTV3J2TVltSEJldVlabGNOQzB6V1loSGMvZXViN24xTTVM
alFiU1FDZ0dYOEsxcmx6NTl3UFdIZVoKeFRQUENNMmVNNGdHay9Ea1RjMmVMZ2VTQUVBelBoU3Nw
YVdsbVprWjkyTUdCd2NkNndsZWVTVjAyd2ExMTJBU0JsSmgyeXltUFpJQQpRRDgrRkt3MzMzelQv
WUI0UE82NHc4MzB0UFdkNzlDdWROTklFazdPZmljOW9IQk04QU5KQUtDZlpoZXNXN2R1YmJqV2Nu
QndzUHBsCnNXZ05EYWtjRS96UVNCSnk1dEN4ejZnY0ZIeEFFZ0JvcWRrRmEycHF5djJBL3Y1K3gx
NllrUkdXWG1tb2tTUThjWmtGTi9vaENRQzAKMU5TQ3RlRlhWY013SEx1RXBxZXRILytZZHFXYlJw
SndjdmJISDRieFhrZDZJd2tBZE5YVWdyWGhWOVcxNjFoSFIxVU9DRDVwSkFrdgozNk55UlBBSFNR
Q2dxK1lWckhxK3FuWjNkMWUvYy9La0ZhckhPWWRFSTBrNGtBclZRM3hEZ2lRQTBGanpDdGJQZi81
ejl3TWNGd0tLClJldkVDWlVEZ2s4OEp5Rm5ubmlyVitXSTRBK1NBRUJqVFNwWTVYTFovVDQzaG1F
NHRtR3p0bDFMalNTQkZjMDZJZ2tBOU5ha2d2WEIKQngrNEg3RDJxVGlzYmRlUzV5UzgreEVybXJW
RUVnRG9yVWtGNi96NTh5NmZydjJxT2phbWVFRHdpZWNrdlBCcnhTT0NQMGdDQUwwMQpvMkRkdW5Y
TE5FMlhBOWF1dmhvZlZ6d20rTUZ6RW5MbStCelBRdEVRU1FDZ3ZXWVVyT25wYVpkUG85SG8ydE5Y
ckw3U2t1Y2tITTZ3CjVrWkxKQUdBOXBRWHJPWGw1Y3VYTDdzYzRKaEppMFVybVZROEp2akJjeEp5
WnZJOFc4WTBSQklBaElIeWduWGp4ZzMzQS9idTNWdjkKOHRRcFRsL3B5WE1TUmpocG9TZVNBQ0FN
bEJlc2l4Y3Z1bnhxR0liaktXT2N2dEtWNXlUODY0T0tSd1Iva0FRQVlhQzJZRzE0TGFDdgpyNi82
NWV5c2xjOXora3BEbnBOd09wdXY3RkE4S1BpQUpBQUlDYlVGYThOckFZN25ZSnc2cFhBdzhKSG5K
SHh2VWVWdzRCdVNBQ0FrCjFCYXNLMWV1dUh3YWo4Y053NmgraDdzejZNcHpFdGlUcnltU0FDQWsx
QmFzYytmT3VYenFXTW82TVdHeHZGMVgzcEx3MGd5TG1uVkYKRWdDRWhNS0N0YlMwNUg1QVBCNnZm
ams1cVc0czhKUG5KUHh6UmVGbzRCK1NBQ0E4RkJhc216ZHZ1bnhxR0lialdzRFVsTHF4d0UrZQpr
L0RyenlzZUVmeEJFZ0NFaDhLQ2xjMW1YVDUxZkZXZG5lWDZvTGE4SmVGMGxxdEN1aUlKQU1KRFlj
R2FtWmx4K2JTcnE2djZKZGNICk5lWXRDWDlmVUR3YytJWWtBQWdQVlFXclhDNjdIK0Q0dHBwS0tS
b0lmT1k1Q1JtanhvRUlOcElBSUZSVUZTelRORjArWGJ2WTR2eDUKcmcvcXlYTVNTbXpMMXhOSkFC
QXEvaFFzeDcwRXA2Y3RSY09BNzd3bDRlU3M0dUhBTnlRQlFLaW9LbGo1Zk43bDAxaHMxZHBWcmc5
cQp6RnNTcGtxS2h3UGZrQVFBb2FLcVlMbHZGM0k4ekRXVFVUUUsrTTliRXVidlZqd2MrSVlrQUFn
VjM5WmdWYjkwL1dhTFlQT1doQkxyCm1yVkZFZ0NFaXBLQ3RlRjJJY2RrT2pmSENuYzllVTdDSjd0
VURnZStJUWtBd2taSndhcFUzQjV3NGRpTXZiREFDbmR0ZVV2Q3V4K3AKSFEzOFF4SUFoSTJTZ3VY
K1FJeG9ORnI5TXBkVE1RUzBCRzlKZVA5anhjT0JiMGdDZ0xCUmVDZjNXaHlyV2RsQ0dGck9KTEJ4
TEt4SQpBZ0Q5S0NsWTd0dUZIUHV4WFZlK0l0aThKWUdIVWVxTEpBQUlHeC9PWURsV3MzS1BodEJ5
Sm1HQkovdUdGRWtBb0I4ZkNoWUFBSURlCmxCU3M2OWV2cS9peENCeVNBQnRKQUJBMlNnclcxYXRY
VmZ4WUJBNUpnSTBrQUFnYi85ZGdjUnYzMEhJbTRYY2RmbzBFL2lJSkFQVFQKQ2dXTEhVTWg1VXhD
WllkZkk0Ry9TQUlBL2JESUhRQUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSklwS1ZnN2QrNTAr
ZFJjL1hDYwpuVHN0RldOQUsvQ1doTHV1S1I0T2ZFTVNBSVNOa29KMS8vMzN1M3pxbUV6amNSVkRR
RXZ3bG9UMmp4VVBCNzRoQ1FEQ3hvZExoT1Z5CnVmb2xCU3UwbkVub1dQSnJKUEFYU1FDZ0h5VUY2
Nzc3N25QNWRIRnhzZnBsVDQrS0lhQWxlRXZDbm9yaTRjQTNKQUZBMkNncFdOdTIKYlhQNXRGQW9W
TDhjR0ZBeEJMUUViMGw0dWxQeGNPQWJrZ0FnYkpRVXJPM2J0N3Q4NnBoTWUzc2o5OTdMT25jOWVV
dkMwOTMzaXBMaQpFY0VmSkFGQTJDZ3BXRzF0YlM2Zm1xYnBXTlBLU1N4ZGVVNUNaMWJ4aU9BUGtn
QWdiRlFWckZnczVuSkFMcGVyZm5uNHNJcFJ3SCtlCmszQ0ljNWw2SWdrQXdrYlZMc0l2ZnZHTExw
L096ODlYdnh3YTRpcWh0cndsNGRWK3JnM3BpaVFBQ0JWVkJldmhoeDkyK1RTYnpUcXUKQ0l5TUtC
b0lmT1k1Q1lsWnhTT0NQMGdDZ0ZCUlZiQU13M0EvSUp0ZHRjWmlaRVJ3RWt0TG5wTndxb2RURjFv
aUNRQkNSVlhCMnJKbAp5KzdkdTEwT3VIVHBVdlhMclZzam5NVFNrdWNreEExT1hXaUpKQUFJRllW
M2NuLzAwVWRkUGpWTk01UEpWTDh6TXNKekNmWGtPUW1uCmVuZ2FuWlpJQW9Ed1VGaXdPanMzdUZ0
Z09wMnVmcmwxYTJSc1ROMXc0QnZQU1lnYlkzL05uMVVOa1FRQTRhSDJXWVNQUC82NHk2ZW0KYWM3
TXpGUy9NelFVZWVFRlRtSnB5SE1TWHUxL29TZGQ2M2dFRjBrQUVCSnFDNWI3eG13aFJEcWRkbXdk
U2lZamp6eEN4OUpOSTBtWQpUVHdTbmE5MVBBS0tKQUFJQ2JVRkt4cU45dmYzdXh4UUxwZlBuajNy
ZURPVllqR1diaHBNd2dmYldZS2pHWklBSUNUVUZpd2hSQ0tSCmNEOGdtODA2TGdwczNScVpuT1N1
RGJwcEpBbHhZL0lmbDlpcnJ4bVNBQ0FNbEJlc0RiK3dDaUhPbmoyNzlnblFuTWZTVElOSmVMbzcK
OVpQZmNQWkNKeVFCUUJnb0wxaWlqaStzUW9qeDhmRnl1Vno5VG05dkpKTVJyTWZTU1lOSmVMbzdj
NldkVlRnNklRa0F0TmVNZ2hXTgpSb2VIaDkyUEtaZkxhK2ZUclZzamMzUHNLOVJINDBtSUczT2Y3
R0kzbVRaSUFnRHROYU5nQ1NHNnU3dGpzWmo3TVlWQ1llMThLb1JJCkppTm56bGhjTHRURHBwSXdt
emp6NGd3WGlmUkFFZ0RvclVrRlN3anh0YTk5YmNOamFzMm5RME9SVEVaOCs5c1dLOTgxc0tra3ZO
cWYKdWRMKzdVU0s5YzRhSUFrQU5OYThndFhlM3I3aFJRRWhSS0ZRU0NhVGp2V3RRb2l0V3lNblRr
UnlPV3BXNEcwMkNYSGpSR29ndDJEeAp4elhvU0FJQWpUV3ZZQWtodXJ1NzNaLzJhaXVYeTYrOTlw
cmp5YTgydTJhVlNwRXpaNndubjZScEJaV0VKTVNORTZtQmtoVTc4K0xNCms1MlgrUHNhVUNRQmdL
N2Ftdno3RGg0OGVPM2F0VkpwNDBudzdiZmZ6dVZ5ZzRPRGhtR3MvWFJvS0RJMEpJUVFzN05XS2lW
eU9aSEoKaUZ4T1hMMGFrVDVtcUNBdENhLzJENzBxaEJDenA3T3AwNFZjUHBKWmlPV1dPcTdlMlNG
OXpGQ0JKQURRVXNTeW1uMFNxRktwL1BDSApQNnhuUGhWQ1JLUFJnWUdCdnI0KzFhTUtvaE1uVHJo
OCtzb3JyelJ0SkkwaENiS1FCTmlDbmdSQUowMjlSR2hyYTJ0Nzdybm42ank0ClhDNi8vZmJieVdS
eWJtNU82YWpRZkNRQk5wSUFRRDkzSFQ5K3ZQbS9kY3VXTFk4ODhzaDc3NzFYNS9IbGNqbWJ6YzdO
elVVaWtmYjIKOW1nMHFuUjRRWkZPdTkwTmFHQmdvRmtEYVJ4SmtJSWtrQVNiQmtrQXRPRlB3UkpD
M0gzMzNZOCsrdWd2Zi9uTDI3ZHYxL2xQeXVYeQpsU3RYTGwyNnRMaTRlT2ZPbldnMEd2SlpWWS9K
bENSc0hra2dDVFk5a2dEb29kbUwzRmY5N3JhMjU1NTdydjYxRnl1eTJXdzJteFZDCkdJYlIrUWZS
YURRV2k2MjcraFV0amlUQVJoSUFhTU9IUmU0T3k4dkxaODZjK2RXdmZ1WHZNUFFUdUFXdEpFRVJr
Z0JiNEpJQUJKb1AKaTl5ZEk5aXk1YW1ubnFybmZvUFFHMG1BalNRQTBJRC9CY3ZXM2QxOTdOaXhE
WjlOQnUyUkJOaElBb0JBYTVXQ0pZUm9iMjhmR1JuaAphNnNVOWR3ZHUyV1JCSWxJQW15QlRnSVFS
TDd0SXF5bG82T2p2Ny8venAwNzE2NWQ4M3NzQWZiWVk0OTFkSFQ0UFlwTklRbFNrQVRZCk5FZ0NF
Q3d0VjdDRUVHMXRiUTgrK0NCVDZtWWNQSGd3RWduOFU0Tkl3dWFSQk5qMFNBSVFJUDd2SW5SWExw
ZmZmLy85YytmTytUMlEKSUJrZUh1N3U3dlo3RkpLUmhBYVFCTmkwVEFMUTRscTlZSzBvRkFvWExs
eGc1L2FHZHUvZS9kUlRUL2s5Q29WSVFwMUlBbXphSndGbwpUWUVwV0xibDVXWFROUFA1ZkRxZDlu
b3J3akFJei9kVWt1Q09KTUFXbmlRQXJTWmdCYXZhclZ1M2Z2dmIzOXEzYjdaZHYzNzk2dFdyClBn
N0pMN3QzNzk2elo4OW5QL3ZaTFZ0YWFGdG8wNUNFRlNTQkpOaENuZ1NnRlFTNFlBRUFBTFFtdnR3
QUFBQklSc0VDQUFDUWpJSUYKQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xH
d0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQQpRRElLRmdBQWdHUVVMQUFBQU1r
b1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJr
CkZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJB
TWdvV0FBQ0FaQlFzQUFBQXlTaFkKQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFB
SUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQQpBQ1NqWUFFQUFFaEd3UUlB
QUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJB
QUJJClJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dB
QUFBSktOZ0FRQUFTRWJCQWdBQWtJeUMKQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29X
QUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQQpBRUF5Q2hZQUFJQmtG
Q3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1n
b1dBQUNBClpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlC
a0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa28KV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFK
Q01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQQpBQUFrbzJBQkFB
QklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFB
QUpLTmdBUUFBClNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FB
QUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ00KZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3
QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTApBQUJBTWdv
V0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtG
Q3dBQVFESUtGZ0FBCmdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNN
Z2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREoKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJ
UnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHdwpBQUFB
SktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFB
SkpSc0FBQUFDU2pZQUVBCkFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0FB
QURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1EKaklJRkFBQWdHUVVMQUFCQU1nb1dB
QUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRgpD
d0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdn
VUFBQ0FaQlFzQUFFQXlDaFlBCkFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJz
RUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUEKeVNoWUFBQUFrbEd3QUFBQUpL
TmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpK
UgpzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFE
SktGZ0FBQUNTVWJBQUFBQWtvMkFCCkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFD
QVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUEKa0l5Q0JRQUFJQmtGQ3dB
QVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VB
QUNBWgpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VD
QUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XCkFBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05n
QVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUEKQU1rb1dBQUFBSkpS
c0FBQUFDVDcvM1ZZenJ2YjdEazZBQUFBQUVsRlRrU3VRbUNDCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179294</attachid>
            <date>2012-12-13 10:00:58 -0800</date>
            <delta_ts>2012-12-13 10:28:53 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-49246-20121213175818.patch</filename>
            <type>text/plain</type>
            <size>58225</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDEyLTEyLTA1ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUm91dGUgbWFpbiByZXNvdXJj
ZSBsb2FkcyB0aHJvdWdoIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI0NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFs
ZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgcGF0Y2ggZG9lc24n
dCBhY3R1YWxseSBlbmFibGUgY2FjaGluZyBvZiBtYWluIHJlc291cmNlcy4gVGhhdCB3aWxsIGJl
IGRvbmUgaW4gYSBsYXRlciBwYXRjaC4KKyAgICAgICAgVGhlIE1haW5SZXNvdXJjZUxvYWRlciBh
Y3R1YWxseSBoYXMgYW4gdW5kZXJseWluZyBTdWJyZXNvdXJjZUxvYWRlciAod2l0aCB0aGUgY2Fj
aGUgbGF5ZXIgYmV0d2VlbiB0aGVtKS4KKyAgICAgICAgSW4gc2V2ZXJhbCBwbGFjZXMsIHRoZSBN
YWluUmVzb3VyY2VMb2FkZXIncyBTdWJyZXNvdXJjZUxvYWRlciBpcyB0cmVhdGVkIGFzIHNwZWNp
YWwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhcyB0aGlzIGlzIHByaW1hcmlseSBhIHJlZmFj
dG9yLiBBIGNvdXBsZSBvZiBleHBlY3RlZCByZXN1bHRzIGNoYW5nZWQgc2xpZ2h0bHkuCisKKyAg
ICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXI6OnNldFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXI6OnN1YnJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphZGRT
dWJyZXNvdXJjZUxvYWRlcik6IEJlY2F1c2UgdGhlIFN1YnJlc291cmNlTG9hZGVyIHVuZGVybHlp
bmcgdGhlIG1haW4gcmVzb3VyY2UKKyAgICAgICAgICAgIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcg
aW4gY2VydGFpbiBjYXNlcywgdHJhY2sgaXQgc2VwYXJhdGVseSBmcm9tIHRoZSByZWFsIFN1YnJl
c291cmNlTG9hZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZW1vdmVT
dWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3Rh
cnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6TWFpblJlc291
cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6cmVjZWl2
ZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbCk6
CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6
OmZyYW1lTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0
ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRl
cjo6cmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6
cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6
OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3Vy
Y2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0ZURhdGFMb2FkTm93KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVz
b3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJl
c291cmNlTG9hZGVyOjpkZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNv
dXJjZUxvYWRlcjo6c2V0U2hvdWxkQnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNYWlu
UmVzb3VyY2VMb2FkZXI6OmxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OmlkZW50aWZpZXIpOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
aDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNYWlu
UmVzb3VyY2VMb2FkZXI6OmRvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlcjo6Y2FuY2VsbGVkKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25D
YWNoZUhvc3Q6Om1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjptYXliZUxvYWRGYWxsYmFja0Zvck1haW5FcnJv
cik6CisgICAgICAgICogbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1hYy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2NoZWR1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXI6OnVuc2NoZWR1bGUpOgorCiAyMDEyLTEyLTEzICBKb2FubWFyaWUgRGln
Z3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBFeHBvc2UgQVJJQSByb2xl
cyBmb3IgdGFiLCB0YWJwYW5lbCBhbmQgdGFibGlzdApJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzc2MDQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsMTMgKzE4
MCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldFJlcXVlc3QoY29uc3QgUmUKICAgICAvLyB3
b3VsZCBiZSBhIFdlYkZvdW5kYXRpb24gYnVnIGlmIGl0IHNlbnQgYSByZWRpcmVjdCBjYWxsYmFj
ayBhZnRlciBjb21taXQuCiAgICAgQVNTRVJUKCFtX2NvbW1pdHRlZCk7CiAKLSAgICBLVVJMIG9s
ZFVSTCA9IG1fcmVxdWVzdC51cmwoKTsKICAgICBtX3JlcXVlc3QgPSByZXE7Ci0KLSAgICAvLyBP
bmx5IGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkg
aWYgVVJMIGNoYW5nZWQgKGFuZCBpcyBub24tbnVsbCkuCi0gICAgLy8gQWxzbywgZG9uJ3Qgc2Vu
ZCBpdCB3aGVuIHJlcGxhY2luZyB1bnJlYWNoYWJsZSBVUkxzIHdpdGggYWx0ZXJuYXRlIGNvbnRl
bnQuCi0gICAgaWYgKCFoYW5kbGluZ1VucmVhY2hhYmxlVVJMICYmICFyZXEudXJsKCkuaXNOdWxs
KCkgJiYgb2xkVVJMICE9IHJlcS51cmwoKSkKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50
KCktPmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCk7
CiB9CiAKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldE1haW5Eb2N1bWVudEVycm9yKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQpAQCAtNTg1LDYgKzU3OSw5IEBAIFBhc3NSZWZQdHI8QXJjaGl2
ZVJlc291cmNlPiBEb2N1bWVudExvYWQKICAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+
aXNMb2FkZWQoKSkKICAgICAgICAgcmV0dXJuIGFyY2hpdmVSZXNvdXJjZUZvclVSTCh1cmwpOwog
CisgICAgaWYgKHJlc291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJj
ZSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICAvLyBGSVhNRTogVGhpcyBoYXMgdGhlIHNpZGUg
ZWZmZWN0IG9mIG1ha2luZyB0aGUgcmVzb3VyY2Ugbm9uLXB1cmdlYWJsZS4KICAgICAvLyBJdCB3
b3VsZCBiZSBiZXR0ZXIgaWYgaXQgZGlkbid0IGhhdmUgdGhpcyBwZXJtYW5lbnQgZWZmZWN0Lgog
ICAgIGlmICghcmVzb3VyY2UtPm1ha2VQdXJnZWFibGUoZmFsc2UpKQpAQCAtODExLDExICs4MDgs
MjIgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmdTdWJyZXNvdQogCiB2b2lkIERv
Y3VtZW50TG9hZGVyOjphZGRTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRlciogbG9hZGVy
KQogeworICAgIC8vIFRoZSBtYWluIHJlc291cmNlJ3MgdW5kZXJseWluZyBSZXNvdXJjZUxvYWRl
ciB3aWxsIGFzayB0byBiZSBhZGRlZCBoZXJlLgorICAgIC8vIEl0IGlzIG11Y2ggc2ltcGxlciB0
byBoYW5kbGUgc3BlY2lhbCBjYXNpbmcgb2YgbWFpbiByZXNvdXJjZSBsb2FkcyBpZiB3ZSBkb24n
dAorICAgIC8vIGxldCBpdCBiZSBhZGRlZC4gSW4gdGhlIG1haW4gcmVzb3VyY2UgbG9hZCBjYXNl
LCBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCkKKyAgICAvLyB3aWxsIHN0aWxsIGJlIG51
bGwgYXQgdGhpcyBwb2ludCwgYnV0IG1fZ290Rmlyc3RCeXRlIHNob3VsZCBiZSBmYWxzZSBoZXJl
IGlmIGFuZCBvbmx5CisgICAgLy8gaWYgd2UgYXJlIGp1c3Qgc3RhcnRpbmcgdGhlIG1haW4gcmVz
b3VyY2UgbG9hZC4KKyAgICBpZiAoIW1fZ290Rmlyc3RCeXRlKQorICAgICAgICByZXR1cm47Cisg
ICAgQVNTRVJUKCFtX3N1YnJlc291cmNlTG9hZGVycy5jb250YWlucyhsb2FkZXIpKTsKKyAgICBB
U1NFUlQoIW1fbWFpblJlc291cmNlTG9hZGVyIHx8IG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2Fk
ZXIoKSAhPSBsb2FkZXIpOwogICAgIG1fc3VicmVzb3VyY2VMb2FkZXJzLmFkZChsb2FkZXIpOwog
fQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpyZW1vdmVTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJj
ZUxvYWRlciogbG9hZGVyKQogeworICAgIGlmICghbV9zdWJyZXNvdXJjZUxvYWRlcnMuY29udGFp
bnMobG9hZGVyKSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fc3VicmVzb3VyY2VMb2FkZXJzLnJl
bW92ZShsb2FkZXIpOwogICAgIGNoZWNrTG9hZENvbXBsZXRlKCk7CiAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IG1fZnJhbWUpCkBAIC04ODEsNiArODg5LDEwIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6
OnN0YXJ0TG9hZGluZ01haW5SZXMKIAogICAgIGlmIChtX3JlcXVlc3QuaXNOdWxsKCkpIHsKICAg
ICAgICAgbV9tYWluUmVzb3VyY2VMb2FkZXIgPSAwOworICAgICAgICAvLyBJZiB0aGUgbG9hZCB3
YXMgYWJvcnRlZCBieSBjbGVhcmluZyBtX3JlcXVlc3QsIGl0J3MgcG9zc2libGUgdGhlIEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0CisgICAgICAgIC8vIGlzIG5vdyBpbiBhIHN0YXRlIHdoZXJlIHN0YXJ0
aW5nIGFuIGVtcHR5IGxvYWQgd2lsbCBiZSBpbmNvbnNpc3RlbnQuIFJlcGxhY2UgaXQgd2l0aAor
ICAgICAgICAvLyBhIG5ldyBBcHBsaWNhdGlvbkNhY2hlSG9zdC4KKyAgICAgICAgbV9hcHBsaWNh
dGlvbkNhY2hlSG9zdCA9IGFkb3B0UHRyKG5ldyBBcHBsaWNhdGlvbkNhY2hlSG9zdCh0aGlzKSk7
CiAgICAgICAgIG1heWJlTG9hZEVtcHR5KCk7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEzNzYwNCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiw2ICszMiw4IEBACiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5o
IgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC00NCwxNSArNDYsMTUgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgotI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgot
I2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tl
ci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU3VicmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogI2lmIFBMQVRGT1JN
KFFUKQpAQCAtNjMsMTMgKzY1LDExIEBACiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgogI2VuZGlmCiAKLS8vIEZJWE1FOiBNb3JlIHRoYXQgaXMgaW4gY29tbW9uIHdpdGggU3Vi
cmVzb3VyY2VMb2FkZXIgc2hvdWxkIG1vdmUgdXAgaW50byBSZXNvdXJjZUxvYWRlci4KLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBNYWluUmVzb3VyY2VMb2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRl
cihEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpCi0gICAgOiBSZXNvdXJjZUxvYWRlcihk
b2N1bWVudExvYWRlci0+ZnJhbWUoKSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFj
a3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNr
Q2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgU2tpcFNlY3VyaXR5Q2hlY2spKQotICAg
ICwgbV9kYXRhTG9hZFRpbWVyKHRoaXMsICZNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZVN1YnN0
aXR1dGVEYXRhTG9hZE5vdykKKyAgICA6IG1fZGF0YUxvYWRUaW1lcih0aGlzLCAmTWFpblJlc291
cmNlTG9hZGVyOjpoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWROb3cpCisgICAgLCBtX2RvY3VtZW50
TG9hZGVyKGRvY3VtZW50TG9hZGVyKQogICAgICwgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudChm
YWxzZSkKICAgICAsIG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3koZmFsc2UpCiAgICAgLCBtX3Rp
bWVPZkxhc3REYXRhUmVjZWl2ZWQoMC4wKQpAQCAtODEsNiArODEsNyBAQCBNYWluUmVzb3VyY2VM
b2FkZXI6Ok1haW5SZXNvdXJjZUxvYWRlcihECiAKIE1haW5SZXNvdXJjZUxvYWRlcjo6fk1haW5S
ZXNvdXJjZUxvYWRlcigpCiB7CisgICAgY2xlYXJSZXNvdXJjZSgpOwogI2lmIFBMQVRGT1JNKE1B
QykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDgwCiAgICAgQVNTRVJUKCFtX2ZpbHRlcik7CiAjZW5kaWYKQEAgLTEwMiwzNCArMTAzLDMy
IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZWNlaXZlZEVycm9yKGMKICAgICAvLyBkb2N1
bWVudCBsb2FkZXJzLiBBbHNvLCBtYWluUmVjZWl2ZWRFcnJvciBlbmRzIHVwIGNhbGxpbmcgYSBG
cmFtZUxvYWREZWxlZ2F0ZSBtZXRob2QKICAgICAvLyBhbmQgZGlkRmFpbFRvTG9hZCBjYWxscyBh
IFJlc291cmNlTG9hZERlbGVnYXRlIG1ldGhvZCBhbmQgdGhleSBuZWVkIHRvIGJlIGluIHRoZSBj
b3JyZWN0IG9yZGVyLgogICAgIGRvY3VtZW50TG9hZGVyKCktPm1haW5SZWNlaXZlZEVycm9yKGVy
cm9yKTsKK30KIAotICAgIGlmICghY2FuY2VsbGVkKCkpIHsKLSAgICAgICAgQVNTRVJUKCFyZWFj
aGVkVGVybWluYWxTdGF0ZSgpKTsKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+
ZGlkRmFpbFRvTG9hZCh0aGlzLCBlcnJvcik7Ci0gICAgICAgIAotICAgICAgICByZWxlYXNlUmVz
b3VyY2VzKCk7Ci0gICAgfQotCi0gICAgQVNTRVJUKHJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpOwor
dm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbCgpCit7CisgICAgY2FuY2VsKFJlc291cmNl
RXJyb3IoKSk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsQ2FuY2VsKGNvbnN0
IFJlc291cmNlRXJyb3ImKQordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNhbmNlbChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKKyAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBw
cm90ZWN0KHRoaXMpOworICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvciA9IGVycm9yLmlz
TnVsbCgpID8gZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IocmVxdWVzdCgpKSA6IGVycm9y
OworCiAgICAgbV9kYXRhTG9hZFRpbWVyLnN0b3AoKTsKIAogICAgIGlmIChtX3dhaXRpbmdGb3JD
b250ZW50UG9saWN5KSB7CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+
Y2FuY2VsQ2hlY2soKTsKICAgICAgICAgQVNTRVJUKG1fd2FpdGluZ0ZvckNvbnRlbnRQb2xpY3kp
OwogICAgICAgICBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5ID0gZmFsc2U7Ci0gICAgICAgIGRl
cmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiBkaWRSZWNlaXZlUmVzcG9uc2UKKyAgICAgICAgZGVy
ZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGluIHJlc3BvbnNlUmVjZWl2ZWQKICAgICB9Ci19CiAKLXZv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCi17Ci0gICAgLy8gV2Ugc2hvdWxkIG5vdGlmeSB0aGUgZnJhbWUgbG9hZGVyIGFmdGVyIGZ1
bGx5IGNhbmNlbGluZyB0aGUgbG9hZCwgYmVjYXVzZSBpdCBjYW4gZG8gY29tcGxpY2F0ZWQgd29y
awotICAgIC8vIGxpa2UgY2FsbGluZyBET01XaW5kb3c6OnByaW50KCksIGR1cmluZyB3aGljaCBh
IGhhbGYtY2FuY2VsZWQgbG9hZCBjb3VsZCB0cnkgdG8gZmluaXNoLgotICAgIGRvY3VtZW50TG9h
ZGVyKCktPm1haW5SZWNlaXZlZEVycm9yKGVycm9yKTsKKyAgICBpZiAobG9hZGVyKCkpCisgICAg
ICAgIGxvYWRlcigpLT5jYW5jZWwocmVzb3VyY2VFcnJvcik7CisKKyAgICBjbGVhclJlc291cmNl
KCk7CisgICAgcmVjZWl2ZWRFcnJvcihyZXNvdXJjZUVycm9yKTsKIAogI2lmIFBMQVRGT1JNKE1B
QykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDgwCiAgICAgaWYgKG1fZmlsdGVyKSB7CkBAIC0xMzksNiArMTM4LDI0IEBAIHZvaWQgTWFp
blJlc291cmNlTG9hZGVyOjpkaWRDYW5jZWwoY29uc3QKICNlbmRpZgogfQogCit2b2lkIE1haW5S
ZXNvdXJjZUxvYWRlcjo6Y2xlYXJSZXNvdXJjZSgpCit7CisgICAgaWYgKG1fcmVzb3VyY2UpIHsK
KyAgICAgICAgbV9yZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICBtX3Jlc291
cmNlID0gMDsKKyAgICB9Cit9CisKK0ZyYW1lTG9hZGVyKiBNYWluUmVzb3VyY2VMb2FkZXI6OmZy
YW1lTG9hZGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlci0+ZnJhbWVM
b2FkZXIoKTsKK30KKworY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBNYWluUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9yZXNvdXJjZS0+
cmVzb3VyY2VSZXF1ZXN0KCkgOiBtX2luaXRpYWxSZXF1ZXN0OworfQorCiBSZXNvdXJjZUVycm9y
IE1haW5SZXNvdXJjZUxvYWRlcjo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5pbnRlcnJ1cHRlZEZv
clBvbGljeUNoYW5nZUVycm9yKHJlcXVlc3QoKSk7CkBAIC0xNjMsNyArMTgwLDcgQEAgdm9pZCBN
YWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJOYQogICAgIGVsc2UgaWYgKG1fc3Vic3Rp
dHV0ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAgICAgIC8vIEEgcmVkaXJlY3QgcmVzdWx0ZWQgaW4g
bG9hZGluZyBzdWJzdGl0dXRlIGRhdGEuCiAgICAgICAgIEFTU0VSVChkb2N1bWVudExvYWRlcigp
LT50aW1pbmcoKS0+cmVkaXJlY3RDb3VudCgpKTsKLSAgICAgICAgaGFuZGxlKCktPmNhbmNlbCgp
OworICAgICAgICBjbGVhclJlc291cmNlKCk7CiAgICAgICAgIGhhbmRsZVN1YnN0aXR1dGVEYXRh
TG9hZFNvb24ocmVxdWVzdCk7CiAgICAgfQogCkBAIC0xODMsMTAgKzIwMCwxNSBAQCBib29sIE1h
aW5SZXNvdXJjZUxvYWRlcjo6aXNQb3N0T3JSZWRpcmVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK1Bhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IE1haW5S
ZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VEYXRhKCkKIHsKLSAgICBSZXNvdXJjZUxvYWRlcjo6YWRk
RGF0YShkYXRhLCBsZW5ndGgsIGFsbEF0T25jZSk7Ci0gICAgZG9jdW1lbnRMb2FkZXIoKS0+cmVj
ZWl2ZWREYXRhKGRhdGEsIGxlbmd0aCk7CisgICAgcmV0dXJuIG1fcmVzb3VyY2UgPyBtX3Jlc291
cmNlLT5yZXNvdXJjZUJ1ZmZlcigpIDogMDsKK30KKwordm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OnJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCit7
CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9yZXNvdXJjZSk7Cisg
ICAgd2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogfQogCiB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3
UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKQEAgLTIz
OSw4ICsyNjEsNiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KG5l
d1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwotCiAgICAgLy8gRG9uJ3Qgc2V0IHRoaXMgb24g
dGhlIGZpcnN0IHJlcXVlc3QuIEl0IGlzIHNldCB3aGVuIHRoZSBtYWluIGxvYWQgd2FzIHN0YXJ0
ZWQuCiAgICAgbV9kb2N1bWVudExvYWRlci0+c2V0UmVxdWVzdChuZXdSZXF1ZXN0KTsKIApAQCAt
Mjc3LDE3ICsyOTcsMTYgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJD
bwogICAgICAgICBpZiAoIWZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5jYW5TaG93TUlNRVR5cGUo
bWltZVR5cGUpIHx8IGlzUmVtb3RlV2ViQXJjaGl2ZSkgewogICAgICAgICAgICAgZnJhbWVMb2Fk
ZXIoKS0+cG9saWN5Q2hlY2tlcigpLT5jYW5ub3RTaG93TUlNRVR5cGUocik7CiAgICAgICAgICAg
ICAvLyBDaGVjayByZWFjaGVkVGVybWluYWxTdGF0ZSBzaW5jZSB0aGUgbG9hZCBtYXkgaGF2ZSBh
bHJlYWR5IGJlZW4gY2FuY2VsZWQgaW5zaWRlIG9mIF9oYW5kbGVVbmltcGxlbWVudGFibGVQb2xp
Y3lXaXRoRXJyb3JDb2RlOjouCi0gICAgICAgICAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0YXRl
KCkpCi0gICAgICAgICAgICAgICAgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKKyAgICAg
ICAgICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgY2FzZSBQb2xpY3lEb3du
bG9hZDogewotICAgICAgICAvLyBtX2hhbmRsZSBjYW4gYmUgbnVsbCwgZS5nLiB3aGVuIGxvYWRp
bmcgYSBzdWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBwbGljYXRpb24gY2FjaGUuCi0gICAgICAg
IGlmICghbV9oYW5kbGUpIHsKLSAgICAgICAgICAgIHJlY2VpdmVkRXJyb3IoY2Fubm90U2hvd1VS
TEVycm9yKCkpOworICAgICAgICAvLyBtX3Jlc291cmNlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4g
bG9hZGluZyBhIHN1YnN0aXR1dGUgcmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KKyAg
ICAgICAgaWYgKCFtX3Jlc291cmNlKSB7CisgICAgICAgICAgICByZWNlaXZlZEVycm9yKGZyYW1l
TG9hZGVyKCktPmNsaWVudCgpLT5jYW5ub3RTaG93VVJMRXJyb3IocmVxdWVzdCgpKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpjb250aW51ZVdpdGhQb2xpY3lEb3dubG9hZChtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgp
LCBkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCksIHIpOwpAQCAtMjk3LDcgKzMxNiw3IEBA
IHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyQ28KICAgICAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QgPSB0aGlzLT5yZXF1ZXN0KCk7CiAgICAgICAgIGZyYW1lTG9hZGVy
KCktPnNldE9yaWdpbmFsVVJMRm9yRG93bmxvYWRSZXF1ZXN0KHJlcXVlc3QpOwogCi0gICAgICAg
IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5kb3dubG9hZChtX2hhbmRsZS5nZXQoKSwgcmVxdWVz
dCwgcik7CisgICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLT5kb3dubG9hZChsb2FkZXIo
KS0+aGFuZGxlKCksIHJlcXVlc3QsIHIpOwogCiAgICAgICAgIC8vIEl0IG1pZ2h0IGhhdmUgZ29u
ZSBtaXNzaW5nCiAgICAgICAgIGlmIChmcmFtZUxvYWRlcigpKQpAQCAtMzI5LDEzICszNDgsOSBA
QCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICAvLyB3ZSBtYXkgaGF2ZSBjYW5jZWxsZWQgdGhpcyBsb2FkIGFzIHBhcnQgb2Yg
c3dpdGNoaW5nIHRvIGZhbGxiYWNrIGNvbnRlbnQKLSAgICBpZiAoIXJlYWNoZWRUZXJtaW5hbFN0
YXRlKCkpCi0gICAgICAgIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uocik7Ci0K
LSAgICBpZiAobV9kb2N1bWVudExvYWRlciAmJiAhbV9kb2N1bWVudExvYWRlci0+aXNTdG9wcGlu
ZygpICYmIG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKSB7CisgICAgaWYgKCFtX2RvY3VtZW50
TG9hZGVyLT5pc1N0b3BwaW5nKCkgJiYgbV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpIHsKICAg
ICAgICAgaWYgKG1fc3Vic3RpdHV0ZURhdGEuY29udGVudCgpLT5zaXplKCkpCi0gICAgICAgICAg
ICBkaWRSZWNlaXZlRGF0YShtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+ZGF0YSgpLCBtX3N1
YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQo
KS0+c2l6ZSgpLCB0cnVlKTsKKyAgICAgICAgICAgIGRhdGFSZWNlaXZlZCgwLCBtX3N1YnN0aXR1
dGVEYXRhLmNvbnRlbnQoKS0+ZGF0YSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6
ZSgpKTsKICAgICAgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0b3BwaW5nKCkpCiAgICAg
ICAgICAgICBkaWRGaW5pc2hMb2FkaW5nKDApOwogICAgIH0KQEAgLTM1MiwxMSArMzY3LDEyIEBA
IHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyQ28KICAgICBtX3dhaXRpbmdG
b3JDb250ZW50UG9saWN5ID0gZmFsc2U7CiAgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5pc1N0
b3BwaW5nKCkpCiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSwgbV9y
ZXNwb25zZSk7Ci0gICAgZGVyZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGluIGRpZFJlY2VpdmVSZXNw
b25zZQorICAgIGRlcmVmKCk7IC8vIGJhbGFuY2VzIHJlZiBpbiByZXNwb25zZVJlY2VpdmVkCiB9
CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcikKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpyZXNwb25zZVJlY2Vp
dmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikK
IHsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCBtX3Jlc291cmNlID09IHJlc291cmNlKTsK
ICAgICBpZiAoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVM
b2FkRmFsbGJhY2tGb3JNYWluUmVzcG9uc2UocmVxdWVzdCgpLCByKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0zODIsNyArMzk4LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVSZXNwbwogCiAgICAgaWYgKG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQpIHsKICAgICAgICAg
bV9kb2N1bWVudExvYWRlci0+c2V0dXBGb3JSZXBsYWNlKCk7Ci0gICAgICAgIGNsZWFyUmVzb3Vy
Y2VEYXRhKCk7CisgICAgICAgIG1fcmVzb3VyY2UtPmNsZWFyKCk7CiAgICAgfQogICAgIAogICAg
IGlmIChyLmlzTXVsdGlwYXJ0KCkpCkBAIC0zOTgsNyArNDE0LDcgQEAgdm9pZCBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwbwogCiAgICAgQVNTRVJUKCFtX3dhaXRpbmdGb3JDb250
ZW50UG9saWN5KTsKICAgICBtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5ID0gdHJ1ZTsKLSAgICBy
ZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kg
YW5kIGRpZENhbmNlbAorICAgIHJlZigpOyAvLyBiYWxhbmNlZCBieSBkZXJlZiBpbiBjb250aW51
ZUFmdGVyQ29udGVudFBvbGljeSBhbmQgY2FuY2VsCiAKICAgICAvLyBBbHdheXMgc2hvdyBjb250
ZW50IHdpdGggdmFsaWQgc3Vic3RpdHV0ZSBkYXRhLgogICAgIGlmIChtX2RvY3VtZW50TG9hZGVy
LT5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSkgewpAQCAtNDIzLDExICs0MzksMTEgQEAgdm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwbwogICAgIGZyYW1lTG9hZGVyKCkt
PnBvbGljeUNoZWNrZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIGNhbGxDb250
aW51ZUFmdGVyQ29udGVudFBvbGljeSwgdGhpcyk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxv
bmcgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKQordm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IGNoYXIq
IGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGRhdGEpOwogICAgIEFTU0VSVChsZW5n
dGggIT0gMCk7Ci0KKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJjZSA9PSBtX3Jl
c291cmNlKTsKICAgICBBU1NFUlQoIW1fcmVzcG9uc2UuaXNOdWxsKCkpOwogCiAjaWYgVVNFKENG
TkVUV09SSykgfHwgUExBVEZPUk0oTUFDKQpAQCAtNDUyLDE2ICs0NjgsMTUgQEAgdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKAogICAgICAgICAvLyBJZiB3ZSBkb24ndCBo
YXZlIGJsb2NrZWREYXRhLCB0aGF0IG1lYW5zIHdlJ3JlIHN0aWxsIGFjY3VtdWxhdGluZyBkYXRh
CiAgICAgICAgIGlmICghYmxvY2tlZERhdGEpIHsKICAgICAgICAgICAgIC8vIFRyYW5zaXRpb24g
dG8gY29tbWl0dGVkIHN0YXRlLgotICAgICAgICAgICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhKCIiLCAwLCAwLCBmYWxzZSk7CisgICAgICAgICAgICBkb2N1bWVudExvYWRlcigpLT5y
ZWNlaXZlZERhdGEoMCwgMCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAg
ICAgICBkYXRhID0gYmxvY2tlZERhdGE7Ci0gICAgICAgIGVuY29kZWREYXRhTGVuZ3RoID0gLTE7
CiAgICAgfQogI2VuZGlmCiAKLSAgICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hl
SG9zdCgpLT5tYWluUmVzb3VyY2VEYXRhUmVjZWl2ZWQoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0
YUxlbmd0aCwgYWxsQXRPbmNlKTsKKyAgICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNh
Y2hlSG9zdCgpLT5tYWluUmVzb3VyY2VEYXRhUmVjZWl2ZWQoZGF0YSwgbGVuZ3RoLCAtMSwgZmFs
c2UpOwogCiAgICAgLy8gVGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8gYW55dGhpbmcg
aW5jbHVkaW5nIHBvc3NpYmx5IHJlbW92aW5nIHRoZSBsYXN0CiAgICAgLy8gcmVmZXJlbmNlIHRv
IHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMyNjYyMTYuCkBAIC00NjksNyAr
NDg0LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKAogCiAgICAg
bV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
CiAKLSAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNv
ZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsKKyAgICBkb2N1bWVudExvYWRlcigpLT5yZWNlaXZl
ZERhdGEoZGF0YSwgbGVuZ3RoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElP
UykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKFdl
YkZpbHRlckV2YWx1YXRvciAqZmlsdGVyID0gbV9maWx0ZXIpIHsKQEAgLTQ5MCw3ICs1MDUsNyBA
QCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluCiAgICAgLy8gVGhlcmUg
aXMgYSBidWcgaW4gQ0ZOZXR3b3JrIHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUgZGlzcGF0Y2hlZCBl
dmVuIHdoZW4gbG9hZHMgYXJlIGRlZmVycmVkLgogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0v
NjMwNDYwMD4gZm9yIG1vcmUgZGV0YWlscy4KICNpZiAhVVNFKENGKQotICAgIEFTU0VSVCghZGVm
ZXJzTG9hZGluZygpIHx8IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aXNEZWJ1Z2dlclBhdXNl
ZChtX2ZyYW1lLmdldCgpKSk7CisgICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkgfHwgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjppc0RlYnVnZ2VyUGF1c2VkKG1fZG9jdW1lbnRMb2FkZXItPmZy
YW1lKCkpKTsKICNlbmRpZgogCiAgICAgLy8gVGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4g
ZG8gYW55dGhpbmcgaW5jbHVkaW5nIHBvc3NpYmx5IHJlbW92aW5nIHRoZSBsYXN0CkBAIC01MDYs
NyArNTIxLDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbgogICAg
ICAgICAvLyBSZW1vdmUgdGhpcy0+bV9maWx0ZXIgZWFybHkgc28gZGlkUmVjZWl2ZURhdGEgZG9l
c24ndCBzZWUgaXQuCiAgICAgICAgIG1fZmlsdGVyID0gMDsKICAgICAgICAgaWYgKGRhdGEpCi0g
ICAgICAgICAgICBkaWRSZWNlaXZlRGF0YShkYXRhLCBsZW5ndGgsIC0xLCBmYWxzZSk7CisgICAg
ICAgICAgICBkYXRhUmVjZWl2ZWQobV9yZXNvdXJjZS5nZXQoKSwgZGF0YSwgbGVuZ3RoKTsKICAg
ICAgICAgd2tGaWx0ZXJSZWxlYXNlKGZpbHRlcik7CiAgICAgfQogI2VuZGlmCkBAIC01MTYsMTMg
KzUzMSwxOCBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluCiAKICAg
ICBkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+c2V0UmVzcG9uc2VFbmQoZmluaXNoVGltZSA/
IGZpbmlzaFRpbWUgOiAobV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkID8gbV90aW1lT2ZMYXN0RGF0
YVJlY2VpdmVkIDogbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpKTsKICAgICBkb2N1bWVu
dExvYWRlcigpLT5maW5pc2hlZExvYWRpbmcoKTsKLSAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkRmlu
aXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKIAogICAgIGRsLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgp
LT5maW5pc2hlZExvYWRpbmdNYWluUmVzb3VyY2UoKTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewor
ICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIG1fcmVzb3VyY2UgPT0gcmVzb3VyY2UpOworICAg
IGlmICghbV9yZXNvdXJjZSB8fCAoIW1fcmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiAhbV9y
ZXNvdXJjZS0+d2FzQ2FuY2VsZWQoKSkpIHsKKyAgICAgICAgZGlkRmluaXNoTG9hZGluZyhtX3Jl
c291cmNlLT5sb2FkRmluaXNoVGltZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogI2lm
IFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgaWYgKG1fZmlsdGVyKSB7CiAgICAgICAgIHdrRmlsdGVy
UmVsZWFzZShtX2ZpbHRlcik7CkBAIC01MzAsNiArNTUwLDcgQEAgdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmRpZEZhaWwoY29uc3QgUgogICAgIH0KICNlbmRpZgogCisgICAgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IgPSBtX3Jlc291cmNlLT5yZXNvdXJjZUVycm9yKCk7CiAgICAgaWYgKGRv
Y3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNr
Rm9yTWFpbkVycm9yKHJlcXVlc3QoKSwgZXJyb3IpKQogICAgICAgICByZXR1cm47CiAKQEAgLTU0
NSw3ICs1NjYsNiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSCiB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyht
ZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkxvYWRlcik7Ci0gICAg
UmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAg
IGluZm8uYWRkTWVtYmVyKG1faW5pdGlhbFJlcXVlc3QpOwogICAgIGluZm8uYWRkTWVtYmVyKG1f
c3Vic3RpdHV0ZURhdGEpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZGF0YUxvYWRUaW1lcik7CkBA
IC01NjQsNyArNTg0LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmhhbmRsZVN1YnN0aXR1
dAogICAgIG1faW5pdGlhbFJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKICAgICAgICAgCiAg
ICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSh1cmwsIG1fc3Vic3RpdHV0ZURhdGEubWltZVR5
cGUoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgbV9zdWJzdGl0dXRlRGF0
YS50ZXh0RW5jb2RpbmcoKSwgIiIpOwotICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7
CisgICAgcmVzcG9uc2VSZWNlaXZlZCgwLCByZXNwb25zZSk7CiB9CiAKIHZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpzdGFydERhdGFMb2FkVGltZXIoKQpAQCAtNTg3LDI5ICs2MDcsOCBAQCB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6aGFuZGxlU3Vic3RpdHV0CiAgICAgICAgIGhhbmRsZVN1YnN0
aXR1dGVEYXRhTG9hZE5vdygwKTsKIH0KIAotdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmxvYWRO
b3coUmVzb3VyY2VSZXF1ZXN0JiByKQotewotICAgIEFTU0VSVCghbV9oYW5kbGUpOwotICAgIEFT
U0VSVCghZGVmZXJzTG9hZGluZygpKTsKLQotI2lmIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQot
ICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5yZXNvdXJjZUxvYWRT
Y2hlZHVsZXIoKS0+YWRkTWFpblJlc291cmNlTG9hZCh0aGlzKTsKLSNlbHNlCi0gICAgcmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyKCktPmFkZE1haW5SZXNvdXJjZUxvYWQodGhpcyk7Ci0jZW5kaWYKLQot
ICAgIGlmIChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkKLSAgICAgICAgaGFuZGxlU3Vic3Rp
dHV0ZURhdGFMb2FkU29vbihyKTsKLSAgICBlbHNlCi0gICAgICAgIG1faGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwg
ciwgdGhpcywgZmFsc2UsIHRydWUpOwotCi0gICAgcmV0dXJuOwotfQotCi12b2lkIE1haW5SZXNv
dXJjZUxvYWRlcjo6bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHIsIGNvbnN0IFN1YnN0aXR1
dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKK3ZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgaW5pdGlhbFJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRh
JiBzdWJzdGl0dXRlRGF0YSkKIHsKLSAgICBBU1NFUlQoIW1faGFuZGxlKTsKLQogICAgIC8vIEl0
IGFwcGVhcnMgdGhhdCBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBsb2FkIHRvIGJlIGNhbmNlbGxl
ZCBhbmQgZGVyZWZlbmNlZCBieSB0aGUgRG9jdW1lbnRMb2FkZXIKICAgICAvLyBpbiB3aWxsU2Vu
ZFJlcXVlc3QoKSBpZiBsb2FkTm93KCkgaXMgY2FsbGVkLgogICAgIFJlZlB0cjxNYWluUmVzb3Vy
Y2VMb2FkZXI+IHByb3RlY3QodGhpcyk7CkBAIC02MTksNyArNjE4LDcgQEAgdm9pZCBNYWluUmVz
b3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzbwogICAgIEFTU0VSVChkb2N1bWVudExvYWRlcigp
LT50aW1pbmcoKS0+bmF2aWdhdGlvblN0YXJ0KCkpOwogICAgIEFTU0VSVCghZG9jdW1lbnRMb2Fk
ZXIoKS0+dGltaW5nKCktPmZldGNoU3RhcnQoKSk7CiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+dGlt
aW5nKCktPm1hcmtGZXRjaFN0YXJ0KCk7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qocik7
CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOwogCiAgICAgLy8g
U2VuZCB0aGlzIHN5bnRoZXRpYyBkZWxlZ2F0ZSBjYWxsYmFjayBzaW5jZSBjbGllbnRzIGV4cGVj
dCBpdCwgYW5kCiAgICAgLy8gd2Ugbm8gbG9uZ2VyIHNlbmQgdGhlIGNhbGxiYWNrIGZyb20gd2l0
aGluIE5TVVJMQ29ubmVjdGlvbiBmb3IKQEAgLTYyNywzNyArNjI2LDYyIEBAIHZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc28KICAgICB3aWxsU2VuZFJlcXVlc3QocmVxdWVz
dCwgUmVzb3VyY2VSZXNwb25zZSgpKTsKICAgICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7
CiAKLSAgICAvLyA8cmRhcjovL3Byb2JsZW0vNDgwMTA2Nj4KLSAgICAvLyB3aWxsU2VuZFJlcXVl
c3QoKSBpcyBsaWFibGUgdG8gbWFrZSB0aGUgY2FsbCB0byBmcmFtZUxvYWRlcigpIHJldHVybiBu
dWxsLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQgaGVyZQotICAgIGlmICghZnJhbWVMb2FkZXIo
KSB8fCByZXF1ZXN0LmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmICghcmVhY2hlZFRlcm1pbmFsU3Rh
dGUoKSkKLSAgICAgICAgICAgIHJlbGVhc2VSZXNvdXJjZXMoKTsKKyAgICAvLyB3aWxsU2VuZFJl
cXVlc3QoKSBtYXkgbGVhZCB0byBvdXIgRG9jdW1lbnRMb2FkZXIgYmVpbmcgZGV0YWNoZWQgb3Ig
Y2FuY2VsbGluZyB0aGUgbG9hZCB2aWEgbnVsbGluZyB0aGUgUmVzb3VyY2VSZXF1ZXN0LgorICAg
IGlmICghZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSB8fCByZXF1ZXN0LmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+bWF5YmVMb2FkTWFpblJlc291cmNlKHJlcXVlc3QsIG1fc3Vic3RpdHV0ZURh
dGEpOwogCi0gICAgaWYgKGRlZmVyc0xvYWRpbmcoKSkKLSAgICAgICAgbV9pbml0aWFsUmVxdWVz
dCA9IHJlcXVlc3Q7Ci0gICAgZWxzZQotICAgICAgICBsb2FkTm93KHJlcXVlc3QpOworICAgIGlm
IChtX3N1YnN0aXR1dGVEYXRhLmlzVmFsaWQoKSkgeworICAgICAgICBoYW5kbGVTdWJzdGl0dXRl
RGF0YUxvYWRTb29uKHJlcXVlc3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChSZXNvdXJjZUxvYWRlck9wdGlvbnMsIG1haW5SZXNvdXJjZUxvYWRP
cHRpb25zLAorICAgICAgICAoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRh
LCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRp
YWxzLCBTa2lwU2VjdXJpdHlDaGVjaykpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNo
ZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCwgbWFpblJlc291cmNlTG9hZE9wdGlvbnMpOworICAg
IG1fcmVzb3VyY2UgPSBkb2N1bWVudExvYWRlcigpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0TWFpblJlc291cmNlKGNhY2hlZFJlc291cmNlUmVxdWVzdCk7CisgICAgaWYgKCFtX3Jl
c291cmNlKSB7CisgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPnNldFJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fcmVzb3VyY2UtPmFkZENs
aWVudCh0aGlzKTsKKworICAgIC8vIFdlIG5lZWQgdG8gd2FpdCB1bnRpbCBhZnRlciByZXF1ZXN0
TWFpblJlc291cmNlKCkgaXMgY2FsbGVkIHRvIHNldFJlcXVlc3QoKSwgYmVjYXVzZSB0aGVyZSBh
cmUgYSBidW5jaCBvZiBoZWFkZXJzIHNldCB3aGVuCisgICAgLy8gdGhlIHVuZGVybHlpbmcgUmVz
b3VyY2VMb2FkZXIgaXMgY3JlYXRlZCwgYW5kIERvY3VtZW50TG9hZGVyOjptX3JlcXVlc3QgbmVl
ZHMgdG8gaW5jbHVkZSB0aG9zZS4gSG93ZXZlciwgdGhlIGNhY2hlIHdpbGwKKyAgICAvLyBzdHJp
cCB0aGUgZnJhZ21lbnQgaWRlbnRpZmllciAod2hpY2ggRG9jdW1lbnRMb2FkZXI6Om1fcmVxdWVz
dCBzaG91bGQgYWxzbyBpbmNsdWRlKSwgc28gYWRkIHRoYXQgYmFjayBpbi4KKyAgICBpZiAobG9h
ZGVyKCkpCisgICAgICAgIHJlcXVlc3QgPSBsb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCk7Cisg
ICAgZG9jdW1lbnRMb2FkZXIoKS0+c2V0UmVxdWVzdChyZXF1ZXN0KTsKIH0KIAogdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiB7Ci0gICAgUmVz
b3VyY2VMb2FkZXI6OnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKKyAgICBpZiAobG9hZGVyKCkp
CisgICAgICAgIGxvYWRlcigpLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7Cit9CiAKLSAgICBp
ZiAoZGVmZXJzKSB7Ci0gICAgICAgIGlmIChtX2RhdGFMb2FkVGltZXIuaXNBY3RpdmUoKSkKLSAg
ICAgICAgICAgIG1fZGF0YUxvYWRUaW1lci5zdG9wKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
aWYgKG1faW5pdGlhbFJlcXVlc3QuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm47Citib29s
IE1haW5SZXNvdXJjZUxvYWRlcjo6ZGVmZXJzTG9hZGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGxvYWRlcigpID8gbG9hZGVyKCktPmRlZmVyc0xvYWRpbmcoKSA6IGZhbHNlOworfQogCi0gICAg
ICAgIFJlc291cmNlUmVxdWVzdCBpbml0aWFsUmVxdWVzdChtX2luaXRpYWxSZXF1ZXN0KTsKLSAg
ICAgICAgbV9pbml0aWFsUmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCgpOwotICAgICAgICBsb2Fk
Tm93KGluaXRpYWxSZXF1ZXN0KTsKLSAgICB9Cit2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6c2V0
U2hvdWxkQnVmZmVyRGF0YShEYXRhQnVmZmVyaW5nUG9saWN5IHNob3VsZEJ1ZmZlckRhdGEpCit7
CisgICAgQVNTRVJUKG1fcmVzb3VyY2UpOworICAgIG1fcmVzb3VyY2UtPnNldFNob3VsZEJ1ZmZl
ckRhdGEoc2hvdWxkQnVmZmVyRGF0YSk7Cit9CisKK1Jlc291cmNlTG9hZGVyKiBNYWluUmVzb3Vy
Y2VMb2FkZXI6OmxvYWRlcigpIGNvbnN0Cit7IAorICAgIHJldHVybiBtX3Jlc291cmNlID8gbV9y
ZXNvdXJjZS0+bG9hZGVyKCkgOiAwOworfQorCit1bnNpZ25lZCBsb25nIE1haW5SZXNvdXJjZUxv
YWRlcjo6aWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgaWYgKFJlc291cmNlTG9hZGVyKiByZXNv
dXJjZUxvYWRlciA9IGxvYWRlcigpKQorICAgICAgICByZXR1cm4gcmVzb3VyY2VMb2FkZXItPmlk
ZW50aWZpZXIoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM3NjA0KQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw2ICsyOSw4IEBACiAjaWZuZGVmIE1haW5SZXNvdXJjZUxvYWRlcl9oCiAjZGVmaW5lIE1haW5S
ZXNvdXJjZUxvYWRlcl9oCiAKKyNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5o
IgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEu
aCIKQEAgLTQ5LDIxICs1MSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGb3JtU3Rh
dGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKLWNsYXNzIE1haW5SZXNvdXJjZUxvYWRlciA6
IHB1YmxpYyBSZXNvdXJjZUxvYWRlciB7CitjbGFzcyBNYWluUmVzb3VyY2VMb2FkZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxNYWluUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgQ2FjaGVkUmF3UmVzb3Vy
Y2VDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gY3JlYXRlKERvY3VtZW50TG9hZGVy
Kik7CiAgICAgdmlydHVhbCB+TWFpblJlc291cmNlTG9hZGVyKCk7CiAKICAgICB2b2lkIGxvYWQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKLSAgICB2aXJ0
dWFsIHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiwgaW50LCBib29sIGFsbEF0T25jZSkgT1ZFUlJJ
REU7CisgICAgdm9pZCBjYW5jZWwoKTsKKyAgICB2b2lkIGNhbmNlbChjb25zdCBSZXNvdXJjZUVy
cm9yJik7CisgICAgUmVzb3VyY2VMb2FkZXIqIGxvYWRlcigpIGNvbnN0OworICAgIFBhc3NSZWZQ
dHI8UmVzb3VyY2VCdWZmZXI+IHJlc291cmNlRGF0YSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNl
dERlZmVyc0xvYWRpbmcoYm9vbCkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
bmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgaW50LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5n
dGgsIGJvb2wgYWxsQXRPbmNlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNo
TG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOworICAgIHZvaWQgc2V0RGVmZXJz
TG9hZGluZyhib29sKTsKKyAgICB2b2lkIHNldFNob3VsZEJ1ZmZlckRhdGEoRGF0YUJ1ZmZlcmlu
Z1BvbGljeSk7CiAKICNpZiBIQVZFKFJVTkxPT1BfVElNRVIpCiAgICAgdHlwZWRlZiBSdW5Mb29w
VGltZXI8TWFpblJlc291cmNlTG9hZGVyPiBNYWluUmVzb3VyY2VMb2FkZXJUaW1lcjsKQEAgLTcx
LDE4ICs3MiwyMSBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBUaW1lcjxNYWluUmVzb3VyY2VMb2Fk
ZXI+IE1haW5SZXNvdXJjZUxvYWRlclRpbWVyOwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIoKSBjb25zdDsKICAgICBib29sIGlzTG9hZGluZ011bHRpcGFydENvbnRlbnQo
KSBjb25zdCB7IHJldHVybiBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50OyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJS
SURFOworICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1haW5SZXNvdXJjZUxvYWRlcihEb2N1bWVudExv
YWRlciopOwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VF
cnJvciYpIE9WRVJSSURFOwotCi0gICAgdm9pZCBsb2FkTm93KFJlc291cmNlUmVxdWVzdCYpOwor
ICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVk
UmVzb3VyY2UqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgT1ZFUlJJREU7
CiAKKyAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgaGFuZGxlU3Vic3RpdHV0ZURhdGFMb2Fk
U29vbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRsZVN1YnN0aXR1dGVE
YXRhTG9hZE5vdyhNYWluUmVzb3VyY2VMb2FkZXJUaW1lciopOwogCkBAIC0xMDQsMTAgKzEwOCwy
MiBAQCBwcml2YXRlOgogICAgIHZvaWQgc3Vic3RpdHV0ZU1JTUVUeXBlRnJvbVBsdWdpbkRhdGFi
YXNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICNlbmRpZgogCisgICAgRnJhbWVMb2FkZXIq
IGZyYW1lTG9hZGVyKCkgY29uc3Q7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVy
KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQoKTsgfQorCisgICAgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgY29uc3Q7CisgICAgdm9pZCBjbGVhclJlc291cmNl
KCk7CisKKyAgICBib29sIGRlZmVyc0xvYWRpbmcoKSBjb25zdDsKKworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOworCiAgICAgUmVzb3VyY2VS
ZXF1ZXN0IG1faW5pdGlhbFJlcXVlc3Q7CiAgICAgU3Vic3RpdHV0ZURhdGEgbV9zdWJzdGl0dXRl
RGF0YTsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAKICAgICBNYWluUmVzb3Vy
Y2VMb2FkZXJUaW1lciBtX2RhdGFMb2FkVGltZXI7CisgICAgUmVmUHRyPERvY3VtZW50TG9hZGVy
PiBtX2RvY3VtZW50TG9hZGVyOwogCiAgICAgYm9vbCBtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50
OwogICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGVudFBvbGljeTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTM3NjA0KQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUx
LDYgKzI1MSw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXMKICNl
bmRpZgogICAgIH0KICAgICBtX3JlcXVlc3QgPSByZXF1ZXN0OworCisgICAgaWYgKCFyZWRpcmVj
dFJlc3BvbnNlLmlzTnVsbCgpICYmICFtX2RvY3VtZW50TG9hZGVyLT5pc0NvbW1pdHRlZCgpKQor
ICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6
ZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMTM3NjA0KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIFJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VS
TEVycm9yKCk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7
CisgICAgYm9vbCBkZWZlcnNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcnNMb2FkaW5n
OyB9CiAKICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lk
ZW50aWZpZXI7IH0KIApAQCAtMTY3LDcgKzE2OCw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGRp
ZEZpbmlzaExvYWRpbmdPbmVQYXJ0KGRvdWJsZSBmaW5pc2hUaW1lKTsKIAogICAgIGJvb2wgY2Fu
Y2VsbGVkKCkgY29uc3QgeyByZXR1cm4gbV9jYW5jZWxsZWQ7IH0KLSAgICBib29sIGRlZmVyc0xv
YWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyc0xvYWRpbmc7IH0KIAogICAgIFJlZlB0cjxS
ZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CiAgICAgUmVmUHRyPEZyYW1lPiBtX2ZyYW1lOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwCShyZXZpc2lvbiAxMzc2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDMsNyArMTAzLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbAog
ICAgICAgICBpZiAoaXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBt
X21haW5SZXNvdXJjZUFwcGxpY2F0aW9uQ2FjaGUgPSBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmZh
bGxiYWNrQ2FjaGVGb3JNYWluUmVxdWVzdChyZXF1ZXN0LCBkb2N1bWVudExvYWRlcigpKTsKIAot
ICAgICAgICAgICAgaWYgKHNjaGVkdWxlTG9hZEZhbGxiYWNrUmVzb3VyY2VGcm9tQXBwbGljYXRp
b25DYWNoZShkb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VMb2FkZXIoKSwgbV9tYWluUmVz
b3VyY2VBcHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKKyAgICAgICAgICAgIGlmIChzY2hlZHVsZUxv
YWRGYWxsYmFja1Jlc291cmNlRnJvbUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+
bWFpblJlc291cmNlTG9hZGVyKCktPmxvYWRlcigpLCBtX21haW5SZXNvdXJjZUFwcGxpY2F0aW9u
Q2FjaGUuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6Om1heWJl
TG9hZEZhbGwKICAgICAgICAgaWYgKGlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKSkgewogICAg
ICAgICAgICAgbV9tYWluUmVzb3VyY2VBcHBsaWNhdGlvbkNhY2hlID0gQXBwbGljYXRpb25DYWNo
ZUdyb3VwOjpmYWxsYmFja0NhY2hlRm9yTWFpblJlcXVlc3QocmVxdWVzdCwgbV9kb2N1bWVudExv
YWRlcik7CiAKLSAgICAgICAgICAgIGlmIChzY2hlZHVsZUxvYWRGYWxsYmFja1Jlc291cmNlRnJv
bUFwcGxpY2F0aW9uQ2FjaGUoZG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlTG9hZGVyKCks
IG1fbWFpblJlc291cmNlQXBwbGljYXRpb25DYWNoZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAo
c2NoZWR1bGVMb2FkRmFsbGJhY2tSZXNvdXJjZUZyb21BcHBsaWNhdGlvbkNhY2hlKGRvY3VtZW50
TG9hZGVyKCktPm1haW5SZXNvdXJjZUxvYWRlcigpLT5sb2FkZXIoKSwgbV9tYWluUmVzb3VyY2VB
cHBsaWNhdGlvbkNhY2hlLmdldCgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
YXdSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJhd1Jlc291cmNlLmNwcAkocmV2aXNpb24gMTM3NjA0KQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTgsNiArOTgsNyBAQCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjphbGxDbGllbnRzUmVtb3ZlCiAK
IHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogeworICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBwcm90ZWN0KHRoaXMpOwogICAgIGlm
ICghcmVzcG9uc2UuaXNOdWxsKCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxr
ZXI8Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQ+IHcobV9jbGllbnRzKTsKICAgICAgICAgd2hpbGUg
KENhY2hlZFJhd1Jlc291cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDEzNzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwMyw3ICs3MDMsOCBAQCB2b2lkIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpsb2FkRG9uZShDYWNoCiAgICAgUmVmUHRyPERvY3VtZW50PiBw
cm90ZWN0RG9jdW1lbnQobV9kb2N1bWVudCk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVElNSU5H
KQotICAgIGlmIChyZXNvdXJjZSAmJiAhcmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiAhcmVz
b3VyY2UtPndhc0NhbmNlbGVkKCkpIHsKKyAgICAvLyBGSVhNRTogQWRkIHJlc291cmNlIHRpbWlu
ZyBzdXBwb3J0IGZvciBtYWluIHJlc291cmNlcy4KKyAgICBpZiAocmVzb3VyY2UgJiYgcmVzb3Vy
Y2UtPnR5cGUoKSAhPSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlICYmICFyZXNvdXJjZS0+
ZXJyb3JPY2N1cnJlZCgpICYmICFyZXNvdXJjZS0+d2FzQ2FuY2VsZWQoKSkgewogICAgICAgICBI
YXNoTWFwPENhY2hlZFJlc291cmNlKiwgSW5pdGlhdG9ySW5mbz46Oml0ZXJhdG9yIGluaXRpYXRv
ckl0ID0gbV9pbml0aWF0b3JNYXAuZmluZChyZXNvdXJjZSk7CiAgICAgICAgIGlmIChpbml0aWF0
b3JJdCAhPSBtX2luaXRpYXRvck1hcC5lbmQoKSkgewogICAgICAgICAgICAgQVNTRVJUKGRvY3Vt
ZW50KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExvYWRlck1h
Yy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Eb2N1bWVudExv
YWRlck1hYy5jcHAJKHJldmlzaW9uIDEzNzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9t
YWMvRG9jdW1lbnRMb2FkZXJNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw4ICs1NSw4IEBA
IHN0YXRpYyB2b2lkIHVuc2NoZWR1bGVBbGwoY29uc3QgUmVzb3VyY2UKIAogdm9pZCBEb2N1bWVu
dExvYWRlcjo6c2NoZWR1bGUoU2NoZWR1bGVQYWlyKiBwYWlyKQogewotICAgIGlmIChtX21haW5S
ZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+aGFuZGxlKCkpCi0gICAgICAg
IG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKS0+c2NoZWR1bGUocGFpcik7CisgICAgaWYg
KG1fbWFpblJlc291cmNlTG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5sb2FkZXIoKSAm
JiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpKQorICAgICAgICBtX21h
aW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCktPmhhbmRsZSgpLT5zY2hlZHVsZShwYWlyKTsKICAg
ICBzY2hlZHVsZUFsbChtX3N1YnJlc291cmNlTG9hZGVycywgcGFpcik7CiAgICAgc2NoZWR1bGVB
bGwobV9wbHVnSW5TdHJlYW1Mb2FkZXJzLCBwYWlyKTsKICAgICBzY2hlZHVsZUFsbChtX211bHRp
cGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkBAIC02NCw4ICs2NCw4IEBAIHZvaWQgRG9j
dW1lbnRMb2FkZXI6OnNjaGVkdWxlKFNjaGVkdWxlUGEKIAogdm9pZCBEb2N1bWVudExvYWRlcjo6
dW5zY2hlZHVsZShTY2hlZHVsZVBhaXIqIHBhaXIpCiB7Ci0gICAgaWYgKG1fbWFpblJlc291cmNl
TG9hZGVyICYmIG1fbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKSkKLSAgICAgICAgbV9tYWlu
UmVzb3VyY2VMb2FkZXItPmhhbmRsZSgpLT51bnNjaGVkdWxlKHBhaXIpOworICAgIGlmIChtX21h
aW5SZXNvdXJjZUxvYWRlciAmJiBtX21haW5SZXNvdXJjZUxvYWRlci0+bG9hZGVyKCkgJiYgbV9t
YWluUmVzb3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKSkKKyAgICAgICAgbV9tYWluUmVz
b3VyY2VMb2FkZXItPmxvYWRlcigpLT5oYW5kbGUoKS0+dW5zY2hlZHVsZShwYWlyKTsKICAgICB1
bnNjaGVkdWxlQWxsKG1fc3VicmVzb3VyY2VMb2FkZXJzLCBwYWlyKTsKICAgICB1bnNjaGVkdWxl
QWxsKG1fcGx1Z0luU3RyZWFtTG9hZGVycywgcGFpcik7CiAgICAgdW5zY2hlZHVsZUFsbChtX211
bHRpcGFydFN1YnJlc291cmNlTG9hZGVycywgcGFpcik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzc2
MDQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
MCBAQAorMjAxMi0xMi0xMiAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJvdXRlIG1haW4gcmVzb3VyY2UgbG9hZHMgdGhyb3VnaCB0aGUgbWVtb3J5IGNhY2hl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyNDYK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgICog
aHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVj
dC1leHBlY3RlZC50eHQ6IFRoZSBlcnJvciBjb2RlIGZvciBsb2FkcyBjYW5jZWxsZWQKKyAgICAg
ICAgICAgIGJ5IGFuIGVtYmVkZGVyJ3Mgd2lsbFNlbmRSZXF1ZXN0KCkgd2lsbCBzaG93IGFzIHN0
YW5kYXJkIGxvYWQgY2FuY2VsbGF0aW9ucyByYXRoZXIgdGhhbiBhcyBhIGNvbnRlbnQgcG9saWN5
CisgICAgICAgICAgICBmYWlsdXJlLiBUaGlzIHdhcyBhbiBvZGQgcXVpcmsgb2YgaG93IE1haW5S
ZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KCkgd2FzIGltcGxlbWVudGVkIChuYW1lbHks
IGRvaW5nIGEKKyAgICAgICAgICAgIGNvbnRlbnQgcG9saWN5IGNoZWNrIG9uIFJlc291cmNlUmVx
dWVzdHMgd2l0aCBlbXB0eSB1cmxzKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9mYXN0L3JlcGxhY2VkL2JvcmRlci1yYWRpdXMtY2xpcC1jb250ZW50LWVkZ2UtZXhwZWN0ZWQu
cG5nOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvbWlzYy93aWxsLXNl
bmQtcmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QtZXhwZWN0ZWQudHh0OiBUaGUgZXJy
b3IgY29kZSBmb3IgbG9hZHMgY2FuY2VsbGVkCisgICAgICAgICAgICBieSBhbiBlbWJlZGRlcidz
IHdpbGxTZW5kUmVxdWVzdCgpIHdpbGwgc2hvdyBhcyBzdGFuZGFyZCBsb2FkIGNhbmNlbGxhdGlv
bnMgcmF0aGVyIHRoYW4gYXMgYSBjb250ZW50IHBvbGljeQorICAgICAgICAgICAgZmFpbHVyZS4g
VGhpcyB3YXMgYW4gb2RkIHF1aXJrIG9mIGhvdyBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdCgpIHdhcyBpbXBsZW1lbnRlZCAobmFtZWx5LCBkb2luZyBhCisgICAgICAgICAgICBj
b250ZW50IHBvbGljeSBjaGVjayBvbiBSZXNvdXJjZVJlcXVlc3RzIHdpdGggZW1wdHkgdXJscyku
CisKIDIwMTItMTItMTMgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIEV4cG9zZSBBUklBIHJvbGVzIGZvciB0YWIsIHRhYnBhbmVsIGFuZCB0YWJs
aXN0CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3Qt
cmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9u
LXJlZGlyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTM3NjA0KQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVj
dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWQKIDx1bmtub3duPiAtIGRpZEZpbmlzaExvYWRp
bmcKIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRw
LXVybC5waHAgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL3d3dy5l
eGFtcGxlLmNvbS8sIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNj
L3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC5odG1sLCBodHRwIG1l
dGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCwgaHR0cCBzdGF0
dXMgY29kZSAzMDI+CiBSZXR1cm5pbmcgbnVsbCBmb3IgdGhpcyByZWRpcmVjdAotaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRp
ZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21haW4gV2ViS2l0RXJyb3JEb21haW4s
IGNvZGUgMTAyPgoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0
LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiA8TlNFcnJvciBkb21h
aW4gTlNVUkxFcnJvckRvbWFpbiwgY29kZSAtOTk5PgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI3NTk1CiBUaGlzIHRlc3QgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGF0
IHRoaW5ncyBiZWhhdmUgYXMgZXhwZWN0ZWQgd2hlbiB0aGUgcmVzb3VyY2UgbG9hZCBkZWxlZ2F0
ZSByZXR1cm5zIG51bGwgaW4gcmVzcG9uc2UgdG8gd2lsbFNlbmRSZXF1ZXN0LgogCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJl
cXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5k
LXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTM3NjA0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9taXNj
L3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNj
L3Jlc291cmNlcy9yZWQKIDx1bmtub3duPiAtIGRpZEZpbmlzaExvYWRpbmcKIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy9yZWRpcmVjdC10by1odHRwLXVybC5waHAgLSB3aWxs
U2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8sIG1h
aW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3dpbGwtc2VuZC1yZXF1
ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGly
ZWN0UmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVz
b3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCwgaHR0cCBzdGF0dXMgY29kZSAzMDI+CiBS
ZXR1cm5pbmcgbnVsbCBmb3IgdGhpcyByZWRpcmVjdAotaHR0cDovLzEyNy4wLjAuMTo4MDAwL21p
c2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWh0dHAtdXJsLnBocCAtIGRpZEZhaWxMb2FkaW5nV2l0
aEVycm9yOiA8TlNFcnJvciBkb21haW4gV2ViS2l0LCBjb2RlIC0xMDAwMCwgZmFpbGluZyBVUkwg
IihudWxsKSI+CitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3Qt
dG8taHR0cC11cmwucGhwIC0gZGlkRmFpbExvYWRpbmdXaXRoRXJyb3I6IDxOU0Vycm9yIGRvbWFp
biBOU1VSTEVycm9yRG9tYWluLCBjb2RlIC05OTksIGZhaWxpbmcgVVJMICIobnVsbCkiPgogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NTk1CiBUaGlzIHRlc3QgY2hl
Y2tzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaW5ncyBiZWhhdmUgYXMgZXhwZWN0ZWQgd2hlbiB0aGUg
cmVzb3VyY2UgbG9hZCBkZWxlZ2F0ZSByZXR1cm5zIG51bGwgaW4gcmVzcG9uc2UgdG8gd2lsbFNl
bmRSZXF1ZXN0LgogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9m
YXN0L3JlcGxhY2VkL2JvcmRlci1yYWRpdXMtY2xpcC1jb250ZW50LWVkZ2UtZXhwZWN0ZWQucG5n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUu
CnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFB
QUpZQ0FJQUFBQVZGQlVuQUFBQUtYUkZXSFJqYUdWamEzTjFiUUJrTURrNU0yVTMKTkRJek16RTBN
bVE0TVdNMU0yUTNNV1V3WXprMVpqRmlaVUhpSXlZQUFDQUFTVVJCVkhpYzdkMXhiQnZYZ2VmeFIw
ZC9NRGx0T0RhRQpXTWdaRnROTmFqVjJZd250bmdRMEtPVWtDMTMvdU5oeWcxWCt1SVVkcEVDM2FC
Skw5aDZTYm9ERzdoL2J0TGlGeGFMRmJmNEkxdXJ0CmJSMWthMG5aV3lBRzRvcDBiRUJPY3hYVmRU
Y1U0RlNrNDNVcEl6YUhxSXJRQ0syNVA2WlZxWkU0NGxEdmNUaHZ2cC8vU0k2bGwrQ0gKcHg5bjNw
dUpXSllsQUFBQUlNOFd2d2NBQUFDZ0d3b1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktO
Z0FRQUFTRWJCQWdBQQprSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpK
UnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaCkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFE
SktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1cKQUFD
QVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlGbWIzd01J
bnR1M2IzLzY2YWMzYjk0VQpRbVN6V2Z2TmJEWnJtdWJhZzNmdTNIbi8vZmNMSWU2Nzc3NXQyN1ox
ZG5iZWRkZGRiVzM4YjljQlNZQ05KQUJZSzJKWmx0OWphR20zCmI5OHVGb3VsVWltWHk5V2FNYjB5
RE9QTFgvNXlQQjZQeFdKYnRuQVNNUmhJQW13a0FVQTlLRmpyV0ZwYXVubnpaamFiblptWlVmMjcK
OXV6Wjg2VXZmYW16czFQMUwwSURTQUpzSkFHQVZ4U3MzMXRlWHI1eDQ4YUhIMzc0emp2ditES0FK
NTU0NGd0ZitFSTBHdlhsdDJNRgpTWUNOSkFEWWpMQVhMSHNPdlhqeDR1WExsLzBlaXhCQzlQZjNK
eElKcHRUbUl3bXdrUVFBVW9TM1lCV0x4Wi85N0djdE1vYzY5UGYzClAvNzQ0Nng3YlE2U0FCdEpB
Q0JSNkFwV3VWeis0SU1QenA4L0wyVnBxbEpQUC8zMHJsMjcvQjZGdGtnQ2JDUUJnQW9oS2xqRll2
RzkKOTk1cndocFZpUXpEZVBiWlo5dmIyLzBlaUZaSUFtd2tBWUE2b1NoWXhXSnhjbkx5NnRXcmZn
K2tRWHh0bFlVa3dFWVNBS2ltZWNFSworalM2WXMrZVBVTkRROXdncDJFa0FUYVNBS0E1dEMxWVMw
dExiNzc1cHFKcE5CNlBSNlBSenM3T1dDeG1HTWJLKzRaaFZMOFVRcGltCmFacG11VnhlWEZ3c0ZB
cUZRcUhoZFI2R1lYenptOTlrbGF0WEpBRTJrZ0NnbVRRc1dKVks1ZHk1Y3hMWFZSaUcwZDNkSFl2
Rk9qczcKMTA2WFhwbW1tY3ZsNXVmblZ4NnA0V2trektmMUl3bXdrUVFBemFkYndacWZuejk5K3ZU
bWY0NWhHUEY0dkt1ckt4NlBiM0wyck1VMAp6V3cyZStuU0phL2ZYNTkvL3ZsdDI3YXBHSkpPU0FK
c0pBR0FML1FwV0V0TFM2Ky8vdm9tTjFySDQvRzllL2VxbTBEWGxjbGswdW0wCnA1Ry8vUExMZkdl
dGhTVEFSaElBK0VpVGduWHg0c1hOUE03Q01JeSt2cjd1N3U1bXpxRU82WFI2Wm1hbVhDN1hjekRY
QldvaENiQ1IKQkFEK0NuekIyc3lYMUdnMDJ0UFRzM2Z2WHEvUFZWMTQ5NlA4TDI2bUprMnpGTWtz
eEZiZXp5MTE1Q3M3cW8vc2Fyc1diLzg0M3JIVQo4L2s3aWIvWTN2dDB0OHVQTlUzejdObXpkYTdE
TUF6aitlZWZady9SQ2wrU2tMdHdMZi8vUGw0M0NiblZTWWhYSjJHNHMyZlliWTg5ClNkZ01mK2FF
QlN1ZkY2bVVNRTJSeWZ6eC9WeE81UE9SNmlPN3VxeDRYTVRqb3FkSEpCS2l0emZpL0ZsVlNBSVFY
TUV1V0EydnJqQU0KSTVGSTlQVDAxSGw4S3BsSlRacXBqR0hldm52dWs4WnZQeE9MbEFZNnM0Y1Bp
d04vMjFmcm1KbVptYk5uejliejAvYnMyZlBWcjM2MQo0Y0hvcEdsSlNGY2xJYk9KSkJoL1NNSitr
aUJWOCthRWxKVksvYjVSemMyNWxTUjNzWmcxTUNBT0h4WUhEdFQ4SVNRQkNLS2dGcXhLCnBUSTFO
ZFhBVThQcW4wWlhTbFhhckhmT3JWOHNVaHBKekI3NWg1NnQ4WFV1UUJRS2hmSHg4WG91RFF3UEQz
ZDN1NTBWMDE0VGtyQlMKcWxJS2ttRFlTVGpWYTNURjFuNUtFdXJYakRuaEQ2VXFuVzY4VWRVU2kx
a2pJK0xJRWJGMTZ6by9uQ1FBZ1JQSWd0WFlKWUE2cDlISgp2N2swK2Vhbmt4OSt2bVN0OHdkUExw
ZWFWUzZYeDhmSEM0WENoai9rMkxGam9YMXVodElrVFAwaENhYjZKTGpVTEpKUUQ3Vnp3cVExCk9T
a21KMFdwSkw5WE9ialVMSklBQkV2d0NsWStuejkxNnBTbmYySVl4dURnb1B1M3V0blQyZkh2TDU3
SzlEU2hWemwwdFYwN2VlemEKMEt2OWp2ZnJuRThOd3poeTVJaXkwYlV1UlVuSXZERS8vcjNDcVV4
UEUzcVZRN3p0MnNtLy9vOEQzM1ZlTkNRSjdsVE5DYlBXK0xnNApkYW9admNxaHE4czZlVklNRFRY
WXNVS2JCS0NsQkt4Z3pjN092dlhXVzU3K1NYOS9meUtSaUVhajYzNWF6Sm5qUitmRy91VlBIWXZU
Cm0rOUliM3JzRnduSG0zWE9weUc4S0NBOUNXYStORDZhR2Z1WFA4MzVuWVNSM3ZSSmtsQTMrWE5D
MFJvZkYyTmp6c1hwelhma2lEVTIKMW1ESENtRVNnRllUcElMMTA1LysxTk1DaTNnOFBqZzRXR3Mz
VURGbkpwL0pqS1Y3bTMvS3FwYTlkODlQLy90MngrWENjcm1jVENZMwpYSHNScXJ2Z3lFMkNtUzhs
RDgrT3BYdWJmOHFxbHA2NzU2Yy82SFJjTGlRSmEwbWVFNHBXTWluR3hudzRaVlhMM3IzVzlMVHpj
aUZKCkFBSWhHQVhMNi9MVmFEUTZPRGhZYTJuRndyc2ZKWS84MnBlcmdSdnFhcnMyOGIrWEhIZHpL
QlFLcjczMm12cy83Ty92SHh3Y1ZEbTAKbGlBM0Nia0wxNUl2Zk9qTDFjQU54ZHV1VGZ6ajd4eDNj
eUFKS3lUUENRdFdNdW5QMWNBTmRYVlpFeFBPdXptUUJLRDFCYUJnVlNxVgpILzNvUi9Vdlg0M0g0
OFBEdyt1ZS95L216TkUvdnp4KzVWR3BBNVFzRmlsTi85TnZIQjJybm4zYUw3NzRZcTJySG5xUW1B
UXpYeHA5CjR0OU90WFlTakVocCtpY0ZSOGNpQ1VMdW5GQzBSa2ZGK0hqTDlhcHFzWmcxUGUzc1dD
UUJhSEd0ZmtzNnJ6UHB3TURBb1VPSDFwMVQKeGc2bUgvaE1wTVhibFJDaVpNV0cvcks5bUZ2MW45
emYzNy9oaW9wME9xMXlYRDZUbUlUa3dmUURENGdXYjFkQ0NOT0tEZjMzLzJUbQpTOVZ2a2dTWmM4
S1k5Y0FEcmQ2dWhCQ2xVbVJvU0JTTHE3NE1rd1NneGJWMHdmSTBrMGFqMFVPSERpVVN6dFhCUW9q
cGs3TTk5OHlQClRpUmE4SnJndXZLVkhmc2VYblM4T1RnNDZQNWx0UDZuYWdTT3JDU2t4aks5OTh5
UFRDUmE4SnJndW5LVkhmcys1MXpPVEJJa3pBblQKVmsrUE5Ub2FhY0ZyZ3V2SzV5UDc5am5mREhN
U2dOWjMxL0hqeC8wZXcvbzh6YVR4ZVB6Wlo1L3Q2T2h3dkYvTW1kLzRzL2VQL3FSdgpzZUw4cU1V
dFZqcUtVK212L0ZWODVaMW9OSHJuenAxY0x1ZnlyNkxSNk02ZE8xV1ByY21rSk1ITWw3N3haKytQ
L3VTL0ZJS1doRUtsCnc1eEsvMWVTSUd0T0tGcmYrSVk0ZWpTeXVCaU1hclZpY1RGU0xGcGYrY29m
aHgzYUpBQ0IwS0puc0phWGwrdWZTV3RkQXBnK09SdUkKYTRLMS9DQ1RtSGhwcHZxZFJDTGgvdWpa
YytmT0tSNVVzMGxKUW1vc0U0aHJnclVrTTRuSmIxMnFmb2NrdUtzNUowd0g0NXBnTFQvNApRV1Jp
WXRXRndoQW1BUWlLRmkxWUV4TVRkYzZrKy9mdlgvY1N3UEY5cWNlT3R0QXRHQm96K25jN0hJdXgx
djJQclZiUGpaNERaUE5KCk9MRXZ0VyswRmZjSmVqTDZQLyt6WXpFV1NhaWw1cHh3M0hyc3NjQmNF
NnhsZE5TNUdDdHNTUUNDb2hVTFZ2MzN0dG0vZi8vYWZkY0wKNzM3VWM4LzhpZFNBL0pFMVhiNnlZ
K3h3cHZxZG5wNGU5eStzRnk5ZVZEeW81dGxrRW5JWHJ2WGVNMzljaXlUa0tqdkdEczFXdjBNUwox
clgrbkxCZzlmUllKMDRFdTFyWjh2bkkyTmlxZDBLVkJDQkFXcTVnemM3TzFqT1RScVBScjMvOTYy
dG4wb21YWm5vVDk4NTlzbXZkCmZ4VkV5Zk85anBOWWZYM09SNmxVdTN6NTh2THlzdUpCTmNNbWt6
RDVyVXU5WC82VGpGNUpjSnpFSWduVmFzNEpFMVp2cjVpYjA2RmQKMlpKSjUwbXNrQ1FCQ0piV0ts
ajVmTDZlcDE3WW00UFczbzU1N0dENjRQZjZnMzVaMEtGa3hSd25zVGJjbSszMWtiY3RhSk5KU0I1
TQpENzNhRi9UTGdnNm1GWE9jeENJSksyck9DV1BXd1lPQnZ5em9VQ281VDJLRklRbEE0TFJRd1Zw
YVdxcm5pYTIxWnRMREQxMFluZGhnCkxVSkFKYy8zVnI4MERDTWVqN3NjbjgvbjFRNUlzVTBtNFpt
SExveVFCQ0ZFNkpOdytMQTFPcXBWdFZxUlRLNTZxWDBTZ0NCcWxZSlYKcVZSZWYvMzFEUTl6YVZm
QjNTMjRvWklWYzJ3bjNMdDNyOHZ4NTgrZlZ6d2loVGFaaEdjZXVoRGMzWUliTXEyWVl6c2hTWEJw
VjhIZApMYmloVXNtNW5WRGpKQUFCMVNvRmEycHFxcDZUMkd0bjBtTE9ITmlhMGJoZDJVNnQvbFBo
L20zVk5NMUtwYUoyUU1vMG5BUXpYOXEzCk5hTnh1N0k1VHVpUWhIWG1oS0kxTUtCenU3S0ZKd2xB
UUxWRXdjcG1zL1VzWXQyL2YvL2Fkclh2NGNXMHVmNERYSFdTWGx5MXhzSXcKRFBkOVF3R2RUQnRP
Z3BrdjdmdGNJVVVTMWdoYkVvcEZhOTgra1U1cjNxNkVFSTZuNE9pYUJDQzQvQzlZUzB0TGI3enh4
b2FIcmQxOQpiYmNyblRZTXVpaFpzZG5UMmVwMzFsNFRxYmE0Nkh6U1R1dHJPQWwydTlKcHc2QUww
NHBsM3BpdmZvY2tyTERibFU0YkJsMlVTcEhaCjJWVlhDZlZMQWhCby9oZXNlcFpaREF3TXJOMTlQ
ZFNiQzBtN3NxVk9yN3Bib1B0a2V1dldMY1hEa2EveEpQUXNoS1JkMlVpQ3FKV0UKb2JDMEsxc3F0
ZXFsZmtrQUFzM25nblh4NHNVTmwxbkU0L0cxdHlvKy9OQ0ZNRndackpiTHIvckxzWDM3ZHBlRGI5
eTRvWGc0a2pXYwpoR2NldWhDR0s0UFZISStlSXdtMnc0ZXRNRndacktaM0VvQ2c4N05nTFMwdHZm
UE9PKzdIUktQUjRlRmh4NXQ2N3htc0piT3c2cTVPCmE1K3pGbHdOSjBIdlBZTzFrSVIxNWdTdDl3
eldrbGwxZ3p5dGtnQm93TStDVmMrRmdPSGhZY2VzY2ZKQUtvVHRTZ2lSLzExSDlVdjMKeWZUNjll
dUtoeU5UWTBrWUcwcUhzRjBKa3JCMlRqZ1p4bllsaEhEYzNFcW5KQUFhOEsxZ1piUFpEUzhFREF3
TU9QWWVUN3cwYzNScQpRTjJvV2xtK3NxUDZwZnQ2aTZ0WHJ5b2VqalNOSldIeVc1ZEdKL1c4bStp
R2NpU2h5c1NFZGZSb0dOdVZFQ0svZXRtQU5ra0E5T0JQCndhcFVLaHZ1RWxxN3pHTGgzWStlK2Y3
blZJNEx6ZFpZRW5JWHJqM3p2UTJlRFlKZ2FYQk9XTENlZVVibHNBQ2dVZjRVckhQbnpya2YKc1A2
Q215ZHZhdmFjUVRTWWhQLzJzV2JQR1VTRFNYaEdhUGFjUVFEYThLRmdMUzB0emN6TXVCOHpPRGpv
V0Uvd3lrQXFiTnNHdGRkWQpFbzRQcE1LMmJWQjdEYzRKcjRSdTJ5Q0FBUEdoWUwzNTVwdnVCOFRq
Y2NjZGJxWlB6bjRuUGFCd1RQQkRBMGxJaldWT2tBVHROREluClRGdmYrUTd0Q2tEcmFuYkJ1blhy
MW9ackxRY0hCNnRmRm5QbTBMSFBxQndVZk5CQUVzeDhhZWpvQXlvSEJSODBNaWNVcmFFaGxXTUMK
Z0UxcmRzR2FtcHB5UDZDL3Y5K3hGMmJraWNzc3ZkSlBJMGw0L045WWVxV2ZScEl3d3RJckFLMnVx
UVZydzYrcWhtRTRkZ2xObjV6OQo4WWRodk5lUjNocElRbW9zTTA0U3ROUEluREJ0L2ZqSHRDc0Fy
YTZwQld2RHI2cHIxN0dPdm55UHloSEJINDBrNFcvdVZqa2krS09SCkpJeXFIQkFBU05LOGdsWFBW
OVh1N2xVM056cDVJQldxeHptSFJBTkpHQnRLaCtweHppSFJ5Snh3MGdyVjQ1d0JCRmZ6Q3RiUGYv
NXoKOXdNY0Z3S0tPZlBFVzcwcVJ3Ui9lRTJDbVMrZG1PSytEQnJ5UENjVXJSTW5WQTRJQU9ScFVz
RXFsOHZ1OTdreERNT3hEWnUxN1ZwcQpKQW1zYmRkUkkwbGdiVHVBNEdoU3dmcmdndy9jRDFqN1ZC
eld0bXZKYXhKeUY2Nnh0bDFMbnVlRUJkYTJBd2lTSmhXczgrZlB1M3k2CjlxdnEyQXUvVmp3aStN
TnpFcDcvVVBHSTRBL1BTUmhUUENBQWtLb1pCZXZXclZ1bWFib2NzSGIxMWZnY2EyNDA1RFVKWnI1
RUVyVGsKZVU0b1d1UGppc2NFQUZJMW8yQk5UMCs3ZkJxTlJwMWZWUTluV0gybEpjOUpPRFRMNmlz
dGVVN0NHS3V2QUFTTThvSzF2THg4K2ZKbApsd01jTTJreFp5YlBzM2xRUTE2VFlPWkxKRUZMbnVl
RW9wVk1LaDRUQU1pbXZHRGR1SEhEL1lDOWUvZFd2encxd3VrclBUV1FCRTVmCmFjbHpFazV4K2dw
QThDZ3ZXQmN2WG5UNTFEQU14MVBHa3YvNm9PSVJ3Uitlay9CLy8xVHhpT0FQejBuZzlCV0FBRkpi
c0RhOEZ0RFgKMTFmOWN2WjBObC9ab1hSSThJWFhKR1RlbU0rUkJCMTVuaE5tclh5ZTAxY0Fna2R0
d2Ryd1dvRGpPUmludnJlb2NqandqZWNrdkZwUQpPUno0eG5NU1Rpa2NEQUNvbzdaZ1hibHl4ZVhU
ZUR4dUdFYjFPK3pKMXhWSmdNMXpFcmc3QTRCZ1VsdXd6cDA3NS9LcFl5bnJ4RXN6CkxHL1hsYWNr
VEg3ckVzdmJkZVZ0VHBpd1dONE9JS0FVRnF5bHBTWDNBK0x4ZVBYTHlYK3VxQnNNZk9RNUNXOStx
bkEwOEkvbkpFd3EKSEF3QUtLV3dZTjI4ZWRQbFU4TXdITmNDcG43OWVYV0RnWTlJQW15ZWt6Q2xl
RUFBb0l6Q2dwWE5abDArZFh4Vm5UMmQ1ZnFncmp3bApJZlBHUE5jSGRlVnRUcGpsK2lDQUFGTllz
R1ptWmx3KzdlcnFxbjQ1K2Zmc0d0T1d0eVQ4cjk4b0hnNTg0eTBKWEI4RUVHU3FDbGE1ClhIWS93
UEZ0TlpVeGFoeUlZQ01Kc0hsT1FrcmRXQUJBT1ZVRnl6Uk5sMC9YTHJZNFgySmJ2cDY4SmlGTkVq
VGxlVTQ0ei9WQkFBSG0KVDhGeTNFdHcrdVNzb21IQWQ1NlNrQnJMS0I0T2ZPTnRUcGkyRkE4SEFO
UlNWYkR5K2J6THA3SFlxbFhNcWFtU29tSEFkOTZTTU9uMgpOeGlCNWkwSktiV0RBUURWVkJVczkr
MUNqb2U1WnVidlZqUU0rSTRrd09ZdENaektCQkJ3dnEzQnFuNlpMN0d1V1Zza0FUWnZTWEE3CjJ3
VUFBYUNrWUcyNFhjZ3htYzU5c2t2Rk1PQTdyMG5Ja0FSTmVaNFQ1bGpoRGlEWWxCU3NTc1h0b1Rl
T3pkZ0w3MzZrWWd4b0JaNlMKa0x0d1RlMW80Qjl2YzhJQ0s5d0JCSjZTZ3VYK1FJeG9ORnI5TXZm
K3h5ckdnRlpBRW1EemxvU2Myc0VBUUJNb3ZKTjdMWTdWckd3aApEQzFuRXRoQ0dGYk9KS1I4R2dj
QXlLT2tZTGx2RjNMc3h6WjUzSmkrU0FKczNwSkEwd1lRZkQ2Y3dYS3VhMTdneWI0aFJSSmdjeWFC
CmV6UUFDRDRmQ2hZQUFJRGVsQlNzNjlldnEvaXhDQnlTQUJ0SkFCQTJTZ3JXMWF0WFZmeFlCQTVK
Z0kwa0FBZ2IvOWRnNVgvWDBmd3gKb0JXUUJOaTRqVHNBL2JSQXdhcnNhUDRZMEFvY1NjaVJoTEJh
VTdEWVR3b2c4RmprRGdBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQQpBTW1VRkt5ZE8zZTZmR3F1
ZmhER3pydXVxUmdEV29HbkpIU1JCSDE1bXhOMldvcUhBd0RLS1NsWTk5OS92OHVuanNrMDN2Nnhp
akdnCkZaQUUyTHdsSWE1Mk1BRFFCRDVjSWl5WHk5VXY0eDFMelI4RFdnRkpnTTJaaExoUDR3QUFl
WlFVclB2dXU4L2wwOFhGeGVxWFBYc3EKS3NhQVZ1QXRDWisvbzNnNDhJMjNKUFFvSGcwQXFLZWtZ
RzNidHMzbDAwS2hVUDF5NE9sT0ZXTkFLeUFKc0hsTHdvRGF3UUJBRXlncApXTnUzYjNmNTFER1o5
ajdkZmE4b3FSZ0dmT2NwQ1QzRHUySWtRVlBlNW9UZXlMMzNzczRkUUxBcEtWaHRiVzB1bjVxbTZW
alRPdENaClZURU0rSTRrd09ZNUNRTnF4d01BcXFrcVdMRll6T1dBWEM1WC9mTHdJYjZ0NnNsekVn
NHJIUTU4UXhJQWhJMnFYWVJmL09JWFhUNmQKbjUrdmZqbjBhajlYQ1hYbEtRa0h2dHZIVlVKZGVa
c1RocmhLQ0NEWVZCV3NoeDkrMk9YVGJEYnJ1Q0l3a3BoVk5CTDRpeVRBNWprSgpJNG9IQkFBcXFT
cFlobUc0SDVETnJscHRNM0txaDVOWVd2S2NoUEZlVG1KcHlYTVNSZ1Fuc1FBRWw2cUN0V1hMbHQy
N2Q3c2NjT25TCnBlcVhXK01HcHk2MDVEVUpSbGVNSkdqSjg1eXdOY0pKTEFEQnBmQk83bzgrK3Fq
THA2WnBaaktaNm5kR1R2WHdYRUl0ZVU3Q2VDL1AKSmRTUzV5U004RnhDQUVHbHNHQjFkbTV3Mzho
ME9sMzljbXZjR1B0ci9xeHF5R3NTaks3WTJQLzRENVVqZ2o4OHp3bGJJMk5qS2djRQpBTXFvZlJi
aDQ0OC83dktwYVpvek16UFY3d3k5MnY5Q1Q3clc4UWd1cjBrNDhOMitJeVJCUjU3bmhLSElDeTl3
RWd0QThLZ3RXTzRiCnM0VVE2WFRhc1hVb09adDRKRHBmNjNnRVZBTkpHSnRON0NVSjJtbGtUa2hH
SG5tRWpnVWdZTlFXckdnMDJ0L2Y3M0pBdVZ3K2UvYXMKNDgzVUI5dFpqS1daQnBPUTdXUXhsbVlh
VEVLS3hWZ0FBa1p0d1JKQ0pCSUo5d095MmF6am9zRFd1REg1ajB2Y3RVRXpEU1RCNklwTgovcC9m
Y2RjR3pUUXlKMnlOVEU1eTF3WUFRYUs4WUczNGhWVUljZmJzMmJWUGdFNzk1RGVjeDlKSlkwbm9H
ZDZWT2wzZ1BKWk9HcHdUCmVpT2N4d0lRSU1vTGxxampDNnNRWW54OHZGd3VWNy9UKzNSMzVrbzc2
N0YwMGxnU2VvWjNaVDc4RTlaajZhVEJPYUUza3NrSTFtTUIKQ0lSbUZLeG9ORG84UE94K1RMbGNY
anVmYm8wYmM1L3NZbCtoTmhwT2d0RVZ5M3l5aTMyRjJtaDhUdGdhbVp0alh5R0FBR2hHd1JKQwpk
SGQzeDJJeDkyTUtoY0xhK1ZRSWtaeE5uSGx4aHN1RmV0aE1Fc1ptRXhNdlhlSnlvUjQyTlNja0ky
Zk9XRnd1Qk5ES21sU3doQkJmCis5clhOanltMW53NjlHcC81a3I3dHhNcFZyNXJZRE5KT1BEZHZz
eUhmL0pLSXNYS2R3MXNhazRZaW1ReTR0dmZ0bGo1RHFBMU5hOWcKdGJlM2IzaFJRQWhSS0JTU3lh
UmpmYXNRWW12Y09KRWF5QzFZMUt5ZzIyUVNqSzdZOGRSQUxpZW9XVUczMlRsaGErVEVpVWd1Ujgw
QwowSXFhVjdDRUVOM2QzZTVQZTdXVnkrWFhYbnZOOGVSWG0xMnpTbGJzeklzelQzWmVvbWtGMU9h
VFlOY3MwNHBOdkhScGYrY2xtbFpBClNaZ1R0a1pPbklpVVNwRXpaNndubjZScEFXZ1ZiVTMrZlFj
UEhyeDI3VnFwdFBHZnc3ZmZmanVYeXcwT0RocUdzZmJUb1ZmN2gxNFYKUW9qWjA5blU2VUl1SDhr
c3hISkxIVmZ2N0pBK1pxZ2dLd2tIdnR0MzRMdENDSkY1WXo1MXVwRExDVHNKZVpJUUVOTG1oS0hJ
MEpBUQpRc3pPV3FtVXlPVkVKaU55T1hIMWFrVDZtQUZnUXhITGF2WVh2a3FsOHNNZi9yQ2UrVlFJ
RVkxR0J3WUcrdnI2Vkk4cWlFNmNPT0h5CjZTdXZ2Tkswa1RTR0pNaENFbUFMZWhJQW5UVDFFcUd0
cmEzdHVlZWVxL1BnY3JuODl0dHZKNVBKdWJrNXBhTkM4NUVFMkVnQ0FQM2MKZGZ6NDhlYi8xaTFi
dGp6eXlDUHZ2ZmRlbmNlWHkrVnNOanMzTnhlSlJOcmIyNlBScU5MaEJVVTY3WFpmcUlHQmdXWU5w
SEVrUVFxUwpRQkpzR2lRQjBJWS9CVXNJY2ZmZGR6LzY2S08vL09VdmI5KytYZWMvS1pmTFY2NWN1
WFRwMHVMaTRwMDdkNkxSYU1oblZUMG1VNUt3CmVTU0JKTmowU0FLZ2gyWXZjbC8xdTl2YW5udnV1
ZnJYWHF6SVpyUFpiRllJWVJoRzV4OUVvOUZZTExidTZsZTBPSklBRzBrQW9BMGYKRnJrN0xDOHZu
emx6NWxlLytwVy93OUJQNEJhMGtnUkZTQUpzZ1VzQ0VHZytMSEozam1ETGxxZWVlcXFlK3cxQ2J5
UUJOcElBUUFQKwpGeXhiZDNmM3NXUEhObncyR2JSSEVtQWpDUUFDclZVS2xoQ2l2YjE5WkdTRXI2
MVMxSE4zN0paRkVpUWlDYkFGT2dsQUVQbTJpN0NXCmpvNk8vdjcrTzNmdVhMdDJ6ZSt4Qk5oamp6
M1cwZEhoOXlnMmhTUklRUkpnMHlBSlFMQzBYTUVTUXJTMXRUMzQ0SU5NcVp0eDhPREIKU0NUd1R3
Z2hDWnRIRW1EVEl3bEFnUGkvaTlCZHVWeCsvLzMzejUwNzUvZEFnbVI0ZUxpN3U5dnZVVWhHRWhw
QUVtRFRNZ2xBaTJ2MQpncldpVUNoY3VIQ0JuZHNiMnIxNzkxTlBQZVgzS0JRaUNYVWlDYkJwbndT
Z05RV21ZTm1XbDVkTjA4em44K2wwMnV1dENNTWdQTjlUClNZSTdrZ0JiZUpJQXRKcUFGYXhxdDI3
ZCt1MXZmMnZmdnRsMi9mcjFxMWV2K2pna3YremV2WHZQbmoyZi9leG50Mnhwb1cyaFRVTVMKVnBB
RWttQUxlUktBVmhEZ2dnVUFBTkNhK0hJREFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZ
QUFBQWtsR3dBQUFBSktOZwpBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FV
TEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBCkFKQ01nZ1VBQUNBWkJRc0FBRUF5
Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWcK
R1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFr
SXlDQlFBQUlCa0ZDd0FBUURJSwpGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFB
RWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBCkFBREpLRmdBQUFDU1ViQUFB
QUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnV1p2ZkF3aWUyN2R2Zi9ycHB6ZHYzaFJDWkxOWis4
MXMKTm11YTV0cURkKzdjZWYvOTl3c2g3cnZ2dm0zYnRuVjJkdDUxMTExdGJmeHYxd0ZKZ0kwa0FG
Z3JZbG1XMzJOb2FiZHYzeTRXaTZWUwpLWmZMMVpveHZUSU00OHRmL25JOEhvL0ZZbHUyY0JJeEdF
Z0NiQ1FCUUQwb1dPdFlXbHE2ZWZObU5wdWRtWmxSL2J2MjdObnpwUzk5CnFiT3pVL1V2UWdOSUFt
d2tBWUJYRkt6ZlcxNWV2bkhqeG9jZmZ2ak9PKy80TW9Bbm5uamlDMS80UWpRYTllVzNZd1ZKZ0kw
a0FOaU0Kc0Jjc2V3NjllUEhpNWN1WC9SNkxFRUwwOS9jbkVnbW0xT1lqQ2JDUkJBQlNoTGRnRll2
Rm4vM3NaeTB5aHpyMDkvYy8vdmpqckh0dApEcElBRzBrQUlGSG9DbGE1WFA3Z2d3L09uejh2Wldt
cVVrOC8vZlN1WGJ2OEhvVzJTQUpzSkFHQUNpRXFXTVZpOGIzMzNtdkNHbFdKCkRNTjQ5dGxuMjl2
Yi9SNklWa2dDYkNRQmdEcWhLRmpGWW5GeWN2THExYXQrRDZSQmZHMlZoU1RBUmhJQXFLWjV3UXI2
TkxwaXo1NDkKUTBORDNDQ25ZU1FCTnBJQW9EbTBMVmhMUzB0dnZ2bW1vbWswSG85SG85SE96czVZ
TEdZWXhzcjdobUZVdnhSQ21LWnBtbWE1WEY1YwpYQ3dVQ29WQ29lRjFIb1poZlBPYjMyU1ZxMWNr
QVRhU0FLQ1pOQ3hZbFVybDNMbHpFdGRWR0liUjNkMGRpOFU2T3p2WFRwZGVtYWFaCnkrWG01K2RY
SHFuaGFTVE1wL1VqQ2JDUkJBRE5wMXZCbXArZlAzMzY5T1ovam1FWThYaThxNnNySG85dmN2YXN4
VFROYkRaNzZkSWwKcjk5Zm4zLysrVzNidHFrWWtrNUlBbXdrQVlBdjlDbFlTMHRMcjcvKytpWTNX
c2ZqOGIxNzk2cWJRTmVWeVdUUzZiU25rYi84OHN0OApaNjJGSk1CR0VnRDRTSk9DZGZIaXhjMDh6
c0l3akw2K3Z1N3U3bWJPb1E3cGRIcG1acVpjTHRkek1OY0ZhaUVKc0pFRUFQNEtmTUhhCnpKZlVh
RFRhMDlPemQrOWVyODlWWFZpdzhubVJTZ25URkpuTUg5L1A1VVErSDZrK3Nxdkxpc2RGUEM1NmVr
UWlJWHA3STg2ZlZjVTAKemJObno5YTVEc013ak9lZmY1NDlSQ3Y4U2NLN0grVi9jVE0xYVpxbFNH
WWh0dkorYnFralg5bFJmV1JYMjdWNCs4ZnhqcVdlejk5SgovTVgyM3FlN1hYNHNTZGdNa3VCcDVB
QVVDWGJCYW5oMWhXRVlpVVNpcDZlbnp1TlRLU3VWK24yam1wdHpLMG51WWpGcllFQWNQaXdPCkhL
ajVRMlptWnM2ZVBWdlBUOXV6Wjg5WHYvclZoZ2VqaytZbElabEpUWnFwakdIZXZudnVrOFp2UkJT
TGxBWTZzNGNQaXdOLzIxZnIKR0pMUUFKSkFFb0FXRWRTQ1ZhbFVwcWFtR25ocVdQM1Q2RXFwU3Fj
YmIxUzF4R0xXeUlnNGNrUnMzYnJPRHk4VUN1UGo0L1ZjR2hnZQpIdTd1ZHZzR3JMMW1KT0VQZjBy
VFpyMS9mZXNYaTVSR0VyTkgvcUZuYTN5ZFMxRWtvWDRrd1VZU2dCWVJ5SUxWMkNXQU9xZlJ5VWxy
CmNsSk1Ub3BTU1g2dmNuQ3BXZVZ5ZVh4OHZGQW9iUGhEamgwN0Z0cm5acWhOd3Q5Y21uenowOGtQ
UDEreVl1NUhicDdMSDFlU1VBK1MKVUMzTVNRQmFSL0FLVmo2ZlAzWHFsS2QvWWhqR3dxY2U5d0FB
R0RoSlJFRlU0T0NnKzdlNjJWbHJmRnljT3RXTVh1WFExV1dkUENtRwpoaHJzV0laaEhEbHlSTm5v
V3BlcUpKek9qbjkvOFZTbXB3bC9UUjI2MnE2ZFBIWnQ2TlYreC9za3dSMUpjQWh0RW9DV0VyQ0NO
VHM3Cis5WmJiM242Si8zOS9ZbEVJaHFOcnZ0cHNXaU5qNHV4TWVmaTlPWTdjc1FhRzJ1d1k0WHdv
b0Q4Sk9UTThhTnpZLy95cDQ0bHljMTMKcERjOTlvdUU0MDJTVUF0SldGY0lrd0MwbWlBVnJKLys5
S2VlRmxqRTQvSEJ3Y0ZhdTRHS1JTdVpGR05qUHB5eXFtWHZYbXQ2Mm5tNQpzRnd1SjVQSkRkZGVo
T291T0pLVGtET1R6MlRHMHIzTlAxRlJ5OTY3NTZmL2ZidmpJaEZKV0lza3VBaFZFb0FXRkl5QzVY
WDVhalFhCkhSd2NyTFcwWW1IQlNpYjl1UnE0b2E0dWEyTENlVGVIUXFIdzJtdXZ1Zi9EL3Y3K3dj
RkJsVU5yQ1pLVDhPNUh5U08vOXVVYTBJYTYKMnE1Ti9POGx4eDUra3JDQ0pKQUVvTVVGb0dCVktw
VWYvZWhIOVM5ZmpjZmp3OFBENjU3L0x4YXQwVkV4UHQ1eXZhcGFMR1pOVHpzNwpWajM3dEY5ODhj
VmFWejMwSURNSk9YUDB6eStQWDNsVTZnQWxpMFZLMC8vMEc4ZGZWcElnU0lJUWdpUUFMYS9WYjBu
bmRTWWRHQmc0CmRPalF1blBLMkpqMXdBT3QzcTZFRUtWU1pHaElGSXVyaW05L2YvK0dLeXJTNmJU
S2NmbE1aaElPcGgvNFRLVEYvNllLSVVwV2JPZ3YKMjR1NVZmL0pKSUVrMkVnQzBPSmF1bUI1bWtt
ajBlaWhRNGNTQ2VlYVVDSEU5TFRWMDJPTmprWmE4SnJndXZMNXlMNTl6amNIQndmZAp2NHpXLzFT
TndKR1doSk96UGZmTWowNGtXdkJLMExyeWxSMzdIbDUwdkVrU1NJSXR6RWtBV3Q5ZHg0OGY5M3NN
Ni9NMGs4Ymo4V2VmCmZiYWpvOFB4ZnJGb2ZlTWI0dWpSeU9KaU1LclZpc1hGU0xGb2ZlVXJmeHgy
TkJxOWMrZE9McGR6K1ZmUmFIVG56cDNLQjlkY2NwS1EKTTcveForOGYvVW5mWXNYNVVZdGJySFFV
cDlKZithdjR5anNrb1o2RFNjTEtNZm9sQVFpRUZqMkR0Ynk4WFA5TVd1c1N3UFIwTUs0SgoxdktE
SDBRbUpsWmRLRXdrRXU2UG5qMTM3cHppUVRXYm5DU2NuQTNFbGFCYWZwQkpUTHcwVS8wT1NYQkhF
bGJvbHdRZ0tGcTBZRTFNClROUTVrKzdmdjMvZFN3REhqMXVQUFJhWWE0SzFqSTQ2RjJPdCt4OWJy
WjRiUFFlSWhDVHNTejEydElVMjNqZG05TzkyT0piZ2tJUmEKU0lLRFpra0FncUlWQzFiOTk3Ylp2
My8vMm4zWEN3dFdUNDkxNGtTd3E1VXRuNCtNamExNnA2ZW54LzBMNjhXTEY5V09xWWsybTRSMwpQ
K3E1Wi81RWFrRCt5Sm91WDlreGRqaFQvUTVKV0JkSldFdW5KQUFCMG5JRmEzWjJ0cDZaTkJxTmZ2
M3JYMTg3azA1TVdMMjlZbTVPCmgzWmxTeWFkSjdINit2cGNqcjk4K2ZMeThyTGlRVFhEWnBQdzBr
eHY0dDY1VDNhcEdaMFBrdWQ3SGFjdVNFSTFrbENMTmtrQWdxVzEKQ2xZK242L25xUmYyNXFDMXQy
TWVHN01PSGd6OFpVR0hVc2w1RW12RHZkbGVIM25iZ2phYmhJUHBnOS9yRC9yRklJZVNGWE9jdWlB
SgpLMGlDK3ovUklBbEE0TFJRd1ZwYVdxcm5pYTIxWnRMRGg2M1JVYTJxMVlwa2N0Vkx3ekRpOGJq
TDhmbDhYdWw0Vk50c0VoNjZNRHF4CndhcVVnRXFlNzYxK1NSSnNKRUg3SkFCQjFDb0ZxMUtwdlA3
NjZ4c2U1dEt1Z3J0YmNFT2xrbk03NGQ2OWUxMk9QMy8rdk9JUktiVFoKSkR4MEliaDd4RFpVc21L
T1RXUWtnU1RZTkU0Q0VGQ3RVckNtcHFicU9ZbTlkaVl0RnEyQkFaM2JsYzN4TmQ3OTI2cHBtcFZL
UmVWdwpGR284Q1RsellHdEc0NytwdGxPcm8wNFNTSUpONHlRQUFkVVNCU3ViemRhemlIWC8vdjFy
MjlXK2ZTS2QxcnhkQ1NFY1Q3d3dETU45CjMxQkFKOVBHazVBejl6MjhtRGJYZjVTdlR0S0xxMWJi
a0FTU1lOTTFDVUJ3K1Yrd2xwYVczbmpqalEwUFc3djcybTVYT20wWWRGRXEKUldablYxMGxYSHRO
cE5yaW92T3BHcTJ2OFNUa3pIMFBMK3EwVGN4RnlZck5uczVXdjBNU1ZwQUVsK09EbUFRZzBQd3ZX
UFVzc3hnWQpHRmk3KzNwb0tDenR5cFpLclhycFBwbmV1blZMNldCVWFEd0p2Ym1RL0UyMXBVNnZ1
bThrU1ZoQkVsd09EbUlTZ0VEenVXQmR2SGh4CncyVVc4WGg4N2EyS0R4KzJ3bkJsc0pyamdXUGJ0
MjkzT2ZqR2pSdEtCeU5kNDBsNDZFSVlyZ2RWeStWWEpaOGsyRWlDWmtrQWdzN1AKZ3JXMHRQVE9P
Kys0SHhPTlJvZUhoeDF2NnIxbnNKYk1xaHZmaUxYUFdRdXV4cE9nOVU2eFdqSUxxKzdxUkJJRVNS
QkM2SlVFUUFOKwpGcXg2TGdRTUR3ODdabzJUSjhQWXJvUVFqaHZadUUrbTE2OWZWenNhcVJwTXdv
RlVDUCttQ2lIeXYrdW9ma2tTU0lKTnB5UUFHdkN0CllHV3oyUTB2QkF3TUREajJIazlNV0VlUGhy
RmRDU0h5cXk4SHVLKzN1SHIxcXVMaFNOTmdFbDZhT1RvMW9HNVVyU3hmMlZIOWtpU1EKQkpzMlNR
RDA0RS9CcWxRcUcrNFNXcnZNWW1IQmV1WVpsY05DMHpXWWhIYy9ldWI3bjFNNUxqUWJTUUNnR1g4
SzFybHo1OXdQV0hlWgp4VFBQQ00yZU00Z0drL0RrVGMyZUxnZVNBRUF6UGhTc3BhV2xtWmtaOTJN
R0J3Y2Q2d2xlZVNWMDJ3YTExMkFTQmxKaDJ5eW1QWklBClFEOCtGS3czMzN6VC9ZQjRQTzY0dzgz
MHRQV2Q3OUN1ZE5OSUVrN09maWM5b0hCTThBTkpBS0NmWmhlc1c3ZHViYmpXY25Cd3NQcGwKc1dn
TkRha2NFL3pRU0JKeTV0Q3h6NmdjRkh4QUVnQm9xZGtGYTJwcXl2MkEvdjUreDE2WWtSR1dYbW1v
a1NROGNaa0ZOL29oQ1FDMAoxTlNDdGVGWFZjTXdITHVFcHFldEgvK1lkcVdiUnBKd2N2YkhINGJ4
WGtkNkl3a0FkTlhVZ3JYaFY5VzE2MWhIUjFVT0NENXBKQWt2CjM2TnlSUEFIU1FDZ3ErWVZySHEr
cW5aM2QxZS9jL0trRmFySE9ZZEVJMGs0a0FyVlEzeERnaVFBMEZqekN0YlBmLzV6OXdNY0Z3S0sK
UmV2RUNaVURnazg4SnlGbm5uaXJWK1dJNEErU0FFQmpUU3BZNVhMWi9UNDNobUU0dG1HenRsMUxq
U1NCRmMwNklna0E5TmFrZ3ZYQgpCeCs0SDdEMnFUaXNiZGVTNXlTOCt4RXJtclZFRWdEb3JVa0Y2
L3o1OHk2ZnJ2MnFPamFtZUVEd2llY2t2UEJyeFNPQ1AwZ0NBTDAxCm8yRGR1blhMTkUyWEE5YXV2
aG9mVnp3bStNRnpFbkxtK0J6UFF0RVFTUUNndldZVXJPbnBhWmRQbzlIbzJ0TlhyTDdTa3Vja0hN
NncKNWtaTEpBR0E5cFFYck9YbDVjdVhMN3NjNEpoSmkwVXJtVlE4SnZqQmN4Snladkk4VzhZMFJC
SUFoSUh5Z25YanhnMzNBL2J1M1Z2OQo4dFFwVGwvcHlYTVNSamhwb1NlU0FDQU1sQmVzaXhjdnVu
eHFHSWJqS1dPY3Z0S1Y1eVQ4NjRPS1J3Ui9rQVFBWWFDMllHMTRMYUN2CnI2LzY1ZXlzbGM5eitr
cERucE53T3B1djdGQThLUGlBSkFBSUNiVUZhOE5yQVk3bllKdzZwWEF3OEpIbkpIeHZVZVZ3NEJ1
U0FDQWsKMUJhc0sxZXV1SHdhajhjTnc2aCtoN3N6Nk1wekV0aVRyeW1TQUNBazFCYXNjK2ZPdVh6
cVdNbzZNV0d4dkYxWDNwTHcwZ3lMbW5WRgpFZ0NFaE1LQ3RiUzA1SDVBUEI2dmZqazVxVzRzOEpQ
bkpQeHpSZUZvNEIrU0FDQThGQmFzbXpkdnVueHFHSWJqV3NEVWxMcXh3RStlCmsvRHJ6eXNlRWZ4
QkVnQ0VoOEtDbGMxbVhUNTFmRldkbmVYNm9MYThKZUYwbHF0Q3VpSUpBTUpEWWNHYW1abHgrYlNy
cTZ2NkpkY0gKTmVZdENYOWZVRHdjK0lZa0FBZ1BWUVdyWEM2N0grRDR0cHBLS1JvSWZPWTVDUm1q
eG9FSU5wSUFJRlJVRlN6VE5GMCtYYnZZNHZ4NQpyZy9xeVhNU1NtekwxeE5KQUJBcS9oUXN4NzBF
cDZjdFJjT0E3N3dsNGVTczR1SEFOeVFCUUtpb0tsajVmTjdsMDFoczFkcFZyZzlxCnpGc1Nwa3FL
aHdQZmtBUUFvYUtxWUxsdkYzSTh6RFdUVVRRSytNOWJFdWJ2Vmp3YytJWWtBQWdWMzlaZ1ZiOTAv
V2FMWVBPV2hCTHIKbXJWRkVnQ0VpcEtDdGVGMkljZGtPamZIQ25jOWVVN0NKN3RVRGdlK0lRa0F3
a1pKd2FwVTNCNXc0ZGlNdmJEQUNuZHRlVXZDdXgrcApIUTM4UXhJQWhJMlNndVgrUUl4b05GcjlN
cGRUTVFTMEJHOUplUDlqeGNPQmIwZ0NnTEJSZUNmM1doeXJXZGxDR0ZyT0pMQnhMS3hJCkFnRDlL
Q2xZN3R1RkhQdXhYVmUrSXRpOEpZR0hVZXFMSkFBSUd4L09ZRGxXczNLUGh0QnlKbUdCSi91R0ZF
a0FvQjhmQ2hZQUFJRGUKbEJTczY5ZXZxL2l4Q0J5U0FCdEpBQkEyU2dyVzFhdFhWZnhZQkE1SmdJ
MGtBQWdiLzlkZ2NSdjMwSEltNFhjZGZvMEUvaUlKQVBUVApDZ1dMSFVNaDVVeENaWWRmSTRHL1NB
SUEvYkRJSFFBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSXBLVmc3ZCs1MCtkUmMvWENjCm5U
c3RGV05BSy9DV2hMdXVLUjRPZkVNU0FJU05rb0oxLy8zM3UzenFtRXpqY1JWRFFFdndsb1QyanhV
UEI3NGhDUURDeG9kTGhPVnkKdWZvbEJTdTBuRW5vV1BKckpQQVhTUUNnSHlVRjY3Nzc3blA1ZEhG
eHNmcGxUNCtLSWFBbGVFdkNub3JpNGNBM0pBRkEyQ2dwV051MgpiWFA1dEZBb1ZMOGNHRkF4QkxR
RWIwbDR1bFB4Y09BYmtnQWdiSlFVck8zYnQ3dDg2cGhNZTNzajk5N0xPbmM5ZVV2QzA5MzNpcExp
CkVjRWZKQUZBMkNncFdHMXRiUzZmbXFicFdOUEtTU3hkZVU1Q1oxYnhpT0FQa2dBZ2JGUVZyRmdz
NW5KQUxwZXJmbm40c0lwUndIK2UKazNDSWM1bDZJZ2tBd2tiVkxzSXZmdkdMTHAvT3o4OVh2eHdh
NGlxaHRyd2w0ZFYrcmczcGlpUUFDQlZWQmV2aGh4OTIrVFNielRxdQpDSXlNS0JvSWZPWTVDWWxa
eFNPQ1AwZ0NnRkJSVmJBTXczQS9JSnRkdGNaaVpFUndFa3RMbnBOd3FvZFRGMW9pQ1FCQ1JWWEIy
ckpsCnkrN2R1MTBPdUhUcFV2WExyVnNqbk1UU2t1Y2t4QTFPWFdpSkpBQUlGWVYzY24vMDBVZGRQ
alZOTTVQSlZMOHpNc0p6Q2ZYa09RbW4KZW5nYW5aWklBb0R3VUZpd09qczN1RnRnT3AydWZybDFh
MlJzVE4xdzRCdlBTWWdiWTMvTm4xVU5rUVFBNGFIMldZU1BQLzY0eTZlbQphYzdNekZTL016UVVl
ZUVGVG1KcHlITVNYdTEvb1NkZDYzZ0VGMGtBRUJKcUM1Yjd4bXdoUkRxZGRtd2RTaVlqanp4Q3g5
Sk5JMG1ZClRUd1NuYTkxUEFLS0pBQUlDYlVGS3hxTjl2ZjN1eHhRTHBmUG5qM3JlRE9WWWpHV2Jo
cE13Z2ZiV1lLakdaSUFJQ1RVRml3aFJDS1IKY0Q4Z204MDZMZ3BzM1JxWm5PU3VEYnBwSkFseFkv
SWZsOWlycnhtU0FDQU1sQmVzRGIrd0NpSE9uajI3OWduUW5NZlNUSU5KZUxvNwo5WlBmY1BaQ0p5
UUJRQmdvTDFpaWppK3NRb2p4OGZGeXVWejlUbTl2SkpNUnJNZlNTWU5KZUxvN2M2V2RWVGc2SVFr
QXROZU1naFdOClJvZUhoOTJQS1pmTGErZlRyVnNqYzNQc0s5Ukg0MG1JRzNPZjdHSTNtVFpJQWdE
dE5hTmdDU0c2dTd0anNaajdNWVZDWWUxOEtvUkkKSmlObnpsaGNMdFREcHBJd216ano0Z3dYaWZS
QUVnRG9yVWtGU3dqeHRhOTliY05qYXMyblEwT1JURVo4KzlzV0s5ODFzS2trdk5xZgp1ZEwrN1VT
SzljNGFJQWtBTk5hOGd0WGUzcjdoUlFFaFJLRlFTQ2FUanZXdFFvaXRXeU1uVGtSeU9XcFc0RzAy
Q1hIalJHb2d0MkR4Cnh6WG9TQUlBalRXdllBa2h1cnU3M1ovMmFpdVh5Nis5OXByanlhODJ1MmFW
U3BFelo2d25uNlJwQlpXRUpNU05FNm1Ca2hVNzgrTE0KazUyWCtQc2FVQ1FCZ0s3YW12ejdEaDQ4
ZU8zYXRWSnA0MG53N2JmZnp1VnlnNE9EaG1Hcy9YUm9LREkwSklRUXM3TldLaVZ5T1pISgppRnhP
WEwwYWtUNW1xQ0F0Q2EvMkQ3MHFoQkN6cDdPcDA0VmNQcEpaaU9XV09xN2UyU0Y5ekZDQkpBRFFV
c1N5bW4wU3FGS3AvUENIClA2eG5QaFZDUktQUmdZR0J2cjQrMWFNS29oTW5Ucmg4K3NvcnJ6UnRK
STBoQ2JLUUJOaUNuZ1JBSjAyOVJHaHJhMnQ3N3JubjZqeTQKWEM2Ly9mYmJ5V1J5Ym01TzZhalFm
Q1FCTnBJQVFEOTNIVDkrdlBtL2RjdVdMWTg4OHNoNzc3MVg1L0hsY2ptYnpjN056VVVpa2ZiMgo5
bWcwcW5SNFFaRk91OTBOYUdCZ29Ga0RhUnhKa0lJa2tBU2JCa2tBdE9GUHdSSkMzSDMzM1k4Kyt1
Z3ZmL25MMjdkdjEvbFB5dVh5CmxTdFhMbDI2dExpNGVPZk9uV2cwR3ZKWlZZL0psQ1JzSGtrZ0NU
WTlrZ0Rvb2RtTDNGZjk3cmEyNTU1N3J2NjFGeXV5Mld3Mm14VkMKR0liUitRZlJhRFFXaTYyNyto
VXRqaVRBUmhJQWFNT0hSZTRPeTh2TFo4NmMrZFd2ZnVYdk1QUVR1QVd0SkVFUmtnQmI0SklBQkpv
UAppOXlkSTlpeTVhbW5ucXJuZm9QUUcwbUFqU1FBMElEL0JjdlczZDE5N05peERaOU5CdTJSQk5o
SUFvQkFhNVdDSllSb2IyOGZHUm5oCmE2c1U5ZHdkdTJXUkJJbElBbXlCVGdJUVJMN3RJcXlsbzZP
anY3Ly96cDA3MTY1ZDgzc3NBZmJZWTQ5MWRIVDRQWXBOSVFsU2tBVFkKTkVnQ0VDd3RWN0NFRUcx
dGJROCsrQ0JUNm1ZY1BIZ3dFZ244VTROSXd1YVJCTmowU0FJUUlQN3ZJblJYTHBmZmYvLzljK2ZP
K1QyUQpJQmtlSHU3dTd2WjdGSktSaEFhUUJOaTBUQUxRNGxxOVlLMG9GQW9YTGx4ZzUvYUdkdS9l
L2RSVFQvazlDb1ZJUXAxSUFtemFKd0ZvClRZRXBXTGJsNVdYVE5QUDVmRHFkOW5vcndqQUl6L2RV
a3VDT0pNQVduaVFBclNaZ0JhdmFyVnUzZnZ2YjM5cTNiN1pkdjM3OTZ0V3IKUGc3Skw3dDM3OTZ6
Wjg5blAvdlpMVnRhYUZ0bzA1Q0VGU1NCSk5oQ25nU2dGUVM0WUFFQUFMUW12dHdBQUFCSVJzRUNB
QUNRaklJRgpBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdB
UUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBClFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJz
QUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmsKRkN3QUFBREpL
RmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJSUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpC
UXNBQUFBeVNoWQpBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFE
SUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBCkFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFD
QVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQkkKUnNFQ0FB
Q1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQXlTaFlBQUFBa2xHd0FBQUFKS05nQVFB
QVNFYkJBZ0FBa0l5QwpCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FB
QUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBCkFFQXlDaFlBQUlCa0ZDd0FBQURKS0Zn
QUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0EKWkJR
c0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQWtJeUNCUUFBSUJrRkN3QUFRRElL
RmdBQWdHUVVMQUFBQU1rbwpXQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0Fa
QlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBCkFBQWtvMkFCQUFCSVJzRUNBQUNR
aklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUEK
U0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQUFNa29XQUFBQUpKUnNBQUFB
Q1NqWUFFQUFFaEd3UUlBQUpDTQpnZ1VBQUNBWkJRc0FBRUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FB
QUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMCkFBQkFNZ29XQUFDQVpCUXNB
QUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFnQUFrSXlDQlFBQUlCa0ZDd0FBUURJS0Zn
QUEKZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNTallBRUFBRWhHd1FJQUFKQ01nZ1VBQUNBWkJR
c0FBRUF5Q2hZQUFJQmtGQ3dBQUFESgpLRmdBQUFDU1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUWpJ
SUZBQUFnR1FVTEFBQkFNZ29XQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3CkFBQUFKS05nQVFBQVNF
YkJBZ0FBa0l5Q0JRQUFJQmtGQ3dBQVFESUtGZ0FBZ0dRVUxBQUFBTWtvV0FBQUFKSlJzQUFBQUNT
allBRUEKQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNBQUVBeUNoWUFBSUJrRkN3QUFBREpLRmdBQUFD
U1ViQUFBQUFrbzJBQkFBQklSc0VDQUFDUQpqSUlGQUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFB
QXlTaFlBQUFBa2xHd0FBQUFKS05nQVFBQVNFYkJBZ0FBa0l5Q0JRQUFJQmtGCkN3QUFRRElLRmdB
QWdHUVVMQUFBQU1rb1dBQUFBSkpSc0FBQUFDU2pZQUVBQUVoR3dRSUFBSkNNZ2dVQUFDQVpCUXNB
QUVBeUNoWUEKQUlCa0ZDd0FBQURKS0ZnQUFBQ1NVYkFBQUFBa28yQUJBQUJJUnNFQ0FBQ1FqSUlG
QUFBZ0dRVUxBQUJBTWdvV0FBQ0FaQlFzQUFBQQp5U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJC
QWdBQWtJeUNCUUFBSUJrRkN3QUFRRElLRmdBQWdHUVVMQUFBQU1rb1dBQUFBSkpSCnNBQUFBQ1Nq
WUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaQlFzQUFFQXlDaFlBQUlCa0ZDd0FBQURKS0ZnQUFBQ1NV
YkFBQUFBa28yQUIKQUFCSVJzRUNBQUNRaklJRkFBQWdHUVVMQUFCQU1nb1dBQUNBWkJRc0FBQUF5
U2hZQUFBQWtsR3dBQUFBSktOZ0FRQUFTRWJCQWdBQQprSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFn
R1FVTEFBQUFNa29XQUFBQUpKUnNBQUFBQ1NqWUFFQUFFaEd3UUlBQUpDTWdnVUFBQ0FaCkJRc0FB
RUF5Q2hZQUFJQmtGQ3dBQUFESktGZ0FBQUNTVWJBQUFBQWtvMkFCQUFCSVJzRUNBQUNRaklJRkFB
QWdHUVVMQUFCQU1nb1cKQUFDQVpCUXNBQUFBeVNoWUFBQUFrbEd3QUFBQUpLTmdBUUFBU0ViQkFn
QUFrSXlDQlFBQUlCa0ZDd0FBUURJS0ZnQUFnR1FVTEFBQQpBTWtvV0FBQUFKSlJzQUFBQUNUNy8z
Vll6cnZiN0RrNkFBQUFBRWxGVGtTdVFtQ0MKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>