<?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>175597</bug_id>
          
          <creation_ts>2017-08-15 13:50:37 -0700</creation_ts>
          <short_desc>XMLHttpRequest should not sniff content encoding</short_desc>
          <delta_ts>2022-11-11 01:43:09 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=178941</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=247421</see_also>
          <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>175579</dependson>
          <blocked>179155</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>danw</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>jfbastien</cc>
    
    <cc>jujjyl</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1338854</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-08-15 13:50:37 -0700</bug_when>
    <thetext>XHRs currently don&apos;t do content sniffing, whereas Chrome and Firefox seem to. This is a problem when Content-Encoding isn&apos;t set yet the content is gzip. This occurs on webpages such as https://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.html
A smaller repro is to take the test from #175579 and change the URL to https://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.data.gz and try it out on each browser. Chrome and Firefox don&apos;t see any gzip header, but definitely unzip the content. A misleading thing is that both curl and nscurl get the Content-Endoding header from AWS!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338858</commentid>
    <comment_count>1</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-08-15 14:02:05 -0700</bug_when>
    <thetext>FWIW I tried the &quot;obvious&quot; fix in XMLHttpRequest.cpp:
    options.sniffContent = SniffContent;
That doesn&apos;t seem to do the trick, or I did it wrong.

Further, we&apos;d need to check that what other browsers do is actually what the XHR spec imports indirectly from the MIME Sniffing spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338864</commentid>
    <comment_count>2</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-08-15 14:05:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/33822249&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338902</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-08-15 15:34:57 -0700</bug_when>
    <thetext>I think that the first question to answer is why this resource is served with different response headers to Safari than to curl. You can try adding request headers from Safari to curl until it matches.

Checking with telnet, a very minimal request gets the header too.

Without actually looking at it, my guess is that CFNetwork decodes the response for us, and removes the header before WebKit gets to see it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338917</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-08-15 15:48:49 -0700</bug_when>
    <thetext>WebKit is receiving an HTTP response that is comparable with the response seen using curl. Setting a breakpoint in DocumentThreadableLoader::didReceiveResponse(), &lt;https://trac.webkit.org/browser/trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp?rev=220750#L299&gt; (where we process the XHR response) I see:

(lldb) po response.m_nsResponse.m_ptr
&lt;NSHTTPURLResponse: 0x6180000222c0&gt; { URL: http://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.data.gz } { status code: 200, headers {
    &quot;Accept-Ranges&quot; = bytes;
    &quot;Content-Encoding&quot; = gzip;
    &quot;Content-Length&quot; = 90198148;
    &quot;Content-Type&quot; = &quot;application/octet-stream&quot;;
    Date = &quot;Tue, 15 Aug 2017 22:44:19 GMT&quot;;
    Etag = &quot;\&quot;abd8ecef2479f13cc29e248e294b5330-11\&quot;&quot;;
    &quot;Last-Modified&quot; = &quot;Thu, 08 Jun 2017 16:29:01 GMT&quot;;
    Server = AmazonS3;
    &quot;x-amz-id-2&quot; = &quot;DoBSu33Sovmsp3CEZKWhkhnQZXGWyq40Yb2h0UjCvUdtVIecMM0iFyCQIlUyA3pZUtdyCIlVzxs=&quot;;
    &quot;x-amz-request-id&quot; = 0A63140CDBC51938;
} }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339762</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-08-17 14:26:40 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #4)
&gt; WebKit is receiving an HTTP response that is comparable with the response
&gt; seen using curl. Setting a breakpoint in
&gt; DocumentThreadableLoader::didReceiveResponse(),
&gt; &lt;https://trac.webkit.org/browser/trunk/Source/WebCore/loader/
&gt; DocumentThreadableLoader.cpp?rev=220750#L299&gt; (where we process the XHR
&gt; response) I see:
&gt; 
&gt; (lldb) po response.m_nsResponse.m_ptr
&gt; &lt;NSHTTPURLResponse: 0x6180000222c0&gt; { URL:
&gt; http://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.data.gz } {
&gt; status code: 200, headers {
&gt;     &quot;Accept-Ranges&quot; = bytes;
&gt;     &quot;Content-Encoding&quot; = gzip;
&gt;     &quot;Content-Length&quot; = 90198148;
&gt;     &quot;Content-Type&quot; = &quot;application/octet-stream&quot;;
&gt;     Date = &quot;Tue, 15 Aug 2017 22:44:19 GMT&quot;;
&gt;     Etag = &quot;\&quot;abd8ecef2479f13cc29e248e294b5330-11\&quot;&quot;;
&gt;     &quot;Last-Modified&quot; = &quot;Thu, 08 Jun 2017 16:29:01 GMT&quot;;
&gt;     Server = AmazonS3;
&gt;     &quot;x-amz-id-2&quot; =
&gt; &quot;DoBSu33Sovmsp3CEZKWhkhnQZXGWyq40Yb2h0UjCvUdtVIecMM0iFyCQIlUyA3pZUtdyCIlVzxs=
&gt; &quot;;
&gt;     &quot;x-amz-request-id&quot; = 0A63140CDBC51938;
&gt; } }

This response depends on the networking layer to compensate. If the intention of the web developer was to serve pre-compressed data for the browser to auto decompress then the server is misconfigured by definition of the HTTP header Content-Type in RFC 7231 and Chrome and Firefox are compensating for this misconfiguration. The Content-Type header is defined as:

The &quot;Content-Type&quot; header field indicates the media type of the associated representation...The indicated media type defines .... how that data is intended to be processed by a recipient ... after any content codings indicated by Content-Encoding are decoded.

The key phrase to look for is &quot;after any content codings indicated by Content-Encoding are decoded&quot;. CFNetwork treats a response with &quot;Content-Type: application/octet-stream&quot; and &quot;Content-Encoding: gzip&quot; as a response with &quot;Content-Type: application/gzip&quot; and &quot;Content-Encoding: identity&quot;.

To achieve auto decompressing of the pre-compressed data, the web server should have returned a response with a Content-Type that is handled by WebKit, say text/plain, such that response.m_nsResponse.m_ptr would look like:

(lldb) po response.m_nsResponse.m_ptr
&lt;NSHTTPURLResponse: 0x6180000222c0&gt; { URL: http://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.data.gz } { status code: 200, headers {
    &quot;Accept-Ranges&quot; = bytes;
    &quot;Content-Encoding&quot; = gzip;
    &quot;Content-Length&quot; = 90198148;
    &quot;Content-Type&quot; = &quot;text/plain&quot;;
    Date = &quot;Tue, 15 Aug 2017 22:44:19 GMT&quot;;
    Etag = &quot;\&quot;abd8ecef2479f13cc29e248e294b5330-11\&quot;&quot;;
    &quot;Last-Modified&quot; = &quot;Thu, 08 Jun 2017 16:29:01 GMT&quot;;
    Server = AmazonS3;
    &quot;x-amz-id-2&quot; = &quot;DoBSu33Sovmsp3CEZKWhkhnQZXGWyq40Yb2h0UjCvUdtVIecMM0iFyCQIlUyA3pZUtdyCIlVzxs=&quot;;
    &quot;x-amz-request-id&quot; = 0A63140CDBC51938;
} }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339771</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-08-17 14:32:02 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #1)
&gt; FWIW I tried the &quot;obvious&quot; fix in XMLHttpRequest.cpp:
&gt;     options.sniffContent = SniffContent;
&gt; That doesn&apos;t seem to do the trick, or I did it wrong.

: ( I would have expected that enabling sniffing would have made CFNetwork override the Content-Type in the response with text/plain and hence auto-decompress it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339773</commentid>
    <comment_count>7</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-08-17 14:34:23 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #5)
&gt; (In reply to Daniel Bates from comment #4)
[... snip ...]

So you&apos;re saying we&apos;re doing the right thing, and the server is just misconfigured?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339776</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-08-17 14:40:34 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #6)
&gt; (In reply to JF Bastien from comment #1)
&gt; &gt; FWIW I tried the &quot;obvious&quot; fix in XMLHttpRequest.cpp:
&gt; &gt;     options.sniffContent = SniffContent;
&gt; &gt; That doesn&apos;t seem to do the trick, or I did it wrong.
&gt; 
&gt; : ( I would have expected that enabling sniffing would have made CFNetwork
&gt; override the Content-Type in the response with text/plain and hence
&gt; auto-decompress it.

Disregard this remark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339778</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-08-17 14:44:33 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #7)
&gt; (In reply to Daniel Bates from comment #5)
&gt; &gt; (In reply to Daniel Bates from comment #4)
&gt; [... snip ...]
&gt; 
&gt; So you&apos;re saying we&apos;re doing the right thing, and the server is just
&gt; misconfigured?

Yes, we are doing the &quot;right thing&quot;. We should check how Microsoft Edge and IE handle a response with &quot;Content-Encoding: gzip&quot; and &quot;Content-Type: application/octet-stream&quot;. Do they treat it as &quot;Content-Encoding: gzip&quot; and &quot;Content-Type: text/plain&quot;? If WebKit is the only browser engine that does not auto decompress &lt;http://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.data.gz&gt; then we may want to consider adding a quirk either in WebKit or CFNetwork.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339803</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-08-17 15:47:17 -0700</bug_when>
    <thetext>After reading over the definition of Content-Type and Content-Encoding in RFC 7231 again, I no longer think this bug represents a server misconfiguration. We should look to understand why CF Network explicitly chose to treat &quot;Content-Type: application/octet-stream&quot; and &quot;Content-Encoding: gzip&quot; as &quot;Content-Type: application/gzip&quot; and &quot;Content-Encoding: identity&quot;, respectively.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365611</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 18:25:02 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #2)
&gt; &lt;rdar://problem/33822249&gt;

This tracks the CFNetwork support infrastructure needed to fix this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365612</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 18:25:35 -0700</bug_when>
    <thetext>The following radar tracks the WebKit work associated with this bug:
&lt;rdar://problem/34912624&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365627</commentid>
    <comment_count>13</comment_count>
      <attachid>325232</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 19:25:13 -0700</bug_when>
    <thetext>Created attachment 325232
Patch and layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365631</commentid>
    <comment_count>14</comment_count>
      <attachid>325233</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 20:03:47 -0700</bug_when>
    <thetext>Created attachment 325233
Patch and layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365632</commentid>
    <comment_count>15</comment_count>
      <attachid>325234</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 20:04:44 -0700</bug_when>
    <thetext>Created attachment 325234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365655</commentid>
    <comment_count>16</comment_count>
      <attachid>325234</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-27 21:23:17 -0700</bug_when>
    <thetext>Comment on attachment 325234
Patch

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

A small suggestion and bugs look sad:

/home/ews/ltilve-gtk-wk2-ews/WebKit/Source/WebKit/NetworkProcess/NetworkDataTask.cpp:59:206: error: no matching function for call to &apos;WebKit::NetworkDataTaskSoup::create(WebKit::NetworkSession&amp;, WebKit::NetworkDataTaskClient&amp;, const WebCore::ResourceRequest&amp;, const WebCore::StoredCredentialsPolicy&amp;, const WebCore::ContentEncodingSniffingPolicy&amp;, const bool&amp;)&apos;

Otherwise r=me

&gt; Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:211
&gt; +#if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101302

This doesn&apos;t also affect iOS?

&gt; Source/WebCore/loader/ResourceLoader.cpp:219
&gt; +    m_handle = ResourceHandle::create(frameLoader()-&gt;networkingContext(), m_request, this, m_defersLoading, m_options.sniffContent == SniffContent, m_options.sniffContentEncoding == ContentEncodingSniffingPolicy::Sniff);

I tend to like enum classes rather than booleans for this type of thing: passing in multiple booleans is error prone and harder to read, whereas having an enum class as parameter can&apos;t be messed up. So I&apos;d just pass the ContentEncodingSnifingPolicy strait into create(). Is that not practical?

&gt; Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp:480
&gt; +    bool shouldContentEncodingSniff = true;

Even here, it&apos;s way more fool-proof to have an enum class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365667</commentid>
    <comment_count>17</comment_count>
      <attachid>325243</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 22:15:19 -0700</bug_when>
    <thetext>Created attachment 325243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365668</commentid>
    <comment_count>18</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-27 22:17:31 -0700</bug_when>
    <thetext>Attachment 325243 did not pass style-queue:


ERROR: Source/WebCore/platform/network/BlobResourceHandle.cpp:137:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 35 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>1365672</commentid>
    <comment_count>19</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 22:36:01 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #16)
&gt; &gt; Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:211
&gt; &gt; +#if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101302
&gt; 
&gt; This doesn&apos;t also affect iOS?
&gt; 

No, according to &lt;rdar://problem/33822249&gt; this SPI does not affect iOS because this bug represents a macOS quirk. iOS does not sniff content encoding based on the URL.

&gt; &gt; Source/WebCore/loader/ResourceLoader.cpp:219
&gt; &gt; +    m_handle = ResourceHandle::create(frameLoader()-&gt;networkingContext(), m_request, this, m_defersLoading, m_options.sniffContent == SniffContent, m_options.sniffContentEncoding == ContentEncodingSniffingPolicy::Sniff);
&gt; 
&gt; I tend to like enum classes rather than booleans for this type of thing:
&gt; passing in multiple booleans is error prone and harder to read, whereas
&gt; having an enum class as parameter can&apos;t be messed up. So I&apos;d just pass the
&gt; ContentEncodingSnifingPolicy strait into create(). Is that not practical?
&gt; 

We should clean this up as passing consecutive booleans is error prone. I hope you do not mind that defer this to a follow up bug so as to keep this patch focused on the bug fix (*) due to its time sensitive nature. Filed bug #178979.

(*) I thought to limit style changes to either lines I needed to touch or lines immediately above or below lines I needed to touch. Although I could make the change you mentioned now we may also want to consider whether passing a struct of options (similar to NetworkLoadParameters) to ResourceHandle::create()/ResourceHandle::ResourceHandle() could simplify this code and callers. 

&gt; &gt; Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp:480
&gt; &gt; +    bool shouldContentEncodingSniff = true;
&gt; 
&gt; Even here, it&apos;s way more fool-proof to have an enum class.

See above remark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365675</commentid>
    <comment_count>20</comment_count>
      <attachid>325246</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 22:38:34 -0700</bug_when>
    <thetext>Created attachment 325246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365676</commentid>
    <comment_count>21</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-27 22:40:40 -0700</bug_when>
    <thetext>Attachment 325246 did not pass style-queue:


ERROR: Source/WebCore/platform/network/BlobResourceHandle.cpp:137:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 35 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>1365677</commentid>
    <comment_count>22</comment_count>
      <attachid>325247</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 22:42:45 -0700</bug_when>
    <thetext>Created attachment 325247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365678</commentid>
    <comment_count>23</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-27 22:45:37 -0700</bug_when>
    <thetext>Attachment 325247 did not pass style-queue:


ERROR: Source/WebCore/platform/network/BlobResourceHandle.cpp:137:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 35 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>1365680</commentid>
    <comment_count>24</comment_count>
      <attachid>325249</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-27 22:54:43 -0700</bug_when>
    <thetext>Created attachment 325249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365682</commentid>
    <comment_count>25</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-27 22:57:51 -0700</bug_when>
    <thetext>Attachment 325249 did not pass style-queue:


ERROR: Source/WebCore/platform/network/BlobResourceHandle.cpp:137:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 35 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>1365714</commentid>
    <comment_count>26</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-28 07:32:16 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #19)
&gt; (In reply to JF Bastien from comment #16)
&gt; &gt; &gt; Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:211
&gt; &gt; &gt; +#if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101302
&gt; &gt; 
&gt; &gt; This doesn&apos;t also affect iOS?
&gt; &gt; 
&gt; 
&gt; No, according to &lt;rdar://problem/33822249&gt; this SPI does not affect iOS
&gt; because this bug represents a macOS quirk. iOS does not sniff content
&gt; encoding based on the URL.

Ok good!

&gt; &gt; &gt; Source/WebCore/loader/ResourceLoader.cpp:219
&gt; &gt; &gt; +    m_handle = ResourceHandle::create(frameLoader()-&gt;networkingContext(), m_request, this, m_defersLoading, m_options.sniffContent == SniffContent, m_options.sniffContentEncoding == ContentEncodingSniffingPolicy::Sniff);
&gt; &gt; 
&gt; &gt; I tend to like enum classes rather than booleans for this type of thing:
&gt; &gt; passing in multiple booleans is error prone and harder to read, whereas
&gt; &gt; having an enum class as parameter can&apos;t be messed up. So I&apos;d just pass the
&gt; &gt; ContentEncodingSnifingPolicy strait into create(). Is that not practical?
&gt; &gt; 
&gt; 
&gt; We should clean this up as passing consecutive booleans is error prone. I
&gt; hope you do not mind that defer this to a follow up bug so as to keep this
&gt; patch focused on the bug fix (*) due to its time sensitive nature. Filed bug
&gt; #178979.

No problem at all. 

&gt; (*) I thought to limit style changes to either lines I needed to touch or
&gt; lines immediately above or below lines I needed to touch. Although I could
&gt; make the change you mentioned now we may also want to consider whether
&gt; passing a struct of options (similar to NetworkLoadParameters) to
&gt; ResourceHandle::create()/ResourceHandle::ResourceHandle() could simplify
&gt; this code and callers. 
&gt; 
&gt; &gt; &gt; Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp:480
&gt; &gt; &gt; +    bool shouldContentEncodingSniff = true;
&gt; &gt; 
&gt; &gt; Even here, it&apos;s way more fool-proof to have an enum class.
&gt; 
&gt; See above remark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366070</commentid>
    <comment_count>27</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-10-30 11:03:15 -0700</bug_when>
    <thetext>I think you meant for your Changelogs reference radar 34912624, not 33822249</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366077</commentid>
    <comment_count>28</comment_count>
      <attachid>325249</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-10-30 11:12:23 -0700</bug_when>
    <thetext>Comment on attachment 325249
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:108
&gt; +    auto mutableRequest = adoptNS([nsRequest mutableCopy]);

Before, the common case would make 0 copies of the NSURLRequest.  Now the common case makes 1.  Let&apos;s not increase that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366102</commentid>
    <comment_count>29</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-30 11:40:56 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #27)
&gt; I think you meant for your Changelogs reference radar 34912624, not 33822249

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366103</commentid>
    <comment_count>30</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-30 11:41:21 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #28)
&gt; Comment on attachment 325249 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=325249&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:108
&gt; &gt; +    auto mutableRequest = adoptNS([nsRequest mutableCopy]);
&gt; 
&gt; Before, the common case would make 0 copies of the NSURLRequest.  Now the
&gt; common case makes 1.  Let&apos;s not increase that.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366115</commentid>
    <comment_count>31</comment_count>
      <attachid>325365</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-30 12:04:23 -0700</bug_when>
    <thetext>Created attachment 325365
Patch

Updated patch based on feedback from Brady Eidson and Alex Christensen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366116</commentid>
    <comment_count>32</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-30 12:06:49 -0700</bug_when>
    <thetext>Attachment 325365 did not pass style-queue:


ERROR: Source/WebCore/platform/network/BlobResourceHandle.cpp:137:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 35 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>1366173</commentid>
    <comment_count>33</comment_count>
      <attachid>325365</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-30 14:17:46 -0700</bug_when>
    <thetext>Comment on attachment 325365
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        Fixes an issue where the body of an HTTP response associated with an XHR request to a .gz file
&gt; +        would be automatically gzipped decompressed if the HTTP response omitted a Content-Encoding HTTP
&gt; +        header. Specifically, such a response would be treated analogous to a response with headers
&gt; +        &quot;Content-Type: application/gzip&quot; and &quot;Content-Encoding: identity&quot;. This behavior does not conform
&gt; +        the HTTP 1.1 spec. and breaks Epic Zen Garden, &lt;https://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.html&gt;.

Will change this paragraph and the same paragraph in Source/WebKit/ChangeLog to read:

Fixes an issue where the body of an HTTP response with headers &quot;Content-Type: application/octet-stream&quot; and &quot;Content-Encoding: gzip&quot; associated with an XHR request to a .gz file would not be automatically gzipped decompressed. Specifically, such a response would be treated analogous to a response with headers &quot;Content-Type: application/gzip&quot; and &quot;Content-Encoding: identity&quot;. This behavior does not conform to the behavior of the Content-Encoding header as defined in the HTTP 1.1 and later specs. Moreover this behavior breaks the Epic Zen Garden demo: &lt;https://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.html&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366916</commentid>
    <comment_count>34</comment_count>
      <attachid>325365</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-11-01 10:58:33 -0700</bug_when>
    <thetext>Comment on attachment 325365
Patch

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

&gt; Source/WebCore/platform/network/PingHandle.h:55
&gt; +        bool defersLoading = false;

It would be nice if these were two-state enums.
enum class DefersLoading { No, Yes };

&gt; LayoutTests/platform/mac/TestExpectations:35
&gt; +http/tests/xmlhttprequest/gzip-content-type-no-content-encoding.html [ Skip ]

I think this could be marked as pass/fail instead of skipping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367073</commentid>
    <comment_count>35</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-11-01 15:04:07 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #34)
&gt; Comment on attachment 325365 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=325365&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/PingHandle.h:55
&gt; &gt; +        bool defersLoading = false;
&gt; 
&gt; It would be nice if these were two-state enums.
&gt; enum class DefersLoading { No, Yes };
&gt; 

I plan to clean this up in bug #178979 as mentioned in comment #18.

&gt; &gt; LayoutTests/platform/mac/TestExpectations:35
&gt; &gt; +http/tests/xmlhttprequest/gzip-content-type-no-content-encoding.html [ Skip ]
&gt; 
&gt; I think this could be marked as pass/fail instead of skipping.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367078</commentid>
    <comment_count>36</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-11-01 15:23:53 -0700</bug_when>
    <thetext>Committed r224299: &lt;https://trac.webkit.org/changeset/224299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367192</commentid>
    <comment_count>37</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-11-01 21:04:11 -0700</bug_when>
    <thetext>Fixed change log description in &lt;https://trac.webkit.org/changeset/224315&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472145</commentid>
    <comment_count>38</comment_count>
      <attachid>325365</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-10-25 12:10:26 -0700</bug_when>
    <thetext>Comment on attachment 325365
Patch

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

&gt; Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:211
&gt; +#if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101302

This check is not correct. The deployment target for 10.13 stays at 101300, so this check is equivalent to &quot;__MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101400&quot;.

&gt; Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:165
&gt; +#if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101302

Ditto.

&gt; Source/WebCore/platform/network/mac/ResourceHandleMac.mm:129
&gt; +#if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 101302

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472161</commentid>
    <comment_count>39</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-10-25 13:05:58 -0700</bug_when>
    <thetext>&gt; No, according to &lt;rdar://problem/33822249&gt; this SPI does not affect iOS because this bug represents a macOS quirk. iOS does not sniff content encoding based on the URL.

If so, why was the test not enabled on iOS?

Enabled the test for Mojave+ and for iOS in r237425 and r237426. Let&apos;s see if iOS actually passes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1911764</commentid>
    <comment_count>40</comment_count>
    <who name="">jujjyl</who>
    <bug_when>2022-11-11 01:11:49 -0800</bug_when>
    <thetext>I am the original author of https://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.html , and have now been made aware of this bug in Safari on Zen Garden the first time.

This bug reads fixed, but essentially the same bug is still occurring in the wild in bug https://bugs.webkit.org/show_bug.cgi?id=247421 . Did the patch in this bug ever land?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1911771</commentid>
    <comment_count>41</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-11-11 01:43:09 -0800</bug_when>
    <thetext>Yes, the patch did land.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325232</attachid>
            <date>2017-10-27 19:25:13 -0700</date>
            <delta_ts>2017-10-27 20:03:45 -0700</delta_ts>
            <desc>Patch and layout tests</desc>
            <filename>bug-175597-20171027192512.patch</filename>
            <type>text/plain</type>
            <size>56058</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhMmI0M2IzM2YzZWYw
MzFjMzAzZjE2NDc4Yzk2MzM0ZGU2ZGE5Ni4uNTAxOTY2NmQxYjc0ZTZmZmFmYjAzMWE4YjdiOGUy
MDg3ZGU3ZmM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE3LTEwLTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBz
aG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3Nv
Y2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3QgdG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBi
ZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVjb21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNl
IG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5nIEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZp
Y2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3VsZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJl
c3BvbnNlIHdpdGggaGVhZGVycworICAgICAgICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9n
emlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2Vz
IG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBIVFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMg
WmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdh
cmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+LgorCisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0
IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1
ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAgIHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVu
dCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3RoZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxs
IGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2VxdWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWln
aHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUgYnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
OjpzaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOiBFbmFibGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVz
b3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRsZSk6IERpdHRvLiBXZSBzaG91bGQgbG9vayB0
byBkaXNhYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4KKyAgICAgICAgYSBzdWJzZXF1
ZW50IGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOiBNb2RpZmllZCB0
byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29kaW5n
IHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCk6IE1vZGlmaWVkIHRvIHRha2UgYSBib29sZWFuIGFzIHRvIHdo
ZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQKKyAgICAgICAgZW5jb2Rpbmcgc25pZmZpbmcuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOiBNb2Rp
ZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0aGUgQ0ZN
dXRhYmxlVVJMUmVxdWVzdFJlZiBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4y
LgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlv
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24p
OiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250
ZW50IGVuY29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0
aGUgTlNNdXRhYmxlVVJMUmVxdWVzdCBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4x
My4yLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhh
dmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOiBNb2RpZmll
ZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29k
aW5nIHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNl
SGFuZGxlKTogRGl0dG8uCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KTogRG8gbm90IGVuYWJs
ZSBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIGZvciB0aGUgcmVxdWVzdC4KKworMjAxNy0xMC0y
NyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKICAgICAgICAgT25seSBhbGxv
dyBub24tbWl4ZWQgY29udGVudCBwcm90ZWN0ZWQgc3VicmVzb3VyY2VzIHRvIGFzayBmb3IgY3Jl
ZGVudGlhbHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3ODkxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTUyNDU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCA0NDliMWRkYWE2OWY3NjEyODg1YjFmODQ5MzNkOWE0NTA5MDcyNTJhLi42MzM3ZjRl
YWU4ZDA2NGEyMWViOTY0ZDRmNzZlYjIzN2RiMDA2ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxNy0xMC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgWE1MSHR0cFJlcXVlc3Qgc2hvdWxkIG5vdCBzbmlmZiBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzU1OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzODIyMjQ5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvcndhcmQgZGVjbGFyZSBDRk5ldHdv
cmsgU1BJLgorCisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKwogMjAxNy0x
MC0yNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBFbmFibGUgV2ViS2l0IGxvZ2dpbmcgY29uZmlndXJhdGlvbiBhbmQgZGlz
cGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAyM2VlYTdkNGYxZTcwNjRmN2ZmMGM3YWQyOGNiZDNlMzE2MjU0ZTM0
Li5iNWNmY2IzMDA2Y2Q4NWQxNTM3YjRhOWQ0NTI5ZTg0OTMzMjg1ZjczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDQzIEBACiAyMDE3LTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBzaG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5j
b2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhl
IGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3NvY2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3Qg
dG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBiZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVj
b21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNlIG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5n
IEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZpY2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3Vs
ZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJlc3BvbnNlIHdpdGggaGVhZGVycworICAgICAg
ICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9nemlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6
IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2VzIG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBI
VFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMgWmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1h
em9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdhcmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+Lgor
CisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNu
aWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAg
IHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3Ro
ZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxsIGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2Vx
dWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWlnaHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUg
YnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSk6IFBh
c3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrTG9hZDo6TmV0d29ya0xvYWQpOiBEaXR0by4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOiBFbmNvZGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzOjpkZWNvZGUpOiBEZWNvZGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBwb2xp
Y3kuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRp
dmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxv
YWQ6OlNwZWN1bGF0aXZlTG9hZCk6IEVuYWJsZSBjb250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1h
dGNoIGV4aXN0aW5nCisgICAgICAgIGJlaGF2aW9yLiBXZSBzaG91bGQgbG9vayB0byBkaXNhYmxl
IGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4gYSBzdWJzZXF1ZW50IGNoYW5nZS4KKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOiBN
b2RpZmllZCB0byB0YWtlIHRoZSBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nCisgICAgICAgIHBv
bGljeSBhbmQgYXBwbHkgaXQgdG8gdGhlIE5TTXV0YWJsZVVSTFJlcXVlc3Qgb2JqZWN0IHdoZW4g
YnVpbGRpbmcgb24gbWFjT1MgMTAuMTMuMi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKTogUGFzcyB0aHJvdWdoIHRoZSBjb250
ZW50IGVuY29kaW5nIHNuaWZmaW5nIHBvbGljeS4KKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVy
U3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOiBFbmFibGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZworICAgICAgICBiZWhhdmlvci4KKworMjAxNy0x
MC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKICAgICAgICAgT25seSBh
bGxvdyBub24tbWl4ZWQgY29udGVudCBwcm90ZWN0ZWQgc3VicmVzb3VyY2VzIHRvIGFzayBmb3Ig
Y3JlZGVudGlhbHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3ODkxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTUyNDU+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IGRmMzliOGJkNDZhZmFl
MDQzZTg0MDgzNmEzMDgwNzk4MDM3MTg2ZjYuLjBhY2M4OWZiZjliNjQ1MTY5NjU2NzFhOTY4MWVh
YjkxNmE2MTA0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NG
TmV0d29ya1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29y
a1NQSS5oCkBAIC0yMDgsNiArMjA4LDEwIEBAIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NG
VVJMQ2FjaGVQYXJ0aXRpb25LZXk7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTENv
bm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9r
Q0ZVUkxTdG9yYWdlU2Vzc2lvbklzUHJpdmF0ZTsKIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDIKK2V4dGVybiBjb25zdCBDRlN0
cmluZ1JlZiBrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2s7CisjZW5kaWYK
KwogQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBfQ0ZIVFRQQ29va2llU3RvcmFnZUdldERlZmF1bHQo
Q0ZBbGxvY2F0b3JSZWYpOwogQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBDRkhUVFBDb29raWVTdG9y
YWdlQ3JlYXRlRnJvbUZpbGUoQ0ZBbGxvY2F0b3JSZWYsIENGVVJMUmVmLCBDRkhUVFBDb29raWVT
dG9yYWdlUmVmKTsKIHZvaWQgQ0ZIVFRQQ29va2llU3RvcmFnZVNjaGVkdWxlV2l0aFJ1bkxvb3Ao
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgQ0ZSdW5Mb29wUmVmLCBDRlN0cmluZ1JlZik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBlOTIxNDI3YTQ5OTM5MjU5
ZjVlNDRhZjU5YzdlYzM1YWExYTIxYzk3Li5mOTE5OTgzZDgyMTY3ZjIyMmI0ZDk3YWUzZjVjYTRk
YjQzMDk5NGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAg
LTIxNiw3ICsyMTYsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoZnJh
bWVMb2FkZXIoKS0+bmV0d29ya2luZ0NvbnRleHQoKSwgbV9yZXF1ZXN0LCB0aGlzLCBtX2RlZmVy
c0xvYWRpbmcsIG1fb3B0aW9ucy5zbmlmZkNvbnRlbnQgPT0gU25pZmZDb250ZW50KTsKKyAgICBt
X2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoZnJhbWVMb2FkZXIoKS0+bmV0d29ya2lu
Z0NvbnRleHQoKSwgbV9yZXF1ZXN0LCB0aGlzLCBtX2RlZmVyc0xvYWRpbmcsIG1fb3B0aW9ucy5z
bmlmZkNvbnRlbnQgPT0gU25pZmZDb250ZW50LCBtX29wdGlvbnMuc25pZmZDb250ZW50RW5jb2Rp
bmcgPT0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmKTsKIH0KIAogdm9pZCBS
ZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKaW5kZXggZjRjOWE0NTc3ZTdlNGRkOWM2MWNmZTJiNzJj
NzBjOGY3MWZlZjA4ZS4uYmFjOGFjYTgwZWUwOGU1NDVlMTE5NWQwOGQ5ZjNhNDdlMWM2ZjI2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKQEAgLTEyMyw2ICsxMjMsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRTZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29u
c3QgeyByZXR1cm4gbV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID09IFNlbmRDYWxsYmFja3M7
IH0KICAgICB2b2lkIHNldFNlbmRDYWxsYmFja1BvbGljeShTZW5kQ2FsbGJhY2tQb2xpY3kgc2Vu
ZExvYWRDYWxsYmFja3MpIHsgbV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gc2VuZExvYWRD
YWxsYmFja3M7IH0KICAgICBib29sIHNob3VsZFNuaWZmQ29udGVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9ucy5zbmlmZkNvbnRlbnQgPT0gU25pZmZDb250ZW50OyB9CisgICAgYm9vbCBzaG91
bGRTbmlmZkNvbnRlbnRFbmNvZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zbmlmZkNv
bnRlbnRFbmNvZGluZyA9PSBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmY7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxz
KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRJbmNsdWRlQ2VydGlmaWNhdGVJbmZvKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zLmNlcnRpZmljYXRlSW5mb1BvbGljeSA9PSBJbmNsdWRlQ2VydGlm
aWNhdGVJbmZvOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9w
dGlvbnMuaAppbmRleCA1YzVhMGQ0MjdiNGU5OTYwYmI3YzVjN2QxZjFmYWNlNTlhNDQ1NGJhLi42
NTc0YjM3ODE1YjZjZmE3ODE2YmMxOGI2NjUxOGY0Zjc1ODYzNTI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCkBAIC05Nyw2ICs5NywxMSBAQCBl
bnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJzTW9kZSB7CiAgICAgTm9uZSwKIH07CiAKK2VudW0gY2xh
c3MgQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgeworICAgIFNuaWZmLAorICAgIERvTm90
U25pZmYsCit9OworCiBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zIDogcHVibGljIEZldGNo
T3B0aW9ucyB7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKCkgeyB9CiAKQEAgLTEyMCw2ICsx
MjUsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zIDogcHVibGljIEZldGNoT3B0aW9u
cyB7CiAKICAgICBTZW5kQ2FsbGJhY2tQb2xpY3kgc2VuZExvYWRDYWxsYmFja3MgeyBEb05vdFNl
bmRDYWxsYmFja3MgfTsKICAgICBDb250ZW50U25pZmZpbmdQb2xpY3kgc25pZmZDb250ZW50IHsg
RG9Ob3RTbmlmZkNvbnRlbnQgfTsKKyAgICBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBz
bmlmZkNvbnRlbnRFbmNvZGluZyB7IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlm
ZiB9OwogICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSB7IEJ1ZmZl
ckRhdGEgfTsKICAgICBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSB7IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSB9OwogICAgIFNlY3VyaXR5
Q2hlY2tQb2xpY3kgc2VjdXJpdHlDaGVjayB7IERvU2VjdXJpdHlDaGVjayB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmNwcAppbmRleCBlZTI1ZjlmMzZiNTY0NzNiNGY2YTk1NzljODEyMmM1MDU2ZmVjMjVkLi5lYjc0
MzJjNTllOTUxYzMxNmJkNDUwZTk2MDg3MzI0MjA5ZmRhMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApA
QCAtNDc1LDcgKzQ3NSw3IEBAIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gQXBwbGljYXRpb25DYWNo
ZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZShjb25zdCBVUkwmIHVyCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwg
dGhpcywgZmFsc2UsIHRydWUpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4
dCgpLCByZXF1ZXN0LCB0aGlzLCBmYWxzZSAvKiBkZWZlcnNMb2FkaW5nICovLCB0cnVlIC8qIHNo
b3VsZENvbnRlbnRTbmlmZiAqLywgdHJ1ZSAvKiBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiAq
Lyk7CiAKICAgICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1
cmluZyByZWRpcmVjdHMsIHdlIGluaXRpYWxpemUKICAgICAvLyB0aGUgaWRlbnRpZmllciBhbmQg
dGhlIGZpcnN0IHdpbGxTZW5kUmVxdWVzdCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDYxMjk2OWYw
NGE3ZWFlZWUyZDE1ZTk4Yjc0ZWI3MGU5YTUyMmI3ODUuLmJjOTcxMDg5MTQ5MzFjNzk3YTY3MTM4
Zjk0NjI5MGQxZjExODlhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lk
IEJsb2JSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShCbG9iRGF0YSog
YmxvYkRhdGEsIGNvbnN0IFJlcwogfQogCiBCbG9iUmVzb3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJj
ZUhhbmRsZShCbG9iRGF0YSogYmxvYkRhdGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBhc3luYykKLSAgICA6IFJlc291
cmNlSGFuZGxlKG51bGxwdHIsIHJlcXVlc3QsIGNsaWVudCwgZmFsc2UsIGZhbHNlKQorICAgIDog
UmVzb3VyY2VIYW5kbGUobnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxzZSAvKiBkZWZlcnNM
b2FkaW5nICovLCBmYWxzZSAvKiBzaG91bGRDb250ZW50U25pZmYgKi8sIHRydWUgLyogc2hvdWxk
Q29udGVudEVuY29kaW5nU25pZmYgKi8pCiAgICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQogICAg
ICwgbV9hc3luYyhhc3luYykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUGluZ0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
aW5nSGFuZGxlLmgKaW5kZXggYmViOWM1YWNhNzgzZTcwMDU2OGUxMTg3NjlkZGViMTE3YmQ4MGVl
OS4uMTA3NTk4NjZjZjIyNmMyM2E0ZGM0NTE2ODk3ZDExY2ZiNDEyZTUwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKQEAgLTUyLDcgKzUyLDcgQEAg
cHVibGljOgogICAgICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKHVzZUFzeW5jQ2FsbGJhY2tz
KQogICAgICAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpCiAgICAgewotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobmV0
d29ya2luZ0NvbnRleHQsIHJlcXVlc3QsIHRoaXMsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIG1f
aGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShuZXR3b3JraW5nQ29udGV4dCwgcmVxdWVz
dCwgdGhpcywgZmFsc2UgLyogZGVmZXJzTG9hZGluZyAqLywgZmFsc2UgLyogc2hvdWxkQ29udGVu
dFNuaWZmICovLCB0cnVlIC8qIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmICovKTsKIAogICAg
ICAgICAvLyBJZiB0aGUgc2VydmVyIG5ldmVyIHJlc3BvbmRzLCB0aGlzIG9iamVjdCB3aWxsIGhh
bmcgYXJvdW5kIGZvcmV2ZXIuCiAgICAgICAgIC8vIFNldCBhIHZlcnkgZ2VuZXJvdXMgdGltZW91
dCwganVzdCBpbiBjYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCBiZWJjZjg4ZGJiY2U0ZDFkMWJlMGQxNTM0NGU0M2Yw
NmU3OGI3ZjUwLi42ZDUxYzJlNzg5MThmNTUyMzg0NTQyZTZiNDY5ZWZjMDI2YmYyOGFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNw
cApAQCAtNzIsOCArNzIsOCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWdpc3RlckJ1aWx0aW5T
eW5jaHJvbm91c0xvYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIHByb3RvYwogICAgIGJ1aWx0aW5S
ZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVyTWFwKCkuYWRkKHByb3RvY29sLCBsb2FkZXIp
OwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZikKLSAgICA6IGQoc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUhhbmRsZUludGVybmFsPih0aGlz
LCBjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRT
bmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSkpKQorUmVzb3VyY2VI
YW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJv
b2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29u
dGVudEVuY29kaW5nU25pZmYpCisgICAgOiBkKHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5k
bGVJbnRlcm5hbD4odGhpcywgY29udGV4dCwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5n
LCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJs
KCkpLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVy
bCgpLmlzVmFsaWQoKSkgewogICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1
cmUpOwpAQCAtODYsMTIgKzg2LDEyIEBAIFJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0CiAgICAgfQog
fQogCi1SZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVz
b3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZikKK1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcs
IGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
KQogewogICAgIGlmIChhdXRvIGNvbnN0cnVjdG9yID0gYnVpbHRpblJlc291cmNlSGFuZGxlQ29u
c3RydWN0b3JNYXAoKS5nZXQocmVxdWVzdC51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91
dENvcHlpbmcoKSkpCiAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcihyZXF1ZXN0LCBjbGllbnQp
OwogCi0gICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNv
bnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZm
KSk7CisgICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNv
bnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZm
LCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikpOwogCiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+
bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBXVEZN
b3ZlKG5ld0hhbmRsZSk7CkBAIC0yMTAsNiArMjEwLDExIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnNob3VsZENvbnRlbnRTbmlmZigpIGNvbnN0CiAgICAgcmV0dXJuIGQtPm1fc2hvdWxkQ29udGVu
dFNuaWZmOwogfQogCitib29sIFJlc291cmNlSGFuZGxlOjpzaG91bGRDb250ZW50RW5jb2RpbmdT
bmlmZigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPm1fc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmY7Cit9CisKIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRTbmlmZlVSTChjb25z
dCBVUkwmIHVybCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCA5ZTc5NmYxMmFhMjM3OTI5
OGZmMzBiNWFjYzdlNzI0YWYzZmQ3Mzg2Li4yMTAyNTZlODU4NDA4MDQzZDQ4NTJiZGRjOWQwMmY1
NGI4MzE5NGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oCkBAIC05Miw3ICs5Miw3IEBAIGNsYXNzIFRpbWVyOwogCiBjbGFzcyBSZXNv
dXJjZUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlc291cmNlSGFuZGxlPiwgcHVibGljIEF1
dGhlbnRpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
Zik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3Rv
cjxjaGFyPiYgZGF0YSk7CiAKICNpZiBVU0UoU09VUCkKQEAgLTE2NCw2ICsxNjQsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYoKSBjb25zdDsKICAgICBzdGF0aWMgYm9v
bCBzaG91bGRDb250ZW50U25pZmZVUkwoY29uc3QgVVJMJik7CiAKKyAgICBib29sIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKCkgY29uc3Q7CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCBmb3JjZUNvbnRlbnRTbmlmZmluZygpOwogCiAjaWYgVVNFKENVUkwpIHx8IFVTRShTT1VQ
KQpAQCAtMjM1LDcgKzIzNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1
aWx0aW5TeW5jaHJvbm91c0xvYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWls
dGluU3luY2hyb25vdXNMb2FkZXIpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVzb3VyY2VIYW5kbGUo
TmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRs
ZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOwor
ICAgIFJlc291cmNlSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAg
IGJvb2wgdXNlc0FzeW5jQ2FsbGJhY2tzKCkgY29uc3Q7CiAKQEAgLTI0Nyw3ICsyNDksNyBAQCBw
cml2YXRlOgogICAgIH07CiAKICNpZiBVU0UoU09VUCkKLSAgICBSZXNvdXJjZUhhbmRsZShTb3Vw
TmV0d29ya1Nlc3Npb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNs
aWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAg
IFJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAjZW5kaWYK
IAogICAgIHZvaWQgcGxhdGZvcm1TZXREZWZlcnNMb2FkaW5nKGJvb2wpOwpAQCAtMjY3LDE1ICsy
NjksMTUgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAg
ICB2b2lkIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rp
b25hcnlSZWYgY2xpZW50UHJvcGVydGllcyk7CisgICAgdm9pZCBjcmVhdGVDRlVSTENvbm5lY3Rp
b24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciwg
Q0ZEaWN0aW9uYXJ5UmVmIGNsaWVudFByb3BlcnRpZXMpOwogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShNQUMpICYmICFVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIHZvaWQgY3JlYXRlTlNVUkxDb25u
ZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29s
IHNob3VsZENvbnRlbnRTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yKTsKKyAgICB2b2lkIGNyZWF0
ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvcik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykg
JiYgIVVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgdm9pZCBjcmVhdGVOU1VSTENvbm5lY3Rpb24o
aWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxk
Q29udGVudFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29ubmVjdGlv
blByb3BlcnRpZXMpOworICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRl
LCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBO
U0RpY3Rpb25hcnkgKmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKTsKICNlbmRpZgogCiAjaWYgVVNFKFNP
VVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDNiNzE0NGI1ODRhNTcxOTM5NDY3NWQ5YzkyOWM3Njc1
ODk0NTRmZmEuLjViYjc0NWI0NGE4MjJkZDg1YjM5NTA4ZjQ5MWY0OWI2ODQ3Mjg1OTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlc291
cmNlSGFuZGxlSW50ZXJuYWwpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBSZXNvdXJjZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291
cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRD
b250ZW50U25pZmYpCisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJjZUhhbmRsZSog
bG9hZGVyLCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRp
bmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmKQogICAgICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICAgICAsIG1fY2xpZW50KGNs
aWVudCkKICAgICAgICAgLCBtX2ZpcnN0UmVxdWVzdChyZXF1ZXN0KQpAQCAtODAsNiArODAsNyBA
QCBwdWJsaWM6CiAgICAgICAgICwgbV9wYXJ0aXRpb24ocmVxdWVzdC5jYWNoZVBhcnRpdGlvbigp
KQogICAgICAgICAsIG1fZGVmZXJzTG9hZGluZyhkZWZlcnNMb2FkaW5nKQogICAgICAgICAsIG1f
c2hvdWxkQ29udGVudFNuaWZmKHNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgLCBtX3Nob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmIHsgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgfQogICAg
ICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKGNsaWVudCAmJiBjbGllbnQtPnVzZXNBc3luY0Nh
bGxiYWNrcygpKQogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCiAgICAgICAgICwgbV9jdXJyZW50
UmVxdWVzdChyZXF1ZXN0KQpAQCAtMTE1LDYgKzExNiw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
bV9kZWZlcnNMb2FkaW5nOwogICAgIGJvb2wgbV9zaG91bGRDb250ZW50U25pZmY7CisgICAgYm9v
bCBtX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmOwogICAgIGJvb2wgbV91c2VzQXN5bmNDYWxs
YmFja3M7CiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICAgICBSZXRhaW5QdHI8Q0ZVUkxDb25u
ZWN0aW9uUmVmPiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA2M2ZjZThi
M2Y4ZmZiOWEzYjVhODQxMmE0NGZkNTg0MTRlYmNkY2VjLi44Yjk0ZWQ0NjdlMDdlNzg5MzQ1ZDEx
NGEyNjdiNmEyOWJmNTJjNTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTEyNiw3ICsxMjYs
NyBAQCBzdGF0aWMgaW5saW5lIENGU3RyaW5nUmVmIHNob3VsZFNuaWZmQ29ubmVjdGlvblByb3Bl
cnR5KCkKICNlbmRpZgogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5l
Y3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50
U25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5nQmVoYXZpb3IsIENGRGljdGlvbmFy
eVJlZiBjbGllbnRQcm9wZXJ0aWVzKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxD
b25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBTY2hlZHVsaW5nQmVo
YXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJvcGVydGll
cykKIHsKICAgICBpZiAoKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0
eSgpKSAmJiAhZmlyc3RSZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7
CiAgICAgICAgIC8vIENyZWRlbnRpYWxzIGZvciBmdHAgY2FuIG9ubHkgYmUgcGFzc2VkIGluIFVS
TCwgdGhlIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBkZWxlZ2F0ZSBjYWxsIHdv
bid0IGJlIG1hZGUuCkBAIC0xNjEsNyArMTYxLDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29s
CiAgICAgYXV0byByZXF1ZXN0ID0gYWRvcHRDRihDRlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29w
eShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmaXJzdFJlcXVlc3QoKS5jZlVSTFJlcXVlc3QoVXBkYXRl
SFRUUEJvZHkpKSk7CiAgICAgaWYgKGF1dG8gc3RvcmFnZVNlc3Npb24gPSBkLT5tX3N0b3JhZ2VT
ZXNzaW9uLmdldCgpKQogICAgICAgICBfQ0ZVUkxSZXF1ZXN0U2V0U3RvcmFnZVNlc3Npb24ocmVx
dWVzdC5nZXQoKSwgc3RvcmFnZVNlc3Npb24pOwotICAgIAorCisjaWYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMgorICAgIGlmICghc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAgICAgIF9DRlVSTFJlcXVlc3RTZXRQcm90b2Nv
bFByb3BlcnR5KHJlcXVlc3QuZ2V0KCksIGtDRlVSTFJlcXVlc3RDb250ZW50RGVjb2RlclNraXBV
UkxDaGVjaywga0NGQm9vbGVhblRydWUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxk
Q29udGVudEVuY29kaW5nU25pZmYpOworI2VuZGlmCisKICAgICBpZiAoIXNob3VsZENvbnRlbnRT
bmlmZikKICAgICAgICAgX0NGVVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkocmVxdWVzdC5n
ZXQoKSwgc2hvdWxkU25pZmZDb25uZWN0aW9uUHJvcGVydHkoKSwga0NGQm9vbGVhbkZhbHNlKTsK
IApAQCAtMjc3LDcgKzI4NCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIAogICAg
IFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5nQmVoYXZpb3IgPSBjbGllbnQoKS0+bG9hZGlu
Z1N5bmNocm9ub3VzWEhSKCkgPyBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzIDogU2No
ZWR1bGluZ0JlaGF2aW9yOjpBc3luY2hyb25vdXM7CiAKLSAgICBjcmVhdGVDRlVSTENvbm5lY3Rp
b24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmLCBz
Y2hlZHVsaW5nQmVoYXZpb3IsIGNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyh0aGlzKS5n
ZXQoKSk7CisgICAgY3JlYXRlQ0ZVUkxDb25uZWN0aW9uKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiwgZC0+bV9zaG91bGRDb250ZW50RW5jb2RpbmdT
bmlmZiwgc2NoZWR1bGluZ0JlaGF2aW9yLCBjbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXMo
dGhpcykuZ2V0KCkpOwogCiAgICAgZC0+bV9jb25uZWN0aW9uRGVsZWdhdGUtPnNldHVwQ29ubmVj
dGlvblNjaGVkdWxpbmcoZC0+bV9jb25uZWN0aW9uLmdldCgpKTsKICAgICBDRlVSTENvbm5lY3Rp
b25TdGFydChkLT5tX2Nvbm5lY3Rpb24uZ2V0KCkpOwpAQCAtNTg2LDcgKzU5Myw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4CiAgICAgU3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50Owog
ICAgIGNsaWVudC5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwg
cmVxdWVzdCwgJmNsaWVudCwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRD
b250ZW50U25pZmYqLykpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRv
cHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsICZjbGllbnQsIGZhbHNl
IC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8sIHRydWUgLypz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiovKSk7CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFn
ZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwog
CkBAIC01OTYsNyArNjAzLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICB9CiAKICAg
ICBoYW5kbGUtPmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9
PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBSZXNvdXJjZUhhbmRsZTo6c2hvdWxkQ29u
dGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLAotICAgICAgICBTY2hlZHVsaW5nQmVoYXZpb3I6
OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyhoYW5k
bGUuZ2V0KCkpLmdldCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5jb2RpbmdT
bmlmZigpLCBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNsaWVudCgp
LT5jb25uZWN0aW9uUHJvcGVydGllcyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKIAogICAgIENGVVJM
Q29ubmVjdGlvblNjaGVkdWxlV2l0aFJ1bkxvb3AoaGFuZGxlLT5jb25uZWN0aW9uKCksIENGUnVu
TG9vcEdldEN1cnJlbnQoKSwgc3luY2hyb25vdXNMb2FkUnVuTG9vcE1vZGUoKSk7CiAgICAgQ0ZV
UkxDb25uZWN0aW9uU2NoZWR1bGVEb3dubG9hZFdpdGhSdW5Mb29wKGhhbmRsZS0+Y29ubmVjdGlv
bigpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIHN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2RlKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQppbmRleCAzOTQwZGJlMGJhY2Q3ZDBjMjI2NjY0ZDU5MjljZTUyYzE2
MzBjZmE2Li5jYjViNzY0OWU1MmY0YTBiYjdlZTE3NDI3OTU2ZTE4OWMxMmRmNjc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQpAQCAtMTI0LDkgKzEyNCw5IEBAIHN0YXRpYyBib29sIHN5bmNocm9ub3VzV2ls
bFNlbmRSZXF1ZXN0RW5hYmxlZCgpCiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpCi12b2lk
IFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hl
ZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvcikKICNlbHNl
Ci12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
LCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25hcnkgKmNv
bm5lY3Rpb25Qcm9wZXJ0aWVzKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25u
ZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29s
IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2No
ZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpjb25uZWN0
aW9uUHJvcGVydGllcykKICNlbmRpZgogewogI2lmICFIQVZFKFRJTUlOR0RBVEFPUFRJT05TKQpA
QCAtMTYwLDIwICsxNjAsMjIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25u
ZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICB9CiAKICAg
ICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChV
cGRhdGVIVFRQQm9keSk7Ci0gICAgaWYgKCFzaG91bGRDb250ZW50U25pZmYpIHsKLSAgICAgICAg
TlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBtdXRhYmxl
Q29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFByb3BlcnR5
OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxk
U25pZmZdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CiAKKyAg
ICBhdXRvIG11dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbbnNSZXF1ZXN0IG11dGFibGVDb3B5XSk7
CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMgorICAgIGlmICghc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAgICAgIFtt
dXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChZRVMpIGZvcktleTooTlNTdHJpbmcgKilrQ0ZV
UkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2tdOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworI2VuZGlmCiAjaWYgSEFWRShDRk5F
VFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24g
PSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRpdGlvbihm
aXJzdFJlcXVlc3QoKSk7Ci0gICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHkoKSkgewot
ICAgICAgICBOU011dGFibGVVUkxSZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNSZXF1ZXN0
IG11dGFibGVDb3B5XSBhdXRvcmVsZWFzZV07CisgICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlz
RW1wdHkoKSkKICAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpzdG9yYWdlUGFy
dGl0aW9uIGZvcktleTpAIl9fU1RPUkFHRV9QQVJUSVRJT05fSURFTlRJRklFUiJdOwotICAgICAg
ICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CiAjZW5kaWYKKyAgICBpZiAoIXNo
b3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpA
KE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNu
aWZmXTsKKyAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdC5hdXRvcmVsZWFzZSgpOwogCiAg
ICAgaWYgKGQtPm1fc3RvcmFnZVNlc3Npb24pCiAgICAgICAgIG5zUmVxdWVzdCA9IFtjb3B5UmVx
dWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBuc1JlcXVl
c3QpIGF1dG9yZWxlYXNlXTsKQEAgLTI1MSwxMiArMjUzLDE0IEBAIGJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KCkKICAgICAgICAgUmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LAogICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQtPmxvY2Fs
RmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZiwKICAgICAgICAgc2NoZWR1bGluZ0JlaGF2aW9yKTsKICNlbHNlCiAgICAg
Y3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFrZURlbGVn
YXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UsCiAgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQtPm1fY29u
dGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBkLT5tX3No
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLAogICAgICAgICBzY2hlZHVsaW5nQmVoYXZpb3IsCiAg
ICAgICAgIChOU0RpY3Rpb25hcnkgKiljbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXModGhp
cykuZ2V0KCkpOwogI2VuZGlmCkBAIC0zOTcsNyArNDAxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXgKICAgICBTeW5jaHJvbm91c0xvYWRlckNsaWVudCBjbGllbnQ7CiAgICAgY2xpZW50LnNl
dEFsbG93U3RvcmVkQ3JlZGVudGlhbHMoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3k6OlVzZSk7CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhh
bmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmY2xp
ZW50LCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiov
KSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVz
b3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJmNsaWVudCwgZmFsc2UgLypkZWZlcnNMb2Fk
aW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmKi8pKTsKIAogICAgIGhhbmRsZS0+ZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNv
bnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCk7CiAKQEAgLTQxMiwxMiAr
NDE2LDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hy
b25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAgICAgICAgIGhhbmRsZS0+bWFrZURl
bGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UsCiAgICAgICAgIGhhbmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkgfHwg
Y29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBoYW5k
bGUtPnNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKCksCiAgICAgICAgIFNjaGVkdWxpbmdCZWhh
dmlvcjo6U3luY2hyb25vdXMpOwogI2Vsc2UKICAgICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVj
dGlvbigKICAgICAgICAgaGFuZGxlLT5tYWtlRGVsZWdhdGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UpLCAvLyBBIHN5bmNocm9ub3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBhIGRvd25s
b2FkLCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KICAgICAgICAg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCiAgICAgICAgIGhhbmRsZS0+c2hvdWxkQ29udGVu
dFNuaWZmKCkgfHwgKGNvbnRleHQgJiYgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZCgpKSwKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigp
LAogICAgICAgICBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzLAogICAgICAgICAoTlNE
aWN0aW9uYXJ5ICopaGFuZGxlLT5jbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXMoaGFuZGxl
LmdldCgpKS5nZXQoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNzQ5OTk3
MmVmZThlNmZiYTEwODUyOWUwNDBiM2Q3ODU2Zjc4NDAwMC4uM2I3Y2VkNGRiZTQyNGRkZTJhNDIz
MDZlYTkyZWNmYTY3NWY2OTFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTkwLDkgKzkw
LDkgQEAgU291cFNlc3Npb24qIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OnNvdXBTZXNzaW9uKCkK
ICAgICByZXR1cm4gbV9zZXNzaW9uID8gbV9zZXNzaW9uLT5zb3VwU2Vzc2lvbigpIDogc2Vzc2lv
bkZyb21Db250ZXh0KG1fY29udGV4dC5nZXQoKSk7CiB9CiAKLVJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVu
dCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKK1JlZlB0cjxS
ZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikKIHsKLSAgICBhdXRvIG5ld0hhbmRs
ZSA9IGFkb3B0UmVmKCpuZXcgUmVzb3VyY2VIYW5kbGUoc2Vzc2lvbiwgcmVxdWVzdCwgY2xpZW50
LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKKyAgICBhdXRvIG5ld0hhbmRs
ZSA9IGFkb3B0UmVmKCpuZXcgUmVzb3VyY2VIYW5kbGUoc2Vzc2lvbiwgcmVxdWVzdCwgY2xpZW50
LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmKSk7CiAKICAgICBpZiAobmV3SGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBl
ICE9IE5vRmFpbHVyZSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUobmV3SGFuZGxlKTsKQEAgLTEw
Myw4ICsxMDMsOCBAQCBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVh
dGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdAogICAgIHJldHVybiBudWxscHRy
OwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoU291cE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYpCi0gICAgOiBkKHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhp
cywgbnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50
U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkKK1Jlc291cmNl
SGFuZGxlOjpSZXNvdXJjZUhhbmRsZShTb3VwTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwg
Ym9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRD
b250ZW50RW5jb2RpbmdTbmlmZikKKyAgICA6IGQoc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUhh
bmRsZUludGVybmFsPih0aGlzLCBudWxscHRyLCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRp
bmcsIHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51
cmwoKSksIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSkKIHsKICAgICBpZiAoIXJlcXVlc3Qu
dXJsKCkuaXNWYWxpZCgpKSB7CiAgICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFp
bHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA3OWQ4YzM4YmM3
ODE4OWEyM2E3YjBlOGY1MmJiNzgwOWNjZDM1YWIyLi4wOTZmMDU1NWFjMWVlNDUyYjY0NWEyYmI5
Y2VkNTJlMTY1MTU0YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAg
LTYxMyw2ICs2MTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRl
UmVxdWVzdCgpCiAgICAgb3B0aW9ucy5pbml0aWF0b3IgPSBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzKCkueG1saHR0cHJlcXVlc3Q7CiAgICAgb3B0aW9ucy5zYW1lT3JpZ2luRGF0YVVS
TEZsYWcgPSBTYW1lT3JpZ2luRGF0YVVSTEZsYWc6OlNldDsKICAgICBvcHRpb25zLmZpbHRlcmlu
Z1BvbGljeSA9IFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5OjpFbmFibGU7CisgICAgb3B0aW9ucy5z
bmlmZkNvbnRlbnRFbmNvZGluZyA9IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpEb05v
dFNuaWZmOwogCiAgICAgaWYgKG1fdGltZW91dE1pbGxpc2Vjb25kcykgewogICAgICAgICBpZiAo
IW1fYXN5bmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5jcHAKaW5kZXggYmI3ZjE3NTFmZmU0YTE5YmU1Mzg4M2NkNWUxYjFhZTM4MzgwMjU1Ny4u
YTY0MmFlNTVlMjVlMThmZTAzNTYzNGI1NDhkMjBlNTEzZGY4ZGQ1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTMsMTAgKzUz
LDEwIEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKE5ldHdv
cmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0CiAgICAgICAgIHJldHVybiBOZXR3b3JrRGF0
YVRhc2tCbG9iOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBh
cmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLmJsb2JGaWxlUmVmZXJl
bmNlcyk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNr
Q29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1l
dGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQ
b2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSk7CisgICAgcmV0dXJuIE5ldHdvcmtE
YXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3Qs
IHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNu
aWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBw
YXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFt
ZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkpOwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCi0gICAg
cmV0dXJuIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFt
ZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1l
dGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CisgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza1NvdXA6
OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5z
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmlu
Z1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWQuY3BwCmluZGV4IGEzYzk1ZGQ2M2FkZTI2YTlhYTJmMTUwOGRkZjBkNjNlMmVkMTVmMDUu
LjY3OTQ2YTI5ZWRhNGU1ZjFkODQ4Mjk5OGE3ZmQ1NjE5OWZmNzRlMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAg
TmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50JiBjbGllbnQsIE5ldHdv
cmtMb2FkUGFyYW1ldGVycyYmIHBhcmEKICAgICAsIG1fbmV0d29ya2luZ0NvbnRleHQoUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShtX3BhcmFtZXRlcnMuc2Vzc2lvbklELCBtX3BhcmFt
ZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpCiAgICAgLCBt
X2N1cnJlbnRSZXF1ZXN0KG1fcGFyYW1ldGVycy5yZXF1ZXN0KQogewotICAgIG1faGFuZGxlID0g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX25ldHdvcmtpbmdDb250ZXh0LmdldCgpLCBtX3BhcmFt
ZXRlcnMucmVxdWVzdCwgdGhpcywgbV9wYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcsIG1fcGFyYW1l
dGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPT0gU25pZmZDb250ZW50KTsKKyAgICBtX2hhbmRs
ZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKSwgbV9w
YXJhbWV0ZXJzLnJlcXVlc3QsIHRoaXMsIG1fcGFyYW1ldGVycy5kZWZlcnNMb2FkaW5nLCBtX3Bh
cmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID09IFNuaWZmQ29udGVudCwgbV9wYXJhbWV0
ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID09IENvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5OjpTbmlmZkZpbGVuYW1lKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCAyNWFh
NTA1ODBkZTlhOThhY2RjMDI3YTgxMDdhMjhlYTg5MzQ3NTc4Li44MzI3ODk3OTg4YjY0ZmYzMmU0
MTgzYTU5ODA2M2U0YWY1ZmNjYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGlj
OgogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCB7IFBBTDo6U2Vzc2lvbklEOjplbXB0eVNl
c3Npb25JRCgpIH07CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdl
YkNvcmU6OlNuaWZmQ29udGVudCB9OworICAgIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6Q29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIH07CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeyBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgfTsKICAgICBXZWJDb3JlOjpDbGllbnRDcmVkZW50
aWFsUG9saWN5IGNsaWVudENyZWRlbnRpYWxQb2xpY3kgeyBXZWJDb3JlOjpDbGllbnRDcmVkZW50
aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyB9OwogICAgIGJvb2wgc2hv
dWxkRm9sbG93UmVkaXJlY3RzIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcApp
bmRleCBlOTYzNTc2MmI2NWY1MzI0MTJmYmVmZGQxMTM3NGRjZDNhNTQ5NWQwLi5jZDIxNjU3MmYy
NTdkMDkxYzJmZGUzZjI0YWRhZGFmYmVkNzBjYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcApAQCAtNzQsNiArNzQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIH0KIAogICAgIGVuY29k
ZXIuZW5jb2RlRW51bShjb250ZW50U25pZmZpbmdQb2xpY3kpOworICAgIGVuY29kZXIuZW5jb2Rl
RW51bShjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSk7CiAgICAgZW5jb2Rlci5lbmNvZGVF
bnVtKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oY2xp
ZW50Q3JlZGVudGlhbFBvbGljeSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNob3VsZFByZWNv
bm5lY3RPbmx5KTsKQEAgLTE0MSw2ICsxNDIsOCBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyYwog
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmNvbnRlbnRTbmlmZmluZ1BvbGlj
eSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShy
ZXN1bHQuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LnN0b3JlZENyZWRlbnRpYWxz
UG9saWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVF
bnVtKHJlc3VsdC5jbGllbnRDcmVkZW50aWFsUG9saWN5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkLmNwcAppbmRleCA2OTEzOTY1ODAyOGYzZDQyOWU3YzZlOWFmOTQ1Y2UxOGQ2NDMy
ZWRlLi5hZjYzNjcwYzkxNGE1ZWQyYjBiMzc4ZTgxN2ZlZTUyODI5YjEyOWM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0
aXZlTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCkBAIC01Niw2ICs1Niw3IEBAIFNwZWN1bGF0aXZl
TG9hZDo6U3BlY3VsYXRpdmVMb2FkKENhY2hlJiBjYWNoZSwgY29uc3QgR2xvYmFsRnJhbWVJRCYg
ZnJhbWVJRCwgY29uCiAgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOwogICAgIHBhcmFtZXRlcnMuY29udGVu
dFNuaWZmaW5nUG9saWN5ID0gRG9Ob3RTbmlmZkNvbnRlbnQ7CisgICAgcGFyYW1ldGVycy5jb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
OjpTbmlmZjsKICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBtX29yaWdpbmFsUmVxdWVzdDsKICNp
ZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIG1fbmV0d29ya0xvYWQgPSBzdGQ6Om1ha2VfdW5p
cXVlPE5ldHdvcmtMb2FkPigqdGhpcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgKlNlc3Npb25UcmFj
a2VyOjpuZXR3b3JrU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLmgKaW5kZXggNzVmYzk3ZGY5YzM4MWY1M2RmMTFjNzRlMDcyYzIyYTQ1
NWViMWI2ZC4uODg3NWM5Y2U5ZmM1ZTI3MWE1MmIzZTg3OTAyMjNiMmExYTgwYjlmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29h
OwogY2xhc3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFU
YXNrIHsKICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNz
aW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3Vs
ZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKKyAgICBzdGF0aWMgUmVm
PE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3Jr
RGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlm
ZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQs
IHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RP
bmx5KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29h
KHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3Vs
ZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5KSk7CiAgICAg
fQogCiAgICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC03MCw3ICs3MCw3IEBAIHB1Ymxp
YzoKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygp
IHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKIHByaXZhdGU6Ci0gICAgTmV0d29y
a0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5KTsKKyAgICBOZXR3
b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRC
YXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5k
ZXggZGY2NGUzOWJlNjE1NWNkZmU2NTBlYjM0MTcxM2JiNTYxZjg1NzQ3OC4uYTc1OWZjYzE2ZDE4
YmVlMDc0Yzk0NTRmYTllMDU1MWVkMTdiYWI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC03
NCw3ICs3NCw3IEBAIHN0YXRpYyBmbG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShXZWJD
b3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICByZXR1cm4gTlNVUkxTZXNz
aW9uVGFza1ByaW9yaXR5RGVmYXVsdDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tD
bGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQ
cmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKK05ldHdvcmtEYXRhVGFza0NvY29h
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAg
IDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFs
cywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QpCiB7CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWls
dXJlKQpAQCAtMTA0LDI0ICsxMDQsMjYgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtE
YXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICNlbmRp
ZgogICAgIAogICAgIE5TVVJMUmVxdWVzdCAqbnNSZXF1ZXN0ID0gcmVxdWVzdC5uc1VSTFJlcXVl
c3QoV2ViQ29yZTo6VXBkYXRlSFRUUEJvZHkpOwotICAgIGlmIChzaG91bGRDb250ZW50U25pZmYg
PT0gV2ViQ29yZTo6RG9Ob3RTbmlmZkNvbnRlbnQgfHwgdXJsLnByb3RvY29sSXMoImZpbGUiKSkg
ewotICAgICAgICBOU011dGFibGVVUkxSZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNSZXF1
ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVsZWFzZV07Ci0gICAgICAgIFttdXRhYmxlUmVxdWVzdCBf
c2V0UHJvcGVydHk6QChOTykgZm9yS2V5OihOU1N0cmluZyAqKV9rQ0ZVUkxDb25uZWN0aW9uUHJv
cGVydHlTaG91bGRTbmlmZl07Ci0gICAgICAgIG5zUmVxdWVzdCA9IG11dGFibGVSZXF1ZXN0Owot
ICAgIH0KIAorICAgIGF1dG8gbXV0YWJsZVJlcXVlc3QgPSBhZG9wdE5TKFtuc1JlcXVlc3QgbXV0
YWJsZUNvcHldKTsKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMzAyCisgICAgaWYgKHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID09
IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpEb05vdFNuaWZmKQorICAg
ICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFByb3BlcnR5OkAoWUVTKSBmb3JLZXk6KE5TU3RyaW5n
ICopa0NGVVJMUmVxdWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrXTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKKyNlbmRpZgorICAgIGlm
IChzaG91bGRDb250ZW50U25pZmYgPT0gV2ViQ29yZTo6RG9Ob3RTbmlmZkNvbnRlbnQgfHwgdXJs
LnByb3RvY29sSXMoImZpbGUiKSkKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0
eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNob3Vs
ZFNuaWZmXTsKICAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vz
c2lvbkNvY29hJj4obV9zZXNzaW9uLmdldCgpKTsKKyAgICBpZiAoIWNvY29hU2Vzc2lvbi5tX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllci5pc051bGwoKSkKKyAgICAgICAgW211dGFibGVSZXF1ZXN0
IHNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjpjb2NvYVNlc3Npb24ubV9ib3VuZEludGVyZmFj
ZUlkZW50aWZpZXJdOworICAgIG5zUmVxdWVzdCA9IG11dGFibGVSZXF1ZXN0LmF1dG9yZWxlYXNl
KCk7CisKICAgICBpZiAoc2Vzc2lvbi5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zaG91bGRCbG9j
a0Nvb2tpZXMocmVxdWVzdCkpIHsKICAgICAgICAgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAgICAgICAgIG1fc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6
RG9Ob3RVc2U7CiAgICAgfQogCi0gICAgaWYgKCFjb2NvYVNlc3Npb24ubV9ib3VuZEludGVyZmFj
ZUlkZW50aWZpZXIuaXNOdWxsKCkpIHsKLSAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0
YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAg
ICAgICBbbXV0YWJsZVJlcXVlc3Qgc2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOmNvY29hU2Vz
c2lvbi5tX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllcl07Ci0gICAgICAgIG5zUmVxdWVzdCA9IG11
dGFibGVSZXF1ZXN0OwotICAgIH0KLQogICAgIGlmIChzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9
PSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKSB7CiAgICAgICAgIG1fdGFz
ayA9IFtjb2NvYVNlc3Npb24ubV9zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlIGRhdGFUYXNr
V2l0aFJlcXVlc3Q6bnNSZXF1ZXN0XTsKICAgICAgICAgQVNTRVJUKCFjb2NvYVNlc3Npb24ubV9k
YXRhVGFza01hcFdpdGhDcmVkZW50aWFscy5jb250YWlucyhbbV90YXNrIHRhc2tJZGVudGlmaWVy
XSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDQ1MDc3YTQwZmFlZTE5ZmM0M2IyNGU2YWRhNzllMDMxYTk3
NzVmNjYuLjExNDFkMGJmOTc5ZTMzNGEzZTdkZWU1ODYzZDU2YjA4NzY5YzNiYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKQEAgLTI0Miw2ICsyNDIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVs
ZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogICAgIExP
RyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2No
ZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJv
Y2VzcyB3aXRoIHByaW9yaXR5ICVkIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkubGF0
aW4xKCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5w
cmlvcml0eSgpKSk7CiAKICAgICBDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5n
UG9saWN5ID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkU25pZmZDb250ZW50KCkgPyBTbmlmZkNvbnRl
bnQgOiBEb05vdFNuaWZmQ29udGVudDsKKyAgICBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGlj
eSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFNu
aWZmQ29udGVudEVuY29kaW5nKCkgPyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25p
ZmYgOiBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6RG9Ob3RTbmlmZjsKICAgICBTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHJlc291cmNlTG9h
ZGVyLnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6VXNlIDogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOwogCiAgICAgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CkBAIC0yNTEsNiArMjUyLDcg
QEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNz
KFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQg
PSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAg
IGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1Bv
bGljeTsKKyAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9
IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgLy8gSWYg
dGhlcmUgaXMgbm8gV2ViRnJhbWUgdGhlbiB0aGlzIHJlc291cmNlIGNhbm5vdCBiZSBhdXRoZW50
aWNhdGVkIHdpdGggdGhlIGNsaWVudC4KICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVkZW50
aWFsUG9saWN5ID0gKHdlYkZyYW1lICYmIHdlYlBhZ2UgJiYgcmVzb3VyY2VMb2FkZXIuaXNBbGxv
d2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMoKSkgPyBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpN
YXlBc2tDbGllbnRGb3JDcmVkZW50aWFscyA6IENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5v
dEFza0NsaWVudEZvckNyZWRlbnRpYWxzOwpAQCAtNDA1LDYgKzQwNyw3IEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQsIHVuCiAgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdl
YlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsK
ICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVy
cy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBTbmlmZkNvbnRlbnQ7CisgICAgbG9hZFBhcmFtZXRl
cnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBDb250ZW50RW5jb2RpbmdTbmlmZmlu
Z1BvbGljeTo6U25pZmY7CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRD
cmVkZW50aWFsUG9saWN5ID0gY2xpZW50Q3JlZGVudGlhbFBvbGljeTsKICAgICBsb2FkUGFyYW1l
dGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0ID0gY29udGV4dC0+
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBmMGRj
NTk1NjI2MDFhNjJkMjIyMTU1NjMxNjAyY2QwZTRlMTMxY2EuLmEyZGQzODY3NGRjNzg3MmE3NmU2
ZDYyMTQ4YTI3ZThhZTkxZjk0MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNiBAQAogMjAxNy0xMC0yNyAg
RGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgWE1MSHR0cFJlcXVl
c3Qgc2hvdWxkIG5vdCBzbmlmZiBjb250ZW50IGVuY29kaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU1OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMzODIyMjQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZpeCB1cCB0aGUgdGVzdCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29u
dGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbCB0bworICAgICAgICBhY3R1YWxseSBj
aGVjayB0aGF0IHdlIGRvIG5vdCBzbmlmZiBjb250ZW50IGVuY29kaW5nLiBDRk5ldHdvcmsgb25s
eSBzbmlmZnMgdGhlIFVSTAorICAgICAgICBmb3IgdGhlIGNvbnRlbnQgZW5jb2Rpbmcgd2hlbiB0
aGUgZmlsZW5hbWUgZW5kcyB3aXRoIGtub3duIGZpbGUgZXh0ZW5zaW9uIChlLmcuIC5neikKKyAg
ICAgICAgYW5kIHRoZSBIVFRQIHJlc3BvbnNlIGRvZXMgbm90IHNwZWNpZnlpbmcgYSBDb250ZW50
LUVuY29kaW5nIEhUVFAgaGVhZGVyLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczogU2tp
cCB0aGUgdGVzdCBvbiBhbGwgcGxhdGZvcm1zLiBPbmNlIDxyZGFyOi8vcHJvYmxlbS8zMzgyMjI0
OT4gc2hpcHMKKyAgICAgICAgdGhlbiB3ZSB3aWxsIGVuYWJsZSB0aGUgdGVzdCBvbiBhbGwgcGxh
dGZvcm1zIHRoYXQgdXNlIENGTmV0d29yay4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUt
bm8tY29udGVudC1lbmNvZGluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzLy5odGFjY2VzczogSW50ZXJwcmV0IGZpbGVzIHdpdGggLnBocC5neiBl
eHRlbnNpb24gYXMgUEhQIGZpbGVzLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3o6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9n
emlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIHRoZSB0ZXN0IGZvciBub3cgdW50aWwgPHJkYXI6Ly9w
cm9ibGVtLzMzODIyMjQ5PiBzaGlwcy4KKworMjAxNy0xMC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CisKICAgICAgICAgT25seSBhbGxvdyBub24tbWl4ZWQgY29udGVudCBw
cm90ZWN0ZWQgc3VicmVzb3VyY2VzIHRvIGFzayBmb3IgY3JlZGVudGlhbHMKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODkxOQogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzUwMTUyNDU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlMjY1Yzg4NTg0Yzdi
MzE3YzVjZWQ0YTQ5MmUyMmNkNjA1YjU1ZDBmLi44OTM1ZmI0MTFkYzc0ODg0ZGJjYjdiZDVjNzM4
OGYyOTdjMDY3MTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxMyw2ICsyMTMsOSBAQCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9nZW5lcmFsLmFueS53
b3JrZXIuaHRtbCBbIFNraXAgXQogIyBOb3Qgc3VwcG9ydGVkCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2ggWyBTa2lwIF0KIAorIyBDb250ZW50IGVuY29k
aW5nIHNuaWZmaW5nIGlzIG9ubHkgc3VwcG9ydGVkIGJ5IENGTmV0d29yay4KK2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1s
IFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIHBs
YXRmb3JtLXNwZWNpZmljIHRlc3RzLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwpAQCAtMTQ5Myw4ICsxNDk2LDYgQEAgd2Via2l0Lm9yZy9iLzE3NTI4OCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy9vdXRsaW5lLTAxNi5odG0KIHdlYmtpdC5v
cmcvYi8xNzUyODggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMv
b3V0bGluZS0wMTkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE3NTI5
MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJm
bG93LTAwNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNzU1OTcg
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVu
Y29kaW5nLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE3MTk0NSBwZXJmL2NsYXNz
LWxpc3QtcmVtb3ZlLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcv
Yi8xNzYxODMgZmFzdC9ibG9jay9pbnNpZGUtaW5saW5lcy9vcGFjaXR5LW9uLWlubGluZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNv
bnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dAppbmRleCA4NmQ1MWRm
OTU5M2IyNTRiYmZhMDc1ZWZhM2E2YzUwMGQ2NjQ5NDExLi43NGY5MWE4OGU5ZTA1NDJmYzhjYjky
NDFiZTg5MDlmMzFmODVkYjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1j
b250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3
IEBACiBUZXN0IHRoYXQgYW4gWE1MSHR0cFJlcXVlc3Qgd2l0aCBDb250ZW50LVR5cGU6IGd6aXAg
aXMgcHJvcGVybHkgdW5jb21wcmVzc2VkLgogCiBDb250ZW50IFR5cGU6IGFwcGxpY2F0aW9uL29j
dGV0LXN0cmVhbQotQ29udGVudCBFbmNvZGluZzogbnVsbAorQ29udGVudCBFbmNvZGluZzogZ3pp
cAogQ29udGVudCBMZW5ndGg6IDI4MgogUkVTUE9OU0UgMjAwOiBbb2JqZWN0IEFycmF5QnVmZmVy
XQogTEVOR1RIOiA0NDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1j
b250ZW50LWVuY29kaW5nLmh0bWwKaW5kZXggOGFlNTU0OTcyMTcyNjhhZWQ5Y2JmNTUwNTkyZTI4
MWFiMTQ0ZGJkMy4uNzkyNjI4NzdlYzQ4NjcyODViNzEzZTdjNmEzOTMxMjI4NzQ0ODA0NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRl
bnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5n
Lmh0bWwKQEAgLTE2LDcgKzE2LDcgQEAgY29uc3QgbG9nID0gdGV4dCA9PiB7CiB9OwogCiBjb25z
dCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLXhoci5vcGVuKCdHRVQnLCAncmVzb3VyY2Vz
L2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAnKTsKK3hoci5vcGVuKCdHRVQnLCAn
cmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3onKTsKIHhoci5y
ZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwogeGhyLm9uZXJyb3IgPSBlID0+IGxvZyhgRkFJ
TEVEOiAke3hoci5zdGF0dXN9ICR7eGhyLnN0YXR1c1RleHR9YCk7CiB4aHIub25yZWFkeXN0YXRl
Y2hhbmdlID0gKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvLmh0YWNjZXNzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvLmh0YWNjZXNzCmluZGV4IDkyNzc5NDAxZTdkNWU5ZWQ2
NDVhMDg5NDZhNWU0YWRiOTJjYTA1NGUuLjAyNTI2MDczZWU2NjcyZWQzMGVlNjliNGIxYmU0Y2Ji
MmU0YTMyNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzLy5odGFjY2VzcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy8uaHRhY2Nlc3MKQEAgLTEwLDMgKzEwLDUgQEAgQWRkQ2hhcnNl
dCB3aW5kb3dzLTEyNTEgLnhtbAogPEZpbGVzICJub0NvbnRlbnRUeXBlLmFzaXMiPgogRGVmYXVs
dFR5cGUgTm9uZQogPC9GaWxlcz4KKworQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLXBocCAu
cGhwLmd6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250
ZW50LWVuY29kaW5nLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRhYjIyM2Fh
MTBlMTVmZGQ4ZDdlYWYyYzYzN2I5MGMxMzk0NGQ3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwCisrKyAvZGV2
L251bGwKQEAgLTEsOCArMCwwIEBACi08P3BocAotJHRleHQgPSAiTG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVt
cG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0g
YWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3Jp
cyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVy
ZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBk
b2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBj
dXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50
IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLiI7Ci0kZ3ppcFRleHQgPSBnemVuY29kZSgkdGV4
dCwgNik7Ci0KLWhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0i
KTsKLQotZWNobyAkZ3ppcFRleHQ7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29k
aW5nLnBocC5neiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3oKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRh
YjIyM2FhMTBlMTVmZGQ4ZDdlYWYyYzYzN2I5MGMxMzk0NGQ3ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9y
ZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3oKQEAgLTAsMCArMSw4IEBACis8P3BocAorJHRl
eHQgPSAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2Npbmcg
ZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9y
ZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhl
cmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBj
b25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVw
dGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBF
eGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1
bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLiI7Cisk
Z3ppcFRleHQgPSBnemVuY29kZSgkdGV4dCwgNik7CisKK2hlYWRlcigiQ29udGVudC1UeXBlOiBh
cHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsKKworZWNobyAkZ3ppcFRleHQ7Cis/PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MWU1MTU1ZmY4MWNjYzQ5
NTM1ZmM0NGI2ODZlMGEwNDA4OTk1OWI1Li5iNzViMzQ4MmViMTg2MzJjNGUxYmE3MTllNjMzODI5
NDNmYmI0Y2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMzEsNiArMzEsOSBAQCBmYXN0L2V2ZW50cy9kby1ub3QtZHJhZy1hbmQtZHJvcC1kYXRhLWRl
dGVjdG9ycy1saW5rLmh0bWwgWyBQYXNzIF0KIAogZmFzdC94bWxodHRwcmVxdWVzdC9zZXQtZGFu
Z2Vyb3VzLWhlYWRlcnMtaW4tZGFzaGJvYXJkLmh0bWwgWyBQYXNzIF0KIAorIyBGSVhNRTogVW5z
a2lwIHRoaXMgdGVzdCBvbmNlIHRoZSBmaXggZm9yIDxyZGFyOi8vcHJvYmxlbS8zMzgyMjI0OT4g
c2hpcHMuCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNv
bnRlbnQtZW5jb2RpbmcuaHRtbCBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325233</attachid>
            <date>2017-10-27 20:03:47 -0700</date>
            <delta_ts>2017-10-27 20:04:43 -0700</delta_ts>
            <desc>Patch and layout tests</desc>
            <filename>bug-175597-20171027200346.patch</filename>
            <type>text/plain</type>
            <size>58438</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhMmI0M2IzM2YzZWYw
MzFjMzAzZjE2NDc4Yzk2MzM0ZGU2ZGE5Ni4uNTAxOTY2NmQxYjc0ZTZmZmFmYjAzMWE4YjdiOGUy
MDg3ZGU3ZmM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE3LTEwLTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBz
aG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3Nv
Y2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3QgdG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBi
ZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVjb21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNl
IG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5nIEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZp
Y2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3VsZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJl
c3BvbnNlIHdpdGggaGVhZGVycworICAgICAgICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9n
emlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2Vz
IG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBIVFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMg
WmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdh
cmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+LgorCisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0
IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1
ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAgIHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVu
dCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3RoZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxs
IGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2VxdWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWln
aHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUgYnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
OjpzaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOiBFbmFibGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVz
b3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRsZSk6IERpdHRvLiBXZSBzaG91bGQgbG9vayB0
byBkaXNhYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4KKyAgICAgICAgYSBzdWJzZXF1
ZW50IGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOiBNb2RpZmllZCB0
byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29kaW5n
IHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCk6IE1vZGlmaWVkIHRvIHRha2UgYSBib29sZWFuIGFzIHRvIHdo
ZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQKKyAgICAgICAgZW5jb2Rpbmcgc25pZmZpbmcuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOiBNb2Rp
ZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0aGUgQ0ZN
dXRhYmxlVVJMUmVxdWVzdFJlZiBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4y
LgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlv
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24p
OiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250
ZW50IGVuY29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0
aGUgTlNNdXRhYmxlVVJMUmVxdWVzdCBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4x
My4yLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhh
dmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOiBNb2RpZmll
ZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29k
aW5nIHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNl
SGFuZGxlKTogRGl0dG8uCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KTogRG8gbm90IGVuYWJs
ZSBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIGZvciB0aGUgcmVxdWVzdC4KKworMjAxNy0xMC0y
NyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKICAgICAgICAgT25seSBhbGxv
dyBub24tbWl4ZWQgY29udGVudCBwcm90ZWN0ZWQgc3VicmVzb3VyY2VzIHRvIGFzayBmb3IgY3Jl
ZGVudGlhbHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3ODkxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTUyNDU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCA0NDliMWRkYWE2OWY3NjEyODg1YjFmODQ5MzNkOWE0NTA5MDcyNTJhLi42MzM3ZjRl
YWU4ZDA2NGEyMWViOTY0ZDRmNzZlYjIzN2RiMDA2ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxNy0xMC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgWE1MSHR0cFJlcXVlc3Qgc2hvdWxkIG5vdCBzbmlmZiBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzU1OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzODIyMjQ5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvcndhcmQgZGVjbGFyZSBDRk5ldHdv
cmsgU1BJLgorCisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKwogMjAxNy0x
MC0yNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBFbmFibGUgV2ViS2l0IGxvZ2dpbmcgY29uZmlndXJhdGlvbiBhbmQgZGlz
cGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAyM2VlYTdkNGYxZTcwNjRmN2ZmMGM3YWQyOGNiZDNlMzE2MjU0ZTM0
Li4xYzg4MmUyOGRmZTU3Njc2M2U3MTZjMTgxZjEwN2QwNjM4ZTc2YTlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDQ2IEBACiAyMDE3LTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBzaG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5j
b2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhl
IGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3NvY2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3Qg
dG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBiZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVj
b21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNlIG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5n
IEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZpY2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3Vs
ZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJlc3BvbnNlIHdpdGggaGVhZGVycworICAgICAg
ICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9nemlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6
IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2VzIG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBI
VFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMgWmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1h
em9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdhcmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+Lgor
CisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNu
aWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAg
IHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3Ro
ZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxsIGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2Vx
dWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWlnaHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUg
YnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSk6IFBh
c3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrTG9hZDo6TmV0d29ya0xvYWQpOiBEaXR0by4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOiBFbmNvZGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzOjpkZWNvZGUpOiBEZWNvZGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBwb2xp
Y3kuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRp
dmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxv
YWQ6OlNwZWN1bGF0aXZlTG9hZCk6IEVuYWJsZSBjb250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1h
dGNoIGV4aXN0aW5nCisgICAgICAgIGJlaGF2aW9yLiBXZSBzaG91bGQgbG9vayB0byBkaXNhYmxl
IGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4gYSBzdWJzZXF1ZW50IGNoYW5nZS4KKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpEb3dubG9hZDo6c3RhcnQpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBt
YXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnN0YXJ0
V2l0aEhhbmRsZSk6IERpdHRvLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29h
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6IE1vZGlmaWVkIHRvIHRha2UgdGhlIGNvbnRlbnQgZW5j
b2Rpbmcgc25pZmZpbmcKKyAgICAgICAgcG9saWN5IGFuZCBhcHBseSBpdCB0byB0aGUgTlNNdXRh
YmxlVVJMUmVxdWVzdCBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4yLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nl
c3MpOiBQYXNzIHRocm91Z2ggdGhlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5Lgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseSk6IEVuYWJsZSBjb250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1hdGNoIGV4aXN0aW5nCisg
ICAgICAgIGJlaGF2aW9yLgorCisyMDE3LTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKwogICAgICAgICBPbmx5IGFsbG93IG5vbi1taXhlZCBjb250ZW50IHByb3RlY3Rl
ZCBzdWJyZXNvdXJjZXMgdG8gYXNrIGZvciBjcmVkZW50aWFscwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4OTE5CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNTAxNTI0NT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2Nm
L0NGTmV0d29ya1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmgKaW5kZXggZGYzOWI4YmQ0NmFmYWUwNDNlODQwODM2YTMwODA3OTgwMzcxODZmNi4uMGFj
Yzg5ZmJmOWI2NDUxNjk2NTY3MWE5NjgxZWFiOTE2YTYxMDQzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTIwOCw2ICsyMDgsMTAgQEAgZXh0
ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDYWNoZVBhcnRpdGlvbktleTsKIGV4dGVybiBj
b25zdCBDRlN0cmluZ1JlZiBfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmY7CiBl
eHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTFN0b3JhZ2VTZXNzaW9uSXNQcml2YXRlOwog
CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMgorZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRlVSTFJlcXVlc3RDb250ZW50RGVj
b2RlclNraXBVUkxDaGVjazsKKyNlbmRpZgorCiBDRkhUVFBDb29raWVTdG9yYWdlUmVmIF9DRkhU
VFBDb29raWVTdG9yYWdlR2V0RGVmYXVsdChDRkFsbG9jYXRvclJlZik7CiBDRkhUVFBDb29raWVT
dG9yYWdlUmVmIENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVGcm9tRmlsZShDRkFsbG9jYXRvclJl
ZiwgQ0ZVUkxSZWYsIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogdm9pZCBDRkhUVFBDb29raWVT
dG9yYWdlU2NoZWR1bGVXaXRoUnVuTG9vcChDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBDRlJ1bkxv
b3BSZWYsIENGU3RyaW5nUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IGU5MjE0MjdhNDk5MzkyNTlmNWU0NGFmNTljN2VjMzVhYTFhMjFjOTcuLmY5MTk5
ODNkODIxNjdmMjIyYjRkOTdhZTNmNWNhNGRiNDMwOTk0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1faGFuZGxlID0g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShmcmFtZUxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgp
LCBtX3JlcXVlc3QsIHRoaXMsIG1fZGVmZXJzTG9hZGluZywgbV9vcHRpb25zLnNuaWZmQ29udGVu
dCA9PSBTbmlmZkNvbnRlbnQpOworICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShmcmFtZUxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX3JlcXVlc3QsIHRoaXMsIG1f
ZGVmZXJzTG9hZGluZywgbV9vcHRpb25zLnNuaWZmQ29udGVudCA9PSBTbmlmZkNvbnRlbnQsIG1f
b3B0aW9ucy5zbmlmZkNvbnRlbnRFbmNvZGluZyA9PSBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1Bv
bGljeTo6U25pZmYpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5n
KGJvb2wgZGVmZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCBm
NGM5YTQ1NzdlN2U0ZGQ5YzYxY2ZlMmI3MmM3MGM4ZjcxZmVmMDhlLi5iYWM4YWNhODBlZTA4ZTU0
NWUxMTk1ZDA4ZDlmM2E0N2UxYzZmMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaApAQCAtMTIzLDYgKzEyMyw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFNlbmRS
ZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc2VuZExvYWRD
YWxsYmFja3MgPT0gU2VuZENhbGxiYWNrczsgfQogICAgIHZvaWQgc2V0U2VuZENhbGxiYWNrUG9s
aWN5KFNlbmRDYWxsYmFja1BvbGljeSBzZW5kTG9hZENhbGxiYWNrcykgeyBtX29wdGlvbnMuc2Vu
ZExvYWRDYWxsYmFja3MgPSBzZW5kTG9hZENhbGxiYWNrczsgfQogICAgIGJvb2wgc2hvdWxkU25p
ZmZDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLnNuaWZmQ29udGVudCA9PSBTbmlm
ZkNvbnRlbnQ7IH0KKyAgICBib29sIHNob3VsZFNuaWZmQ29udGVudEVuY29kaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zLnNuaWZmQ29udGVudEVuY29kaW5nID09IENvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5OjpTbmlmZjsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNBbGxv
d2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMoKSBjb25zdDsKICAgICBib29sIHNob3VsZEluY2x1
ZGVDZXJ0aWZpY2F0ZUluZm8oKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY2VydGlmaWNhdGVJ
bmZvUG9saWN5ID09IEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm87IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCmluZGV4IDVjNWEwZDQyN2I0ZTk5NjBi
YjdjNWM3ZDFmMWZhY2U1OWE0NDU0YmEuLjY1NzRiMzc4MTViNmNmYTc4MTZiYzE4YjY2NTE4ZjRm
NzU4NjM1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ck9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRp
b25zLmgKQEAgLTk3LDYgKzk3LDExIEBAIGVudW0gY2xhc3MgU2VydmljZVdvcmtlcnNNb2RlIHsK
ICAgICBOb25lLAogfTsKIAorZW51bSBjbGFzcyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGlj
eSB7CisgICAgU25pZmYsCisgICAgRG9Ob3RTbmlmZiwKK307CisKIHN0cnVjdCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMgOiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKICAgICBSZXNvdXJjZUxvYWRlck9w
dGlvbnMoKSB7IH0KIApAQCAtMTIwLDYgKzEyNSw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMgOiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKIAogICAgIFNlbmRDYWxsYmFja1BvbGljeSBz
ZW5kTG9hZENhbGxiYWNrcyB7IERvTm90U2VuZENhbGxiYWNrcyB9OwogICAgIENvbnRlbnRTbmlm
ZmluZ1BvbGljeSBzbmlmZkNvbnRlbnQgeyBEb05vdFNuaWZmQ29udGVudCB9OworICAgIENvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudEVuY29kaW5nIHsgQ29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIH07CiAgICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBk
YXRhQnVmZmVyaW5nUG9saWN5IHsgQnVmZmVyRGF0YSB9OwogICAgIFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHsgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6
OkRvTm90VXNlIH07CiAgICAgU2VjdXJpdHlDaGVja1BvbGljeSBzZWN1cml0eUNoZWNrIHsgRG9T
ZWN1cml0eUNoZWNrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IGVlMjVmOWYzNmI1NjQ3M2I0ZjZh
OTU3OWM4MTIyYzUwNTZmZWMyNWQuLjFlZTFkNjE2M2ZkZGIzYTQzYjYxNzQ0MDU0M2ZmZjc2ZDNh
YmRiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC00NzUsNyArNDc1LDEwIEBAIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZShj
b25zdCBVUkwmIHVyCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCkubmV0
d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOworICAgIGJvb2wg
ZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gdHJ1
ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFt
ZS0+bG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZGVmZXJzTG9h
ZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAK
ICAgICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1cmluZyBy
ZWRpcmVjdHMsIHdlIGluaXRpYWxpemUKICAgICAvLyB0aGUgaWRlbnRpZmllciBhbmQgdGhlIGZp
cnN0IHdpbGxTZW5kUmVxdWVzdCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDYxMjk2OWYwNGE3ZWFl
ZWUyZDE1ZTk4Yjc0ZWI3MGU5YTUyMmI3ODUuLmJjOTcxMDg5MTQ5MzFjNzk3YTY3MTM4Zjk0NjI5
MGQxZjExODlhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIEJsb2JS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShCbG9iRGF0YSogYmxvYkRh
dGEsIGNvbnN0IFJlcwogfQogCiBCbG9iUmVzb3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRs
ZShCbG9iRGF0YSogYmxvYkRhdGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVz
b3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBhc3luYykKLSAgICA6IFJlc291cmNlSGFu
ZGxlKG51bGxwdHIsIHJlcXVlc3QsIGNsaWVudCwgZmFsc2UsIGZhbHNlKQorICAgIDogUmVzb3Vy
Y2VIYW5kbGUobnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxzZSAvKiBkZWZlcnNMb2FkaW5n
ICovLCBmYWxzZSAvKiBzaG91bGRDb250ZW50U25pZmYgKi8sIHRydWUgLyogc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYgKi8pCiAgICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQogICAgICwgbV9h
c3luYyhhc3luYykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUGluZ0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFu
ZGxlLmgKaW5kZXggYmViOWM1YWNhNzgzZTcwMDU2OGUxMTg3NjlkZGViMTE3YmQ4MGVlOS4uYTg4
Y2JhMzUzNDkxODJjMmRlMWExOThmYzUzYmU0NzU4NmQzMThjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKQEAgLTUyLDcgKzUyLDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgLCBtX3VzZXNBc3luY0NhbGxiYWNrcyh1c2VBc3luY0NhbGxiYWNrcykKICAg
ICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQog
ICAgIHsKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtp
bmdDb250ZXh0LCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBib29sIGRl
ZmVyc0xvYWRpbmcgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYgPSBm
YWxzZTsKKyAgICAgICAgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7Cisg
ICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShuZXR3b3JraW5nQ29udGV4
dCwgcmVxdWVzdCwgdGhpcywgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91
bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAKICAgICAgICAgLy8gSWYgdGhlIHNlcnZlciBuZXZl
ciByZXNwb25kcywgdGhpcyBvYmplY3Qgd2lsbCBoYW5nIGFyb3VuZCBmb3JldmVyLgogICAgICAg
ICAvLyBTZXQgYSB2ZXJ5IGdlbmVyb3VzIHRpbWVvdXQsIGp1c3QgaW4gY2FzZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXgg
YmViY2Y4OGRiYmNlNGQxZDFiZTBkMTUzNDRlNDNmMDZlNzhiN2Y1MC4uNmQ1MWMyZTc4OTE4ZjU1
MjM4NDU0MmU2YjQ2OWVmYzAyNmJmMjhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTcyLDggKzcyLDggQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6cmVnaXN0ZXJCdWlsdGluU3luY2hyb25vdXNMb2FkZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBwcm90b2MKICAgICBidWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xv
YWRlck1hcCgpLmFkZChwcm90b2NvbCwgbG9hZGVyKTsKIH0KIAotUmVzb3VyY2VIYW5kbGU6OlJl
c291cmNlSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJz
TG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCi0gICAgOiBkKHN0ZDo6bWFrZV91bmlx
dWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywgY29udGV4dCwgcmVxdWVzdCwgY2xpZW50
LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZm
VVJMKHJlcXVlc3QudXJsKCkpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBS
ZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQorICAgIDog
ZChzdGQ6Om1ha2VfdW5pcXVlPFJlc291cmNlSGFuZGxlSW50ZXJuYWw+KHRoaXMsIGNvbnRleHQs
IHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNo
b3VsZENvbnRlbnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSwgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYpKQogewogICAgIGlmICghcmVxdWVzdC51cmwoKS5pc1ZhbGlkKCkpIHsKICAgICAgICAg
c2NoZWR1bGVGYWlsdXJlKEludmFsaWRVUkxGYWlsdXJlKTsKQEAgLTg2LDEyICs4NiwxMiBAQCBS
ZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFJlc291cmNlUmVxdWVzdAogICAgIH0KIH0KIAotUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQs
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCitSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGll
bnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwg
Ym9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikKIHsKICAgICBpZiAoYXV0byBjb25zdHJ1
Y3RvciA9IGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwKCkuZ2V0KHJlcXVlc3Qu
dXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQogICAgICAgICByZXR1
cm4gY29uc3RydWN0b3IocmVxdWVzdCwgY2xpZW50KTsKIAotICAgIGF1dG8gbmV3SGFuZGxlID0g
YWRvcHRSZWYoKm5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRl
ZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAgIGF1dG8gbmV3SGFuZGxlID0g
YWRvcHRSZWYoKm5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRl
ZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0g
Tm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gV1RGTW92ZShuZXdIYW5kbGUpOwpAQCAtMjEwLDYg
KzIxMCwxMSBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzaG91bGRDb250ZW50U25pZmYoKSBjb25z
dAogICAgIHJldHVybiBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZjsKIH0KIAorYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSBjb25zdAoreworICAgIHJldHVy
biBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmOworfQorCiBib29sIFJlc291cmNlSGFu
ZGxlOjpzaG91bGRDb250ZW50U25pZmZVUkwoY29uc3QgVVJMJiB1cmwpCiB7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmgKaW5kZXggOWU3OTZmMTJhYTIzNzkyOThmZjMwYjVhY2M3ZTcyNGFmM2ZkNzM4Ni4u
MDNiYjgxYzQxZGU2MjkwYWUyODk5NjE1MzM0YzZkOTJjYWMxMjYzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtOTIsMTEgKzky
LDExIEBAIGNsYXNzIFRpbWVyOwogCiBjbGFzcyBSZXNvdXJjZUhhbmRsZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFJlc291cmNlSGFuZGxlPiwgcHVibGljIEF1dGhlbnRpY2F0aW9uQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBj
cmVhdGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJj
ZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNy
ZWF0ZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNl
SGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCos
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBSZXNvdXJj
ZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7CiAKICNpZiBV
U0UoU09VUCkKLSAgICBzdGF0aWMgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoU291cE5l
dHdvcmtTZXNzaW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGll
bnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBz
dGF0aWMgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVy
c0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmKTsKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVzb3Vy
Y2VIYW5kbGUoKTsKQEAgLTE2NCw2ICsxNjQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRD
b250ZW50U25pZmYoKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRDb250ZW50U25pZmZV
UkwoY29uc3QgVVJMJik7CiAKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKCkg
Y29uc3Q7CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JjZUNvbnRlbnRTbmlm
ZmluZygpOwogCiAjaWYgVVNFKENVUkwpIHx8IFVTRShTT1VQKQpAQCAtMjM1LDcgKzIzNyw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1aWx0aW5TeW5jaHJvbm91c0xvYWRl
cihjb25zdCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWlsdGluU3luY2hyb25vdXNMb2FkZXIp
OwogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJz
TG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJlc291cmNlSGFuZGxlKE5l
dHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVD
bGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgIGJvb2wgdXNlc0FzeW5jQ2FsbGJh
Y2tzKCkgY29uc3Q7CiAKQEAgLTI0Nyw3ICsyNDksNyBAQCBwcml2YXRlOgogICAgIH07CiAKICNp
ZiBVU0UoU09VUCkKLSAgICBSZXNvdXJjZUhhbmRsZShTb3VwTmV0d29ya1Nlc3Npb24mLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJlc291cmNlSGFuZGxlKFNvdXBO
ZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAjZW5kaWYKIAogICAgIHZvaWQgcGxhdGZvcm1T
ZXREZWZlcnNMb2FkaW5nKGJvb2wpOwpAQCAtMjY3LDE1ICsyNjksMTUgQEAgcHJpdmF0ZToKICNl
bmRpZgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICB2b2lkIGNyZWF0ZUNGVVJMQ29u
bmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRl
bnRTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJvcGVy
dGllcyk7CisgICAgdm9pZCBjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVu
dFByb3BlcnRpZXMpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpICYmICFVU0UoQ0ZVUkxD
T05ORUNUSU9OKQotICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwg
U2NoZWR1bGluZ0JlaGF2aW9yKTsKKyAgICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBk
ZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250
ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhh
dmlvcik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykgJiYgIVVTRShDRlVSTENPTk5FQ1RJ
T04pCi0gICAgdm9pZCBjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVs
aW5nQmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29ubmVjdGlvblByb3BlcnRpZXMpOworICAgIHZv
aWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25hcnkgKmNvbm5lY3Rp
b25Qcm9wZXJ0aWVzKTsKICNlbmRpZgogCiAjaWYgVVNFKFNPVVApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmlu
ZGV4IDNiNzE0NGI1ODRhNTcxOTM5NDY3NWQ5YzkyOWM3Njc1ODk0NTRmZmEuLjViYjc0NWI0NGE4
MjJkZDg1YjM5NTA4ZjQ5MWY0OWI2ODQ3Mjg1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC03Miw3
ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCisgICAgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJjZUhhbmRsZSogbG9hZGVyLCBOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQogICAgICAgICA6IG1fY29u
dGV4dChjb250ZXh0KQogICAgICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAgICAgLCBtX2Zp
cnN0UmVxdWVzdChyZXF1ZXN0KQpAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgICAgICwg
bV9wYXJ0aXRpb24ocmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKQogICAgICAgICAsIG1fZGVmZXJz
TG9hZGluZyhkZWZlcnNMb2FkaW5nKQogICAgICAgICAsIG1fc2hvdWxkQ29udGVudFNuaWZmKHNo
b3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgLCBtX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
IHsgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgfQogICAgICAgICAsIG1fdXNlc0FzeW5jQ2Fs
bGJhY2tzKGNsaWVudCAmJiBjbGllbnQtPnVzZXNBc3luY0NhbGxiYWNrcygpKQogI2lmIFVTRShD
RlVSTENPTk5FQ1RJT04pCiAgICAgICAgICwgbV9jdXJyZW50UmVxdWVzdChyZXF1ZXN0KQpAQCAt
MTE1LDYgKzExNiw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbV9kZWZlcnNMb2FkaW5nOwogICAg
IGJvb2wgbV9zaG91bGRDb250ZW50U25pZmY7CisgICAgYm9vbCBtX3Nob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmOwogICAgIGJvb2wgbV91c2VzQXN5bmNDYWxsYmFja3M7CiAjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICBSZXRhaW5QdHI8Q0ZVUkxDb25uZWN0aW9uUmVmPiBtX2Nvbm5lY3Rp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA2M2ZjZThiM2Y4ZmZiOWEzYjVhODQxMmE0NGZk
NTg0MTRlYmNkY2VjLi44Yjk0ZWQ0NjdlMDdlNzg5MzQ1ZDExNGEyNjdiNmEyOWJmNTJjNTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMgaW5saW5lIENG
U3RyaW5nUmVmIHNob3VsZFNuaWZmQ29ubmVjdGlvblByb3BlcnR5KCkKICNlbmRpZgogfQogCi12
b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdCZWhh
dmlvciBzY2hlZHVsaW5nQmVoYXZpb3IsIENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVz
KQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2
aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJvcGVydGllcykKIHsKICAgICBpZiAoKCFkLT5t
X3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgpKSAmJiAhZmlyc3RSZXF1ZXN0
KCkudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CiAgICAgICAgIC8vIENyZWRlbnRp
YWxzIGZvciBmdHAgY2FuIG9ubHkgYmUgcGFzc2VkIGluIFVSTCwgdGhlIGRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSBkZWxlZ2F0ZSBjYWxsIHdvbid0IGJlIG1hZGUuCkBAIC0xNjEs
NyArMTYxLDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgYXV0byByZXF1ZXN0ID0g
YWRvcHRDRihDRlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBmaXJzdFJlcXVlc3QoKS5jZlVSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpKSk7CiAgICAgaWYg
KGF1dG8gc3RvcmFnZVNlc3Npb24gPSBkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpKQogICAgICAg
ICBfQ0ZVUkxSZXF1ZXN0U2V0U3RvcmFnZVNlc3Npb24ocmVxdWVzdC5nZXQoKSwgc3RvcmFnZVNl
c3Npb24pOwotICAgIAorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTMwMgorICAgIGlmICghc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYpCisgICAgICAgIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KHJlcXVlc3QuZ2V0
KCksIGtDRlVSTFJlcXVlc3RDb250ZW50RGVjb2RlclNraXBVUkxDaGVjaywga0NGQm9vbGVhblRy
dWUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYp
OworI2VuZGlmCisKICAgICBpZiAoIXNob3VsZENvbnRlbnRTbmlmZikKICAgICAgICAgX0NGVVJM
UmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkocmVxdWVzdC5nZXQoKSwgc2hvdWxkU25pZmZDb25u
ZWN0aW9uUHJvcGVydHkoKSwga0NGQm9vbGVhbkZhbHNlKTsKIApAQCAtMjc3LDcgKzI4NCw3IEBA
IGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIAogICAgIFNjaGVkdWxpbmdCZWhhdmlvciBz
Y2hlZHVsaW5nQmVoYXZpb3IgPSBjbGllbnQoKS0+bG9hZGluZ1N5bmNocm9ub3VzWEhSKCkgPyBT
Y2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzIDogU2NoZWR1bGluZ0JlaGF2aW9yOjpBc3lu
Y2hyb25vdXM7CiAKLSAgICBjcmVhdGVDRlVSTENvbm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UsIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmLCBzY2hlZHVsaW5nQmVoYXZpb3IsIGNs
aWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyh0aGlzKS5nZXQoKSk7CisgICAgY3JlYXRlQ0ZV
UkxDb25uZWN0aW9uKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBkLT5tX3Nob3VsZENvbnRl
bnRTbmlmZiwgZC0+bV9zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2NoZWR1bGluZ0JlaGF2
aW9yLCBjbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXModGhpcykuZ2V0KCkpOwogCiAgICAg
ZC0+bV9jb25uZWN0aW9uRGVsZWdhdGUtPnNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoZC0+bV9j
b25uZWN0aW9uLmdldCgpKTsKICAgICBDRlVSTENvbm5lY3Rpb25TdGFydChkLT5tX2Nvbm5lY3Rp
b24uZ2V0KCkpOwpAQCAtNTg2LDcgKzU5Myw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRm
b3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAg
ICAgU3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNsaWVudC5zZXRBbGxvd1N0
b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRp
YWxzUG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJmNsaWVudCwgZmFs
c2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOworICAg
IFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFu
ZGxlKGNvbnRleHQsIHJlcXVlc3QsICZjbGllbnQsIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0
cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8sIHRydWUgLypzaG91bGRDb250ZW50RW5jb2RpbmdT
bmlmZiovKSk7CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5z
dG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC01OTYsNyArNjAzLDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICB9CiAKICAgICBoYW5kbGUtPmNyZWF0ZUNGVVJM
Q29ubmVjdGlvbihzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6VXNlLCBSZXNvdXJjZUhhbmRsZTo6c2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3Qu
dXJsKCkpLAotICAgICAgICBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUt
PmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKKyAg
ICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigpLCBTY2hlZHVsaW5nQmVo
YXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGll
cyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKIAogICAgIENGVVJMQ29ubmVjdGlvblNjaGVkdWxlV2l0
aFJ1bkxvb3AoaGFuZGxlLT5jb25uZWN0aW9uKCksIENGUnVuTG9vcEdldEN1cnJlbnQoKSwgc3lu
Y2hyb25vdXNMb2FkUnVuTG9vcE1vZGUoKSk7CiAgICAgQ0ZVUkxDb25uZWN0aW9uU2NoZWR1bGVE
b3dubG9hZFdpdGhSdW5Mb29wKGhhbmRsZS0+Y29ubmVjdGlvbigpLCBDRlJ1bkxvb3BHZXRDdXJy
ZW50KCksIHN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRl
eCAzOTQwZGJlMGJhY2Q3ZDBjMjI2NjY0ZDU5MjljZTUyYzE2MzBjZmE2Li5jYjViNzY0OWU1MmY0
YTBiYjdlZTE3NDI3OTU2ZTE4OWMxMmRmNjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMTI0LDkg
KzEyNCw5IEBAIHN0YXRpYyBib29sIHN5bmNocm9ub3VzV2lsbFNlbmRSZXF1ZXN0RW5hYmxlZCgp
CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpCi12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVh
dGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1
bGluZ0JlaGF2aW9yKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9u
KGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGlu
Z0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvcikKICNlbHNlCi12b2lkIFJlc291cmNlSGFuZGxl
OjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Ig
c2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25hcnkgKmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKQor
dm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwg
Ym9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVk
dWxpbmdCZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpjb25uZWN0aW9uUHJvcGVydGllcykKICNlbmRp
ZgogewogI2lmICFIQVZFKFRJTUlOR0RBVEFPUFRJT05TKQpAQCAtMTYwLDIwICsxNjAsMjIgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICB9CiAKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVx
dWVzdCA9IGZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSk7Ci0gICAg
aWYgKCFzaG91bGRDb250ZW50U25pZmYpIHsKLSAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAq
bXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwot
ICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFByb3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJp
bmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmZdOwotICAgICAgICBuc1Jl
cXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CiAKKyAgICBhdXRvIG11dGFibGVSZXF1ZXN0
ID0gYWRvcHROUyhbbnNSZXF1ZXN0IG11dGFibGVDb3B5XSk7CisjaWYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMgorICAgIGlmICghc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAgICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJv
cGVydHk6QChZRVMpIGZvcktleTooTlNTdHJpbmcgKilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29k
ZXJTa2lwVVJMQ2hlY2tdOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYpOworI2VuZGlmCiAjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJ
T05JTkcpCiAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24gPSBkLT5tX2NvbnRleHQtPnN0b3Jh
Z2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRpdGlvbihmaXJzdFJlcXVlc3QoKSk7Ci0gICAg
aWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICBOU011dGFibGVVUkxS
ZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNSZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVs
ZWFzZV07CisgICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHkoKSkKICAgICAgICAgW211
dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpzdG9yYWdlUGFydGl0aW9uIGZvcktleTpAIl9fU1RP
UkFHRV9QQVJUSVRJT05fSURFTlRJRklFUiJdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxl
UmVxdWVzdDsKLSAgICB9CiAjZW5kaWYKKyAgICBpZiAoIXNob3VsZENvbnRlbnRTbmlmZikKKyAg
ICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5n
ICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmXTsKKyAgICBuc1JlcXVlc3Qg
PSBtdXRhYmxlUmVxdWVzdC5hdXRvcmVsZWFzZSgpOwogCiAgICAgaWYgKGQtPm1fc3RvcmFnZVNl
c3Npb24pCiAgICAgICAgIG5zUmVxdWVzdCA9IFtjb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lv
bihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBuc1JlcXVlc3QpIGF1dG9yZWxlYXNlXTsKQEAg
LTI1MSwxMiArMjUzLDE0IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKICAgICAgICAg
UmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSks
CiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAogICAgICAgICBkLT5tX3Nob3Vs
ZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQoKSwKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwKICAgICAg
ICAgc2NoZWR1bGluZ0JlaGF2aW9yKTsKICNlbHNlCiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9u
KAogICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCiAgICAgICAg
IGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQtPm1fY29udGV4dC0+bG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLAogICAgICAgICBzY2hlZHVsaW5nQmVoYXZpb3IsCiAgICAgICAgIChOU0RpY3Rpb25hcnkg
KiljbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXModGhpcykuZ2V0KCkpOwogI2VuZGlmCkBA
IC0zOTcsNyArNDAxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICBTeW5jaHJvbm91
c0xvYWRlckNsaWVudCBjbGllbnQ7CiAgICAgY2xpZW50LnNldEFsbG93U3RvcmVkQ3JlZGVudGlh
bHMoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVz
ZSk7CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBS
ZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBmYWxzZSAvKmRlZmVyc0xv
YWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CisgICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwg
cmVxdWVzdCwgJmNsaWVudCwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRD
b250ZW50U25pZmYqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKi8pKTsKIAog
ICAgIGhhbmRsZS0+ZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9u
KCkucGxhdGZvcm1TZXNzaW9uKCk7CiAKQEAgLTQxMiwxMiArNDE2LDE0IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4CiAgICAgICAgIGhhbmRsZS0+bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCiAgICAg
ICAgIGhhbmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmKCksCiAgICAgICAgIFNjaGVkdWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMpOwog
I2Vsc2UKICAgICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFuZGxl
LT5tYWtlRGVsZWdhdGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpLCAvLyBBIHN5bmNocm9u
b3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBhIGRvd25sb2FkLCBzbyB0aGVyZSBpcyBubyBu
ZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UsCiAgICAgICAgIGhhbmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkgfHwgKGNvbnRleHQg
JiYgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKSwKKyAgICAgICAg
aGFuZGxlLT5zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigpLAogICAgICAgICBTY2hlZHVsaW5n
QmVoYXZpb3I6OlN5bmNocm9ub3VzLAogICAgICAgICAoTlNEaWN0aW9uYXJ5ICopaGFuZGxlLT5j
bGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXMoaGFuZGxlLmdldCgpKS5nZXQoKSk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNzQ5OTk3MmVmZThlNmZiYTEwODUyOWUwNDBi
M2Q3ODU2Zjc4NDAwMC4uM2I3Y2VkNGRiZTQyNGRkZTJhNDIzMDZlYTkyZWNmYTY3NWY2OTFhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTkwLDkgKzkwLDkgQEAgU291cFNlc3Npb24qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWw6OnNvdXBTZXNzaW9uKCkKICAgICByZXR1cm4gbV9zZXNzaW9u
ID8gbV9zZXNzaW9uLT5zb3VwU2Vzc2lvbigpIDogc2Vzc2lvbkZyb21Db250ZXh0KG1fY29udGV4
dC5nZXQoKSk7CiB9CiAKLVJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKK1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBk
ZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZikKIHsKLSAgICBhdXRvIG5ld0hhbmRsZSA9IGFkb3B0UmVmKCpuZXcgUmVz
b3VyY2VIYW5kbGUoc2Vzc2lvbiwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91
bGRDb250ZW50U25pZmYpKTsKKyAgICBhdXRvIG5ld0hhbmRsZSA9IGFkb3B0UmVmKCpuZXcgUmVz
b3VyY2VIYW5kbGUoc2Vzc2lvbiwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91
bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAKICAgICBpZiAo
bmV3SGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAg
ICAgcmV0dXJuIFdURk1vdmUobmV3SGFuZGxlKTsKQEAgLTEwMyw4ICsxMDMsOCBAQCBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoU291cE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1SZXNvdXJjZUhhbmRs
ZTo6UmVzb3VyY2VIYW5kbGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wg
ZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCi0gICAgOiBkKHN0ZDo6bWFr
ZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywgbnVsbHB0ciwgcmVxdWVzdCwg
Y2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVu
dFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRs
ZShTb3VwTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBi
b29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikK
KyAgICA6IGQoc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUhhbmRsZUludGVybmFsPih0aGlzLCBu
dWxscHRyLCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlm
ZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSksIHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmKSkKIHsKICAgICBpZiAoIXJlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7CiAg
ICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA3OWQ4YzM4YmM3ODE4OWEyM2E3YjBlOGY1MmJiNzgw
OWNjZDM1YWIyLi4wOTZmMDU1NWFjMWVlNDUyYjY0NWEyYmI5Y2VkNTJlMTY1MTU0YmExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTYxMyw2ICs2MTMsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgb3B0aW9u
cy5pbml0aWF0b3IgPSBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkueG1saHR0cHJl
cXVlc3Q7CiAgICAgb3B0aW9ucy5zYW1lT3JpZ2luRGF0YVVSTEZsYWcgPSBTYW1lT3JpZ2luRGF0
YVVSTEZsYWc6OlNldDsKICAgICBvcHRpb25zLmZpbHRlcmluZ1BvbGljeSA9IFJlc3BvbnNlRmls
dGVyaW5nUG9saWN5OjpFbmFibGU7CisgICAgb3B0aW9ucy5zbmlmZkNvbnRlbnRFbmNvZGluZyA9
IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpEb05vdFNuaWZmOwogCiAgICAgaWYgKG1f
dGltZW91dE1pbGxpc2Vjb25kcykgewogICAgICAgICBpZiAoIW1fYXN5bmMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXgg
MWVhZmVlZGQ5ZDZjMTgxZjY0MWQ5YzQyODI1YmM5YmM1OWNhYjgzMS4uZjYzYWRhZjA4M2M0MTNm
N2JkZDNmZjhmN2FlYjdhZmY2OTUxMTMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAtMTEyLDcgKzExMiwxMCBAQCB2
b2lkIERvd25sb2FkOjpzdGFydCgpCiB7CiAgICAgaWYgKG1fcmVxdWVzdC51cmwoKS5wcm90b2Nv
bElzQmxvYigpKSB7CiAgICAgICAgIG1fZG93bmxvYWRDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PEJsb2JEb3dubG9hZENsaWVudD4oKnRoaXMpOwotICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShudWxscHRyLCBtX3JlcXVlc3QsIG1fZG93bmxvYWRDbGll
bnQuZ2V0KCksIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZh
bHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IGZhbHNlOworICAgICAgICBi
b29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICAgICAgbV9yZXNvdXJj
ZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobnVsbHB0ciwgbV9yZXF1ZXN0LCBtX2Rv
d25sb2FkQ2xpZW50LmdldCgpLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICAgICAgICAgZGlkU3RhcnQoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTEyNCw3ICsxMjcsMTAgQEAgdm9pZCBEb3dubG9hZDo6c3RhcnRX
aXRoSGFuZGxlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHIKIHsKICAgICBpZiAobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sSXNCbG9iKCkpIHsKICAgICAg
ICAgbV9kb3dubG9hZENsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8QmxvYkRvd25sb2FkQ2xpZW50
PigqdGhpcyk7Ci0gICAgICAgIG1fcmVzb3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3Jl
YXRlKG51bGxwdHIsIG1fcmVxdWVzdCwgbV9kb3dubG9hZENsaWVudC5nZXQoKSwgZmFsc2UsIGZh
bHNlKTsKKyAgICAgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CisgICAgICAgIGJvb2wg
c2hvdWxkQ29udGVudFNuaWZmID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYgPSB0cnVlOworICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VI
YW5kbGU6OmNyZWF0ZShudWxscHRyLCBtX3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCks
IGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYpOwogICAgICAgICBkaWRTdGFydCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4
IGJiN2YxNzUxZmZlNGExOWJlNTM4ODNjZDVlMWIxYWUzODM4MDI1NTcuLmE2NDJhZTU1ZTI1ZTE4
ZmUwMzU2MzRiNTQ4ZDIwZTUxM2RmOGRkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTUzLDEwICs1MywxMCBAQCBSZWY8TmV0
d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdAogICAgICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3Jl
YXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRl
bnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUo
c2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0
ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMu
c2hvdWxkUHJlY29ubmVjdE9ubHkpOworICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwg
cGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFBy
ZWNvbm5lY3RPbmx5KTsKICNlbmRpZgogI2lmIFVTRShTT1VQKQotICAgIHJldHVybiBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3Qs
IHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNu
aWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpOworICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vzc2lv
biwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFt
ZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAjZW5kaWYK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRl
eCBhM2M5NWRkNjNhZGUyNmE5YWEyZjE1MDhkZGYwZDYzZTJlZDE1ZjA1Li42Nzk0NmEyOWVkYTRl
NWYxZDg0ODI5OThhN2ZkNTYxOTlmZjc0ZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIE5ldHdvcmtMb2FkOjpO
ZXR3b3JrTG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBOZXR3b3JrTG9hZFBhcmFtZXRl
cnMmJiBwYXJhCiAgICAgLCBtX25ldHdvcmtpbmdDb250ZXh0KFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpjcmVhdGUobV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLnNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKQogICAgICwgbV9jdXJyZW50UmVxdWVz
dChtX3BhcmFtZXRlcnMucmVxdWVzdCkKIHsKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUobV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKSwgbV9wYXJhbWV0ZXJzLnJlcXVlc3Qs
IHRoaXMsIG1fcGFyYW1ldGVycy5kZWZlcnNMb2FkaW5nLCBtX3BhcmFtZXRlcnMuY29udGVudFNu
aWZmaW5nUG9saWN5ID09IFNuaWZmQ29udGVudCk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlKG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0KCksIG1fcGFyYW1ldGVycy5yZXF1
ZXN0LCB0aGlzLCBtX3BhcmFtZXRlcnMuZGVmZXJzTG9hZGluZywgbV9wYXJhbWV0ZXJzLmNvbnRl
bnRTbmlmZmluZ1BvbGljeSA9PSBTbmlmZkNvbnRlbnQsIG1fcGFyYW1ldGVycy5jb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSA9PSBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25p
ZmZGaWxlbmFtZSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggMjVhYTUwNTgwZGU5YTk4YWNk
YzAyN2E4MTA3YTI4ZWE4OTM0NzU3OC4uODMyNzg5Nzk4OGI2NGZmMzJlNDE4M2E1OTgwNjNlNGFm
NWZjY2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQgeyBQQUw6OlNlc3Npb25JRDo6ZW1wdHlTZXNzaW9uSUQoKSB9Owog
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OkNvbnRl
bnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3JlOjpTbmlmZkNv
bnRlbnQgfTsKKyAgICBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBjb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSB7IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5OjpTbmlmZiB9OwogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHsgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k6OkRvTm90VXNlIH07CiAgICAgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSBjbGll
bnRDcmVkZW50aWFsUG9saWN5IHsgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fu
bm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMgfTsKICAgICBib29sIHNob3VsZEZvbGxvd1JlZGly
ZWN0cyB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKaW5kZXggZTk2MzU3NjJi
NjVmNTMyNDEyZmJlZmRkMTEzNzRkY2QzYTU0OTVkMC4uY2QyMTY1NzJmMjU3ZDA5MWMyZmRlM2Yy
NGFkYWRhZmJlZDcwY2MwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKQEAgLTc0LDYg
Kzc0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB9CiAKICAgICBlbmNvZGVyLmVuY29kZUVudW0o
Y29udGVudFNuaWZmaW5nUG9saWN5KTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oY29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3kpOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGNsaWVudENyZWRlbnRpYWxQ
b2xpY3kpOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzaG91bGRQcmVjb25uZWN0T25seSk7CkBA
IC0xNDEsNiArMTQyLDggQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Jlc291cmMKIAogICAgIGlmICghZGVj
b2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5jb250ZW50U25pZmZpbmdQb2xpY3kpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmNvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuY2xp
ZW50Q3JlZGVudGlhbFBvbGljeSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAK
aW5kZXggNjkxMzk2NTgwMjhmM2Q0MjllN2M2ZTlhZjk0NWNlMThkNjQzMmVkZS4uYWY2MzY3MGM5
MTRhNWVkMmIwYjM3OGU4MTdmZWU1MjgyOWIxMjljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkLmNwcApAQCAtNTYsNiArNTYsNyBAQCBTcGVjdWxhdGl2ZUxvYWQ6OlNwZWN1bGF0
aXZlTG9hZChDYWNoZSYgY2FjaGUsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbgog
ICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKTsKICAgICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3k6OlVzZTsKICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGlj
eSA9IERvTm90U25pZmZDb250ZW50OworICAgIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25p
ZmZpbmdQb2xpY3kgPSBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmY7CiAgICAg
cGFyYW1ldGVycy5yZXF1ZXN0ID0gbV9vcmlnaW5hbFJlcXVlc3Q7CiAjaWYgVVNFKE5FVFdPUktf
U0VTU0lPTikKICAgICBtX25ldHdvcmtMb2FkID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrTG9h
ZD4oKnRoaXMsIFdURk1vdmUocGFyYW1ldGVycyksICpTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nl
c3Npb24oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oCmluZGV4IDc1ZmM5N2RmOWMzODFmNTNkZjExYzc0ZTA3MmMyMmE0NTVlYjFiNmQuLjg4NzVj
OWNlOWZjNWUyNzFhNTJiM2U4NzkwMjIzYjJhMWE4MGI5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgK
QEAgLTQxLDkgKzQxLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5ldHdv
cmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAgZnJp
ZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxO
ZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYs
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVj
dE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRh
c2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50
JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNv
cmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBi
b29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RP
bmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0T25seSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGll
bnQsIHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYs
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0T25seSkpOwogICAgIH0KIAogICAgIH5OZXR3
b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29y
ZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSB7IHJldHVybiBtX25l
dHdvcmtMb2FkTWV0cmljczsgfQogCiBwcml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza0NvY29h
KE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNv
cmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSk7CisgICAgTmV0d29ya0RhdGFUYXNrQ29j
b2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBQcmVjb25uZWN0T25seSk7CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNh
dGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNv
bXBsZXRpb25IYW5kbGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IGRmNjRlMzliZTYx
NTVjZGZlNjUwZWIzNDE3MTNiYjU2MWY4NTc0NzguLmE3NTlmY2MxNmQxOGJlZTA3NGM5NDU0ZmE5
ZTA1NTFlZDE3YmFiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNzQsNyArNzQsNyBAQCBz
dGF0aWMgZmxvYXQgdG9OU1VSTFNlc3Npb25UYXNrUHJpb3JpdHkoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkUHJpb3JpdHkgcHJpb3JpdHkpCiAgICAgcmV0dXJuIE5TVVJMU2Vzc2lvblRhc2tQcmlvcml0
eURlZmF1bHQ7CiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2Nv
YShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkg
c2hvdWxkUHJlY29ubmVjdE9ubHkpCitOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFU
YXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYg
Y2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVu
dGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZm
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICA6IE5ldHdvcmtEYXRh
VGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQog
ewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKQEAgLTEwNCwy
NCArMTA0LDI2IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShO
ZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAjZW5kaWYKICAgICAKICAgICBO
U1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OlVw
ZGF0ZUhUVFBCb2R5KTsKLSAgICBpZiAoc2hvdWxkQ29udGVudFNuaWZmID09IFdlYkNvcmU6OkRv
Tm90U25pZmZDb250ZW50IHx8IHVybC5wcm90b2NvbElzKCJmaWxlIikpIHsKLSAgICAgICAgTlNN
dXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBtdXRhYmxlQ29w
eV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFByb3BlcnR5OkAo
Tk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25p
ZmZdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CiAKKyAgICBh
dXRvIG11dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbbnNSZXF1ZXN0IG11dGFibGVDb3B5XSk7Cisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTMwMgorICAgIGlmIChzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9PSBXZWJDb3JlOjpDb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6RG9Ob3RTbmlmZikKKyAgICAgICAgW211dGFibGVS
ZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKFlFUykgZm9yS2V5OihOU1N0cmluZyAqKWtDRlVSTFJlcXVl
c3RDb250ZW50RGVjb2RlclNraXBVUkxDaGVja107CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CisjZW5kaWYKKyAgICBpZiAoc2hvdWxkQ29udGVu
dFNuaWZmID09IFdlYkNvcmU6OkRvTm90U25pZmZDb250ZW50IHx8IHVybC5wcm90b2NvbElzKCJm
aWxlIikpCisgICAgICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChOTykgZm9yS2V5
OihOU1N0cmluZyAqKV9rQ0ZVUkxDb25uZWN0aW9uUHJvcGVydHlTaG91bGRTbmlmZl07CiAgICAg
YXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1f
c2Vzc2lvbi5nZXQoKSk7CisgICAgaWYgKCFjb2NvYVNlc3Npb24ubV9ib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIuaXNOdWxsKCkpCisgICAgICAgIFttdXRhYmxlUmVxdWVzdCBzZXRCb3VuZEludGVy
ZmFjZUlkZW50aWZpZXI6Y29jb2FTZXNzaW9uLm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyXTsK
KyAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdC5hdXRvcmVsZWFzZSgpOworCiAgICAgaWYg
KHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2hvdWxkQmxvY2tDb29raWVzKHJlcXVl
c3QpKSB7CiAgICAgICAgIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOwogICAgICAgICBtX3N0b3JlZENyZWRlbnRpYWxz
UG9saWN5ID0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOwogICAg
IH0KIAotICAgIGlmICghY29jb2FTZXNzaW9uLm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyLmlz
TnVsbCgpKSB7Ci0gICAgICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKm11dGFibGVSZXF1ZXN0ID0g
W1tuc1JlcXVlc3QgbXV0YWJsZUNvcHldIGF1dG9yZWxlYXNlXTsKLSAgICAgICAgW211dGFibGVS
ZXF1ZXN0IHNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjpjb2NvYVNlc3Npb24ubV9ib3VuZElu
dGVyZmFjZUlkZW50aWZpZXJdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsK
LSAgICB9Ci0KICAgICBpZiAoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSkgewogICAgICAgICBtX3Rhc2sgPSBbY29jb2FTZXNz
aW9uLm1fc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZSBkYXRhVGFza1dpdGhSZXF1ZXN0Om5z
UmVxdWVzdF07CiAgICAgICAgIEFTU0VSVCghY29jb2FTZXNzaW9uLm1fZGF0YVRhc2tNYXBXaXRo
Q3JlZGVudGlhbHMuY29udGFpbnMoW21fdGFzayB0YXNrSWRlbnRpZmllcl0pKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cAppbmRleCA0NTA3N2E0MGZhZWUxOWZjNDNiMjRlNmFkYTc5ZTAzMWE5Nzc1ZjY2Li4xMTQxZDBi
Zjk3OWUzMzRhM2U3ZGVlNTg2M2Q1NmIwODc2OWMzYmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0yNDIs
NiArMjQyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdv
cmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBMT0coTmV0d29ya1NjaGVk
dWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJs
ICclcycgd2lsbCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlv
cml0eSAlZCIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwg
c3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSkpOwog
CiAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IHJlc291
cmNlTG9hZGVyLnNob3VsZFNuaWZmQ29udGVudCgpID8gU25pZmZDb250ZW50IDogRG9Ob3RTbmlm
ZkNvbnRlbnQ7CisgICAgQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3kgPSByZXNvdXJjZUxvYWRlci5zaG91bGRTbmlmZkNvbnRlbnRFbmNv
ZGluZygpID8gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIDogQ29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3k6OkRvTm90U25pZmY7CiAgICAgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSByZXNvdXJjZUxvYWRlci5zaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSgpID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSA6IFN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKIAogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwpAQCAtMjUxLDYgKzI1Miw3IEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRl
ciYgcmVzb3VyY2VMCiAgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdl
YlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsK
ICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVy
cy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBjb250ZW50U25pZmZpbmdQb2xpY3k7CisgICAgbG9h
ZFBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBjb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIC8vIElmIHRoZXJlIGlzIG5vIFdl
YkZyYW1lIHRoZW4gdGhpcyByZXNvdXJjZSBjYW5ub3QgYmUgYXV0aGVudGljYXRlZCB3aXRoIHRo
ZSBjbGllbnQuCiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9ICh3
ZWJGcmFtZSAmJiB3ZWJQYWdlICYmIHJlc291cmNlTG9hZGVyLmlzQWxsb3dlZFRvQXNrVXNlckZv
ckNyZWRlbnRpYWxzKCkpID8gQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5QXNrQ2xpZW50Rm9y
Q3JlZGVudGlhbHMgOiBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JD
cmVkZW50aWFsczsKQEAgLTQwNSw2ICs0MDcsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCB1bgog
ICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9u
SUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9hZFBhcmFt
ZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZm
aW5nUG9saWN5ID0gU25pZmZDb250ZW50OworICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRFbmNv
ZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZm
OwogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGlj
eSA9IGNsaWVudENyZWRlbnRpYWxQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IGNvbnRleHQtPnNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZjBkYzU5NTYyNjAxYTYyZDIy
MjE1NTYzMTYwMmNkMGU0ZTEzMWNhLi5hMmRkMzg2NzRkYzc4NzJhNzZlNmQ2MjE0OGEyN2U4YWU5
MWY5NDJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAKIDIwMTctMTAtMjcgIERhbmllbCBCYXRlcyAg
PGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0IHNob3VsZCBub3Qg
c25pZmYgY29udGVudCBlbmNvZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc1NTk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzgyMjI0OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdXAg
dGhlIHRlc3QgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1j
b250ZW50LWVuY29kaW5nLmh0bWwgdG8KKyAgICAgICAgYWN0dWFsbHkgY2hlY2sgdGhhdCB3ZSBk
byBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZy4gQ0ZOZXR3b3JrIG9ubHkgc25pZmZzIHRoZSBV
UkwKKyAgICAgICAgZm9yIHRoZSBjb250ZW50IGVuY29kaW5nIHdoZW4gdGhlIGZpbGVuYW1lIGVu
ZHMgd2l0aCBrbm93biBmaWxlIGV4dGVuc2lvbiAoZS5nLiAuZ3opCisgICAgICAgIGFuZCB0aGUg
SFRUUCByZXNwb25zZSBkb2VzIG5vdCBzcGVjaWZ5aW5nIGEgQ29udGVudC1FbmNvZGluZyBIVFRQ
IGhlYWRlci4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlIHRlc3Qgb24g
YWxsIHBsYXRmb3Jtcy4gT25jZSA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+IHNoaXBzCisgICAg
ICAgIHRoZW4gd2Ugd2lsbCBlbmFibGUgdGhlIHRlc3Qgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHVz
ZSBDRk5ldHdvcmsuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNv
bnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5j
b2RpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNl
cy8uaHRhY2Nlc3M6IEludGVycHJldCBmaWxlcyB3aXRoIC5waHAuZ3ogZXh0ZW5zaW9uIGFzIFBI
UCBmaWxlcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9n
emlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1j
b250ZW50LWVuY29kaW5nLnBocC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9uczogU2tpcCB0aGUgdGVzdCBmb3Igbm93IHVudGlsIDxyZGFyOi8vcHJvYmxlbS8zMzgyMjI0
OT4gc2hpcHMuCisKKzIwMTctMTAtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgorCiAgICAgICAgIE9ubHkgYWxsb3cgbm9uLW1peGVkIGNvbnRlbnQgcHJvdGVjdGVkIHN1YnJl
c291cmNlcyB0byBhc2sgZm9yIGNyZWRlbnRpYWxzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5MTkKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1
MDE1MjQ1PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTI2NWM4ODU4NGM3YjMxN2M1Y2VkNGE0OTJl
MjJjZDYwNWI1NWQwZi4uODkzNWZiNDExZGM3NDg4NGRiY2I3YmQ1YzczODhmMjk3YzA2NzE2YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTMsNiArMjEzLDkgQEAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvZ2VuZXJhbC5hbnkud29ya2VyLmh0bWwgWyBT
a2lwIF0KICMgTm90IHN1cHBvcnRlZAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9i
YWNrZ3JvdW5kLWZldGNoIFsgU2tpcCBdCiAKKyMgQ29udGVudCBlbmNvZGluZyBzbmlmZmluZyBp
cyBvbmx5IHN1cHBvcnRlZCBieSBDRk5ldHdvcmsuCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbCBbIFNraXAgXQorCiAj
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZp
YyB0ZXN0cy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTE0OTMsOCAr
MTQ5Niw2IEBAIHdlYmtpdC5vcmcvYi8xNzUyODggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXVpLTMvb3V0bGluZS0wMTYuaHRtCiB3ZWJraXQub3JnL2IvMTc1Mjg4IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS0zL291dGxpbmUtMDE5Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNzUyOTAgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0wMDUuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTc1NTk3IGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sIFsg
RmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xNzE5NDUgcGVyZi9jbGFzcy1saXN0LXJlbW92ZS5o
dG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTc2MTgzIGZhc3Qv
YmxvY2svaW5zaWRlLWlubGluZXMvb3BhY2l0eS1vbi1pbmxpbmUuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8t
Y29udGVudC1lbmNvZGluZy1leHBlY3RlZC50eHQKaW5kZXggODZkNTFkZjk1OTNiMjU0YmJmYTA3
NWVmYTNhNmM1MDBkNjY0OTQxMS4uNzRmOTFhODhlOWUwNTQyZmM4Y2I5MjQxYmU4OTA5ZjMxZjg1
ZGI0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9n
emlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5v
LWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogVGVzdCB0aGF0
IGFuIFhNTEh0dHBSZXF1ZXN0IHdpdGggQ29udGVudC1UeXBlOiBnemlwIGlzIHByb3Blcmx5IHVu
Y29tcHJlc3NlZC4KIAogQ29udGVudCBUeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KLUNv
bnRlbnQgRW5jb2Rpbmc6IG51bGwKK0NvbnRlbnQgRW5jb2Rpbmc6IGd6aXAKIENvbnRlbnQgTGVu
Z3RoOiAyODIKIFJFU1BPTlNFIDIwMDogW29iamVjdCBBcnJheUJ1ZmZlcl0KIExFTkdUSDogNDQ1
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAt
Y29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGlu
Zy5odG1sCmluZGV4IDhhZTU1NDk3MjE3MjY4YWVkOWNiZjU1MDU5MmUyODFhYjE0NGRiZDMuLjc5
MjYyODc3ZWM0ODY3Mjg1YjcxM2U3YzZhMzkzMTIyODc0NDgwNDUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29u
dGVudC1lbmNvZGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sCkBAIC0xNiw3
ICsxNiw3IEBAIGNvbnN0IGxvZyA9IHRleHQgPT4gewogfTsKIAogY29uc3QgeGhyID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Ci14aHIub3BlbignR0VUJywgJ3Jlc291cmNlcy9nemlwLWxvcmVtLW5v
LWNvbnRlbnQtZW5jb2RpbmcucGhwJyk7Cit4aHIub3BlbignR0VUJywgJ3Jlc291cmNlcy9nemlw
LWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6Jyk7CiB4aHIucmVzcG9uc2VUeXBlID0g
J2FycmF5YnVmZmVyJzsKIHhoci5vbmVycm9yID0gZSA9PiBsb2coYEZBSUxFRDogJHt4aHIuc3Rh
dHVzfSAke3hoci5zdGF0dXNUZXh0fWApOwogeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVz
b3VyY2VzLy5odGFjY2VzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzLy5odGFjY2VzcwppbmRleCA5Mjc3OTQwMWU3ZDVlOWVkNjQ1YTA4OTQ2YTVlNGFk
YjkyY2EwNTRlLi4wMjUyNjA3M2VlNjY3MmVkMzBlZTY5YjRiMWJlNGNiYjJlNGEzMjY1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy8u
aHRhY2Nlc3MKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvLmh0YWNjZXNzCkBAIC0xMCwzICsxMCw1IEBAIEFkZENoYXJzZXQgd2luZG93cy0xMjUx
IC54bWwKIDxGaWxlcyAibm9Db250ZW50VHlwZS5hc2lzIj4KIERlZmF1bHRUeXBlIE5vbmUKIDwv
RmlsZXM+CisKK0FkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1waHAgLnBocC5negpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3pp
cC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5w
aHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkYWIyMjNhYTEwZTE1ZmRkOGQ3ZWFm
MmM2MzdiOTBjMTM5NDRkN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMv
Z3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocAorKysgL2Rldi9udWxsCkBAIC0xLDgg
KzAsMCBAQAotPD9waHAKLSR0ZXh0ID0gIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25z
ZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50
IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlh
bSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlx
dWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVw
cmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lh
dCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBw
cm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBp
ZCBlc3QgbGFib3J1bS4iOwotJGd6aXBUZXh0ID0gZ3plbmNvZGUoJHRleHQsIDYpOwotCi1oZWFk
ZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7Ci0KLWVjaG8gJGd6
aXBUZXh0OwotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3ogYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVt
LW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYWIyMjNhYTEwZTE1ZmRk
OGQ3ZWFmMmM2MzdiOTBjMTM5NDRkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQt
ZW5jb2RpbmcucGhwLmd6CkBAIC0wLDAgKzEsOCBAQAorPD9waHAKKyR0ZXh0ID0gIkxvcmVtIGlw
c3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBl
aXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVh
LiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxh
bWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlz
IGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNz
ZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQg
b2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNp
YSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4iOworJGd6aXBUZXh0ID0gZ3pl
bmNvZGUoJHRleHQsIDYpOworCitoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0
ZXQtc3RyZWFtIik7CisKK2VjaG8gJGd6aXBUZXh0OworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDFlNTE1NWZmODFjY2M0OTUzNWZjNDRiNjg2ZTBh
MDQwODk5NTliNS4uYjc1YjM0ODJlYjE4NjMyYzRlMWJhNzE5ZTYzMzgyOTQzZmJiNGNlZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMxLDYgKzMxLDkg
QEAgZmFzdC9ldmVudHMvZG8tbm90LWRyYWctYW5kLWRyb3AtZGF0YS1kZXRlY3RvcnMtbGluay5o
dG1sIFsgUGFzcyBdCiAKIGZhc3QveG1saHR0cHJlcXVlc3Qvc2V0LWRhbmdlcm91cy1oZWFkZXJz
LWluLWRhc2hib2FyZC5odG1sIFsgUGFzcyBdCiAKKyMgRklYTUU6IFVuc2tpcCB0aGlzIHRlc3Qg
b25jZSB0aGUgZml4IGZvciA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+IHNoaXBzLgoraHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5n
Lmh0bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBF
bmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325234</attachid>
            <date>2017-10-27 20:04:44 -0700</date>
            <delta_ts>2017-10-27 22:15:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175597-20171027200444.patch</filename>
            <type>text/plain</type>
            <size>59089</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhMmI0M2IzM2YzZWYw
MzFjMzAzZjE2NDc4Yzk2MzM0ZGU2ZGE5Ni4uNTAxOTY2NmQxYjc0ZTZmZmFmYjAzMWE4YjdiOGUy
MDg3ZGU3ZmM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE3LTEwLTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBz
aG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3Nv
Y2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3QgdG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBi
ZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVjb21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNl
IG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5nIEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZp
Y2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3VsZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJl
c3BvbnNlIHdpdGggaGVhZGVycworICAgICAgICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9n
emlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2Vz
IG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBIVFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMg
WmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdh
cmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+LgorCisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0
IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1
ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAgIHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVu
dCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3RoZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxs
IGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2VxdWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWln
aHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUgYnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
OjpzaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOiBFbmFibGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVz
b3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRsZSk6IERpdHRvLiBXZSBzaG91bGQgbG9vayB0
byBkaXNhYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4KKyAgICAgICAgYSBzdWJzZXF1
ZW50IGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOiBNb2RpZmllZCB0
byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29kaW5n
IHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCk6IE1vZGlmaWVkIHRvIHRha2UgYSBib29sZWFuIGFzIHRvIHdo
ZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQKKyAgICAgICAgZW5jb2Rpbmcgc25pZmZpbmcuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOiBNb2Rp
ZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0aGUgQ0ZN
dXRhYmxlVVJMUmVxdWVzdFJlZiBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4y
LgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlv
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24p
OiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250
ZW50IGVuY29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0
aGUgTlNNdXRhYmxlVVJMUmVxdWVzdCBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4x
My4yLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhh
dmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOiBNb2RpZmll
ZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29k
aW5nIHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNl
SGFuZGxlKTogRGl0dG8uCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KTogRG8gbm90IGVuYWJs
ZSBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIGZvciB0aGUgcmVxdWVzdC4KKworMjAxNy0xMC0y
NyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKICAgICAgICAgT25seSBhbGxv
dyBub24tbWl4ZWQgY29udGVudCBwcm90ZWN0ZWQgc3VicmVzb3VyY2VzIHRvIGFzayBmb3IgY3Jl
ZGVudGlhbHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3ODkxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTUyNDU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCA0NDliMWRkYWE2OWY3NjEyODg1YjFmODQ5MzNkOWE0NTA5MDcyNTJhLi42MzM3ZjRl
YWU4ZDA2NGEyMWViOTY0ZDRmNzZlYjIzN2RiMDA2ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxNy0xMC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgWE1MSHR0cFJlcXVlc3Qgc2hvdWxkIG5vdCBzbmlmZiBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzU1OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzODIyMjQ5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvcndhcmQgZGVjbGFyZSBDRk5ldHdv
cmsgU1BJLgorCisgICAgICAgICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKwogMjAxNy0x
MC0yNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBFbmFibGUgV2ViS2l0IGxvZ2dpbmcgY29uZmlndXJhdGlvbiBhbmQgZGlz
cGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAyM2VlYTdkNGYxZTcwNjRmN2ZmMGM3YWQyOGNiZDNlMzE2MjU0ZTM0
Li4xYzg4MmUyOGRmZTU3Njc2M2U3MTZjMTgxZjEwN2QwNjM4ZTc2YTlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDQ2IEBACiAyMDE3LTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBzaG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5j
b2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhl
IGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3NvY2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3Qg
dG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBiZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVj
b21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNlIG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5n
IEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZpY2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3Vs
ZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJlc3BvbnNlIHdpdGggaGVhZGVycworICAgICAg
ICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9nemlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6
IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2VzIG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBI
VFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMgWmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1h
em9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdhcmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+Lgor
CisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNu
aWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAg
IHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3Ro
ZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxsIGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2Vx
dWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWlnaHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUg
YnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSk6IFBh
c3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrTG9hZDo6TmV0d29ya0xvYWQpOiBEaXR0by4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOiBFbmNvZGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzOjpkZWNvZGUpOiBEZWNvZGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBwb2xp
Y3kuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRp
dmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxv
YWQ6OlNwZWN1bGF0aXZlTG9hZCk6IEVuYWJsZSBjb250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1h
dGNoIGV4aXN0aW5nCisgICAgICAgIGJlaGF2aW9yLiBXZSBzaG91bGQgbG9vayB0byBkaXNhYmxl
IGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4gYSBzdWJzZXF1ZW50IGNoYW5nZS4KKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpEb3dubG9hZDo6c3RhcnQpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBt
YXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnN0YXJ0
V2l0aEhhbmRsZSk6IERpdHRvLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29h
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6IE1vZGlmaWVkIHRvIHRha2UgdGhlIGNvbnRlbnQgZW5j
b2Rpbmcgc25pZmZpbmcKKyAgICAgICAgcG9saWN5IGFuZCBhcHBseSBpdCB0byB0aGUgTlNNdXRh
YmxlVVJMUmVxdWVzdCBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4yLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nl
c3MpOiBQYXNzIHRocm91Z2ggdGhlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5Lgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseSk6IEVuYWJsZSBjb250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1hdGNoIGV4aXN0aW5nCisg
ICAgICAgIGJlaGF2aW9yLgorCisyMDE3LTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKwogICAgICAgICBPbmx5IGFsbG93IG5vbi1taXhlZCBjb250ZW50IHByb3RlY3Rl
ZCBzdWJyZXNvdXJjZXMgdG8gYXNrIGZvciBjcmVkZW50aWFscwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4OTE5CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNTAxNTI0NT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2Nm
L0NGTmV0d29ya1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmgKaW5kZXggZGYzOWI4YmQ0NmFmYWUwNDNlODQwODM2YTMwODA3OTgwMzcxODZmNi4uMGFj
Yzg5ZmJmOWI2NDUxNjk2NTY3MWE5NjgxZWFiOTE2YTYxMDQzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTIwOCw2ICsyMDgsMTAgQEAgZXh0
ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDYWNoZVBhcnRpdGlvbktleTsKIGV4dGVybiBj
b25zdCBDRlN0cmluZ1JlZiBfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmY7CiBl
eHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTFN0b3JhZ2VTZXNzaW9uSXNQcml2YXRlOwog
CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMgorZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRlVSTFJlcXVlc3RDb250ZW50RGVj
b2RlclNraXBVUkxDaGVjazsKKyNlbmRpZgorCiBDRkhUVFBDb29raWVTdG9yYWdlUmVmIF9DRkhU
VFBDb29raWVTdG9yYWdlR2V0RGVmYXVsdChDRkFsbG9jYXRvclJlZik7CiBDRkhUVFBDb29raWVT
dG9yYWdlUmVmIENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVGcm9tRmlsZShDRkFsbG9jYXRvclJl
ZiwgQ0ZVUkxSZWYsIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogdm9pZCBDRkhUVFBDb29raWVT
dG9yYWdlU2NoZWR1bGVXaXRoUnVuTG9vcChDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBDRlJ1bkxv
b3BSZWYsIENGU3RyaW5nUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IGU5MjE0MjdhNDk5MzkyNTlmNWU0NGFmNTljN2VjMzVhYTFhMjFjOTcuLmY5MTk5
ODNkODIxNjdmMjIyYjRkOTdhZTNmNWNhNGRiNDMwOTk0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1faGFuZGxlID0g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShmcmFtZUxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgp
LCBtX3JlcXVlc3QsIHRoaXMsIG1fZGVmZXJzTG9hZGluZywgbV9vcHRpb25zLnNuaWZmQ29udGVu
dCA9PSBTbmlmZkNvbnRlbnQpOworICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShmcmFtZUxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX3JlcXVlc3QsIHRoaXMsIG1f
ZGVmZXJzTG9hZGluZywgbV9vcHRpb25zLnNuaWZmQ29udGVudCA9PSBTbmlmZkNvbnRlbnQsIG1f
b3B0aW9ucy5zbmlmZkNvbnRlbnRFbmNvZGluZyA9PSBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1Bv
bGljeTo6U25pZmYpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5n
KGJvb2wgZGVmZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCBm
NGM5YTQ1NzdlN2U0ZGQ5YzYxY2ZlMmI3MmM3MGM4ZjcxZmVmMDhlLi5iYWM4YWNhODBlZTA4ZTU0
NWUxMTk1ZDA4ZDlmM2E0N2UxYzZmMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaApAQCAtMTIzLDYgKzEyMyw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFNlbmRS
ZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc2VuZExvYWRD
YWxsYmFja3MgPT0gU2VuZENhbGxiYWNrczsgfQogICAgIHZvaWQgc2V0U2VuZENhbGxiYWNrUG9s
aWN5KFNlbmRDYWxsYmFja1BvbGljeSBzZW5kTG9hZENhbGxiYWNrcykgeyBtX29wdGlvbnMuc2Vu
ZExvYWRDYWxsYmFja3MgPSBzZW5kTG9hZENhbGxiYWNrczsgfQogICAgIGJvb2wgc2hvdWxkU25p
ZmZDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLnNuaWZmQ29udGVudCA9PSBTbmlm
ZkNvbnRlbnQ7IH0KKyAgICBib29sIHNob3VsZFNuaWZmQ29udGVudEVuY29kaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zLnNuaWZmQ29udGVudEVuY29kaW5nID09IENvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5OjpTbmlmZjsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNBbGxv
d2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMoKSBjb25zdDsKICAgICBib29sIHNob3VsZEluY2x1
ZGVDZXJ0aWZpY2F0ZUluZm8oKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY2VydGlmaWNhdGVJ
bmZvUG9saWN5ID09IEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm87IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCmluZGV4IDVjNWEwZDQyN2I0ZTk5NjBi
YjdjNWM3ZDFmMWZhY2U1OWE0NDU0YmEuLjY1NzRiMzc4MTViNmNmYTc4MTZiYzE4YjY2NTE4ZjRm
NzU4NjM1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ck9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRp
b25zLmgKQEAgLTk3LDYgKzk3LDExIEBAIGVudW0gY2xhc3MgU2VydmljZVdvcmtlcnNNb2RlIHsK
ICAgICBOb25lLAogfTsKIAorZW51bSBjbGFzcyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGlj
eSB7CisgICAgU25pZmYsCisgICAgRG9Ob3RTbmlmZiwKK307CisKIHN0cnVjdCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMgOiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKICAgICBSZXNvdXJjZUxvYWRlck9w
dGlvbnMoKSB7IH0KIApAQCAtMTIwLDYgKzEyNSw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMgOiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKIAogICAgIFNlbmRDYWxsYmFja1BvbGljeSBz
ZW5kTG9hZENhbGxiYWNrcyB7IERvTm90U2VuZENhbGxiYWNrcyB9OwogICAgIENvbnRlbnRTbmlm
ZmluZ1BvbGljeSBzbmlmZkNvbnRlbnQgeyBEb05vdFNuaWZmQ29udGVudCB9OworICAgIENvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudEVuY29kaW5nIHsgQ29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIH07CiAgICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBk
YXRhQnVmZmVyaW5nUG9saWN5IHsgQnVmZmVyRGF0YSB9OwogICAgIFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHsgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6
OkRvTm90VXNlIH07CiAgICAgU2VjdXJpdHlDaGVja1BvbGljeSBzZWN1cml0eUNoZWNrIHsgRG9T
ZWN1cml0eUNoZWNrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IGVlMjVmOWYzNmI1NjQ3M2I0ZjZh
OTU3OWM4MTIyYzUwNTZmZWMyNWQuLjFlZTFkNjE2M2ZkZGIzYTQzYjYxNzQ0MDU0M2ZmZjc2ZDNh
YmRiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC00NzUsNyArNDc1LDEwIEBAIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZShj
b25zdCBVUkwmIHVyCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCkubmV0
d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOworICAgIGJvb2wg
ZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gdHJ1
ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFt
ZS0+bG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZGVmZXJzTG9h
ZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAK
ICAgICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1cmluZyBy
ZWRpcmVjdHMsIHdlIGluaXRpYWxpemUKICAgICAvLyB0aGUgaWRlbnRpZmllciBhbmQgdGhlIGZp
cnN0IHdpbGxTZW5kUmVxdWVzdCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDYxMjk2OWYwNGE3ZWFl
ZWUyZDE1ZTk4Yjc0ZWI3MGU5YTUyMmI3ODUuLmJjOTcxMDg5MTQ5MzFjNzk3YTY3MTM4Zjk0NjI5
MGQxZjExODlhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIEJsb2JS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShCbG9iRGF0YSogYmxvYkRh
dGEsIGNvbnN0IFJlcwogfQogCiBCbG9iUmVzb3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRs
ZShCbG9iRGF0YSogYmxvYkRhdGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVz
b3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBhc3luYykKLSAgICA6IFJlc291cmNlSGFu
ZGxlKG51bGxwdHIsIHJlcXVlc3QsIGNsaWVudCwgZmFsc2UsIGZhbHNlKQorICAgIDogUmVzb3Vy
Y2VIYW5kbGUobnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxzZSAvKiBkZWZlcnNMb2FkaW5n
ICovLCBmYWxzZSAvKiBzaG91bGRDb250ZW50U25pZmYgKi8sIHRydWUgLyogc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYgKi8pCiAgICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQogICAgICwgbV9h
c3luYyhhc3luYykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUGluZ0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFu
ZGxlLmgKaW5kZXggYmViOWM1YWNhNzgzZTcwMDU2OGUxMTg3NjlkZGViMTE3YmQ4MGVlOS4uYTg4
Y2JhMzUzNDkxODJjMmRlMWExOThmYzUzYmU0NzU4NmQzMThjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKQEAgLTUyLDcgKzUyLDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgLCBtX3VzZXNBc3luY0NhbGxiYWNrcyh1c2VBc3luY0NhbGxiYWNrcykKICAg
ICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQog
ICAgIHsKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtp
bmdDb250ZXh0LCByZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBib29sIGRl
ZmVyc0xvYWRpbmcgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYgPSBm
YWxzZTsKKyAgICAgICAgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7Cisg
ICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShuZXR3b3JraW5nQ29udGV4
dCwgcmVxdWVzdCwgdGhpcywgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91
bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAKICAgICAgICAgLy8gSWYgdGhlIHNlcnZlciBuZXZl
ciByZXNwb25kcywgdGhpcyBvYmplY3Qgd2lsbCBoYW5nIGFyb3VuZCBmb3JldmVyLgogICAgICAg
ICAvLyBTZXQgYSB2ZXJ5IGdlbmVyb3VzIHRpbWVvdXQsIGp1c3QgaW4gY2FzZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXgg
YmViY2Y4OGRiYmNlNGQxZDFiZTBkMTUzNDRlNDNmMDZlNzhiN2Y1MC4uNmQ1MWMyZTc4OTE4ZjU1
MjM4NDU0MmU2YjQ2OWVmYzAyNmJmMjhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTcyLDggKzcyLDggQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6cmVnaXN0ZXJCdWlsdGluU3luY2hyb25vdXNMb2FkZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBwcm90b2MKICAgICBidWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xv
YWRlck1hcCgpLmFkZChwcm90b2NvbCwgbG9hZGVyKTsKIH0KIAotUmVzb3VyY2VIYW5kbGU6OlJl
c291cmNlSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJz
TG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCi0gICAgOiBkKHN0ZDo6bWFrZV91bmlx
dWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywgY29udGV4dCwgcmVxdWVzdCwgY2xpZW50
LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZm
VVJMKHJlcXVlc3QudXJsKCkpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBS
ZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQorICAgIDog
ZChzdGQ6Om1ha2VfdW5pcXVlPFJlc291cmNlSGFuZGxlSW50ZXJuYWw+KHRoaXMsIGNvbnRleHQs
IHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNo
b3VsZENvbnRlbnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSwgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYpKQogewogICAgIGlmICghcmVxdWVzdC51cmwoKS5pc1ZhbGlkKCkpIHsKICAgICAgICAg
c2NoZWR1bGVGYWlsdXJlKEludmFsaWRVUkxGYWlsdXJlKTsKQEAgLTg2LDEyICs4NiwxMiBAQCBS
ZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFJlc291cmNlUmVxdWVzdAogICAgIH0KIH0KIAotUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQs
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCitSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGll
bnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwg
Ym9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikKIHsKICAgICBpZiAoYXV0byBjb25zdHJ1
Y3RvciA9IGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwKCkuZ2V0KHJlcXVlc3Qu
dXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQogICAgICAgICByZXR1
cm4gY29uc3RydWN0b3IocmVxdWVzdCwgY2xpZW50KTsKIAotICAgIGF1dG8gbmV3SGFuZGxlID0g
YWRvcHRSZWYoKm5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRl
ZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAgIGF1dG8gbmV3SGFuZGxlID0g
YWRvcHRSZWYoKm5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRl
ZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0g
Tm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gV1RGTW92ZShuZXdIYW5kbGUpOwpAQCAtMjEwLDYg
KzIxMCwxMSBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzaG91bGRDb250ZW50U25pZmYoKSBjb25z
dAogICAgIHJldHVybiBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZjsKIH0KIAorYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSBjb25zdAoreworICAgIHJldHVy
biBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmOworfQorCiBib29sIFJlc291cmNlSGFu
ZGxlOjpzaG91bGRDb250ZW50U25pZmZVUkwoY29uc3QgVVJMJiB1cmwpCiB7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmgKaW5kZXggOWU3OTZmMTJhYTIzNzkyOThmZjMwYjVhY2M3ZTcyNGFmM2ZkNzM4Ni4u
MDNiYjgxYzQxZGU2MjkwYWUyODk5NjE1MzM0YzZkOTJjYWMxMjYzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtOTIsMTEgKzky
LDExIEBAIGNsYXNzIFRpbWVyOwogCiBjbGFzcyBSZXNvdXJjZUhhbmRsZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFJlc291cmNlSGFuZGxlPiwgcHVibGljIEF1dGhlbnRpY2F0aW9uQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBj
cmVhdGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJj
ZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNy
ZWF0ZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNl
SGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCos
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBSZXNvdXJj
ZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7CiAKICNpZiBV
U0UoU09VUCkKLSAgICBzdGF0aWMgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoU291cE5l
dHdvcmtTZXNzaW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGll
bnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBz
dGF0aWMgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVy
c0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmKTsKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVzb3Vy
Y2VIYW5kbGUoKTsKQEAgLTE2NCw2ICsxNjQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRD
b250ZW50U25pZmYoKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRDb250ZW50U25pZmZV
UkwoY29uc3QgVVJMJik7CiAKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKCkg
Y29uc3Q7CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JjZUNvbnRlbnRTbmlm
ZmluZygpOwogCiAjaWYgVVNFKENVUkwpIHx8IFVTRShTT1VQKQpAQCAtMjM1LDcgKzIzNyw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1aWx0aW5TeW5jaHJvbm91c0xvYWRl
cihjb25zdCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWlsdGluU3luY2hyb25vdXNMb2FkZXIp
OwogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJz
TG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJlc291cmNlSGFuZGxlKE5l
dHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVD
bGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgIGJvb2wgdXNlc0FzeW5jQ2FsbGJh
Y2tzKCkgY29uc3Q7CiAKQEAgLTI0Nyw3ICsyNDksNyBAQCBwcml2YXRlOgogICAgIH07CiAKICNp
ZiBVU0UoU09VUCkKLSAgICBSZXNvdXJjZUhhbmRsZShTb3VwTmV0d29ya1Nlc3Npb24mLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJlc291cmNlSGFuZGxlKFNvdXBO
ZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAjZW5kaWYKIAogICAgIHZvaWQgcGxhdGZvcm1T
ZXREZWZlcnNMb2FkaW5nKGJvb2wpOwpAQCAtMjY3LDE1ICsyNjksMTUgQEAgcHJpdmF0ZToKICNl
bmRpZgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICB2b2lkIGNyZWF0ZUNGVVJMQ29u
bmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRl
bnRTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJvcGVy
dGllcyk7CisgICAgdm9pZCBjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVu
dFByb3BlcnRpZXMpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpICYmICFVU0UoQ0ZVUkxD
T05ORUNUSU9OKQotICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwg
U2NoZWR1bGluZ0JlaGF2aW9yKTsKKyAgICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBk
ZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250
ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhh
dmlvcik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykgJiYgIVVTRShDRlVSTENPTk5FQ1RJ
T04pCi0gICAgdm9pZCBjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVs
aW5nQmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29ubmVjdGlvblByb3BlcnRpZXMpOworICAgIHZv
aWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25hcnkgKmNvbm5lY3Rp
b25Qcm9wZXJ0aWVzKTsKICNlbmRpZgogCiAjaWYgVVNFKFNPVVApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmlu
ZGV4IDNiNzE0NGI1ODRhNTcxOTM5NDY3NWQ5YzkyOWM3Njc1ODk0NTRmZmEuLjViYjc0NWI0NGE4
MjJkZDg1YjM5NTA4ZjQ5MWY0OWI2ODQ3Mjg1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC03Miw3
ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCisgICAgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJjZUhhbmRsZSogbG9hZGVyLCBOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQogICAgICAgICA6IG1fY29u
dGV4dChjb250ZXh0KQogICAgICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAgICAgLCBtX2Zp
cnN0UmVxdWVzdChyZXF1ZXN0KQpAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgICAgICwg
bV9wYXJ0aXRpb24ocmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKQogICAgICAgICAsIG1fZGVmZXJz
TG9hZGluZyhkZWZlcnNMb2FkaW5nKQogICAgICAgICAsIG1fc2hvdWxkQ29udGVudFNuaWZmKHNo
b3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgLCBtX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
IHsgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgfQogICAgICAgICAsIG1fdXNlc0FzeW5jQ2Fs
bGJhY2tzKGNsaWVudCAmJiBjbGllbnQtPnVzZXNBc3luY0NhbGxiYWNrcygpKQogI2lmIFVTRShD
RlVSTENPTk5FQ1RJT04pCiAgICAgICAgICwgbV9jdXJyZW50UmVxdWVzdChyZXF1ZXN0KQpAQCAt
MTE1LDYgKzExNiw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbV9kZWZlcnNMb2FkaW5nOwogICAg
IGJvb2wgbV9zaG91bGRDb250ZW50U25pZmY7CisgICAgYm9vbCBtX3Nob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmOwogICAgIGJvb2wgbV91c2VzQXN5bmNDYWxsYmFja3M7CiAjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICBSZXRhaW5QdHI8Q0ZVUkxDb25uZWN0aW9uUmVmPiBtX2Nvbm5lY3Rp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA2M2ZjZThiM2Y4ZmZiOWEzYjVhODQxMmE0NGZk
NTg0MTRlYmNkY2VjLi44Yjk0ZWQ0NjdlMDdlNzg5MzQ1ZDExNGEyNjdiNmEyOWJmNTJjNTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMgaW5saW5lIENG
U3RyaW5nUmVmIHNob3VsZFNuaWZmQ29ubmVjdGlvblByb3BlcnR5KCkKICNlbmRpZgogfQogCi12
b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdCZWhh
dmlvciBzY2hlZHVsaW5nQmVoYXZpb3IsIENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVz
KQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2
aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJvcGVydGllcykKIHsKICAgICBpZiAoKCFkLT5t
X3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgpKSAmJiAhZmlyc3RSZXF1ZXN0
KCkudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CiAgICAgICAgIC8vIENyZWRlbnRp
YWxzIGZvciBmdHAgY2FuIG9ubHkgYmUgcGFzc2VkIGluIFVSTCwgdGhlIGRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSBkZWxlZ2F0ZSBjYWxsIHdvbid0IGJlIG1hZGUuCkBAIC0xNjEs
NyArMTYxLDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgYXV0byByZXF1ZXN0ID0g
YWRvcHRDRihDRlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBmaXJzdFJlcXVlc3QoKS5jZlVSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpKSk7CiAgICAgaWYg
KGF1dG8gc3RvcmFnZVNlc3Npb24gPSBkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpKQogICAgICAg
ICBfQ0ZVUkxSZXF1ZXN0U2V0U3RvcmFnZVNlc3Npb24ocmVxdWVzdC5nZXQoKSwgc3RvcmFnZVNl
c3Npb24pOwotICAgIAorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTMwMgorICAgIGlmICghc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYpCisgICAgICAgIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KHJlcXVlc3QuZ2V0
KCksIGtDRlVSTFJlcXVlc3RDb250ZW50RGVjb2RlclNraXBVUkxDaGVjaywga0NGQm9vbGVhblRy
dWUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYp
OworI2VuZGlmCisKICAgICBpZiAoIXNob3VsZENvbnRlbnRTbmlmZikKICAgICAgICAgX0NGVVJM
UmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkocmVxdWVzdC5nZXQoKSwgc2hvdWxkU25pZmZDb25u
ZWN0aW9uUHJvcGVydHkoKSwga0NGQm9vbGVhbkZhbHNlKTsKIApAQCAtMjc3LDcgKzI4NCw3IEBA
IGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIAogICAgIFNjaGVkdWxpbmdCZWhhdmlvciBz
Y2hlZHVsaW5nQmVoYXZpb3IgPSBjbGllbnQoKS0+bG9hZGluZ1N5bmNocm9ub3VzWEhSKCkgPyBT
Y2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzIDogU2NoZWR1bGluZ0JlaGF2aW9yOjpBc3lu
Y2hyb25vdXM7CiAKLSAgICBjcmVhdGVDRlVSTENvbm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UsIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmLCBzY2hlZHVsaW5nQmVoYXZpb3IsIGNs
aWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyh0aGlzKS5nZXQoKSk7CisgICAgY3JlYXRlQ0ZV
UkxDb25uZWN0aW9uKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBkLT5tX3Nob3VsZENvbnRl
bnRTbmlmZiwgZC0+bV9zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2NoZWR1bGluZ0JlaGF2
aW9yLCBjbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXModGhpcykuZ2V0KCkpOwogCiAgICAg
ZC0+bV9jb25uZWN0aW9uRGVsZWdhdGUtPnNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoZC0+bV9j
b25uZWN0aW9uLmdldCgpKTsKICAgICBDRlVSTENvbm5lY3Rpb25TdGFydChkLT5tX2Nvbm5lY3Rp
b24uZ2V0KCkpOwpAQCAtNTg2LDcgKzU5Myw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRm
b3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAg
ICAgU3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNsaWVudC5zZXRBbGxvd1N0
b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRp
YWxzUG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJmNsaWVudCwgZmFs
c2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOworICAg
IFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFu
ZGxlKGNvbnRleHQsIHJlcXVlc3QsICZjbGllbnQsIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0
cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8sIHRydWUgLypzaG91bGRDb250ZW50RW5jb2RpbmdT
bmlmZiovKSk7CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5z
dG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC01OTYsNyArNjAzLDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICB9CiAKICAgICBoYW5kbGUtPmNyZWF0ZUNGVVJM
Q29ubmVjdGlvbihzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6VXNlLCBSZXNvdXJjZUhhbmRsZTo6c2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3Qu
dXJsKCkpLAotICAgICAgICBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUt
PmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKKyAg
ICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigpLCBTY2hlZHVsaW5nQmVo
YXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGll
cyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKIAogICAgIENGVVJMQ29ubmVjdGlvblNjaGVkdWxlV2l0
aFJ1bkxvb3AoaGFuZGxlLT5jb25uZWN0aW9uKCksIENGUnVuTG9vcEdldEN1cnJlbnQoKSwgc3lu
Y2hyb25vdXNMb2FkUnVuTG9vcE1vZGUoKSk7CiAgICAgQ0ZVUkxDb25uZWN0aW9uU2NoZWR1bGVE
b3dubG9hZFdpdGhSdW5Mb29wKGhhbmRsZS0+Y29ubmVjdGlvbigpLCBDRlJ1bkxvb3BHZXRDdXJy
ZW50KCksIHN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRl
eCAzOTQwZGJlMGJhY2Q3ZDBjMjI2NjY0ZDU5MjljZTUyYzE2MzBjZmE2Li5jYjViNzY0OWU1MmY0
YTBiYjdlZTE3NDI3OTU2ZTE4OWMxMmRmNjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMTI0LDkg
KzEyNCw5IEBAIHN0YXRpYyBib29sIHN5bmNocm9ub3VzV2lsbFNlbmRSZXF1ZXN0RW5hYmxlZCgp
CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpCi12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVh
dGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1
bGluZ0JlaGF2aW9yKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9u
KGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGlu
Z0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvcikKICNlbHNlCi12b2lkIFJlc291cmNlSGFuZGxl
OjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Ig
c2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25hcnkgKmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKQor
dm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwg
Ym9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVk
dWxpbmdCZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpjb25uZWN0aW9uUHJvcGVydGllcykKICNlbmRp
ZgogewogI2lmICFIQVZFKFRJTUlOR0RBVEFPUFRJT05TKQpAQCAtMTYwLDIwICsxNjAsMjIgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICB9CiAKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVx
dWVzdCA9IGZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSk7Ci0gICAg
aWYgKCFzaG91bGRDb250ZW50U25pZmYpIHsKLSAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAq
bXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwot
ICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFByb3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJp
bmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmZdOwotICAgICAgICBuc1Jl
cXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CiAKKyAgICBhdXRvIG11dGFibGVSZXF1ZXN0
ID0gYWRvcHROUyhbbnNSZXF1ZXN0IG11dGFibGVDb3B5XSk7CisjaWYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMgorICAgIGlmICghc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAgICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJv
cGVydHk6QChZRVMpIGZvcktleTooTlNTdHJpbmcgKilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29k
ZXJTa2lwVVJMQ2hlY2tdOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYpOworI2VuZGlmCiAjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJ
T05JTkcpCiAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24gPSBkLT5tX2NvbnRleHQtPnN0b3Jh
Z2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRpdGlvbihmaXJzdFJlcXVlc3QoKSk7Ci0gICAg
aWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICBOU011dGFibGVVUkxS
ZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNSZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVs
ZWFzZV07CisgICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHkoKSkKICAgICAgICAgW211
dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpzdG9yYWdlUGFydGl0aW9uIGZvcktleTpAIl9fU1RP
UkFHRV9QQVJUSVRJT05fSURFTlRJRklFUiJdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxl
UmVxdWVzdDsKLSAgICB9CiAjZW5kaWYKKyAgICBpZiAoIXNob3VsZENvbnRlbnRTbmlmZikKKyAg
ICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5n
ICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmXTsKKyAgICBuc1JlcXVlc3Qg
PSBtdXRhYmxlUmVxdWVzdC5hdXRvcmVsZWFzZSgpOwogCiAgICAgaWYgKGQtPm1fc3RvcmFnZVNl
c3Npb24pCiAgICAgICAgIG5zUmVxdWVzdCA9IFtjb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lv
bihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBuc1JlcXVlc3QpIGF1dG9yZWxlYXNlXTsKQEAg
LTI1MSwxMiArMjUzLDE0IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKICAgICAgICAg
UmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSks
CiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAogICAgICAgICBkLT5tX3Nob3Vs
ZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQoKSwKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwKICAgICAg
ICAgc2NoZWR1bGluZ0JlaGF2aW9yKTsKICNlbHNlCiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9u
KAogICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCiAgICAgICAg
IGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQtPm1fY29udGV4dC0+bG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLAogICAgICAgICBzY2hlZHVsaW5nQmVoYXZpb3IsCiAgICAgICAgIChOU0RpY3Rpb25hcnkg
KiljbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXModGhpcykuZ2V0KCkpOwogI2VuZGlmCkBA
IC0zOTcsNyArNDAxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICBTeW5jaHJvbm91
c0xvYWRlckNsaWVudCBjbGllbnQ7CiAgICAgY2xpZW50LnNldEFsbG93U3RvcmVkQ3JlZGVudGlh
bHMoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVz
ZSk7CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBS
ZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBmYWxzZSAvKmRlZmVyc0xv
YWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CisgICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwg
cmVxdWVzdCwgJmNsaWVudCwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRD
b250ZW50U25pZmYqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKi8pKTsKIAog
ICAgIGhhbmRsZS0+ZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9u
KCkucGxhdGZvcm1TZXNzaW9uKCk7CiAKQEAgLTQxMiwxMiArNDE2LDE0IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4CiAgICAgICAgIGhhbmRsZS0+bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsCiAgICAg
ICAgIGhhbmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmKCksCiAgICAgICAgIFNjaGVkdWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMpOwog
I2Vsc2UKICAgICBoYW5kbGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFuZGxl
LT5tYWtlRGVsZWdhdGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpLCAvLyBBIHN5bmNocm9u
b3VzIHJlcXVlc3QgY2Fubm90IHR1cm4gaW50byBhIGRvd25sb2FkLCBzbyB0aGVyZSBpcyBubyBu
ZWVkIHRvIHByb3h5IHRoZSBkZWxlZ2F0ZS4KICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UsCiAgICAgICAgIGhhbmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkgfHwgKGNvbnRleHQg
JiYgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKSwKKyAgICAgICAg
aGFuZGxlLT5zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigpLAogICAgICAgICBTY2hlZHVsaW5n
QmVoYXZpb3I6OlN5bmNocm9ub3VzLAogICAgICAgICAoTlNEaWN0aW9uYXJ5ICopaGFuZGxlLT5j
bGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXMoaGFuZGxlLmdldCgpKS5nZXQoKSk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNzQ5OTk3MmVmZThlNmZiYTEwODUyOWUwNDBi
M2Q3ODU2Zjc4NDAwMC4uM2IyNTZkN2JmZGIzNjJlYzVmNDViODM1OGIzNGRmNjJkYWJlYjRiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTkwLDkgKzkwLDkgQEAgU291cFNlc3Npb24qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWw6OnNvdXBTZXNzaW9uKCkKICAgICByZXR1cm4gbV9zZXNzaW9u
ID8gbV9zZXNzaW9uLT5zb3VwU2Vzc2lvbigpIDogc2Vzc2lvbkZyb21Db250ZXh0KG1fY29udGV4
dC5nZXQoKSk7CiB9CiAKLVJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKK1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBk
ZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZikKIHsKLSAgICBhdXRvIG5ld0hhbmRsZSA9IGFkb3B0UmVmKCpuZXcgUmVz
b3VyY2VIYW5kbGUoc2Vzc2lvbiwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91
bGRDb250ZW50U25pZmYpKTsKKyAgICBhdXRvIG5ld0hhbmRsZSA9IGFkb3B0UmVmKCpuZXcgUmVz
b3VyY2VIYW5kbGUoc2Vzc2lvbiwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91
bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAKICAgICBpZiAo
bmV3SGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAg
ICAgcmV0dXJuIFdURk1vdmUobmV3SGFuZGxlKTsKQEAgLTEwMyw4ICsxMDMsOCBAQCBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoU291cE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1SZXNvdXJjZUhhbmRs
ZTo6UmVzb3VyY2VIYW5kbGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wg
ZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCi0gICAgOiBkKHN0ZDo6bWFr
ZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywgbnVsbHB0ciwgcmVxdWVzdCwg
Y2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVu
dFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRs
ZShTb3VwTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBi
b29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikK
KyAgICA6IGQoc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUhhbmRsZUludGVybmFsPih0aGlzLCBu
dWxscHRyLCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlm
ZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSksIHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmKSkKIHsKICAgICBpZiAoIXJlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7CiAg
ICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CkBAIC03MzgsNyArNzM4
LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBSZXNvdXJjZUhhbmRsZTo6cmVsZWFzZUZvckRvd25sb2FkKFJlc291cmNlSGFuZGxlQ2xpZW50
KiBkb3dubG9hZENsaWVudCkKIHsKICAgICAvLyBXZSBkb24ndCBhZG9wdCB0aGUgcmVmLCBhcyBp
dCB3aWxsIGJlIHJlbGVhc2VkIGJ5IGNsZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlvbiwgd2hpY2gg
c2hvdWxkIGFsd2F5cyBydW4uCi0gICAgUmVzb3VyY2VIYW5kbGUqIG5ld0hhbmRsZSA9IG5ldyBS
ZXNvdXJjZUhhbmRsZShkLT5tX2NvbnRleHQuZ2V0KCksIGZpcnN0UmVxdWVzdCgpLCBudWxscHRy
LCBkLT5tX2RlZmVyc0xvYWRpbmcsIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBSZXNv
dXJjZUhhbmRsZSogbmV3SGFuZGxlID0gbmV3IFJlc291cmNlSGFuZGxlKGQtPm1fY29udGV4dC5n
ZXQoKSwgZmlyc3RSZXF1ZXN0KCksIG51bGxwdHIsIGQtPm1fZGVmZXJzTG9hZGluZywgZC0+bV9z
aG91bGRDb250ZW50U25pZmYsIGQtPm1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogICAg
IG5ld0hhbmRsZS0+cmVsYXhBZG9wdGlvblJlcXVpcmVtZW50KCk7CiAgICAgc3RkOjpzd2FwKGQs
IG5ld0hhbmRsZS0+ZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4
IDc5ZDhjMzhiYzc4MTg5YTIzYTdiMGU4ZjUyYmI3ODA5Y2NkMzVhYjIuLjA5NmYwNTU1YWMxZWU0
NTJiNjQ1YTJiYjljZWQ1MmUxNjUxNTRiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcApAQCAtNjEzLDYgKzYxMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1
ZXN0OjpjcmVhdGVSZXF1ZXN0KCkKICAgICBvcHRpb25zLmluaXRpYXRvciA9IGNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMoKS54bWxodHRwcmVxdWVzdDsKICAgICBvcHRpb25zLnNhbWVP
cmlnaW5EYXRhVVJMRmxhZyA9IFNhbWVPcmlnaW5EYXRhVVJMRmxhZzo6U2V0OwogICAgIG9wdGlv
bnMuZmlsdGVyaW5nUG9saWN5ID0gUmVzcG9uc2VGaWx0ZXJpbmdQb2xpY3k6OkVuYWJsZTsKKyAg
ICBvcHRpb25zLnNuaWZmQ29udGVudEVuY29kaW5nID0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3k6OkRvTm90U25pZmY7CiAKICAgICBpZiAobV90aW1lb3V0TWlsbGlzZWNvbmRzKSB7CiAg
ICAgICAgIGlmICghbV9hc3luYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAppbmRleCAxZWFmZWVkZDlkNmMxODFmNjQxZDljNDI4
MjViYzliYzU5Y2FiODMxLi5mNjNhZGFmMDgzYzQxM2Y3YmRkM2ZmOGY3YWViN2FmZjY5NTExMzI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuY3BwCkBAIC0xMTIsNyArMTEyLDEwIEBAIHZvaWQgRG93bmxvYWQ6OnN0YXJ0KCkKIHsK
ICAgICBpZiAobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sSXNCbG9iKCkpIHsKICAgICAgICAgbV9k
b3dubG9hZENsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8QmxvYkRvd25sb2FkQ2xpZW50PigqdGhp
cyk7Ci0gICAgICAgIG1fcmVzb3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG51
bGxwdHIsIG1fcmVxdWVzdCwgbV9kb3dubG9hZENsaWVudC5nZXQoKSwgZmFsc2UsIGZhbHNlKTsK
KyAgICAgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxk
Q29udGVudFNuaWZmID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYgPSB0cnVlOworICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZShudWxscHRyLCBtX3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGRlZmVy
c0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYp
OwogICAgICAgICBkaWRTdGFydCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTI0LDcg
KzEyNywxMCBAQCB2b2lkIERvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUoUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcgogewogICAgIGlmIChtX3JlcXVlc3Qu
dXJsKCkucHJvdG9jb2xJc0Jsb2IoKSkgewogICAgICAgICBtX2Rvd25sb2FkQ2xpZW50ID0gc3Rk
OjptYWtlX3VuaXF1ZTxCbG9iRG93bmxvYWRDbGllbnQ+KCp0aGlzKTsKLSAgICAgICAgbV9yZXNv
dXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobnVsbHB0ciwgbV9yZXF1ZXN0LCBt
X2Rvd25sb2FkQ2xpZW50LmdldCgpLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBib29sIGRlZmVy
c0xvYWRpbmcgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYgPSBmYWxz
ZTsKKyAgICAgICAgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7CisgICAg
ICAgIG1fcmVzb3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG51bGxwdHIsIG1f
cmVxdWVzdCwgbV9kb3dubG9hZENsaWVudC5nZXQoKSwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29u
dGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAgICAgICAgIGRpZFN0YXJ0
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5kZXggYmI3ZjE3NTFmZmU0YTE5YmU1Mzg4M2Nk
NWUxYjFhZTM4MzgwMjU1Ny4uYTY0MmFlNTVlMjVlMThmZTAzNTYzNGI1NDhkMjBlNTEzZGY4ZGQ1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmNwcApAQCAtNTMsMTAgKzUzLDEwIEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+IE5ldHdvcmtEYXRh
VGFzazo6Y3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0CiAgICAgICAg
IHJldHVybiBOZXR3b3JrRGF0YVRhc2tCbG9iOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJh
bWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0
ZXJzLmJsb2JGaWxlUmVmZXJlbmNlcyk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1
cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRl
cnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVy
cy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSk7Cisg
ICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBw
YXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBh
cmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkpOwogI2VuZGlmCiAj
aWYgVVNFKFNPVVApCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZShzZXNz
aW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMu
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CisgICAgcmV0dXJuIE5l
dHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVx
dWVzdCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4IGEzYzk1ZGQ2M2FkZTI2YTlhYTJmMTUw
OGRkZjBkNjNlMmVkMTVmMDUuLjlmYTVhNzM4NzUzYWUxM2ViOTc3MzkwZTJiYjQzZjJlYjQ1MzY5
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBA
IC0xMjUsNyArMTI1LDcgQEAgTmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xp
ZW50JiBjbGllbnQsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmIHBhcmEKICAgICAsIG1fbmV0d29y
a2luZ0NvbnRleHQoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShtX3BhcmFtZXRlcnMu
c2Vzc2lvbklELCBtX3BhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCkpCiAgICAgLCBtX2N1cnJlbnRSZXF1ZXN0KG1fcGFyYW1ldGVycy5yZXF1ZXN0KQog
ewotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX25ldHdvcmtpbmdDb250
ZXh0LmdldCgpLCBtX3BhcmFtZXRlcnMucmVxdWVzdCwgdGhpcywgbV9wYXJhbWV0ZXJzLmRlZmVy
c0xvYWRpbmcsIG1fcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPT0gU25pZmZDb250
ZW50KTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9uZXR3b3JraW5n
Q29udGV4dC5nZXQoKSwgbV9wYXJhbWV0ZXJzLnJlcXVlc3QsIHRoaXMsIG1fcGFyYW1ldGVycy5k
ZWZlcnNMb2FkaW5nLCBtX3BhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID09IFNuaWZm
Q29udGVudCwgbV9wYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID09IENv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7CiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgK
aW5kZXggMjVhYTUwNTgwZGU5YTk4YWNkYzAyN2E4MTA3YTI4ZWE4OTM0NzU3OC4uODMyNzg5Nzk4
OGI2NGZmMzJlNDE4M2E1OTgwNjNlNGFmNWZjY2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC00Miw2ICs0Miw3
IEBAIHB1YmxpYzoKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgeyBQQUw6OlNlc3Npb25J
RDo6ZW1wdHlTZXNzaW9uSUQoKSB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQ
b2xpY3kgeyBXZWJDb3JlOjpTbmlmZkNvbnRlbnQgfTsKKyAgICBXZWJDb3JlOjpDb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSB7IFdlYkNv
cmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZiB9OwogICAgIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHsgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlIH07CiAgICAgV2ViQ29yZTo6Q2xp
ZW50Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9saWN5IHsgV2ViQ29yZTo6Q2xp
ZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMgfTsKICAg
ICBib29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cyB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycy5jcHAKaW5kZXggZTk2MzU3NjJiNjVmNTMyNDEyZmJlZmRkMTEzNzRkY2QzYTU0OTVkMC4u
Y2QyMTY1NzJmMjU3ZDA5MWMyZmRlM2YyNGFkYWRhZmJlZDcwY2MwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycy5jcHAKQEAgLTc0LDYgKzc0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB9CiAK
ICAgICBlbmNvZGVyLmVuY29kZUVudW0oY29udGVudFNuaWZmaW5nUG9saWN5KTsKKyAgICBlbmNv
ZGVyLmVuY29kZUVudW0oY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kpOwogICAgIGVuY29k
ZXIuZW5jb2RlRW51bShzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKGNsaWVudENyZWRlbnRpYWxQb2xpY3kpOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShz
aG91bGRQcmVjb25uZWN0T25seSk7CkBAIC0xNDEsNiArMTQyLDggQEAgYm9vbCBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29y
a1Jlc291cmMKIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5jb250ZW50U25p
ZmZpbmdQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUVudW0ocmVzdWx0LmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5zdG9yZWRD
cmVkZW50aWFsc1BvbGljeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRW51bShyZXN1bHQuY2xpZW50Q3JlZGVudGlhbFBvbGljeSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0
aXZlTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKaW5kZXggNjkxMzk2NTgwMjhmM2Q0MjllN2M2ZTlhZjk0
NWNlMThkNjQzMmVkZS4uYWY2MzY3MGM5MTRhNWVkMmIwYjM3OGU4MTdmZWU1MjgyOWIxMjljNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcApAQCAtNTYsNiArNTYsNyBAQCBT
cGVjdWxhdGl2ZUxvYWQ6OlNwZWN1bGF0aXZlTG9hZChDYWNoZSYgY2FjaGUsIGNvbnN0IEdsb2Jh
bEZyYW1lSUQmIGZyYW1lSUQsIGNvbgogICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRl
bnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZTsKICAgICBwYXJhbWV0
ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IERvTm90U25pZmZDb250ZW50OworICAgIHBhcmFt
ZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBDb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeTo6U25pZmY7CiAgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gbV9vcmlnaW5hbFJl
cXVlc3Q7CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBtX25ldHdvcmtMb2FkID0gc3Rk
OjptYWtlX3VuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsIFdURk1vdmUocGFyYW1ldGVycyksICpT
ZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IDc1ZmM5N2RmOWMzODFmNTNkZjExYzc0
ZTA3MmMyMmE0NTVlYjFiNmQuLjg4NzVjOWNlOWZjNWUyNzFhNTJiM2U4NzkwMjIzYjJhMWE4MGI5
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTQxLDkgKzQxLDkgQEAgY2xhc3MgTmV0d29ya1Nl
c3Npb25Db2NvYTsKIGNsYXNzIE5ldHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5l
dHdvcmtEYXRhVGFzayB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1Bv
bGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCisgICAg
c3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lv
biwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRD
b250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lv
biwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVu
dFNuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQ
cmVjb25uZWN0T25seSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0
YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0T25s
eSkpOwogICAgIH0KIAogICAgIH5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtNzAsNyArNzAs
NyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9h
ZE1ldHJpY3MoKSB7IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogCiBwcml2YXRlOgot
ICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSk7
CisgICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJD
b3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSk7CiAKICAgICBib29sIHRy
eVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLm1tCmluZGV4IGRmNjRlMzliZTYxNTVjZGZlNjUwZWIzNDE3MTNiYjU2MWY4NTc0NzguLmE3
NTlmY2MxNmQxOGJlZTA3NGM5NDU0ZmE5ZTA1NTFlZDE3YmFiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5tbQpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgZmxvYXQgdG9OU1VSTFNlc3Npb25UYXNrUHJp
b3JpdHkoV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiAgICAgcmV0dXJu
IE5TVVJMU2Vzc2lvblRhc2tQcmlvcml0eURlZmF1bHQ7CiB9CiAKLU5ldHdvcmtEYXRhVGFza0Nv
Y29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBz
aG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCitOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24s
IE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmlu
Z1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0
T25seSkKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRo
Q3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBl
ICE9IE5vRmFpbHVyZSkKQEAgLTEwNCwyNCArMTA0LDI2IEBAIE5ldHdvcmtEYXRhVGFza0NvY29h
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0Rh
dGFUCiAjZW5kaWYKICAgICAKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IHJlcXVlc3Qu
bnNVUkxSZXF1ZXN0KFdlYkNvcmU6OlVwZGF0ZUhUVFBCb2R5KTsKLSAgICBpZiAoc2hvdWxkQ29u
dGVudFNuaWZmID09IFdlYkNvcmU6OkRvTm90U25pZmZDb250ZW50IHx8IHVybC5wcm90b2NvbElz
KCJmaWxlIikpIHsKLSAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3Qg
PSBbW25zUmVxdWVzdCBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJs
ZVJlcXVlc3QgX3NldFByb3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29u
bmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmZdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxl
UmVxdWVzdDsKLSAgICB9CiAKKyAgICBhdXRvIG11dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbbnNS
ZXF1ZXN0IG11dGFibGVDb3B5XSk7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMgorICAgIGlmIChzaG91bGRDb250ZW50RW5jb2Rp
bmdTbmlmZiA9PSBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6RG9Ob3RT
bmlmZikKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKFlFUykgZm9yS2V5
OihOU1N0cmluZyAqKWtDRlVSTFJlcXVlc3RDb250ZW50RGVjb2RlclNraXBVUkxDaGVja107Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CisjZW5k
aWYKKyAgICBpZiAoc2hvdWxkQ29udGVudFNuaWZmID09IFdlYkNvcmU6OkRvTm90U25pZmZDb250
ZW50IHx8IHVybC5wcm90b2NvbElzKCJmaWxlIikpCisgICAgICAgIFttdXRhYmxlUmVxdWVzdCBf
c2V0UHJvcGVydHk6QChOTykgZm9yS2V5OihOU1N0cmluZyAqKV9rQ0ZVUkxDb25uZWN0aW9uUHJv
cGVydHlTaG91bGRTbmlmZl07CiAgICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8
TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgaWYgKCFjb2NvYVNl
c3Npb24ubV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIuaXNOdWxsKCkpCisgICAgICAgIFttdXRh
YmxlUmVxdWVzdCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXI6Y29jb2FTZXNzaW9uLm1fYm91
bmRJbnRlcmZhY2VJZGVudGlmaWVyXTsKKyAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdC5h
dXRvcmVsZWFzZSgpOworCiAgICAgaWYgKHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCku
c2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QpKSB7CiAgICAgICAgIHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5ID0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOwogICAg
ICAgICBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3k6OkRvTm90VXNlOwogICAgIH0KIAotICAgIGlmICghY29jb2FTZXNzaW9uLm1fYm91
bmRJbnRlcmZhY2VJZGVudGlmaWVyLmlzTnVsbCgpKSB7Ci0gICAgICAgIE5TTXV0YWJsZVVSTFJl
cXVlc3QgKm11dGFibGVSZXF1ZXN0ID0gW1tuc1JlcXVlc3QgbXV0YWJsZUNvcHldIGF1dG9yZWxl
YXNlXTsKLSAgICAgICAgW211dGFibGVSZXF1ZXN0IHNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cjpjb2NvYVNlc3Npb24ubV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXJdOwotICAgICAgICBuc1Jl
cXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9Ci0KICAgICBpZiAoc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgPT0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSkgewogICAg
ICAgICBtX3Rhc2sgPSBbY29jb2FTZXNzaW9uLm1fc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFn
ZSBkYXRhVGFza1dpdGhSZXF1ZXN0Om5zUmVxdWVzdF07CiAgICAgICAgIEFTU0VSVCghY29jb2FT
ZXNzaW9uLm1fZGF0YVRhc2tNYXBXaXRoQ3JlZGVudGlhbHMuY29udGFpbnMoW21fdGFzayB0YXNr
SWRlbnRpZmllcl0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCA0NTA3N2E0MGZhZWUxOWZjNDNiMjRlNmFk
YTc5ZTAzMWE5Nzc1ZjY2Li4xMTQxZDBiZjk3OWUzMzRhM2U3ZGVlNTg2M2Q1NmIwODc2OWMzYmM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCkBAIC0yNDIsNiArMjQyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJj
ZUwKICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUg
TmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlvcml0eSAlZCIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0
cmluZygpLmxhdGluMSgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5y
ZXF1ZXN0KCkucHJpb3JpdHkoKSkpOwogCiAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRl
bnRTbmlmZmluZ1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFNuaWZmQ29udGVudCgpID8g
U25pZmZDb250ZW50IDogRG9Ob3RTbmlmZkNvbnRlbnQ7CisgICAgQ29udGVudEVuY29kaW5nU25p
ZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSByZXNvdXJjZUxvYWRl
ci5zaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZygpID8gQ29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3k6OlNuaWZmIDogQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OkRvTm90U25pZmY7
CiAgICAgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBy
ZXNvdXJjZUxvYWRlci5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpID8gU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3k6OlVzZSA6IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKIAog
ICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwpAQCAtMjUx
LDYgKzI1Miw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3
b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAgICAgbG9hZFBhcmFtZXRlcnMu
c2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVx
dWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBjb250ZW50
U25pZmZpbmdQb2xpY3k7CisgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3kgPSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTsKICAgICBsb2FkUGFyYW1l
dGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5Owog
ICAgIC8vIElmIHRoZXJlIGlzIG5vIFdlYkZyYW1lIHRoZW4gdGhpcyByZXNvdXJjZSBjYW5ub3Qg
YmUgYXV0aGVudGljYXRlZCB3aXRoIHRoZSBjbGllbnQuCiAgICAgbG9hZFBhcmFtZXRlcnMuY2xp
ZW50Q3JlZGVudGlhbFBvbGljeSA9ICh3ZWJGcmFtZSAmJiB3ZWJQYWdlICYmIHJlc291cmNlTG9h
ZGVyLmlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzKCkpID8gQ2xpZW50Q3JlZGVudGlh
bFBvbGljeTo6TWF5QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMgOiBDbGllbnRDcmVkZW50aWFsUG9s
aWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFsczsKQEAgLTQwNSw2ICs0MDcsNyBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0LCB1bgogICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdl
YlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9h
ZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gU25pZmZDb250ZW50OworICAgIGxv
YWRQYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmOwogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRl
bnRpYWxzUG9saWN5ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRl
cnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9IGNsaWVudENyZWRlbnRpYWxQb2xpY3k7CiAgICAg
bG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9
IGNvbnRleHQtPnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAwZjBkYzU5NTYyNjAxYTYyZDIyMjE1NTYzMTYwMmNkMGU0ZTEzMWNhLi5hMmRkMzg2NzRk
Yzc4NzJhNzZlNmQ2MjE0OGEyN2U4YWU5MWY5NDJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAKIDIw
MTctMTAtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFhN
TEh0dHBSZXF1ZXN0IHNob3VsZCBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NTk3CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMzgyMjI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXggdXAgdGhlIHRlc3QgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwgdG8KKyAgICAgICAg
YWN0dWFsbHkgY2hlY2sgdGhhdCB3ZSBkbyBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZy4gQ0ZO
ZXR3b3JrIG9ubHkgc25pZmZzIHRoZSBVUkwKKyAgICAgICAgZm9yIHRoZSBjb250ZW50IGVuY29k
aW5nIHdoZW4gdGhlIGZpbGVuYW1lIGVuZHMgd2l0aCBrbm93biBmaWxlIGV4dGVuc2lvbiAoZS5n
LiAuZ3opCisgICAgICAgIGFuZCB0aGUgSFRUUCByZXNwb25zZSBkb2VzIG5vdCBzcGVjaWZ5aW5n
IGEgQ29udGVudC1FbmNvZGluZyBIVFRQIGhlYWRlci4KKworICAgICAgICAqIFRlc3RFeHBlY3Rh
dGlvbnM6IFNraXAgdGhlIHRlc3Qgb24gYWxsIHBsYXRmb3Jtcy4gT25jZSA8cmRhcjovL3Byb2Js
ZW0vMzM4MjIyNDk+IHNoaXBzCisgICAgICAgIHRoZW4gd2Ugd2lsbCBlbmFibGUgdGhlIHRlc3Qg
b24gYWxsIHBsYXRmb3JtcyB0aGF0IHVzZSBDRk5ldHdvcmsuCisgICAgICAgICogaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29u
dGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy8uaHRhY2Nlc3M6IEludGVycHJldCBmaWxlcyB3aXRo
IC5waHAuZ3ogZXh0ZW5zaW9uIGFzIFBIUCBmaWxlcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhw
Lmd6OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczogU2tpcCB0aGUgdGVzdCBmb3Igbm93IHVudGls
IDxyZGFyOi8vcHJvYmxlbS8zMzgyMjI0OT4gc2hpcHMuCisKKzIwMTctMTAtMjcgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCiAgICAgICAgIE9ubHkgYWxsb3cgbm9uLW1peGVk
IGNvbnRlbnQgcHJvdGVjdGVkIHN1YnJlc291cmNlcyB0byBhc2sgZm9yIGNyZWRlbnRpYWxzCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5MTkKICAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MDE1MjQ1PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTI2
NWM4ODU4NGM3YjMxN2M1Y2VkNGE0OTJlMjJjZDYwNWI1NWQwZi4uODkzNWZiNDExZGM3NDg4NGRi
Y2I3YmQ1YzczODhmMjk3YzA2NzE2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTMsNiArMjEz
LDkgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvZ2Vu
ZXJhbC5hbnkud29ya2VyLmh0bWwgWyBTa2lwIF0KICMgTm90IHN1cHBvcnRlZAogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoIFsgU2tpcCBdCiAKKyMgQ29u
dGVudCBlbmNvZGluZyBzbmlmZmluZyBpcyBvbmx5IHN1cHBvcnRlZCBieSBDRk5ldHdvcmsuCito
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5j
b2RpbmcuaHRtbCBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyB0ZXN0cy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KQEAgLTE0OTMsOCArMTQ5Niw2IEBAIHdlYmtpdC5vcmcvYi8xNzUyODggaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvb3V0bGluZS0wMTYuaHRt
CiB3ZWJraXQub3JnL2IvMTc1Mjg4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy11aS0zL291dGxpbmUtMDE5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8xNzUyOTAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMv
dGV4dC1vdmVyZmxvdy0wMDUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3Jn
L2IvMTc1NTk3IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8t
Y29udGVudC1lbmNvZGluZy5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xNzE5NDUg
cGVyZi9jbGFzcy1saXN0LXJlbW92ZS5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQogCiB3
ZWJraXQub3JnL2IvMTc2MTgzIGZhc3QvYmxvY2svaW5zaWRlLWlubGluZXMvb3BhY2l0eS1vbi1p
bmxpbmUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVu
Y29kaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy1leHBlY3RlZC50eHQKaW5k
ZXggODZkNTFkZjk1OTNiMjU0YmJmYTA3NWVmYTNhNmM1MDBkNjY0OTQxMS4uNzRmOTFhODhlOWUw
NTQyZmM4Y2I5MjQxYmU4OTA5ZjMxZjg1ZGI0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29k
aW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0CkBA
IC0xLDcgKzEsNyBAQAogVGVzdCB0aGF0IGFuIFhNTEh0dHBSZXF1ZXN0IHdpdGggQ29udGVudC1U
eXBlOiBnemlwIGlzIHByb3Blcmx5IHVuY29tcHJlc3NlZC4KIAogQ29udGVudCBUeXBlOiBhcHBs
aWNhdGlvbi9vY3RldC1zdHJlYW0KLUNvbnRlbnQgRW5jb2Rpbmc6IG51bGwKK0NvbnRlbnQgRW5j
b2Rpbmc6IGd6aXAKIENvbnRlbnQgTGVuZ3RoOiAyODIKIFJFU1BPTlNFIDIwMDogW29iamVjdCBB
cnJheUJ1ZmZlcl0KIExFTkdUSDogNDQ1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2Rpbmcu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50
LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sCmluZGV4IDhhZTU1NDk3MjE3MjY4YWVkOWNi
ZjU1MDU5MmUyODFhYjE0NGRiZDMuLjc5MjYyODc3ZWM0ODY3Mjg1YjcxM2U3YzZhMzkzMTIyODc0
NDgwNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
Z3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVu
dC1lbmNvZGluZy5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGNvbnN0IGxvZyA9IHRleHQgPT4gewog
fTsKIAogY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci14aHIub3BlbignR0VUJywg
J3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwJyk7Cit4aHIub3Bl
bignR0VUJywgJ3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6
Jyk7CiB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKIHhoci5vbmVycm9yID0gZSA9
PiBsb2coYEZBSUxFRDogJHt4aHIuc3RhdHVzfSAke3hoci5zdGF0dXNUZXh0fWApOwogeGhyLm9u
cmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzLy5odGFjY2VzcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzLy5odGFjY2VzcwppbmRleCA5Mjc3OTQw
MWU3ZDVlOWVkNjQ1YTA4OTQ2YTVlNGFkYjkyY2EwNTRlLi4wMjUyNjA3M2VlNjY3MmVkMzBlZTY5
YjRiMWJlNGNiYjJlNGEzMjY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy8uaHRhY2Nlc3MKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvLmh0YWNjZXNzCkBAIC0xMCwzICsxMCw1IEBA
IEFkZENoYXJzZXQgd2luZG93cy0xMjUxIC54bWwKIDxGaWxlcyAibm9Db250ZW50VHlwZS5hc2lz
Ij4KIERlZmF1bHRUeXBlIE5vbmUKIDwvRmlsZXM+CisKK0FkZFR5cGUgYXBwbGljYXRpb24veC1o
dHRwZC1waHAgLnBocC5negpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9y
ZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVkYWIyMjNhYTEwZTE1ZmRkOGQ3ZWFmMmM2MzdiOTBjMTM5NDRkN2QuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBo
cAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD9waHAKLSR0ZXh0ID0gIkxvcmVtIGlw
c3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBl
aXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVh
LiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxh
bWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlz
IGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNz
ZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQg
b2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNp
YSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4iOwotJGd6aXBUZXh0ID0gZ3pl
bmNvZGUoJHRleHQsIDYpOwotCi1oZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0
ZXQtc3RyZWFtIik7Ci0KLWVjaG8gJGd6aXBUZXh0OwotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29u
dGVudC1lbmNvZGluZy5waHAuZ3ogYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVkYWIyMjNhYTEwZTE1ZmRkOGQ3ZWFmMmM2MzdiOTBjMTM5NDRkN2QKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNl
cy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6CkBAIC0wLDAgKzEsOCBAQAor
PD9waHAKKyR0ZXh0ID0gIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBh
ZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9y
ZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBu
b3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVh
IGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJp
dCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBw
YXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwg
c3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFi
b3J1bS4iOworJGd6aXBUZXh0ID0gZ3plbmNvZGUoJHRleHQsIDYpOworCitoZWFkZXIoIkNvbnRl
bnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7CisKK2VjaG8gJGd6aXBUZXh0Owor
Pz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDFlNTE1
NWZmODFjY2M0OTUzNWZjNDRiNjg2ZTBhMDQwODk5NTliNS4uYjc1YjM0ODJlYjE4NjMyYzRlMWJh
NzE5ZTYzMzgyOTQzZmJiNGNlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTMxLDYgKzMxLDkgQEAgZmFzdC9ldmVudHMvZG8tbm90LWRyYWctYW5kLWRy
b3AtZGF0YS1kZXRlY3RvcnMtbGluay5odG1sIFsgUGFzcyBdCiAKIGZhc3QveG1saHR0cHJlcXVl
c3Qvc2V0LWRhbmdlcm91cy1oZWFkZXJzLWluLWRhc2hib2FyZC5odG1sIFsgUGFzcyBdCiAKKyMg
RklYTUU6IFVuc2tpcCB0aGlzIHRlc3Qgb25jZSB0aGUgZml4IGZvciA8cmRhcjovL3Byb2JsZW0v
MzM4MjIyNDk+IHNoaXBzLgoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQt
dHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMu
CiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325243</attachid>
            <date>2017-10-27 22:15:19 -0700</date>
            <delta_ts>2017-10-27 22:38:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175597-20171027221519.patch</filename>
            <type>text/plain</type>
            <size>63111</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhMmI0M2IzM2YzZWYw
MzFjMzAzZjE2NDc4Yzk2MzM0ZGU2ZGE5Ni4uYzhmNWU2ZmQ3NDQ3NjhmMGUxZWQ5MjUxYzc4YTU5
NjRiYjZhNjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDE3LTEwLTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBz
aG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3Nv
Y2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3QgdG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBi
ZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVjb21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNl
IG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5nIEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZp
Y2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3VsZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJl
c3BvbnNlIHdpdGggaGVhZGVycworICAgICAgICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9n
emlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2Vz
IG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBIVFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMg
WmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdh
cmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+LgorCisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0
IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1
ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAgIHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVu
dCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3RoZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxs
IGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2VxdWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWln
aHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUgYnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
OjpzaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOiBFbmFibGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVz
b3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRsZSk6IERpdHRvLiBXZSBzaG91bGQgbG9vayB0
byBkaXNhYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4KKyAgICAgICAgYSBzdWJzZXF1
ZW50IGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOiBNb2RpZmllZCB0
byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29kaW5n
IHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCk6IE1vZGlmaWVkIHRvIHRha2UgYSBib29sZWFuIGFzIHRvIHdo
ZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQKKyAgICAgICAgZW5jb2Rpbmcgc25pZmZpbmcuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOiBNb2Rp
ZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0aGUgQ0ZN
dXRhYmxlVVJMUmVxdWVzdFJlZiBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4y
LgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlv
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24p
OiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250
ZW50IGVuY29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0
aGUgTlNNdXRhYmxlVVJMUmVxdWVzdCBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4x
My4yLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhh
dmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOiBNb2RpZmll
ZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29k
aW5nIHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNl
SGFuZGxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cmVsZWFz
ZUZvckRvd25sb2FkKTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiB4
bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OmNyZWF0ZVJlcXVlc3QpOiBEbyBub3QgZW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcg
Zm9yIHRoZSByZXF1ZXN0LgorCisyMDE3LTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKwogICAgICAgICBPbmx5IGFsbG93IG5vbi1taXhlZCBjb250ZW50IHByb3RlY3Rl
ZCBzdWJyZXNvdXJjZXMgdG8gYXNrIGZvciBjcmVkZW50aWFscwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4OTE5CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNTAxNTI0NT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDQ0OWIxZGRhYTY5Zjc2MTI4ODVi
MWY4NDkzM2Q5YTQ1MDkwNzI1MmEuLjYzMzdmNGVhZThkMDY0YTIxZWI5NjRkNGY3NmViMjM3ZGIw
MDZlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEwLTI3ICBE
YW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBYTUxIdHRwUmVxdWVz
dCBzaG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRm9yd2FyZCBkZWNsYXJlIENGTmV0d29yayBTUEkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oOgorCiAyMDE3LTEwLTI0ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBXZWJLaXQg
bG9nZ2luZyBjb25maWd1cmF0aW9uIGFuZCBkaXNwbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzZWVhN2Q0ZjFl
NzA2NGY3ZmYwYzdhZDI4Y2JkM2UzMTYyNTRlMzQuLmY3MzdlMTEzZTY4ODBkMzk1ZDk3MGJmYTU5
N2U4MTAxYTZjYmM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDkgQEAKIDIwMTctMTAtMjcgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0
IHNob3VsZCBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NTk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMzgyMjI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSB0aGUgYm9keSBvZiBhbiBIVFRQIHJlc3BvbnNlIGFz
c29jaWF0ZWQgd2l0aCBhbiBYSFIgcmVxdWVzdCB0byBhIC5neiBmaWxlCisgICAgICAgIHdvdWxk
IGJlIGF1dG9tYXRpY2FsbHkgZ3ppcHBlZCBkZWNvbXByZXNzZWQgaWYgdGhlIEhUVFAgcmVzcG9u
c2Ugb21pdHRlZCBhIENvbnRlbnQtRW5jb2RpbmcgSFRUUAorICAgICAgICBoZWFkZXIuIFNwZWNp
ZmljYWxseSwgc3VjaCBhIHJlc3BvbnNlIHdvdWxkIGJlIHRyZWF0ZWQgYW5hbG9nb3VzIHRvIGEg
cmVzcG9uc2Ugd2l0aCBoZWFkZXJzCisgICAgICAgICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L2d6aXAiIGFuZCAiQ29udGVudC1FbmNvZGluZzogaWRlbnRpdHkiLiBUaGlzIGJlaGF2aW9yIGRv
ZXMgbm90IGNvbmZvcm0KKyAgICAgICAgdGhlIEhUVFAgMS4xIHNwZWMuIGFuZCBicmVha3MgRXBp
YyBaZW4gR2FyZGVuLCA8aHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL21vemlsbGEtZ2FtZXMvWmVu
R2FyZGVuL0VwaWNaZW5HYXJkZW4uaHRtbD4uCisKKyAgICAgICAgT24gbWFjT1MgMTAuMTMuMiBv
cHQgb3V0IG9mIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgd2hlbiBtYWtpbmcgYW4gWEhSIHJl
cXVlc3QuIFdlIGxpa2VseSBjYW4KKyAgICAgICAgc2VsZWN0aXZlbHkgb3B0IG91dCBvZiBjb250
ZW50IGVuY29kaW5nIHNuaWZmaW5nIGZvciBvdGhlciBuZXR3b3JrIHJlcXVlc3RzLiBUaGlzIHdp
bGwgYmUgZG9uZQorICAgICAgICBpbiBzdWJzZXF1ZW50IGNvbW1pdHMgdG8gbWFrZSBpdCBzdHJh
aWdodGZvcndhcmQgdG8gaWRlbnRpZnkgc2l0ZSBicmVha2FnZSAoaWYgYW55KS4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRvd25sb2FkOjpzdGFydCk6IEVuYWJsZSBjb250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1h
dGNoIGV4aXN0aW5nIGJlaGF2aW9yLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnRX
aXRoSGFuZGxlKTogRGl0dG8uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOiBQYXNz
IHRocm91Z2ggdGhlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5LgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0xvYWQ6Ok5ldHdvcmtMb2FkKTogRGl0dG8uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KTogRW5jb2RlIGNvbnRlbnQgZW5jb2Rpbmcg
c25pZmZpbmcgcG9saWN5LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVyczo6ZGVjb2RlKTogRGVjb2RlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
TG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2Fk
OjpTcGVjdWxhdGl2ZUxvYWQpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRj
aCBleGlzdGluZworICAgICAgICBiZWhhdmlvci4gV2Ugc2hvdWxkIGxvb2sgdG8gZGlzYWJsZSBj
b250ZW50IGVuY29kaW5nIHNuaWZmaW5nIGluIGEgc3Vic2VxdWVudCBjaGFuZ2UuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKTogTW9k
aWZpZWQgdG8gdGFrZSB0aGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZworICAgICAgICBwb2xp
Y3kgYW5kIGFwcGx5IGl0IHRvIHRoZSBOU011dGFibGVVUkxSZXF1ZXN0IG9iamVjdCB3aGVuIGJ1
aWxkaW5nIG9uIG1hY09TIDEwLjEzLjIuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
U291cDo6TmV0d29ya0RhdGFUYXNrU291cCk6IFBhc3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrRGF0YVRhc2tTb3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVk
dWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6IFBhc3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KTogRW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25p
ZmYgdG8gbWF0Y2ggZXhpc3RpbmcKKyAgICAgICAgYmVoYXZpb3IuCisKKzIwMTctMTAtMjcgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCiAgICAgICAgIE9ubHkgYWxsb3cgbm9u
LW1peGVkIGNvbnRlbnQgcHJvdGVjdGVkIHN1YnJlc291cmNlcyB0byBhc2sgZm9yIGNyZWRlbnRp
YWxzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5
MTkKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MDE1MjQ1PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAppbmRleCBkZjM5YjhiZDQ2YWZhZTA0M2U4NDA4
MzZhMzA4MDc5ODAzNzE4NmY2Li4wYWNjODlmYmY5YjY0NTE2OTY1NjcxYTk2ODFlYWI5MTZhNjEw
NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtT
UEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaApA
QCAtMjA4LDYgKzIwOCwxMCBAQCBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTENhY2hl
UGFydGl0aW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDb25uZWN0aW9u
UHJvcGVydHlTaG91bGRTbmlmZjsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGVVJMU3Rv
cmFnZVNlc3Npb25Jc1ByaXZhdGU7CiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAyCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NGVVJMUmVxdWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrOworI2VuZGlmCisKIENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYgX0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZhdWx0KENGQWxsb2Nh
dG9yUmVmKTsKIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0
ZUZyb21GaWxlKENGQWxsb2NhdG9yUmVmLCBDRlVSTFJlZiwgQ0ZIVFRQQ29va2llU3RvcmFnZVJl
Zik7CiB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VTY2hlZHVsZVdpdGhSdW5Mb29wKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYsIENGUnVuTG9vcFJlZiwgQ0ZTdHJpbmdSZWYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTkyMTQyN2E0OTkzOTI1OWY1ZTQ0YWY1
OWM3ZWMzNWFhMWEyMWM5Ny4uZjkxOTk4M2Q4MjE2N2YyMjJiNGQ5N2FlM2Y1Y2E0ZGI0MzA5OTRh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yMTYsNyAr
MjE2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGZyYW1lTG9hZGVy
KCktPm5ldHdvcmtpbmdDb250ZXh0KCksIG1fcmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5n
LCBtX29wdGlvbnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudCk7CisgICAgbV9oYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGZyYW1lTG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0
KCksIG1fcmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX29wdGlvbnMuc25pZmZDb250
ZW50ID09IFNuaWZmQ29udGVudCwgbV9vcHRpb25zLnNuaWZmQ29udGVudEVuY29kaW5nID09IENv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7CiB9CiAKIHZvaWQgUmVzb3VyY2VM
b2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCmluZGV4IGY0YzlhNDU3N2U3ZTRkZDljNjFjZmUyYjcyYzcwYzhmNzFm
ZWYwOGUuLmJhYzhhY2E4MGVlMDhlNTQ1ZTExOTVkMDhkOWYzYTQ3ZTFjNmYyNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0xMjMsNiArMTIzLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzOyB9CiAgICAg
dm9pZCBzZXRTZW5kQ2FsbGJhY2tQb2xpY3koU2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2Fs
bGJhY2tzKSB7IG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IHNlbmRMb2FkQ2FsbGJhY2tz
OyB9CiAgICAgYm9vbCBzaG91bGRTbmlmZkNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudDsgfQorICAgIGJvb2wgc2hvdWxkU25pZmZD
b250ZW50RW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc25pZmZDb250ZW50RW5j
b2RpbmcgPT0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscygpIGNvbnN0
OwogICAgIGJvb2wgc2hvdWxkSW5jbHVkZUNlcnRpZmljYXRlSW5mbygpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9ucy5jZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgPT0gSW5jbHVkZUNlcnRpZmljYXRlSW5m
bzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJP
cHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgK
aW5kZXggNWM1YTBkNDI3YjRlOTk2MGJiN2M1YzdkMWYxZmFjZTU5YTQ0NTRiYS4uNjU3NGIzNzgx
NWI2Y2ZhNzgxNmJjMThiNjY1MThmNGY3NTg2MzUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaApAQCAtOTcsNiArOTcsMTEgQEAgZW51bSBjbGFz
cyBTZXJ2aWNlV29ya2Vyc01vZGUgewogICAgIE5vbmUsCiB9OwogCitlbnVtIGNsYXNzIENvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHsKKyAgICBTbmlmZiwKKyAgICBEb05vdFNuaWZmLAor
fTsKKwogc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMg
ewogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucygpIHsgfQogCkBAIC0xMjAsNiArMTI1LDcgQEAg
c3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewogCiAg
ICAgU2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2FsbGJhY2tzIHsgRG9Ob3RTZW5kQ2FsbGJh
Y2tzIH07CiAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudCB7IERvTm90U25p
ZmZDb250ZW50IH07CisgICAgQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc25pZmZDb250
ZW50RW5jb2RpbmcgeyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsKICAg
ICBEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xpY3kgeyBCdWZmZXJEYXRhIH07
CiAgICAgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeyBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgfTsKICAgICBTZWN1cml0eUNoZWNrUG9s
aWN5IHNlY3VyaXR5Q2hlY2sgeyBEb1NlY3VyaXR5Q2hlY2sgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5k
ZXggZWUyNWY5ZjM2YjU2NDczYjRmNmE5NTc5YzgxMjJjNTA1NmZlYzI1ZC4uMWVlMWQ2MTYzZmRk
YjNhNDNiNjE3NDQwNTQzZmZmNzZkM2FiZGIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTQ3NSw3
ICs0NzUsMTAgQEAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmNyZWF0ZVJlc291cmNlSGFuZGxlKGNvbnN0IFVSTCYgdXIKICAgICAgICAgfQogICAgIH0KIAot
ICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShtX2ZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBm
YWxzZSwgdHJ1ZSk7CisgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CisgICAgYm9vbCBz
aG91bGRDb250ZW50U25pZmYgPSB0cnVlOworICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYgPSB0cnVlOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCBy
ZXF1ZXN0LCB0aGlzLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgIC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9u
bHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGlyZWN0cywgd2UgaW5pdGlhbGl6ZQogICAgIC8vIHRo
ZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5j
cHAKaW5kZXggNjEyOTY5ZjA0YTdlYWVlZTJkMTVlOThiNzRlYjcwZTlhNTIyYjc4NS4uZGM4ZGQ0
NTNiMjkyOTVlMzQ4ZjQ5ODUwOWNkN2M3M2UyYjAxYmJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcApAQCAtMTMz
LDkgKzEzMyw5IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KEJsb2JEYXRhKiBibG9iRGF0YSwgY29uc3QgUmVzCiB9CiAKIEJsb2JSZXNvdXJjZUhh
bmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKEJsb2JEYXRhKiBibG9iRGF0YSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGFz
eW5jKQotICAgIDogUmVzb3VyY2VIYW5kbGUobnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSwgZmFsc2UpCi0gICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQotICAgICwgbV9hc3luYyhhc3lu
YykKKyAgICA6IFJlc291cmNlSGFuZGxlIHsgbnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSAvKiBkZWZlcnNMb2FkaW5nICovLCBmYWxzZSAvKiBzaG91bGRDb250ZW50U25pZmYgKi8sIHRy
dWUgLyogc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgKi8gfQorICAgICwgbV9ibG9iRGF0YSB7
IGJsb2JEYXRhIH0KKyAgICAsIG1fYXN5bmMgeyBhc3luYyB9CiB7CiAgICAgaWYgKG1fYXN5bmMp
CiAgICAgICAgIG1fYXN5bmNTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPEFzeW5jRmlsZVN0cmVh
bT4oKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
aW5nSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUu
aAppbmRleCBiZWI5YzVhY2E3ODNlNzAwNTY4ZTExODc2OWRkZWIxMTdiZDgwZWU5Li5hODhjYmEz
NTM0OTE4MmMyZGUxYTE5OGZjNTNiZTQ3NTg2ZDMxOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaApAQCAtNTIsNyArNTIsMTAgQEAgcHVibGljOgog
ICAgICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKHVzZUFzeW5jQ2FsbGJhY2tzKQogICAgICAg
ICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCiAgICAg
ewotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobmV0d29ya2luZ0Nv
bnRleHQsIHJlcXVlc3QsIHRoaXMsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIGJvb2wgZGVmZXJz
TG9hZGluZyA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IGZhbHNl
OworICAgICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICAg
ICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtpbmdDb250ZXh0LCBy
ZXF1ZXN0LCB0aGlzLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgICAgICAvLyBJZiB0aGUgc2VydmVyIG5ldmVyIHJl
c3BvbmRzLCB0aGlzIG9iamVjdCB3aWxsIGhhbmcgYXJvdW5kIGZvcmV2ZXIuCiAgICAgICAgIC8v
IFNldCBhIHZlcnkgZ2VuZXJvdXMgdGltZW91dCwganVzdCBpbiBjYXNlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCBiZWJj
Zjg4ZGJiY2U0ZDFkMWJlMGQxNTM0NGU0M2YwNmU3OGI3ZjUwLi42ZDUxYzJlNzg5MThmNTUyMzg0
NTQyZTZiNDY5ZWZjMDI2YmYyOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNzIsOCArNzIsOCBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpyZWdpc3RlckJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcihjb25zdCBBdG9taWNT
dHJpbmcmIHByb3RvYwogICAgIGJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVy
TWFwKCkuYWRkKHByb3RvY29sLCBsb2FkZXIpOwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVzb3Vy
Y2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKLSAgICA6IGQoc3RkOjptYWtlX3VuaXF1ZTxS
ZXNvdXJjZUhhbmRsZUludGVybmFsPih0aGlzLCBjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRl
ZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwo
cmVxdWVzdC51cmwoKSkpKQorUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291
cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRD
b250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAgOiBkKHN0
ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywgY29udGV4dCwgcmVx
dWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxk
Q29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZikpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewogICAgICAgICBzY2hl
ZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtODYsMTIgKzg2LDEyIEBAIFJlc291
cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0CiAgICAgfQogfQogCi1SZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9v
bCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKK1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQogewogICAgIGlmIChhdXRvIGNvbnN0cnVjdG9y
ID0gYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5nZXQocmVxdWVzdC51cmwo
KS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCiAgICAgICAgIHJldHVybiBj
b25zdHJ1Y3RvcihyZXF1ZXN0LCBjbGllbnQpOwogCi0gICAgYXV0byBuZXdIYW5kbGUgPSBhZG9w
dFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJz
TG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CisgICAgYXV0byBuZXdIYW5kbGUgPSBhZG9w
dFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJz
TG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikp
OwogCiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0Zh
aWx1cmUpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0hhbmRsZSk7CkBAIC0yMTAsNiArMjEw
LDExIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRTbmlmZigpIGNvbnN0CiAg
ICAgcmV0dXJuIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmOwogfQogCitib29sIFJlc291cmNlSGFu
ZGxlOjpzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQt
Pm1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmY7Cit9CisKIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnNob3VsZENvbnRlbnRTbmlmZlVSTChjb25zdCBVUkwmIHVybCkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaAppbmRleCA5ZTc5NmYxMmFhMjM3OTI5OGZmMzBiNWFjYzdlNzI0YWYzZmQ3Mzg2Li4wM2Ji
ODFjNDFkZTYyOTBhZTI4OTk2MTUzMzRjNmQ5MmNhYzEyNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC05MiwxMSArOTIsMTEg
QEAgY2xhc3MgVGltZXI7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlIDogcHVibGljIFJlZkNvdW50
ZWQ8UmVzb3VyY2VIYW5kbGU+LCBwdWJsaWMgQXV0aGVudGljYXRpb25DbGllbnQgewogcHVibGlj
OgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0
ZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRl
KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBi
b29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsKIAogI2lmIFVTRShT
T1VQKQotICAgIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShTb3VwTmV0d29y
a1Nlc3Npb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCos
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIHN0YXRp
YyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYpOwogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5SZXNvdXJjZUhh
bmRsZSgpOwpAQCAtMTY0LDYgKzE2NCw4IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENvbnRl
bnRTbmlmZigpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIHNob3VsZENvbnRlbnRTbmlmZlVSTChj
b25zdCBVUkwmKTsKIAorICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSBjb25z
dDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGZvcmNlQ29udGVudFNuaWZmaW5n
KCk7CiAKICNpZiBVU0UoQ1VSTCkgfHwgVVNFKFNPVVApCkBAIC0yMzUsNyArMjM3LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQnVpbHRpblN5bmNocm9ub3VzTG9hZGVyKGNv
bnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2wsIEJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcik7CiAK
IHByb3RlY3RlZDoKLSAgICBSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVzb3VyY2VIYW5kbGUoTmV0d29y
a2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogCiAgICAgYm9vbCB1c2VzQXN5bmNDYWxsYmFja3Mo
KSBjb25zdDsKIApAQCAtMjQ3LDcgKzI0OSw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogI2lmIFVT
RShTT1VQKQotICAgIFJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVzb3VyY2VIYW5kbGUoU291cE5ldHdv
cmtTZXNzaW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQq
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICNlbmRpZgogCiAgICAgdm9pZCBwbGF0Zm9ybVNldERl
ZmVyc0xvYWRpbmcoYm9vbCk7CkBAIC0yNjcsMTUgKzI2OSwxNSBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIHZvaWQgY3JlYXRlQ0ZVUkxDb25uZWN0
aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVz
KTsKKyAgICB2b2lkIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJv
cGVydGllcyk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVVTRShDRlVSTENPTk5F
Q1RJT04pCi0gICAgdm9pZCBjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hl
ZHVsaW5nQmVoYXZpb3IpOworICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVn
YXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9y
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhVVNFKENGVVJMQ09OTkVDVElPTikK
LSAgICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdC
ZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpjb25uZWN0aW9uUHJvcGVydGllcyk7CisgICAgdm9pZCBj
cmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29ubmVjdGlvblBy
b3BlcnRpZXMpOwogI2VuZGlmCiAKICNpZiBVU0UoU09VUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXgg
M2I3MTQ0YjU4NGE1NzE5Mzk0Njc1ZDljOTI5Yzc2NzU4OTQ1NGZmYS4uNWJiNzQ1YjQ0YTgyMmRk
ODViMzk1MDhmNDkxZjQ5YjY4NDcyODU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTcyLDcgKzcy
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwo
UmVzb3VyY2VIYW5kbGUqIGxvYWRlciwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwg
Ym9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKKyAgICBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCiAgICAgICAgIDogbV9jb250ZXh0
KGNvbnRleHQpCiAgICAgICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICAgICAsIG1fZmlyc3RS
ZXF1ZXN0KHJlcXVlc3QpCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3Bh
cnRpdGlvbihyZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCkpCiAgICAgICAgICwgbV9kZWZlcnNMb2Fk
aW5nKGRlZmVyc0xvYWRpbmcpCiAgICAgICAgICwgbV9zaG91bGRDb250ZW50U25pZmYoc2hvdWxk
Q29udGVudFNuaWZmKQorICAgICAgICAsIG1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgeyBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiB9CiAgICAgICAgICwgbV91c2VzQXN5bmNDYWxsYmFj
a3MoY2xpZW50ICYmIGNsaWVudC0+dXNlc0FzeW5jQ2FsbGJhY2tzKCkpCiAjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICAgICAgLCBtX2N1cnJlbnRSZXF1ZXN0KHJlcXVlc3QpCkBAIC0xMTUs
NiArMTE2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgYm9v
bCBtX3Nob3VsZENvbnRlbnRTbmlmZjsKKyAgICBib29sIG1fc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmY7CiAgICAgYm9vbCBtX3VzZXNBc3luY0NhbGxiYWNrczsKICNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQogICAgIFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+IG1fY29ubmVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDYzZmNlOGIzZjhmZmI5YTNiNWE4NDEyYTQ0ZmQ1ODQx
NGViY2RjZWMuLmZkMmJhNmJlMzc0YTQ4NDBlMTYzMzgzMjk5N2NmZWQwZDQ5ODkyMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGTmV0LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBpbmxpbmUgQ0ZTdHJp
bmdSZWYgc2hvdWxkU25pZmZDb25uZWN0aW9uUHJvcGVydHkoKQogI2VuZGlmCiB9CiAKLXZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9y
IHNjaGVkdWxpbmdCZWhhdmlvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVudFByb3BlcnRpZXMpCit2
b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29u
dGVudEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5nQmVoYXZpb3Is
IENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVzKQogewogICAgIGlmICgoIWQtPm1fdXNl
ci5pc0VtcHR5KCkgfHwgIWQtPm1fcGFzcy5pc0VtcHR5KCkpICYmICFmaXJzdFJlcXVlc3QoKS51
cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAgICAgLy8gQ3JlZGVudGlhbHMg
Zm9yIGZ0cCBjYW4gb25seSBiZSBwYXNzZWQgaW4gVVJMLCB0aGUgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlIGRlbGVnYXRlIGNhbGwgd29uJ3QgYmUgbWFkZS4KQEAgLTE2MSw3ICsx
NjEsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBhdXRvIHJlcXVlc3QgPSBhZG9w
dENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGZp
cnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSkpKTsKICAgICBpZiAoYXV0
byBzdG9yYWdlU2Vzc2lvbiA9IGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCkpCiAgICAgICAgIF9D
RlVSTFJlcXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihyZXF1ZXN0LmdldCgpLCBzdG9yYWdlU2Vzc2lv
bik7Ci0gICAgCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMzAyCisgICAgaWYgKCFzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikK
KyAgICAgICAgX0NGVVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkocmVxdWVzdC5nZXQoKSwg
a0NGVVJMUmVxdWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrLCBrQ0ZCb29sZWFuVHJ1ZSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7Cisj
ZW5kaWYKKwogICAgIGlmICghc2hvdWxkQ29udGVudFNuaWZmKQogICAgICAgICBfQ0ZVUkxSZXF1
ZXN0U2V0UHJvdG9jb2xQcm9wZXJ0eShyZXF1ZXN0LmdldCgpLCBzaG91bGRTbmlmZkNvbm5lY3Rp
b25Qcm9wZXJ0eSgpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCkBAIC0yNzcsNyArMjg0LDcgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogCiAgICAgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVk
dWxpbmdCZWhhdmlvciA9IGNsaWVudCgpLT5sb2FkaW5nU3luY2hyb25vdXNYSFIoKSA/IFNjaGVk
dWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMgOiBTY2hlZHVsaW5nQmVoYXZpb3I6OkFzeW5jaHJv
bm91czsKIAotICAgIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSwgZC0+bV9zaG91bGRDb250ZW50U25pZmYsIHNjaGVkdWxpbmdCZWhhdmlvciwgY2xpZW50
KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKHRoaXMpLmdldCgpKTsKKyAgICBjcmVhdGVDRlVSTENv
bm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGQtPm1fc2hvdWxkQ29udGVudFNu
aWZmLCBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzY2hlZHVsaW5nQmVoYXZpb3Is
IGNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyh0aGlzKS5nZXQoKSk7CiAKICAgICBkLT5t
X2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+c2V0dXBDb25uZWN0aW9uU2NoZWR1bGluZyhkLT5tX2Nvbm5l
Y3Rpb24uZ2V0KCkpOwogICAgIENGVVJMQ29ubmVjdGlvblN0YXJ0KGQtPm1fY29ubmVjdGlvbi5n
ZXQoKSk7CkBAIC01ODYsNyArNTkzLDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3Jt
TG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAgICAg
U3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNsaWVudC5zZXRBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9w
dFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJmNsaWVudCwgZmFsc2Ug
LypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOworICAgIGJv
b2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0g
dHJ1ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRs
ZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50
U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAKICAgICBoYW5kbGUtPmQtPm1f
c3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lv
bigpOwogCkBAIC01OTYsNyArNjA2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1M
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICB9
CiAKICAgICBoYW5kbGUtPmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBSZXNvdXJjZUhhbmRsZTo6c2hv
dWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLAotICAgICAgICBTY2hlZHVsaW5nQmVo
YXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGll
cyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZigpLCBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNs
aWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKIAogICAg
IENGVVJMQ29ubmVjdGlvblNjaGVkdWxlV2l0aFJ1bkxvb3AoaGFuZGxlLT5jb25uZWN0aW9uKCks
IENGUnVuTG9vcEdldEN1cnJlbnQoKSwgc3luY2hyb25vdXNMb2FkUnVuTG9vcE1vZGUoKSk7CiAg
ICAgQ0ZVUkxDb25uZWN0aW9uU2NoZWR1bGVEb3dubG9hZFdpdGhSdW5Mb29wKGhhbmRsZS0+Y29u
bmVjdGlvbigpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIHN5bmNocm9ub3VzTG9hZFJ1bkxvb3BN
b2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCAzOTQwZGJlMGJhY2Q3ZDBjMjI2NjY0ZDU5Mjlj
ZTUyYzE2MzBjZmE2Li45MWE2NWI1NjhjNTdiNmQxYzJlM2Q1YzFjNGIwNjYxNDk3YWNiM2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQpAQCAtMTI0LDkgKzEyNCw5IEBAIHN0YXRpYyBib29sIHN5bmNocm9u
b3VzV2lsbFNlbmRSZXF1ZXN0RW5hYmxlZCgpCiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1Mp
Ci12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
LCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yKQordm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvcikK
ICNlbHNlCi12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVs
ZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25h
cnkgKmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpj
b25uZWN0aW9uUHJvcGVydGllcykKICNlbmRpZgogewogI2lmICFIQVZFKFRJTUlOR0RBVEFPUFRJ
T05TKQpAQCAtMTYwLDIwICsxNjAsMjIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICB9
CiAKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpLm5zVVJMUmVx
dWVzdChVcGRhdGVIVFRQQm9keSk7Ci0gICAgaWYgKCFzaG91bGRDb250ZW50U25pZmYpIHsKLSAg
ICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBt
dXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFBy
b3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5
U2hvdWxkU25pZmZdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9
CiAKKyAgICBhdXRvIG11dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbbnNSZXF1ZXN0IG11dGFibGVD
b3B5XSk7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMgorICAgIGlmICghc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAg
ICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChZRVMpIGZvcktleTooTlNTdHJpbmcg
KilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2tdOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworI2VuZGlmCiAjaWYgSEFW
RShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0
aXRpb24gPSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRp
dGlvbihmaXJzdFJlcXVlc3QoKSk7Ci0gICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHko
KSkgewotICAgICAgICBOU011dGFibGVVUkxSZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNS
ZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVsZWFzZV07CisgICAgaWYgKCFzdG9yYWdlUGFydGl0
aW9uLmlzRW1wdHkoKSkKICAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpzdG9y
YWdlUGFydGl0aW9uIGZvcktleTpAIl9fU1RPUkFHRV9QQVJUSVRJT05fSURFTlRJRklFUiJdOwot
ICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CiAjZW5kaWYKKyAgICBp
ZiAoIXNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9w
ZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNo
b3VsZFNuaWZmXTsKKyAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdC5hdXRvcmVsZWFzZSgp
OwogCiAgICAgaWYgKGQtPm1fc3RvcmFnZVNlc3Npb24pCiAgICAgICAgIG5zUmVxdWVzdCA9IFtj
b3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBu
c1JlcXVlc3QpIGF1dG9yZWxlYXNlXTsKQEAgLTI1MSwxMiArMjUzLDE0IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KCkKICAgICAgICAgUmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLAogICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQt
PmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKKyAgICAgICAgZC0+bV9zaG91bGRD
b250ZW50RW5jb2RpbmdTbmlmZiwKICAgICAgICAgc2NoZWR1bGluZ0JlaGF2aW9yKTsKICNlbHNl
CiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFr
ZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UsCiAgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQt
Pm1fY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBk
LT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLAogICAgICAgICBzY2hlZHVsaW5nQmVoYXZp
b3IsCiAgICAgICAgIChOU0RpY3Rpb25hcnkgKiljbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRp
ZXModGhpcykuZ2V0KCkpOwogI2VuZGlmCkBAIC0zOTcsNyArNDAxLDEwIEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4CiAgICAgU3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNs
aWVudC5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09
IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVz
dCwgJmNsaWVudCwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50
U25pZmYqLykpOworICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmID0gdHJ1ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmID0gdHJ1ZTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVm
KG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBkZWZlcnNMb2Fk
aW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAK
ICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lv
bigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC00MTIsMTIgKzQxOSwxNCBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleAogICAgICAgICBoYW5kbGUtPm1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAogICAg
ICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZigpLAogICAgICAgICBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzKTsK
ICNlbHNlCiAgICAgaGFuZGxlLT5jcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGhhbmRs
ZS0+bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwgLy8gQSBzeW5jaHJv
bm91cyByZXF1ZXN0IGNhbm5vdCB0dXJuIGludG8gYSBkb3dubG9hZCwgc28gdGhlcmUgaXMgbm8g
bmVlZCB0byBwcm94eSB0aGUgZGVsZWdhdGUuCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLAogICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IChjb250ZXh0
ICYmIGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSksCisgICAgICAg
IGhhbmRsZS0+c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSwKICAgICAgICAgU2NoZWR1bGlu
Z0JlaGF2aW9yOjpTeW5jaHJvbm91cywKICAgICAgICAgKE5TRGljdGlvbmFyeSAqKWhhbmRsZS0+
Y2xpZW50KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKGhhbmRsZS5nZXQoKSkuZ2V0KCkpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDc0OTk5NzJlZmU4ZTZmYmExMDg1MjllMDQw
YjNkNzg1NmY3ODQwMDAuLjNiMjU2ZDdiZmRiMzYyZWM1ZjQ1YjgzNThiMzRkZjYyZGFiZWI0YjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC05MCw5ICs5MCw5IEBAIFNvdXBTZXNzaW9uKiBS
ZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vzc2lvbigpCiAgICAgcmV0dXJuIG1fc2Vzc2lv
biA/IG1fc2Vzc2lvbi0+c291cFNlc3Npb24oKSA6IHNlc3Npb25Gcm9tQ29udGV4dChtX2NvbnRl
eHQuZ2V0KCkpOwogfQogCi1SZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCitSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wg
ZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYpCiB7Ci0gICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJl
c291cmNlSGFuZGxlKHNlc3Npb24sIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmKSk7CisgICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJl
c291cmNlSGFuZGxlKHNlc3Npb24sIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikpOwogCiAgICAgaWYg
KG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAg
ICAgIHJldHVybiBXVEZNb3ZlKG5ld0hhbmRsZSk7CkBAIC0xMDMsOCArMTAzLDggQEAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKFNvdXBOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVzb3VyY2VIYW5k
bGU6OlJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29s
IGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQotICAgIDogZChzdGQ6Om1h
a2VfdW5pcXVlPFJlc291cmNlSGFuZGxlSW50ZXJuYWw+KHRoaXMsIG51bGxwdHIsIHJlcXVlc3Qs
IGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRl
bnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5k
bGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYp
CisgICAgOiBkKHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywg
bnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25p
ZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZikpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewog
ICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtNzM4LDcgKzcz
OCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gUmVzb3VyY2VIYW5kbGU6OnJlbGVhc2VGb3JEb3dubG9hZChSZXNvdXJjZUhhbmRsZUNsaWVu
dCogZG93bmxvYWRDbGllbnQpCiB7CiAgICAgLy8gV2UgZG9uJ3QgYWRvcHQgdGhlIHJlZiwgYXMg
aXQgd2lsbCBiZSByZWxlYXNlZCBieSBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24sIHdoaWNo
IHNob3VsZCBhbHdheXMgcnVuLgotICAgIFJlc291cmNlSGFuZGxlKiBuZXdIYW5kbGUgPSBuZXcg
UmVzb3VyY2VIYW5kbGUoZC0+bV9jb250ZXh0LmdldCgpLCBmaXJzdFJlcXVlc3QoKSwgbnVsbHB0
ciwgZC0+bV9kZWZlcnNMb2FkaW5nLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVz
b3VyY2VIYW5kbGUqIG5ld0hhbmRsZSA9IG5ldyBSZXNvdXJjZUhhbmRsZShkLT5tX2NvbnRleHQu
Z2V0KCksIGZpcnN0UmVxdWVzdCgpLCBudWxscHRyLCBkLT5tX2RlZmVyc0xvYWRpbmcsIGQtPm1f
c2hvdWxkQ29udGVudFNuaWZmLCBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICAg
ICBuZXdIYW5kbGUtPnJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwogICAgIHN0ZDo6c3dhcChk
LCBuZXdIYW5kbGUtPmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRl
eCA3OWQ4YzM4YmM3ODE4OWEyM2E3YjBlOGY1MmJiNzgwOWNjZDM1YWIyLi4wOTZmMDU1NWFjMWVl
NDUyYjY0NWEyYmI5Y2VkNTJlMTY1MTU0YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKQEAgLTYxMyw2ICs2MTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgb3B0aW9ucy5pbml0aWF0b3IgPSBjYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzKCkueG1saHR0cHJlcXVlc3Q7CiAgICAgb3B0aW9ucy5zYW1l
T3JpZ2luRGF0YVVSTEZsYWcgPSBTYW1lT3JpZ2luRGF0YVVSTEZsYWc6OlNldDsKICAgICBvcHRp
b25zLmZpbHRlcmluZ1BvbGljeSA9IFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5OjpFbmFibGU7Cisg
ICAgb3B0aW9ucy5zbmlmZkNvbnRlbnRFbmNvZGluZyA9IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5n
UG9saWN5OjpEb05vdFNuaWZmOwogCiAgICAgaWYgKG1fdGltZW91dE1pbGxpc2Vjb25kcykgewog
ICAgICAgICBpZiAoIW1fYXN5bmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggMWVhZmVlZGQ5ZDZjMTgxZjY0MWQ5YzQy
ODI1YmM5YmM1OWNhYjgzMS4uZjYzYWRhZjA4M2M0MTNmN2JkZDNmZjhmN2FlYjdhZmY2OTUxMTMy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmNwcApAQCAtMTEyLDcgKzExMiwxMCBAQCB2b2lkIERvd25sb2FkOjpzdGFydCgpCiB7
CiAgICAgaWYgKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbElzQmxvYigpKSB7CiAgICAgICAgIG1f
ZG93bmxvYWRDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2JEb3dubG9hZENsaWVudD4oKnRo
aXMpOwotICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShu
dWxscHRyLCBtX3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGZhbHNlLCBmYWxzZSk7
CisgICAgICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgICAgICBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmID0gdHJ1ZTsKKyAgICAgICAgbV9yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUobnVsbHB0ciwgbV9yZXF1ZXN0LCBtX2Rvd25sb2FkQ2xpZW50LmdldCgpLCBkZWZl
cnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
KTsKICAgICAgICAgZGlkU3RhcnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyNCw3
ICsxMjcsMTAgQEAgdm9pZCBEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIKIHsKICAgICBpZiAobV9yZXF1ZXN0
LnVybCgpLnByb3RvY29sSXNCbG9iKCkpIHsKICAgICAgICAgbV9kb3dubG9hZENsaWVudCA9IHN0
ZDo6bWFrZV91bmlxdWU8QmxvYkRvd25sb2FkQ2xpZW50PigqdGhpcyk7Ci0gICAgICAgIG1fcmVz
b3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG51bGxwdHIsIG1fcmVxdWVzdCwg
bV9kb3dubG9hZENsaWVudC5nZXQoKSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgYm9vbCBkZWZl
cnNMb2FkaW5nID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gZmFs
c2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPSB0cnVlOworICAg
ICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShudWxscHRyLCBt
X3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGRlZmVyc0xvYWRpbmcsIHNob3VsZENv
bnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogICAgICAgICBkaWRTdGFy
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGJiN2YxNzUxZmZlNGExOWJlNTM4ODNj
ZDVlMWIxYWUzODM4MDI1NTcuLmE2NDJhZTU1ZTI1ZTE4ZmUwMzU2MzRiNTQ4ZDIwZTUxM2RmOGRk
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFz
ay5jcHAKQEAgLTUzLDEwICs1MywxMCBAQCBSZWY8TmV0d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0
YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdAogICAgICAg
ICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFy
YW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0
dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0
ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRl
cnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkpOwor
ICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwg
cGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBw
YXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsKICNlbmRpZgog
I2lmIFVTRShTT1VQKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vz
c2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJldHVybiBO
ZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJl
cXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCBhM2M5NWRkNjNhZGUyNmE5YWEyZjE1
MDhkZGYwZDYzZTJlZDE1ZjA1Li45ZmE1YTczODc1M2FlMTNlYjk3NzM5MGUyYmI0M2YyZWI0NTM2
OTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApA
QCAtMTI1LDcgKzEyNSw3IEBAIE5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENs
aWVudCYgY2xpZW50LCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJhCiAgICAgLCBtX25ldHdv
cmtpbmdDb250ZXh0KFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobV9wYXJhbWV0ZXJz
LnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpKQogICAgICwgbV9jdXJyZW50UmVxdWVzdChtX3BhcmFtZXRlcnMucmVxdWVzdCkK
IHsKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9uZXR3b3JraW5nQ29u
dGV4dC5nZXQoKSwgbV9wYXJhbWV0ZXJzLnJlcXVlc3QsIHRoaXMsIG1fcGFyYW1ldGVycy5kZWZl
cnNMb2FkaW5nLCBtX3BhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID09IFNuaWZmQ29u
dGVudCk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0d29ya2lu
Z0NvbnRleHQuZ2V0KCksIG1fcGFyYW1ldGVycy5yZXF1ZXN0LCB0aGlzLCBtX3BhcmFtZXRlcnMu
ZGVmZXJzTG9hZGluZywgbV9wYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9PSBTbmlm
ZkNvbnRlbnQsIG1fcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9PSBD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYpOwogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5o
CmluZGV4IDI1YWE1MDU4MGRlOWE5OGFjZGMwMjdhODEwN2EyOGVhODkzNDc1NzguLjgzMjc4OTc5
ODhiNjRmZjMyZTQxODNhNTk4MDYzZTRhZjVmY2NiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtNDIsNiArNDIs
NyBAQCBwdWJsaWM6CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEIHsgUEFMOjpTZXNzaW9u
SUQ6OmVtcHR5U2Vzc2lvbklEKCkgfTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdDsKICAgICBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5n
UG9saWN5IHsgV2ViQ29yZTo6U25pZmZDb250ZW50IH07CisgICAgV2ViQ29yZTo6Q29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgeyBXZWJD
b3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsKICAgICBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSB7IFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSB9OwogICAgIFdlYkNvcmU6OkNs
aWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBvbGljeSB7IFdlYkNvcmU6OkNs
aWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzIH07CiAg
ICAgYm9vbCBzaG91bGRGb2xsb3dSZWRpcmVjdHMgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuY3BwCmluZGV4IGU5NjM1NzYyYjY1ZjUzMjQxMmZiZWZkZDExMzc0ZGNkM2E1NDk1ZDAu
LmNkMjE2NTcyZjI1N2QwOTFjMmZkZTNmMjRhZGFkYWZiZWQ3MGNjMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuY3BwCkBAIC03NCw2ICs3NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgfQog
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGNvbnRlbnRTbmlmZmluZ1BvbGljeSk7CisgICAgZW5j
b2Rlci5lbmNvZGVFbnVtKGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5KTsKICAgICBlbmNv
ZGVyLmVuY29kZUVudW0oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogICAgIGVuY29kZXIuZW5j
b2RlRW51bShjbGllbnRDcmVkZW50aWFsUG9saWN5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0o
c2hvdWxkUHJlY29ubmVjdE9ubHkpOwpAQCAtMTQxLDYgKzE0Miw4IEBAIGJvb2wgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdv
cmtSZXNvdXJjCiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuY29udGVudFNu
aWZmaW5nUG9saWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKHJlc3VsdC5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0ocmVzdWx0LmNsaWVudENyZWRlbnRpYWxQb2xpY3kpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCmluZGV4IDY5MTM5NjU4MDI4ZjNkNDI5ZTdjNmU5YWY5
NDVjZTE4ZDY0MzJlZGUuLmFmNjM2NzBjOTE0YTVlZDJiMGIzNzhlODE3ZmVlNTI4MjliMTI5YzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAg
U3BlY3VsYXRpdmVMb2FkOjpTcGVjdWxhdGl2ZUxvYWQoQ2FjaGUmIGNhY2hlLCBjb25zdCBHbG9i
YWxGcmFtZUlEJiBmcmFtZUlELCBjb24KICAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgcGFyYW1ldGVycy5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CiAgICAgcGFyYW1l
dGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBEb05vdFNuaWZmQ29udGVudDsKKyAgICBwYXJh
bWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25p
ZmZpbmdQb2xpY3k6OlNuaWZmOwogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IG1fb3JpZ2luYWxS
ZXF1ZXN0OwogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgbV9uZXR3b3JrTG9hZCA9IHN0
ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCAq
U2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCA3NWZjOTdkZjljMzgxZjUzZGYxMWM3
NGUwNzJjMjJhNDU1ZWIxYjZkLi44ODc1YzljZTlmYzVlMjcxYTUyYjNlODc5MDIyM2IyYTFhODBi
OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC00MSw5ICs0MSw5IEBAIGNsYXNzIE5ldHdvcmtT
ZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBO
ZXR3b3JrRGF0YVRhc2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQorICAg
IHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Np
b24sIGNsaWVudCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRl
bnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxk
UHJlY29ubmVjdE9ubHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0Rh
dGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9u
bHkpKTsKICAgICB9CiAKICAgICB+TmV0d29ya0RhdGFUYXNrQ29jb2EoKTsKQEAgLTcwLDcgKzcw
LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xv
YWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToK
LSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkp
OworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFU
YXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkpOwogCiAgICAgYm9vbCB0
cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbQppbmRleCBkZjY0ZTM5YmU2MTU1Y2RmZTY1MGViMzQxNzEzYmI1NjFmODU3NDc4Li5h
NzU5ZmNjMTZkMThiZWUwNzRjOTQ1NGZhOWUwNTUxZWQxN2JhYjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIGZsb2F0IHRvTlNVUkxTZXNzaW9uVGFza1By
aW9yaXR5KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogICAgIHJldHVy
biBOU1VSTFNlc3Npb25UYXNrUHJpb3JpdHlEZWZhdWx0OwogfQogCi1OZXR3b3JrRGF0YVRhc2tD
b2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kg
c2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQorTmV0d29ya0Rh
dGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5n
UG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVj
dE9ubHkpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlw
ZSAhPSBOb0ZhaWx1cmUpCkBAIC0xMDQsMjQgKzEwNCwyNiBAQCBOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtE
YXRhVAogI2VuZGlmCiAgICAgCiAgICAgTlNVUkxSZXF1ZXN0ICpuc1JlcXVlc3QgPSByZXF1ZXN0
Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpVcGRhdGVIVFRQQm9keSk7Ci0gICAgaWYgKHNob3VsZENv
bnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpEb05vdFNuaWZmQ29udGVudCB8fCB1cmwucHJvdG9jb2xJ
cygiZmlsZSIpKSB7Ci0gICAgICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKm11dGFibGVSZXF1ZXN0
ID0gW1tuc1JlcXVlc3QgbXV0YWJsZUNvcHldIGF1dG9yZWxlYXNlXTsKLSAgICAgICAgW211dGFi
bGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENv
bm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmXTsKLSAgICAgICAgbnNSZXF1ZXN0ID0gbXV0YWJs
ZVJlcXVlc3Q7Ci0gICAgfQogCisgICAgYXV0byBtdXRhYmxlUmVxdWVzdCA9IGFkb3B0TlMoW25z
UmVxdWVzdCBtdXRhYmxlQ29weV0pOworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDIKKyAgICBpZiAoc2hvdWxkQ29udGVudEVuY29k
aW5nU25pZmYgPT0gV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OkRvTm90
U25pZmYpCisgICAgICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChZRVMpIGZvcktl
eTooTlNTdHJpbmcgKilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2tdOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworI2Vu
ZGlmCisgICAgaWYgKHNob3VsZENvbnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpEb05vdFNuaWZmQ29u
dGVudCB8fCB1cmwucHJvdG9jb2xJcygiZmlsZSIpKQorICAgICAgICBbbXV0YWJsZVJlcXVlc3Qg
X3NldFByb3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblBy
b3BlcnR5U2hvdWxkU25pZmZdOwogICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9IHN0YXRpY19jYXN0
PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkpOworICAgIGlmICghY29jb2FT
ZXNzaW9uLm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyLmlzTnVsbCgpKQorICAgICAgICBbbXV0
YWJsZVJlcXVlc3Qgc2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOmNvY29hU2Vzc2lvbi5tX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcl07CisgICAgbnNSZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3Qu
YXV0b3JlbGVhc2UoKTsKKwogICAgIGlmIChzZXNzaW9uLm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
LnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0KSkgewogICAgICAgICBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSA9IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKICAg
ICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5OjpEb05vdFVzZTsKICAgICB9CiAKLSAgICBpZiAoIWNvY29hU2Vzc2lvbi5tX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllci5pc051bGwoKSkgewotICAgICAgICBOU011dGFibGVVUkxS
ZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNSZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVs
ZWFzZV07Ci0gICAgICAgIFttdXRhYmxlUmVxdWVzdCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZp
ZXI6Y29jb2FTZXNzaW9uLm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyXTsKLSAgICAgICAgbnNS
ZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3Q7Ci0gICAgfQotCiAgICAgaWYgKHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsKICAg
ICAgICAgbV90YXNrID0gW2NvY29hU2Vzc2lvbi5tX3Nlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3Jh
Z2UgZGF0YVRhc2tXaXRoUmVxdWVzdDpuc1JlcXVlc3RdOwogICAgICAgICBBU1NFUlQoIWNvY29h
U2Vzc2lvbi5tX2RhdGFUYXNrTWFwV2l0aENyZWRlbnRpYWxzLmNvbnRhaW5zKFttX3Rhc2sgdGFz
a0lkZW50aWZpZXJdKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggZTcyYzFmNjk1ZTdmZGY3N2Y1
N2JmYmM1ZGU4Y2I0ZDEzNzRlYmI5Ny4uNGE3ZTkxNmZiYjY2MmU1NjdjYzg3MGIzMDM1YzQ4NmJl
MTIyYWI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBnRGVmYXVsdFJlYWRCdWZmZXJTaXplID0g
ODE5MjsKIAotTmV0d29ya0RhdGFUYXNrU291cDo6TmV0d29ya0RhdGFUYXNrU291cChOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKK05ldHdvcmtEYXRhVGFza1NvdXA6Ok5ldHdvcmtEYXRhVGFza1NvdXAoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIDogTmV0d29y
a0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QpCiAgICAgLCBtX3Nob3VsZENvbnRlbnRTbmlmZihzaG91bGRDb250ZW50U25pZmYpCiAgICAg
LCBtX3RpbWVvdXRTb3VyY2UoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmV0d29ya0RhdGFUYXNr
U291cDo6dGltZW91dEZpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmgKaW5kZXggMzkwY2Q0OGM5OTFhZDY1NTQ3
MWRiMTc1ODEyNzdhNGQ0OWJiMmJkMy4uY2M2ZTU3MWU0ZGEzZmM2ZTUzMTBjODM4NWY1NGQ2YThl
ZTViNjMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya0RhdGFUYXNrU291cC5oCkBAIC0zNiwxNSArMzYsMTUgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIE5ldHdvcmtEYXRhVGFza1NvdXAgZmluYWwgOiBwdWJsaWMgTmV0d29y
a0RhdGFUYXNrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3Jl
YXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVu
dCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFU
YXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVu
dCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrU291cChzZXNzaW9uLCBj
bGllbnQsIHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25p
ZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrU291cChzZXNzaW9uLCBjbGllbnQs
IHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KSk7CiAgICAgfQogCiAgICAgfk5ldHdvcmtEYXRhVGFza1NvdXAoKTsKIAogcHJp
dmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tTb3VwKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKKyAgICBOZXR3
b3JrRGF0YVRhc2tTb3VwKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAKICAgICB2b2lkIHN1
c3BlbmQoKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
CmluZGV4IDQ1MDc3YTQwZmFlZTE5ZmM0M2IyNGU2YWRhNzllMDMxYTk3NzVmNjYuLjExNDFkMGJm
OTc5ZTMzNGEzZTdkZWU1ODYzZDU2YjA4NzY5YzNiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTI0Miw2
ICsyNDIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29y
a1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogICAgIExPRyhOZXR3b3JrU2NoZWR1
bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwg
JyVzJyB3aWxsIGJlIHNjaGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyB3aXRoIHByaW9y
aXR5ICVkIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCBz
dGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSk7CiAK
ICAgICBDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5ID0gcmVzb3Vy
Y2VMb2FkZXIuc2hvdWxkU25pZmZDb250ZW50KCkgPyBTbmlmZkNvbnRlbnQgOiBEb05vdFNuaWZm
Q29udGVudDsKKyAgICBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBjb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFNuaWZmQ29udGVudEVuY29k
aW5nKCkgPyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgOiBDb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeTo6RG9Ob3RTbmlmZjsKICAgICBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKCkgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlIDogU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOwogCiAgICAgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CkBAIC0yNTEsNiArMjUyLDcgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVy
JiByZXNvdXJjZUwKICAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2Vi
UGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJz
LmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKKyAgICBsb2Fk
UGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgLy8gSWYgdGhlcmUgaXMgbm8gV2Vi
RnJhbWUgdGhlbiB0aGlzIHJlc291cmNlIGNhbm5vdCBiZSBhdXRoZW50aWNhdGVkIHdpdGggdGhl
IGNsaWVudC4KICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5ID0gKHdl
YkZyYW1lICYmIHdlYlBhZ2UgJiYgcmVzb3VyY2VMb2FkZXIuaXNBbGxvd2VkVG9Bc2tVc2VyRm9y
Q3JlZGVudGlhbHMoKSkgPyBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRGb3JD
cmVkZW50aWFscyA6IENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNy
ZWRlbnRpYWxzOwpAQCAtNDA1LDYgKzQwNyw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIHVuCiAg
ICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25J
RCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1l
dGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZp
bmdQb2xpY3kgPSBTbmlmZkNvbnRlbnQ7CisgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3kgPSBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmY7
CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5
ID0gY2xpZW50Q3JlZGVudGlhbFBvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0ID0gY29udGV4dC0+c2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBmMGRjNTk1NjI2MDFhNjJkMjIy
MTU1NjMxNjAyY2QwZTRlMTMxY2EuLmEyZGQzODY3NGRjNzg3MmE3NmU2ZDYyMTQ4YTI3ZThhZTkx
Zjk0MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNiBAQAogMjAxNy0xMC0yNyAgRGFuaWVsIEJhdGVzICA8
ZGFiYXRlc0BhcHBsZS5jb20+CiAKKyAgICAgICAgWE1MSHR0cFJlcXVlc3Qgc2hvdWxkIG5vdCBz
bmlmZiBjb250ZW50IGVuY29kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzU1OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzODIyMjQ5Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB1cCB0
aGUgdGVzdCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNv
bnRlbnQtZW5jb2RpbmcuaHRtbCB0bworICAgICAgICBhY3R1YWxseSBjaGVjayB0aGF0IHdlIGRv
IG5vdCBzbmlmZiBjb250ZW50IGVuY29kaW5nLiBDRk5ldHdvcmsgb25seSBzbmlmZnMgdGhlIFVS
TAorICAgICAgICBmb3IgdGhlIGNvbnRlbnQgZW5jb2Rpbmcgd2hlbiB0aGUgZmlsZW5hbWUgZW5k
cyB3aXRoIGtub3duIGZpbGUgZXh0ZW5zaW9uIChlLmcuIC5neikKKyAgICAgICAgYW5kIHRoZSBI
VFRQIHJlc3BvbnNlIGRvZXMgbm90IHNwZWNpZnlpbmcgYSBDb250ZW50LUVuY29kaW5nIEhUVFAg
aGVhZGVyLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczogU2tpcCB0aGUgdGVzdCBvbiBh
bGwgcGxhdGZvcm1zLiBPbmNlIDxyZGFyOi8vcHJvYmxlbS8zMzgyMjI0OT4gc2hpcHMKKyAgICAg
ICAgdGhlbiB3ZSB3aWxsIGVuYWJsZSB0aGUgdGVzdCBvbiBhbGwgcGxhdGZvcm1zIHRoYXQgdXNl
IENGTmV0d29yay4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29u
dGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNv
ZGluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
Ly5odGFjY2VzczogSW50ZXJwcmV0IGZpbGVzIHdpdGggLnBocC5neiBleHRlbnNpb24gYXMgUEhQ
IGZpbGVzLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6
aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3o6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNv
bnRlbnQtZW5jb2RpbmcucGhwLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zOiBTa2lwIHRoZSB0ZXN0IGZvciBub3cgdW50aWwgPHJkYXI6Ly9wcm9ibGVtLzMzODIyMjQ5
PiBzaGlwcy4KKworMjAxNy0xMC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CisKICAgICAgICAgT25seSBhbGxvdyBub24tbWl4ZWQgY29udGVudCBwcm90ZWN0ZWQgc3VicmVz
b3VyY2VzIHRvIGFzayBmb3IgY3JlZGVudGlhbHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODkxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUw
MTUyNDU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlMjY1Yzg4NTg0YzdiMzE3YzVjZWQ0YTQ5MmUy
MmNkNjA1YjU1ZDBmLi44OTM1ZmI0MTFkYzc0ODg0ZGJjYjdiZDVjNzM4OGYyOTdjMDY3MTZhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxMyw2ICsyMTMsOSBAQCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9nZW5lcmFsLmFueS53b3JrZXIuaHRtbCBbIFNr
aXAgXQogIyBOb3Qgc3VwcG9ydGVkCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jh
Y2tncm91bmQtZmV0Y2ggWyBTa2lwIF0KIAorIyBDb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIGlz
IG9ubHkgc3VwcG9ydGVkIGJ5IENGTmV0d29yay4KK2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
Z3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sIFsgU2tpcCBdCisKICMv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIHBsYXRmb3JtLXNwZWNpZmlj
IHRlc3RzLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMTQ5Myw4ICsx
NDk2LDYgQEAgd2Via2l0Lm9yZy9iLzE3NTI4OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdWktMy9vdXRsaW5lLTAxNi5odG0KIHdlYmtpdC5vcmcvYi8xNzUyODggaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvb3V0bGluZS0wMTkuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE3NTI5MCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAwNS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNzU1OTcgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwgWyBG
YWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE3MTk0NSBwZXJmL2NsYXNzLWxpc3QtcmVtb3ZlLmh0
bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xNzYxODMgZmFzdC9i
bG9jay9pbnNpZGUtaW5saW5lcy9vcGFjaXR5LW9uLWlubGluZS5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1j
b250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dAppbmRleCA4NmQ1MWRmOTU5M2IyNTRiYmZhMDc1
ZWZhM2E2YzUwMGQ2NjQ5NDExLi43NGY5MWE4OGU5ZTA1NDJmYzhjYjkyNDFiZTg5MDlmMzFmODVk
YjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6
aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8t
Y29udGVudC1lbmNvZGluZy1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBUZXN0IHRoYXQg
YW4gWE1MSHR0cFJlcXVlc3Qgd2l0aCBDb250ZW50LVR5cGU6IGd6aXAgaXMgcHJvcGVybHkgdW5j
b21wcmVzc2VkLgogCiBDb250ZW50IFR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQotQ29u
dGVudCBFbmNvZGluZzogbnVsbAorQ29udGVudCBFbmNvZGluZzogZ3ppcAogQ29udGVudCBMZW5n
dGg6IDI4MgogUkVTUE9OU0UgMjAwOiBbb2JqZWN0IEFycmF5QnVmZmVyXQogTEVOR1RIOiA0NDUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1j
b250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5n
Lmh0bWwKaW5kZXggOGFlNTU0OTcyMTcyNjhhZWQ5Y2JmNTUwNTkyZTI4MWFiMTQ0ZGJkMy4uNzky
NjI4NzdlYzQ4NjcyODViNzEzZTdjNmEzOTMxMjI4NzQ0ODA0NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250
ZW50LWVuY29kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwKQEAgLTE2LDcg
KzE2LDcgQEAgY29uc3QgbG9nID0gdGV4dCA9PiB7CiB9OwogCiBjb25zdCB4aHIgPSBuZXcgWE1M
SHR0cFJlcXVlc3QoKTsKLXhoci5vcGVuKCdHRVQnLCAncmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8t
Y29udGVudC1lbmNvZGluZy5waHAnKTsKK3hoci5vcGVuKCdHRVQnLCAncmVzb3VyY2VzL2d6aXAt
bG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3onKTsKIHhoci5yZXNwb25zZVR5cGUgPSAn
YXJyYXlidWZmZXInOwogeGhyLm9uZXJyb3IgPSBlID0+IGxvZyhgRkFJTEVEOiAke3hoci5zdGF0
dXN9ICR7eGhyLnN0YXR1c1RleHR9YCk7CiB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4g
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvLmh0YWNjZXNzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvLmh0YWNjZXNzCmluZGV4IDkyNzc5NDAxZTdkNWU5ZWQ2NDVhMDg5NDZhNWU0YWRi
OTJjYTA1NGUuLjAyNTI2MDczZWU2NjcyZWQzMGVlNjliNGIxYmU0Y2JiMmU0YTMyNjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzLy5o
dGFjY2VzcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy8uaHRhY2Nlc3MKQEAgLTEwLDMgKzEwLDUgQEAgQWRkQ2hhcnNldCB3aW5kb3dzLTEyNTEg
LnhtbAogPEZpbGVzICJub0NvbnRlbnRUeXBlLmFzaXMiPgogRGVmYXVsdFR5cGUgTm9uZQogPC9G
aWxlcz4KKworQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLXBocCAucGhwLmd6CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlw
LWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBo
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRhYjIyM2FhMTBlMTVmZGQ4ZDdlYWYy
YzYzN2I5MGMxMzk0NGQ3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9n
emlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwCisrKyAvZGV2L251bGwKQEAgLTEsOCAr
MCwwIEBACi08P3BocAotJHRleHQgPSAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNl
Y3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQg
dXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFt
LCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1
aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXBy
ZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0
IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHBy
b2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlk
IGVzdCBsYWJvcnVtLiI7Ci0kZ3ppcFRleHQgPSBnemVuY29kZSgkdGV4dCwgNik7Ci0KLWhlYWRl
cigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsKLQotZWNobyAkZ3pp
cFRleHQ7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocC5neiBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0t
bm8tY29udGVudC1lbmNvZGluZy5waHAuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRhYjIyM2FhMTBlMTVmZGQ4
ZDdlYWYyYzYzN2I5MGMxMzk0NGQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1l
bmNvZGluZy5waHAuZ3oKQEAgLTAsMCArMSw4IEBACis8P3BocAorJHRleHQgPSAiTG9yZW0gaXBz
dW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVp
dXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEu
IFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFt
Y28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMg
YXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3Nl
IGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBv
Y2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lh
IGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLiI7CiskZ3ppcFRleHQgPSBnemVu
Y29kZSgkdGV4dCwgNik7CisKK2hlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3Rl
dC1zdHJlYW0iKTsKKworZWNobyAkZ3ppcFRleHQ7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MWU1MTU1ZmY4MWNjYzQ5NTM1ZmM0NGI2ODZlMGEw
NDA4OTk1OWI1Li5iNzViMzQ4MmViMTg2MzJjNGUxYmE3MTllNjMzODI5NDNmYmI0Y2VlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzEsNiArMzEsOSBA
QCBmYXN0L2V2ZW50cy9kby1ub3QtZHJhZy1hbmQtZHJvcC1kYXRhLWRldGVjdG9ycy1saW5rLmh0
bWwgWyBQYXNzIF0KIAogZmFzdC94bWxodHRwcmVxdWVzdC9zZXQtZGFuZ2Vyb3VzLWhlYWRlcnMt
aW4tZGFzaGJvYXJkLmh0bWwgWyBQYXNzIF0KIAorIyBGSVhNRTogVW5za2lwIHRoaXMgdGVzdCBv
bmNlIHRoZSBmaXggZm9yIDxyZGFyOi8vcHJvYmxlbS8zMzgyMjI0OT4gc2hpcHMuCitodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2Rpbmcu
aHRtbCBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVu
ZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325246</attachid>
            <date>2017-10-27 22:38:34 -0700</date>
            <delta_ts>2017-10-27 22:42:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175597-20171027223834.patch</filename>
            <type>text/plain</type>
            <size>63178</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhMmI0M2IzM2YzZWYw
MzFjMzAzZjE2NDc4Yzk2MzM0ZGU2ZGE5Ni4uYzhmNWU2ZmQ3NDQ3NjhmMGUxZWQ5MjUxYzc4YTU5
NjRiYjZhNjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDE3LTEwLTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBz
aG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3Nv
Y2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3QgdG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBi
ZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVjb21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNl
IG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5nIEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZp
Y2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3VsZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJl
c3BvbnNlIHdpdGggaGVhZGVycworICAgICAgICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9n
emlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2Vz
IG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBIVFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMg
WmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdh
cmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+LgorCisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0
IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1
ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAgIHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVu
dCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3RoZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxs
IGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2VxdWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWln
aHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUgYnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
OjpzaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOiBFbmFibGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVz
b3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRsZSk6IERpdHRvLiBXZSBzaG91bGQgbG9vayB0
byBkaXNhYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4KKyAgICAgICAgYSBzdWJzZXF1
ZW50IGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOiBNb2RpZmllZCB0
byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29kaW5n
IHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCk6IE1vZGlmaWVkIHRvIHRha2UgYSBib29sZWFuIGFzIHRvIHdo
ZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQKKyAgICAgICAgZW5jb2Rpbmcgc25pZmZpbmcuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOiBNb2Rp
ZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0aGUgQ0ZN
dXRhYmxlVVJMUmVxdWVzdFJlZiBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4y
LgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlv
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24p
OiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250
ZW50IGVuY29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0
aGUgTlNNdXRhYmxlVVJMUmVxdWVzdCBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4x
My4yLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhh
dmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOiBNb2RpZmll
ZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29k
aW5nIHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNl
SGFuZGxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cmVsZWFz
ZUZvckRvd25sb2FkKTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiB4
bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OmNyZWF0ZVJlcXVlc3QpOiBEbyBub3QgZW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcg
Zm9yIHRoZSByZXF1ZXN0LgorCisyMDE3LTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKwogICAgICAgICBPbmx5IGFsbG93IG5vbi1taXhlZCBjb250ZW50IHByb3RlY3Rl
ZCBzdWJyZXNvdXJjZXMgdG8gYXNrIGZvciBjcmVkZW50aWFscwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4OTE5CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNTAxNTI0NT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDQ0OWIxZGRhYTY5Zjc2MTI4ODVi
MWY4NDkzM2Q5YTQ1MDkwNzI1MmEuLjYzMzdmNGVhZThkMDY0YTIxZWI5NjRkNGY3NmViMjM3ZGIw
MDZlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEwLTI3ICBE
YW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBYTUxIdHRwUmVxdWVz
dCBzaG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRm9yd2FyZCBkZWNsYXJlIENGTmV0d29yayBTUEkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oOgorCiAyMDE3LTEwLTI0ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBXZWJLaXQg
bG9nZ2luZyBjb25maWd1cmF0aW9uIGFuZCBkaXNwbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzZWVhN2Q0ZjFl
NzA2NGY3ZmYwYzdhZDI4Y2JkM2UzMTYyNTRlMzQuLmY3MzdlMTEzZTY4ODBkMzk1ZDk3MGJmYTU5
N2U4MTAxYTZjYmM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDkgQEAKIDIwMTctMTAtMjcgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0
IHNob3VsZCBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NTk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMzgyMjI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSB0aGUgYm9keSBvZiBhbiBIVFRQIHJlc3BvbnNlIGFz
c29jaWF0ZWQgd2l0aCBhbiBYSFIgcmVxdWVzdCB0byBhIC5neiBmaWxlCisgICAgICAgIHdvdWxk
IGJlIGF1dG9tYXRpY2FsbHkgZ3ppcHBlZCBkZWNvbXByZXNzZWQgaWYgdGhlIEhUVFAgcmVzcG9u
c2Ugb21pdHRlZCBhIENvbnRlbnQtRW5jb2RpbmcgSFRUUAorICAgICAgICBoZWFkZXIuIFNwZWNp
ZmljYWxseSwgc3VjaCBhIHJlc3BvbnNlIHdvdWxkIGJlIHRyZWF0ZWQgYW5hbG9nb3VzIHRvIGEg
cmVzcG9uc2Ugd2l0aCBoZWFkZXJzCisgICAgICAgICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L2d6aXAiIGFuZCAiQ29udGVudC1FbmNvZGluZzogaWRlbnRpdHkiLiBUaGlzIGJlaGF2aW9yIGRv
ZXMgbm90IGNvbmZvcm0KKyAgICAgICAgdGhlIEhUVFAgMS4xIHNwZWMuIGFuZCBicmVha3MgRXBp
YyBaZW4gR2FyZGVuLCA8aHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL21vemlsbGEtZ2FtZXMvWmVu
R2FyZGVuL0VwaWNaZW5HYXJkZW4uaHRtbD4uCisKKyAgICAgICAgT24gbWFjT1MgMTAuMTMuMiBv
cHQgb3V0IG9mIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgd2hlbiBtYWtpbmcgYW4gWEhSIHJl
cXVlc3QuIFdlIGxpa2VseSBjYW4KKyAgICAgICAgc2VsZWN0aXZlbHkgb3B0IG91dCBvZiBjb250
ZW50IGVuY29kaW5nIHNuaWZmaW5nIGZvciBvdGhlciBuZXR3b3JrIHJlcXVlc3RzLiBUaGlzIHdp
bGwgYmUgZG9uZQorICAgICAgICBpbiBzdWJzZXF1ZW50IGNvbW1pdHMgdG8gbWFrZSBpdCBzdHJh
aWdodGZvcndhcmQgdG8gaWRlbnRpZnkgc2l0ZSBicmVha2FnZSAoaWYgYW55KS4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRvd25sb2FkOjpzdGFydCk6IEVuYWJsZSBjb250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1h
dGNoIGV4aXN0aW5nIGJlaGF2aW9yLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnRX
aXRoSGFuZGxlKTogRGl0dG8uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOiBQYXNz
IHRocm91Z2ggdGhlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5LgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0xvYWQ6Ok5ldHdvcmtMb2FkKTogRGl0dG8uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KTogRW5jb2RlIGNvbnRlbnQgZW5jb2Rpbmcg
c25pZmZpbmcgcG9saWN5LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVyczo6ZGVjb2RlKTogRGVjb2RlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
TG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2Fk
OjpTcGVjdWxhdGl2ZUxvYWQpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRj
aCBleGlzdGluZworICAgICAgICBiZWhhdmlvci4gV2Ugc2hvdWxkIGxvb2sgdG8gZGlzYWJsZSBj
b250ZW50IGVuY29kaW5nIHNuaWZmaW5nIGluIGEgc3Vic2VxdWVudCBjaGFuZ2UuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKTogTW9k
aWZpZWQgdG8gdGFrZSB0aGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZworICAgICAgICBwb2xp
Y3kgYW5kIGFwcGx5IGl0IHRvIHRoZSBOU011dGFibGVVUkxSZXF1ZXN0IG9iamVjdCB3aGVuIGJ1
aWxkaW5nIG9uIG1hY09TIDEwLjEzLjIuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
U291cDo6TmV0d29ya0RhdGFUYXNrU291cCk6IFBhc3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrRGF0YVRhc2tTb3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVk
dWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6IFBhc3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KTogRW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25p
ZmYgdG8gbWF0Y2ggZXhpc3RpbmcKKyAgICAgICAgYmVoYXZpb3IuCisKKzIwMTctMTAtMjcgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCiAgICAgICAgIE9ubHkgYWxsb3cgbm9u
LW1peGVkIGNvbnRlbnQgcHJvdGVjdGVkIHN1YnJlc291cmNlcyB0byBhc2sgZm9yIGNyZWRlbnRp
YWxzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5
MTkKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MDE1MjQ1PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAppbmRleCBkZjM5YjhiZDQ2YWZhZTA0M2U4NDA4
MzZhMzA4MDc5ODAzNzE4NmY2Li4wYWNjODlmYmY5YjY0NTE2OTY1NjcxYTk2ODFlYWI5MTZhNjEw
NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtT
UEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaApA
QCAtMjA4LDYgKzIwOCwxMCBAQCBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTENhY2hl
UGFydGl0aW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDb25uZWN0aW9u
UHJvcGVydHlTaG91bGRTbmlmZjsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGVVJMU3Rv
cmFnZVNlc3Npb25Jc1ByaXZhdGU7CiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAyCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NGVVJMUmVxdWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrOworI2VuZGlmCisKIENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYgX0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZhdWx0KENGQWxsb2Nh
dG9yUmVmKTsKIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0
ZUZyb21GaWxlKENGQWxsb2NhdG9yUmVmLCBDRlVSTFJlZiwgQ0ZIVFRQQ29va2llU3RvcmFnZVJl
Zik7CiB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VTY2hlZHVsZVdpdGhSdW5Mb29wKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYsIENGUnVuTG9vcFJlZiwgQ0ZTdHJpbmdSZWYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTkyMTQyN2E0OTkzOTI1OWY1ZTQ0YWY1
OWM3ZWMzNWFhMWEyMWM5Ny4uZjkxOTk4M2Q4MjE2N2YyMjJiNGQ5N2FlM2Y1Y2E0ZGI0MzA5OTRh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yMTYsNyAr
MjE2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGZyYW1lTG9hZGVy
KCktPm5ldHdvcmtpbmdDb250ZXh0KCksIG1fcmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5n
LCBtX29wdGlvbnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudCk7CisgICAgbV9oYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGZyYW1lTG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0
KCksIG1fcmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX29wdGlvbnMuc25pZmZDb250
ZW50ID09IFNuaWZmQ29udGVudCwgbV9vcHRpb25zLnNuaWZmQ29udGVudEVuY29kaW5nID09IENv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7CiB9CiAKIHZvaWQgUmVzb3VyY2VM
b2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCmluZGV4IGY0YzlhNDU3N2U3ZTRkZDljNjFjZmUyYjcyYzcwYzhmNzFm
ZWYwOGUuLmJhYzhhY2E4MGVlMDhlNTQ1ZTExOTVkMDhkOWYzYTQ3ZTFjNmYyNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0xMjMsNiArMTIzLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzOyB9CiAgICAg
dm9pZCBzZXRTZW5kQ2FsbGJhY2tQb2xpY3koU2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2Fs
bGJhY2tzKSB7IG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IHNlbmRMb2FkQ2FsbGJhY2tz
OyB9CiAgICAgYm9vbCBzaG91bGRTbmlmZkNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudDsgfQorICAgIGJvb2wgc2hvdWxkU25pZmZD
b250ZW50RW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc25pZmZDb250ZW50RW5j
b2RpbmcgPT0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscygpIGNvbnN0
OwogICAgIGJvb2wgc2hvdWxkSW5jbHVkZUNlcnRpZmljYXRlSW5mbygpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9ucy5jZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgPT0gSW5jbHVkZUNlcnRpZmljYXRlSW5m
bzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJP
cHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgK
aW5kZXggNWM1YTBkNDI3YjRlOTk2MGJiN2M1YzdkMWYxZmFjZTU5YTQ0NTRiYS4uNjU3NGIzNzgx
NWI2Y2ZhNzgxNmJjMThiNjY1MThmNGY3NTg2MzUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaApAQCAtOTcsNiArOTcsMTEgQEAgZW51bSBjbGFz
cyBTZXJ2aWNlV29ya2Vyc01vZGUgewogICAgIE5vbmUsCiB9OwogCitlbnVtIGNsYXNzIENvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHsKKyAgICBTbmlmZiwKKyAgICBEb05vdFNuaWZmLAor
fTsKKwogc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMg
ewogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucygpIHsgfQogCkBAIC0xMjAsNiArMTI1LDcgQEAg
c3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewogCiAg
ICAgU2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2FsbGJhY2tzIHsgRG9Ob3RTZW5kQ2FsbGJh
Y2tzIH07CiAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudCB7IERvTm90U25p
ZmZDb250ZW50IH07CisgICAgQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc25pZmZDb250
ZW50RW5jb2RpbmcgeyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsKICAg
ICBEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xpY3kgeyBCdWZmZXJEYXRhIH07
CiAgICAgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeyBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgfTsKICAgICBTZWN1cml0eUNoZWNrUG9s
aWN5IHNlY3VyaXR5Q2hlY2sgeyBEb1NlY3VyaXR5Q2hlY2sgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5k
ZXggZWUyNWY5ZjM2YjU2NDczYjRmNmE5NTc5YzgxMjJjNTA1NmZlYzI1ZC4uMWVlMWQ2MTYzZmRk
YjNhNDNiNjE3NDQwNTQzZmZmNzZkM2FiZGIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTQ3NSw3
ICs0NzUsMTAgQEAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmNyZWF0ZVJlc291cmNlSGFuZGxlKGNvbnN0IFVSTCYgdXIKICAgICAgICAgfQogICAgIH0KIAot
ICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShtX2ZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBm
YWxzZSwgdHJ1ZSk7CisgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CisgICAgYm9vbCBz
aG91bGRDb250ZW50U25pZmYgPSB0cnVlOworICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYgPSB0cnVlOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCBy
ZXF1ZXN0LCB0aGlzLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgIC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9u
bHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGlyZWN0cywgd2UgaW5pdGlhbGl6ZQogICAgIC8vIHRo
ZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5j
cHAKaW5kZXggNjEyOTY5ZjA0YTdlYWVlZTJkMTVlOThiNzRlYjcwZTlhNTIyYjc4NS4uZGM4ZGQ0
NTNiMjkyOTVlMzQ4ZjQ5ODUwOWNkN2M3M2UyYjAxYmJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcApAQCAtMTMz
LDkgKzEzMyw5IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KEJsb2JEYXRhKiBibG9iRGF0YSwgY29uc3QgUmVzCiB9CiAKIEJsb2JSZXNvdXJjZUhh
bmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKEJsb2JEYXRhKiBibG9iRGF0YSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGFz
eW5jKQotICAgIDogUmVzb3VyY2VIYW5kbGUobnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSwgZmFsc2UpCi0gICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQotICAgICwgbV9hc3luYyhhc3lu
YykKKyAgICA6IFJlc291cmNlSGFuZGxlIHsgbnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSAvKiBkZWZlcnNMb2FkaW5nICovLCBmYWxzZSAvKiBzaG91bGRDb250ZW50U25pZmYgKi8sIHRy
dWUgLyogc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgKi8gfQorICAgICwgbV9ibG9iRGF0YSB7
IGJsb2JEYXRhIH0KKyAgICAsIG1fYXN5bmMgeyBhc3luYyB9CiB7CiAgICAgaWYgKG1fYXN5bmMp
CiAgICAgICAgIG1fYXN5bmNTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPEFzeW5jRmlsZVN0cmVh
bT4oKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
aW5nSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUu
aAppbmRleCBiZWI5YzVhY2E3ODNlNzAwNTY4ZTExODc2OWRkZWIxMTdiZDgwZWU5Li5hODhjYmEz
NTM0OTE4MmMyZGUxYTE5OGZjNTNiZTQ3NTg2ZDMxOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaApAQCAtNTIsNyArNTIsMTAgQEAgcHVibGljOgog
ICAgICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKHVzZUFzeW5jQ2FsbGJhY2tzKQogICAgICAg
ICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCiAgICAg
ewotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobmV0d29ya2luZ0Nv
bnRleHQsIHJlcXVlc3QsIHRoaXMsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIGJvb2wgZGVmZXJz
TG9hZGluZyA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IGZhbHNl
OworICAgICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICAg
ICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtpbmdDb250ZXh0LCBy
ZXF1ZXN0LCB0aGlzLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgICAgICAvLyBJZiB0aGUgc2VydmVyIG5ldmVyIHJl
c3BvbmRzLCB0aGlzIG9iamVjdCB3aWxsIGhhbmcgYXJvdW5kIGZvcmV2ZXIuCiAgICAgICAgIC8v
IFNldCBhIHZlcnkgZ2VuZXJvdXMgdGltZW91dCwganVzdCBpbiBjYXNlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCBiZWJj
Zjg4ZGJiY2U0ZDFkMWJlMGQxNTM0NGU0M2YwNmU3OGI3ZjUwLi42ZDUxYzJlNzg5MThmNTUyMzg0
NTQyZTZiNDY5ZWZjMDI2YmYyOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNzIsOCArNzIsOCBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpyZWdpc3RlckJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcihjb25zdCBBdG9taWNT
dHJpbmcmIHByb3RvYwogICAgIGJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVy
TWFwKCkuYWRkKHByb3RvY29sLCBsb2FkZXIpOwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVzb3Vy
Y2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKLSAgICA6IGQoc3RkOjptYWtlX3VuaXF1ZTxS
ZXNvdXJjZUhhbmRsZUludGVybmFsPih0aGlzLCBjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRl
ZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwo
cmVxdWVzdC51cmwoKSkpKQorUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291
cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRD
b250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAgOiBkKHN0
ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywgY29udGV4dCwgcmVx
dWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxk
Q29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZikpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewogICAgICAgICBzY2hl
ZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtODYsMTIgKzg2LDEyIEBAIFJlc291
cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0CiAgICAgfQogfQogCi1SZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9v
bCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKK1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQogewogICAgIGlmIChhdXRvIGNvbnN0cnVjdG9y
ID0gYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5nZXQocmVxdWVzdC51cmwo
KS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCiAgICAgICAgIHJldHVybiBj
b25zdHJ1Y3RvcihyZXF1ZXN0LCBjbGllbnQpOwogCi0gICAgYXV0byBuZXdIYW5kbGUgPSBhZG9w
dFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJz
TG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CisgICAgYXV0byBuZXdIYW5kbGUgPSBhZG9w
dFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJz
TG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikp
OwogCiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0Zh
aWx1cmUpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0hhbmRsZSk7CkBAIC0yMTAsNiArMjEw
LDExIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRTbmlmZigpIGNvbnN0CiAg
ICAgcmV0dXJuIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmOwogfQogCitib29sIFJlc291cmNlSGFu
ZGxlOjpzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQt
Pm1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmY7Cit9CisKIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnNob3VsZENvbnRlbnRTbmlmZlVSTChjb25zdCBVUkwmIHVybCkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaAppbmRleCA5ZTc5NmYxMmFhMjM3OTI5OGZmMzBiNWFjYzdlNzI0YWYzZmQ3Mzg2Li4wM2Ji
ODFjNDFkZTYyOTBhZTI4OTk2MTUzMzRjNmQ5MmNhYzEyNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC05MiwxMSArOTIsMTEg
QEAgY2xhc3MgVGltZXI7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlIDogcHVibGljIFJlZkNvdW50
ZWQ8UmVzb3VyY2VIYW5kbGU+LCBwdWJsaWMgQXV0aGVudGljYXRpb25DbGllbnQgewogcHVibGlj
OgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0
ZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRl
KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBi
b29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsKIAogI2lmIFVTRShT
T1VQKQotICAgIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShTb3VwTmV0d29y
a1Nlc3Npb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCos
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIHN0YXRp
YyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYpOwogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5SZXNvdXJjZUhh
bmRsZSgpOwpAQCAtMTY0LDYgKzE2NCw4IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENvbnRl
bnRTbmlmZigpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIHNob3VsZENvbnRlbnRTbmlmZlVSTChj
b25zdCBVUkwmKTsKIAorICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSBjb25z
dDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGZvcmNlQ29udGVudFNuaWZmaW5n
KCk7CiAKICNpZiBVU0UoQ1VSTCkgfHwgVVNFKFNPVVApCkBAIC0yMzUsNyArMjM3LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQnVpbHRpblN5bmNocm9ub3VzTG9hZGVyKGNv
bnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2wsIEJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcik7CiAK
IHByb3RlY3RlZDoKLSAgICBSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVzb3VyY2VIYW5kbGUoTmV0d29y
a2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogCiAgICAgYm9vbCB1c2VzQXN5bmNDYWxsYmFja3Mo
KSBjb25zdDsKIApAQCAtMjQ3LDcgKzI0OSw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogI2lmIFVT
RShTT1VQKQotICAgIFJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVzb3VyY2VIYW5kbGUoU291cE5ldHdv
cmtTZXNzaW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQq
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICNlbmRpZgogCiAgICAgdm9pZCBwbGF0Zm9ybVNldERl
ZmVyc0xvYWRpbmcoYm9vbCk7CkBAIC0yNjcsMTUgKzI2OSwxNSBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIHZvaWQgY3JlYXRlQ0ZVUkxDb25uZWN0
aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVz
KTsKKyAgICB2b2lkIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJv
cGVydGllcyk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVVTRShDRlVSTENPTk5F
Q1RJT04pCi0gICAgdm9pZCBjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hl
ZHVsaW5nQmVoYXZpb3IpOworICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVn
YXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9y
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhVVNFKENGVVJMQ09OTkVDVElPTikK
LSAgICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdC
ZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpjb25uZWN0aW9uUHJvcGVydGllcyk7CisgICAgdm9pZCBj
cmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29ubmVjdGlvblBy
b3BlcnRpZXMpOwogI2VuZGlmCiAKICNpZiBVU0UoU09VUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXgg
M2I3MTQ0YjU4NGE1NzE5Mzk0Njc1ZDljOTI5Yzc2NzU4OTQ1NGZmYS4uNWJiNzQ1YjQ0YTgyMmRk
ODViMzk1MDhmNDkxZjQ5YjY4NDcyODU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTcyLDcgKzcy
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwo
UmVzb3VyY2VIYW5kbGUqIGxvYWRlciwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwg
Ym9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKKyAgICBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCiAgICAgICAgIDogbV9jb250ZXh0
KGNvbnRleHQpCiAgICAgICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICAgICAsIG1fZmlyc3RS
ZXF1ZXN0KHJlcXVlc3QpCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3Bh
cnRpdGlvbihyZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCkpCiAgICAgICAgICwgbV9kZWZlcnNMb2Fk
aW5nKGRlZmVyc0xvYWRpbmcpCiAgICAgICAgICwgbV9zaG91bGRDb250ZW50U25pZmYoc2hvdWxk
Q29udGVudFNuaWZmKQorICAgICAgICAsIG1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgeyBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiB9CiAgICAgICAgICwgbV91c2VzQXN5bmNDYWxsYmFj
a3MoY2xpZW50ICYmIGNsaWVudC0+dXNlc0FzeW5jQ2FsbGJhY2tzKCkpCiAjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICAgICAgLCBtX2N1cnJlbnRSZXF1ZXN0KHJlcXVlc3QpCkBAIC0xMTUs
NiArMTE2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgYm9v
bCBtX3Nob3VsZENvbnRlbnRTbmlmZjsKKyAgICBib29sIG1fc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmY7CiAgICAgYm9vbCBtX3VzZXNBc3luY0NhbGxiYWNrczsKICNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQogICAgIFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+IG1fY29ubmVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDYzZmNlOGIzZjhmZmI5YTNiNWE4NDEyYTQ0ZmQ1ODQx
NGViY2RjZWMuLmZkMmJhNmJlMzc0YTQ4NDBlMTYzMzgzMjk5N2NmZWQwZDQ5ODkyMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGTmV0LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBpbmxpbmUgQ0ZTdHJp
bmdSZWYgc2hvdWxkU25pZmZDb25uZWN0aW9uUHJvcGVydHkoKQogI2VuZGlmCiB9CiAKLXZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9y
IHNjaGVkdWxpbmdCZWhhdmlvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVudFByb3BlcnRpZXMpCit2
b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29u
dGVudEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5nQmVoYXZpb3Is
IENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVzKQogewogICAgIGlmICgoIWQtPm1fdXNl
ci5pc0VtcHR5KCkgfHwgIWQtPm1fcGFzcy5pc0VtcHR5KCkpICYmICFmaXJzdFJlcXVlc3QoKS51
cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAgICAgLy8gQ3JlZGVudGlhbHMg
Zm9yIGZ0cCBjYW4gb25seSBiZSBwYXNzZWQgaW4gVVJMLCB0aGUgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlIGRlbGVnYXRlIGNhbGwgd29uJ3QgYmUgbWFkZS4KQEAgLTE2MSw3ICsx
NjEsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBhdXRvIHJlcXVlc3QgPSBhZG9w
dENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGZp
cnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSkpKTsKICAgICBpZiAoYXV0
byBzdG9yYWdlU2Vzc2lvbiA9IGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCkpCiAgICAgICAgIF9D
RlVSTFJlcXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihyZXF1ZXN0LmdldCgpLCBzdG9yYWdlU2Vzc2lv
bik7Ci0gICAgCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMzAyCisgICAgaWYgKCFzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikK
KyAgICAgICAgX0NGVVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkocmVxdWVzdC5nZXQoKSwg
a0NGVVJMUmVxdWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrLCBrQ0ZCb29sZWFuVHJ1ZSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7Cisj
ZW5kaWYKKwogICAgIGlmICghc2hvdWxkQ29udGVudFNuaWZmKQogICAgICAgICBfQ0ZVUkxSZXF1
ZXN0U2V0UHJvdG9jb2xQcm9wZXJ0eShyZXF1ZXN0LmdldCgpLCBzaG91bGRTbmlmZkNvbm5lY3Rp
b25Qcm9wZXJ0eSgpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCkBAIC0yNzcsNyArMjg0LDcgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogCiAgICAgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVk
dWxpbmdCZWhhdmlvciA9IGNsaWVudCgpLT5sb2FkaW5nU3luY2hyb25vdXNYSFIoKSA/IFNjaGVk
dWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMgOiBTY2hlZHVsaW5nQmVoYXZpb3I6OkFzeW5jaHJv
bm91czsKIAotICAgIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSwgZC0+bV9zaG91bGRDb250ZW50U25pZmYsIHNjaGVkdWxpbmdCZWhhdmlvciwgY2xpZW50
KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKHRoaXMpLmdldCgpKTsKKyAgICBjcmVhdGVDRlVSTENv
bm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGQtPm1fc2hvdWxkQ29udGVudFNu
aWZmLCBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzY2hlZHVsaW5nQmVoYXZpb3Is
IGNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyh0aGlzKS5nZXQoKSk7CiAKICAgICBkLT5t
X2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+c2V0dXBDb25uZWN0aW9uU2NoZWR1bGluZyhkLT5tX2Nvbm5l
Y3Rpb24uZ2V0KCkpOwogICAgIENGVVJMQ29ubmVjdGlvblN0YXJ0KGQtPm1fY29ubmVjdGlvbi5n
ZXQoKSk7CkBAIC01ODYsNyArNTkzLDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3Jt
TG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAgICAg
U3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNsaWVudC5zZXRBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9w
dFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJmNsaWVudCwgZmFsc2Ug
LypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOworICAgIGJv
b2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0g
dHJ1ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRs
ZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50
U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAKICAgICBoYW5kbGUtPmQtPm1f
c3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lv
bigpOwogCkBAIC01OTYsNyArNjA2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1M
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICB9
CiAKICAgICBoYW5kbGUtPmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBSZXNvdXJjZUhhbmRsZTo6c2hv
dWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLAotICAgICAgICBTY2hlZHVsaW5nQmVo
YXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGll
cyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZigpLCBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNs
aWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKIAogICAg
IENGVVJMQ29ubmVjdGlvblNjaGVkdWxlV2l0aFJ1bkxvb3AoaGFuZGxlLT5jb25uZWN0aW9uKCks
IENGUnVuTG9vcEdldEN1cnJlbnQoKSwgc3luY2hyb25vdXNMb2FkUnVuTG9vcE1vZGUoKSk7CiAg
ICAgQ0ZVUkxDb25uZWN0aW9uU2NoZWR1bGVEb3dubG9hZFdpdGhSdW5Mb29wKGhhbmRsZS0+Y29u
bmVjdGlvbigpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIHN5bmNocm9ub3VzTG9hZFJ1bkxvb3BN
b2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCAzOTQwZGJlMGJhY2Q3ZDBjMjI2NjY0ZDU5Mjlj
ZTUyYzE2MzBjZmE2Li45MWE2NWI1NjhjNTdiNmQxYzJlM2Q1YzFjNGIwNjYxNDk3YWNiM2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQpAQCAtMTI0LDkgKzEyNCw5IEBAIHN0YXRpYyBib29sIHN5bmNocm9u
b3VzV2lsbFNlbmRSZXF1ZXN0RW5hYmxlZCgpCiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1Mp
Ci12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
LCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yKQordm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvcikK
ICNlbHNlCi12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVs
ZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25h
cnkgKmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpj
b25uZWN0aW9uUHJvcGVydGllcykKICNlbmRpZgogewogI2lmICFIQVZFKFRJTUlOR0RBVEFPUFRJ
T05TKQpAQCAtMTYwLDIwICsxNjAsMjIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICB9
CiAKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpLm5zVVJMUmVx
dWVzdChVcGRhdGVIVFRQQm9keSk7Ci0gICAgaWYgKCFzaG91bGRDb250ZW50U25pZmYpIHsKLSAg
ICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBt
dXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFBy
b3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5
U2hvdWxkU25pZmZdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9
CiAKKyAgICBhdXRvIG11dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbbnNSZXF1ZXN0IG11dGFibGVD
b3B5XSk7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMgorICAgIGlmICghc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAg
ICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChZRVMpIGZvcktleTooTlNTdHJpbmcg
KilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2tdOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworI2VuZGlmCiAjaWYgSEFW
RShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0
aXRpb24gPSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRp
dGlvbihmaXJzdFJlcXVlc3QoKSk7Ci0gICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHko
KSkgewotICAgICAgICBOU011dGFibGVVUkxSZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNS
ZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVsZWFzZV07CisgICAgaWYgKCFzdG9yYWdlUGFydGl0
aW9uLmlzRW1wdHkoKSkKICAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpzdG9y
YWdlUGFydGl0aW9uIGZvcktleTpAIl9fU1RPUkFHRV9QQVJUSVRJT05fSURFTlRJRklFUiJdOwot
ICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CiAjZW5kaWYKKyAgICBp
ZiAoIXNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9w
ZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNo
b3VsZFNuaWZmXTsKKyAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdC5hdXRvcmVsZWFzZSgp
OwogCiAgICAgaWYgKGQtPm1fc3RvcmFnZVNlc3Npb24pCiAgICAgICAgIG5zUmVxdWVzdCA9IFtj
b3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBu
c1JlcXVlc3QpIGF1dG9yZWxlYXNlXTsKQEAgLTI1MSwxMiArMjUzLDE0IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KCkKICAgICAgICAgUmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLAogICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQt
PmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKKyAgICAgICAgZC0+bV9zaG91bGRD
b250ZW50RW5jb2RpbmdTbmlmZiwKICAgICAgICAgc2NoZWR1bGluZ0JlaGF2aW9yKTsKICNlbHNl
CiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFr
ZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UsCiAgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQt
Pm1fY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBk
LT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLAogICAgICAgICBzY2hlZHVsaW5nQmVoYXZp
b3IsCiAgICAgICAgIChOU0RpY3Rpb25hcnkgKiljbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRp
ZXModGhpcykuZ2V0KCkpOwogI2VuZGlmCkBAIC0zOTcsNyArNDAxLDEwIEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4CiAgICAgU3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNs
aWVudC5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09
IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVz
dCwgJmNsaWVudCwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50
U25pZmYqLykpOworICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmID0gdHJ1ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmID0gdHJ1ZTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVm
KG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBkZWZlcnNMb2Fk
aW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAK
ICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lv
bigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC00MTIsMTIgKzQxOSwxNCBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleAogICAgICAgICBoYW5kbGUtPm1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAogICAg
ICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZigpLAogICAgICAgICBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzKTsK
ICNlbHNlCiAgICAgaGFuZGxlLT5jcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGhhbmRs
ZS0+bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwgLy8gQSBzeW5jaHJv
bm91cyByZXF1ZXN0IGNhbm5vdCB0dXJuIGludG8gYSBkb3dubG9hZCwgc28gdGhlcmUgaXMgbm8g
bmVlZCB0byBwcm94eSB0aGUgZGVsZWdhdGUuCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLAogICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IChjb250ZXh0
ICYmIGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSksCisgICAgICAg
IGhhbmRsZS0+c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSwKICAgICAgICAgU2NoZWR1bGlu
Z0JlaGF2aW9yOjpTeW5jaHJvbm91cywKICAgICAgICAgKE5TRGljdGlvbmFyeSAqKWhhbmRsZS0+
Y2xpZW50KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKGhhbmRsZS5nZXQoKSkuZ2V0KCkpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDc0OTk5NzJlZmU4ZTZmYmExMDg1MjllMDQw
YjNkNzg1NmY3ODQwMDAuLjNiMjU2ZDdiZmRiMzYyZWM1ZjQ1YjgzNThiMzRkZjYyZGFiZWI0YjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC05MCw5ICs5MCw5IEBAIFNvdXBTZXNzaW9uKiBS
ZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vzc2lvbigpCiAgICAgcmV0dXJuIG1fc2Vzc2lv
biA/IG1fc2Vzc2lvbi0+c291cFNlc3Npb24oKSA6IHNlc3Npb25Gcm9tQ29udGV4dChtX2NvbnRl
eHQuZ2V0KCkpOwogfQogCi1SZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCitSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wg
ZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYpCiB7Ci0gICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJl
c291cmNlSGFuZGxlKHNlc3Npb24sIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmKSk7CisgICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJl
c291cmNlSGFuZGxlKHNlc3Npb24sIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikpOwogCiAgICAgaWYg
KG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAg
ICAgIHJldHVybiBXVEZNb3ZlKG5ld0hhbmRsZSk7CkBAIC0xMDMsOCArMTAzLDggQEAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKFNvdXBOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVzb3VyY2VIYW5k
bGU6OlJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29s
IGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQotICAgIDogZChzdGQ6Om1h
a2VfdW5pcXVlPFJlc291cmNlSGFuZGxlSW50ZXJuYWw+KHRoaXMsIG51bGxwdHIsIHJlcXVlc3Qs
IGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRl
bnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5k
bGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYp
CisgICAgOiBkKHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywg
bnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25p
ZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZikpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewog
ICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtNzM4LDcgKzcz
OCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gUmVzb3VyY2VIYW5kbGU6OnJlbGVhc2VGb3JEb3dubG9hZChSZXNvdXJjZUhhbmRsZUNsaWVu
dCogZG93bmxvYWRDbGllbnQpCiB7CiAgICAgLy8gV2UgZG9uJ3QgYWRvcHQgdGhlIHJlZiwgYXMg
aXQgd2lsbCBiZSByZWxlYXNlZCBieSBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24sIHdoaWNo
IHNob3VsZCBhbHdheXMgcnVuLgotICAgIFJlc291cmNlSGFuZGxlKiBuZXdIYW5kbGUgPSBuZXcg
UmVzb3VyY2VIYW5kbGUoZC0+bV9jb250ZXh0LmdldCgpLCBmaXJzdFJlcXVlc3QoKSwgbnVsbHB0
ciwgZC0+bV9kZWZlcnNMb2FkaW5nLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVz
b3VyY2VIYW5kbGUqIG5ld0hhbmRsZSA9IG5ldyBSZXNvdXJjZUhhbmRsZShkLT5tX2NvbnRleHQu
Z2V0KCksIGZpcnN0UmVxdWVzdCgpLCBudWxscHRyLCBkLT5tX2RlZmVyc0xvYWRpbmcsIGQtPm1f
c2hvdWxkQ29udGVudFNuaWZmLCBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICAg
ICBuZXdIYW5kbGUtPnJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwogICAgIHN0ZDo6c3dhcChk
LCBuZXdIYW5kbGUtPmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRl
eCA3OWQ4YzM4YmM3ODE4OWEyM2E3YjBlOGY1MmJiNzgwOWNjZDM1YWIyLi4wOTZmMDU1NWFjMWVl
NDUyYjY0NWEyYmI5Y2VkNTJlMTY1MTU0YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKQEAgLTYxMyw2ICs2MTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgb3B0aW9ucy5pbml0aWF0b3IgPSBjYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzKCkueG1saHR0cHJlcXVlc3Q7CiAgICAgb3B0aW9ucy5zYW1l
T3JpZ2luRGF0YVVSTEZsYWcgPSBTYW1lT3JpZ2luRGF0YVVSTEZsYWc6OlNldDsKICAgICBvcHRp
b25zLmZpbHRlcmluZ1BvbGljeSA9IFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5OjpFbmFibGU7Cisg
ICAgb3B0aW9ucy5zbmlmZkNvbnRlbnRFbmNvZGluZyA9IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5n
UG9saWN5OjpEb05vdFNuaWZmOwogCiAgICAgaWYgKG1fdGltZW91dE1pbGxpc2Vjb25kcykgewog
ICAgICAgICBpZiAoIW1fYXN5bmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggMWVhZmVlZGQ5ZDZjMTgxZjY0MWQ5YzQy
ODI1YmM5YmM1OWNhYjgzMS4uZjYzYWRhZjA4M2M0MTNmN2JkZDNmZjhmN2FlYjdhZmY2OTUxMTMy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmNwcApAQCAtMTEyLDcgKzExMiwxMCBAQCB2b2lkIERvd25sb2FkOjpzdGFydCgpCiB7
CiAgICAgaWYgKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbElzQmxvYigpKSB7CiAgICAgICAgIG1f
ZG93bmxvYWRDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2JEb3dubG9hZENsaWVudD4oKnRo
aXMpOwotICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShu
dWxscHRyLCBtX3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGZhbHNlLCBmYWxzZSk7
CisgICAgICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgICAgICBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmID0gdHJ1ZTsKKyAgICAgICAgbV9yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUobnVsbHB0ciwgbV9yZXF1ZXN0LCBtX2Rvd25sb2FkQ2xpZW50LmdldCgpLCBkZWZl
cnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
KTsKICAgICAgICAgZGlkU3RhcnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyNCw3
ICsxMjcsMTAgQEAgdm9pZCBEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIKIHsKICAgICBpZiAobV9yZXF1ZXN0
LnVybCgpLnByb3RvY29sSXNCbG9iKCkpIHsKICAgICAgICAgbV9kb3dubG9hZENsaWVudCA9IHN0
ZDo6bWFrZV91bmlxdWU8QmxvYkRvd25sb2FkQ2xpZW50PigqdGhpcyk7Ci0gICAgICAgIG1fcmVz
b3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG51bGxwdHIsIG1fcmVxdWVzdCwg
bV9kb3dubG9hZENsaWVudC5nZXQoKSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgYm9vbCBkZWZl
cnNMb2FkaW5nID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gZmFs
c2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPSB0cnVlOworICAg
ICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShudWxscHRyLCBt
X3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGRlZmVyc0xvYWRpbmcsIHNob3VsZENv
bnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogICAgICAgICBkaWRTdGFy
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGJiN2YxNzUxZmZlNGExOWJlNTM4ODNj
ZDVlMWIxYWUzODM4MDI1NTcuLmE2NDJhZTU1ZTI1ZTE4ZmUwMzU2MzRiNTQ4ZDIwZTUxM2RmOGRk
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFz
ay5jcHAKQEAgLTUzLDEwICs1MywxMCBAQCBSZWY8TmV0d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0
YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdAogICAgICAg
ICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFy
YW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0
dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0
ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRl
cnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkpOwor
ICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwg
cGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBw
YXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsKICNlbmRpZgog
I2lmIFVTRShTT1VQKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vz
c2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJldHVybiBO
ZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJl
cXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCBhM2M5NWRkNjNhZGUyNmE5YWEyZjE1
MDhkZGYwZDYzZTJlZDE1ZjA1Li45ZmE1YTczODc1M2FlMTNlYjk3NzM5MGUyYmI0M2YyZWI0NTM2
OTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApA
QCAtMTI1LDcgKzEyNSw3IEBAIE5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENs
aWVudCYgY2xpZW50LCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJhCiAgICAgLCBtX25ldHdv
cmtpbmdDb250ZXh0KFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobV9wYXJhbWV0ZXJz
LnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpKQogICAgICwgbV9jdXJyZW50UmVxdWVzdChtX3BhcmFtZXRlcnMucmVxdWVzdCkK
IHsKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9uZXR3b3JraW5nQ29u
dGV4dC5nZXQoKSwgbV9wYXJhbWV0ZXJzLnJlcXVlc3QsIHRoaXMsIG1fcGFyYW1ldGVycy5kZWZl
cnNMb2FkaW5nLCBtX3BhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID09IFNuaWZmQ29u
dGVudCk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0d29ya2lu
Z0NvbnRleHQuZ2V0KCksIG1fcGFyYW1ldGVycy5yZXF1ZXN0LCB0aGlzLCBtX3BhcmFtZXRlcnMu
ZGVmZXJzTG9hZGluZywgbV9wYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9PSBTbmlm
ZkNvbnRlbnQsIG1fcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9PSBD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYpOwogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5o
CmluZGV4IDI1YWE1MDU4MGRlOWE5OGFjZGMwMjdhODEwN2EyOGVhODkzNDc1NzguLjgzMjc4OTc5
ODhiNjRmZjMyZTQxODNhNTk4MDYzZTRhZjVmY2NiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtNDIsNiArNDIs
NyBAQCBwdWJsaWM6CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEIHsgUEFMOjpTZXNzaW9u
SUQ6OmVtcHR5U2Vzc2lvbklEKCkgfTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdDsKICAgICBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5n
UG9saWN5IHsgV2ViQ29yZTo6U25pZmZDb250ZW50IH07CisgICAgV2ViQ29yZTo6Q29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgeyBXZWJD
b3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsKICAgICBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSB7IFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSB9OwogICAgIFdlYkNvcmU6OkNs
aWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBvbGljeSB7IFdlYkNvcmU6OkNs
aWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzIH07CiAg
ICAgYm9vbCBzaG91bGRGb2xsb3dSZWRpcmVjdHMgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuY3BwCmluZGV4IGU5NjM1NzYyYjY1ZjUzMjQxMmZiZWZkZDExMzc0ZGNkM2E1NDk1ZDAu
LmNkMjE2NTcyZjI1N2QwOTFjMmZkZTNmMjRhZGFkYWZiZWQ3MGNjMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuY3BwCkBAIC03NCw2ICs3NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgfQog
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGNvbnRlbnRTbmlmZmluZ1BvbGljeSk7CisgICAgZW5j
b2Rlci5lbmNvZGVFbnVtKGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5KTsKICAgICBlbmNv
ZGVyLmVuY29kZUVudW0oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogICAgIGVuY29kZXIuZW5j
b2RlRW51bShjbGllbnRDcmVkZW50aWFsUG9saWN5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0o
c2hvdWxkUHJlY29ubmVjdE9ubHkpOwpAQCAtMTQxLDYgKzE0Miw4IEBAIGJvb2wgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdv
cmtSZXNvdXJjCiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuY29udGVudFNu
aWZmaW5nUG9saWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKHJlc3VsdC5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0ocmVzdWx0LmNsaWVudENyZWRlbnRpYWxQb2xpY3kpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCmluZGV4IDY5MTM5NjU4MDI4ZjNkNDI5ZTdjNmU5YWY5
NDVjZTE4ZDY0MzJlZGUuLmFmNjM2NzBjOTE0YTVlZDJiMGIzNzhlODE3ZmVlNTI4MjliMTI5YzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAg
U3BlY3VsYXRpdmVMb2FkOjpTcGVjdWxhdGl2ZUxvYWQoQ2FjaGUmIGNhY2hlLCBjb25zdCBHbG9i
YWxGcmFtZUlEJiBmcmFtZUlELCBjb24KICAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgcGFyYW1ldGVycy5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CiAgICAgcGFyYW1l
dGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBEb05vdFNuaWZmQ29udGVudDsKKyAgICBwYXJh
bWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25p
ZmZpbmdQb2xpY3k6OlNuaWZmOwogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IG1fb3JpZ2luYWxS
ZXF1ZXN0OwogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgbV9uZXR3b3JrTG9hZCA9IHN0
ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCAq
U2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCA3NWZjOTdkZjljMzgxZjUzZGYxMWM3
NGUwNzJjMjJhNDU1ZWIxYjZkLi44ODc1YzljZTlmYzVlMjcxYTUyYjNlODc5MDIyM2IyYTFhODBi
OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC00MSw5ICs0MSw5IEBAIGNsYXNzIE5ldHdvcmtT
ZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBO
ZXR3b3JrRGF0YVRhc2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQorICAg
IHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Np
b24sIGNsaWVudCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRl
bnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxk
UHJlY29ubmVjdE9ubHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0Rh
dGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9u
bHkpKTsKICAgICB9CiAKICAgICB+TmV0d29ya0RhdGFUYXNrQ29jb2EoKTsKQEAgLTcwLDcgKzcw
LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xv
YWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToK
LSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkp
OworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFU
YXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkpOwogCiAgICAgYm9vbCB0
cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbQppbmRleCBkZjY0ZTM5YmU2MTU1Y2RmZTY1MGViMzQxNzEzYmI1NjFmODU3NDc4Li5h
NzU5ZmNjMTZkMThiZWUwNzRjOTQ1NGZhOWUwNTUxZWQxN2JhYjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIGZsb2F0IHRvTlNVUkxTZXNzaW9uVGFza1By
aW9yaXR5KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogICAgIHJldHVy
biBOU1VSTFNlc3Npb25UYXNrUHJpb3JpdHlEZWZhdWx0OwogfQogCi1OZXR3b3JrRGF0YVRhc2tD
b2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kg
c2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQorTmV0d29ya0Rh
dGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5n
UG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVj
dE9ubHkpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlw
ZSAhPSBOb0ZhaWx1cmUpCkBAIC0xMDQsMjQgKzEwNCwyNiBAQCBOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtE
YXRhVAogI2VuZGlmCiAgICAgCiAgICAgTlNVUkxSZXF1ZXN0ICpuc1JlcXVlc3QgPSByZXF1ZXN0
Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpVcGRhdGVIVFRQQm9keSk7Ci0gICAgaWYgKHNob3VsZENv
bnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpEb05vdFNuaWZmQ29udGVudCB8fCB1cmwucHJvdG9jb2xJ
cygiZmlsZSIpKSB7Ci0gICAgICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKm11dGFibGVSZXF1ZXN0
ID0gW1tuc1JlcXVlc3QgbXV0YWJsZUNvcHldIGF1dG9yZWxlYXNlXTsKLSAgICAgICAgW211dGFi
bGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENv
bm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmXTsKLSAgICAgICAgbnNSZXF1ZXN0ID0gbXV0YWJs
ZVJlcXVlc3Q7Ci0gICAgfQogCisgICAgYXV0byBtdXRhYmxlUmVxdWVzdCA9IGFkb3B0TlMoW25z
UmVxdWVzdCBtdXRhYmxlQ29weV0pOworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDIKKyAgICBpZiAoc2hvdWxkQ29udGVudEVuY29k
aW5nU25pZmYgPT0gV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OkRvTm90
U25pZmYpCisgICAgICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChZRVMpIGZvcktl
eTooTlNTdHJpbmcgKilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2tdOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworI2Vu
ZGlmCisgICAgaWYgKHNob3VsZENvbnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpEb05vdFNuaWZmQ29u
dGVudCB8fCB1cmwucHJvdG9jb2xJcygiZmlsZSIpKQorICAgICAgICBbbXV0YWJsZVJlcXVlc3Qg
X3NldFByb3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblBy
b3BlcnR5U2hvdWxkU25pZmZdOwogICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9IHN0YXRpY19jYXN0
PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkpOworICAgIGlmICghY29jb2FT
ZXNzaW9uLm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyLmlzTnVsbCgpKQorICAgICAgICBbbXV0
YWJsZVJlcXVlc3Qgc2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOmNvY29hU2Vzc2lvbi5tX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcl07CisgICAgbnNSZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3Qu
YXV0b3JlbGVhc2UoKTsKKwogICAgIGlmIChzZXNzaW9uLm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
LnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0KSkgewogICAgICAgICBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSA9IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKICAg
ICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5OjpEb05vdFVzZTsKICAgICB9CiAKLSAgICBpZiAoIWNvY29hU2Vzc2lvbi5tX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllci5pc051bGwoKSkgewotICAgICAgICBOU011dGFibGVVUkxS
ZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNSZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVs
ZWFzZV07Ci0gICAgICAgIFttdXRhYmxlUmVxdWVzdCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZp
ZXI6Y29jb2FTZXNzaW9uLm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyXTsKLSAgICAgICAgbnNS
ZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3Q7Ci0gICAgfQotCiAgICAgaWYgKHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsKICAg
ICAgICAgbV90YXNrID0gW2NvY29hU2Vzc2lvbi5tX3Nlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3Jh
Z2UgZGF0YVRhc2tXaXRoUmVxdWVzdDpuc1JlcXVlc3RdOwogICAgICAgICBBU1NFUlQoIWNvY29h
U2Vzc2lvbi5tX2RhdGFUYXNrTWFwV2l0aENyZWRlbnRpYWxzLmNvbnRhaW5zKFttX3Rhc2sgdGFz
a0lkZW50aWZpZXJdKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggZTcyYzFmNjk1ZTdmZGY3N2Y1
N2JmYmM1ZGU4Y2I0ZDEzNzRlYmI5Ny4uNGE3ZTkxNmZiYjY2MmU1NjdjYzg3MGIzMDM1YzQ4NmJl
MTIyYWI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBnRGVmYXVsdFJlYWRCdWZmZXJTaXplID0g
ODE5MjsKIAotTmV0d29ya0RhdGFUYXNrU291cDo6TmV0d29ya0RhdGFUYXNrU291cChOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKK05ldHdvcmtEYXRhVGFza1NvdXA6Ok5ldHdvcmtEYXRhVGFza1NvdXAoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIDogTmV0d29y
a0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QpCiAgICAgLCBtX3Nob3VsZENvbnRlbnRTbmlmZihzaG91bGRDb250ZW50U25pZmYpCiAgICAg
LCBtX3RpbWVvdXRTb3VyY2UoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmV0d29ya0RhdGFUYXNr
U291cDo6dGltZW91dEZpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmgKaW5kZXggMzkwY2Q0OGM5OTFhZDY1NTQ3
MWRiMTc1ODEyNzdhNGQ0OWJiMmJkMy4uZDRlY2Q1YWMwMDZhZjlkYmRjMzIxYTFhZjU1ZGRiMjQw
ZGIxNGU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya0RhdGFUYXNrU291cC5oCkBAIC0zNiwxNSArMzYsMTUgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIE5ldHdvcmtEYXRhVGFza1NvdXAgZmluYWwgOiBwdWJsaWMgTmV0d29y
a0RhdGFUYXNrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3Jl
YXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVu
dCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFU
YXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVu
dCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrU291cChzZXNzaW9uLCBj
bGllbnQsIHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25p
ZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrU291cChzZXNzaW9uLCBjbGllbnQs
IHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KSk7CiAgICAgfQogCiAgICAgfk5ldHdvcmtEYXRhVGFza1NvdXAoKTsKIAogcHJp
dmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tTb3VwKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKKyAgICBOZXR3
b3JrRGF0YVRhc2tTb3VwKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIFdlYkNv
cmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogCiAg
ICAgdm9pZCBzdXNwZW5kKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWwoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcAppbmRleCA0NTA3N2E0MGZhZWUxOWZjNDNiMjRlNmFkYTc5ZTAzMWE5Nzc1ZjY2
Li4xMTQxZDBiZjk3OWUzMzRhM2U3ZGVlNTg2M2Q1NmIwODc2OWMzYmM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
CkBAIC0yNDIsNiArMjQyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2Fk
RnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBMT0coTmV0
d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mg
d2l0aCBwcmlvcml0eSAlZCIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLmxhdGluMSgp
LmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3Jp
dHkoKSkpOwogCiAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGlj
eSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFNuaWZmQ29udGVudCgpID8gU25pZmZDb250ZW50IDog
RG9Ob3RTbmlmZkNvbnRlbnQ7CisgICAgQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgY29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSByZXNvdXJjZUxvYWRlci5zaG91bGRTbmlmZkNv
bnRlbnRFbmNvZGluZygpID8gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIDog
Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OkRvTm90U25pZmY7CiAgICAgU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSByZXNvdXJjZUxvYWRlci5z
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVz
ZSA6IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKIAogICAgIE5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwpAQCAtMjUxLDYgKzI1Miw3IEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNv
dXJjZUxvYWRlciYgcmVzb3VyY2VMCiAgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2Vi
UGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2Fk
UGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBjb250ZW50U25pZmZpbmdQb2xpY3k7
CisgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBjb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIC8vIElmIHRoZXJl
IGlzIG5vIFdlYkZyYW1lIHRoZW4gdGhpcyByZXNvdXJjZSBjYW5ub3QgYmUgYXV0aGVudGljYXRl
ZCB3aXRoIHRoZSBjbGllbnQuCiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBv
bGljeSA9ICh3ZWJGcmFtZSAmJiB3ZWJQYWdlICYmIHJlc291cmNlTG9hZGVyLmlzQWxsb3dlZFRv
QXNrVXNlckZvckNyZWRlbnRpYWxzKCkpID8gQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5QXNr
Q2xpZW50Rm9yQ3JlZGVudGlhbHMgOiBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tD
bGllbnRGb3JDcmVkZW50aWFsczsKQEAgLTQwNSw2ICs0MDcsNyBAQCB2b2lkIFdlYkxvYWRlclN0
cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0LCB1bgogICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdl
LT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAg
bG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29u
dGVudFNuaWZmaW5nUG9saWN5ID0gU25pZmZDb250ZW50OworICAgIGxvYWRQYXJhbWV0ZXJzLmNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xp
Y3k6OlNuaWZmOwogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0g
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVu
dGlhbFBvbGljeSA9IGNsaWVudENyZWRlbnRpYWxQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMu
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IGNvbnRleHQtPnNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZjBkYzU5NTYy
NjAxYTYyZDIyMjE1NTYzMTYwMmNkMGU0ZTEzMWNhLi5hMmRkMzg2NzRkYzc4NzJhNzZlNmQ2MjE0
OGEyN2U4YWU5MWY5NDJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAKIDIwMTctMTAtMjcgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0IHNo
b3VsZCBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NTk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
MzgyMjI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGaXggdXAgdGhlIHRlc3QgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQt
dHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwgdG8KKyAgICAgICAgYWN0dWFsbHkgY2hlY2sg
dGhhdCB3ZSBkbyBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZy4gQ0ZOZXR3b3JrIG9ubHkgc25p
ZmZzIHRoZSBVUkwKKyAgICAgICAgZm9yIHRoZSBjb250ZW50IGVuY29kaW5nIHdoZW4gdGhlIGZp
bGVuYW1lIGVuZHMgd2l0aCBrbm93biBmaWxlIGV4dGVuc2lvbiAoZS5nLiAuZ3opCisgICAgICAg
IGFuZCB0aGUgSFRUUCByZXNwb25zZSBkb2VzIG5vdCBzcGVjaWZ5aW5nIGEgQ29udGVudC1FbmNv
ZGluZyBIVFRQIGhlYWRlci4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhl
IHRlc3Qgb24gYWxsIHBsYXRmb3Jtcy4gT25jZSA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+IHNo
aXBzCisgICAgICAgIHRoZW4gd2Ugd2lsbCBlbmFibGUgdGhlIHRlc3Qgb24gYWxsIHBsYXRmb3Jt
cyB0aGF0IHVzZSBDRk5ldHdvcmsuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNv
bnRlbnQtZW5jb2RpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy8uaHRhY2Nlc3M6IEludGVycHJldCBmaWxlcyB3aXRoIC5waHAuZ3ogZXh0ZW5z
aW9uIGFzIFBIUCBmaWxlcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1s
b3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9uczogU2tpcCB0aGUgdGVzdCBmb3Igbm93IHVudGlsIDxyZGFyOi8vcHJvYmxl
bS8zMzgyMjI0OT4gc2hpcHMuCisKKzIwMTctMTAtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNA
YXBwbGUuY29tPgorCiAgICAgICAgIE9ubHkgYWxsb3cgbm9uLW1peGVkIGNvbnRlbnQgcHJvdGVj
dGVkIHN1YnJlc291cmNlcyB0byBhc2sgZm9yIGNyZWRlbnRpYWxzCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5MTkKICAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM1MDE1MjQ1PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTI2NWM4ODU4NGM3YjMxN2M1
Y2VkNGE0OTJlMjJjZDYwNWI1NWQwZi4uODkzNWZiNDExZGM3NDg4NGRiY2I3YmQ1YzczODhmMjk3
YzA2NzE2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTMsNiArMjEzLDkgQEAgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvZ2VuZXJhbC5hbnkud29ya2Vy
Lmh0bWwgWyBTa2lwIF0KICMgTm90IHN1cHBvcnRlZAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoIFsgU2tpcCBdCiAKKyMgQ29udGVudCBlbmNvZGluZyBz
bmlmZmluZyBpcyBvbmx5IHN1cHBvcnRlZCBieSBDRk5ldHdvcmsuCitodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbCBbIFNr
aXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9y
bS1zcGVjaWZpYyB0ZXN0cy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAg
LTE0OTMsOCArMTQ5Niw2IEBAIHdlYmtpdC5vcmcvYi8xNzUyODggaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvb3V0bGluZS0wMTYuaHRtCiB3ZWJraXQub3JnL2Iv
MTc1Mjg4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS0zL291dGxp
bmUtMDE5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNzUyOTAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0w
MDUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTc1NTk3IGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGlu
Zy5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xNzE5NDUgcGVyZi9jbGFzcy1saXN0
LXJlbW92ZS5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTc2
MTgzIGZhc3QvYmxvY2svaW5zaWRlLWlubGluZXMvb3BhY2l0eS1vbi1pbmxpbmUuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50
LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy1leHBlY3RlZC50eHQKaW5kZXggODZkNTFkZjk1OTNi
MjU0YmJmYTA3NWVmYTNhNmM1MDBkNjY0OTQxMS4uNzRmOTFhODhlOWUwNTQyZmM4Y2I5MjQxYmU4
OTA5ZjMxZjg1ZGI0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVu
dC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAog
VGVzdCB0aGF0IGFuIFhNTEh0dHBSZXF1ZXN0IHdpdGggQ29udGVudC1UeXBlOiBnemlwIGlzIHBy
b3Blcmx5IHVuY29tcHJlc3NlZC4KIAogQ29udGVudCBUeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KLUNvbnRlbnQgRW5jb2Rpbmc6IG51bGwKK0NvbnRlbnQgRW5jb2Rpbmc6IGd6aXAKIENv
bnRlbnQgTGVuZ3RoOiAyODIKIFJFU1BPTlNFIDIwMDogW29iamVjdCBBcnJheUJ1ZmZlcl0KIExF
TkdUSDogNDQ1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVu
dC1lbmNvZGluZy5odG1sCmluZGV4IDhhZTU1NDk3MjE3MjY4YWVkOWNiZjU1MDU5MmUyODFhYjE0
NGRiZDMuLjc5MjYyODc3ZWM0ODY3Mjg1YjcxM2U3YzZhMzkzMTIyODc0NDgwNDUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5
cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1s
CkBAIC0xNiw3ICsxNiw3IEBAIGNvbnN0IGxvZyA9IHRleHQgPT4gewogfTsKIAogY29uc3QgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci14aHIub3BlbignR0VUJywgJ3Jlc291cmNlcy9nemlw
LWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwJyk7Cit4aHIub3BlbignR0VUJywgJ3Jlc291
cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6Jyk7CiB4aHIucmVzcG9u
c2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKIHhoci5vbmVycm9yID0gZSA9PiBsb2coYEZBSUxFRDog
JHt4aHIuc3RhdHVzfSAke3hoci5zdGF0dXNUZXh0fWApOwogeGhyLm9ucmVhZHlzdGF0ZWNoYW5n
ZSA9ICgpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzLy5odGFjY2VzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzLy5odGFjY2VzcwppbmRleCA5Mjc3OTQwMWU3ZDVlOWVkNjQ1YTA4
OTQ2YTVlNGFkYjkyY2EwNTRlLi4wMjUyNjA3M2VlNjY3MmVkMzBlZTY5YjRiMWJlNGNiYjJlNGEz
MjY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy8uaHRhY2Nlc3MKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvLmh0YWNjZXNzCkBAIC0xMCwzICsxMCw1IEBAIEFkZENoYXJzZXQgd2lu
ZG93cy0xMjUxIC54bWwKIDxGaWxlcyAibm9Db250ZW50VHlwZS5hc2lzIj4KIERlZmF1bHRUeXBl
IE5vbmUKIDwvRmlsZXM+CisKK0FkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1waHAgLnBocC5n
egpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1l
bmNvZGluZy5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkYWIyMjNhYTEwZTE1
ZmRkOGQ3ZWFmMmM2MzdiOTBjMTM5NDRkN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocAorKysgL2Rldi9udWxs
CkBAIC0xLDggKzAsMCBAQAotPD9waHAKLSR0ZXh0ID0gIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBh
bWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBp
bmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1p
bmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlz
aSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9s
b3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3Jl
IGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRh
dGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xs
aXQgYW5pbSBpZCBlc3QgbGFib3J1bS4iOwotJGd6aXBUZXh0ID0gZ3plbmNvZGUoJHRleHQsIDYp
OwotCi1oZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7Ci0K
LWVjaG8gJGd6aXBUZXh0OwotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5w
aHAuZ3ogYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9n
emlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYWIyMjNh
YTEwZTE1ZmRkOGQ3ZWFmMmM2MzdiOTBjMTM5NDRkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5v
LWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6CkBAIC0wLDAgKzEsOCBAQAorPD9waHAKKyR0ZXh0ID0g
IkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQs
IHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFn
bmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRh
dGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2Vx
dWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUg
dmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0
ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBx
dWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4iOworJGd6aXBU
ZXh0ID0gZ3plbmNvZGUoJHRleHQsIDYpOworCitoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGlj
YXRpb24vb2N0ZXQtc3RyZWFtIik7CisKK2VjaG8gJGd6aXBUZXh0OworPz4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDFlNTE1NWZmODFjY2M0OTUzNWZj
NDRiNjg2ZTBhMDQwODk5NTliNS4uYjc1YjM0ODJlYjE4NjMyYzRlMWJhNzE5ZTYzMzgyOTQzZmJi
NGNlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMx
LDYgKzMxLDkgQEAgZmFzdC9ldmVudHMvZG8tbm90LWRyYWctYW5kLWRyb3AtZGF0YS1kZXRlY3Rv
cnMtbGluay5odG1sIFsgUGFzcyBdCiAKIGZhc3QveG1saHR0cHJlcXVlc3Qvc2V0LWRhbmdlcm91
cy1oZWFkZXJzLWluLWRhc2hib2FyZC5odG1sIFsgUGFzcyBdCiAKKyMgRklYTUU6IFVuc2tpcCB0
aGlzIHRlc3Qgb25jZSB0aGUgZml4IGZvciA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+IHNoaXBz
LgoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50
LWVuY29kaW5nLmh0bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogIyBFbmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325247</attachid>
            <date>2017-10-27 22:42:45 -0700</date>
            <delta_ts>2017-10-27 22:54:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175597-20171027224244.patch</filename>
            <type>text/plain</type>
            <size>63084</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhMmI0M2IzM2YzZWYw
MzFjMzAzZjE2NDc4Yzk2MzM0ZGU2ZGE5Ni4uYzhmNWU2ZmQ3NDQ3NjhmMGUxZWQ5MjUxYzc4YTU5
NjRiYjZhNjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDE3LTEwLTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBz
aG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3Nv
Y2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3QgdG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBi
ZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVjb21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNl
IG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5nIEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZp
Y2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3VsZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJl
c3BvbnNlIHdpdGggaGVhZGVycworICAgICAgICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9n
emlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2Vz
IG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBIVFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMg
WmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdh
cmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+LgorCisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0
IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1
ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAgIHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVu
dCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3RoZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxs
IGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2VxdWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWln
aHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUgYnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
OjpzaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOiBFbmFibGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVz
b3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRsZSk6IERpdHRvLiBXZSBzaG91bGQgbG9vayB0
byBkaXNhYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4KKyAgICAgICAgYSBzdWJzZXF1
ZW50IGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOiBNb2RpZmllZCB0
byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29kaW5n
IHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCk6IE1vZGlmaWVkIHRvIHRha2UgYSBib29sZWFuIGFzIHRvIHdo
ZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQKKyAgICAgICAgZW5jb2Rpbmcgc25pZmZpbmcuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOiBNb2Rp
ZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0aGUgQ0ZN
dXRhYmxlVVJMUmVxdWVzdFJlZiBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4y
LgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlv
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24p
OiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250
ZW50IGVuY29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0
aGUgTlNNdXRhYmxlVVJMUmVxdWVzdCBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4x
My4yLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhh
dmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOiBNb2RpZmll
ZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29k
aW5nIHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNl
SGFuZGxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cmVsZWFz
ZUZvckRvd25sb2FkKTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiB4
bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OmNyZWF0ZVJlcXVlc3QpOiBEbyBub3QgZW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcg
Zm9yIHRoZSByZXF1ZXN0LgorCisyMDE3LTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKwogICAgICAgICBPbmx5IGFsbG93IG5vbi1taXhlZCBjb250ZW50IHByb3RlY3Rl
ZCBzdWJyZXNvdXJjZXMgdG8gYXNrIGZvciBjcmVkZW50aWFscwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4OTE5CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNTAxNTI0NT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDQ0OWIxZGRhYTY5Zjc2MTI4ODVi
MWY4NDkzM2Q5YTQ1MDkwNzI1MmEuLjYzMzdmNGVhZThkMDY0YTIxZWI5NjRkNGY3NmViMjM3ZGIw
MDZlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEwLTI3ICBE
YW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBYTUxIdHRwUmVxdWVz
dCBzaG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRm9yd2FyZCBkZWNsYXJlIENGTmV0d29yayBTUEkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oOgorCiAyMDE3LTEwLTI0ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBXZWJLaXQg
bG9nZ2luZyBjb25maWd1cmF0aW9uIGFuZCBkaXNwbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzZWVhN2Q0ZjFl
NzA2NGY3ZmYwYzdhZDI4Y2JkM2UzMTYyNTRlMzQuLmY3MzdlMTEzZTY4ODBkMzk1ZDk3MGJmYTU5
N2U4MTAxYTZjYmM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDkgQEAKIDIwMTctMTAtMjcgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0
IHNob3VsZCBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NTk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMzgyMjI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSB0aGUgYm9keSBvZiBhbiBIVFRQIHJlc3BvbnNlIGFz
c29jaWF0ZWQgd2l0aCBhbiBYSFIgcmVxdWVzdCB0byBhIC5neiBmaWxlCisgICAgICAgIHdvdWxk
IGJlIGF1dG9tYXRpY2FsbHkgZ3ppcHBlZCBkZWNvbXByZXNzZWQgaWYgdGhlIEhUVFAgcmVzcG9u
c2Ugb21pdHRlZCBhIENvbnRlbnQtRW5jb2RpbmcgSFRUUAorICAgICAgICBoZWFkZXIuIFNwZWNp
ZmljYWxseSwgc3VjaCBhIHJlc3BvbnNlIHdvdWxkIGJlIHRyZWF0ZWQgYW5hbG9nb3VzIHRvIGEg
cmVzcG9uc2Ugd2l0aCBoZWFkZXJzCisgICAgICAgICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L2d6aXAiIGFuZCAiQ29udGVudC1FbmNvZGluZzogaWRlbnRpdHkiLiBUaGlzIGJlaGF2aW9yIGRv
ZXMgbm90IGNvbmZvcm0KKyAgICAgICAgdGhlIEhUVFAgMS4xIHNwZWMuIGFuZCBicmVha3MgRXBp
YyBaZW4gR2FyZGVuLCA8aHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL21vemlsbGEtZ2FtZXMvWmVu
R2FyZGVuL0VwaWNaZW5HYXJkZW4uaHRtbD4uCisKKyAgICAgICAgT24gbWFjT1MgMTAuMTMuMiBv
cHQgb3V0IG9mIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgd2hlbiBtYWtpbmcgYW4gWEhSIHJl
cXVlc3QuIFdlIGxpa2VseSBjYW4KKyAgICAgICAgc2VsZWN0aXZlbHkgb3B0IG91dCBvZiBjb250
ZW50IGVuY29kaW5nIHNuaWZmaW5nIGZvciBvdGhlciBuZXR3b3JrIHJlcXVlc3RzLiBUaGlzIHdp
bGwgYmUgZG9uZQorICAgICAgICBpbiBzdWJzZXF1ZW50IGNvbW1pdHMgdG8gbWFrZSBpdCBzdHJh
aWdodGZvcndhcmQgdG8gaWRlbnRpZnkgc2l0ZSBicmVha2FnZSAoaWYgYW55KS4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRvd25sb2FkOjpzdGFydCk6IEVuYWJsZSBjb250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1h
dGNoIGV4aXN0aW5nIGJlaGF2aW9yLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnRX
aXRoSGFuZGxlKTogRGl0dG8uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOiBQYXNz
IHRocm91Z2ggdGhlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5LgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0xvYWQ6Ok5ldHdvcmtMb2FkKTogRGl0dG8uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KTogRW5jb2RlIGNvbnRlbnQgZW5jb2Rpbmcg
c25pZmZpbmcgcG9saWN5LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVyczo6ZGVjb2RlKTogRGVjb2RlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
TG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2Fk
OjpTcGVjdWxhdGl2ZUxvYWQpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRj
aCBleGlzdGluZworICAgICAgICBiZWhhdmlvci4gV2Ugc2hvdWxkIGxvb2sgdG8gZGlzYWJsZSBj
b250ZW50IGVuY29kaW5nIHNuaWZmaW5nIGluIGEgc3Vic2VxdWVudCBjaGFuZ2UuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKTogTW9k
aWZpZWQgdG8gdGFrZSB0aGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZworICAgICAgICBwb2xp
Y3kgYW5kIGFwcGx5IGl0IHRvIHRoZSBOU011dGFibGVVUkxSZXF1ZXN0IG9iamVjdCB3aGVuIGJ1
aWxkaW5nIG9uIG1hY09TIDEwLjEzLjIuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
U291cDo6TmV0d29ya0RhdGFUYXNrU291cCk6IFBhc3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrRGF0YVRhc2tTb3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVk
dWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6IFBhc3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KTogRW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25p
ZmYgdG8gbWF0Y2ggZXhpc3RpbmcKKyAgICAgICAgYmVoYXZpb3IuCisKKzIwMTctMTAtMjcgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCiAgICAgICAgIE9ubHkgYWxsb3cgbm9u
LW1peGVkIGNvbnRlbnQgcHJvdGVjdGVkIHN1YnJlc291cmNlcyB0byBhc2sgZm9yIGNyZWRlbnRp
YWxzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5
MTkKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MDE1MjQ1PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAppbmRleCBkZjM5YjhiZDQ2YWZhZTA0M2U4NDA4
MzZhMzA4MDc5ODAzNzE4NmY2Li4wYWNjODlmYmY5YjY0NTE2OTY1NjcxYTk2ODFlYWI5MTZhNjEw
NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtT
UEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaApA
QCAtMjA4LDYgKzIwOCwxMCBAQCBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTENhY2hl
UGFydGl0aW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDb25uZWN0aW9u
UHJvcGVydHlTaG91bGRTbmlmZjsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGVVJMU3Rv
cmFnZVNlc3Npb25Jc1ByaXZhdGU7CiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAyCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NGVVJMUmVxdWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrOworI2VuZGlmCisKIENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYgX0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZhdWx0KENGQWxsb2Nh
dG9yUmVmKTsKIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0
ZUZyb21GaWxlKENGQWxsb2NhdG9yUmVmLCBDRlVSTFJlZiwgQ0ZIVFRQQ29va2llU3RvcmFnZVJl
Zik7CiB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VTY2hlZHVsZVdpdGhSdW5Mb29wKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYsIENGUnVuTG9vcFJlZiwgQ0ZTdHJpbmdSZWYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTkyMTQyN2E0OTkzOTI1OWY1ZTQ0YWY1
OWM3ZWMzNWFhMWEyMWM5Ny4uZjkxOTk4M2Q4MjE2N2YyMjJiNGQ5N2FlM2Y1Y2E0ZGI0MzA5OTRh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yMTYsNyAr
MjE2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGZyYW1lTG9hZGVy
KCktPm5ldHdvcmtpbmdDb250ZXh0KCksIG1fcmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5n
LCBtX29wdGlvbnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudCk7CisgICAgbV9oYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGZyYW1lTG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0
KCksIG1fcmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX29wdGlvbnMuc25pZmZDb250
ZW50ID09IFNuaWZmQ29udGVudCwgbV9vcHRpb25zLnNuaWZmQ29udGVudEVuY29kaW5nID09IENv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7CiB9CiAKIHZvaWQgUmVzb3VyY2VM
b2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCmluZGV4IGY0YzlhNDU3N2U3ZTRkZDljNjFjZmUyYjcyYzcwYzhmNzFm
ZWYwOGUuLmJhYzhhY2E4MGVlMDhlNTQ1ZTExOTVkMDhkOWYzYTQ3ZTFjNmYyNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0xMjMsNiArMTIzLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzOyB9CiAgICAg
dm9pZCBzZXRTZW5kQ2FsbGJhY2tQb2xpY3koU2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2Fs
bGJhY2tzKSB7IG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IHNlbmRMb2FkQ2FsbGJhY2tz
OyB9CiAgICAgYm9vbCBzaG91bGRTbmlmZkNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudDsgfQorICAgIGJvb2wgc2hvdWxkU25pZmZD
b250ZW50RW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc25pZmZDb250ZW50RW5j
b2RpbmcgPT0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscygpIGNvbnN0
OwogICAgIGJvb2wgc2hvdWxkSW5jbHVkZUNlcnRpZmljYXRlSW5mbygpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9ucy5jZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgPT0gSW5jbHVkZUNlcnRpZmljYXRlSW5m
bzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJP
cHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgK
aW5kZXggNWM1YTBkNDI3YjRlOTk2MGJiN2M1YzdkMWYxZmFjZTU5YTQ0NTRiYS4uNjU3NGIzNzgx
NWI2Y2ZhNzgxNmJjMThiNjY1MThmNGY3NTg2MzUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaApAQCAtOTcsNiArOTcsMTEgQEAgZW51bSBjbGFz
cyBTZXJ2aWNlV29ya2Vyc01vZGUgewogICAgIE5vbmUsCiB9OwogCitlbnVtIGNsYXNzIENvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHsKKyAgICBTbmlmZiwKKyAgICBEb05vdFNuaWZmLAor
fTsKKwogc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMg
ewogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucygpIHsgfQogCkBAIC0xMjAsNiArMTI1LDcgQEAg
c3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewogCiAg
ICAgU2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2FsbGJhY2tzIHsgRG9Ob3RTZW5kQ2FsbGJh
Y2tzIH07CiAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudCB7IERvTm90U25p
ZmZDb250ZW50IH07CisgICAgQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc25pZmZDb250
ZW50RW5jb2RpbmcgeyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsKICAg
ICBEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xpY3kgeyBCdWZmZXJEYXRhIH07
CiAgICAgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeyBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgfTsKICAgICBTZWN1cml0eUNoZWNrUG9s
aWN5IHNlY3VyaXR5Q2hlY2sgeyBEb1NlY3VyaXR5Q2hlY2sgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5k
ZXggZWUyNWY5ZjM2YjU2NDczYjRmNmE5NTc5YzgxMjJjNTA1NmZlYzI1ZC4uMWVlMWQ2MTYzZmRk
YjNhNDNiNjE3NDQwNTQzZmZmNzZkM2FiZGIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTQ3NSw3
ICs0NzUsMTAgQEAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmNyZWF0ZVJlc291cmNlSGFuZGxlKGNvbnN0IFVSTCYgdXIKICAgICAgICAgfQogICAgIH0KIAot
ICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShtX2ZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBm
YWxzZSwgdHJ1ZSk7CisgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CisgICAgYm9vbCBz
aG91bGRDb250ZW50U25pZmYgPSB0cnVlOworICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYgPSB0cnVlOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCBy
ZXF1ZXN0LCB0aGlzLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgIC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9u
bHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGlyZWN0cywgd2UgaW5pdGlhbGl6ZQogICAgIC8vIHRo
ZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5j
cHAKaW5kZXggNjEyOTY5ZjA0YTdlYWVlZTJkMTVlOThiNzRlYjcwZTlhNTIyYjc4NS4uZGM4ZGQ0
NTNiMjkyOTVlMzQ4ZjQ5ODUwOWNkN2M3M2UyYjAxYmJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcApAQCAtMTMz
LDkgKzEzMyw5IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KEJsb2JEYXRhKiBibG9iRGF0YSwgY29uc3QgUmVzCiB9CiAKIEJsb2JSZXNvdXJjZUhh
bmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKEJsb2JEYXRhKiBibG9iRGF0YSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGFz
eW5jKQotICAgIDogUmVzb3VyY2VIYW5kbGUobnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSwgZmFsc2UpCi0gICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQotICAgICwgbV9hc3luYyhhc3lu
YykKKyAgICA6IFJlc291cmNlSGFuZGxlIHsgbnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSAvKiBkZWZlcnNMb2FkaW5nICovLCBmYWxzZSAvKiBzaG91bGRDb250ZW50U25pZmYgKi8sIHRy
dWUgLyogc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgKi8gfQorICAgICwgbV9ibG9iRGF0YSB7
IGJsb2JEYXRhIH0KKyAgICAsIG1fYXN5bmMgeyBhc3luYyB9CiB7CiAgICAgaWYgKG1fYXN5bmMp
CiAgICAgICAgIG1fYXN5bmNTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPEFzeW5jRmlsZVN0cmVh
bT4oKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
aW5nSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUu
aAppbmRleCBiZWI5YzVhY2E3ODNlNzAwNTY4ZTExODc2OWRkZWIxMTdiZDgwZWU5Li5hODhjYmEz
NTM0OTE4MmMyZGUxYTE5OGZjNTNiZTQ3NTg2ZDMxOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaApAQCAtNTIsNyArNTIsMTAgQEAgcHVibGljOgog
ICAgICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKHVzZUFzeW5jQ2FsbGJhY2tzKQogICAgICAg
ICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCiAgICAg
ewotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobmV0d29ya2luZ0Nv
bnRleHQsIHJlcXVlc3QsIHRoaXMsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIGJvb2wgZGVmZXJz
TG9hZGluZyA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IGZhbHNl
OworICAgICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICAg
ICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtpbmdDb250ZXh0LCBy
ZXF1ZXN0LCB0aGlzLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgICAgICAvLyBJZiB0aGUgc2VydmVyIG5ldmVyIHJl
c3BvbmRzLCB0aGlzIG9iamVjdCB3aWxsIGhhbmcgYXJvdW5kIGZvcmV2ZXIuCiAgICAgICAgIC8v
IFNldCBhIHZlcnkgZ2VuZXJvdXMgdGltZW91dCwganVzdCBpbiBjYXNlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCBiZWJj
Zjg4ZGJiY2U0ZDFkMWJlMGQxNTM0NGU0M2YwNmU3OGI3ZjUwLi42ZDUxYzJlNzg5MThmNTUyMzg0
NTQyZTZiNDY5ZWZjMDI2YmYyOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNzIsOCArNzIsOCBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpyZWdpc3RlckJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcihjb25zdCBBdG9taWNT
dHJpbmcmIHByb3RvYwogICAgIGJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVy
TWFwKCkuYWRkKHByb3RvY29sLCBsb2FkZXIpOwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVzb3Vy
Y2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKLSAgICA6IGQoc3RkOjptYWtlX3VuaXF1ZTxS
ZXNvdXJjZUhhbmRsZUludGVybmFsPih0aGlzLCBjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRl
ZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwo
cmVxdWVzdC51cmwoKSkpKQorUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291
cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRD
b250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAgOiBkKHN0
ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywgY29udGV4dCwgcmVx
dWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxk
Q29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZikpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewogICAgICAgICBzY2hl
ZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtODYsMTIgKzg2LDEyIEBAIFJlc291
cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0CiAgICAgfQogfQogCi1SZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9v
bCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKK1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQogewogICAgIGlmIChhdXRvIGNvbnN0cnVjdG9y
ID0gYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5nZXQocmVxdWVzdC51cmwo
KS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCiAgICAgICAgIHJldHVybiBj
b25zdHJ1Y3RvcihyZXF1ZXN0LCBjbGllbnQpOwogCi0gICAgYXV0byBuZXdIYW5kbGUgPSBhZG9w
dFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJz
TG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CisgICAgYXV0byBuZXdIYW5kbGUgPSBhZG9w
dFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJz
TG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikp
OwogCiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0Zh
aWx1cmUpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0hhbmRsZSk7CkBAIC0yMTAsNiArMjEw
LDExIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRTbmlmZigpIGNvbnN0CiAg
ICAgcmV0dXJuIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmOwogfQogCitib29sIFJlc291cmNlSGFu
ZGxlOjpzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQt
Pm1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmY7Cit9CisKIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnNob3VsZENvbnRlbnRTbmlmZlVSTChjb25zdCBVUkwmIHVybCkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaAppbmRleCA5ZTc5NmYxMmFhMjM3OTI5OGZmMzBiNWFjYzdlNzI0YWYzZmQ3Mzg2Li4wM2Ji
ODFjNDFkZTYyOTBhZTI4OTk2MTUzMzRjNmQ5MmNhYzEyNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC05MiwxMSArOTIsMTEg
QEAgY2xhc3MgVGltZXI7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlIDogcHVibGljIFJlZkNvdW50
ZWQ8UmVzb3VyY2VIYW5kbGU+LCBwdWJsaWMgQXV0aGVudGljYXRpb25DbGllbnQgewogcHVibGlj
OgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0
ZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRl
KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBi
b29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsKIAogI2lmIFVTRShT
T1VQKQotICAgIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShTb3VwTmV0d29y
a1Nlc3Npb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCos
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIHN0YXRp
YyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYpOwogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5SZXNvdXJjZUhh
bmRsZSgpOwpAQCAtMTY0LDYgKzE2NCw4IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENvbnRl
bnRTbmlmZigpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIHNob3VsZENvbnRlbnRTbmlmZlVSTChj
b25zdCBVUkwmKTsKIAorICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSBjb25z
dDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGZvcmNlQ29udGVudFNuaWZmaW5n
KCk7CiAKICNpZiBVU0UoQ1VSTCkgfHwgVVNFKFNPVVApCkBAIC0yMzUsNyArMjM3LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQnVpbHRpblN5bmNocm9ub3VzTG9hZGVyKGNv
bnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2wsIEJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcik7CiAK
IHByb3RlY3RlZDoKLSAgICBSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVzb3VyY2VIYW5kbGUoTmV0d29y
a2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogCiAgICAgYm9vbCB1c2VzQXN5bmNDYWxsYmFja3Mo
KSBjb25zdDsKIApAQCAtMjQ3LDcgKzI0OSw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogI2lmIFVT
RShTT1VQKQotICAgIFJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVzb3VyY2VIYW5kbGUoU291cE5ldHdv
cmtTZXNzaW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQq
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICNlbmRpZgogCiAgICAgdm9pZCBwbGF0Zm9ybVNldERl
ZmVyc0xvYWRpbmcoYm9vbCk7CkBAIC0yNjcsMTUgKzI2OSwxNSBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIHZvaWQgY3JlYXRlQ0ZVUkxDb25uZWN0
aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVz
KTsKKyAgICB2b2lkIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJv
cGVydGllcyk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVVTRShDRlVSTENPTk5F
Q1RJT04pCi0gICAgdm9pZCBjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hl
ZHVsaW5nQmVoYXZpb3IpOworICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVn
YXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9y
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhVVNFKENGVVJMQ09OTkVDVElPTikK
LSAgICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdC
ZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpjb25uZWN0aW9uUHJvcGVydGllcyk7CisgICAgdm9pZCBj
cmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29ubmVjdGlvblBy
b3BlcnRpZXMpOwogI2VuZGlmCiAKICNpZiBVU0UoU09VUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXgg
M2I3MTQ0YjU4NGE1NzE5Mzk0Njc1ZDljOTI5Yzc2NzU4OTQ1NGZmYS4uNWJiNzQ1YjQ0YTgyMmRk
ODViMzk1MDhmNDkxZjQ5YjY4NDcyODU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTcyLDcgKzcy
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwo
UmVzb3VyY2VIYW5kbGUqIGxvYWRlciwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwg
Ym9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKKyAgICBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCiAgICAgICAgIDogbV9jb250ZXh0
KGNvbnRleHQpCiAgICAgICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICAgICAsIG1fZmlyc3RS
ZXF1ZXN0KHJlcXVlc3QpCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3Bh
cnRpdGlvbihyZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCkpCiAgICAgICAgICwgbV9kZWZlcnNMb2Fk
aW5nKGRlZmVyc0xvYWRpbmcpCiAgICAgICAgICwgbV9zaG91bGRDb250ZW50U25pZmYoc2hvdWxk
Q29udGVudFNuaWZmKQorICAgICAgICAsIG1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgeyBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiB9CiAgICAgICAgICwgbV91c2VzQXN5bmNDYWxsYmFj
a3MoY2xpZW50ICYmIGNsaWVudC0+dXNlc0FzeW5jQ2FsbGJhY2tzKCkpCiAjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICAgICAgLCBtX2N1cnJlbnRSZXF1ZXN0KHJlcXVlc3QpCkBAIC0xMTUs
NiArMTE2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgYm9v
bCBtX3Nob3VsZENvbnRlbnRTbmlmZjsKKyAgICBib29sIG1fc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmY7CiAgICAgYm9vbCBtX3VzZXNBc3luY0NhbGxiYWNrczsKICNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQogICAgIFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+IG1fY29ubmVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDYzZmNlOGIzZjhmZmI5YTNiNWE4NDEyYTQ0ZmQ1ODQx
NGViY2RjZWMuLmZkMmJhNmJlMzc0YTQ4NDBlMTYzMzgzMjk5N2NmZWQwZDQ5ODkyMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGTmV0LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBpbmxpbmUgQ0ZTdHJp
bmdSZWYgc2hvdWxkU25pZmZDb25uZWN0aW9uUHJvcGVydHkoKQogI2VuZGlmCiB9CiAKLXZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9y
IHNjaGVkdWxpbmdCZWhhdmlvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVudFByb3BlcnRpZXMpCit2
b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29u
dGVudEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5nQmVoYXZpb3Is
IENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVzKQogewogICAgIGlmICgoIWQtPm1fdXNl
ci5pc0VtcHR5KCkgfHwgIWQtPm1fcGFzcy5pc0VtcHR5KCkpICYmICFmaXJzdFJlcXVlc3QoKS51
cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAgICAgLy8gQ3JlZGVudGlhbHMg
Zm9yIGZ0cCBjYW4gb25seSBiZSBwYXNzZWQgaW4gVVJMLCB0aGUgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlIGRlbGVnYXRlIGNhbGwgd29uJ3QgYmUgbWFkZS4KQEAgLTE2MSw3ICsx
NjEsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBhdXRvIHJlcXVlc3QgPSBhZG9w
dENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGZp
cnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSkpKTsKICAgICBpZiAoYXV0
byBzdG9yYWdlU2Vzc2lvbiA9IGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCkpCiAgICAgICAgIF9D
RlVSTFJlcXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihyZXF1ZXN0LmdldCgpLCBzdG9yYWdlU2Vzc2lv
bik7Ci0gICAgCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMzAyCisgICAgaWYgKCFzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikK
KyAgICAgICAgX0NGVVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkocmVxdWVzdC5nZXQoKSwg
a0NGVVJMUmVxdWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrLCBrQ0ZCb29sZWFuVHJ1ZSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7Cisj
ZW5kaWYKKwogICAgIGlmICghc2hvdWxkQ29udGVudFNuaWZmKQogICAgICAgICBfQ0ZVUkxSZXF1
ZXN0U2V0UHJvdG9jb2xQcm9wZXJ0eShyZXF1ZXN0LmdldCgpLCBzaG91bGRTbmlmZkNvbm5lY3Rp
b25Qcm9wZXJ0eSgpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCkBAIC0yNzcsNyArMjg0LDcgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogCiAgICAgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVk
dWxpbmdCZWhhdmlvciA9IGNsaWVudCgpLT5sb2FkaW5nU3luY2hyb25vdXNYSFIoKSA/IFNjaGVk
dWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMgOiBTY2hlZHVsaW5nQmVoYXZpb3I6OkFzeW5jaHJv
bm91czsKIAotICAgIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSwgZC0+bV9zaG91bGRDb250ZW50U25pZmYsIHNjaGVkdWxpbmdCZWhhdmlvciwgY2xpZW50
KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKHRoaXMpLmdldCgpKTsKKyAgICBjcmVhdGVDRlVSTENv
bm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGQtPm1fc2hvdWxkQ29udGVudFNu
aWZmLCBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzY2hlZHVsaW5nQmVoYXZpb3Is
IGNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyh0aGlzKS5nZXQoKSk7CiAKICAgICBkLT5t
X2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+c2V0dXBDb25uZWN0aW9uU2NoZWR1bGluZyhkLT5tX2Nvbm5l
Y3Rpb24uZ2V0KCkpOwogICAgIENGVVJMQ29ubmVjdGlvblN0YXJ0KGQtPm1fY29ubmVjdGlvbi5n
ZXQoKSk7CkBAIC01ODYsNyArNTkzLDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3Jt
TG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAgICAg
U3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNsaWVudC5zZXRBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9w
dFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJmNsaWVudCwgZmFsc2Ug
LypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOworICAgIGJv
b2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0g
dHJ1ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRs
ZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50
U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAKICAgICBoYW5kbGUtPmQtPm1f
c3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lv
bigpOwogCkBAIC01OTYsNyArNjA2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1M
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICB9
CiAKICAgICBoYW5kbGUtPmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBSZXNvdXJjZUhhbmRsZTo6c2hv
dWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLAotICAgICAgICBTY2hlZHVsaW5nQmVo
YXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGll
cyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZigpLCBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNs
aWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKIAogICAg
IENGVVJMQ29ubmVjdGlvblNjaGVkdWxlV2l0aFJ1bkxvb3AoaGFuZGxlLT5jb25uZWN0aW9uKCks
IENGUnVuTG9vcEdldEN1cnJlbnQoKSwgc3luY2hyb25vdXNMb2FkUnVuTG9vcE1vZGUoKSk7CiAg
ICAgQ0ZVUkxDb25uZWN0aW9uU2NoZWR1bGVEb3dubG9hZFdpdGhSdW5Mb29wKGhhbmRsZS0+Y29u
bmVjdGlvbigpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIHN5bmNocm9ub3VzTG9hZFJ1bkxvb3BN
b2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCAzOTQwZGJlMGJhY2Q3ZDBjMjI2NjY0ZDU5Mjlj
ZTUyYzE2MzBjZmE2Li45MWE2NWI1NjhjNTdiNmQxYzJlM2Q1YzFjNGIwNjYxNDk3YWNiM2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQpAQCAtMTI0LDkgKzEyNCw5IEBAIHN0YXRpYyBib29sIHN5bmNocm9u
b3VzV2lsbFNlbmRSZXF1ZXN0RW5hYmxlZCgpCiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1Mp
Ci12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
LCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yKQordm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvcikK
ICNlbHNlCi12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVs
ZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25h
cnkgKmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpj
b25uZWN0aW9uUHJvcGVydGllcykKICNlbmRpZgogewogI2lmICFIQVZFKFRJTUlOR0RBVEFPUFRJ
T05TKQpAQCAtMTYwLDIwICsxNjAsMjIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICB9
CiAKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpLm5zVVJMUmVx
dWVzdChVcGRhdGVIVFRQQm9keSk7Ci0gICAgaWYgKCFzaG91bGRDb250ZW50U25pZmYpIHsKLSAg
ICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBt
dXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFBy
b3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5
U2hvdWxkU25pZmZdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9
CiAKKyAgICBhdXRvIG11dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbbnNSZXF1ZXN0IG11dGFibGVD
b3B5XSk7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMgorICAgIGlmICghc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAg
ICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChZRVMpIGZvcktleTooTlNTdHJpbmcg
KilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2tdOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworI2VuZGlmCiAjaWYgSEFW
RShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0
aXRpb24gPSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRp
dGlvbihmaXJzdFJlcXVlc3QoKSk7Ci0gICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHko
KSkgewotICAgICAgICBOU011dGFibGVVUkxSZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNS
ZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVsZWFzZV07CisgICAgaWYgKCFzdG9yYWdlUGFydGl0
aW9uLmlzRW1wdHkoKSkKICAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpzdG9y
YWdlUGFydGl0aW9uIGZvcktleTpAIl9fU1RPUkFHRV9QQVJUSVRJT05fSURFTlRJRklFUiJdOwot
ICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CiAjZW5kaWYKKyAgICBp
ZiAoIXNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9w
ZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNo
b3VsZFNuaWZmXTsKKyAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdC5hdXRvcmVsZWFzZSgp
OwogCiAgICAgaWYgKGQtPm1fc3RvcmFnZVNlc3Npb24pCiAgICAgICAgIG5zUmVxdWVzdCA9IFtj
b3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBu
c1JlcXVlc3QpIGF1dG9yZWxlYXNlXTsKQEAgLTI1MSwxMiArMjUzLDE0IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KCkKICAgICAgICAgUmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLAogICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQt
PmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKKyAgICAgICAgZC0+bV9zaG91bGRD
b250ZW50RW5jb2RpbmdTbmlmZiwKICAgICAgICAgc2NoZWR1bGluZ0JlaGF2aW9yKTsKICNlbHNl
CiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFr
ZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UsCiAgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQt
Pm1fY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBk
LT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLAogICAgICAgICBzY2hlZHVsaW5nQmVoYXZp
b3IsCiAgICAgICAgIChOU0RpY3Rpb25hcnkgKiljbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRp
ZXModGhpcykuZ2V0KCkpOwogI2VuZGlmCkBAIC0zOTcsNyArNDAxLDEwIEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4CiAgICAgU3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNs
aWVudC5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09
IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVz
dCwgJmNsaWVudCwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50
U25pZmYqLykpOworICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmID0gdHJ1ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmID0gdHJ1ZTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVm
KG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBkZWZlcnNMb2Fk
aW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAK
ICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lv
bigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC00MTIsMTIgKzQxOSwxNCBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleAogICAgICAgICBoYW5kbGUtPm1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAogICAg
ICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZigpLAogICAgICAgICBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzKTsK
ICNlbHNlCiAgICAgaGFuZGxlLT5jcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGhhbmRs
ZS0+bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwgLy8gQSBzeW5jaHJv
bm91cyByZXF1ZXN0IGNhbm5vdCB0dXJuIGludG8gYSBkb3dubG9hZCwgc28gdGhlcmUgaXMgbm8g
bmVlZCB0byBwcm94eSB0aGUgZGVsZWdhdGUuCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLAogICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IChjb250ZXh0
ICYmIGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSksCisgICAgICAg
IGhhbmRsZS0+c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSwKICAgICAgICAgU2NoZWR1bGlu
Z0JlaGF2aW9yOjpTeW5jaHJvbm91cywKICAgICAgICAgKE5TRGljdGlvbmFyeSAqKWhhbmRsZS0+
Y2xpZW50KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKGhhbmRsZS5nZXQoKSkuZ2V0KCkpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDc0OTk5NzJlZmU4ZTZmYmExMDg1MjllMDQw
YjNkNzg1NmY3ODQwMDAuLjNiMjU2ZDdiZmRiMzYyZWM1ZjQ1YjgzNThiMzRkZjYyZGFiZWI0YjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC05MCw5ICs5MCw5IEBAIFNvdXBTZXNzaW9uKiBS
ZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vzc2lvbigpCiAgICAgcmV0dXJuIG1fc2Vzc2lv
biA/IG1fc2Vzc2lvbi0+c291cFNlc3Npb24oKSA6IHNlc3Npb25Gcm9tQ29udGV4dChtX2NvbnRl
eHQuZ2V0KCkpOwogfQogCi1SZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCitSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wg
ZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYpCiB7Ci0gICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJl
c291cmNlSGFuZGxlKHNlc3Npb24sIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmKSk7CisgICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJl
c291cmNlSGFuZGxlKHNlc3Npb24sIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikpOwogCiAgICAgaWYg
KG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAg
ICAgIHJldHVybiBXVEZNb3ZlKG5ld0hhbmRsZSk7CkBAIC0xMDMsOCArMTAzLDggQEAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKFNvdXBOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVzb3VyY2VIYW5k
bGU6OlJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29s
IGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQotICAgIDogZChzdGQ6Om1h
a2VfdW5pcXVlPFJlc291cmNlSGFuZGxlSW50ZXJuYWw+KHRoaXMsIG51bGxwdHIsIHJlcXVlc3Qs
IGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRl
bnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5k
bGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYp
CisgICAgOiBkKHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywg
bnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25p
ZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZikpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewog
ICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtNzM4LDcgKzcz
OCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gUmVzb3VyY2VIYW5kbGU6OnJlbGVhc2VGb3JEb3dubG9hZChSZXNvdXJjZUhhbmRsZUNsaWVu
dCogZG93bmxvYWRDbGllbnQpCiB7CiAgICAgLy8gV2UgZG9uJ3QgYWRvcHQgdGhlIHJlZiwgYXMg
aXQgd2lsbCBiZSByZWxlYXNlZCBieSBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24sIHdoaWNo
IHNob3VsZCBhbHdheXMgcnVuLgotICAgIFJlc291cmNlSGFuZGxlKiBuZXdIYW5kbGUgPSBuZXcg
UmVzb3VyY2VIYW5kbGUoZC0+bV9jb250ZXh0LmdldCgpLCBmaXJzdFJlcXVlc3QoKSwgbnVsbHB0
ciwgZC0+bV9kZWZlcnNMb2FkaW5nLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVz
b3VyY2VIYW5kbGUqIG5ld0hhbmRsZSA9IG5ldyBSZXNvdXJjZUhhbmRsZShkLT5tX2NvbnRleHQu
Z2V0KCksIGZpcnN0UmVxdWVzdCgpLCBudWxscHRyLCBkLT5tX2RlZmVyc0xvYWRpbmcsIGQtPm1f
c2hvdWxkQ29udGVudFNuaWZmLCBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICAg
ICBuZXdIYW5kbGUtPnJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwogICAgIHN0ZDo6c3dhcChk
LCBuZXdIYW5kbGUtPmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRl
eCA3OWQ4YzM4YmM3ODE4OWEyM2E3YjBlOGY1MmJiNzgwOWNjZDM1YWIyLi4wOTZmMDU1NWFjMWVl
NDUyYjY0NWEyYmI5Y2VkNTJlMTY1MTU0YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKQEAgLTYxMyw2ICs2MTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgb3B0aW9ucy5pbml0aWF0b3IgPSBjYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzKCkueG1saHR0cHJlcXVlc3Q7CiAgICAgb3B0aW9ucy5zYW1l
T3JpZ2luRGF0YVVSTEZsYWcgPSBTYW1lT3JpZ2luRGF0YVVSTEZsYWc6OlNldDsKICAgICBvcHRp
b25zLmZpbHRlcmluZ1BvbGljeSA9IFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5OjpFbmFibGU7Cisg
ICAgb3B0aW9ucy5zbmlmZkNvbnRlbnRFbmNvZGluZyA9IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5n
UG9saWN5OjpEb05vdFNuaWZmOwogCiAgICAgaWYgKG1fdGltZW91dE1pbGxpc2Vjb25kcykgewog
ICAgICAgICBpZiAoIW1fYXN5bmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggMWVhZmVlZGQ5ZDZjMTgxZjY0MWQ5YzQy
ODI1YmM5YmM1OWNhYjgzMS4uZjYzYWRhZjA4M2M0MTNmN2JkZDNmZjhmN2FlYjdhZmY2OTUxMTMy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmNwcApAQCAtMTEyLDcgKzExMiwxMCBAQCB2b2lkIERvd25sb2FkOjpzdGFydCgpCiB7
CiAgICAgaWYgKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbElzQmxvYigpKSB7CiAgICAgICAgIG1f
ZG93bmxvYWRDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2JEb3dubG9hZENsaWVudD4oKnRo
aXMpOwotICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShu
dWxscHRyLCBtX3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGZhbHNlLCBmYWxzZSk7
CisgICAgICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgICAgICBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmID0gdHJ1ZTsKKyAgICAgICAgbV9yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUobnVsbHB0ciwgbV9yZXF1ZXN0LCBtX2Rvd25sb2FkQ2xpZW50LmdldCgpLCBkZWZl
cnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
KTsKICAgICAgICAgZGlkU3RhcnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyNCw3
ICsxMjcsMTAgQEAgdm9pZCBEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIKIHsKICAgICBpZiAobV9yZXF1ZXN0
LnVybCgpLnByb3RvY29sSXNCbG9iKCkpIHsKICAgICAgICAgbV9kb3dubG9hZENsaWVudCA9IHN0
ZDo6bWFrZV91bmlxdWU8QmxvYkRvd25sb2FkQ2xpZW50PigqdGhpcyk7Ci0gICAgICAgIG1fcmVz
b3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG51bGxwdHIsIG1fcmVxdWVzdCwg
bV9kb3dubG9hZENsaWVudC5nZXQoKSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgYm9vbCBkZWZl
cnNMb2FkaW5nID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gZmFs
c2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPSB0cnVlOworICAg
ICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShudWxscHRyLCBt
X3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGRlZmVyc0xvYWRpbmcsIHNob3VsZENv
bnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogICAgICAgICBkaWRTdGFy
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGJiN2YxNzUxZmZlNGExOWJlNTM4ODNj
ZDVlMWIxYWUzODM4MDI1NTcuLmE2NDJhZTU1ZTI1ZTE4ZmUwMzU2MzRiNTQ4ZDIwZTUxM2RmOGRk
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFz
ay5jcHAKQEAgLTUzLDEwICs1MywxMCBAQCBSZWY8TmV0d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0
YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdAogICAgICAg
ICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFy
YW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0
dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0
ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRl
cnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkpOwor
ICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwg
cGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBw
YXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsKICNlbmRpZgog
I2lmIFVTRShTT1VQKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vz
c2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJldHVybiBO
ZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJl
cXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCBhM2M5NWRkNjNhZGUyNmE5YWEyZjE1
MDhkZGYwZDYzZTJlZDE1ZjA1Li45ZmE1YTczODc1M2FlMTNlYjk3NzM5MGUyYmI0M2YyZWI0NTM2
OTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApA
QCAtMTI1LDcgKzEyNSw3IEBAIE5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChOZXR3b3JrTG9hZENs
aWVudCYgY2xpZW50LCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJhCiAgICAgLCBtX25ldHdv
cmtpbmdDb250ZXh0KFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobV9wYXJhbWV0ZXJz
LnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpKQogICAgICwgbV9jdXJyZW50UmVxdWVzdChtX3BhcmFtZXRlcnMucmVxdWVzdCkK
IHsKLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9uZXR3b3JraW5nQ29u
dGV4dC5nZXQoKSwgbV9wYXJhbWV0ZXJzLnJlcXVlc3QsIHRoaXMsIG1fcGFyYW1ldGVycy5kZWZl
cnNMb2FkaW5nLCBtX3BhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID09IFNuaWZmQ29u
dGVudCk7CisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0d29ya2lu
Z0NvbnRleHQuZ2V0KCksIG1fcGFyYW1ldGVycy5yZXF1ZXN0LCB0aGlzLCBtX3BhcmFtZXRlcnMu
ZGVmZXJzTG9hZGluZywgbV9wYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9PSBTbmlm
ZkNvbnRlbnQsIG1fcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9PSBD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYpOwogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5o
CmluZGV4IDI1YWE1MDU4MGRlOWE5OGFjZGMwMjdhODEwN2EyOGVhODkzNDc1NzguLjgzMjc4OTc5
ODhiNjRmZjMyZTQxODNhNTk4MDYzZTRhZjVmY2NiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtNDIsNiArNDIs
NyBAQCBwdWJsaWM6CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEIHsgUEFMOjpTZXNzaW9u
SUQ6OmVtcHR5U2Vzc2lvbklEKCkgfTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdDsKICAgICBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5n
UG9saWN5IHsgV2ViQ29yZTo6U25pZmZDb250ZW50IH07CisgICAgV2ViQ29yZTo6Q29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgeyBXZWJD
b3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsKICAgICBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSB7IFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSB9OwogICAgIFdlYkNvcmU6OkNs
aWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBvbGljeSB7IFdlYkNvcmU6OkNs
aWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzIH07CiAg
ICAgYm9vbCBzaG91bGRGb2xsb3dSZWRpcmVjdHMgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuY3BwCmluZGV4IGU5NjM1NzYyYjY1ZjUzMjQxMmZiZWZkZDExMzc0ZGNkM2E1NDk1ZDAu
LmNkMjE2NTcyZjI1N2QwOTFjMmZkZTNmMjRhZGFkYWZiZWQ3MGNjMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuY3BwCkBAIC03NCw2ICs3NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgfQog
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGNvbnRlbnRTbmlmZmluZ1BvbGljeSk7CisgICAgZW5j
b2Rlci5lbmNvZGVFbnVtKGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5KTsKICAgICBlbmNv
ZGVyLmVuY29kZUVudW0oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogICAgIGVuY29kZXIuZW5j
b2RlRW51bShjbGllbnRDcmVkZW50aWFsUG9saWN5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0o
c2hvdWxkUHJlY29ubmVjdE9ubHkpOwpAQCAtMTQxLDYgKzE0Miw4IEBAIGJvb2wgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdv
cmtSZXNvdXJjCiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuY29udGVudFNu
aWZmaW5nUG9saWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKHJlc3VsdC5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0ocmVzdWx0LmNsaWVudENyZWRlbnRpYWxQb2xpY3kpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCmluZGV4IDY5MTM5NjU4MDI4ZjNkNDI5ZTdjNmU5YWY5
NDVjZTE4ZDY0MzJlZGUuLmFmNjM2NzBjOTE0YTVlZDJiMGIzNzhlODE3ZmVlNTI4MjliMTI5YzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAg
U3BlY3VsYXRpdmVMb2FkOjpTcGVjdWxhdGl2ZUxvYWQoQ2FjaGUmIGNhY2hlLCBjb25zdCBHbG9i
YWxGcmFtZUlEJiBmcmFtZUlELCBjb24KICAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgcGFyYW1ldGVycy5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CiAgICAgcGFyYW1l
dGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBEb05vdFNuaWZmQ29udGVudDsKKyAgICBwYXJh
bWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25p
ZmZpbmdQb2xpY3k6OlNuaWZmOwogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IG1fb3JpZ2luYWxS
ZXF1ZXN0OwogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgbV9uZXR3b3JrTG9hZCA9IHN0
ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCAq
U2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCA3NWZjOTdkZjljMzgxZjUzZGYxMWM3
NGUwNzJjMjJhNDU1ZWIxYjZkLi44ODc1YzljZTlmYzVlMjcxYTUyYjNlODc5MDIyM2IyYTFhODBi
OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC00MSw5ICs0MSw5IEBAIGNsYXNzIE5ldHdvcmtT
ZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBO
ZXR3b3JrRGF0YVRhc2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQorICAg
IHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Np
b24sIGNsaWVudCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRl
bnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxk
UHJlY29ubmVjdE9ubHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0Rh
dGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9u
bHkpKTsKICAgICB9CiAKICAgICB+TmV0d29ya0RhdGFUYXNrQ29jb2EoKTsKQEAgLTcwLDcgKzcw
LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xv
YWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToK
LSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkp
OworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFU
YXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkpOwogCiAgICAgYm9vbCB0
cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbQppbmRleCBkZjY0ZTM5YmU2MTU1Y2RmZTY1MGViMzQxNzEzYmI1NjFmODU3NDc4Li5h
NzU5ZmNjMTZkMThiZWUwNzRjOTQ1NGZhOWUwNTUxZWQxN2JhYjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIGZsb2F0IHRvTlNVUkxTZXNzaW9uVGFza1By
aW9yaXR5KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogICAgIHJldHVy
biBOU1VSTFNlc3Npb25UYXNrUHJpb3JpdHlEZWZhdWx0OwogfQogCi1OZXR3b3JrRGF0YVRhc2tD
b2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kg
c2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQorTmV0d29ya0Rh
dGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5n
UG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVj
dE9ubHkpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlw
ZSAhPSBOb0ZhaWx1cmUpCkBAIC0xMDQsMjQgKzEwNCwyNiBAQCBOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtE
YXRhVAogI2VuZGlmCiAgICAgCiAgICAgTlNVUkxSZXF1ZXN0ICpuc1JlcXVlc3QgPSByZXF1ZXN0
Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpVcGRhdGVIVFRQQm9keSk7Ci0gICAgaWYgKHNob3VsZENv
bnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpEb05vdFNuaWZmQ29udGVudCB8fCB1cmwucHJvdG9jb2xJ
cygiZmlsZSIpKSB7Ci0gICAgICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKm11dGFibGVSZXF1ZXN0
ID0gW1tuc1JlcXVlc3QgbXV0YWJsZUNvcHldIGF1dG9yZWxlYXNlXTsKLSAgICAgICAgW211dGFi
bGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENv
bm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmXTsKLSAgICAgICAgbnNSZXF1ZXN0ID0gbXV0YWJs
ZVJlcXVlc3Q7Ci0gICAgfQogCisgICAgYXV0byBtdXRhYmxlUmVxdWVzdCA9IGFkb3B0TlMoW25z
UmVxdWVzdCBtdXRhYmxlQ29weV0pOworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDIKKyAgICBpZiAoc2hvdWxkQ29udGVudEVuY29k
aW5nU25pZmYgPT0gV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OkRvTm90
U25pZmYpCisgICAgICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChZRVMpIGZvcktl
eTooTlNTdHJpbmcgKilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2tdOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworI2Vu
ZGlmCisgICAgaWYgKHNob3VsZENvbnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpEb05vdFNuaWZmQ29u
dGVudCB8fCB1cmwucHJvdG9jb2xJcygiZmlsZSIpKQorICAgICAgICBbbXV0YWJsZVJlcXVlc3Qg
X3NldFByb3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblBy
b3BlcnR5U2hvdWxkU25pZmZdOwogICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9IHN0YXRpY19jYXN0
PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkpOworICAgIGlmICghY29jb2FT
ZXNzaW9uLm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyLmlzTnVsbCgpKQorICAgICAgICBbbXV0
YWJsZVJlcXVlc3Qgc2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOmNvY29hU2Vzc2lvbi5tX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcl07CisgICAgbnNSZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3Qu
YXV0b3JlbGVhc2UoKTsKKwogICAgIGlmIChzZXNzaW9uLm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
LnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0KSkgewogICAgICAgICBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSA9IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKICAg
ICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5OjpEb05vdFVzZTsKICAgICB9CiAKLSAgICBpZiAoIWNvY29hU2Vzc2lvbi5tX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllci5pc051bGwoKSkgewotICAgICAgICBOU011dGFibGVVUkxS
ZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNSZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVs
ZWFzZV07Ci0gICAgICAgIFttdXRhYmxlUmVxdWVzdCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZp
ZXI6Y29jb2FTZXNzaW9uLm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyXTsKLSAgICAgICAgbnNS
ZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3Q7Ci0gICAgfQotCiAgICAgaWYgKHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsKICAg
ICAgICAgbV90YXNrID0gW2NvY29hU2Vzc2lvbi5tX3Nlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3Jh
Z2UgZGF0YVRhc2tXaXRoUmVxdWVzdDpuc1JlcXVlc3RdOwogICAgICAgICBBU1NFUlQoIWNvY29h
U2Vzc2lvbi5tX2RhdGFUYXNrTWFwV2l0aENyZWRlbnRpYWxzLmNvbnRhaW5zKFttX3Rhc2sgdGFz
a0lkZW50aWZpZXJdKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggZTcyYzFmNjk1ZTdmZGY3N2Y1
N2JmYmM1ZGU4Y2I0ZDEzNzRlYmI5Ny4uNGE3ZTkxNmZiYjY2MmU1NjdjYzg3MGIzMDM1YzQ4NmJl
MTIyYWI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBnRGVmYXVsdFJlYWRCdWZmZXJTaXplID0g
ODE5MjsKIAotTmV0d29ya0RhdGFUYXNrU291cDo6TmV0d29ya0RhdGFUYXNrU291cChOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKK05ldHdvcmtEYXRhVGFza1NvdXA6Ok5ldHdvcmtEYXRhVGFza1NvdXAoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIDogTmV0d29y
a0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QpCiAgICAgLCBtX3Nob3VsZENvbnRlbnRTbmlmZihzaG91bGRDb250ZW50U25pZmYpCiAgICAg
LCBtX3RpbWVvdXRTb3VyY2UoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmV0d29ya0RhdGFUYXNr
U291cDo6dGltZW91dEZpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmgKaW5kZXggMzkwY2Q0OGM5OTFhZDY1NTQ3
MWRiMTc1ODEyNzdhNGQ0OWJiMmJkMy4uMzc5YTdmMDQyZTkxNmQ5YTY3MTA0NjFjZTQyNTg0OTJm
NjU2ZmZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya0RhdGFUYXNrU291cC5oCkBAIC0zNiwxNSArMzYsMTUgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIE5ldHdvcmtEYXRhVGFza1NvdXAgZmluYWwgOiBwdWJsaWMgTmV0d29y
a0RhdGFUYXNrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3Jl
YXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVu
dCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFU
YXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVu
dCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrU291cChzZXNzaW9uLCBj
bGllbnQsIHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25p
ZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrU291cChzZXNzaW9uLCBjbGllbnQs
IHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KSk7CiAgICAgfQogCiAgICAgfk5ldHdvcmtEYXRhVGFza1NvdXAoKTsKIAogcHJp
dmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tTb3VwKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKKyAgICBOZXR3
b3JrRGF0YVRhc2tTb3VwKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCk7CiAKICAgICB2b2lkIHN1c3BlbmQoKSBvdmVycmlkZTsKICAgICB2b2lk
IGNhbmNlbCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDQ1MDc3YTQwZmFlZTE5ZmM0M2Iy
NGU2YWRhNzllMDMxYTk3NzVmNjYuLjExNDFkMGJmOTc5ZTMzNGEzZTdkZWU1ODYzZDU2YjA4NzY5
YzNiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTI0Miw2ICsyNDIsNyBAQCB2b2lkIFdlYkxvYWRlclN0
cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJl
c291cmNlTAogICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVkdWxlZCB3aXRo
IHRoZSBOZXR3b3JrUHJvY2VzcyB3aXRoIHByaW9yaXR5ICVkIiwgcmVzb3VyY2VMb2FkZXIudXJs
KCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9h
ZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSk7CiAKICAgICBDb250ZW50U25pZmZpbmdQb2xpY3kg
Y29udGVudFNuaWZmaW5nUG9saWN5ID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkU25pZmZDb250ZW50
KCkgPyBTbmlmZkNvbnRlbnQgOiBEb05vdFNuaWZmQ29udGVudDsKKyAgICBDb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IHJlc291cmNl
TG9hZGVyLnNob3VsZFNuaWZmQ29udGVudEVuY29kaW5nKCkgPyBDb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeTo6U25pZmYgOiBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6RG9Ob3RT
bmlmZjsKICAgICBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgPyBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6VXNlIDogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNl
OwogCiAgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CkBA
IC0yNTEsNiArMjUyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJv
bU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBsb2FkUGFyYW1l
dGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3Qg
PSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNv
bnRlbnRTbmlmZmluZ1BvbGljeTsKKyAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdT
bmlmZmluZ1BvbGljeSA9IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OwogICAgIGxvYWRQ
YXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k7CiAgICAgLy8gSWYgdGhlcmUgaXMgbm8gV2ViRnJhbWUgdGhlbiB0aGlzIHJlc291cmNlIGNh
bm5vdCBiZSBhdXRoZW50aWNhdGVkIHdpdGggdGhlIGNsaWVudC4KICAgICBsb2FkUGFyYW1ldGVy
cy5jbGllbnRDcmVkZW50aWFsUG9saWN5ID0gKHdlYkZyYW1lICYmIHdlYlBhZ2UgJiYgcmVzb3Vy
Y2VMb2FkZXIuaXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMoKSkgPyBDbGllbnRDcmVk
ZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRGb3JDcmVkZW50aWFscyA6IENsaWVudENyZWRlbnRp
YWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzOwpAQCAtNDA1LDYgKzQwNyw3
IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIHVuCiAgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAg
ICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBTbmlmZkNvbnRlbnQ7Cisg
ICAgbG9hZFBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBDb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmY7CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICBsb2FkUGFy
YW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5ID0gY2xpZW50Q3JlZGVudGlhbFBvbGljeTsK
ICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0ID0gY29udGV4dC0+c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDBmMGRjNTk1NjI2MDFhNjJkMjIyMTU1NjMxNjAyY2QwZTRlMTMxY2EuLmEyZGQz
ODY3NGRjNzg3MmE3NmU2ZDYyMTQ4YTI3ZThhZTkxZjk0MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNiBA
QAogMjAxNy0xMC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKKyAgICAg
ICAgWE1MSHR0cFJlcXVlc3Qgc2hvdWxkIG5vdCBzbmlmZiBjb250ZW50IGVuY29kaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU1OTcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzMzODIyMjQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEZpeCB1cCB0aGUgdGVzdCBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbCB0bworICAg
ICAgICBhY3R1YWxseSBjaGVjayB0aGF0IHdlIGRvIG5vdCBzbmlmZiBjb250ZW50IGVuY29kaW5n
LiBDRk5ldHdvcmsgb25seSBzbmlmZnMgdGhlIFVSTAorICAgICAgICBmb3IgdGhlIGNvbnRlbnQg
ZW5jb2Rpbmcgd2hlbiB0aGUgZmlsZW5hbWUgZW5kcyB3aXRoIGtub3duIGZpbGUgZXh0ZW5zaW9u
IChlLmcuIC5neikKKyAgICAgICAgYW5kIHRoZSBIVFRQIHJlc3BvbnNlIGRvZXMgbm90IHNwZWNp
ZnlpbmcgYSBDb250ZW50LUVuY29kaW5nIEhUVFAgaGVhZGVyLgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczogU2tpcCB0aGUgdGVzdCBvbiBhbGwgcGxhdGZvcm1zLiBPbmNlIDxyZGFyOi8v
cHJvYmxlbS8zMzgyMjI0OT4gc2hpcHMKKyAgICAgICAgdGhlbiB3ZSB3aWxsIGVuYWJsZSB0aGUg
dGVzdCBvbiBhbGwgcGxhdGZvcm1zIHRoYXQgdXNlIENGTmV0d29yay4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2Rp
bmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3pp
cC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzLy5odGFjY2VzczogSW50ZXJwcmV0IGZpbGVz
IHdpdGggLnBocC5neiBleHRlbnNpb24gYXMgUEhQIGZpbGVzLgorICAgICAgICAqIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGlu
Zy5waHAuZ3o6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIHRoZSB0ZXN0IGZvciBub3cg
dW50aWwgPHJkYXI6Ly9wcm9ibGVtLzMzODIyMjQ5PiBzaGlwcy4KKworMjAxNy0xMC0yNyAgRGFu
aWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKICAgICAgICAgT25seSBhbGxvdyBub24t
bWl4ZWQgY29udGVudCBwcm90ZWN0ZWQgc3VicmVzb3VyY2VzIHRvIGFzayBmb3IgY3JlZGVudGlh
bHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODkx
OQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTUyNDU+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBlMjY1Yzg4NTg0YzdiMzE3YzVjZWQ0YTQ5MmUyMmNkNjA1YjU1ZDBmLi44OTM1ZmI0MTFkYzc0
ODg0ZGJjYjdiZDVjNzM4OGYyOTdjMDY3MTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxMyw2
ICsyMTMsOSBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9y
dC9nZW5lcmFsLmFueS53b3JrZXIuaHRtbCBbIFNraXAgXQogIyBOb3Qgc3VwcG9ydGVkCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2ggWyBTa2lwIF0KIAor
IyBDb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIGlzIG9ubHkgc3VwcG9ydGVkIGJ5IENGTmV0d29y
ay4KK2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVu
dC1lbmNvZGluZy5odG1sIFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KICMgRW5kIHBsYXRmb3JtLXNwZWNpZmljIHRlc3RzLgogIy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwpAQCAtMTQ5Myw4ICsxNDk2LDYgQEAgd2Via2l0Lm9yZy9iLzE3NTI4
OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy9vdXRsaW5lLTAx
Ni5odG0KIHdlYmtpdC5vcmcvYi8xNzUyODggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXVpLTMvb3V0bGluZS0wMTkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzE3NTI5MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dWktMy90ZXh0LW92ZXJmbG93LTAwNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtp
dC5vcmcvYi8xNzU1OTcgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlw
ZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE3
MTk0NSBwZXJmL2NsYXNzLWxpc3QtcmVtb3ZlLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBd
CiAKIHdlYmtpdC5vcmcvYi8xNzYxODMgZmFzdC9ibG9jay9pbnNpZGUtaW5saW5lcy9vcGFjaXR5
LW9uLWlubGluZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRl
bnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4
dAppbmRleCA4NmQ1MWRmOTU5M2IyNTRiYmZhMDc1ZWZhM2E2YzUwMGQ2NjQ5NDExLi43NGY5MWE4
OGU5ZTA1NDJmYzhjYjkyNDFiZTg5MDlmMzFmODVkYjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQt
ZW5jb2RpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy1leHBlY3RlZC50
eHQKQEAgLTEsNyArMSw3IEBACiBUZXN0IHRoYXQgYW4gWE1MSHR0cFJlcXVlc3Qgd2l0aCBDb250
ZW50LVR5cGU6IGd6aXAgaXMgcHJvcGVybHkgdW5jb21wcmVzc2VkLgogCiBDb250ZW50IFR5cGU6
IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQotQ29udGVudCBFbmNvZGluZzogbnVsbAorQ29udGVu
dCBFbmNvZGluZzogZ3ppcAogQ29udGVudCBMZW5ndGg6IDI4MgogUkVTUE9OU0UgMjAwOiBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQogTEVOR1RIOiA0NDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNv
ZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNv
bnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwKaW5kZXggOGFlNTU0OTcyMTcyNjhh
ZWQ5Y2JmNTUwNTkyZTI4MWFiMTQ0ZGJkMy4uNzkyNjI4NzdlYzQ4NjcyODViNzEzZTdjNmEzOTMx
MjI4NzQ0ODA0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1j
b250ZW50LWVuY29kaW5nLmh0bWwKQEAgLTE2LDcgKzE2LDcgQEAgY29uc3QgbG9nID0gdGV4dCA9
PiB7CiB9OwogCiBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLXhoci5vcGVuKCdH
RVQnLCAncmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAnKTsKK3ho
ci5vcGVuKCdHRVQnLCAncmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5w
aHAuZ3onKTsKIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwogeGhyLm9uZXJyb3Ig
PSBlID0+IGxvZyhgRkFJTEVEOiAke3hoci5zdGF0dXN9ICR7eGhyLnN0YXR1c1RleHR9YCk7CiB4
aHIub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvLmh0YWNjZXNzIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvLmh0YWNjZXNzCmluZGV4IDky
Nzc5NDAxZTdkNWU5ZWQ2NDVhMDg5NDZhNWU0YWRiOTJjYTA1NGUuLjAyNTI2MDczZWU2NjcyZWQz
MGVlNjliNGIxYmU0Y2JiMmU0YTMyNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzLy5odGFjY2VzcworKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy8uaHRhY2Nlc3MKQEAgLTEwLDMgKzEw
LDUgQEAgQWRkQ2hhcnNldCB3aW5kb3dzLTEyNTEgLnhtbAogPEZpbGVzICJub0NvbnRlbnRUeXBl
LmFzaXMiPgogRGVmYXVsdFR5cGUgTm9uZQogPC9GaWxlcz4KKworQWRkVHlwZSBhcHBsaWNhdGlv
bi94LWh0dHBkLXBocCAucGhwLmd6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2Rpbmcu
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3pp
cC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZWRhYjIyM2FhMTBlMTVmZGQ4ZDdlYWYyYzYzN2I5MGMxMzk0NGQ3ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2Rp
bmcucGhwCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3BocAotJHRleHQgPSAiTG9y
ZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2Vk
IGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBh
bGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9u
IHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQu
IER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxp
dCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIg
c2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBv
ZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLiI7Ci0kZ3ppcFRleHQg
PSBnemVuY29kZSgkdGV4dCwgNik7Ci0KLWhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0iKTsKLQotZWNobyAkZ3ppcFRleHQ7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1u
by1jb250ZW50LWVuY29kaW5nLnBocC5neiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3oK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWRhYjIyM2FhMTBlMTVmZGQ4ZDdlYWYyYzYzN2I5MGMxMzk0NGQ3ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVz
b3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3oKQEAgLTAsMCArMSw4
IEBACis8P3BocAorJHRleHQgPSAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3Rl
dHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQg
bGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBx
dWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAg
ZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhl
bmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51
bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lk
ZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVz
dCBsYWJvcnVtLiI7CiskZ3ppcFRleHQgPSBnemVuY29kZSgkdGV4dCwgNik7CisKK2hlYWRlcigi
Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsKKworZWNobyAkZ3ppcFRl
eHQ7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0
MWU1MTU1ZmY4MWNjYzQ5NTM1ZmM0NGI2ODZlMGEwNDA4OTk1OWI1Li5iNzViMzQ4MmViMTg2MzJj
NGUxYmE3MTllNjMzODI5NDNmYmI0Y2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMzEsNiArMzEsOSBAQCBmYXN0L2V2ZW50cy9kby1ub3QtZHJhZy1h
bmQtZHJvcC1kYXRhLWRldGVjdG9ycy1saW5rLmh0bWwgWyBQYXNzIF0KIAogZmFzdC94bWxodHRw
cmVxdWVzdC9zZXQtZGFuZ2Vyb3VzLWhlYWRlcnMtaW4tZGFzaGJvYXJkLmh0bWwgWyBQYXNzIF0K
IAorIyBGSVhNRTogVW5za2lwIHRoaXMgdGVzdCBvbmNlIHRoZSBmaXggZm9yIDxyZGFyOi8vcHJv
YmxlbS8zMzgyMjI0OT4gc2hpcHMuCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29u
dGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbCBbIFNraXAgXQorCiAjLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rv
cmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325249</attachid>
            <date>2017-10-27 22:54:43 -0700</date>
            <delta_ts>2017-10-30 12:04:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175597-20171027225443.patch</filename>
            <type>text/plain</type>
            <size>63118</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhMmI0M2IzM2YzZWYw
MzFjMzAzZjE2NDc4Yzk2MzM0ZGU2ZGE5Ni4uYzhmNWU2ZmQ3NDQ3NjhmMGUxZWQ5MjUxYzc4YTU5
NjRiYjZhNjUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDE3LTEwLTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBYTUxIdHRwUmVxdWVzdCBz
aG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3Nv
Y2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3QgdG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBi
ZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVjb21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNl
IG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5nIEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZp
Y2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3VsZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJl
c3BvbnNlIHdpdGggaGVhZGVycworICAgICAgICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9n
emlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2Vz
IG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBIVFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMg
WmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdh
cmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+LgorCisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0
IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1
ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAgIHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVu
dCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3RoZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxs
IGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2VxdWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWln
aHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUgYnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
OjpzaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOiBFbmFibGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVz
b3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRsZSk6IERpdHRvLiBXZSBzaG91bGQgbG9vayB0
byBkaXNhYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4KKyAgICAgICAgYSBzdWJzZXF1
ZW50IGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOiBNb2RpZmllZCB0
byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29kaW5n
IHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCk6IE1vZGlmaWVkIHRvIHRha2UgYSBib29sZWFuIGFzIHRvIHdo
ZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQKKyAgICAgICAgZW5jb2Rpbmcgc25pZmZpbmcuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOiBNb2Rp
ZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0aGUgQ0ZN
dXRhYmxlVVJMUmVxdWVzdFJlZiBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4y
LgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlv
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24p
OiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250
ZW50IGVuY29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0
aGUgTlNNdXRhYmxlVVJMUmVxdWVzdCBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4x
My4yLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhh
dmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOiBNb2RpZmll
ZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29k
aW5nIHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNl
SGFuZGxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cmVsZWFz
ZUZvckRvd25sb2FkKTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiB4
bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OmNyZWF0ZVJlcXVlc3QpOiBEbyBub3QgZW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcg
Zm9yIHRoZSByZXF1ZXN0LgorCisyMDE3LTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKwogICAgICAgICBPbmx5IGFsbG93IG5vbi1taXhlZCBjb250ZW50IHByb3RlY3Rl
ZCBzdWJyZXNvdXJjZXMgdG8gYXNrIGZvciBjcmVkZW50aWFscwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4OTE5CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNTAxNTI0NT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDQ0OWIxZGRhYTY5Zjc2MTI4ODVi
MWY4NDkzM2Q5YTQ1MDkwNzI1MmEuLjYzMzdmNGVhZThkMDY0YTIxZWI5NjRkNGY3NmViMjM3ZGIw
MDZlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEwLTI3ICBE
YW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBYTUxIdHRwUmVxdWVz
dCBzaG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzM4MjIyNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRm9yd2FyZCBkZWNsYXJlIENGTmV0d29yayBTUEkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oOgorCiAyMDE3LTEwLTI0ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVuYWJsZSBXZWJLaXQg
bG9nZ2luZyBjb25maWd1cmF0aW9uIGFuZCBkaXNwbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzZWVhN2Q0ZjFl
NzA2NGY3ZmYwYzdhZDI4Y2JkM2UzMTYyNTRlMzQuLmY3MzdlMTEzZTY4ODBkMzk1ZDk3MGJmYTU5
N2U4MTAxYTZjYmM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDkgQEAKIDIwMTctMTAtMjcgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0
IHNob3VsZCBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NTk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMzgyMjI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSB0aGUgYm9keSBvZiBhbiBIVFRQIHJlc3BvbnNlIGFz
c29jaWF0ZWQgd2l0aCBhbiBYSFIgcmVxdWVzdCB0byBhIC5neiBmaWxlCisgICAgICAgIHdvdWxk
IGJlIGF1dG9tYXRpY2FsbHkgZ3ppcHBlZCBkZWNvbXByZXNzZWQgaWYgdGhlIEhUVFAgcmVzcG9u
c2Ugb21pdHRlZCBhIENvbnRlbnQtRW5jb2RpbmcgSFRUUAorICAgICAgICBoZWFkZXIuIFNwZWNp
ZmljYWxseSwgc3VjaCBhIHJlc3BvbnNlIHdvdWxkIGJlIHRyZWF0ZWQgYW5hbG9nb3VzIHRvIGEg
cmVzcG9uc2Ugd2l0aCBoZWFkZXJzCisgICAgICAgICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L2d6aXAiIGFuZCAiQ29udGVudC1FbmNvZGluZzogaWRlbnRpdHkiLiBUaGlzIGJlaGF2aW9yIGRv
ZXMgbm90IGNvbmZvcm0KKyAgICAgICAgdGhlIEhUVFAgMS4xIHNwZWMuIGFuZCBicmVha3MgRXBp
YyBaZW4gR2FyZGVuLCA8aHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL21vemlsbGEtZ2FtZXMvWmVu
R2FyZGVuL0VwaWNaZW5HYXJkZW4uaHRtbD4uCisKKyAgICAgICAgT24gbWFjT1MgMTAuMTMuMiBv
cHQgb3V0IG9mIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgd2hlbiBtYWtpbmcgYW4gWEhSIHJl
cXVlc3QuIFdlIGxpa2VseSBjYW4KKyAgICAgICAgc2VsZWN0aXZlbHkgb3B0IG91dCBvZiBjb250
ZW50IGVuY29kaW5nIHNuaWZmaW5nIGZvciBvdGhlciBuZXR3b3JrIHJlcXVlc3RzLiBUaGlzIHdp
bGwgYmUgZG9uZQorICAgICAgICBpbiBzdWJzZXF1ZW50IGNvbW1pdHMgdG8gbWFrZSBpdCBzdHJh
aWdodGZvcndhcmQgdG8gaWRlbnRpZnkgc2l0ZSBicmVha2FnZSAoaWYgYW55KS4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRvd25sb2FkOjpzdGFydCk6IEVuYWJsZSBjb250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1h
dGNoIGV4aXN0aW5nIGJlaGF2aW9yLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnRX
aXRoSGFuZGxlKTogRGl0dG8uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOiBQYXNz
IHRocm91Z2ggdGhlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5LgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0xvYWQ6Ok5ldHdvcmtMb2FkKTogRGl0dG8uCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KTogRW5jb2RlIGNvbnRlbnQgZW5jb2Rpbmcg
c25pZmZpbmcgcG9saWN5LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVyczo6ZGVjb2RlKTogRGVjb2RlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgcG9saWN5
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
TG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2Fk
OjpTcGVjdWxhdGl2ZUxvYWQpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRj
aCBleGlzdGluZworICAgICAgICBiZWhhdmlvci4gV2Ugc2hvdWxkIGxvb2sgdG8gZGlzYWJsZSBj
b250ZW50IGVuY29kaW5nIHNuaWZmaW5nIGluIGEgc3Vic2VxdWVudCBjaGFuZ2UuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKTogTW9k
aWZpZWQgdG8gdGFrZSB0aGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZworICAgICAgICBwb2xp
Y3kgYW5kIGFwcGx5IGl0IHRvIHRoZSBOU011dGFibGVVUkxSZXF1ZXN0IG9iamVjdCB3aGVuIGJ1
aWxkaW5nIG9uIG1hY09TIDEwLjEzLjIuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
U291cDo6TmV0d29ya0RhdGFUYXNrU291cCk6IFBhc3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrRGF0YVRhc2tTb3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVk
dWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6IFBhc3MgdGhyb3VnaCB0aGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZmluZyBwb2xpY3kuCisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KTogRW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25p
ZmYgdG8gbWF0Y2ggZXhpc3RpbmcKKyAgICAgICAgYmVoYXZpb3IuCisKKzIwMTctMTAtMjcgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCiAgICAgICAgIE9ubHkgYWxsb3cgbm9u
LW1peGVkIGNvbnRlbnQgcHJvdGVjdGVkIHN1YnJlc291cmNlcyB0byBhc2sgZm9yIGNyZWRlbnRp
YWxzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5
MTkKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MDE1MjQ1PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAppbmRleCBkZjM5YjhiZDQ2YWZhZTA0M2U4NDA4
MzZhMzA4MDc5ODAzNzE4NmY2Li4wYWNjODlmYmY5YjY0NTE2OTY1NjcxYTk2ODFlYWI5MTZhNjEw
NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtT
UEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaApA
QCAtMjA4LDYgKzIwOCwxMCBAQCBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTENhY2hl
UGFydGl0aW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDb25uZWN0aW9u
UHJvcGVydHlTaG91bGRTbmlmZjsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGVVJMU3Rv
cmFnZVNlc3Npb25Jc1ByaXZhdGU7CiAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAyCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NGVVJMUmVxdWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrOworI2VuZGlmCisKIENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYgX0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZhdWx0KENGQWxsb2Nh
dG9yUmVmKTsKIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0
ZUZyb21GaWxlKENGQWxsb2NhdG9yUmVmLCBDRlVSTFJlZiwgQ0ZIVFRQQ29va2llU3RvcmFnZVJl
Zik7CiB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VTY2hlZHVsZVdpdGhSdW5Mb29wKENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYsIENGUnVuTG9vcFJlZiwgQ0ZTdHJpbmdSZWYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTkyMTQyN2E0OTkzOTI1OWY1ZTQ0YWY1
OWM3ZWMzNWFhMWEyMWM5Ny4uZjkxOTk4M2Q4MjE2N2YyMjJiNGQ5N2FlM2Y1Y2E0ZGI0MzA5OTRh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yMTYsNyAr
MjE2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGZyYW1lTG9hZGVy
KCktPm5ldHdvcmtpbmdDb250ZXh0KCksIG1fcmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5n
LCBtX29wdGlvbnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudCk7CisgICAgbV9oYW5kbGUg
PSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGZyYW1lTG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0
KCksIG1fcmVxdWVzdCwgdGhpcywgbV9kZWZlcnNMb2FkaW5nLCBtX29wdGlvbnMuc25pZmZDb250
ZW50ID09IFNuaWZmQ29udGVudCwgbV9vcHRpb25zLnNuaWZmQ29udGVudEVuY29kaW5nID09IENv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7CiB9CiAKIHZvaWQgUmVzb3VyY2VM
b2FkZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCmluZGV4IGY0YzlhNDU3N2U3ZTRkZDljNjFjZmUyYjcyYzcwYzhmNzFm
ZWYwOGUuLmJhYzhhY2E4MGVlMDhlNTQ1ZTExOTVkMDhkOWYzYTQ3ZTFjNmYyNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0xMjMsNiArMTIzLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzOyB9CiAgICAg
dm9pZCBzZXRTZW5kQ2FsbGJhY2tQb2xpY3koU2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2Fs
bGJhY2tzKSB7IG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IHNlbmRMb2FkQ2FsbGJhY2tz
OyB9CiAgICAgYm9vbCBzaG91bGRTbmlmZkNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudDsgfQorICAgIGJvb2wgc2hvdWxkU25pZmZD
b250ZW50RW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc25pZmZDb250ZW50RW5j
b2RpbmcgPT0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscygpIGNvbnN0
OwogICAgIGJvb2wgc2hvdWxkSW5jbHVkZUNlcnRpZmljYXRlSW5mbygpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9ucy5jZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgPT0gSW5jbHVkZUNlcnRpZmljYXRlSW5m
bzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJP
cHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgK
aW5kZXggNWM1YTBkNDI3YjRlOTk2MGJiN2M1YzdkMWYxZmFjZTU5YTQ0NTRiYS4uNjU3NGIzNzgx
NWI2Y2ZhNzgxNmJjMThiNjY1MThmNGY3NTg2MzUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaApAQCAtOTcsNiArOTcsMTEgQEAgZW51bSBjbGFz
cyBTZXJ2aWNlV29ya2Vyc01vZGUgewogICAgIE5vbmUsCiB9OwogCitlbnVtIGNsYXNzIENvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHsKKyAgICBTbmlmZiwKKyAgICBEb05vdFNuaWZmLAor
fTsKKwogc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMg
ewogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucygpIHsgfQogCkBAIC0xMjAsNiArMTI1LDcgQEAg
c3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBGZXRjaE9wdGlvbnMgewogCiAg
ICAgU2VuZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2FsbGJhY2tzIHsgRG9Ob3RTZW5kQ2FsbGJh
Y2tzIH07CiAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudCB7IERvTm90U25p
ZmZDb250ZW50IH07CisgICAgQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc25pZmZDb250
ZW50RW5jb2RpbmcgeyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgfTsKICAg
ICBEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xpY3kgeyBCdWZmZXJEYXRhIH07
CiAgICAgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeyBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgfTsKICAgICBTZWN1cml0eUNoZWNrUG9s
aWN5IHNlY3VyaXR5Q2hlY2sgeyBEb1NlY3VyaXR5Q2hlY2sgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5k
ZXggZWUyNWY5ZjM2YjU2NDczYjRmNmE5NTc5YzgxMjJjNTA1NmZlYzI1ZC4uMWVlMWQ2MTYzZmRk
YjNhNDNiNjE3NDQwNTQzZmZmNzZkM2FiZGIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTQ3NSw3
ICs0NzUsMTAgQEAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmNyZWF0ZVJlc291cmNlSGFuZGxlKGNvbnN0IFVSTCYgdXIKICAgICAgICAgfQogICAgIH0KIAot
ICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShtX2ZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCB0aGlzLCBm
YWxzZSwgdHJ1ZSk7CisgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CisgICAgYm9vbCBz
aG91bGRDb250ZW50U25pZmYgPSB0cnVlOworICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYgPSB0cnVlOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCBy
ZXF1ZXN0LCB0aGlzLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgIC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9u
bHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGlyZWN0cywgd2UgaW5pdGlhbGl6ZQogICAgIC8vIHRo
ZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5j
cHAKaW5kZXggNjEyOTY5ZjA0YTdlYWVlZTJkMTVlOThiNzRlYjcwZTlhNTIyYjc4NS4uZGM4ZGQ0
NTNiMjkyOTVlMzQ4ZjQ5ODUwOWNkN2M3M2UyYjAxYmJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcApAQCAtMTMz
LDkgKzEzMyw5IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KEJsb2JEYXRhKiBibG9iRGF0YSwgY29uc3QgUmVzCiB9CiAKIEJsb2JSZXNvdXJjZUhh
bmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKEJsb2JEYXRhKiBibG9iRGF0YSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGFz
eW5jKQotICAgIDogUmVzb3VyY2VIYW5kbGUobnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSwgZmFsc2UpCi0gICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQotICAgICwgbV9hc3luYyhhc3lu
YykKKyAgICA6IFJlc291cmNlSGFuZGxlIHsgbnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSAvKiBkZWZlcnNMb2FkaW5nICovLCBmYWxzZSAvKiBzaG91bGRDb250ZW50U25pZmYgKi8sIHRy
dWUgLyogc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgKi8gfQorICAgICwgbV9ibG9iRGF0YSB7
IGJsb2JEYXRhIH0KKyAgICAsIG1fYXN5bmMgeyBhc3luYyB9CiB7CiAgICAgaWYgKG1fYXN5bmMp
CiAgICAgICAgIG1fYXN5bmNTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPEFzeW5jRmlsZVN0cmVh
bT4oKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
aW5nSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUu
aAppbmRleCBiZWI5YzVhY2E3ODNlNzAwNTY4ZTExODc2OWRkZWIxMTdiZDgwZWU5Li5hODhjYmEz
NTM0OTE4MmMyZGUxYTE5OGZjNTNiZTQ3NTg2ZDMxOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaApAQCAtNTIsNyArNTIsMTAgQEAgcHVibGljOgog
ICAgICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKHVzZUFzeW5jQ2FsbGJhY2tzKQogICAgICAg
ICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCiAgICAg
ewotICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobmV0d29ya2luZ0Nv
bnRleHQsIHJlcXVlc3QsIHRoaXMsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIGJvb2wgZGVmZXJz
TG9hZGluZyA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IGZhbHNl
OworICAgICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICAg
ICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtpbmdDb250ZXh0LCBy
ZXF1ZXN0LCB0aGlzLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgICAgICAvLyBJZiB0aGUgc2VydmVyIG5ldmVyIHJl
c3BvbmRzLCB0aGlzIG9iamVjdCB3aWxsIGhhbmcgYXJvdW5kIGZvcmV2ZXIuCiAgICAgICAgIC8v
IFNldCBhIHZlcnkgZ2VuZXJvdXMgdGltZW91dCwganVzdCBpbiBjYXNlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCBiZWJj
Zjg4ZGJiY2U0ZDFkMWJlMGQxNTM0NGU0M2YwNmU3OGI3ZjUwLi42ZDUxYzJlNzg5MThmNTUyMzg0
NTQyZTZiNDY5ZWZjMDI2YmYyOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNzIsOCArNzIsOCBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpyZWdpc3RlckJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcihjb25zdCBBdG9taWNT
dHJpbmcmIHByb3RvYwogICAgIGJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVy
TWFwKCkuYWRkKHByb3RvY29sLCBsb2FkZXIpOwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVzb3Vy
Y2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKLSAgICA6IGQoc3RkOjptYWtlX3VuaXF1ZTxS
ZXNvdXJjZUhhbmRsZUludGVybmFsPih0aGlzLCBjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRl
ZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwo
cmVxdWVzdC51cmwoKSkpKQorUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291
cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRD
b250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAgOiBkKHN0
ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywgY29udGV4dCwgcmVx
dWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxk
Q29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZikpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewogICAgICAgICBzY2hl
ZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtODYsMTIgKzg2LDEyIEBAIFJlc291
cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0CiAgICAgfQogfQogCi1SZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9v
bCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKK1JlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQogewogICAgIGlmIChhdXRvIGNvbnN0cnVjdG9y
ID0gYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5nZXQocmVxdWVzdC51cmwo
KS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCiAgICAgICAgIHJldHVybiBj
b25zdHJ1Y3RvcihyZXF1ZXN0LCBjbGllbnQpOwogCi0gICAgYXV0byBuZXdIYW5kbGUgPSBhZG9w
dFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJz
TG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CisgICAgYXV0byBuZXdIYW5kbGUgPSBhZG9w
dFJlZigqbmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJz
TG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikp
OwogCiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0Zh
aWx1cmUpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0hhbmRsZSk7CkBAIC0yMTAsNiArMjEw
LDExIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRTbmlmZigpIGNvbnN0CiAg
ICAgcmV0dXJuIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmOwogfQogCitib29sIFJlc291cmNlSGFu
ZGxlOjpzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQt
Pm1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmY7Cit9CisKIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnNob3VsZENvbnRlbnRTbmlmZlVSTChjb25zdCBVUkwmIHVybCkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaAppbmRleCA5ZTc5NmYxMmFhMjM3OTI5OGZmMzBiNWFjYzdlNzI0YWYzZmQ3Mzg2Li4wM2Ji
ODFjNDFkZTYyOTBhZTI4OTk2MTUzMzRjNmQ5MmNhYzEyNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC05MiwxMSArOTIsMTEg
QEAgY2xhc3MgVGltZXI7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlIDogcHVibGljIFJlZkNvdW50
ZWQ8UmVzb3VyY2VIYW5kbGU+LCBwdWJsaWMgQXV0aGVudGljYXRpb25DbGllbnQgewogcHVibGlj
OgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0
ZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRl
KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBi
b29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKTsKIAogI2lmIFVTRShT
T1VQKQotICAgIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShTb3VwTmV0d29y
a1Nlc3Npb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCos
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIHN0YXRp
YyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYpOwogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5SZXNvdXJjZUhh
bmRsZSgpOwpAQCAtMTY0LDYgKzE2NCw4IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZENvbnRl
bnRTbmlmZigpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIHNob3VsZENvbnRlbnRTbmlmZlVSTChj
b25zdCBVUkwmKTsKIAorICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSBjb25z
dDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGZvcmNlQ29udGVudFNuaWZmaW5n
KCk7CiAKICNpZiBVU0UoQ1VSTCkgfHwgVVNFKFNPVVApCkBAIC0yMzUsNyArMjM3LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQnVpbHRpblN5bmNocm9ub3VzTG9hZGVyKGNv
bnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2wsIEJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcik7CiAK
IHByb3RlY3RlZDoKLSAgICBSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2Fk
aW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVzb3VyY2VIYW5kbGUoTmV0d29y
a2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogCiAgICAgYm9vbCB1c2VzQXN5bmNDYWxsYmFja3Mo
KSBjb25zdDsKIApAQCAtMjQ3LDcgKzI0OSw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogI2lmIFVT
RShTT1VQKQotICAgIFJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVzb3VyY2VIYW5kbGUoU291cE5ldHdv
cmtTZXNzaW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQq
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICNlbmRpZgogCiAgICAgdm9pZCBwbGF0Zm9ybVNldERl
ZmVyc0xvYWRpbmcoYm9vbCk7CkBAIC0yNjcsMTUgKzI2OSwxNSBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIHZvaWQgY3JlYXRlQ0ZVUkxDb25uZWN0
aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVz
KTsKKyAgICB2b2lkIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJv
cGVydGllcyk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVVTRShDRlVSTENPTk5F
Q1RJT04pCi0gICAgdm9pZCBjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hl
ZHVsaW5nQmVoYXZpb3IpOworICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVn
YXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9y
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhVVNFKENGVVJMQ09OTkVDVElPTikK
LSAgICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdC
ZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpjb25uZWN0aW9uUHJvcGVydGllcyk7CisgICAgdm9pZCBj
cmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29ubmVjdGlvblBy
b3BlcnRpZXMpOwogI2VuZGlmCiAKICNpZiBVU0UoU09VUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXgg
M2I3MTQ0YjU4NGE1NzE5Mzk0Njc1ZDljOTI5Yzc2NzU4OTQ1NGZmYS4uNWJiNzQ1YjQ0YTgyMmRk
ODViMzk1MDhmNDkxZjQ5YjY4NDcyODU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTcyLDcgKzcy
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwo
UmVzb3VyY2VIYW5kbGUqIGxvYWRlciwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwg
Ym9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKKyAgICBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCiAgICAgICAgIDogbV9jb250ZXh0
KGNvbnRleHQpCiAgICAgICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICAgICAsIG1fZmlyc3RS
ZXF1ZXN0KHJlcXVlc3QpCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3Bh
cnRpdGlvbihyZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCkpCiAgICAgICAgICwgbV9kZWZlcnNMb2Fk
aW5nKGRlZmVyc0xvYWRpbmcpCiAgICAgICAgICwgbV9zaG91bGRDb250ZW50U25pZmYoc2hvdWxk
Q29udGVudFNuaWZmKQorICAgICAgICAsIG1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgeyBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiB9CiAgICAgICAgICwgbV91c2VzQXN5bmNDYWxsYmFj
a3MoY2xpZW50ICYmIGNsaWVudC0+dXNlc0FzeW5jQ2FsbGJhY2tzKCkpCiAjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICAgICAgLCBtX2N1cnJlbnRSZXF1ZXN0KHJlcXVlc3QpCkBAIC0xMTUs
NiArMTE2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgYm9v
bCBtX3Nob3VsZENvbnRlbnRTbmlmZjsKKyAgICBib29sIG1fc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmY7CiAgICAgYm9vbCBtX3VzZXNBc3luY0NhbGxiYWNrczsKICNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQogICAgIFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+IG1fY29ubmVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDYzZmNlOGIzZjhmZmI5YTNiNWE4NDEyYTQ0ZmQ1ODQx
NGViY2RjZWMuLmZkMmJhNmJlMzc0YTQ4NDBlMTYzMzgzMjk5N2NmZWQwZDQ5ODkyMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGTmV0LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBpbmxpbmUgQ0ZTdHJp
bmdSZWYgc2hvdWxkU25pZmZDb25uZWN0aW9uUHJvcGVydHkoKQogI2VuZGlmCiB9CiAKLXZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9y
IHNjaGVkdWxpbmdCZWhhdmlvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVudFByb3BlcnRpZXMpCit2
b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29u
dGVudEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5nQmVoYXZpb3Is
IENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVzKQogewogICAgIGlmICgoIWQtPm1fdXNl
ci5pc0VtcHR5KCkgfHwgIWQtPm1fcGFzcy5pc0VtcHR5KCkpICYmICFmaXJzdFJlcXVlc3QoKS51
cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAgICAgLy8gQ3JlZGVudGlhbHMg
Zm9yIGZ0cCBjYW4gb25seSBiZSBwYXNzZWQgaW4gVVJMLCB0aGUgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlIGRlbGVnYXRlIGNhbGwgd29uJ3QgYmUgbWFkZS4KQEAgLTE2MSw3ICsx
NjEsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBhdXRvIHJlcXVlc3QgPSBhZG9w
dENGKENGVVJMUmVxdWVzdENyZWF0ZU11dGFibGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGZp
cnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChVcGRhdGVIVFRQQm9keSkpKTsKICAgICBpZiAoYXV0
byBzdG9yYWdlU2Vzc2lvbiA9IGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCkpCiAgICAgICAgIF9D
RlVSTFJlcXVlc3RTZXRTdG9yYWdlU2Vzc2lvbihyZXF1ZXN0LmdldCgpLCBzdG9yYWdlU2Vzc2lv
bik7Ci0gICAgCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMzAyCisgICAgaWYgKCFzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikK
KyAgICAgICAgX0NGVVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkocmVxdWVzdC5nZXQoKSwg
a0NGVVJMUmVxdWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrLCBrQ0ZCb29sZWFuVHJ1ZSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7Cisj
ZW5kaWYKKwogICAgIGlmICghc2hvdWxkQ29udGVudFNuaWZmKQogICAgICAgICBfQ0ZVUkxSZXF1
ZXN0U2V0UHJvdG9jb2xQcm9wZXJ0eShyZXF1ZXN0LmdldCgpLCBzaG91bGRTbmlmZkNvbm5lY3Rp
b25Qcm9wZXJ0eSgpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCkBAIC0yNzcsNyArMjg0LDcgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogCiAgICAgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVk
dWxpbmdCZWhhdmlvciA9IGNsaWVudCgpLT5sb2FkaW5nU3luY2hyb25vdXNYSFIoKSA/IFNjaGVk
dWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMgOiBTY2hlZHVsaW5nQmVoYXZpb3I6OkFzeW5jaHJv
bm91czsKIAotICAgIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSwgZC0+bV9zaG91bGRDb250ZW50U25pZmYsIHNjaGVkdWxpbmdCZWhhdmlvciwgY2xpZW50
KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKHRoaXMpLmdldCgpKTsKKyAgICBjcmVhdGVDRlVSTENv
bm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGQtPm1fc2hvdWxkQ29udGVudFNu
aWZmLCBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzY2hlZHVsaW5nQmVoYXZpb3Is
IGNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyh0aGlzKS5nZXQoKSk7CiAKICAgICBkLT5t
X2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+c2V0dXBDb25uZWN0aW9uU2NoZWR1bGluZyhkLT5tX2Nvbm5l
Y3Rpb24uZ2V0KCkpOwogICAgIENGVVJMQ29ubmVjdGlvblN0YXJ0KGQtPm1fY29ubmVjdGlvbi5n
ZXQoKSk7CkBAIC01ODYsNyArNTkzLDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3Jt
TG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAgICAg
U3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNsaWVudC5zZXRBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9w
dFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJmNsaWVudCwgZmFsc2Ug
LypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOworICAgIGJv
b2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0g
dHJ1ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRs
ZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50
U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAKICAgICBoYW5kbGUtPmQtPm1f
c3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lv
bigpOwogCkBAIC01OTYsNyArNjA2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1M
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICB9
CiAKICAgICBoYW5kbGUtPmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBSZXNvdXJjZUhhbmRsZTo6c2hv
dWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLAotICAgICAgICBTY2hlZHVsaW5nQmVo
YXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGll
cyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZigpLCBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzLCBoYW5kbGUtPmNs
aWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyhoYW5kbGUuZ2V0KCkpLmdldCgpKTsKIAogICAg
IENGVVJMQ29ubmVjdGlvblNjaGVkdWxlV2l0aFJ1bkxvb3AoaGFuZGxlLT5jb25uZWN0aW9uKCks
IENGUnVuTG9vcEdldEN1cnJlbnQoKSwgc3luY2hyb25vdXNMb2FkUnVuTG9vcE1vZGUoKSk7CiAg
ICAgQ0ZVUkxDb25uZWN0aW9uU2NoZWR1bGVEb3dubG9hZFdpdGhSdW5Mb29wKGhhbmRsZS0+Y29u
bmVjdGlvbigpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIHN5bmNocm9ub3VzTG9hZFJ1bkxvb3BN
b2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCAzOTQwZGJlMGJhY2Q3ZDBjMjI2NjY0ZDU5Mjlj
ZTUyYzE2MzBjZmE2Li45MWE2NWI1NjhjNTdiNmQxYzJlM2Q1YzFjNGIwNjYxNDk3YWNiM2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQpAQCAtMTI0LDkgKzEyNCw5IEBAIHN0YXRpYyBib29sIHN5bmNocm9u
b3VzV2lsbFNlbmRSZXF1ZXN0RW5hYmxlZCgpCiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1Mp
Ci12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
LCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yKQordm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvcikK
ICNlbHNlCi12b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVs
ZWdhdGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVu
dFNuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25h
cnkgKmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvciwgTlNEaWN0aW9uYXJ5ICpj
b25uZWN0aW9uUHJvcGVydGllcykKICNlbmRpZgogewogI2lmICFIQVZFKFRJTUlOR0RBVEFPUFRJ
T05TKQpAQCAtMTYwLDIwICsxNjAsMjIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICB9
CiAKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpLm5zVVJMUmVx
dWVzdChVcGRhdGVIVFRQQm9keSk7Ci0gICAgaWYgKCFzaG91bGRDb250ZW50U25pZmYpIHsKLSAg
ICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBt
dXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFBy
b3BlcnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5
U2hvdWxkU25pZmZdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9
CiAKKyAgICBhdXRvIG11dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbbnNSZXF1ZXN0IG11dGFibGVD
b3B5XSk7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMgorICAgIGlmICghc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAg
ICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChZRVMpIGZvcktleTooTlNTdHJpbmcg
KilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2tdOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworI2VuZGlmCiAjaWYgSEFW
RShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0
aXRpb24gPSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRp
dGlvbihmaXJzdFJlcXVlc3QoKSk7Ci0gICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHko
KSkgewotICAgICAgICBOU011dGFibGVVUkxSZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNS
ZXF1ZXN0IG11dGFibGVDb3B5XSBhdXRvcmVsZWFzZV07CisgICAgaWYgKCFzdG9yYWdlUGFydGl0
aW9uLmlzRW1wdHkoKSkKICAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpzdG9y
YWdlUGFydGl0aW9uIGZvcktleTpAIl9fU1RPUkFHRV9QQVJUSVRJT05fSURFTlRJRklFUiJdOwot
ICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CiAjZW5kaWYKKyAgICBp
ZiAoIXNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9w
ZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNo
b3VsZFNuaWZmXTsKKyAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdC5hdXRvcmVsZWFzZSgp
OwogCiAgICAgaWYgKGQtPm1fc3RvcmFnZVNlc3Npb24pCiAgICAgICAgIG5zUmVxdWVzdCA9IFtj
b3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBu
c1JlcXVlc3QpIGF1dG9yZWxlYXNlXTsKQEAgLTI1MSwxMiArMjUzLDE0IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KCkKICAgICAgICAgUmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLAogICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQt
PmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKKyAgICAgICAgZC0+bV9zaG91bGRD
b250ZW50RW5jb2RpbmdTbmlmZiwKICAgICAgICAgc2NoZWR1bGluZ0JlaGF2aW9yKTsKICNlbHNl
CiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bWFr
ZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwKICAgICAgICAgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UsCiAgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQt
Pm1fY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpLAorICAgICAgICBk
LT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLAogICAgICAgICBzY2hlZHVsaW5nQmVoYXZp
b3IsCiAgICAgICAgIChOU0RpY3Rpb25hcnkgKiljbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRp
ZXModGhpcykuZ2V0KCkpOwogI2VuZGlmCkBAIC0zOTcsNyArNDAxLDEwIEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4CiAgICAgU3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwogICAgIGNs
aWVudC5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09
IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVz
dCwgJmNsaWVudCwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50
U25pZmYqLykpOworICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmID0gdHJ1ZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmID0gdHJ1ZTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVm
KG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmY2xpZW50LCBkZWZlcnNMb2Fk
aW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKSk7CiAK
ICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lv
bigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC00MTIsMTIgKzQxOSwxNCBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleAogICAgICAgICBoYW5kbGUtPm1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAogICAg
ICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQoKSwKKyAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZigpLAogICAgICAgICBTY2hlZHVsaW5nQmVoYXZpb3I6OlN5bmNocm9ub3VzKTsK
ICNlbHNlCiAgICAgaGFuZGxlLT5jcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGhhbmRs
ZS0+bWFrZURlbGVnYXRlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSwgLy8gQSBzeW5jaHJv
bm91cyByZXF1ZXN0IGNhbm5vdCB0dXJuIGludG8gYSBkb3dubG9hZCwgc28gdGhlcmUgaXMgbm8g
bmVlZCB0byBwcm94eSB0aGUgZGVsZWdhdGUuCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlLAogICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigpIHx8IChjb250ZXh0
ICYmIGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSksCisgICAgICAg
IGhhbmRsZS0+c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSwKICAgICAgICAgU2NoZWR1bGlu
Z0JlaGF2aW9yOjpTeW5jaHJvbm91cywKICAgICAgICAgKE5TRGljdGlvbmFyeSAqKWhhbmRsZS0+
Y2xpZW50KCktPmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKGhhbmRsZS5nZXQoKSkuZ2V0KCkpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDc0OTk5NzJlZmU4ZTZmYmExMDg1MjllMDQw
YjNkNzg1NmY3ODQwMDAuLjNiMjU2ZDdiZmRiMzYyZWM1ZjQ1YjgzNThiMzRkZjYyZGFiZWI0YjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC05MCw5ICs5MCw5IEBAIFNvdXBTZXNzaW9uKiBS
ZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vzc2lvbigpCiAgICAgcmV0dXJuIG1fc2Vzc2lv
biA/IG1fc2Vzc2lvbi0+c291cFNlc3Npb24oKSA6IHNlc3Npb25Gcm9tQ29udGV4dChtX2NvbnRl
eHQuZ2V0KCkpOwogfQogCi1SZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCitSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wg
ZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYpCiB7Ci0gICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJl
c291cmNlSGFuZGxlKHNlc3Npb24sIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmKSk7CisgICAgYXV0byBuZXdIYW5kbGUgPSBhZG9wdFJlZigqbmV3IFJl
c291cmNlSGFuZGxlKHNlc3Npb24sIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikpOwogCiAgICAgaWYg
KG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAg
ICAgIHJldHVybiBXVEZNb3ZlKG5ld0hhbmRsZSk7CkBAIC0xMDMsOCArMTAzLDggQEAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKFNvdXBOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVzb3VyY2VIYW5k
bGU6OlJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29s
IGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQotICAgIDogZChzdGQ6Om1h
a2VfdW5pcXVlPFJlc291cmNlSGFuZGxlSW50ZXJuYWw+KHRoaXMsIG51bGxwdHIsIHJlcXVlc3Qs
IGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRl
bnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5k
bGUoU291cE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYp
CisgICAgOiBkKHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhpcywg
bnVsbHB0ciwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25p
ZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpLCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZikpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewog
ICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtNzM4LDcgKzcz
OCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gUmVzb3VyY2VIYW5kbGU6OnJlbGVhc2VGb3JEb3dubG9hZChSZXNvdXJjZUhhbmRsZUNsaWVu
dCogZG93bmxvYWRDbGllbnQpCiB7CiAgICAgLy8gV2UgZG9uJ3QgYWRvcHQgdGhlIHJlZiwgYXMg
aXQgd2lsbCBiZSByZWxlYXNlZCBieSBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24sIHdoaWNo
IHNob3VsZCBhbHdheXMgcnVuLgotICAgIFJlc291cmNlSGFuZGxlKiBuZXdIYW5kbGUgPSBuZXcg
UmVzb3VyY2VIYW5kbGUoZC0+bV9jb250ZXh0LmdldCgpLCBmaXJzdFJlcXVlc3QoKSwgbnVsbHB0
ciwgZC0+bV9kZWZlcnNMb2FkaW5nLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgUmVz
b3VyY2VIYW5kbGUqIG5ld0hhbmRsZSA9IG5ldyBSZXNvdXJjZUhhbmRsZShkLT5tX2NvbnRleHQu
Z2V0KCksIGZpcnN0UmVxdWVzdCgpLCBudWxscHRyLCBkLT5tX2RlZmVyc0xvYWRpbmcsIGQtPm1f
c2hvdWxkQ29udGVudFNuaWZmLCBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICAg
ICBuZXdIYW5kbGUtPnJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwogICAgIHN0ZDo6c3dhcChk
LCBuZXdIYW5kbGUtPmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRl
eCA3OWQ4YzM4YmM3ODE4OWEyM2E3YjBlOGY1MmJiNzgwOWNjZDM1YWIyLi4wOTZmMDU1NWFjMWVl
NDUyYjY0NWEyYmI5Y2VkNTJlMTY1MTU0YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKQEAgLTYxMyw2ICs2MTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgb3B0aW9ucy5pbml0aWF0b3IgPSBjYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzKCkueG1saHR0cHJlcXVlc3Q7CiAgICAgb3B0aW9ucy5zYW1l
T3JpZ2luRGF0YVVSTEZsYWcgPSBTYW1lT3JpZ2luRGF0YVVSTEZsYWc6OlNldDsKICAgICBvcHRp
b25zLmZpbHRlcmluZ1BvbGljeSA9IFJlc3BvbnNlRmlsdGVyaW5nUG9saWN5OjpFbmFibGU7Cisg
ICAgb3B0aW9ucy5zbmlmZkNvbnRlbnRFbmNvZGluZyA9IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5n
UG9saWN5OjpEb05vdFNuaWZmOwogCiAgICAgaWYgKG1fdGltZW91dE1pbGxpc2Vjb25kcykgewog
ICAgICAgICBpZiAoIW1fYXN5bmMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggMWVhZmVlZGQ5ZDZjMTgxZjY0MWQ5YzQy
ODI1YmM5YmM1OWNhYjgzMS4uZjYzYWRhZjA4M2M0MTNmN2JkZDNmZjhmN2FlYjdhZmY2OTUxMTMy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmNwcApAQCAtMTEyLDcgKzExMiwxMCBAQCB2b2lkIERvd25sb2FkOjpzdGFydCgpCiB7
CiAgICAgaWYgKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbElzQmxvYigpKSB7CiAgICAgICAgIG1f
ZG93bmxvYWRDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2JEb3dubG9hZENsaWVudD4oKnRo
aXMpOwotICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShu
dWxscHRyLCBtX3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGZhbHNlLCBmYWxzZSk7
CisgICAgICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgICAgICBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmID0gdHJ1ZTsKKyAgICAgICAgbV9yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUobnVsbHB0ciwgbV9yZXF1ZXN0LCBtX2Rvd25sb2FkQ2xpZW50LmdldCgpLCBkZWZl
cnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
KTsKICAgICAgICAgZGlkU3RhcnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyNCw3
ICsxMjcsMTAgQEAgdm9pZCBEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIKIHsKICAgICBpZiAobV9yZXF1ZXN0
LnVybCgpLnByb3RvY29sSXNCbG9iKCkpIHsKICAgICAgICAgbV9kb3dubG9hZENsaWVudCA9IHN0
ZDo6bWFrZV91bmlxdWU8QmxvYkRvd25sb2FkQ2xpZW50PigqdGhpcyk7Ci0gICAgICAgIG1fcmVz
b3VyY2VIYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG51bGxwdHIsIG1fcmVxdWVzdCwg
bV9kb3dubG9hZENsaWVudC5nZXQoKSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgYm9vbCBkZWZl
cnNMb2FkaW5nID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gZmFs
c2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPSB0cnVlOworICAg
ICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShudWxscHRyLCBt
X3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGRlZmVyc0xvYWRpbmcsIHNob3VsZENv
bnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogICAgICAgICBkaWRTdGFy
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGJiN2YxNzUxZmZlNGExOWJlNTM4ODNj
ZDVlMWIxYWUzODM4MDI1NTcuLmI4OTE4NzlmZTAwNzk4MWNmZjcxNjI5ZDcyMzZlNTBmMTI4Yjlk
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFz
ay5jcHAKQEAgLTUzLDEwICs1MywxMCBAQCBSZWY8TmV0d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0
YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdAogICAgICAg
ICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFy
YW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0
dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0
ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRl
cnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkpOwor
ICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwg
cGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBw
YXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsKICNlbmRpZgog
I2lmIFVTRShTT1VQKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vz
c2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJldHVybiBO
ZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJl
cXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29u
dGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9s
aWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qp
OwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHAKaW5kZXggYTNjOTVkZDYzYWRlMjZhOWFhMmYxNTA4ZGRmMGQ2M2UyZWQxNWYwNS4uOWZh
NWE3Mzg3NTNhZTEzZWI5NzczOTBlMmJiNDNmMmViNDUzNjk3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBOZXR3
b3JrTG9hZDo6TmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmIGNsaWVudCwgTmV0d29ya0xv
YWRQYXJhbWV0ZXJzJiYgcGFyYQogICAgICwgbV9uZXR3b3JraW5nQ29udGV4dChSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6Y3JlYXRlKG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVy
cy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSkKICAgICAsIG1fY3Vy
cmVudFJlcXVlc3QobV9wYXJhbWV0ZXJzLnJlcXVlc3QpCiB7Ci0gICAgbV9oYW5kbGUgPSBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0KCksIG1fcGFyYW1ldGVy
cy5yZXF1ZXN0LCB0aGlzLCBtX3BhcmFtZXRlcnMuZGVmZXJzTG9hZGluZywgbV9wYXJhbWV0ZXJz
LmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9PSBTbmlmZkNvbnRlbnQpOworICAgIG1faGFuZGxlID0g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX25ldHdvcmtpbmdDb250ZXh0LmdldCgpLCBtX3BhcmFt
ZXRlcnMucmVxdWVzdCwgdGhpcywgbV9wYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcsIG1fcGFyYW1l
dGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPT0gU25pZmZDb250ZW50LCBtX3BhcmFtZXRlcnMu
Y29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPT0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3k6OlNuaWZmKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCAyNWFhNTA1ODBkZTlhOThh
Y2RjMDI3YTgxMDdhMjhlYTg5MzQ3NTc4Li44MzI3ODk3OTg4YjY0ZmYzMmU0MTgzYTU5ODA2M2U0
YWY1ZmNjYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCB7IFBBTDo6U2Vzc2lvbklEOjplbXB0eVNlc3Npb25JRCgpIH07
CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdlYkNvcmU6OlNuaWZm
Q29udGVudCB9OworICAgIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IGNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25p
ZmZpbmdQb2xpY3k6OlNuaWZmIH07CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeyBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6RG9Ob3RVc2UgfTsKICAgICBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5IGNs
aWVudENyZWRlbnRpYWxQb2xpY3kgeyBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5OjpD
YW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyB9OwogICAgIGJvb2wgc2hvdWxkRm9sbG93UmVk
aXJlY3RzIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAppbmRleCBlOTYzNTc2
MmI2NWY1MzI0MTJmYmVmZGQxMTM3NGRjZDNhNTQ5NWQwLi5jZDIxNjU3MmYyNTdkMDkxYzJmZGUz
ZjI0YWRhZGFmYmVkNzBjYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcApAQCAtNzQs
NiArNzQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIH0KIAogICAgIGVuY29kZXIuZW5jb2RlRW51
bShjb250ZW50U25pZmZpbmdQb2xpY3kpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShjb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oY2xpZW50Q3JlZGVudGlh
bFBvbGljeSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNob3VsZFByZWNvbm5lY3RPbmx5KTsK
QEAgLTE0MSw2ICsxNDIsOCBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyYwogCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmNvbnRlbnRTbmlmZmluZ1BvbGljeSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuY29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3kpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LnN0b3JlZENyZWRlbnRpYWxzUG9saWN5KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5j
bGllbnRDcmVkZW50aWFsUG9saWN5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNw
cAppbmRleCA2OTEzOTY1ODAyOGYzZDQyOWU3YzZlOWFmOTQ1Y2UxOGQ2NDMyZWRlLi5hZjYzNjcw
YzkxNGE1ZWQyYjBiMzc4ZTgxN2ZlZTUyODI5YjEyOWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZUxvYWQuY3BwCkBAIC01Niw2ICs1Niw3IEBAIFNwZWN1bGF0aXZlTG9hZDo6U3BlY3Vs
YXRpdmVMb2FkKENhY2hlJiBjYWNoZSwgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgY29u
CiAgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpOwogICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6VXNlOwogICAgIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9s
aWN5ID0gRG9Ob3RTbmlmZkNvbnRlbnQ7CisgICAgcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdT
bmlmZmluZ1BvbGljeSA9IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZjsKICAg
ICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBtX29yaWdpbmFsUmVxdWVzdDsKICNpZiBVU0UoTkVUV09S
S19TRVNTSU9OKQogICAgIG1fbmV0d29ya0xvYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtM
b2FkPigqdGhpcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgKlNlc3Npb25UcmFja2VyOjpuZXR3b3Jr
U2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLmgKaW5kZXggNzVmYzk3ZGY5YzM4MWY1M2RmMTFjNzRlMDcyYzIyYTQ1NWViMWI2ZC4uODg3
NWM5Y2U5ZmM1ZTI3MWE1MmIzZTg3OTAyMjNiMmExYTgwYjlmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
aApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0
d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBm
cmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3Jr
RGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlm
ZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25u
ZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRh
VGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGll
bnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6
Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYs
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVj
dE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIHN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5KSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNs
aWVudCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlm
Ziwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5KSk7CiAgICAgfQogCiAgICAgfk5l
dHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBXZWJD
b3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIHsgcmV0dXJuIG1f
bmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrQ29j
b2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5KTsKKyAgICBOZXR3b3JrRGF0YVRhc2tD
b2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBX
ZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1Nu
aWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIFByZWNvbm5lY3RPbmx5KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRp
Y2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdl
Q29tcGxldGlvbkhhbmRsZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZGY2NGUzOWJl
NjE1NWNkZmU2NTBlYjM0MTcxM2JiNTYxZjg1NzQ3OC4uYTc1OWZjYzE2ZDE4YmVlMDc0Yzk0NTRm
YTllMDU1MWVkMTdiYWI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC03NCw3ICs3NCw3IEBA
IHN0YXRpYyBmbG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICByZXR1cm4gTlNVUkxTZXNzaW9uVGFza1ByaW9y
aXR5RGVmYXVsdDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0Nv
Y29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVu
dCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxz
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25s
eSBzaG91bGRQcmVjb25uZWN0T25seSkKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0
YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50
JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVk
ZW50aWFscywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25p
ZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAgIDogTmV0d29ya0Rh
dGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qp
CiB7CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQpAQCAtMTA0
LDI0ICsxMDQsMjYgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29h
KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICNlbmRpZgogICAgIAogICAg
IE5TVVJMUmVxdWVzdCAqbnNSZXF1ZXN0ID0gcmVxdWVzdC5uc1VSTFJlcXVlc3QoV2ViQ29yZTo6
VXBkYXRlSFRUUEJvZHkpOwotICAgIGlmIChzaG91bGRDb250ZW50U25pZmYgPT0gV2ViQ29yZTo6
RG9Ob3RTbmlmZkNvbnRlbnQgfHwgdXJsLnByb3RvY29sSXMoImZpbGUiKSkgewotICAgICAgICBO
U011dGFibGVVUkxSZXF1ZXN0ICptdXRhYmxlUmVxdWVzdCA9IFtbbnNSZXF1ZXN0IG11dGFibGVD
b3B5XSBhdXRvcmVsZWFzZV07Ci0gICAgICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6
QChOTykgZm9yS2V5OihOU1N0cmluZyAqKV9rQ0ZVUkxDb25uZWN0aW9uUHJvcGVydHlTaG91bGRT
bmlmZl07Ci0gICAgICAgIG5zUmVxdWVzdCA9IG11dGFibGVSZXF1ZXN0OwotICAgIH0KIAorICAg
IGF1dG8gbXV0YWJsZVJlcXVlc3QgPSBhZG9wdE5TKFtuc1JlcXVlc3QgbXV0YWJsZUNvcHldKTsK
KyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMzAyCisgICAgaWYgKHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID09IFdlYkNvcmU6OkNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpEb05vdFNuaWZmKQorICAgICAgICBbbXV0YWJs
ZVJlcXVlc3QgX3NldFByb3BlcnR5OkAoWUVTKSBmb3JLZXk6KE5TU3RyaW5nICopa0NGVVJMUmVx
dWVzdENvbnRlbnREZWNvZGVyU2tpcFVSTENoZWNrXTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKKyNlbmRpZgorICAgIGlmIChzaG91bGRDb250
ZW50U25pZmYgPT0gV2ViQ29yZTo6RG9Ob3RTbmlmZkNvbnRlbnQgfHwgdXJsLnByb3RvY29sSXMo
ImZpbGUiKSkKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKE5PKSBmb3JL
ZXk6KE5TU3RyaW5nICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmXTsKICAg
ICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4o
bV9zZXNzaW9uLmdldCgpKTsKKyAgICBpZiAoIWNvY29hU2Vzc2lvbi5tX2JvdW5kSW50ZXJmYWNl
SWRlbnRpZmllci5pc051bGwoKSkKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IHNldEJvdW5kSW50
ZXJmYWNlSWRlbnRpZmllcjpjb2NvYVNlc3Npb24ubV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXJd
OworICAgIG5zUmVxdWVzdCA9IG11dGFibGVSZXF1ZXN0LmF1dG9yZWxlYXNlKCk7CisKICAgICBp
ZiAoc2Vzc2lvbi5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zaG91bGRCbG9ja0Nvb2tpZXMocmVx
dWVzdCkpIHsKICAgICAgICAgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAgICAgICAgIG1fc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgPSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAg
ICAgfQogCi0gICAgaWYgKCFjb2NvYVNlc3Npb24ubV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIu
aXNOdWxsKCkpIHsKLSAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3Qg
PSBbW25zUmVxdWVzdCBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJs
ZVJlcXVlc3Qgc2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOmNvY29hU2Vzc2lvbi5tX2JvdW5k
SW50ZXJmYWNlSWRlbnRpZmllcl07Ci0gICAgICAgIG5zUmVxdWVzdCA9IG11dGFibGVSZXF1ZXN0
OwotICAgIH0KLQogICAgIGlmIChzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKSB7CiAgICAgICAgIG1fdGFzayA9IFtjb2NvYVNl
c3Npb24ubV9zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlIGRhdGFUYXNrV2l0aFJlcXVlc3Q6
bnNSZXF1ZXN0XTsKICAgICAgICAgQVNTRVJUKCFjb2NvYVNlc3Npb24ubV9kYXRhVGFza01hcFdp
dGhDcmVkZW50aWFscy5jb250YWlucyhbbV90YXNrIHRhc2tJZGVudGlmaWVyXSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1Nv
dXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFz
a1NvdXAuY3BwCmluZGV4IGU3MmMxZjY5NWU3ZmRmNzdmNTdiZmJjNWRlOGNiNGQxMzc0ZWJiOTcu
LjRhN2U5MTZmYmI2NjJlNTY3Y2M4NzBiMzAzNWM0ODZiZTEyMmFiNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291
cC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25z
dCBzaXplX3QgZ0RlZmF1bHRSZWFkQnVmZmVyU2l6ZSA9IDgxOTI7CiAKLU5ldHdvcmtEYXRhVGFz
a1NvdXA6Ok5ldHdvcmtEYXRhVGFza1NvdXAoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCitOZXR3b3JrRGF0YVRhc2tT
b3VwOjpOZXR3b3JrRGF0YVRhc2tTb3VwKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3Jr
RGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgQ29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6
Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGll
bnQsIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgICwgbV9zaG91bGRDb250
ZW50U25pZmYoc2hvdWxkQ29udGVudFNuaWZmKQogICAgICwgbV90aW1lb3V0U291cmNlKFJ1bkxv
b3A6Om1haW4oKSwgdGhpcywgJk5ldHdvcmtEYXRhVGFza1NvdXA6OnRpbWVvdXRGaXJlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRh
c2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFU
YXNrU291cC5oCmluZGV4IDM5MGNkNDhjOTkxYWQ2NTU0NzFkYjE3NTgxMjc3YTRkNDliYjJiZDMu
LjM3OWE3ZjA0MmU5MTZkOWE2NzEwNDYxY2U0MjU4NDkyZjY1NmZmYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAu
aApAQCAtMzYsMTUgKzM2LDE1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3Jr
RGF0YVRhc2tTb3VwIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9s
aWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5ldHdvcmtEYXRhVGFza1NvdXAoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5l
dHdvcmtEYXRhVGFza1NvdXAoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
Ziwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0KIAog
ICAgIH5OZXR3b3JrRGF0YVRhc2tTb3VwKCk7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFU
YXNrU291cChOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CisgICAgTmV0d29ya0RhdGFUYXNrU291cChOZXR3b3Jr
U2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogCiAgICAg
dm9pZCBzdXNwZW5kKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWwoKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmNwcAppbmRleCA0NTA3N2E0MGZhZWUxOWZjNDNiMjRlNmFkYTc5ZTAzMWE5Nzc1ZjY2Li4x
MTQxZDBiZjk3OWUzMzRhM2U3ZGVlNTg2M2Q1NmIwODc2OWMzYmM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBA
IC0yNDIsNiArMjQyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJv
bU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBMT0coTmV0d29y
a1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9h
ZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0
aCBwcmlvcml0eSAlZCIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRh
dGEoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHko
KSkpOwogCiAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSA9
IHJlc291cmNlTG9hZGVyLnNob3VsZFNuaWZmQ29udGVudCgpID8gU25pZmZDb250ZW50IDogRG9O
b3RTbmlmZkNvbnRlbnQ7CisgICAgQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSByZXNvdXJjZUxvYWRlci5zaG91bGRTbmlmZkNvbnRl
bnRFbmNvZGluZygpID8gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIDogQ29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OkRvTm90U25pZmY7CiAgICAgU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSByZXNvdXJjZUxvYWRlci5zaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSA6
IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKIAogICAgIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwpAQCAtMjUxLDYgKzI1Miw3IEBAIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJj
ZUxvYWRlciYgcmVzb3VyY2VMCiAgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFn
ZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFy
YW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBjb250ZW50U25pZmZpbmdQb2xpY3k7Cisg
ICAgbG9hZFBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBjb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50
aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIC8vIElmIHRoZXJlIGlz
IG5vIFdlYkZyYW1lIHRoZW4gdGhpcyByZXNvdXJjZSBjYW5ub3QgYmUgYXV0aGVudGljYXRlZCB3
aXRoIHRoZSBjbGllbnQuCiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGlj
eSA9ICh3ZWJGcmFtZSAmJiB3ZWJQYWdlICYmIHJlc291cmNlTG9hZGVyLmlzQWxsb3dlZFRvQXNr
VXNlckZvckNyZWRlbnRpYWxzKCkpID8gQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5QXNrQ2xp
ZW50Rm9yQ3JlZGVudGlhbHMgOiBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGll
bnRGb3JDcmVkZW50aWFsczsKQEAgLTQwNSw2ICs0MDcsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
LCB1bgogICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5z
ZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVu
dFNuaWZmaW5nUG9saWN5ID0gU25pZmZDb250ZW50OworICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6
OlNuaWZmOwogICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlh
bFBvbGljeSA9IGNsaWVudENyZWRlbnRpYWxQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IGNvbnRleHQtPnNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZjBkYzU5NTYyNjAx
YTYyZDIyMjE1NTYzMTYwMmNkMGU0ZTEzMWNhLi5hMmRkMzg2NzRkYzc4NzJhNzZlNmQ2MjE0OGEy
N2U4YWU5MWY5NDJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAKIDIwMTctMTAtMjcgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0IHNob3Vs
ZCBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NTk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzgy
MjI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXggdXAgdGhlIHRlc3QgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlw
ZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwgdG8KKyAgICAgICAgYWN0dWFsbHkgY2hlY2sgdGhh
dCB3ZSBkbyBub3Qgc25pZmYgY29udGVudCBlbmNvZGluZy4gQ0ZOZXR3b3JrIG9ubHkgc25pZmZz
IHRoZSBVUkwKKyAgICAgICAgZm9yIHRoZSBjb250ZW50IGVuY29kaW5nIHdoZW4gdGhlIGZpbGVu
YW1lIGVuZHMgd2l0aCBrbm93biBmaWxlIGV4dGVuc2lvbiAoZS5nLiAuZ3opCisgICAgICAgIGFu
ZCB0aGUgSFRUUCByZXNwb25zZSBkb2VzIG5vdCBzcGVjaWZ5aW5nIGEgQ29udGVudC1FbmNvZGlu
ZyBIVFRQIGhlYWRlci4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlIHRl
c3Qgb24gYWxsIHBsYXRmb3Jtcy4gT25jZSA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+IHNoaXBz
CisgICAgICAgIHRoZW4gd2Ugd2lsbCBlbmFibGUgdGhlIHRlc3Qgb24gYWxsIHBsYXRmb3JtcyB0
aGF0IHVzZSBDRk5ldHdvcmsuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9n
emlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRl
bnQtZW5jb2RpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy8uaHRhY2Nlc3M6IEludGVycHJldCBmaWxlcyB3aXRoIC5waHAuZ3ogZXh0ZW5zaW9u
IGFzIFBIUCBmaWxlcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3Jl
bS1uby1jb250ZW50LWVuY29kaW5nLnBocC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9uczogU2tpcCB0aGUgdGVzdCBmb3Igbm93IHVudGlsIDxyZGFyOi8vcHJvYmxlbS8z
MzgyMjI0OT4gc2hpcHMuCisKKzIwMTctMTAtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgorCiAgICAgICAgIE9ubHkgYWxsb3cgbm9uLW1peGVkIGNvbnRlbnQgcHJvdGVjdGVk
IHN1YnJlc291cmNlcyB0byBhc2sgZm9yIGNyZWRlbnRpYWxzCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5MTkKICAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM1MDE1MjQ1PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTI2NWM4ODU4NGM3YjMxN2M1Y2Vk
NGE0OTJlMjJjZDYwNWI1NWQwZi4uODkzNWZiNDExZGM3NDg4NGRiY2I3YmQ1YzczODhmMjk3YzA2
NzE2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTMsNiArMjEzLDkgQEAgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvZ2VuZXJhbC5hbnkud29ya2VyLmh0
bWwgWyBTa2lwIF0KICMgTm90IHN1cHBvcnRlZAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9iYWNrZ3JvdW5kLWZldGNoIFsgU2tpcCBdCiAKKyMgQ29udGVudCBlbmNvZGluZyBzbmlm
ZmluZyBpcyBvbmx5IHN1cHBvcnRlZCBieSBDRk5ldHdvcmsuCitodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbCBbIFNraXAg
XQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1z
cGVjaWZpYyB0ZXN0cy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTE0
OTMsOCArMTQ5Niw2IEBAIHdlYmtpdC5vcmcvYi8xNzUyODggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvb3V0bGluZS0wMTYuaHRtCiB3ZWJraXQub3JnL2IvMTc1
Mjg4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS0zL291dGxpbmUt
MDE5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNzUyOTAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0wMDUu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTc1NTk3IGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5o
dG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xNzE5NDUgcGVyZi9jbGFzcy1saXN0LXJl
bW92ZS5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTc2MTgz
IGZhc3QvYmxvY2svaW5zaWRlLWlubGluZXMvb3BhY2l0eS1vbi1pbmxpbmUuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5
cGUtbm8tY29udGVudC1lbmNvZGluZy1leHBlY3RlZC50eHQKaW5kZXggODZkNTFkZjk1OTNiMjU0
YmJmYTA3NWVmYTNhNmM1MDBkNjY0OTQxMS4uNzRmOTFhODhlOWUwNTQyZmM4Y2I5MjQxYmU4OTA5
ZjMxZjg1ZGI0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10
eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogVGVz
dCB0aGF0IGFuIFhNTEh0dHBSZXF1ZXN0IHdpdGggQ29udGVudC1UeXBlOiBnemlwIGlzIHByb3Bl
cmx5IHVuY29tcHJlc3NlZC4KIAogQ29udGVudCBUeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0KLUNvbnRlbnQgRW5jb2Rpbmc6IG51bGwKK0NvbnRlbnQgRW5jb2Rpbmc6IGd6aXAKIENvbnRl
bnQgTGVuZ3RoOiAyODIKIFJFU1BPTlNFIDIwMDogW29iamVjdCBBcnJheUJ1ZmZlcl0KIExFTkdU
SDogNDQ1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1l
bmNvZGluZy5odG1sCmluZGV4IDhhZTU1NDk3MjE3MjY4YWVkOWNiZjU1MDU5MmUyODFhYjE0NGRi
ZDMuLjc5MjYyODc3ZWM0ODY3Mjg1YjcxM2U3YzZhMzkzMTIyODc0NDgwNDUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUt
bm8tY29udGVudC1lbmNvZGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sCkBA
IC0xNiw3ICsxNiw3IEBAIGNvbnN0IGxvZyA9IHRleHQgPT4gewogfTsKIAogY29uc3QgeGhyID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci14aHIub3BlbignR0VUJywgJ3Jlc291cmNlcy9nemlwLWxv
cmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwJyk7Cit4aHIub3BlbignR0VUJywgJ3Jlc291cmNl
cy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6Jyk7CiB4aHIucmVzcG9uc2VU
eXBlID0gJ2FycmF5YnVmZmVyJzsKIHhoci5vbmVycm9yID0gZSA9PiBsb2coYEZBSUxFRDogJHt4
aHIuc3RhdHVzfSAke3hoci5zdGF0dXNUZXh0fWApOwogeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9
ICgpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzLy5odGFjY2VzcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzLy5odGFjY2VzcwppbmRleCA5Mjc3OTQwMWU3ZDVlOWVkNjQ1YTA4OTQ2
YTVlNGFkYjkyY2EwNTRlLi4wMjUyNjA3M2VlNjY3MmVkMzBlZTY5YjRiMWJlNGNiYjJlNGEzMjY1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy8uaHRhY2Nlc3MKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvLmh0YWNjZXNzCkBAIC0xMCwzICsxMCw1IEBAIEFkZENoYXJzZXQgd2luZG93
cy0xMjUxIC54bWwKIDxGaWxlcyAibm9Db250ZW50VHlwZS5hc2lzIj4KIERlZmF1bHRUeXBlIE5v
bmUKIDwvRmlsZXM+CisKK0FkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1waHAgLnBocC5negpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJj
ZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNv
ZGluZy5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkYWIyMjNhYTEwZTE1ZmRk
OGQ3ZWFmMmM2MzdiOTBjMTM5NDRkN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocAorKysgL2Rldi9udWxsCkBA
IC0xLDggKzAsMCBAQAotPD9waHAKLSR0ZXh0ID0gIkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0
LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNp
ZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmlt
IHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1
dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3Ig
aW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1
IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0
IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQg
YW5pbSBpZCBlc3QgbGFib3J1bS4iOwotJGd6aXBUZXh0ID0gZ3plbmNvZGUoJHRleHQsIDYpOwot
Ci1oZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7Ci0KLWVj
aG8gJGd6aXBUZXh0OwotPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAu
Z3ogYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlw
LWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYWIyMjNhYTEw
ZTE1ZmRkOGQ3ZWFmMmM2MzdiOTBjMTM5NDRkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNv
bnRlbnQtZW5jb2RpbmcucGhwLmd6CkBAIC0wLDAgKzEsOCBAQAorPD9waHAKKyR0ZXh0ID0gIkxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNl
ZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEg
YWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlv
biB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0
LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVs
aXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVy
IHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkg
b2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4iOworJGd6aXBUZXh0
ID0gZ3plbmNvZGUoJHRleHQsIDYpOworCitoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRp
b24vb2N0ZXQtc3RyZWFtIik7CisKK2VjaG8gJGd6aXBUZXh0OworPz4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDFlNTE1NWZmODFjY2M0OTUzNWZjNDRi
Njg2ZTBhMDQwODk5NTliNS4uYjc1YjM0ODJlYjE4NjMyYzRlMWJhNzE5ZTYzMzgyOTQzZmJiNGNl
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMxLDYg
KzMxLDkgQEAgZmFzdC9ldmVudHMvZG8tbm90LWRyYWctYW5kLWRyb3AtZGF0YS1kZXRlY3RvcnMt
bGluay5odG1sIFsgUGFzcyBdCiAKIGZhc3QveG1saHR0cHJlcXVlc3Qvc2V0LWRhbmdlcm91cy1o
ZWFkZXJzLWluLWRhc2hib2FyZC5odG1sIFsgUGFzcyBdCiAKKyMgRklYTUU6IFVuc2tpcCB0aGlz
IHRlc3Qgb25jZSB0aGUgZml4IGZvciA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+IHNoaXBzLgor
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVu
Y29kaW5nLmh0bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwogIyBFbmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325365</attachid>
            <date>2017-10-30 12:04:23 -0700</date>
            <delta_ts>2017-11-01 10:58:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175597-20171030120422.patch</filename>
            <type>text/plain</type>
            <size>65340</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhMmI0M2IzM2YzZWYw
MzFjMzAzZjE2NDc4Yzk2MzM0ZGU2ZGE5Ni4uZTdiNTZjNDg3MzI2MzIwOTc0MzhlZTE3ODkxMzli
MzllODIyZmZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTEwLTMwICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBYTUxIdHRwUmVxdWVzdCBz
aG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzQ5MTI2MjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGJvZHkgb2YgYW4gSFRUUCByZXNwb25zZSBhc3Nv
Y2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3QgdG8gYSAuZ3ogZmlsZQorICAgICAgICB3b3VsZCBi
ZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVjb21wcmVzc2VkIGlmIHRoZSBIVFRQIHJlc3BvbnNl
IG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5nIEhUVFAKKyAgICAgICAgaGVhZGVyLiBTcGVjaWZp
Y2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3VsZCBiZSB0cmVhdGVkIGFuYWxvZ291cyB0byBhIHJl
c3BvbnNlIHdpdGggaGVhZGVycworICAgICAgICAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9n
emlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6IGlkZW50aXR5Ii4gVGhpcyBiZWhhdmlvciBkb2Vz
IG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBIVFRQIDEuMSBzcGVjLiBhbmQgYnJlYWtzIEVwaWMg
WmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tb3ppbGxhLWdhbWVzL1plbkdh
cmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+LgorCisgICAgICAgIE9uIG1hY09TIDEwLjEzLjIgb3B0
IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHdoZW4gbWFraW5nIGFuIFhIUiByZXF1
ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAgIHNlbGVjdGl2ZWx5IG9wdCBvdXQgb2YgY29udGVu
dCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3RoZXIgbmV0d29yayByZXF1ZXN0cy4gVGhpcyB3aWxs
IGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2VxdWVudCBjb21taXRzIHRvIG1ha2UgaXQgc3RyYWln
aHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUgYnJlYWthZ2UgKGlmIGFueSkuCisKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KTogUGFzcyBjb250ZW50IGVuY29kaW5nIHBvbGljeS4KKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
OjpzaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGxv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6Y3JlYXRlUmVzb3VyY2VIYW5kbGUpOiBFbmFibGUgY29udGVudCBlbmNvZGlu
ZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVz
b3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRsZSk6IERpdHRvLiBXZSBzaG91bGQgbG9vayB0
byBkaXNhYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcgaW4KKyAgICAgICAgYSBzdWJzZXF1
ZW50IGNoYW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOiBNb2RpZmllZCB0
byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVuY29kaW5n
IHNuaWZmaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCk6IE1vZGlmaWVkIHRvIHRha2UgYSBib29sZWFuIGFzIHRvIHdo
ZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQKKyAgICAgICAgZW5jb2Rpbmcgc25pZmZpbmcuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOiBNb2Rp
ZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRvIGVuYWJsZSBjb250ZW50IGVu
Y29kaW5nCisgICAgICAgIHNuaWZmaW5nIGFuZCBhcHBseSB0aGlzIHBvbGljeSB0byB0aGUgQ0ZN
dXRhYmxlVVJMUmVxdWVzdFJlZiBvYmplY3Qgd2hlbiBidWlsZGluZyBvbiBtYWNPUyAxMC4xMy4y
LgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkp
OiBFbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlv
ci4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjphcHBseVNuaWZmaW5nUG9saWNpZXNB
bmRTdG9yYWdlUGFydGl0aW9uSWZOZWVkZWQpOiBBZGRlZCBoZWxwZXIgZnVuY3Rpb24gdG8gYXBw
bHkgc25pZmZpbmcgcG9saWNpZXMKKyAgICAgICAgYW5kIHN0b3JhZ2UgcGFydGl0aW9uLCBpZiBh
cHBsaWNhYmxlLiAKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VS
TENvbm5lY3Rpb24pOiBNb2RpZmllZCB0byB0YWtlIGEgYm9vbGVhbiBhcyB0byB3aGV0aGVyIHRv
IGVuYWJsZSBjb250ZW50IGVuY29kaW5nCisgICAgICAgIHNuaWZmaW5nLiBDYWxscyBhZGp1c3RO
U1JlcXVlc3RBcHBseWluZ1BvbGljaWVzKCkgdG8gYXBwbHkgdGhpcyBwb2xpY3kuCisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6IEVuYWJsZSBj
b250ZW50IGVuY29kaW5nIHNuaWZmIHRvIG1hdGNoIGV4aXN0aW5nIGJlaGF2aW9yLgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6IE1vZGlmaWVkIHRvIHRha2UgYSBi
b29sZWFuIGFzIHRvIHdoZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25pZmZpbmcu
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpyZWxlYXNlRm9yRG93bmxvYWQp
OiBQYXNzIGNvbnRlbnQgZW5jb2RpbmcgcG9saWN5LgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVz
dCk6IERvIG5vdCBlbmFibGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBmb3IgdGhlIHJlcXVl
c3QuCisKIDIwMTctMTAtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIE9ubHkgYWxsb3cgbm9uLW1peGVkIGNvbnRlbnQgcHJvdGVjdGVkIHN1YnJlc291cmNl
cyB0byBhc2sgZm9yIGNyZWRlbnRpYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0NDliMWRkYWE2
OWY3NjEyODg1YjFmODQ5MzNkOWE0NTA5MDcyNTJhLi4zOWIzOTZlYTZiZjEzMzc4NThjZWY1MDky
ZDcwOGIwMzZkMDFhZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Ny0xMC0zMCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgWE1M
SHR0cFJlcXVlc3Qgc2hvdWxkIG5vdCBzbmlmZiBjb250ZW50IGVuY29kaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU1OTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzM0OTEyNjI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZvcndhcmQgZGVjbGFyZSBDRk5ldHdvcmsgU1BJLgorCisgICAgICAg
ICogcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaDoKKwogMjAxNy0xMC0yNCAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFbmFi
bGUgV2ViS2l0IGxvZ2dpbmcgY29uZmlndXJhdGlvbiBhbmQgZGlzcGxheQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAy
M2VlYTdkNGYxZTcwNjRmN2ZmMGM3YWQyOGNiZDNlMzE2MjU0ZTM0Li41YzUwNjg0MGE5NDU5MmU2
NTA0MDJkMGFhZmIzODkzZjk2MjcyYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE3
LTEwLTMwICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBYTUxI
dHRwUmVxdWVzdCBzaG91bGQgbm90IHNuaWZmIGNvbnRlbnQgZW5jb2RpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU5NworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzQ5MTI2MjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGJvZHkgb2YgYW4gSFRUUCBy
ZXNwb25zZSBhc3NvY2lhdGVkIHdpdGggYW4gWEhSIHJlcXVlc3QgdG8gYSAuZ3ogZmlsZQorICAg
ICAgICB3b3VsZCBiZSBhdXRvbWF0aWNhbGx5IGd6aXBwZWQgZGVjb21wcmVzc2VkIGlmIHRoZSBI
VFRQIHJlc3BvbnNlIG9taXR0ZWQgYSBDb250ZW50LUVuY29kaW5nIEhUVFAKKyAgICAgICAgaGVh
ZGVyLiBTcGVjaWZpY2FsbHksIHN1Y2ggYSByZXNwb25zZSB3b3VsZCBiZSB0cmVhdGVkIGFuYWxv
Z291cyB0byBhIHJlc3BvbnNlIHdpdGggaGVhZGVycworICAgICAgICAiQ29udGVudC1UeXBlOiBh
cHBsaWNhdGlvbi9nemlwIiBhbmQgIkNvbnRlbnQtRW5jb2Rpbmc6IGlkZW50aXR5Ii4gVGhpcyBi
ZWhhdmlvciBkb2VzIG5vdCBjb25mb3JtCisgICAgICAgIHRoZSBIVFRQIDEuMSBzcGVjLiBhbmQg
YnJlYWtzIEVwaWMgWmVuIEdhcmRlbiwgPGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tb3ppbGxh
LWdhbWVzL1plbkdhcmRlbi9FcGljWmVuR2FyZGVuLmh0bWw+LgorCisgICAgICAgIE9uIG1hY09T
IDEwLjEzLjIgb3B0IG91dCBvZiBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHdoZW4gbWFraW5n
IGFuIFhIUiByZXF1ZXN0LiBXZSBsaWtlbHkgY2FuCisgICAgICAgIHNlbGVjdGl2ZWx5IG9wdCBv
dXQgb2YgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBmb3Igb3RoZXIgbmV0d29yayByZXF1ZXN0
cy4gVGhpcyB3aWxsIGJlIGRvbmUKKyAgICAgICAgaW4gc3Vic2VxdWVudCBjb21taXRzIHRvIG1h
a2UgaXQgc3RyYWlnaHRmb3J3YXJkIHRvIGlkZW50aWZ5IHNpdGUgYnJlYWthZ2UgKGlmIGFueSku
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnQpOiBFbmFibGUgY29udGVudCBlbmNvZGluZyBz
bmlmZiB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvci4KKyAgICAgICAgKFdlYktpdDo6RG93bmxv
YWQ6OnN0YXJ0V2l0aEhhbmRsZSk6IERpdHRvLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6Y3Jl
YXRlKTogUGFzcyB0aHJvdWdoIHRoZSBjb250ZW50IGVuY29kaW5nIHNuaWZmaW5nIHBvbGljeS4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZCk6IERpdHRvLgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6IEVuY29kZSBjb250ZW50
IGVuY29kaW5nIHNuaWZmaW5nIHBvbGljeS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6IERlY29kZSBjb250ZW50IGVuY29kaW5nIHNuaWZm
aW5nIHBvbGljeS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
cGVjdWxhdGl2ZUxvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1
bGF0aXZlTG9hZDo6U3BlY3VsYXRpdmVMb2FkKTogRW5hYmxlIGNvbnRlbnQgZW5jb2Rpbmcgc25p
ZmYgdG8gbWF0Y2ggZXhpc3RpbmcKKyAgICAgICAgYmVoYXZpb3IuIFdlIHNob3VsZCBsb29rIHRv
IGRpc2FibGUgY29udGVudCBlbmNvZGluZyBzbmlmZmluZyBpbiBhIHN1YnNlcXVlbnQgY2hhbmdl
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OmFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9J
bmZlcmZhY2VJZk5lZWRlZCk6IEFkZGVkIGhlbHBlciBmdW5jdGlvbgorICAgICAgICB0byBhcHBs
eSBzbmlmZmluZyBwb2xpY2llcyBhbmQgYmluZCByZXF1ZXN0IHRvIGludGVyZmFjZSwgaWYgYXBw
bGljYWJsZS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtE
YXRhVGFza0NvY29hKTogTW9kaWZpZWQgdG8gdGFrZSB0aGUgY29udGVudCBlbmNvZGluZyBzbmlm
ZmluZworICAgICAgICBwb2xpY3kuIENhbGxzIGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRS
ZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZCgpIHRvIGFwcGx5IHRoaXMgcG9saWN5LiBBbHNvIHVz
ZQorICAgICAgICBjb252ZW5pZW5jZSBmdW5jdGlvbiBVUkw6OmlzTG9jYWxGaWxlKCkgdG8gZGV0
ZXJtaW5lIGlmIHRoZSBVUkwgaXMgYSBmaWxlIFVSTC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpOZXR3b3JrRGF0YVRhc2tTb3VwKTogUGFzcyB0aHJvdWdoIHRoZSBjb250
ZW50IGVuY29kaW5nIHNuaWZmaW5nIHBvbGljeS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKTogUGFzcyB0aHJvdWdoIHRoZSBjb250
ZW50IGVuY29kaW5nIHNuaWZmaW5nIHBvbGljeS4KKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVy
U3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOiBFbmFibGUgY29udGVudCBlbmNv
ZGluZyBzbmlmZiB0byBtYXRjaCBleGlzdGluZworICAgICAgICBiZWhhdmlvci4KKwogMjAxNy0x
MC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgT25seSBh
bGxvdyBub24tbWl4ZWQgY29udGVudCBwcm90ZWN0ZWQgc3VicmVzb3VyY2VzIHRvIGFzayBmb3Ig
Y3JlZGVudGlhbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NG
TmV0d29ya1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJ
LmgKaW5kZXggZGYzOWI4YmQ0NmFmYWUwNDNlODQwODM2YTMwODA3OTgwMzcxODZmNi4uMGFjYzg5
ZmJmOWI2NDUxNjk2NTY3MWE5NjgxZWFiOTE2YTYxMDQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTIwOCw2ICsyMDgsMTAgQEAgZXh0ZXJu
IGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDYWNoZVBhcnRpdGlvbktleTsKIGV4dGVybiBjb25z
dCBDRlN0cmluZ1JlZiBfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25pZmY7CiBleHRl
cm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tDRlVSTFN0b3JhZ2VTZXNzaW9uSXNQcml2YXRlOwogCisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTMwMgorZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDRlVSTFJlcXVlc3RDb250ZW50RGVjb2Rl
clNraXBVUkxDaGVjazsKKyNlbmRpZgorCiBDRkhUVFBDb29raWVTdG9yYWdlUmVmIF9DRkhUVFBD
b29raWVTdG9yYWdlR2V0RGVmYXVsdChDRkFsbG9jYXRvclJlZik7CiBDRkhUVFBDb29raWVTdG9y
YWdlUmVmIENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVGcm9tRmlsZShDRkFsbG9jYXRvclJlZiwg
Q0ZVUkxSZWYsIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogdm9pZCBDRkhUVFBDb29raWVTdG9y
YWdlU2NoZWR1bGVXaXRoUnVuTG9vcChDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBDRlJ1bkxvb3BS
ZWYsIENGU3RyaW5nUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IGU5MjE0MjdhNDk5MzkyNTlmNWU0NGFmNTljN2VjMzVhYTFhMjFjOTcuLmY5MTk5ODNk
ODIxNjdmMjIyYjRkOTdhZTNmNWNhNGRiNDMwOTk0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OnN0YXJ0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1faGFuZGxlID0gUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZShmcmFtZUxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBt
X3JlcXVlc3QsIHRoaXMsIG1fZGVmZXJzTG9hZGluZywgbV9vcHRpb25zLnNuaWZmQ29udGVudCA9
PSBTbmlmZkNvbnRlbnQpOworICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShm
cmFtZUxvYWRlcigpLT5uZXR3b3JraW5nQ29udGV4dCgpLCBtX3JlcXVlc3QsIHRoaXMsIG1fZGVm
ZXJzTG9hZGluZywgbV9vcHRpb25zLnNuaWZmQ29udGVudCA9PSBTbmlmZkNvbnRlbnQsIG1fb3B0
aW9ucy5zbmlmZkNvbnRlbnRFbmNvZGluZyA9PSBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGlj
eTo6U25pZmYpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCBmNGM5
YTQ1NzdlN2U0ZGQ5YzYxY2ZlMmI3MmM3MGM4ZjcxZmVmMDhlLi5iYWM4YWNhODBlZTA4ZTU0NWUx
MTk1ZDA4ZDlmM2E0N2UxYzZmMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaApAQCAtMTIzLDYgKzEyMyw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFNlbmRSZXNv
dXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc2VuZExvYWRDYWxs
YmFja3MgPT0gU2VuZENhbGxiYWNrczsgfQogICAgIHZvaWQgc2V0U2VuZENhbGxiYWNrUG9saWN5
KFNlbmRDYWxsYmFja1BvbGljeSBzZW5kTG9hZENhbGxiYWNrcykgeyBtX29wdGlvbnMuc2VuZExv
YWRDYWxsYmFja3MgPSBzZW5kTG9hZENhbGxiYWNrczsgfQogICAgIGJvb2wgc2hvdWxkU25pZmZD
b250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLnNuaWZmQ29udGVudCA9PSBTbmlmZkNv
bnRlbnQ7IH0KKyAgICBib29sIHNob3VsZFNuaWZmQ29udGVudEVuY29kaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcHRpb25zLnNuaWZmQ29udGVudEVuY29kaW5nID09IENvbnRlbnRFbmNvZGluZ1Nu
aWZmaW5nUG9saWN5OjpTbmlmZjsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNBbGxvd2Vk
VG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMoKSBjb25zdDsKICAgICBib29sIHNob3VsZEluY2x1ZGVD
ZXJ0aWZpY2F0ZUluZm8oKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY2VydGlmaWNhdGVJbmZv
UG9saWN5ID09IEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm87IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCmluZGV4IDVjNWEwZDQyN2I0ZTk5NjBiYjdj
NWM3ZDFmMWZhY2U1OWE0NDU0YmEuLjY1NzRiMzc4MTViNmNmYTc4MTZiYzE4YjY2NTE4ZjRmNzU4
NjM1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9w
dGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25z
LmgKQEAgLTk3LDYgKzk3LDExIEBAIGVudW0gY2xhc3MgU2VydmljZVdvcmtlcnNNb2RlIHsKICAg
ICBOb25lLAogfTsKIAorZW51bSBjbGFzcyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSB7
CisgICAgU25pZmYsCisgICAgRG9Ob3RTbmlmZiwKK307CisKIHN0cnVjdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgOiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKICAgICBSZXNvdXJjZUxvYWRlck9wdGlv
bnMoKSB7IH0KIApAQCAtMTIwLDYgKzEyNSw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlv
bnMgOiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKIAogICAgIFNlbmRDYWxsYmFja1BvbGljeSBzZW5k
TG9hZENhbGxiYWNrcyB7IERvTm90U2VuZENhbGxiYWNrcyB9OwogICAgIENvbnRlbnRTbmlmZmlu
Z1BvbGljeSBzbmlmZkNvbnRlbnQgeyBEb05vdFNuaWZmQ29udGVudCB9OworICAgIENvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudEVuY29kaW5nIHsgQ29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIH07CiAgICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRh
QnVmZmVyaW5nUG9saWN5IHsgQnVmZmVyRGF0YSB9OwogICAgIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHsgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRv
Tm90VXNlIH07CiAgICAgU2VjdXJpdHlDaGVja1BvbGljeSBzZWN1cml0eUNoZWNrIHsgRG9TZWN1
cml0eUNoZWNrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IGVlMjVmOWYzNmI1NjQ3M2I0ZjZhOTU3
OWM4MTIyYzUwNTZmZWMyNWQuLjFlZTFkNjE2M2ZkZGIzYTQzYjYxNzQ0MDU0M2ZmZjc2ZDNhYmRi
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC00NzUsNyArNDc1LDEwIEBAIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjcmVhdGVSZXNvdXJjZUhhbmRsZShjb25z
dCBVUkwmIHVyCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCkubmV0d29y
a2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZmFsc2UsIHRydWUpOworICAgIGJvb2wgZGVm
ZXJzTG9hZGluZyA9IGZhbHNlOworICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gdHJ1ZTsK
KyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKKyAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+
bG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgdGhpcywgZGVmZXJzTG9hZGlu
Zywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAKICAg
ICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1cmluZyByZWRp
cmVjdHMsIHdlIGluaXRpYWxpemUKICAgICAvLyB0aGUgaWRlbnRpZmllciBhbmQgdGhlIGZpcnN0
IHdpbGxTZW5kUmVxdWVzdCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDYxMjk2OWYwNGE3ZWFlZWUy
ZDE1ZTk4Yjc0ZWI3MGU5YTUyMmI3ODUuLmRjOGRkNDUzYjI5Mjk1ZTM0OGY0OTg1MDljZDdjNzNl
MmIwMWJiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxv
YlJlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTEzMyw5ICsxMzMsOSBAQCB2b2lkIEJsb2JSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShCbG9iRGF0YSogYmxvYkRhdGEs
IGNvbnN0IFJlcwogfQogCiBCbG9iUmVzb3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhhbmRsZShC
bG9iRGF0YSogYmxvYkRhdGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3Vy
Y2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBhc3luYykKLSAgICA6IFJlc291cmNlSGFuZGxl
KG51bGxwdHIsIHJlcXVlc3QsIGNsaWVudCwgZmFsc2UsIGZhbHNlKQotICAgICwgbV9ibG9iRGF0
YShibG9iRGF0YSkKLSAgICAsIG1fYXN5bmMoYXN5bmMpCisgICAgOiBSZXNvdXJjZUhhbmRsZSB7
IG51bGxwdHIsIHJlcXVlc3QsIGNsaWVudCwgZmFsc2UgLyogZGVmZXJzTG9hZGluZyAqLywgZmFs
c2UgLyogc2hvdWxkQ29udGVudFNuaWZmICovLCB0cnVlIC8qIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmICovIH0KKyAgICAsIG1fYmxvYkRhdGEgeyBibG9iRGF0YSB9CisgICAgLCBtX2FzeW5j
IHsgYXN5bmMgfQogewogICAgIGlmIChtX2FzeW5jKQogICAgICAgICBtX2FzeW5jU3RyZWFtID0g
c3RkOjptYWtlX3VuaXF1ZTxBc3luY0ZpbGVTdHJlYW0+KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRsZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKaW5kZXggYmViOWM1YWNhNzgzZTcwMDU2
OGUxMTg3NjlkZGViMTE3YmQ4MGVlOS4uYTg4Y2JhMzUzNDkxODJjMmRlMWExOThmYzUzYmU0NzU4
NmQzMThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5n
SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxl
LmgKQEAgLTUyLDcgKzUyLDEwIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3VzZXNBc3luY0NhbGxi
YWNrcyh1c2VBc3luY0NhbGxiYWNrcykKICAgICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQogICAgIHsKLSAgICAgICAgbV9oYW5kbGUgPSBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtpbmdDb250ZXh0LCByZXF1ZXN0LCB0aGlzLCBmYWxz
ZSwgZmFsc2UpOworICAgICAgICBib29sIGRlZmVyc0xvYWRpbmcgPSBmYWxzZTsKKyAgICAgICAg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7CisgICAgICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZShuZXR3b3JraW5nQ29udGV4dCwgcmVxdWVzdCwgdGhpcywgZGVmZXJzTG9hZGlu
Zywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAKICAg
ICAgICAgLy8gSWYgdGhlIHNlcnZlciBuZXZlciByZXNwb25kcywgdGhpcyBvYmplY3Qgd2lsbCBo
YW5nIGFyb3VuZCBmb3JldmVyLgogICAgICAgICAvLyBTZXQgYSB2ZXJ5IGdlbmVyb3VzIHRpbWVv
dXQsIGp1c3QgaW4gY2FzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggYmViY2Y4OGRiYmNlNGQxZDFiZTBkMTUzNDRlNDNm
MDZlNzhiN2Y1MC4uNmQ1MWMyZTc4OTE4ZjU1MjM4NDU0MmU2YjQ2OWVmYzAyNmJmMjhhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5j
cHAKQEAgLTcyLDggKzcyLDggQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVnaXN0ZXJCdWlsdGlu
U3luY2hyb25vdXNMb2FkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBwcm90b2MKICAgICBidWlsdGlu
UmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1hcCgpLmFkZChwcm90b2NvbCwgbG9hZGVy
KTsKIH0KIAotUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYpCi0gICAgOiBkKHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VIYW5kbGVJbnRlcm5hbD4odGhp
cywgY29udGV4dCwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50
U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkKK1Jlc291cmNl
SGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBi
b29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKQorICAgIDogZChzdGQ6Om1ha2VfdW5pcXVlPFJlc291cmNlSGFu
ZGxlSW50ZXJuYWw+KHRoaXMsIGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGlu
Zywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRlbnRTbmlmZlVSTChyZXF1ZXN0LnVy
bCgpKSwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpKQogewogICAgIGlmICghcmVxdWVzdC51
cmwoKS5pc1ZhbGlkKCkpIHsKICAgICAgICAgc2NoZWR1bGVGYWlsdXJlKEludmFsaWRVUkxGYWls
dXJlKTsKQEAgLTg2LDEyICs4NiwxMiBAQCBSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdAogICAgIH0K
IH0KIAotUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91
bGRDb250ZW50U25pZmYpCitSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5n
LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
ZikKIHsKICAgICBpZiAoYXV0byBjb25zdHJ1Y3RvciA9IGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNv
bnN0cnVjdG9yTWFwKCkuZ2V0KHJlcXVlc3QudXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhv
dXRDb3B5aW5nKCkpKQogICAgICAgICByZXR1cm4gY29uc3RydWN0b3IocmVxdWVzdCwgY2xpZW50
KTsKIAotICAgIGF1dG8gbmV3SGFuZGxlID0gYWRvcHRSZWYoKm5ldyBSZXNvdXJjZUhhbmRsZShj
b250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlm
ZikpOworICAgIGF1dG8gbmV3SGFuZGxlID0gYWRvcHRSZWYoKm5ldyBSZXNvdXJjZUhhbmRsZShj
b250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlm
Ziwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQt
Pm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gV1RG
TW92ZShuZXdIYW5kbGUpOwpAQCAtMjEwLDYgKzIxMCwxMSBAQCBib29sIFJlc291cmNlSGFuZGxl
OjpzaG91bGRDb250ZW50U25pZmYoKSBjb25zdAogICAgIHJldHVybiBkLT5tX3Nob3VsZENvbnRl
bnRTbmlmZjsKIH0KIAorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYoKSBjb25zdAoreworICAgIHJldHVybiBkLT5tX3Nob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmOworfQorCiBib29sIFJlc291cmNlSGFuZGxlOjpzaG91bGRDb250ZW50U25pZmZVUkwoY29u
c3QgVVJMJiB1cmwpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggOWU3OTZmMTJhYTIzNzky
OThmZjMwYjVhY2M3ZTcyNGFmM2ZkNzM4Ni4uOTRmMGIyYTBjNGI4Njc2MGIyMDJjMzRhMGFmM2Iw
MWVhYjU3ZDlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuaApAQCAtNTIsNiArNTIsNyBAQCBPQkpDX0NMQVNTIE5TRGF0YTsKIE9CSkNf
Q0xBU1MgTlNEaWN0aW9uYXJ5OwogT0JKQ19DTEFTUyBOU0Vycm9yOwogT0JKQ19DTEFTUyBOU1VS
TENvbm5lY3Rpb247CitPQkpDX0NMQVNTIE5TVVJMUmVxdWVzdDsKICNpZm5kZWYgX19PQkpDX18K
IHR5cGVkZWYgc3RydWN0IG9iamNfb2JqZWN0ICppZDsKICNlbmRpZgpAQCAtOTIsMTEgKzkzLDEx
IEBAIGNsYXNzIFRpbWVyOwogCiBjbGFzcyBSZXNvdXJjZUhhbmRsZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFJlc291cmNlSGFuZGxlPiwgcHVibGljIEF1dGhlbnRpY2F0aW9uQ2xpZW50IHsKIHB1Ymxp
YzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVh
dGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhh
bmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGNyZWF0
ZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwg
Ym9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBSZXNvdXJjZUVy
cm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7CiAKICNpZiBVU0Uo
U09VUCkKLSAgICBzdGF0aWMgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoU291cE5ldHdv
cmtTZXNzaW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQq
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBzdGF0
aWMgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBjcmVhdGUoU291cE5ldHdvcmtTZXNzaW9uJiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVyc0xv
YWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmKTsKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVzb3VyY2VI
YW5kbGUoKTsKQEAgLTE2NCw2ICsxNjUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRDb250
ZW50U25pZmYoKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRDb250ZW50U25pZmZVUkwo
Y29uc3QgVVJMJik7CiAKKyAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKCkgY29u
c3Q7CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JjZUNvbnRlbnRTbmlmZmlu
ZygpOwogCiAjaWYgVVNFKENVUkwpIHx8IFVTRShTT1VQKQpAQCAtMjM1LDcgKzIzOCw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcihj
b25zdCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWlsdGluU3luY2hyb25vdXNMb2FkZXIpOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgUmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJlc291cmNlSGFuZGxlKE5ldHdv
cmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGll
bnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgIGJvb2wgdXNlc0FzeW5jQ2FsbGJhY2tz
KCkgY29uc3Q7CiAKQEAgLTI0Nyw3ICsyNTAsNyBAQCBwcml2YXRlOgogICAgIH07CiAKICNpZiBV
U0UoU09VUCkKLSAgICBSZXNvdXJjZUhhbmRsZShTb3VwTmV0d29ya1Nlc3Npb24mLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJlc291cmNlSGFuZGxlKFNvdXBOZXR3
b3JrU2Vzc2lvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50
KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91
bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAjZW5kaWYKIAogICAgIHZvaWQgcGxhdGZvcm1TZXRE
ZWZlcnNMb2FkaW5nKGJvb2wpOwpAQCAtMjY3LDE1ICsyNzAsMTkgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKLSAgICB2b2lkIGNyZWF0ZUNGVVJMQ29ubmVj
dGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRpY3Rpb25hcnlSZWYgY2xpZW50UHJvcGVydGll
cyk7CisgICAgdm9pZCBjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciwgQ0ZEaWN0aW9uYXJ5UmVmIGNsaWVudFBy
b3BlcnRpZXMpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpICYmICFVU0UoQ0ZVUkxDT05O
RUNUSU9OKQotICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgU2No
ZWR1bGluZ0JlaGF2aW9yKTsKKyAgICB2b2lkIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxl
Z2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50
U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlv
cik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykgJiYgIVVTRShDRlVSTENPTk5FQ1RJT04p
Ci0gICAgdm9pZCBjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBTY2hlZHVsaW5n
QmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29ubmVjdGlvblByb3BlcnRpZXMpOworICAgIHZvaWQg
Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yLCBOU0RpY3Rpb25hcnkgKmNvbm5lY3Rpb25Q
cm9wZXJ0aWVzKTsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBhcHBs
eVNuaWZmaW5nUG9saWNpZXNBbmRTdG9yYWdlUGFydGl0aW9uSWZOZWVkZWQoTlNVUkxSZXF1ZXN0
KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmKTsKICNlbmRpZgogCiAjaWYgVVNFKFNPVVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDNiNzE0
NGI1ODRhNTcxOTM5NDY3NWQ5YzkyOWM3Njc1ODk0NTRmZmEuLjViYjc0NWI0NGE4MjJkZDg1YjM5
NTA4ZjQ5MWY0OWI2ODQ3Mjg1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC03Miw3ICs3Miw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKFJlc291
cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wg
ZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCisgICAgUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbChSZXNvdXJjZUhhbmRsZSogbG9hZGVyLCBOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBi
b29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQogICAgICAgICA6IG1fY29udGV4dChjb250
ZXh0KQogICAgICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAgICAgLCBtX2ZpcnN0UmVxdWVz
dChyZXF1ZXN0KQpAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9wYXJ0aXRp
b24ocmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKQogICAgICAgICAsIG1fZGVmZXJzTG9hZGluZyhk
ZWZlcnNMb2FkaW5nKQogICAgICAgICAsIG1fc2hvdWxkQ29udGVudFNuaWZmKHNob3VsZENvbnRl
bnRTbmlmZikKKyAgICAgICAgLCBtX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmIHsgc2hvdWxk
Q29udGVudEVuY29kaW5nU25pZmYgfQogICAgICAgICAsIG1fdXNlc0FzeW5jQ2FsbGJhY2tzKGNs
aWVudCAmJiBjbGllbnQtPnVzZXNBc3luY0NhbGxiYWNrcygpKQogI2lmIFVTRShDRlVSTENPTk5F
Q1RJT04pCiAgICAgICAgICwgbV9jdXJyZW50UmVxdWVzdChyZXF1ZXN0KQpAQCAtMTE1LDYgKzEx
Niw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbV9kZWZlcnNMb2FkaW5nOwogICAgIGJvb2wgbV9z
aG91bGRDb250ZW50U25pZmY7CisgICAgYm9vbCBtX3Nob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
OwogICAgIGJvb2wgbV91c2VzQXN5bmNDYWxsYmFja3M7CiAjaWYgVVNFKENGVVJMQ09OTkVDVElP
TikKICAgICBSZXRhaW5QdHI8Q0ZVUkxDb25uZWN0aW9uUmVmPiBtX2Nvbm5lY3Rpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhh
bmRsZUNGTmV0LmNwcAppbmRleCA2M2ZjZThiM2Y4ZmZiOWEzYjVhODQxMmE0NGZkNTg0MTRlYmNk
Y2VjLi5mZDJiYTZiZTM3NGE0ODQwZTE2MzM4MzI5OTdjZmVkMGQ0OTg5MjMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMgaW5saW5lIENGU3RyaW5nUmVm
IHNob3VsZFNuaWZmQ29ubmVjdGlvblByb3BlcnR5KCkKICNlbmRpZgogfQogCi12b2lkIFJlc291
cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFs
U3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciBzY2hl
ZHVsaW5nQmVoYXZpb3IsIENGRGljdGlvbmFyeVJlZiBjbGllbnRQcm9wZXJ0aWVzKQordm9pZCBS
ZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmLCBTY2hlZHVsaW5nQmVoYXZpb3Igc2NoZWR1bGluZ0JlaGF2aW9yLCBDRkRp
Y3Rpb25hcnlSZWYgY2xpZW50UHJvcGVydGllcykKIHsKICAgICBpZiAoKCFkLT5tX3VzZXIuaXNF
bXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgpKSAmJiAhZmlyc3RSZXF1ZXN0KCkudXJsKCku
cHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7CiAgICAgICAgIC8vIENyZWRlbnRpYWxzIGZvciBm
dHAgY2FuIG9ubHkgYmUgcGFzc2VkIGluIFVSTCwgdGhlIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSBkZWxlZ2F0ZSBjYWxsIHdvbid0IGJlIG1hZGUuCkBAIC0xNjEsNyArMTYxLDE0
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgYXV0byByZXF1ZXN0ID0gYWRvcHRDRihD
RlVSTFJlcXVlc3RDcmVhdGVNdXRhYmxlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmaXJzdFJl
cXVlc3QoKS5jZlVSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpKSk7CiAgICAgaWYgKGF1dG8gc3Rv
cmFnZVNlc3Npb24gPSBkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpKQogICAgICAgICBfQ0ZVUkxS
ZXF1ZXN0U2V0U3RvcmFnZVNlc3Npb24ocmVxdWVzdC5nZXQoKSwgc3RvcmFnZVNlc3Npb24pOwot
ICAgIAorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMgorICAgIGlmICghc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAg
ICAgIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KHJlcXVlc3QuZ2V0KCksIGtDRlVS
TFJlcXVlc3RDb250ZW50RGVjb2RlclNraXBVUkxDaGVjaywga0NGQm9vbGVhblRydWUpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworI2VuZGlm
CisKICAgICBpZiAoIXNob3VsZENvbnRlbnRTbmlmZikKICAgICAgICAgX0NGVVJMUmVxdWVzdFNl
dFByb3RvY29sUHJvcGVydHkocmVxdWVzdC5nZXQoKSwgc2hvdWxkU25pZmZDb25uZWN0aW9uUHJv
cGVydHkoKSwga0NGQm9vbGVhbkZhbHNlKTsKIApAQCAtMjc3LDcgKzI4NCw3IEBAIGJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KCkKIAogICAgIFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5n
QmVoYXZpb3IgPSBjbGllbnQoKS0+bG9hZGluZ1N5bmNocm9ub3VzWEhSKCkgPyBTY2hlZHVsaW5n
QmVoYXZpb3I6OlN5bmNocm9ub3VzIDogU2NoZWR1bGluZ0JlaGF2aW9yOjpBc3luY2hyb25vdXM7
CiAKLSAgICBjcmVhdGVDRlVSTENvbm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Us
IGQtPm1fc2hvdWxkQ29udGVudFNuaWZmLCBzY2hlZHVsaW5nQmVoYXZpb3IsIGNsaWVudCgpLT5j
b25uZWN0aW9uUHJvcGVydGllcyh0aGlzKS5nZXQoKSk7CisgICAgY3JlYXRlQ0ZVUkxDb25uZWN0
aW9uKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiwg
ZC0+bV9zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2NoZWR1bGluZ0JlaGF2aW9yLCBjbGll
bnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXModGhpcykuZ2V0KCkpOwogCiAgICAgZC0+bV9jb25u
ZWN0aW9uRGVsZWdhdGUtPnNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoZC0+bV9jb25uZWN0aW9u
LmdldCgpKTsKICAgICBDRlVSTENvbm5lY3Rpb25TdGFydChkLT5tX2Nvbm5lY3Rpb24uZ2V0KCkp
OwpAQCAtNTg2LDcgKzU5MywxMCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleAogICAgIFN5bmNo
cm9ub3VzTG9hZGVyQ2xpZW50IGNsaWVudDsKICAgICBjbGllbnQuc2V0QWxsb3dTdG9yZWRDcmVk
ZW50aWFscyhzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6VXNlKTsKIAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYo
bmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsICZjbGllbnQsIGZhbHNlIC8qZGVm
ZXJzTG9hZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8pKTsKKyAgICBib29sIGRl
ZmVyc0xvYWRpbmcgPSBmYWxzZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IHRydWU7
CisgICAgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7CisgICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29u
dGV4dCwgcmVxdWVzdCwgJmNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZm
LCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikpOwogCiAgICAgaGFuZGxlLT5kLT5tX3N0b3Jh
Z2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsK
IApAQCAtNTk2LDcgKzYwNiw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJl
c291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAgICAgfQogCiAg
ICAgaGFuZGxlLT5jcmVhdGVDRlVSTENvbm5lY3Rpb24oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
PT0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSwgUmVzb3VyY2VIYW5kbGU6OnNob3VsZENv
bnRlbnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSwKLSAgICAgICAgU2NoZWR1bGluZ0JlaGF2aW9y
OjpTeW5jaHJvbm91cywgaGFuZGxlLT5jbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXMoaGFu
ZGxlLmdldCgpKS5nZXQoKSk7CisgICAgICAgIGhhbmRsZS0+c2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYoKSwgU2NoZWR1bGluZ0JlaGF2aW9yOjpTeW5jaHJvbm91cywgaGFuZGxlLT5jbGllbnQo
KS0+Y29ubmVjdGlvblByb3BlcnRpZXMoaGFuZGxlLmdldCgpKS5nZXQoKSk7CiAKICAgICBDRlVS
TENvbm5lY3Rpb25TY2hlZHVsZVdpdGhSdW5Mb29wKGhhbmRsZS0+Y29ubmVjdGlvbigpLCBDRlJ1
bkxvb3BHZXRDdXJyZW50KCksIHN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2RlKCkpOwogICAgIENG
VVJMQ29ubmVjdGlvblNjaGVkdWxlRG93bmxvYWRXaXRoUnVuTG9vcChoYW5kbGUtPmNvbm5lY3Rp
b24oKSwgQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VIYW5kbGVNYWMubW0KaW5kZXggMzk0MGRiZTBiYWNkN2QwYzIyNjY2NGQ1OTI5Y2U1MmMx
NjMwY2ZhNi4uNGNkODA2YzFkZDQ2MGQ2MmYzYjExNzFjZDMwMzQ1YTI1YjlmMjdkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KQEAgLTEyMywxMCArMTIzLDQ0IEBAIHN0YXRpYyBib29sIHN5bmNocm9ub3Vz
V2lsbFNlbmRSZXF1ZXN0RW5hYmxlZCgpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09B
KQordm9pZCBSZXNvdXJjZUhhbmRsZTo6YXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kU3RvcmFnZVBh
cnRpdGlvbklmTmVlZGVkKE5TVVJMUmVxdWVzdComIG5zUmVxdWVzdCwgYm9vbCBzaG91bGRDb250
ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCit7CisjaWYgUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMzAyCisgICAg
c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPSB0cnVlOworI2VuZGlmCisjaWYgSEFWRShDRk5F
VFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24g
PSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRpdGlvbihm
aXJzdFJlcXVlc3QoKSk7CisjZWxzZQorICAgIFN0cmluZyBzdG9yYWdlUGFydGl0aW9uOworI2Vu
ZGlmCisgICAgaWYgKHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50RW5jb2RpbmdT
bmlmZiAmJiBzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byBtdXRhYmxlUmVxdWVzdCA9IGFkb3B0TlMoW25zUmVxdWVzdCBtdXRhYmxlQ29weV0p
OworCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTMwMgorICAgIGlmICghc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCisgICAgICAg
IFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVydHk6QChZRVMpIGZvcktleTooTlNTdHJpbmcgKilr
Q0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJTa2lwVVJMQ2hlY2tdOworI2VuZGlmCisKKyAgICBp
ZiAoIXNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9w
ZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5nICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNo
b3VsZFNuaWZmXTsKKworI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQor
ICAgIGlmICghc3RvcmFnZVBhcnRpdGlvbi5pc0VtcHR5KCkpCisgICAgICAgIFttdXRhYmxlUmVx
dWVzdCBfc2V0UHJvcGVydHk6c3RvcmFnZVBhcnRpdGlvbiBmb3JLZXk6QCJfX1NUT1JBR0VfUEFS
VElUSU9OX0lERU5USUZJRVIiXTsKKyNlbmRpZgorCisgICAgbnNSZXF1ZXN0ID0gbXV0YWJsZVJl
cXVlc3QuYXV0b3JlbGVhc2UoKTsKKworfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oSU9TKQot
dm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwg
U2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvcikKK3ZvaWQgUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYsIFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5nQmVoYXZpb3IpCiAj
ZWxzZQotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVn
YXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZiwgU2NoZWR1bGluZ0JlaGF2aW9yIHNjaGVkdWxpbmdCZWhhdmlvciwgTlNEaWN0aW9uYXJ5
ICpjb25uZWN0aW9uUHJvcGVydGllcykKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJM
Q29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYs
IFNjaGVkdWxpbmdCZWhhdmlvciBzY2hlZHVsaW5nQmVoYXZpb3IsIE5TRGljdGlvbmFyeSAqY29u
bmVjdGlvblByb3BlcnRpZXMpCiAjZW5kaWYKIHsKICNpZiAhSEFWRShUSU1JTkdEQVRBT1BUSU9O
UykKQEAgLTE2MCwyMCArMTk0LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxD
b25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKICAgICB9CiAK
ICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVz
dChVcGRhdGVIVFRQQm9keSk7Ci0gICAgaWYgKCFzaG91bGRDb250ZW50U25pZmYpIHsKLSAgICAg
ICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBtdXRh
YmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFByb3Bl
cnR5OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hv
dWxkU25pZmZdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9Ci0K
LSNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKLSAgICBTdHJpbmcgc3Rv
cmFnZVBhcnRpdGlvbiA9IGQtPm1fY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5jb29raWVTdG9y
YWdlUGFydGl0aW9uKGZpcnN0UmVxdWVzdCgpKTsKLSAgICBpZiAoIXN0b3JhZ2VQYXJ0aXRpb24u
aXNFbXB0eSgpKSB7Ci0gICAgICAgIE5TTXV0YWJsZVVSTFJlcXVlc3QgKm11dGFibGVSZXF1ZXN0
ID0gW1tuc1JlcXVlc3QgbXV0YWJsZUNvcHldIGF1dG9yZWxlYXNlXTsKLSAgICAgICAgW211dGFi
bGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpzdG9yYWdlUGFydGl0aW9uIGZvcktleTpAIl9fU1RPUkFH
RV9QQVJUSVRJT05fSURFTlRJRklFUiJdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVx
dWVzdDsKLSAgICB9Ci0jZW5kaWYKKyAgICBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRTdG9yYWdl
UGFydGl0aW9uSWZOZWVkZWQobnNSZXF1ZXN0LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgIGlmIChkLT5tX3N0b3JhZ2VTZXNzaW9uKQogICAg
ICAgICBuc1JlcXVlc3QgPSBbY29weVJlcXVlc3RXaXRoU3RvcmFnZVNlc3Npb24oZC0+bV9zdG9y
YWdlU2Vzc2lvbi5nZXQoKSwgbnNSZXF1ZXN0KSBhdXRvcmVsZWFzZV07CkBAIC0yNTEsMTIgKzI3
MiwxNCBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiAgICAgICAgIFJlc291cmNlSGFu
ZGxlOjptYWtlRGVsZWdhdGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpLAogICAgICAgICBz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwKICAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25p
ZmYgfHwgZC0+bV9jb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCksCisg
ICAgICAgIGQtPm1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsCiAgICAgICAgIHNjaGVkdWxp
bmdCZWhhdmlvcik7CiAjZWxzZQogICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAg
UmVzb3VyY2VIYW5kbGU6Om1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSks
CiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAogICAgICAgICBkLT5tX3Nob3Vs
ZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQoKSwKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwKICAgICAg
ICAgc2NoZWR1bGluZ0JlaGF2aW9yLAogICAgICAgICAoTlNEaWN0aW9uYXJ5ICopY2xpZW50KCkt
PmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKHRoaXMpLmdldCgpKTsKICNlbmRpZgpAQCAtMzk3LDcgKzQy
MCwxMCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleAogICAgIFN5bmNocm9ub3VzTG9hZGVyQ2xp
ZW50IGNsaWVudDsKICAgICBjbGllbnQuc2V0QWxsb3dTdG9yZWRDcmVkZW50aWFscyhzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKTsKIAotICAg
IFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFu
ZGxlKGNvbnRleHQsIHJlcXVlc3QsICZjbGllbnQsIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0
cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8pKTsKKyAgICBib29sIGRlZmVyc0xvYWRpbmcgPSBm
YWxzZTsKKyAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IHRydWU7CisgICAgYm9vbCBzaG91
bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwg
JmNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZikpOwogCiAgICAgaGFuZGxlLT5kLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29u
dGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIApAQCAtNDEyLDEyICs0
MzgsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICAgICAgaGFuZGxlLT5tYWtlRGVs
ZWdhdGUoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpLAogICAgICAgICBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSwKICAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSB8fCBj
b250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCksCisgICAgICAgIGhhbmRs
ZS0+c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoKSwKICAgICAgICAgU2NoZWR1bGluZ0JlaGF2
aW9yOjpTeW5jaHJvbm91cyk7CiAjZWxzZQogICAgIGhhbmRsZS0+Y3JlYXRlTlNVUkxDb25uZWN0
aW9uKAogICAgICAgICBoYW5kbGUtPm1ha2VEZWxlZ2F0ZShzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSksIC8vIEEgc3luY2hyb25vdXMgcmVxdWVzdCBjYW5ub3QgdHVybiBpbnRvIGEgZG93bmxv
YWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJveHkgdGhlIGRlbGVnYXRlLgogICAgICAgICBz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwKICAgICAgICAgaGFuZGxlLT5zaG91bGRDb250ZW50
U25pZmYoKSB8fCAoY29udGV4dCAmJiBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkKCkpLAorICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKCks
CiAgICAgICAgIFNjaGVkdWxpbmdCZWhhdmlvcjo6U3luY2hyb25vdXMsCiAgICAgICAgIChOU0Rp
Y3Rpb25hcnkgKiloYW5kbGUtPmNsaWVudCgpLT5jb25uZWN0aW9uUHJvcGVydGllcyhoYW5kbGUu
Z2V0KCkpLmdldCgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCA3NDk5OTcy
ZWZlOGU2ZmJhMTA4NTI5ZTA0MGIzZDc4NTZmNzg0MDAwLi4zYjI1NmQ3YmZkYjM2MmVjNWY0NWI4
MzU4YjM0ZGY2MmRhYmViNGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtOTAsOSArOTAs
OSBAQCBTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6c291cFNlc3Npb24oKQog
ICAgIHJldHVybiBtX3Nlc3Npb24gPyBtX3Nlc3Npb24tPnNvdXBTZXNzaW9uKCkgOiBzZXNzaW9u
RnJvbUNvbnRleHQobV9jb250ZXh0LmdldCgpKTsKIH0KIAotUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKFNvdXBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQorUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKFNvdXBOZXR3b3JrU2Vzc2lvbiYg
c2Vzc2lvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNs
aWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
LCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKQogewotICAgIGF1dG8gbmV3SGFuZGxl
ID0gYWRvcHRSZWYoKm5ldyBSZXNvdXJjZUhhbmRsZShzZXNzaW9uLCByZXF1ZXN0LCBjbGllbnQs
IGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAgIGF1dG8gbmV3SGFuZGxl
ID0gYWRvcHRSZWYoKm5ldyBSZXNvdXJjZUhhbmRsZShzZXNzaW9uLCByZXF1ZXN0LCBjbGllbnQs
IGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUg
IT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gV1RGTW92ZShuZXdIYW5kbGUpOwpAQCAtMTAz
LDggKzEwMyw4IEBAIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZShTb3VwTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKLVJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShTb3VwTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZikKLSAgICA6IGQoc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUhhbmRsZUludGVybmFsPih0aGlz
LCBudWxscHRyLCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRT
bmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSkpKQorUmVzb3VyY2VI
YW5kbGU6OlJlc291cmNlSGFuZGxlKFNvdXBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBi
b29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmKQorICAgIDogZChzdGQ6Om1ha2VfdW5pcXVlPFJlc291cmNlSGFu
ZGxlSW50ZXJuYWw+KHRoaXMsIG51bGxwdHIsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGlu
Zywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRlbnRTbmlmZlVSTChyZXF1ZXN0LnVy
bCgpKSwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpKQogewogICAgIGlmICghcmVxdWVzdC51
cmwoKS5pc1ZhbGlkKCkpIHsKICAgICAgICAgc2NoZWR1bGVGYWlsdXJlKEludmFsaWRVUkxGYWls
dXJlKTsKQEAgLTczOCw3ICs3MzgsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiBS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpyZWxlYXNlRm9yRG93bmxvYWQo
UmVzb3VyY2VIYW5kbGVDbGllbnQqIGRvd25sb2FkQ2xpZW50KQogewogICAgIC8vIFdlIGRvbid0
IGFkb3B0IHRoZSByZWYsIGFzIGl0IHdpbGwgYmUgcmVsZWFzZWQgYnkgY2xlYW51cFNvdXBSZXF1
ZXN0T3BlcmF0aW9uLCB3aGljaCBzaG91bGQgYWx3YXlzIHJ1bi4KLSAgICBSZXNvdXJjZUhhbmRs
ZSogbmV3SGFuZGxlID0gbmV3IFJlc291cmNlSGFuZGxlKGQtPm1fY29udGV4dC5nZXQoKSwgZmly
c3RSZXF1ZXN0KCksIG51bGxwdHIsIGQtPm1fZGVmZXJzTG9hZGluZywgZC0+bV9zaG91bGRDb250
ZW50U25pZmYpOworICAgIFJlc291cmNlSGFuZGxlKiBuZXdIYW5kbGUgPSBuZXcgUmVzb3VyY2VI
YW5kbGUoZC0+bV9jb250ZXh0LmdldCgpLCBmaXJzdFJlcXVlc3QoKSwgbnVsbHB0ciwgZC0+bV9k
ZWZlcnNMb2FkaW5nLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiwgZC0+bV9zaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZik7CiAgICAgbmV3SGFuZGxlLT5yZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQo
KTsKICAgICBzdGQ6OnN3YXAoZCwgbmV3SGFuZGxlLT5kKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAKaW5kZXggNzlkOGMzOGJjNzgxODlhMjNhN2IwZThmNTJiYjc4MDljY2Qz
NWFiMi4uMDk2ZjA1NTVhYzFlZTQ1MmI2NDVhMmJiOWNlZDUyZTE2NTE1NGJhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC02MTMsNiArNjEzLDcgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoKQogICAgIG9wdGlvbnMuaW5p
dGlhdG9yID0gY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLnhtbGh0dHByZXF1ZXN0
OwogICAgIG9wdGlvbnMuc2FtZU9yaWdpbkRhdGFVUkxGbGFnID0gU2FtZU9yaWdpbkRhdGFVUkxG
bGFnOjpTZXQ7CiAgICAgb3B0aW9ucy5maWx0ZXJpbmdQb2xpY3kgPSBSZXNwb25zZUZpbHRlcmlu
Z1BvbGljeTo6RW5hYmxlOworICAgIG9wdGlvbnMuc25pZmZDb250ZW50RW5jb2RpbmcgPSBDb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6RG9Ob3RTbmlmZjsKIAogICAgIGlmIChtX3RpbWVv
dXRNaWxsaXNlY29uZHMpIHsKICAgICAgICAgaWYgKCFtX2FzeW5jKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCmluZGV4IDFlYWZl
ZWRkOWQ2YzE4MWY2NDFkOWM0MjgyNWJjOWJjNTljYWI4MzEuLmY2M2FkYWYwODNjNDEzZjdiZGQz
ZmY4ZjdhZWI3YWZmNjk1MTEzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKQEAgLTExMiw3ICsxMTIsMTAgQEAgdm9pZCBE
b3dubG9hZDo6c3RhcnQoKQogewogICAgIGlmIChtX3JlcXVlc3QudXJsKCkucHJvdG9jb2xJc0Js
b2IoKSkgewogICAgICAgICBtX2Rvd25sb2FkQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxCbG9i
RG93bmxvYWRDbGllbnQ+KCp0aGlzKTsKLSAgICAgICAgbV9yZXNvdXJjZUhhbmRsZSA9IFJlc291
cmNlSGFuZGxlOjpjcmVhdGUobnVsbHB0ciwgbV9yZXF1ZXN0LCBtX2Rvd25sb2FkQ2xpZW50Lmdl
dCgpLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBib29sIGRlZmVyc0xvYWRpbmcgPSBmYWxzZTsK
KyAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7CisgICAgICAgIG1fcmVzb3VyY2VIYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG51bGxwdHIsIG1fcmVxdWVzdCwgbV9kb3dubG9h
ZENsaWVudC5nZXQoKSwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRD
b250ZW50RW5jb2RpbmdTbmlmZik7CiAgICAgICAgIGRpZFN0YXJ0KCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0xMjQsNyArMTI3LDEwIEBAIHZvaWQgRG93bmxvYWQ6OnN0YXJ0V2l0aEhh
bmRsZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByCiB7
CiAgICAgaWYgKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbElzQmxvYigpKSB7CiAgICAgICAgIG1f
ZG93bmxvYWRDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2JEb3dubG9hZENsaWVudD4oKnRo
aXMpOwotICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShu
dWxscHRyLCBtX3JlcXVlc3QsIG1fZG93bmxvYWRDbGllbnQuZ2V0KCksIGZhbHNlLCBmYWxzZSk7
CisgICAgICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOworICAgICAgICBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmID0gdHJ1ZTsKKyAgICAgICAgbV9yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxl
OjpjcmVhdGUobnVsbHB0ciwgbV9yZXF1ZXN0LCBtX2Rvd25sb2FkQ2xpZW50LmdldCgpLCBkZWZl
cnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
KTsKICAgICAgICAgZGlkU3RhcnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBiYjdm
MTc1MWZmZTRhMTliZTUzODgzY2Q1ZTFiMWFlMzgzODAyNTU3Li5iODkxODc5ZmUwMDc5ODFjZmY3
MTYyOWQ3MjM2ZTUwZjEyOGI5ZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCkBAIC01MywxMCArNTMsMTAgQEAgUmVmPE5ldHdvcmtE
YXRhVGFzaz4gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24s
IE5ldHdvcmtEYXQKICAgICAgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmNyZWF0ZShz
ZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5jb250ZW50U25p
ZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuYmxvYkZpbGVSZWZlcmVuY2VzKTsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Np
b24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5z
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3Vs
ZFByZWNvbm5lY3RPbmx5KTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0
ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFt
ZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25u
ZWN0T25seSk7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKLSAgICByZXR1cm4gTmV0d29ya0RhdGFU
YXNrU291cDo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJh
bWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmlu
Z1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlKHNlc3Npb24sIGNs
aWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4IGEzYzk1ZGQ2M2FkZTI2YTlhYTJmMTUwOGRk
ZjBkNjNlMmVkMTVmMDUuLjlmYTVhNzM4NzUzYWUxM2ViOTc3MzkwZTJiYjQzZjJlYjQ1MzY5N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC0x
MjUsNyArMTI1LDcgQEAgTmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5ldHdvcmtMb2FkQ2xpZW50
JiBjbGllbnQsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmIHBhcmEKICAgICAsIG1fbmV0d29ya2lu
Z0NvbnRleHQoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShtX3BhcmFtZXRlcnMuc2Vz
c2lvbklELCBtX3BhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkpCiAgICAgLCBtX2N1cnJlbnRSZXF1ZXN0KG1fcGFyYW1ldGVycy5yZXF1ZXN0KQogewot
ICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX25ldHdvcmtpbmdDb250ZXh0
LmdldCgpLCBtX3BhcmFtZXRlcnMucmVxdWVzdCwgdGhpcywgbV9wYXJhbWV0ZXJzLmRlZmVyc0xv
YWRpbmcsIG1fcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3kgPT0gU25pZmZDb250ZW50
KTsKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9uZXR3b3JraW5nQ29u
dGV4dC5nZXQoKSwgbV9wYXJhbWV0ZXJzLnJlcXVlc3QsIHRoaXMsIG1fcGFyYW1ldGVycy5kZWZl
cnNMb2FkaW5nLCBtX3BhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID09IFNuaWZmQ29u
dGVudCwgbV9wYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID09IENvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5k
ZXggMjVhYTUwNTgwZGU5YTk4YWNkYzAyN2E4MTA3YTI4ZWE4OTM0NzU3OC4uODMyNzg5Nzk4OGI2
NGZmMzJlNDE4M2E1OTgwNjNlNGFmNWZjY2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC00Miw2ICs0Miw3IEBA
IHB1YmxpYzoKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgeyBQQUw6OlNlc3Npb25JRDo6
ZW1wdHlTZXNzaW9uSUQoKSB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xp
Y3kgeyBXZWJDb3JlOjpTbmlmZkNvbnRlbnQgfTsKKyAgICBXZWJDb3JlOjpDb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSB7IFdlYkNvcmU6
OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZiB9OwogICAgIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHsgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlIH07CiAgICAgV2ViQ29yZTo6Q2xpZW50
Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9saWN5IHsgV2ViQ29yZTo6Q2xpZW50
Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMgfTsKICAgICBi
b29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cyB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5jcHAKaW5kZXggZTk2MzU3NjJiNjVmNTMyNDEyZmJlZmRkMTEzNzRkY2QzYTU0OTVkMC4uY2Qy
MTY1NzJmMjU3ZDA5MWMyZmRlM2YyNGFkYWRhZmJlZDcwY2MwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5jcHAKQEAgLTc0LDYgKzc0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB9CiAKICAg
ICBlbmNvZGVyLmVuY29kZUVudW0oY29udGVudFNuaWZmaW5nUG9saWN5KTsKKyAgICBlbmNvZGVy
LmVuY29kZUVudW0oY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kpOwogICAgIGVuY29kZXIu
ZW5jb2RlRW51bShzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAgICAgZW5jb2Rlci5lbmNvZGVF
bnVtKGNsaWVudENyZWRlbnRpYWxQb2xpY3kpOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzaG91
bGRQcmVjb25uZWN0T25seSk7CkBAIC0xNDEsNiArMTQyLDggQEAgYm9vbCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Jl
c291cmMKIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5jb250ZW50U25pZmZp
bmdQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZUVudW0ocmVzdWx0LmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlRW51bShyZXN1bHQuY2xpZW50Q3JlZGVudGlhbFBvbGljeSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZl
TG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVNwZWN1bGF0aXZlTG9hZC5jcHAKaW5kZXggNjkxMzk2NTgwMjhmM2Q0MjllN2M2ZTlhZjk0NWNl
MThkNjQzMmVkZS4uYWY2MzY3MGM5MTRhNWVkMmIwYjM3OGU4MTdmZWU1MjgyOWIxMjljNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
cGVjdWxhdGl2ZUxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcApAQCAtNTYsNiArNTYsNyBAQCBTcGVj
dWxhdGl2ZUxvYWQ6OlNwZWN1bGF0aXZlTG9hZChDYWNoZSYgY2FjaGUsIGNvbnN0IEdsb2JhbEZy
YW1lSUQmIGZyYW1lSUQsIGNvbgogICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZTsKICAgICBwYXJhbWV0ZXJz
LmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IERvTm90U25pZmZDb250ZW50OworICAgIHBhcmFtZXRl
cnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBDb250ZW50RW5jb2RpbmdTbmlmZmlu
Z1BvbGljeTo6U25pZmY7CiAgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gbV9vcmlnaW5hbFJlcXVl
c3Q7CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBtX25ldHdvcmtMb2FkID0gc3RkOjpt
YWtlX3VuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsIFdURk1vdmUocGFyYW1ldGVycyksICpTZXNz
aW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IDc1ZmM5N2RmOWMzODFmNTNkZjExYzc0ZTA3
MmMyMmE0NTVlYjFiNmQuLmViMjYzNjQzOGNjZTE0ODdlZTRmYjVhMzMxNWM0N2UzNTcyOTU5MDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTQxLDkgKzQxLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Np
b25Db2NvYTsKIGNsYXNzIE5ldHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdv
cmtEYXRhVGFzayB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGlj
eSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCisgICAgc3Rh
dGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwg
Y2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNu
aWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVj
b25uZWN0T25seSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRh
c2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0T25seSkp
OwogICAgIH0KIAogICAgIH5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtNzAsOSArNzAsMTAg
QEAgcHVibGljOgogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRN
ZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToKLSAg
ICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0Ns
aWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkpOwor
ICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkpOwogCiAgICAgYm9vbCB0cnlQ
YXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYpOworICAgIHZvaWQgYXBwbHlT
bmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVyZmFjZUlmTmVlZGVkKE5TVVJMUmVx
dWVzdComLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2Rp
bmdTbmlmZik7CiAKICAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5z
aW9uOwogICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25EYXRhVGFzaz4gbV90YXNrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0KaW5kZXggZGY2NGUzOWJlNjE1NWNkZmU2NTBlYjM0MTcxM2JiNTYxZjg1NzQ3
OC4uYzk3ZTM4MmZjZTg2ZDNmNDg3Mjk4ZmZjNWY3ZmVhNGNiZWJhNGM4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLm1tCkBAIC03NCw3ICs3NCwzMiBAQCBzdGF0aWMgZmxvYXQgdG9OU1VSTFNlc3Npb25U
YXNrUHJpb3JpdHkoV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiAgICAg
cmV0dXJuIE5TVVJMU2Vzc2lvblRhc2tQcmlvcml0eURlZmF1bHQ7CiB9CiAKLU5ldHdvcmtEYXRh
VGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1Bv
bGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCit2b2lk
IE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVz
dFRvSW5mZXJmYWNlSWZOZWVkZWQoTlNVUkxSZXF1ZXN0KiYgbnNSZXF1ZXN0LCBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikKK3sKKyNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEzMDIK
KyAgICBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7CisjZW5kaWYKKyAgICBhdXRv
JiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4obV9zZXNz
aW9uLmdldCgpKTsKKyAgICBpZiAoc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmICYmIGNvY29hU2Vzc2lvbi5tX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllci5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBtdXRhYmxlUmVxdWVzdCA9IGFk
b3B0TlMoW25zUmVxdWVzdCBtdXRhYmxlQ29weV0pOworCisjaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMgorICAgIGlmICghc2hvdWxk
Q29udGVudEVuY29kaW5nU25pZmYpCisgICAgICAgIFttdXRhYmxlUmVxdWVzdCBfc2V0UHJvcGVy
dHk6QChZRVMpIGZvcktleTooTlNTdHJpbmcgKilrQ0ZVUkxSZXF1ZXN0Q29udGVudERlY29kZXJT
a2lwVVJMQ2hlY2tdOworI2VuZGlmCisKKyAgICBpZiAoIXNob3VsZENvbnRlbnRTbmlmZikKKyAg
ICAgICAgW211dGFibGVSZXF1ZXN0IF9zZXRQcm9wZXJ0eTpAKE5PKSBmb3JLZXk6KE5TU3RyaW5n
ICopX2tDRlVSTENvbm5lY3Rpb25Qcm9wZXJ0eVNob3VsZFNuaWZmXTsKKworICAgIGlmICghY29j
b2FTZXNzaW9uLm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyLmlzTnVsbCgpKQorICAgICAgICBb
bXV0YWJsZVJlcXVlc3Qgc2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOmNvY29hU2Vzc2lvbi5t
X2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllcl07CisKKyAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVx
dWVzdC5hdXRvcmVsZWFzZSgpOworfQorCitOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0Rh
dGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVu
dCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3Jl
ZGVudGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNu
aWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50
RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICA6IE5ldHdvcmtE
YXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKQEAgLTEw
NCwyNCArMTI5LDE0IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2Nv
YShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAjZW5kaWYKICAgICAKICAg
ICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6
OlVwZGF0ZUhUVFBCb2R5KTsKLSAgICBpZiAoc2hvdWxkQ29udGVudFNuaWZmID09IFdlYkNvcmU6
OkRvTm90U25pZmZDb250ZW50IHx8IHVybC5wcm90b2NvbElzKCJmaWxlIikpIHsKLSAgICAgICAg
TlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBtdXRhYmxl
Q29weV0gYXV0b3JlbGVhc2VdOwotICAgICAgICBbbXV0YWJsZVJlcXVlc3QgX3NldFByb3BlcnR5
OkAoTk8pIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxk
U25pZmZdOwotICAgICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVxdWVzdDsKLSAgICB9CisgICAg
YXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVyZmFjZUlmTmVlZGVkKG5z
UmVxdWVzdCwgc2hvdWxkQ29udGVudFNuaWZmID09IFdlYkNvcmU6OlNuaWZmQ29udGVudCAmJiAh
dXJsLmlzTG9jYWxGaWxlKCksIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID09IFdlYkNvcmU6
OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7CiAKLSAgICBhdXRvJiBjb2Nv
YVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4obV9zZXNzaW9uLmdl
dCgpKTsKICAgICBpZiAoc2Vzc2lvbi5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zaG91bGRCbG9j
a0Nvb2tpZXMocmVxdWVzdCkpIHsKICAgICAgICAgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAgICAgICAgIG1fc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6
RG9Ob3RVc2U7CiAgICAgfQogCi0gICAgaWYgKCFjb2NvYVNlc3Npb24ubV9ib3VuZEludGVyZmFj
ZUlkZW50aWZpZXIuaXNOdWxsKCkpIHsKLSAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbXV0
YWJsZVJlcXVlc3QgPSBbW25zUmVxdWVzdCBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwotICAg
ICAgICBbbXV0YWJsZVJlcXVlc3Qgc2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOmNvY29hU2Vz
c2lvbi5tX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllcl07Ci0gICAgICAgIG5zUmVxdWVzdCA9IG11
dGFibGVSZXF1ZXN0OwotICAgIH0KLQorICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9IHN0YXRpY19j
YXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkpOwogICAgIGlmIChzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6
VXNlKSB7CiAgICAgICAgIG1fdGFzayA9IFtjb2NvYVNlc3Npb24ubV9zZXNzaW9uV2l0aENyZWRl
bnRpYWxTdG9yYWdlIGRhdGFUYXNrV2l0aFJlcXVlc3Q6bnNSZXF1ZXN0XTsKICAgICAgICAgQVNT
RVJUKCFjb2NvYVNlc3Npb24ubV9kYXRhVGFza01hcFdpdGhDcmVkZW50aWFscy5jb250YWlucyhb
bV90YXNrIHRhc2tJZGVudGlmaWVyXSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IGU3MmMxZjY5
NWU3ZmRmNzdmNTdiZmJjNWRlOGNiNGQxMzc0ZWJiOTcuLjRhN2U5MTZmYmI2NjJlNTY3Y2M4NzBi
MzAzNWM0ODZiZTEyMmFiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBzaXplX3QgZ0RlZmF1bHRSZWFkQnVm
ZmVyU2l6ZSA9IDgxOTI7CiAKLU5ldHdvcmtEYXRhVGFza1NvdXA6Ok5ldHdvcmtEYXRhVGFza1Nv
dXAoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBDb250ZW50U25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QpCitOZXR3b3JrRGF0YVRhc2tTb3VwOjpOZXR3b3JrRGF0YVRhc2tTb3Vw
KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgQ29udGVudFNuaWZmaW5nUG9s
aWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAg
ICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRoQ3JlZGVudGlh
bHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0KQogICAgICwgbV9zaG91bGRDb250ZW50U25pZmYoc2hvdWxkQ29udGVudFNu
aWZmKQogICAgICwgbV90aW1lb3V0U291cmNlKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJk5ldHdv
cmtEYXRhVGFza1NvdXA6OnRpbWVvdXRGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5oCmluZGV4IDM5MGNkNDhj
OTkxYWQ2NTU0NzFkYjE3NTgxMjc3YTRkNDliYjJiZDMuLjM3OWE3ZjA0MmU5MTZkOWE2NzEwNDYx
Y2U0MjU4NDkyZjY1NmZmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaApAQCAtMzYsMTUgKzM2LDE1IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tTb3VwIGZpbmFsIDogcHVi
bGljIE5ldHdvcmtEYXRhVGFzayB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0
YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xp
ZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vi
Q29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0aWMgUmVmPE5l
dHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwg
V2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29k
aW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza1NvdXAo
c2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxk
Q29udGVudFNuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza1NvdXAoc2Vzc2lv
biwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVu
dFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0KIAogICAgIH5OZXR3b3JrRGF0YVRhc2tTb3Vw
KCk7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrU291cChOZXR3b3JrU2Vzc2lvbiYs
IE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZp
bmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7
CisgICAgTmV0d29ya0RhdGFUYXNrU291cChOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNv
cmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogCiAgICAgdm9pZCBzdXNwZW5kKCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBjYW5jZWwoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCA0NTA3N2E0MGZh
ZWUxOWZjNDNiMjRlNmFkYTc5ZTAzMWE5Nzc1ZjY2Li4xMTQxZDBiZjk3OWUzMzRhM2U3ZGVlNTg2
M2Q1NmIwODc2OWMzYmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0yNDIsNiArMjQyLDcgQEAgdm9pZCBX
ZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNl
TG9hZGVyJiByZXNvdXJjZUwKICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2Vz
cykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hl
ZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlvcml0eSAlZCIsIHJlc291cmNl
TG9hZGVyLnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50Pihy
ZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSkpOwogCiAgICAgQ29udGVudFNuaWZm
aW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFNu
aWZmQ29udGVudCgpID8gU25pZmZDb250ZW50IDogRG9Ob3RTbmlmZkNvbnRlbnQ7CisgICAgQ29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kg
PSByZXNvdXJjZUxvYWRlci5zaG91bGRTbmlmZkNvbnRlbnRFbmNvZGluZygpID8gQ29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmIDogQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xp
Y3k6OkRvTm90U25pZmY7CiAgICAgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgPSByZXNvdXJjZUxvYWRlci5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgp
ID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSA6IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5
OjpEb05vdFVzZTsKIAogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJh
bWV0ZXJzOwpAQCAtMjUxLDYgKzI1Miw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVk
dWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAgICAg
bG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgp
IDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVy
cy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQ
b2xpY3kgPSBjb250ZW50U25pZmZpbmdQb2xpY3k7CisgICAgbG9hZFBhcmFtZXRlcnMuY29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3kgPSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTsK
ICAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5OwogICAgIC8vIElmIHRoZXJlIGlzIG5vIFdlYkZyYW1lIHRoZW4gdGhpcyBy
ZXNvdXJjZSBjYW5ub3QgYmUgYXV0aGVudGljYXRlZCB3aXRoIHRoZSBjbGllbnQuCiAgICAgbG9h
ZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9ICh3ZWJGcmFtZSAmJiB3ZWJQYWdl
ICYmIHJlc291cmNlTG9hZGVyLmlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzKCkpID8g
Q2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMgOiBDbGll
bnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFsczsKQEAgLTQw
NSw2ICs0MDcsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCB1bgogICAgIGxvYWRQYXJhbWV0ZXJz
LnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJl
cXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gU25pZmZD
b250ZW50OworICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
ID0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmOwogICAgIGxvYWRQYXJhbWV0
ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAg
ICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9IGNsaWVudENyZWRlbnRp
YWxQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCA9IGNvbnRleHQtPnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAwZjBkYzU5NTYyNjAxYTYyZDIyMjE1NTYzMTYwMmNkMGU0ZTEz
MWNhLi5jN2UxYTYzYWVjNDE4NTNhOWNjZTRmZDhkNWM3MTcwMWYyNjRkMGU1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTctMTAtMzAgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0IHNob3VsZCBub3Qgc25pZmYgY29udGVudCBlbmNv
ZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1
NTk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDkxMjYyND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdXAgdGhlIHRlc3QgaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0
bWwgdG8KKyAgICAgICAgYWN0dWFsbHkgY2hlY2sgdGhhdCB3ZSBkbyBub3Qgc25pZmYgY29udGVu
dCBlbmNvZGluZy4gQ0ZOZXR3b3JrIG9ubHkgc25pZmZzIHRoZSBVUkwKKyAgICAgICAgZm9yIHRo
ZSBjb250ZW50IGVuY29kaW5nIHdoZW4gdGhlIGZpbGVuYW1lIGVuZHMgd2l0aCBrbm93biBmaWxl
IGV4dGVuc2lvbiAoZS5nLiAuZ3opCisgICAgICAgIGFuZCB0aGUgSFRUUCByZXNwb25zZSBkb2Vz
IG5vdCBzcGVjaWZ5aW5nIGEgQ29udGVudC1FbmNvZGluZyBIVFRQIGhlYWRlci4KKworICAgICAg
ICAqIFRlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlIHRlc3Qgb24gYWxsIHBsYXRmb3Jtcy4gT25j
ZSA8cmRhcjovL3Byb2JsZW0vMzM4MjIyNDk+IHNoaXBzCisgICAgICAgIHRoZW4gd2Ugd2lsbCBl
bmFibGUgdGhlIHRlc3Qgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHVzZSBDRk5ldHdvcmsuCisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250
ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmcuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy8uaHRhY2Nlc3M6IEludGVy
cHJldCBmaWxlcyB3aXRoIC5waHAuZ3ogZXh0ZW5zaW9uIGFzIFBIUCBmaWxlcy4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRl
bnQtZW5jb2RpbmcucGhwLmd6OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBo
cC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczogU2tpcCB0aGUgdGVz
dCBmb3Igbm93IHVudGlsIDxyZGFyOi8vcHJvYmxlbS8zMzgyMjI0OT4gc2hpcHMuCisKIDIwMTct
MTAtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIE9ubHkg
YWxsb3cgbm9uLW1peGVkIGNvbnRlbnQgcHJvdGVjdGVkIHN1YnJlc291cmNlcyB0byBhc2sgZm9y
IGNyZWRlbnRpYWxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlMjY1Yzg4NTg0YzdiMzE3YzVjZWQ0
YTQ5MmUyMmNkNjA1YjU1ZDBmLi44OTM1ZmI0MTFkYzc0ODg0ZGJjYjdiZDVjNzM4OGYyOTdjMDY3
MTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxMyw2ICsyMTMsOSBAQCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9nZW5lcmFsLmFueS53b3JrZXIuaHRt
bCBbIFNraXAgXQogIyBOb3Qgc3VwcG9ydGVkCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JhY2tncm91bmQtZmV0Y2ggWyBTa2lwIF0KIAorIyBDb250ZW50IGVuY29kaW5nIHNuaWZm
aW5nIGlzIG9ubHkgc3VwcG9ydGVkIGJ5IENGTmV0d29yay4KK2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvZ3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sIFsgU2tpcCBd
CisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIHBsYXRmb3JtLXNw
ZWNpZmljIHRlc3RzLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMTQ5
Myw4ICsxNDk2LDYgQEAgd2Via2l0Lm9yZy9iLzE3NTI4OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdWktMy9vdXRsaW5lLTAxNi5odG0KIHdlYmtpdC5vcmcvYi8xNzUy
ODggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvb3V0bGluZS0w
MTkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE3NTI5MCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAwNS5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNzU1OTcgaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0
bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE3MTk0NSBwZXJmL2NsYXNzLWxpc3QtcmVt
b3ZlLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xNzYxODMg
ZmFzdC9ibG9jay9pbnNpZGUtaW5saW5lcy9vcGFjaXR5LW9uLWlubGluZS5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlw
ZS1uby1jb250ZW50LWVuY29kaW5nLWV4cGVjdGVkLnR4dAppbmRleCA4NmQ1MWRmOTU5M2IyNTRi
YmZhMDc1ZWZhM2E2YzUwMGQ2NjQ5NDExLi43NGY5MWE4OGU5ZTA1NDJmYzhjYjkyNDFiZTg5MDlm
MzFmODVkYjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5jb2RpbmctZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ3ppcC1jb250ZW50LXR5
cGUtbm8tY29udGVudC1lbmNvZGluZy1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBUZXN0
IHRoYXQgYW4gWE1MSHR0cFJlcXVlc3Qgd2l0aCBDb250ZW50LVR5cGU6IGd6aXAgaXMgcHJvcGVy
bHkgdW5jb21wcmVzc2VkLgogCiBDb250ZW50IFR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVh
bQotQ29udGVudCBFbmNvZGluZzogbnVsbAorQ29udGVudCBFbmNvZGluZzogZ3ppcAogQ29udGVu
dCBMZW5ndGg6IDI4MgogUkVTUE9OU0UgMjAwOiBbb2JqZWN0IEFycmF5QnVmZmVyXQogTEVOR1RI
OiA0NDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
Z3ppcC1jb250ZW50LXR5cGUtbm8tY29udGVudC1lbmNvZGluZy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVu
Y29kaW5nLmh0bWwKaW5kZXggOGFlNTU0OTcyMTcyNjhhZWQ5Y2JmNTUwNTkyZTI4MWFiMTQ0ZGJk
My4uNzkyNjI4NzdlYzQ4NjcyODViNzEzZTdjNmEzOTMxMjI4NzQ0ODA0NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1u
by1jb250ZW50LWVuY29kaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9nemlwLWNvbnRlbnQtdHlwZS1uby1jb250ZW50LWVuY29kaW5nLmh0bWwKQEAg
LTE2LDcgKzE2LDcgQEAgY29uc3QgbG9nID0gdGV4dCA9PiB7CiB9OwogCiBjb25zdCB4aHIgPSBu
ZXcgWE1MSHR0cFJlcXVlc3QoKTsKLXhoci5vcGVuKCdHRVQnLCAncmVzb3VyY2VzL2d6aXAtbG9y
ZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAnKTsKK3hoci5vcGVuKCdHRVQnLCAncmVzb3VyY2Vz
L2d6aXAtbG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3onKTsKIHhoci5yZXNwb25zZVR5
cGUgPSAnYXJyYXlidWZmZXInOwogeGhyLm9uZXJyb3IgPSBlID0+IGxvZyhgRkFJTEVEOiAke3ho
ci5zdGF0dXN9ICR7eGhyLnN0YXR1c1RleHR9YCk7CiB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0g
KCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvLmh0YWNjZXNzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvLmh0YWNjZXNzCmluZGV4IDkyNzc5NDAxZTdkNWU5ZWQ2NDVhMDg5NDZh
NWU0YWRiOTJjYTA1NGUuLjAyNTI2MDczZWU2NjcyZWQzMGVlNjliNGIxYmU0Y2JiMmU0YTMyNjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzLy5odGFjY2VzcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy8uaHRhY2Nlc3MKQEAgLTEwLDMgKzEwLDUgQEAgQWRkQ2hhcnNldCB3aW5kb3dz
LTEyNTEgLnhtbAogPEZpbGVzICJub0NvbnRlbnRUeXBlLmFzaXMiPgogRGVmYXVsdFR5cGUgTm9u
ZQogPC9GaWxlcz4KKworQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLXBocCAucGhwLmd6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNl
cy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29k
aW5nLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRhYjIyM2FhMTBlMTVmZGQ4
ZDdlYWYyYzYzN2I5MGMxMzk0NGQ3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9nemlwLWxvcmVtLW5vLWNvbnRlbnQtZW5jb2RpbmcucGhwCisrKyAvZGV2L251bGwKQEAg
LTEsOCArMCwwIEBACi08P3BocAotJHRleHQgPSAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQs
IGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lk
aWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0g
dmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0
IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBp
biByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUg
ZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQg
bm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBh
bmltIGlkIGVzdCBsYWJvcnVtLiI7Ci0kZ3ppcFRleHQgPSBnemVuY29kZSgkdGV4dCwgNik7Ci0K
LWhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsKLQotZWNo
byAkZ3ppcFRleHQ7Ci0/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvZ3ppcC1sb3JlbS1uby1jb250ZW50LWVuY29kaW5nLnBocC5n
eiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAt
bG9yZW0tbm8tY29udGVudC1lbmNvZGluZy5waHAuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRhYjIyM2FhMTBl
MTVmZGQ4ZDdlYWYyYzYzN2I5MGMxMzk0NGQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2d6aXAtbG9yZW0tbm8tY29u
dGVudC1lbmNvZGluZy5waHAuZ3oKQEAgLTAsMCArMSw4IEBACis8P3BocAorJHRleHQgPSAiTG9y
ZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2Vk
IGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBh
bGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9u
IHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQu
IER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxp
dCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIg
c2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBv
ZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLiI7CiskZ3ppcFRleHQg
PSBnemVuY29kZSgkdGV4dCwgNik7CisKK2hlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0iKTsKKworZWNobyAkZ3ppcFRleHQ7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MWU1MTU1ZmY4MWNjYzQ5NTM1ZmM0NGI2
ODZlMGEwNDA4OTk1OWI1Li5iNzViMzQ4MmViMTg2MzJjNGUxYmE3MTllNjMzODI5NDNmYmI0Y2Vl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzEsNiAr
MzEsOSBAQCBmYXN0L2V2ZW50cy9kby1ub3QtZHJhZy1hbmQtZHJvcC1kYXRhLWRldGVjdG9ycy1s
aW5rLmh0bWwgWyBQYXNzIF0KIAogZmFzdC94bWxodHRwcmVxdWVzdC9zZXQtZGFuZ2Vyb3VzLWhl
YWRlcnMtaW4tZGFzaGJvYXJkLmh0bWwgWyBQYXNzIF0KIAorIyBGSVhNRTogVW5za2lwIHRoaXMg
dGVzdCBvbmNlIHRoZSBmaXggZm9yIDxyZGFyOi8vcHJvYmxlbS8zMzgyMjI0OT4gc2hpcHMuCito
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2d6aXAtY29udGVudC10eXBlLW5vLWNvbnRlbnQtZW5j
b2RpbmcuaHRtbCBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8K
</data>
<flag name="review"
          id="344844"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>