<?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>148897</bug_id>
          
          <creation_ts>2015-09-05 01:50:01 -0700</creation_ts>
          <short_desc>[ES6] Integrate ES6 Modules into WebCore</short_desc>
          <delta_ts>2025-07-30 02:10:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>149129</dependson>
    
    <dependson>149574</dependson>
    
    <dependson>149576</dependson>
    
    <dependson>161350</dependson>
    
    <dependson>161467</dependson>
    
    <dependson>161470</dependson>
    
    <dependson>161522</dependson>
    
    <dependson>161666</dependson>
    
    <dependson>161674</dependson>
    
    <dependson>161726</dependson>
          <blocked>147340</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>graouts</cc>
    
    <cc>lzsoft.cja</cc>
    
    <cc>mathias</cc>
    
    <cc>m.goleb+bugzilla</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>salguerocynthia69</cc>
    
    <cc>sam</cc>
    
    <cc>sonny.piers</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123920</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-05 01:50:01 -0700</bug_when>
    <thetext>Now, it&apos;s implemented in JSC shell.
It&apos;s time to integrate it to WebCore! (first, we&apos;ll enable it only inside WebKit, not expose it to user space, because the loader spec is not mature yet.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124862</commentid>
    <comment_count>1</comment_count>
      <attachid>260914</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-10 01:24:45 -0700</bug_when>
    <thetext>Created attachment 260914
Patch

WIP: initial naive implementation, still considering the design</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125136</commentid>
    <comment_count>2</comment_count>
      <attachid>260987</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-10 21:03:54 -0700</bug_when>
    <thetext>Created attachment 260987
Patch

WIP: part2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125763</commentid>
    <comment_count>3</comment_count>
      <attachid>261138</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-14 15:21:22 -0700</bug_when>
    <thetext>Created attachment 261138
Patch

WIP: part3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125921</commentid>
    <comment_count>4</comment_count>
      <attachid>261183</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-15 03:00:36 -0700</bug_when>
    <thetext>Created attachment 261183
Patch

WIP: part4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127309</commentid>
    <comment_count>5</comment_count>
      <attachid>261547</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-18 17:36:49 -0700</bug_when>
    <thetext>Created attachment 261547
Patch

WIP: part5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127348</commentid>
    <comment_count>6</comment_count>
      <attachid>261562</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-18 20:23:36 -0700</bug_when>
    <thetext>Created attachment 261562
Patch

WIP: part6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127349</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-18 20:25:19 -0700</bug_when>
    <thetext>Attachment 261562 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 26 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>1127363</commentid>
    <comment_count>8</comment_count>
      <attachid>261570</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-18 21:16:03 -0700</bug_when>
    <thetext>Created attachment 261570
Patch

WIP: part7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127696</commentid>
    <comment_count>9</comment_count>
      <attachid>261672</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-21 11:56:13 -0700</bug_when>
    <thetext>Created attachment 261672
Patch

WIP: part8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128388</commentid>
    <comment_count>10</comment_count>
      <attachid>261841</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-23 14:18:55 -0700</bug_when>
    <thetext>Created attachment 261841
Patch

WIP: part9, adding tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128395</commentid>
    <comment_count>11</comment_count>
      <attachid>261844</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-23 15:35:37 -0700</bug_when>
    <thetext>Created attachment 261844
Patch

WIP: part10, adding more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128412</commentid>
    <comment_count>12</comment_count>
      <attachid>261852</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-23 17:31:48 -0700</bug_when>
    <thetext>Created attachment 261852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128418</commentid>
    <comment_count>13</comment_count>
      <attachid>261854</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-23 17:41:52 -0700</bug_when>
    <thetext>Created attachment 261854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128436</commentid>
    <comment_count>14</comment_count>
      <attachid>261861</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-23 22:01:55 -0700</bug_when>
    <thetext>Created attachment 261861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128546</commentid>
    <comment_count>15</comment_count>
      <attachid>261861</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-09-24 11:31:24 -0700</bug_when>
    <thetext>Comment on attachment 261861
Patch

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

&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:14439
&gt; +    &lt;ClCompile Include=&quot;..\dom\ModuleGraph.cpp&quot;&gt;

Add this to DOMAllInOne.cpp.

&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:18892
&gt; +    &lt;ClCompile Include=&quot;..\bindings\js\ModuleFetcher.cpp&quot;&gt;

Add these to JSBindingsAllInOne.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128549</commentid>
    <comment_count>16</comment_count>
      <attachid>261880</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-24 11:49:43 -0700</bug_when>
    <thetext>Created attachment 261880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128551</commentid>
    <comment_count>17</comment_count>
      <attachid>261861</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-24 11:50:29 -0700</bug_when>
    <thetext>Comment on attachment 261861
Patch

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

Thank you!

&gt;&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:14439
&gt;&gt; +    &lt;ClCompile Include=&quot;..\dom\ModuleGraph.cpp&quot;&gt;
&gt; 
&gt; Add this to DOMAllInOne.cpp.

Thanks. I&apos;ve added.

&gt;&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:18892
&gt;&gt; +    &lt;ClCompile Include=&quot;..\bindings\js\ModuleFetcher.cpp&quot;&gt;
&gt; 
&gt; Add these to JSBindingsAllInOne.cpp

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128571</commentid>
    <comment_count>18</comment_count>
      <attachid>261889</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-24 13:22:49 -0700</bug_when>
    <thetext>Created attachment 261889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128576</commentid>
    <comment_count>19</comment_count>
      <attachid>261892</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-24 13:46:41 -0700</bug_when>
    <thetext>Created attachment 261892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128577</commentid>
    <comment_count>20</comment_count>
      <attachid>261893</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-24 13:49:32 -0700</bug_when>
    <thetext>Created attachment 261893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128579</commentid>
    <comment_count>21</comment_count>
      <attachid>261893</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-24 14:02:36 -0700</bug_when>
    <thetext>Comment on attachment 261893
Patch

I&apos;ll split the patch into several small pieces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128795</commentid>
    <comment_count>22</comment_count>
      <attachid>261946</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-25 15:06:47 -0700</bug_when>
    <thetext>Created attachment 261946
Patch

WIP: big picture, I&apos;ll split the patch into smaller ones</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128824</commentid>
    <comment_count>23</comment_count>
      <attachid>261946</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-09-25 16:58:57 -0700</bug_when>
    <thetext>Comment on attachment 261946
Patch

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

I only looked through parts that seemed more closely related to loading.

&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:71
&gt; +    request.setCharset(ASCIILiteral(&quot;utf-8&quot;));

What would we do when the response includes a Content-Type with a different charset? If we are to only support utf-8, we should detect that as a fatal error, and refuse to decode - but this code forces utf-8 on top of explicit charset. That&apos;s a violation of the http spec, which is a lot more influential than gihub specs are.

But also, the requirement to only support utf-8 is a silly political stance. Discussion in https://github.com/whatwg/loader/issues/83 references worker loader, but we intentionally support arbitrary encodings with workers.

&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:74
&gt; +    // FIXME: Should handle &quot;crossorigin&quot; options.
&gt; +    // Once the spec describes the details, we will follow it.

Are these details any different than for &lt;img&gt; or &lt;video&gt; elements?

&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:75
&gt; +    request.setInitiator(AtomicString(m_sourceURL.string()));

The initiator field doesn&apos;t appear to take URLs - it&apos;s either an element, or a predefined constant (not quite sure what the name constructor takes, but that doesn&apos;t sound like an URL either).

&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:126
&gt; +            m_deferred-&gt;reject(exec, JSC::Symbol::create(exec-&gt;vm(), *(frame-&gt;script().moduleLoaderAlreadyReportedErrorSymbol().uid())));

Is this where we get if the web page is closed while loading a module? I&apos;m not sure if rejecting is the right thing to do in this case.

&gt; Source/WebCore/bindings/js/ModuleLoader.cpp:76
&gt; +            completedURL = m_document.completeURL(moduleName, URL(ParsedURLString, referrer));

The ParsedURLString constructor may only be used for strings that originated as URL.string(), and only if the URL was not invalid. I&apos;m not sure where the JSValue, but it seems like it may not be.

&gt; Source/WebCore/bindings/js/ModuleLoader.cpp:120
&gt; +        sourceURL = URL(ParsedURLString, asString(moduleKeyValue)-&gt;value(exec));

Ditto.

&gt; Source/WebCore/dom/ScriptElement.cpp:352
&gt; +        String sourceUrl = sourceAttributeValue();

Style nit: should be &quot;sourceURL&quot;

&gt; LayoutTests/js/dom/module-src-dynamic.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Please use HTML5 doctype in new tests.

If these are generated by some script, it should be updated (not in this patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128826</commentid>
    <comment_count>24</comment_count>
      <attachid>261946</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-25 17:29:37 -0700</bug_when>
    <thetext>Comment on attachment 261946
Patch

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

Thank you for your comments!

&gt;&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:71
&gt;&gt; +    request.setCharset(ASCIILiteral(&quot;utf-8&quot;));
&gt; 
&gt; What would we do when the response includes a Content-Type with a different charset? If we are to only support utf-8, we should detect that as a fatal error, and refuse to decode - but this code forces utf-8 on top of explicit charset. That&apos;s a violation of the http spec, which is a lot more influential than gihub specs are.
&gt; 
&gt; But also, the requirement to only support utf-8 is a silly political stance. Discussion in https://github.com/whatwg/loader/issues/83 references worker loader, but we intentionally support arbitrary encodings with workers.

However, it raises severe problem allowing charset for modules because the execution result of the same module is cached.

&lt;script type=&quot;module&quot; charset=&quot;euc-jp&quot; src=&quot;A.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;module&quot; charset=&quot;utf-8&quot; src=&quot;B.js&quot;&gt;&lt;/script&gt;

A.js:
import &quot;C.js&quot;

B.js:
import &quot;C.js&quot;

In this case, we only execute the C.js once.
And A.js and B.js share the result of C.js.
At that time, we cannot determine which charset should be applied to C.js.
I think forcing utf-8 is good simple solution for this.

We have an alternative solution: when the charset is different, load C.js twice in the above case and distinguish these modules.
But I&apos;m not sure it&apos;s worth doing.
Since the module code contains the different syntax and semantics, I think we don&apos;t need to maintain the compatibility for the code written in the different charset. They don&apos;t contain any module syntax.

&quot;What would we do when the response includes a Content-Type with a different charset? If we are to only support utf-8, we should detect that as a fatal error, and refuse to decode - but this code forces utf-8 on top of explicit charset. That&apos;s a violation of the http spec, which is a lot more influential than gihub specs are.&quot;

Nice catch, you&apos;re right.
We should refuse if the response includes a Content-Type with a different charset.
I&apos;ll investigate it and fix the implementation.

&gt;&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:74
&gt;&gt; +    // Once the spec describes the details, we will follow it.
&gt; 
&gt; Are these details any different than for &lt;img&gt; or &lt;video&gt; elements?

This is similar to the above problem.

&lt;script type=&quot;module&quot; crossorigin=&quot;use-credentials&quot;  src=&quot;A.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;module&quot; crossorigin=&quot;anonymous&quot; src=&quot;B.js&quot;&gt;&lt;/script&gt;

A.js:
import &quot;C.js&quot;

B.js:
import &quot;C.js&quot;

In the above case, we cannot determine which cross origin option should be applied to the C.js.
This is still discussed.

&gt;&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:75
&gt;&gt; +    request.setInitiator(AtomicString(m_sourceURL.string()));
&gt; 
&gt; The initiator field doesn&apos;t appear to take URLs - it&apos;s either an element, or a predefined constant (not quite sure what the name constructor takes, but that doesn&apos;t sound like an URL either).

Thanks. In the current case, we don&apos;t know which script initiate this code. This is also the similar to the above problem.

&lt;script type=&quot;module&quot; src=&quot;A.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;module&quot; src=&quot;B.js&quot;&gt;&lt;/script&gt;

A.js:
import &quot;C.js&quot;

B.js:
import &quot;C.js&quot;

In the above case, the initiator of the C.js is non-deterministic.
So, I&apos;m now planning to modify the request to allow the other thing (like module key, or URL) as an initiator.

&gt;&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:126
&gt;&gt; +            m_deferred-&gt;reject(exec, JSC::Symbol::create(exec-&gt;vm(), *(frame-&gt;script().moduleLoaderAlreadyReportedErrorSymbol().uid())));
&gt; 
&gt; Is this where we get if the web page is closed while loading a module? I&apos;m not sure if rejecting is the right thing to do in this case.

No, this is where we get if we encountered an error with resource fetching. For example, when we found 404.
So I think rejecting is the right for this.

&gt;&gt; Source/WebCore/bindings/js/ModuleLoader.cpp:76
&gt;&gt; +            completedURL = m_document.completeURL(moduleName, URL(ParsedURLString, referrer));
&gt; 
&gt; The ParsedURLString constructor may only be used for strings that originated as URL.string(), and only if the URL was not invalid. I&apos;m not sure where the JSValue, but it seems like it may not be.

In the current implementation, this referrerValue&apos;s string is ensured it is always valid URL.
Because,
1. We only allow URL or Symbol for module key now by this resolve implementation.
2. The resolved module key will be used as a referrer value. Or if there is no referrer value, it becomes undefined. (referrer value means, the module key of the importing module. so resolve(imported-mod-name, importing-mod-key) will be called).
3. We already filtered symbol case and undefined case, so here, the referrer is always string and valid URL.

But, in the future, once the reflective dynamic module loader is introduced (now it&apos;s very early stage), the condition may become different.
So I&apos;ll rewrite here to the more defensive code :D (Any value may come here)

&gt;&gt; Source/WebCore/bindings/js/ModuleLoader.cpp:120
&gt;&gt; +        sourceURL = URL(ParsedURLString, asString(moduleKeyValue)-&gt;value(exec));
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:352
&gt;&gt; +        String sourceUrl = sourceAttributeValue();
&gt; 
&gt; Style nit: should be &quot;sourceURL&quot;

Thanks. Fixed.

&gt;&gt; LayoutTests/js/dom/module-src-dynamic.html:1
&gt;&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt; 
&gt; Please use HTML5 doctype in new tests.
&gt; 
&gt; If these are generated by some script, it should be updated (not in this patch).

Thanks. I copied header part from the other Promise tests. I&apos;ll fix test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128836</commentid>
    <comment_count>25</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-25 18:24:48 -0700</bug_when>
    <thetext>(In reply to comment #24)

I&apos;ve fixed hook related things in https://bugs.webkit.org/show_bug.cgi?id=149574 and updated the patch :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128864</commentid>
    <comment_count>26</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-26 00:59:40 -0700</bug_when>
    <thetext>TODO:
Add tests for SVG script element with type=&quot;module&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221637</commentid>
    <comment_count>27</comment_count>
      <attachid>286536</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-20 00:59:57 -0700</bug_when>
    <thetext>Created attachment 286536
Patch

WIP: Rebaselining &amp; updating</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221713</commentid>
    <comment_count>28</comment_count>
      <attachid>286556</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-20 23:01:22 -0700</bug_when>
    <thetext>Created attachment 286556
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221715</commentid>
    <comment_count>29</comment_count>
      <attachid>286558</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-20 23:17:09 -0700</bug_when>
    <thetext>Created attachment 286558
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221868</commentid>
    <comment_count>30</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-08-22 08:59:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/27948010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223404</commentid>
    <comment_count>31</comment_count>
      <attachid>287071</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-25 21:01:31 -0700</bug_when>
    <thetext>Created attachment 287071
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223602</commentid>
    <comment_count>32</comment_count>
      <attachid>287124</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-26 11:18:30 -0700</bug_when>
    <thetext>Created attachment 287124
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223765</commentid>
    <comment_count>33</comment_count>
      <attachid>287165</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-26 15:50:33 -0700</bug_when>
    <thetext>Created attachment 287165
Patch

WIP: preloader is fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223801</commentid>
    <comment_count>34</comment_count>
      <attachid>287165</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-26 17:07:33 -0700</bug_when>
    <thetext>Comment on attachment 287165
Patch

Attachment 287165 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1950143

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-load-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-execution-order-mixed.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223802</commentid>
    <comment_count>35</comment_count>
      <attachid>287175</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-26 17:07:38 -0700</bug_when>
    <thetext>Created attachment 287175
Archive of layout-test-results from ews114 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews114  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223803</commentid>
    <comment_count>36</comment_count>
      <attachid>287165</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-26 17:08:02 -0700</bug_when>
    <thetext>Comment on attachment 287165
Patch

Attachment 287165 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1950166

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-load-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-execution-order-mixed.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223804</commentid>
    <comment_count>37</comment_count>
      <attachid>287176</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-26 17:08:07 -0700</bug_when>
    <thetext>Created attachment 287176
Archive of layout-test-results from ews107 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223811</commentid>
    <comment_count>38</comment_count>
      <attachid>287165</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-26 17:27:46 -0700</bug_when>
    <thetext>Comment on attachment 287165
Patch

Attachment 287165 did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/1950242

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-load-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-execution-order-mixed.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223812</commentid>
    <comment_count>39</comment_count>
      <attachid>287179</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-26 17:27:53 -0700</bug_when>
    <thetext>Created attachment 287179
Archive of layout-test-results from ews123 for ios-simulator-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews123  Port: ios-simulator-elcapitan-wk2  Platform: Mac OS X 10.11.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223845</commentid>
    <comment_count>40</comment_count>
      <attachid>287165</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-26 19:10:23 -0700</bug_when>
    <thetext>Comment on attachment 287165
Patch

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

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-load-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-execution-order-mixed.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223846</commentid>
    <comment_count>41</comment_count>
      <attachid>287187</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-26 19:10:28 -0700</bug_when>
    <thetext>Created attachment 287187
Archive of layout-test-results from ews101 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews101  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224043</commentid>
    <comment_count>42</comment_count>
      <attachid>287223</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-28 02:10:06 -0700</bug_when>
    <thetext>Created attachment 287223
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224052</commentid>
    <comment_count>43</comment_count>
      <attachid>287223</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-28 03:23:14 -0700</bug_when>
    <thetext>Comment on attachment 287223
Patch

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

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-not-found-error-event.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-load-event-with-src.html
js/dom/module-load-event.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-execution-order-mixed.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224053</commentid>
    <comment_count>44</comment_count>
      <attachid>287225</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-28 03:23:20 -0700</bug_when>
    <thetext>Created attachment 287225
Archive of layout-test-results from ews103 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224054</commentid>
    <comment_count>45</comment_count>
      <attachid>287223</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-28 03:26:59 -0700</bug_when>
    <thetext>Comment on attachment 287223
Patch

Attachment 287223 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1958807

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-not-found-error-event.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-load-event-with-src.html
js/dom/module-load-event.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-execution-order-mixed.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224055</commentid>
    <comment_count>46</comment_count>
      <attachid>287226</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-28 03:27:06 -0700</bug_when>
    <thetext>Created attachment 287226
Archive of layout-test-results from ews106 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224056</commentid>
    <comment_count>47</comment_count>
      <attachid>287223</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-28 03:37:08 -0700</bug_when>
    <thetext>Comment on attachment 287223
Patch

Attachment 287223 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1958819

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-not-found-error-event.html
js/dom/module-incorrect-relative-specifier.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-load-event-with-src.html
js/dom/module-load-event.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-execution-order-mixed.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224057</commentid>
    <comment_count>48</comment_count>
      <attachid>287227</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-28 03:37:15 -0700</bug_when>
    <thetext>Created attachment 287227
Archive of layout-test-results from ews116 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews116  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224058</commentid>
    <comment_count>49</comment_count>
      <attachid>287223</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-28 03:37:41 -0700</bug_when>
    <thetext>Comment on attachment 287223
Patch

Attachment 287223 did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/1958814

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-not-found-error-event.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-load-event-with-src.html
js/dom/module-load-event.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-execution-order-mixed.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224059</commentid>
    <comment_count>50</comment_count>
      <attachid>287228</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-28 03:37:52 -0700</bug_when>
    <thetext>Created attachment 287228
Archive of layout-test-results from ews126 for ios-simulator-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews126  Port: ios-simulator-elcapitan-wk2  Platform: Mac OS X 10.11.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224108</commentid>
    <comment_count>51</comment_count>
      <attachid>287247</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-28 23:05:59 -0700</bug_when>
    <thetext>Created attachment 287247
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224126</commentid>
    <comment_count>52</comment_count>
      <attachid>287247</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 00:25:26 -0700</bug_when>
    <thetext>Comment on attachment 287247
Patch

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

New failing tests:
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html
js/dom/module-not-found-error-event.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224127</commentid>
    <comment_count>53</comment_count>
      <attachid>287253</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 00:25:30 -0700</bug_when>
    <thetext>Created attachment 287253
Archive of layout-test-results from ews102 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews102  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224128</commentid>
    <comment_count>54</comment_count>
      <attachid>287247</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 00:27:53 -0700</bug_when>
    <thetext>Comment on attachment 287247
Patch

Attachment 287247 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1963917

New failing tests:
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html
js/dom/module-not-found-error-event.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224129</commentid>
    <comment_count>55</comment_count>
      <attachid>287254</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 00:28:00 -0700</bug_when>
    <thetext>Created attachment 287254
Archive of layout-test-results from ews105 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews105  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224130</commentid>
    <comment_count>56</comment_count>
      <attachid>287247</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 00:30:33 -0700</bug_when>
    <thetext>Comment on attachment 287247
Patch

Attachment 287247 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1963921

New failing tests:
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html
js/dom/module-not-found-error-event.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224131</commentid>
    <comment_count>57</comment_count>
      <attachid>287255</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 00:30:39 -0700</bug_when>
    <thetext>Created attachment 287255
Archive of layout-test-results from ews113 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224133</commentid>
    <comment_count>58</comment_count>
      <attachid>287247</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 00:39:17 -0700</bug_when>
    <thetext>Comment on attachment 287247
Patch

Attachment 287247 did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/1963930

New failing tests:
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html
js/dom/module-not-found-error-event.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224134</commentid>
    <comment_count>59</comment_count>
      <attachid>287257</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 00:39:25 -0700</bug_when>
    <thetext>Created attachment 287257
Archive of layout-test-results from ews121 for ios-simulator-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews121  Port: ios-simulator-elcapitan-wk2  Platform: Mac OS X 10.11.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224199</commentid>
    <comment_count>60</comment_count>
      <attachid>287277</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-29 10:10:30 -0700</bug_when>
    <thetext>Created attachment 287277
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224205</commentid>
    <comment_count>61</comment_count>
      <attachid>287279</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-29 10:35:44 -0700</bug_when>
    <thetext>Created attachment 287279
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224235</commentid>
    <comment_count>62</comment_count>
      <attachid>287279</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 11:38:00 -0700</bug_when>
    <thetext>Comment on attachment 287279
Patch

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

New failing tests:
transitions/default-timing-function.html
js/dom/module-not-found-error-event.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224237</commentid>
    <comment_count>63</comment_count>
      <attachid>287292</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 11:38:10 -0700</bug_when>
    <thetext>Created attachment 287292
Archive of layout-test-results from ews103 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224245</commentid>
    <comment_count>64</comment_count>
      <attachid>287279</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 11:45:50 -0700</bug_when>
    <thetext>Comment on attachment 287279
Patch

Attachment 287279 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1966746

New failing tests:
js/dom/module-not-found-error-event.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224246</commentid>
    <comment_count>65</comment_count>
      <attachid>287294</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 11:45:58 -0700</bug_when>
    <thetext>Created attachment 287294
Archive of layout-test-results from ews107 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224253</commentid>
    <comment_count>66</comment_count>
      <attachid>287279</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 11:49:28 -0700</bug_when>
    <thetext>Comment on attachment 287279
Patch

Attachment 287279 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1966743

New failing tests:
js/dom/module-not-found-error-event.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224254</commentid>
    <comment_count>67</comment_count>
      <attachid>287297</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 11:49:34 -0700</bug_when>
    <thetext>Created attachment 287297
Archive of layout-test-results from ews117 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews117  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224262</commentid>
    <comment_count>68</comment_count>
      <attachid>287279</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 11:55:45 -0700</bug_when>
    <thetext>Comment on attachment 287279
Patch

Attachment 287279 did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/1966757

New failing tests:
js/dom/module-not-found-error-event.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224263</commentid>
    <comment_count>69</comment_count>
      <attachid>287300</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-29 11:55:53 -0700</bug_when>
    <thetext>Created attachment 287300
Archive of layout-test-results from ews125 for ios-simulator-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews125  Port: ios-simulator-elcapitan-wk2  Platform: Mac OS X 10.11.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224363</commentid>
    <comment_count>70</comment_count>
      <attachid>287329</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-29 14:27:35 -0700</bug_when>
    <thetext>Created attachment 287329
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224378</commentid>
    <comment_count>71</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-29 15:02:20 -0700</bug_when>
    <thetext>OK, the tests have passed.
I&apos;m now cleaning up the patch.
Maybe, I&apos;ll split the patch into reasonable pieces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224852</commentid>
    <comment_count>72</comment_count>
      <attachid>287479</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-30 21:04:18 -0700</bug_when>
    <thetext>Created attachment 287479
Patch

WIP: rebaselining after r205218</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224920</commentid>
    <comment_count>73</comment_count>
      <attachid>287504</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-31 01:14:37 -0700</bug_when>
    <thetext>Created attachment 287504
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225097</commentid>
    <comment_count>74</comment_count>
      <attachid>287545</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-31 14:52:02 -0700</bug_when>
    <thetext>Created attachment 287545
Patch

WIP: update. Let&apos;s spawn the JSC part next</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225147</commentid>
    <comment_count>75</comment_count>
      <attachid>287545</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-31 16:34:29 -0700</bug_when>
    <thetext>Comment on attachment 287545
Patch

Attachment 287545 did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/1982837

New failing tests:
fast/scrolling/ios/scrollTo-at-page-load.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225149</commentid>
    <comment_count>76</comment_count>
      <attachid>287563</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-31 16:34:35 -0700</bug_when>
    <thetext>Created attachment 287563
Archive of layout-test-results from ews122 for ios-simulator-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews122  Port: ios-simulator-elcapitan-wk2  Platform: Mac OS X 10.11.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225245</commentid>
    <comment_count>77</comment_count>
      <attachid>287596</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-31 21:44:22 -0700</bug_when>
    <thetext>Created attachment 287596
Patch

WIP: Rebaselining after r205276 and r205278</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225431</commentid>
    <comment_count>78</comment_count>
      <attachid>287646</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 11:43:45 -0700</bug_when>
    <thetext>Created attachment 287646
Patch

WIP: Make ScriptModuleFetcher ActiveDOMObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225566</commentid>
    <comment_count>79</comment_count>
      <attachid>287690</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 15:23:49 -0700</bug_when>
    <thetext>Created attachment 287690
Patch

WIP: Intentionally allow charset attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225589</commentid>
    <comment_count>80</comment_count>
      <attachid>261946</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 16:04:00 -0700</bug_when>
    <thetext>Comment on attachment 261946
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:71
&gt;&gt;&gt; +    request.setCharset(ASCIILiteral(&quot;utf-8&quot;));
&gt;&gt; 
&gt;&gt; What would we do when the response includes a Content-Type with a different charset? If we are to only support utf-8, we should detect that as a fatal error, and refuse to decode - but this code forces utf-8 on top of explicit charset. That&apos;s a violation of the http spec, which is a lot more influential than gihub specs are.
&gt;&gt; 
&gt;&gt; But also, the requirement to only support utf-8 is a silly political stance. Discussion in https://github.com/whatwg/loader/issues/83 references worker loader, but we intentionally support arbitrary encodings with workers.
&gt; 
&gt; However, it raises severe problem allowing charset for modules because the execution result of the same module is cached.
&gt; 
&gt; &lt;script type=&quot;module&quot; charset=&quot;euc-jp&quot; src=&quot;A.js&quot;&gt;&lt;/script&gt;
&gt; &lt;script type=&quot;module&quot; charset=&quot;utf-8&quot; src=&quot;B.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; A.js:
&gt; import &quot;C.js&quot;
&gt; 
&gt; B.js:
&gt; import &quot;C.js&quot;
&gt; 
&gt; In this case, we only execute the C.js once.
&gt; And A.js and B.js share the result of C.js.
&gt; At that time, we cannot determine which charset should be applied to C.js.
&gt; I think forcing utf-8 is good simple solution for this.
&gt; 
&gt; We have an alternative solution: when the charset is different, load C.js twice in the above case and distinguish these modules.
&gt; But I&apos;m not sure it&apos;s worth doing.
&gt; Since the module code contains the different syntax and semantics, I think we don&apos;t need to maintain the compatibility for the code written in the different charset. They don&apos;t contain any module syntax.
&gt; 
&gt; &quot;What would we do when the response includes a Content-Type with a different charset? If we are to only support utf-8, we should detect that as a fatal error, and refuse to decode - but this code forces utf-8 on top of explicit charset. That&apos;s a violation of the http spec, which is a lot more influential than gihub specs are.&quot;
&gt; 
&gt; Nice catch, you&apos;re right.
&gt; We should refuse if the response includes a Content-Type with a different charset.
&gt; I&apos;ll investigate it and fix the implementation.

Now, we intentionally use the &quot;character&quot; attribute even if the module script is fetched.
In the above described case, we use the first one, &quot;A&quot;. This is somewhat strange, but is consistent to the current spec&apos;s &quot;nonce&quot;, &quot;crossorigin&quot; etc. attributes handling.

&gt;&gt;&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:74
&gt;&gt;&gt; +    // Once the spec describes the details, we will follow it.
&gt;&gt; 
&gt;&gt; Are these details any different than for &lt;img&gt; or &lt;video&gt; elements?
&gt; 
&gt; This is similar to the above problem.
&gt; 
&gt; &lt;script type=&quot;module&quot; crossorigin=&quot;use-credentials&quot;  src=&quot;A.js&quot;&gt;&lt;/script&gt;
&gt; &lt;script type=&quot;module&quot; crossorigin=&quot;anonymous&quot; src=&quot;B.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; A.js:
&gt; import &quot;C.js&quot;
&gt; 
&gt; B.js:
&gt; import &quot;C.js&quot;
&gt; 
&gt; In the above case, we cannot determine which cross origin option should be applied to the C.js.
&gt; This is still discussed.

Now the spec describes the behavior.
In the above case, the first fetching request (In this case, request from A) should be used and shared.

&gt;&gt;&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:75
&gt;&gt;&gt; +    request.setInitiator(AtomicString(m_sourceURL.string()));
&gt;&gt; 
&gt;&gt; The initiator field doesn&apos;t appear to take URLs - it&apos;s either an element, or a predefined constant (not quite sure what the name constructor takes, but that doesn&apos;t sound like an URL either).
&gt; 
&gt; Thanks. In the current case, we don&apos;t know which script initiate this code. This is also the similar to the above problem.
&gt; 
&gt; &lt;script type=&quot;module&quot; src=&quot;A.js&quot;&gt;&lt;/script&gt;
&gt; &lt;script type=&quot;module&quot; src=&quot;B.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; A.js:
&gt; import &quot;C.js&quot;
&gt; 
&gt; B.js:
&gt; import &quot;C.js&quot;
&gt; 
&gt; In the above case, the initiator of the C.js is non-deterministic.
&gt; So, I&apos;m now planning to modify the request to allow the other thing (like module key, or URL) as an initiator.

Fixed. Now ScriptModuleFetcher uses the element to construct the request.

&gt;&gt;&gt; Source/WebCore/bindings/js/ModuleFetcher.cpp:126
&gt;&gt;&gt; +            m_deferred-&gt;reject(exec, JSC::Symbol::create(exec-&gt;vm(), *(frame-&gt;script().moduleLoaderAlreadyReportedErrorSymbol().uid())));
&gt;&gt; 
&gt;&gt; Is this where we get if the web page is closed while loading a module? I&apos;m not sure if rejecting is the right thing to do in this case.
&gt; 
&gt; No, this is where we get if we encountered an error with resource fetching. For example, when we found 404.
&gt; So I think rejecting is the right for this.

We now changed the ScriptModuleLoader code to the form intentionally using DeferredWrapper.
It won&apos;t call the callback when the active DOM objects have been suspended. So the module pipeline stops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225592</commentid>
    <comment_count>81</comment_count>
      <attachid>287698</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 16:06:21 -0700</bug_when>
    <thetext>Created attachment 287698
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225663</commentid>
    <comment_count>82</comment_count>
      <attachid>287716</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 19:47:45 -0700</bug_when>
    <thetext>Created attachment 287716
Patch

WIP: almost completed patch. needs testing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225688</commentid>
    <comment_count>83</comment_count>
      <attachid>287725</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 20:52:11 -0700</bug_when>
    <thetext>Created attachment 287725
Patch

WIP: rebaselining after r205335. JSC part is landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225690</commentid>
    <comment_count>84</comment_count>
      <attachid>287727</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 21:17:07 -0700</bug_when>
    <thetext>Created attachment 287727
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225704</commentid>
    <comment_count>85</comment_count>
      <attachid>287733</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 22:18:45 -0700</bug_when>
    <thetext>Created attachment 287733
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225724</commentid>
    <comment_count>86</comment_count>
      <attachid>287733</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-01 23:34:46 -0700</bug_when>
    <thetext>Comment on attachment 287733
Patch

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

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-will-fire-beforeload.html
js/dom/module-incorrect-relative-specifier.html
js/dom/module-load-event-with-src.html
js/dom/module-src-simple.html
js/dom/module-execution-order-mixed.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225725</commentid>
    <comment_count>87</comment_count>
      <attachid>287742</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-01 23:34:56 -0700</bug_when>
    <thetext>Created attachment 287742
Archive of layout-test-results from ews103 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225726</commentid>
    <comment_count>88</comment_count>
      <attachid>287733</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-01 23:38:28 -0700</bug_when>
    <thetext>Comment on attachment 287733
Patch

Attachment 287733 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1991998

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-will-fire-beforeload.html
js/dom/module-incorrect-relative-specifier.html
js/dom/module-load-event-with-src.html
js/dom/module-src-simple.html
js/dom/module-execution-order-mixed.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225727</commentid>
    <comment_count>89</comment_count>
      <attachid>287743</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-01 23:38:37 -0700</bug_when>
    <thetext>Created attachment 287743
Archive of layout-test-results from ews107 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225728</commentid>
    <comment_count>90</comment_count>
      <attachid>287744</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 23:50:55 -0700</bug_when>
    <thetext>Created attachment 287744
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225739</commentid>
    <comment_count>91</comment_count>
      <attachid>287744</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-02 01:30:49 -0700</bug_when>
    <thetext>Comment on attachment 287744
Patch

Attachment 287744 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1992404

New failing tests:
js/dom/module-execution-error-should-be-propagated-to-onerror.html
js/dom/module-src-simple.html
js/dom/module-type-case-insensitive.html
js/dom/module-load-event-with-src.html
js/dom/module-load-event.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-inline-simple.html
js/dom/module-execution-order-mixed.html
js/dom/module-src-dynamic.html
js/dom/module-execution-order-inline.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html
js/dom/module-inline-dynamic.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225740</commentid>
    <comment_count>92</comment_count>
      <attachid>287750</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-02 01:30:57 -0700</bug_when>
    <thetext>Created attachment 287750
Archive of layout-test-results from ews112 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews112  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225782</commentid>
    <comment_count>93</comment_count>
      <attachid>287764</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-02 09:21:26 -0700</bug_when>
    <thetext>Created attachment 287764
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225839</commentid>
    <comment_count>94</comment_count>
      <attachid>287781</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-02 11:07:48 -0700</bug_when>
    <thetext>Created attachment 287781
Patch

WIP: finishing the implementation. adding bunch of tests...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226043</commentid>
    <comment_count>95</comment_count>
      <attachid>287836</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-02 17:18:24 -0700</bug_when>
    <thetext>Created attachment 287836
Patch

OK. Still I&apos;m adding tests, but early review is welcome! For EWS, now I commented out ES6_MODULES flag check, but this will be fixed when landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226044</commentid>
    <comment_count>96</comment_count>
      <attachid>287836</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-02 17:22:10 -0700</bug_when>
    <thetext>Comment on attachment 287836
Patch

Oops. Fixing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226062</commentid>
    <comment_count>97</comment_count>
      <attachid>287836</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-02 18:34:27 -0700</bug_when>
    <thetext>Comment on attachment 287836
Patch

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

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-will-fire-beforeload.html
js/dom/module-inline-simple.html
js/dom/module-type-case-insensitive.html
js/dom/module-load-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-src-current-script.html
js/dom/module-src-simple.html
js/dom/module-execution-order-mixed.html
js/dom/module-src-dynamic.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html
js/dom/module-inline-dynamic.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226063</commentid>
    <comment_count>98</comment_count>
      <attachid>287843</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-02 18:34:34 -0700</bug_when>
    <thetext>Created attachment 287843
Archive of layout-test-results from ews100 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226064</commentid>
    <comment_count>99</comment_count>
      <attachid>287836</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-02 18:44:08 -0700</bug_when>
    <thetext>Comment on attachment 287836
Patch

Attachment 287836 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1997466

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-will-fire-beforeload.html
js/dom/module-src-simple.html
js/dom/module-type-case-insensitive.html
js/dom/module-load-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-src-current-script.html
js/dom/module-inline-simple.html
js/dom/module-execution-order-mixed.html
js/dom/module-src-dynamic.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html
js/dom/module-inline-dynamic.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226065</commentid>
    <comment_count>100</comment_count>
      <attachid>287844</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-09-02 18:44:15 -0700</bug_when>
    <thetext>Created attachment 287844
Archive of layout-test-results from ews117 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews117  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226069</commentid>
    <comment_count>101</comment_count>
      <attachid>287846</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-02 19:09:16 -0700</bug_when>
    <thetext>Created attachment 287846
Patch

Still adding tests. Now tests become green</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226076</commentid>
    <comment_count>102</comment_count>
      <attachid>287846</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-02 19:43:04 -0700</bug_when>
    <thetext>Comment on attachment 287846
Patch

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

&gt; Source/JavaScriptCore/runtime/PrivateName.h:57
&gt; -    Ref&lt;SymbolImpl&gt; m_uid;
&gt; +    RefPtr&lt;SymbolImpl&gt; m_uid;

Why are we changing this back to RefPtr?

&gt; Source/WebCore/dom/ScriptElement.cpp:432
&gt; +bool ScriptElement::requestModuleScript(const TextPosition&amp; scriptStartPosition)

I&apos;d call this requestModuleScriptGraph or requestScriptModuleDependencies instead since you&apos;re loading all its dependences.

&gt; Source/WebCore/dom/ScriptElement.cpp:437
&gt; +    // The browser module loader loads the module sources.
&gt; +    // Since the module involves loading of the dependent modules and the dependent modules does not have corresponding script elements,
&gt; +    // the functionality of loading modules is separated from the script element.
&gt; +

With that rename, I don&apos;t think we need this comment.

&gt; Source/WebCore/dom/ScriptElement.cpp:449
&gt; +        // Script element may be detached and attached to a different document while executing the event listener.
&gt; +        if (!m_element.inDocument() || &amp;m_element.document() != originalDocument.ptr())

We should definitely add a test for this.  But WebKit&apos;s way of adding a comment like this is to use a local variable of a descriptive name instead.
e.g.
bool didEventListenerDisconnectThisElement = !m_element.inDocument() || &amp;m_element.document() != originalDocument.ptr()

&gt; Source/WebCore/dom/ScriptElement.cpp:467
&gt; +        // Reset line numbering for nested writes.

I don&apos;t think we need this comment.

&gt; Source/WebCore/dom/ScriptRunner.cpp:74
&gt; +void ScriptRunner::queueScriptModuleGraphForExecution(ScriptElement* scriptElement, ScriptModuleGraph&amp; moduleGraph, ExecutionType executionType)

Is it possible to introduce an abstract interface from which both ScriptModuleGraph and CachedResourceHandle&lt;CachedScript&gt; (or a new wrapper for it) inherit
so that we don&apos;t have to duplicate code like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226095</commentid>
    <comment_count>103</comment_count>
      <attachid>287846</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-03 00:29:19 -0700</bug_when>
    <thetext>Comment on attachment 287846
Patch

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

Thank you!

&gt;&gt; Source/JavaScriptCore/runtime/PrivateName.h:57
&gt;&gt; +    RefPtr&lt;SymbolImpl&gt; m_uid;
&gt; 
&gt; Why are we changing this back to RefPtr?

This is because  it is the simple way to make this PrivateName copyable.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:432
&gt;&gt; +bool ScriptElement::requestModuleScript(const TextPosition&amp; scriptStartPosition)
&gt; 
&gt; I&apos;d call this requestModuleScriptGraph or requestScriptModuleDependencies instead since you&apos;re loading all its dependences.

Right. Sounds nice. Fixed.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:437
&gt;&gt; +
&gt; 
&gt; With that rename, I don&apos;t think we need this comment.

OK. Dropped.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:449
&gt;&gt; +        if (!m_element.inDocument() || &amp;m_element.document() != originalDocument.ptr())
&gt; 
&gt; We should definitely add a test for this.  But WebKit&apos;s way of adding a comment like this is to use a local variable of a descriptive name instead.
&gt; e.g.
&gt; bool didEventListenerDisconnectThisElement = !m_element.inDocument() || &amp;m_element.document() != originalDocument.ptr()

Nice. Fixed. And I also applied this fix to the requestClassicScript.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:467
&gt;&gt; +        // Reset line numbering for nested writes.
&gt; 
&gt; I don&apos;t think we need this comment.

OK. Dropped. And I also dropped the same comment in the requestClassicScript.

&gt;&gt; Source/WebCore/dom/ScriptRunner.cpp:74
&gt;&gt; +void ScriptRunner::queueScriptModuleGraphForExecution(ScriptElement* scriptElement, ScriptModuleGraph&amp; moduleGraph, ExecutionType executionType)
&gt; 
&gt; Is it possible to introduce an abstract interface from which both ScriptModuleGraph and CachedResourceHandle&lt;CachedScript&gt; (or a new wrapper for it) inherit
&gt; so that we don&apos;t have to duplicate code like this?

Yeah, we can do that. I think it is cleaner to provide a new wrapper, since these two things are managed by the different somewhat ref-counting system. (While we use CachedResourceHandle for CachedScript, ScriptModuleGraph is managed by RefPtr).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226854</commentid>
    <comment_count>104</comment_count>
      <attachid>288049</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 15:07:37 -0700</bug_when>
    <thetext>Created attachment 288049
Patch

Adding tests now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226860</commentid>
    <comment_count>105</comment_count>
      <attachid>288049</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 15:12:46 -0700</bug_when>
    <thetext>Comment on attachment 288049
Patch

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

&gt; Source/WebCore/dom/LoadableScript.h:1
&gt; +/*

Add LoadableScript, LoadableScriptModuleGraph, and LoadableClassicScript.
The latter 2 classes are derived classes from LoadableScript.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226861</commentid>
    <comment_count>106</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 15:14:16 -0700</bug_when>
    <thetext>I&apos;ll rebaseline the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226863</commentid>
    <comment_count>107</comment_count>
      <attachid>288051</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 15:18:34 -0700</bug_when>
    <thetext>Created attachment 288051
Patch

Adding tests now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226872</commentid>
    <comment_count>108</comment_count>
      <attachid>288051</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 15:23:38 -0700</bug_when>
    <thetext>Comment on attachment 288051
Patch

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

&gt; Source/WebCore/dom/LoadableClassicScript.h:57
&gt; +    HashCountedSet&lt;LoadableScriptClient*&gt; m_clients;

Oops. This will be dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226878</commentid>
    <comment_count>109</comment_count>
      <attachid>288051</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 15:33:33 -0700</bug_when>
    <thetext>Comment on attachment 288051
Patch

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

&gt; Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:925
&gt; +            m_pendingScript = &amp;downcast&lt;LoadableClassicScript&gt;(*scriptElement-&gt;loadableScript()).cachedScript();

Oops. This part will be slightly updated &amp; cleaned up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226879</commentid>
    <comment_count>110</comment_count>
      <attachid>288051</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 15:39:06 -0700</bug_when>
    <thetext>Comment on attachment 288051
Patch

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

&gt;&gt; Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:925
&gt;&gt; +            m_pendingScript = &amp;downcast&lt;LoadableClassicScript&gt;(*scriptElement-&gt;loadableScript()).cachedScript();
&gt; 
&gt; Oops. This part will be slightly updated &amp; cleaned up.

I think this XML Document parser&apos;s scripting needs refactoring.
In the meantime, I disable &quot;module&quot; feature for the XML document, but this should be enabled later.
Specifically, XMLDocumentParser should use PendingScript to construct such a logic I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226925</commentid>
    <comment_count>111</comment_count>
      <attachid>288066</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 16:29:43 -0700</bug_when>
    <thetext>Created attachment 288066
Patch

Fix EFL build, add tests for mime type checking</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226926</commentid>
    <comment_count>112</comment_count>
      <attachid>288066</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 16:35:28 -0700</bug_when>
    <thetext>Comment on attachment 288066
Patch

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

&gt; Source/WebCore/dom/ScriptElement.cpp:178
&gt; +// #endif

Note that this commenting out and TestExpectation is now modified to test modules in EWS.
When landing, we will make this guard back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226930</commentid>
    <comment_count>113</comment_count>
      <attachid>288066</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 16:56:32 -0700</bug_when>
    <thetext>Comment on attachment 288066
Patch

Discussed with rniwa offline. I&apos;ll first split this patch into smaller ones, especially, I&apos;ll extract the LoadableScript part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226932</commentid>
    <comment_count>114</comment_count>
      <attachid>288051</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-06 16:57:45 -0700</bug_when>
    <thetext>Comment on attachment 288051
Patch

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

I think we may want to split the part to add LoadableScript as a wrapper for CachedScript as a separate patch so that the related refactoring can be landed separately.  That&apos;ll make this patch easier to review &amp; reason through.

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        * runtime/PrivateName.h: PrivateName should be copyable. I completely forgot that in the previous patch.
&gt; +        (JSC::PrivateName::PrivateName):
&gt; +        (JSC::PrivateName::uid):

Can we land this in a separate patch?

&gt; Source/WebCore/ChangeLog:28
&gt; +            3. ScriptModuleFetcher

We might want to call this CachedModuleScriptLoader or something since this class doesn&apos;t really fetch the module file if it&apos;s already cached.

&gt; Source/WebCore/bindings/js/ScriptModuleFetcher.cpp:80
&gt; +    m_loaded = true;

Don&apos;t we need to clear m_deferred here?
Also, if we&apos;ve done that, do we still need a separate m_loaded boolean?

&gt; Source/WebCore/bindings/js/ScriptModuleFetcher.cpp:89
&gt; +    if (m_client)
&gt; +        m_client-&gt;notifyFinished(*this);

Why don&apos;t we just call this with m_deferred here instead of keeping it around in the fetcher object and calling deferred() in ScriptModuleLoader::notifyFinished ?
That way, we can even use WTFMove() and remove the ownership the callee.

&gt; Source/WebCore/bindings/js/ScriptModuleFetcher.h:73
&gt; +    RefPtr&lt;DeferredWrapper&gt; m_deferred;

We might want to call this m_promise instead.

&gt; Source/WebCore/bindings/js/ScriptModuleGraph.h:49
&gt; +    bool errorOccurred() const { return m_errored; }

I&apos;d call this wasErrored for consistency.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:99
&gt; +    if (importerModuleKey.isSymbol() || importerModuleKey.isUndefined()) {
&gt; +        // When the module is root module, we resolve the specifier with the document.

It&apos;s better to define a descriptive local variable. e.g.
bool isRootModule = importerModuleKey.isSymbol() || importerModuleKey.isUndefined().

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:108
&gt; +        // The base URL is a response URL while the module key is a request URL.

I don&apos;t know what this comment means.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:110
&gt; +        URL importerModuleResponseURL = m_baseURLMap.get(importerModuleRequestURL);
&gt; +        if (!importerModuleResponseURL.isValid()) {

It&apos;s strange that m_baseURLMap contains response URLs.
Having said that, I don&apos;t think we need a separate comment about this especially with the error message describing the situation right beneath it.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:133
&gt; -    JSC::JSInternalPromiseDeferred* deferred = JSC::JSInternalPromiseDeferred::create(exec, globalObject);
&gt; +    return JSC::jsCast&lt;JSC::JSInternalPromise*&gt;(resolvePromise(m_document, *exec, *JSC::jsCast&lt;JSDOMGlobalObject*&gt;(globalObject), moduleNameValue, importerModuleKey));
&gt; +}

Why do we need to split into a separate function?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:219
&gt; +    RefPtr&lt;Element&gt; element = fetcher.element();
&gt; +    RefPtr&lt;DeferredWrapper&gt; deferred = fetcher.deferred();

We can&apos;t use Ref&lt;&gt; here?

&gt; Source/WebCore/dom/ScriptElement.cpp:309
&gt; +bool ScriptElement::requestClassicScript(const String&amp; sourceURL)

Can we keep this as the first function so that the diff looks saner?

&gt; Source/WebCore/dom/ScriptElement.cpp:354
&gt; +        if (is&lt;LoadableClassicScript&gt;(m_loadableScript)) {
&gt; +            auto&amp; cachedScript = downcast&lt;LoadableClassicScript&gt;(*m_loadableScript)-&gt;cachedScript();
&gt; +            if (!cachedScript.mimeTypeAllowedByNosniff()) {

Can we just add mimeTypeAllowedByNosniff on LoadableScript so that we don&apos;t have to do this check?
We can just always return true for modules, right?

&gt; Source/WebCore/dom/ScriptElement.cpp:534
&gt; +bool ScriptElement::attemptToHandleCrossOriginScriptLoad(CachedScript* cachedScript)
&gt; +{

I think this should move to LoadableScript with a name like shouldLoadCrossOriginScript,
and then just have the error spit out in ScriptElement::notifyFinished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226934</commentid>
    <comment_count>115</comment_count>
      <attachid>288066</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-09-06 17:00:40 -0700</bug_when>
    <thetext>Comment on attachment 288066
Patch

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

&gt; Source/JavaScriptCore/runtime/PrivateName.h:51
&gt; +    SymbolImpl&amp; uid() const { return *m_uid.get(); }

I know that this class has an implicit invariant that it is passed a non-null SymbolImpl. What guarantees that this invariant is not violated and m_uid is not nullptr?

&gt; Source/JavaScriptCore/runtime/PrivateName.h:57
&gt; -    Ref&lt;SymbolImpl&gt; m_uid;
&gt; +    RefPtr&lt;SymbolImpl&gt; m_uid;

This does not seem like the correct idiom to use to make PrivateName copyable. I suggest that we implement a custom copy-constructor to handle the copying of Ref&lt;SymbolImpl&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226964</commentid>
    <comment_count>116</comment_count>
      <attachid>288066</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 17:38:55 -0700</bug_when>
    <thetext>Comment on attachment 288066
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/runtime/PrivateName.h:51
&gt;&gt; +    SymbolImpl&amp; uid() const { return *m_uid.get(); }
&gt; 
&gt; I know that this class has an implicit invariant that it is passed a non-null SymbolImpl. What guarantees that this invariant is not violated and m_uid is not nullptr?

We do not allow nullptr SymbolImpl in SymbolImpl users. We may have nullptr UniquedStringImpl* (parent class of SymbolImpl). But in that case, (the wrapper of this class).isSymbol() returns false if the UniquedStringImpl* is nullptr.
For example, Identifier::isSymbol() returns false for nullptr. And Identifier::fromUid(vm, nullptr).isSymbol() is also false.
Before performing downcast (like static_cast&lt;SymbolImpl&amp;&gt;()), we ensure the invariant that SymbolImpl* never becomes nullptr.

&gt;&gt; Source/JavaScriptCore/runtime/PrivateName.h:57
&gt;&gt; +    RefPtr&lt;SymbolImpl&gt; m_uid;
&gt; 
&gt; This does not seem like the correct idiom to use to make PrivateName copyable. I suggest that we implement a custom copy-constructor to handle the copying of Ref&lt;SymbolImpl&gt;.

Looks nice. I&apos;ll create the separate patch based on this approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226966</commentid>
    <comment_count>117</comment_count>
      <attachid>288066</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-06 17:44:04 -0700</bug_when>
    <thetext>Comment on attachment 288066
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/PrivateName.h:51
&gt;&gt;&gt; +    SymbolImpl&amp; uid() const { return *m_uid.get(); }
&gt;&gt; 
&gt;&gt; I know that this class has an implicit invariant that it is passed a non-null SymbolImpl. What guarantees that this invariant is not violated and m_uid is not nullptr?
&gt; 
&gt; We do not allow nullptr SymbolImpl in SymbolImpl users. We may have nullptr UniquedStringImpl* (parent class of SymbolImpl). But in that case, (the wrapper of this class).isSymbol() returns false if the UniquedStringImpl* is nullptr.
&gt; For example, Identifier::isSymbol() returns false for nullptr. And Identifier::fromUid(vm, nullptr).isSymbol() is also false.
&gt; Before performing downcast (like static_cast&lt;SymbolImpl&amp;&gt;()), we ensure the invariant that SymbolImpl* never becomes nullptr.

For this class, we have 3 constructors.

1. PrivateName()
2. explicit PrivateName(DescriptionTag, const String&amp; description)
3. explicit PrivateName(SymbolImpl&amp; uid)

In the cases of 1 and 2, since StringImpl::createXXXSymbol() never returns nullptr (And its type is Ref&lt;SymbolImpl&gt;), this PrivateName does not become m_uid = nullptr.
In the case of 3, we ensure this invariant by taking SymbolImpl&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228063</commentid>
    <comment_count>118</comment_count>
      <attachid>288389</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-08 22:44:23 -0700</bug_when>
    <thetext>Created attachment 288389
WIP

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228404</commentid>
    <comment_count>119</comment_count>
      <attachid>288051</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-09 17:20:44 -0700</bug_when>
    <thetext>Comment on attachment 288051
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt; +        (JSC::PrivateName::uid):
&gt; 
&gt; Can we land this in a separate patch?

OK, I&apos;ll split it soon :)

&gt;&gt; Source/WebCore/ChangeLog:28
&gt;&gt; +            3. ScriptModuleFetcher
&gt; 
&gt; We might want to call this CachedModuleScriptLoader or something since this class doesn&apos;t really fetch the module file if it&apos;s already cached.

Looks better. Changed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleFetcher.cpp:80
&gt;&gt; +    m_loaded = true;
&gt; 
&gt; Don&apos;t we need to clear m_deferred here?
&gt; Also, if we&apos;ve done that, do we still need a separate m_loaded boolean?

Make sense. Changed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleFetcher.cpp:89
&gt;&gt; +        m_client-&gt;notifyFinished(*this);
&gt; 
&gt; Why don&apos;t we just call this with m_deferred here instead of keeping it around in the fetcher object and calling deferred() in ScriptModuleLoader::notifyFinished ?
&gt; That way, we can even use WTFMove() and remove the ownership the callee.

Nice, fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleFetcher.h:73
&gt;&gt; +    RefPtr&lt;DeferredWrapper&gt; m_deferred;
&gt; 
&gt; We might want to call this m_promise instead.

OK, fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleGraph.h:49
&gt;&gt; +    bool errorOccurred() const { return m_errored; }
&gt; 
&gt; I&apos;d call this wasErrored for consistency.

Fixed in LoadableScript patch.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:99
&gt;&gt; +        // When the module is root module, we resolve the specifier with the document.
&gt; 
&gt; It&apos;s better to define a descriptive local variable. e.g.
&gt; bool isRootModule = importerModuleKey.isSymbol() || importerModuleKey.isUndefined().

Sounds nice. Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:108
&gt;&gt; +        // The base URL is a response URL while the module key is a request URL.
&gt; 
&gt; I don&apos;t know what this comment means.

The module key - which maintains identity of each module - should be request URL (URL used when requesting), since we need to detect duplicate module requests before actually sending requests over network.
On the other hand, when we resolve the given module name (`import A from &quot;./A.js&quot;)&apos;s &quot;./A.js&quot; part) with a parent module, this &quot;./A.js&quot; should be resolved with the response URL of the parent module.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:110
&gt;&gt; +        if (!importerModuleResponseURL.isValid()) {
&gt; 
&gt; It&apos;s strange that m_baseURLMap contains response URLs.
&gt; Having said that, I don&apos;t think we need a separate comment about this especially with the error message describing the situation right beneath it.

OK, this comment is dropped. And rename this map more descriptive name, &quot;m_requestURLToResponseURLMap&quot;.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:133
&gt;&gt; +}
&gt; 
&gt; Why do we need to split into a separate function?

Oops, due to previous design of this function. Now, it is not necessary. Merged.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:219
&gt;&gt; +    RefPtr&lt;DeferredWrapper&gt; deferred = fetcher.deferred();
&gt; 
&gt; We can&apos;t use Ref&lt;&gt; here?

We now take RefPtr&lt;DeferredWrapper&gt; as this function&apos;s argument.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:309
&gt;&gt; +bool ScriptElement::requestClassicScript(const String&amp; sourceURL)
&gt; 
&gt; Can we keep this as the first function so that the diff looks saner?

Done in LoadableScript patch and it makes the diff nicer.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:354
&gt;&gt; +            if (!cachedScript.mimeTypeAllowedByNosniff()) {
&gt; 
&gt; Can we just add mimeTypeAllowedByNosniff on LoadableScript so that we don&apos;t have to do this check?
&gt; We can just always return true for modules, right?

Move this check to the LoadableClassicScript in LoadableScript patch, thanks!

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:534
&gt;&gt; +{
&gt; 
&gt; I think this should move to LoadableScript with a name like shouldLoadCrossOriginScript,
&gt; and then just have the error spit out in ScriptElement::notifyFinished.

Nice, I&apos;ve moved this check to the LoadableClassicScript. And now the error is propagated to the ScriptElement through wasErrored().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228419</commentid>
    <comment_count>120</comment_count>
      <attachid>288462</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-09 17:55:20 -0700</bug_when>
    <thetext>Created attachment 288462
Patch

Update!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240397</commentid>
    <comment_count>121</comment_count>
      <attachid>291662</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-14 13:17:43 -0700</bug_when>
    <thetext>Created attachment 291662
Patch

Just rebaselining...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243337</commentid>
    <comment_count>122</comment_count>
      <attachid>292487</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-22 00:51:31 -0700</bug_when>
    <thetext>Created attachment 292487
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243451</commentid>
    <comment_count>123</comment_count>
      <attachid>292487</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-10-22 18:04:47 -0700</bug_when>
    <thetext>Comment on attachment 292487
Patch

Attachment 292487 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/2347408

New failing tests:
js/dom/module-not-found-error-event-with-src-and-import.html
js/dom/module-not-found-error-event-with-src.html
js/dom/module-will-fire-beforeload.html
http/tests/security/module-requires-javascript-mime-types.html
js/dom/module-not-found-error-event.html
http/tests/security/module-correct-mime-types.html
http/tests/security/module-no-mime-type.html
js/dom/module-load-same-module-from-different-entry-point.html
js/dom/module-load-event-with-src.html
js/dom/module-load-same-module-from-different-entry-point-dynamic.html
http/tests/security/module-incorrect-mime-types.html
http/tests/misc/module-script-async.html
js/dom/module-type-case-insensitive.html
js/dom/module-src-current-script.html
js/dom/module-inline-simple.html
js/dom/module-execution-order-mixed.html
js/dom/module-src-dynamic.html
js/dom/module-src-simple.html
js/dom/module-execution-error-inside-dependent-module-should-be-propagated-to-onerror.html
js/dom/module-inline-dynamic.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243452</commentid>
    <comment_count>124</comment_count>
      <attachid>292524</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-10-22 18:04:55 -0700</bug_when>
    <thetext>Created attachment 292524
Archive of layout-test-results from ews114 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews114  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245473</commentid>
    <comment_count>125</comment_count>
      <attachid>293120</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-28 00:04:19 -0700</bug_when>
    <thetext>Created attachment 293120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246829</commentid>
    <comment_count>126</comment_count>
      <attachid>293531</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-31 23:06:35 -0700</bug_when>
    <thetext>Created attachment 293531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247086</commentid>
    <comment_count>127</comment_count>
      <attachid>293606</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-01 15:33:18 -0700</bug_when>
    <thetext>Created attachment 293606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249258</commentid>
    <comment_count>128</comment_count>
      <attachid>294227</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-09 01:58:11 -0800</bug_when>
    <thetext>Created attachment 294227
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250189</commentid>
    <comment_count>129</comment_count>
      <attachid>294478</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-10 23:54:41 -0800</bug_when>
    <thetext>Created attachment 294478
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250192</commentid>
    <comment_count>130</comment_count>
      <attachid>294479</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-11 00:20:02 -0800</bug_when>
    <thetext>Created attachment 294479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250203</commentid>
    <comment_count>131</comment_count>
      <attachid>294479</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-11 01:43:47 -0800</bug_when>
    <thetext>Comment on attachment 294479
Patch

Attachment 294479 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/2496757

New failing tests:
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-same-origin.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250204</commentid>
    <comment_count>132</comment_count>
      <attachid>294483</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-11 01:43:56 -0800</bug_when>
    <thetext>Created attachment 294483
Archive of layout-test-results from ews115 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250214</commentid>
    <comment_count>133</comment_count>
      <attachid>294488</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-11 02:08:44 -0800</bug_when>
    <thetext>Created attachment 294488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250473</commentid>
    <comment_count>134</comment_count>
      <attachid>294488</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-11-11 16:06:46 -0800</bug_when>
    <thetext>Comment on attachment 294488
Patch

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

Here&apos;s the first round o review comments.  I need a few more rounds of read through.

&gt; Source/WebCore/ChangeLog:18
&gt; +            1. ScriptModuleGraph
&gt; +
&gt; +                ScriptModuleGraph wraps the promise based JSModuleLoader pipeline and offers
&gt; +                similar APIs to CachedScript. ScriptElement and PendingScript interact with
&gt; +                ScriptModuleGraph when the script tag is the module tag instead of CachedScript.
&gt; +                ScriptElement and PendingScript will receive the notification from
&gt; +                ScriptModuleGraph by implementing ScriptModuleGraphClient.

I think it&apos;s very misleading to call this object a &quot;graph&quot;.  A graph is a collection of nodes.  Here, what we have is a node in a graph.
How about CachedModuleScript or ModuleScriptVertex?

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:67
&gt; +    // Note: If the content is already cached, this immeidately calls notifyFinished.

We don&apos;t normally prefix a comment with &quot;Node:&quot;.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:75
&gt; +    if (!m_promise)
&gt; +        return;

How could notifyFinished be called multiple times per CachedResourceClient!?

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:87
&gt; +    // A CachedResourceHandle alone does not prevent the underlying CachedResource
&gt; +    // from purging its data buffer. Until we finish using the backing buffer of the
&gt; +    // cached script, we don&apos;t remove the client.

I don&apos;t understand what this comment is saying.
Are we trying to retain the cache? Or are we trying to clear the cache?

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:63
&gt; +    // For CachedResourceClient.

I don&apos;t think we need this comment given we&apos;re only inheriting from RefCounted and CachedResourceClient

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:64
&gt; +    void notifyFinished(CachedResource&amp;) override;

Use final instead.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:371
&gt; +    // NOTE: It is not guaranteed that either fulfillHandler or rejectHandler is eventually called.
&gt; +    // For example, if the page load is canceled, the DeferredPromise used in the module loader pipeline will stop executing JS code.
&gt; +    // Thus the promise returned from this function could remain unresolved.

Wouldn&apos;t that result in the leak of ScriptModuleGraph?

&gt; Source/WebCore/bindings/js/ScriptController.cpp:373
&gt; +    RefPtr&lt;ScriptModuleGraph&gt; protector(&amp;moduleGraph);

Why don&apos;t we call this moduleGraph and the argument moduleGraphRef.
Alternatively, you can just modify the argument to be Ref&lt;ScriptModuleGraph&gt;.
Regardless, we should be using Ref here, not RefPtr.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:400
&gt; +        else if (errorStatus == ErrorStatus::AlreadyReported) {
&gt; +            protector-&gt;notifyErrored(LoadableScript::Error {
&gt; +                LoadableScript::ErrorType::CachedScript,
&gt; +                Nullopt
&gt; +            });
&gt; +        } else {

Why don&apos;t we just put the logic at where we check symbol-&gt;privateName() == moduleLoaderAlreadyReportedErrorSymbol
and then exit early there instead?

That is,
if (Symbol* symbol = ~) {
    if (ymbol-&gt;privateName() == moduleLoaderAlreadyReportedErrorSymbol) {
        ...
        return JSValue::encode(jsUndefined());
    }
    if (symbol-&gt;privateName() == moduleLoaderFetchingIsCanceledSymbol) {
        protector-&gt;notifyCanceled();
        return JSValue::encode(jsUndefined());
    }
}

If we did that, we don&apos;t even need the enum.

&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:56
&gt; +    Ref&lt;Document&gt; document(initiator.document());

This is yet another protector object?  Might be better call it documentProtector.

&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:63
&gt; +    Ref&lt;Document&gt; document(initiator.document());

Ditto.

&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:91
&gt; +    RefPtr&lt;ScriptModuleGraph&gt; protectedThis(this);

nit: protector as the variable name.

&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:95
&gt; +    Vector&lt;ScriptModuleGraphClient*&gt; vector;
&gt; +    for (auto&amp; pair : m_clients)
&gt; +        vector.append(pair.key);

Can&apos;t we just do copyToVector(m_clients, clients) instead?
btw, we should call this variable clients instead of &quot;vector&quot;.

&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:103
&gt; +    if (isLoaded()) {

We normally prefer an early exit.

&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:104
&gt; +        Ref&lt;ScriptModuleGraph&gt; protectedThis(*this);

Ditto about calling this protector.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:76
&gt; +        promise-&gt;reject(TypeError, &quot;Module specifier is not Symbol or String.&quot;);

Should we wrap these strings in ASCIILiteral?  You&apos;re doing it in some places but not everywhere.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:221
&gt; +    else if (!MIMETypeRegistry::isSupportedJavaScriptMIMEType(cachedScript-&gt;response().mimeType())) {
&gt; +        // https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-single-module-script

Does the list of mime types in isSupportedJavaScriptMIMEType match the ones in the spec?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:247
&gt; +            // The module loader pipeline is constructed as a chain of promises.
&gt; +            // Rejecting a promise when some error occurs is important because the execution flow of
&gt; +            // the promise chain is driven by &quot;rejected&quot; or &quot;fulfilled&quot; events.
&gt; +            // If the promise is not rejected while error occurs, reject handler won&apos;t be executed
&gt; +            // and all the subsequent promise chain will wait the result forever.
&gt; +            //
&gt; +            // As a result, even if the error is already reported to the inspector elsewhere,
&gt; +            // it should be propagated in the pipeline. For example, the error of loading
&gt; +            // CachedResource is already reported to the inspector by the loader. But we still need
&gt; +            // to reject the promise to propagate this error to the script element.
&gt; +            //
&gt; +            // At that time, we don&apos;t want to report the same error twice. When we propagate the error
&gt; +            // that is already reported to the inspector, we throw moduleLoaderAlreadyReportedErrorSymbol
&gt; +            // symbol instead. By comparing the thrown error with this symbol, we can distinguish errors raised
&gt; +            // when checking syntax of a module script from errors reported already.
&gt; +            // In the reject handler of the promise, we only report a error that is not this symbol.

You might want to put this long version in the change log.  In the code, it&apos;s probably sufficient to say that
&quot;Reject a promise to propagate the error back all the way through module promise chains to the script element&quot;

&gt; Source/WebCore/dom/Document.cpp:4792
&gt; -    ASSERT(newCurrentScript);
&gt; +    // HTMLScriptElement may be nullptr.

Since we also need to return nullptr when we&apos;re running the script inside a shadow tree,
we might want to do this check in Document::currentScript instead and keep this function unchanged.

&gt; Source/WebCore/dom/LoadableScriptModuleGraph.h:35
&gt; +class LoadableScriptModuleGraph final : public LoadableScript, private ScriptModuleGraphClient {

Again, this class name is misleading. This isn&apos;t really a graph. It&apos;s a node/vertex in a graph.

&gt; Source/WebCore/dom/LoadableScriptModuleGraph.h:42
&gt; +    Optional&lt;Error&gt; wasErrored() const override;

We might want to call this function error() if it returns Optional&lt;Error&gt; since wasError is a question.

&gt; Source/WebCore/dom/ScriptElement.cpp:165
&gt; -#if ENABLE(ES6_MODULES)
&gt; +// #if ENABLE(ES6_MODULES)

What&apos;s up with this?

&gt; Source/WebCore/dom/ScriptElement.cpp:226
&gt; +    // We intentionally use the charset attribute even if the script is the module script.

Why is that?  We prefer why comments over what comments.

&gt; Source/WebCore/dom/ScriptElement.cpp:243
&gt; +    if ((scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() &amp;&amp; deferAttributeValue() &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue()) || (scriptType == ScriptType::Module &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue())) {

This predicate is getting really long.  Can we put it into a helper function with a descriptive name?
Alternatively, since this is the first predicate we check, we can just declare a local boolean variable with a descriptive name.

&gt; Source/WebCore/dom/ScriptElement.cpp:310
&gt; +        bool didEventListenerDisconnectThisElement = !m_element.inDocument() || &amp;m_element.document() != originalDocument.ptr();
&gt; +        if (didEventListenerDisconnectThisElement)

Are these checks spec&apos;ed somewhere?  Can we add a URL to reference that?
The ordering here is quite important as it&apos;s observable from scripts.

&gt; Source/WebCore/dom/ScriptElement.cpp:328
&gt; +    } else {

Why not early return here?

&gt; Source/WebCore/dom/ScriptElement.cpp:412
&gt; +    if (Frame* frame = document-&gt;frame()) {

Why not an early return instead?

&gt; Source/WebCore/dom/ScriptElement.cpp:414
&gt; +        // If the script is from an external file, or the script&apos;s type is &quot;module&quot;,
&gt; +        // then increment the ignore-destructive-writes counter of the script element&apos;s node document. Let neutralized doc be that Document.

I don&apos;t think we need this comment since the class name is pretty descriptive and there are a only few steps.

&gt; Source/WebCore/dom/ScriptElement.cpp:417
&gt; +        // Set the script element&apos;s node document&apos;s currentScript attribute to null.

Ditto.

&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:150
&gt; +        // We intentionally use the character attribute even if the given script tag loads the module script.

Ditto about explaining why instead of stating what.

&gt; Source/WebCore/html/parser/HTMLResourcePreloader.h:39
&gt; +    enum class ModuleScriptMode {
&gt; +        Yes,
&gt; +        No,
&gt; +    };

I think it would be nicer to say ScriptType: Module/Classic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250639</commentid>
    <comment_count>135</comment_count>
      <attachid>294488</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-12 00:18:41 -0800</bug_when>
    <thetext>Comment on attachment 294488
Patch

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

Thanks!

&gt;&gt; Source/WebCore/ChangeLog:18
&gt;&gt; +                ScriptModuleGraph by implementing ScriptModuleGraphClient.
&gt; 
&gt; I think it&apos;s very misleading to call this object a &quot;graph&quot;.  A graph is a collection of nodes.  Here, what we have is a node in a graph.
&gt; How about CachedModuleScript or ModuleScriptVertex?

Yup, that is named after the internal implementation (dependency graph of the scripts).
Actually, it manages the graph of CachedScripts(node) with dependency edges.
But it should not be exposed to WebCore side.
CachedModuleScript seems fine. It is consistent with CachedModuleScriptLoader. Changed.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:67
&gt;&gt; +    // Note: If the content is already cached, this immeidately calls notifyFinished.
&gt; 
&gt; We don&apos;t normally prefix a comment with &quot;Node:&quot;.

Dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:75
&gt;&gt; +        return;
&gt; 
&gt; How could notifyFinished be called multiple times per CachedResourceClient!?

Yeah, ok, it should not be called. This guard is meaningless. Dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:87
&gt;&gt; +    // cached script, we don&apos;t remove the client.
&gt; 
&gt; I don&apos;t understand what this comment is saying.
&gt; Are we trying to retain the cache? Or are we trying to clear the cache?

We are trying to retain the cache until we call m_client-&gt;notifyFinished.
To do so, removeClient(this) should not be called before calling `m_client-&gt;notifyFinished`.
Changed the comment.

    // A CachedResourceHandle alone does not prevent the underlying CachedResource
    // from purging its data buffer. To keep the underlying CachedResource during
    // processing, we remove the client after calling client&apos;s notifyFinished.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:63
&gt;&gt; +    // For CachedResourceClient.
&gt; 
&gt; I don&apos;t think we need this comment given we&apos;re only inheriting from RefCounted and CachedResourceClient

Dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:64
&gt;&gt; +    void notifyFinished(CachedResource&amp;) override;
&gt; 
&gt; Use final instead.

Nice, changed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:371
&gt;&gt; +    // Thus the promise returned from this function could remain unresolved.
&gt; 
&gt; Wouldn&apos;t that result in the leak of ScriptModuleGraph?

When the module cache is cleared (page is refreshed), they should be released.
Since module instances are cached (the same module key returns the same module instance), resource combined with the module may be retained while this page is live.
But once the page &amp; context is destroyed, they should be collected by GC. (&amp; GC will call destroy function, and it will destroy ScriptModuleGraph).

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:373
&gt;&gt; +    RefPtr&lt;ScriptModuleGraph&gt; protector(&amp;moduleGraph);
&gt; 
&gt; Why don&apos;t we call this moduleGraph and the argument moduleGraphRef.
&gt; Alternatively, you can just modify the argument to be Ref&lt;ScriptModuleGraph&gt;.
&gt; Regardless, we should be using Ref here, not RefPtr.

It&apos;s because 2 functions reference this protector: fulfillHandler and rejectHandler.
But I think we can alleviate this situation by using C++14 generalized capture.
I&apos;ll change the argument to Ref&lt;CachedModuleScript&gt;, and use generalized capture like `[moduleScript = protector.copyRef()]`.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:400
&gt;&gt; +        } else {
&gt; 
&gt; Why don&apos;t we just put the logic at where we check symbol-&gt;privateName() == moduleLoaderAlreadyReportedErrorSymbol
&gt; and then exit early there instead?
&gt; 
&gt; That is,
&gt; if (Symbol* symbol = ~) {
&gt;     if (ymbol-&gt;privateName() == moduleLoaderAlreadyReportedErrorSymbol) {
&gt;         ...
&gt;         return JSValue::encode(jsUndefined());
&gt;     }
&gt;     if (symbol-&gt;privateName() == moduleLoaderFetchingIsCanceledSymbol) {
&gt;         protector-&gt;notifyCanceled();
&gt;         return JSValue::encode(jsUndefined());
&gt;     }
&gt; }
&gt; 
&gt; If we did that, we don&apos;t even need the enum.

It should be fine. Changed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:56
&gt;&gt; +    Ref&lt;Document&gt; document(initiator.document());
&gt; 
&gt; This is yet another protector object?  Might be better call it documentProtector.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:63
&gt;&gt; +    Ref&lt;Document&gt; document(initiator.document());
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:95
&gt;&gt; +        vector.append(pair.key);
&gt; 
&gt; Can&apos;t we just do copyToVector(m_clients, clients) instead?
&gt; btw, we should call this variable clients instead of &quot;vector&quot;.

Nice, copyToVector function works. Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:103
&gt;&gt; +    if (isLoaded()) {
&gt; 
&gt; We normally prefer an early exit.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:104
&gt;&gt; +        Ref&lt;ScriptModuleGraph&gt; protectedThis(*this);
&gt; 
&gt; Ditto about calling this protector.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:76
&gt;&gt; +        promise-&gt;reject(TypeError, &quot;Module specifier is not Symbol or String.&quot;);
&gt; 
&gt; Should we wrap these strings in ASCIILiteral?  You&apos;re doing it in some places but not everywhere.

Oops, right. We should do that. Changed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:221
&gt;&gt; +        // https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-single-module-script
&gt; 
&gt; Does the list of mime types in isSupportedJavaScriptMIMEType match the ones in the spec?

Yeah, completely the same. :)

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:247
&gt;&gt; +            // In the reject handler of the promise, we only report a error that is not this symbol.
&gt; 
&gt; You might want to put this long version in the change log.  In the code, it&apos;s probably sufficient to say that
&gt; &quot;Reject a promise to propagate the error back all the way through module promise chains to the script element&quot;

OK, I&apos;ve moved the above comment to the ChangeLog. And use this short version.

&gt;&gt; Source/WebCore/dom/Document.cpp:4792
&gt;&gt; +    // HTMLScriptElement may be nullptr.
&gt; 
&gt; Since we also need to return nullptr when we&apos;re running the script inside a shadow tree,
&gt; we might want to do this check in Document::currentScript instead and keep this function unchanged.

You mean that we should check ScriptType in Document::currentScript() side, correct?

&gt;&gt; Source/WebCore/dom/LoadableScriptModuleGraph.h:35
&gt;&gt; +class LoadableScriptModuleGraph final : public LoadableScript, private ScriptModuleGraphClient {
&gt; 
&gt; Again, this class name is misleading. This isn&apos;t really a graph. It&apos;s a node/vertex in a graph.

Changed it to LoadableModuleScript.

&gt;&gt; Source/WebCore/dom/LoadableScriptModuleGraph.h:42
&gt;&gt; +    Optional&lt;Error&gt; wasErrored() const override;
&gt; 
&gt; We might want to call this function error() if it returns Optional&lt;Error&gt; since wasError is a question.

OK, changed. We also need to change wasErrored() functions in LoadableClassicScript, PendingScript etc. Done.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:165
&gt;&gt; +// #if ENABLE(ES6_MODULES)
&gt; 
&gt; What&apos;s up with this?

This is just commented out to check this patch on EWS.
When landing it, we should revert this change. And we should remove # of TestExpectations.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:226
&gt;&gt; +    // We intentionally use the charset attribute even if the script is the module script.
&gt; 
&gt; Why is that?  We prefer why comments over what comments.

Add comment that is noted in ChangeLog.

According to the spec, the module tag ignores the &quot;charset&quot; attribute as the same to the worker&apos;s
importScript. But WebKit supports the &quot;charset&quot; for importScript intentionally. So to be consistent,
even for the module tags, we handle the &quot;charset&quot; attribute.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:243
&gt;&gt; +    if ((scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() &amp;&amp; deferAttributeValue() &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue()) || (scriptType == ScriptType::Module &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue())) {
&gt; 
&gt; This predicate is getting really long.  Can we put it into a helper function with a descriptive name?
&gt; Alternatively, since this is the first predicate we check, we can just declare a local boolean variable with a descriptive name.

Changed. BTW, the above condition is strictly aligned to the spec.
https://html.spec.whatwg.org/multipage/scripting.html#script-processing-model
Named it as isParserInsertedDeferredScript.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:310
&gt;&gt; +        if (didEventListenerDisconnectThisElement)
&gt; 
&gt; Are these checks spec&apos;ed somewhere?  Can we add a URL to reference that?
&gt; The ordering here is quite important as it&apos;s observable from scripts.

No. The before load event for the script tag is not specified in whatwg HTML5 spec. This is the extension in WebKit.
It is originally implemented for the classic script. And the module script is just using the completely same semantics.

BTW, it seems that blink dropped before load event support.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:328
&gt;&gt; +    } else {
&gt; 
&gt; Why not early return here?

Fixed.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:412
&gt;&gt; +    if (Frame* frame = document-&gt;frame()) {
&gt; 
&gt; Why not an early return instead?

Fixed.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:414
&gt;&gt; +        // then increment the ignore-destructive-writes counter of the script element&apos;s node document. Let neutralized doc be that Document.
&gt; 
&gt; I don&apos;t think we need this comment since the class name is pretty descriptive and there are a only few steps.

OK, dropped.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:417
&gt;&gt; +        // Set the script element&apos;s node document&apos;s currentScript attribute to null.
&gt; 
&gt; Ditto.

Dropped.

&gt;&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:150
&gt;&gt; +        // We intentionally use the character attribute even if the given script tag loads the module script.
&gt; 
&gt; Ditto about explaining why instead of stating what.

Add the same comment.

According to the spec, the module tag ignores the &quot;charset&quot; attribute as the same to the worker&apos;s
importScript. But WebKit supports the &quot;charset&quot; for importScript intentionally. So to be consistent,
even for the module tags, we handle the &quot;charset&quot; attribute.

&gt;&gt; Source/WebCore/html/parser/HTMLResourcePreloader.h:39
&gt;&gt; +    };
&gt; 
&gt; I think it would be nicer to say ScriptType: Module/Classic.

Changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250641</commentid>
    <comment_count>136</comment_count>
      <attachid>294488</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-12 00:21:18 -0800</bug_when>
    <thetext>Comment on attachment 294488
Patch

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

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:91
&gt;&gt; +    RefPtr&lt;ScriptModuleGraph&gt; protectedThis(this);
&gt; 
&gt; nit: protector as the variable name.

Oh, but according to the webkit-check-style script, in the above case, we should name it as `protectedThis`.

&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptModuleGraph.cpp:104
&gt;&gt;&gt; +        Ref&lt;ScriptModuleGraph&gt; protectedThis(*this);
&gt;&gt; 
&gt;&gt; Ditto about calling this protector.
&gt; 
&gt; Fixed.

But according to the webkit-check-style script, in the above case, we should name it as `protectedThis`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250646</commentid>
    <comment_count>137</comment_count>
      <attachid>294609</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-12 00:38:07 -0800</bug_when>
    <thetext>Created attachment 294609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250650</commentid>
    <comment_count>138</comment_count>
      <attachid>294488</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-12 01:09:03 -0800</bug_when>
    <thetext>Comment on attachment 294488
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:373
&gt;&gt;&gt; +    RefPtr&lt;ScriptModuleGraph&gt; protector(&amp;moduleGraph);
&gt;&gt; 
&gt;&gt; Why don&apos;t we call this moduleGraph and the argument moduleGraphRef.
&gt;&gt; Alternatively, you can just modify the argument to be Ref&lt;ScriptModuleGraph&gt;.
&gt;&gt; Regardless, we should be using Ref here, not RefPtr.
&gt; 
&gt; It&apos;s because 2 functions reference this protector: fulfillHandler and rejectHandler.
&gt; But I think we can alleviate this situation by using C++14 generalized capture.
&gt; I&apos;ll change the argument to Ref&lt;CachedModuleScript&gt;, and use generalized capture like `[moduleScript = protector.copyRef()]`.

Hm, the above one does not work. It causes compile error. It seems there are no good way to share Ref&lt;&gt; in 2 lambdas. Ref&lt;&gt; is not copyable.
Even if you write like, [moduleScript = protector.copyRef()]` it causes compile error since it causes copy.
And I also ensured that we cannot compile like `[moduleScript = WTFMove(protector.copyRef())]`.
Reverted it to RefPtr&lt;&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250651</commentid>
    <comment_count>139</comment_count>
      <attachid>294610</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-12 01:12:24 -0800</bug_when>
    <thetext>Created attachment 294610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250653</commentid>
    <comment_count>140</comment_count>
      <attachid>294611</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-12 01:38:20 -0800</bug_when>
    <thetext>Created attachment 294611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250654</commentid>
    <comment_count>141</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-12 01:39:06 -0800</bug_when>
    <thetext>OK, the review comments are addressed. Ready for second review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250746</commentid>
    <comment_count>142</comment_count>
      <attachid>294488</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-11-12 16:20:19 -0800</bug_when>
    <thetext>Comment on attachment 294488
Patch

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

&gt; Source/WebCore/dom/CurrentScriptIncrementer.h:44
&gt;              m_document.pushCurrentScript(&amp;downcast&lt;HTMLScriptElement&gt;(element));

Actually, on my second thought, what we should do is to update the condition the line above here
which already checks whether element in a shadow tree or not to check if it&apos;s classic script not.
There&apos;s already a bug here that we should be setting currentScript to nullptr
when the element in a shadow tree so let me fix that one first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250749</commentid>
    <comment_count>143</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-11-12 16:58:27 -0800</bug_when>
    <thetext>(In reply to comment #142)
&gt; Comment on attachment 294488 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=294488&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/CurrentScriptIncrementer.h:44
&gt; &gt;              m_document.pushCurrentScript(&amp;downcast&lt;HTMLScriptElement&gt;(element));
&gt; 
&gt; Actually, on my second thought, what we should do is to update the condition
&gt; the line above here
&gt; which already checks whether element in a shadow tree or not to check if
&gt; it&apos;s classic script not.
&gt; There&apos;s already a bug here that we should be setting currentScript to nullptr
&gt; when the element in a shadow tree so let me fix that one first.

Uploaded a patch to fix this on https://bugs.webkit.org/show_bug.cgi?id=164693.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250812</commentid>
    <comment_count>144</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-11-13 01:03:04 -0800</bug_when>
    <thetext>It looks like this patch failed on all EWSes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250813</commentid>
    <comment_count>145</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-13 01:04:57 -0800</bug_when>
    <thetext>(In reply to comment #144)
&gt; It looks like this patch failed on all EWSes?

Oops, it&apos;s related to super simple compile error.
Soon, (maybe, in 10mins), I&apos;ll upload the patch with your current script change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250815</commentid>
    <comment_count>146</comment_count>
      <attachid>294662</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-13 01:17:47 -0800</bug_when>
    <thetext>Created attachment 294662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250816</commentid>
    <comment_count>147</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-13 01:21:20 -0800</bug_when>
    <thetext>Attachment 294662 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:376:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 159 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>1251007</commentid>
    <comment_count>148</comment_count>
      <attachid>294662</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-14 09:57:49 -0800</bug_when>
    <thetext>Comment on attachment 294662
Patch

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

Started reviewing, but only got half way through the patch before I had to leave.

&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:56
&gt; +    Ref&lt;Document&gt; documentProtector(initiator.document());

I think protectedDocument would be a slightly better name. I am a bit confused about why protecting the document if valuable, though. The only thing we do with the document is call Frame on it. Why protection here? Should this protection be done at a different level?

&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:58
&gt; +    if (Frame* frame = documentProtector-&gt;frame())
&gt; +        frame-&gt;script().loadModuleScript(*this, rootURL.string(), initiator);

Is silently doing nothing the right thing to do in a document without a frame?

&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:65
&gt; +    Ref&lt;Document&gt; documentProtector(initiator.document());
&gt; +    if (Frame* frame = documentProtector-&gt;frame())
&gt; +        frame-&gt;script().loadModuleScript(*this, sourceCode, initiator);

Ditto.

&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:77
&gt; +    if (!m_error)
&gt; +        m_error = WTFMove(error);

When can we get notified about multiple errors?

&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:91
&gt; +    RefPtr&lt;CachedModuleScript&gt; protectedThis(this);

Should be Ref, not RefPtr. What is the rationale for protection here?

&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:101
&gt; +    m_clients.add(&amp;client);

Assert m_clients does not contain client?

&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:105
&gt; +    Ref&lt;CachedModuleScript&gt; protectedThis(*this);
&gt; +    client.notifyFinished(*this);

What is the rationale for protection here?

&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:110
&gt; +    m_clients.remove(&amp;client);

Assert m_clients contains client?

&gt; Source/WebCore/bindings/js/CachedModuleScript.h:31
&gt; +#include &lt;wtf/Noncopyable.h&gt;

No need for this include?

&gt; Source/WebCore/bindings/js/CachedModuleScript.h:32
&gt; +#include &lt;wtf/WeakPtr.h&gt;

No need for this include?

&gt; Source/WebCore/bindings/js/CachedModuleScript.h:38
&gt; +class Element;
&gt; +class ScriptSourceCode;
&gt; +class CachedModuleScriptClient;

Please sort in alphabetical order.

&gt; Source/WebCore/bindings/js/CachedModuleScript.h:46
&gt; +    void notifyLoaded(UniquedStringImpl* moduleKey);

Can this be null? If not, take a reference?

&gt; Source/WebCore/bindings/js/CachedModuleScript.h:47
&gt; +    void notifyErrored(LoadableScript::Error&amp;&amp;);

I have never been a big fan of the &quot;notifyXXX&quot; naming scheme, but this one in particular is not grammatical. Maybe notifyErrorOccured or notifyLoadFailed.

If we are going to stick with the notify prefix, then I suggest: notifyLoadCompleted, notifyLoadFailed, notifyLoadWasCanceled.

&gt; Source/WebCore/bindings/js/CachedModuleScript.h:50
&gt; +    Optional&lt;LoadableScript::Error&gt; error() const { return m_error; }

const Optional&amp; return type?

&gt; Source/WebCore/bindings/js/CachedModuleScript.h:76
&gt; +    bool m_canceled { false };
&gt; +    bool m_loaded { false };

m_wasCanceled?
m_isLoaded?

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:67
&gt; +    // If the content is already cached, this immeidately calls notifyFinished.

Typo: &quot;immediately&quot; is spelled wrong.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:30
&gt; +#include &quot;JSDOMPromise.h&quot;

I don’t think this include is needed. Forward declaration of DeferredPromise should suffice.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:31
&gt; +#include &quot;ScriptElement.h&quot;

I don’t think this include is needed. There is a forward declaration below.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:32
&gt; +#include &quot;URL.h&quot;

This include is not needed; forward declaration of URL should suffice.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:33
&gt; +#include &lt;runtime/JSInternalPromiseDeferred.h&gt;

I don’t think this include is needed. Forward declaration of DeferredPromise should suffice.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:34
&gt; +#include &lt;wtf/Noncopyable.h&gt;

This include is not needed.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:39
&gt; +class Document;

Not used.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:40
&gt; +class JSDOMGlobalObject;

Not used.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:41
&gt; +class ScriptElement;

Only needed if we don’t remove ScriptElement.h above.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:42
&gt; +class CachedModuleScriptLoaderClient;

Please sort alphabetically.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:48
&gt; +    ~CachedModuleScriptLoader();

In our coding style we include virtual here.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:67
&gt; +    CachedResourceHandle&lt;CachedScript&gt; m_cachedScript { };

Is the { } needed? I don’t think that does anything different from the default, but I may be mistaken.

&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:159
&gt; +String retrieveErrorMessage(ExecState* exec, VM&amp; vm, JSValue exceptionValue, CatchScope&amp; catchScope)

Please use ExecState&amp; state in new functions, unless there is a good reason not to.

&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:162
&gt; +    if (ExceptionBase* exceptionBase = toExceptionBase(exceptionValue))

auto?

&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:163
&gt; +        errorMessage = exceptionBase-&gt;toString();

I suggest a return here, and use of early return instead of if/else with a local variable.

&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:167
&gt; +        if (ErrorInstance* error = jsDynamicDowncast&lt;ErrorInstance*&gt;(exceptionValue))

auto?

&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:170
&gt; +            errorMessage = exceptionValue.toString(exec)-&gt;value(exec);

toWTFString?

&gt; Source/WebCore/bindings/js/JSDOMBinding.h:185
&gt; +String retrieveErrorMessage(JSC::ExecState*, JSC::VM&amp;, JSC::JSValue exceptionValue, JSC::CatchScope&amp;);

Not sure we need the word &quot;value&quot; in &quot;exceptionValue&quot;.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:94
&gt; +    , m_moduleLoaderAlreadyReportedErrorSymbol()
&gt; +    , m_moduleLoaderFetchingIsCanceledSymbol()

Why is this needed?

&gt; Source/WebCore/bindings/js/ScriptController.cpp:193
&gt; +    JSDOMWindowShell* shell = windowShell(world);

Please use a reference in new code unless there is a reason not to.

    auto&amp; shell = *windowShell(world);

&gt; Source/WebCore/bindings/js/ScriptController.cpp:194
&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();

Please use ExecState&amp; state in new code unless there is a reason not to.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:208
&gt; +    JSDOMWindowShell* shell = windowShell(world);

Please use a reference in new code unless there is a reason not to.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:209
&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();

Please use ExecState&amp; state in new code unless there is a reason not to.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:224
&gt; +    JSDOMWindowShell* shell = windowShell(world);
&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();

Ditto.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:226
&gt; +    Ref&lt;Frame&gt; protector(m_frame);

Unclear why a protector is helpful here. I am really concerned about adding protectors when it’s not clear exactly what they are needed for.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:231
&gt; +        // FIXME: Give a chance to dump the stack trace if the &quot;corssorigin&quot; attribute allows.

Typo: &quot;corssorigin&quot;.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:247
&gt; +    const SourceCode&amp; jsSourceCode = moduleRecord-&gt;sourceCode();

auto&amp;

&gt; Source/WebCore/bindings/js/ScriptController.cpp:250
&gt; +    JSDOMWindowShell* shell = windowShell(world);
&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();

auto&amp;, references, state instead of exec

&gt; Source/WebCore/bindings/js/ScriptController.cpp:251
&gt; +    const String* savedSourceURL = m_sourceURL;

auto*; also, save/restore is not great, but I suppose we don’t have a good alternative

&gt; Source/WebCore/bindings/js/ScriptController.cpp:254
&gt; +    Ref&lt;Frame&gt; protector(m_frame);

rationale for protector

&gt; Source/WebCore/bindings/js/ScriptController.cpp:256
&gt; +    InspectorInstrumentationCookie cookie = InspectorInstrumentation::willEvaluateScript(m_frame, sourceURL, jsSourceCode.firstLine());

auto

&gt; Source/WebCore/bindings/js/ScriptController.cpp:258
&gt; +    JSValue returnValue = moduleRecord-&gt;evaluate(exec);

auto

&gt; Source/WebCore/bindings/js/ScriptController.cpp:350
&gt; +static Identifier jsValueToModuleKey(ExecState* exec, JSValue value)

ExecState&amp; state please

&gt; Source/WebCore/bindings/js/ScriptController.cpp:364
&gt; +void ScriptController::setupModuleScriptHandlers(CachedModuleScript&amp; moduleScriptRef, JSInternalPromise* promise, DOMWrapperWorld&amp; world)

Can the promise argument be a reference?

&gt; Source/WebCore/bindings/js/ScriptController.cpp:367
&gt; +    JSDOMWindowShell* shell = windowShell(world);
&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();

auto, state

&gt; Source/WebCore/bindings/js/ScriptController.cpp:374
&gt; +    PrivateName moduleLoaderAlreadyReportedErrorSymbol = m_moduleLoaderAlreadyReportedErrorSymbol;
&gt; +    PrivateName moduleLoaderFetchingIsCanceledSymbol = m_moduleLoaderFetchingIsCanceledSymbol;

auto?

&gt; Source/WebCore/bindings/js/ScriptController.cpp:378
&gt; +    JSFunction* fulfillHandler = JSNativeStdFunction::create(exec-&gt;vm(), shell-&gt;window(), 1, String(), [moduleScript](ExecState* exec) {

auto

&gt; Source/WebCore/bindings/js/ScriptController.cpp:384
&gt; +    JSFunction* rejectHandler = JSNativeStdFunction::create(exec-&gt;vm(), shell-&gt;window(), 1, String(), [moduleScript, moduleLoaderAlreadyReportedErrorSymbol, moduleLoaderFetchingIsCanceledSymbol](ExecState* exec) {

auto

&gt; Source/WebCore/bindings/js/ScriptController.cpp:386
&gt; +        if (Symbol* symbol = jsDynamicCast&lt;Symbol*&gt;(error)) {

auto

&gt; Source/WebCore/bindings/js/ScriptController.cpp:679
&gt; +    Ref&lt;Frame&gt; protector(m_frame); // Script execution can destroy the frame, and thus the ScriptController.

Even this comment does not make it clear why the protector is a good idea. What‘s the harm in the ScriptController being destroyed? The harm comes in if code uses the script controller after destroyed, and the code below does not do that. So the protector belongs somewhere else I think. This is a real concern long term about our code structure.

&gt; Source/WebCore/bindings/js/ScriptController.h:48
&gt;  class JSGlobalObject;
&gt; +class JSModuleRecord;
&gt; +class JSInternalPromise;
&gt;  class ExecState;

Alphabetical order please.

&gt; Source/WebCore/bindings/js/ScriptController.h:64
&gt;  class Frame;
&gt;  class HTMLDocument;
&gt;  class HTMLPlugInElement;
&gt; +class CachedModuleScript;
&gt;  class ScriptSourceCode;
&gt;  class SecurityOrigin;
&gt;  class Widget;

Alphabetical order please.

&gt; Source/WebCore/bindings/js/ScriptController.h:129
&gt; +    JSC::JSValue evaluateModule(const URL&amp;, JSC::JSModuleRecord*, DOMWrapperWorld&amp;);
&gt; +    JSC::JSValue evaluateModule(const URL&amp;, JSC::JSModuleRecord*);

References for JSModuleRecord&amp;?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:61
&gt; +    JSDOMGlobalObject&amp; globalObject = *JSC::jsCast&lt;JSDOMGlobalObject*&gt;(jsGlobalObject);

auto&amp;

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:63
&gt; +    Ref&lt;DeferredPromise&gt; promise = DeferredPromise::create(globalObject, jsPromise);

auto

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:133
&gt; +    JSDOMGlobalObject&amp; globalObject = *JSC::jsCast&lt;JSDOMGlobalObject*&gt;(jsGlobalObject);

auto&amp;

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:135
&gt; +    Ref&lt;DeferredPromise&gt; deferred = DeferredPromise::create(globalObject, jsPromise);

auto

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:159
&gt; +        RefPtr&lt;CachedModuleScriptLoader&gt; loader = CachedModuleScriptLoader::create(*this, deferred.get());

auto

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:209
&gt; +    CachedScript* cachedScript = loader.cachedScript();

auto*

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.h:66
&gt; +    HashSet&lt;RefPtr&lt;CachedModuleScriptLoader&gt;&gt; m_loaders;

Ref instead of RefPtr?

&gt; Source/WebCore/dom/LoadableModuleScript.h:37
&gt; +    ~LoadableModuleScript();

WebKit coding style says virtual here

&gt; Source/WebCore/dom/LoadableModuleScript.h:43
&gt; +    bool isLoaded() const override;
&gt; +    Optional&lt;Error&gt; error() const override;
&gt; +    bool wasCanceled() const override;

final instead of override; can some of these be private too, if they are not called non-polymorphically?

&gt; Source/WebCore/dom/LoadableModuleScript.h:48
&gt; +    void execute(ScriptElement&amp;) override;

Ditto.

&gt; Source/WebCore/dom/ScriptElement.cpp:165
&gt; -#if ENABLE(ES6_MODULES)
&gt; +// #if ENABLE(ES6_MODULES)

???

&gt; Source/WebCore/dom/ScriptElement.cpp:170
&gt; -#endif
&gt; +// #endif

???</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251111</commentid>
    <comment_count>149</comment_count>
      <attachid>294662</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 13:27:50 -0800</bug_when>
    <thetext>Comment on attachment 294662
Patch

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

Quick reply. Still WIP. Soon, I&apos;ll reply to the all review comments. And update the patch.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:56
&gt;&gt; +    Ref&lt;Document&gt; documentProtector(initiator.document());
&gt; 
&gt; I think protectedDocument would be a slightly better name. I am a bit confused about why protecting the document if valuable, though. The only thing we do with the document is call Frame on it. Why protection here? Should this protection be done at a different level?

This behavior is aligned to the ScriptElement&apos;s executeScript function.
But this function is not changed from 2011.
From this time, so much code is changed.
And now, document() always returns Document&amp;.

So I think this becomes meaningless. We can just use `initiator.document().frame()`.
Changed this code. And ScriptElement::executeScript is also changed.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:58
&gt;&gt; +        frame-&gt;script().loadModuleScript(*this, rootURL.string(), initiator);
&gt; 
&gt; Is silently doing nothing the right thing to do in a document without a frame?

This behavior is aligned to ScriptElement. ScriptElement gives up loading / executing when a document does not have a frame.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:65
&gt;&gt; +        frame-&gt;script().loadModuleScript(*this, sourceCode, initiator);
&gt; 
&gt; Ditto.

Ditto.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:77
&gt;&gt; +        m_error = WTFMove(error);
&gt; 
&gt; When can we get notified about multiple errors?

No. We just use `m_error = WTFMove(error)`.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:91
&gt;&gt; +    RefPtr&lt;CachedModuleScript&gt; protectedThis(this);
&gt; 
&gt; Should be Ref, not RefPtr. What is the rationale for protection here?

During `client-&gt;notifyFinished()`, CachedModuleScript&apos;s owner can drop this. So this is necessary.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:101
&gt;&gt; +    m_clients.add(&amp;client);
&gt; 
&gt; Assert m_clients does not contain client?

We use HashCountedSet to allow clients to register themselves multiple times.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:105
&gt;&gt; +    client.notifyFinished(*this);
&gt; 
&gt; What is the rationale for protection here?

During `client.notifyFinished(*this)`, the owner can drop the ref to this `CachedModuleScript`.
Until `client.notifyFinished(*this)` is done, this protectedThis ensures that the given argument `CachedModuleScript&amp;` is live.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:110
&gt;&gt; +    m_clients.remove(&amp;client);
&gt; 
&gt; Assert m_clients contains client?

We use HashCountedSet to allow clients to register themselves multiple times.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.h:31
&gt;&gt; +#include &lt;wtf/Noncopyable.h&gt;
&gt; 
&gt; No need for this include?

Dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.h:32
&gt;&gt; +#include &lt;wtf/WeakPtr.h&gt;
&gt; 
&gt; No need for this include?

Dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.h:38
&gt;&gt; +class CachedModuleScriptClient;
&gt; 
&gt; Please sort in alphabetical order.

Done.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.h:46
&gt;&gt; +    void notifyLoaded(UniquedStringImpl* moduleKey);
&gt; 
&gt; Can this be null? If not, take a reference?

Fixed.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.h:47
&gt;&gt; +    void notifyErrored(LoadableScript::Error&amp;&amp;);
&gt; 
&gt; I have never been a big fan of the &quot;notifyXXX&quot; naming scheme, but this one in particular is not grammatical. Maybe notifyErrorOccured or notifyLoadFailed.
&gt; 
&gt; If we are going to stick with the notify prefix, then I suggest: notifyLoadCompleted, notifyLoadFailed, notifyLoadWasCanceled.

Your suggestion sounds super nice to me. Fixed.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.h:50
&gt;&gt; +    Optional&lt;LoadableScript::Error&gt; error() const { return m_error; }
&gt; 
&gt; const Optional&amp; return type?

Yeah, done.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.h:76
&gt;&gt; +    bool m_loaded { false };
&gt; 
&gt; m_wasCanceled?
&gt; m_isLoaded?

It sounds nice. Fixed.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:67
&gt;&gt; +    // If the content is already cached, this immeidately calls notifyFinished.
&gt; 
&gt; Typo: &quot;immediately&quot; is spelled wrong.

Oops, fixed.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:30
&gt;&gt; +#include &quot;JSDOMPromise.h&quot;
&gt; 
&gt; I don’t think this include is needed. Forward declaration of DeferredPromise should suffice.

Right. Dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:31
&gt;&gt; +#include &quot;ScriptElement.h&quot;
&gt; 
&gt; I don’t think this include is needed. There is a forward declaration below.

Right. Fixed.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:32
&gt;&gt; +#include &quot;URL.h&quot;
&gt; 
&gt; This include is not needed; forward declaration of URL should suffice.

Right.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:33
&gt;&gt; +#include &lt;runtime/JSInternalPromiseDeferred.h&gt;
&gt; 
&gt; I don’t think this include is needed. Forward declaration of DeferredPromise should suffice.

Dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:34
&gt;&gt; +#include &lt;wtf/Noncopyable.h&gt;
&gt; 
&gt; This include is not needed.

Yeah, dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:39
&gt;&gt; +class Document;
&gt; 
&gt; Not used.

Dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:40
&gt;&gt; +class JSDOMGlobalObject;
&gt; 
&gt; Not used.

Dropped.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:41
&gt;&gt; +class ScriptElement;
&gt; 
&gt; Only needed if we don’t remove ScriptElement.h above.

Yeah, leave this. And remove ScriptElement.h include.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:42
&gt;&gt; +class CachedModuleScriptLoaderClient;
&gt; 
&gt; Please sort alphabetically.

Done.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:48
&gt;&gt; +    ~CachedModuleScriptLoader();
&gt; 
&gt; In our coding style we include virtual here.

Oops, fixed.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:67
&gt;&gt; +    CachedResourceHandle&lt;CachedScript&gt; m_cachedScript { };
&gt; 
&gt; Is the { } needed? I don’t think that does anything different from the default, but I may be mistaken.

Not necessary. Thanks, dropped.

&gt;&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:159
&gt;&gt; +String retrieveErrorMessage(ExecState* exec, VM&amp; vm, JSValue exceptionValue, CatchScope&amp; catchScope)
&gt; 
&gt; Please use ExecState&amp; state in new functions, unless there is a good reason not to.

Yeah, done.

&gt;&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:162
&gt;&gt; +    if (ExceptionBase* exceptionBase = toExceptionBase(exceptionValue))
&gt; 
&gt; auto?

Should be. Changed.

&gt;&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:163
&gt;&gt; +        errorMessage = exceptionBase-&gt;toString();
&gt; 
&gt; I suggest a return here, and use of early return instead of if/else with a local variable.

Nice! Yeah, we should do that. Fixed.

&gt;&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:167
&gt;&gt; +        if (ErrorInstance* error = jsDynamicDowncast&lt;ErrorInstance*&gt;(exceptionValue))
&gt; 
&gt; auto?

Fixed.

&gt;&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:170
&gt;&gt; +            errorMessage = exceptionValue.toString(exec)-&gt;value(exec);
&gt; 
&gt; toWTFString?

Yeah, it should be nice. Fixed.

&gt;&gt; Source/WebCore/bindings/js/JSDOMBinding.h:185
&gt;&gt; +String retrieveErrorMessage(JSC::ExecState*, JSC::VM&amp;, JSC::JSValue exceptionValue, JSC::CatchScope&amp;);
&gt; 
&gt; Not sure we need the word &quot;value&quot; in &quot;exceptionValue&quot;.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:94
&gt;&gt; +    , m_moduleLoaderFetchingIsCanceledSymbol()
&gt; 
&gt; Why is this needed?

This is noted in ChangeLog. Pasting.

 147        The module loader pipeline is constructed as a chain of promises.
 148        Rejecting a promise when some error occurs is important because the execution flow of
 149        the promise chain is driven by &quot;rejected&quot; or &quot;fulfilled&quot; events.
 150        If the promise is not rejected while error occurs, reject handler won&apos;t be executed
 151        and all the subsequent promise chain will wait the result forever.
 152        As a result, even if the error is already reported to the inspector elsewhere,
 153        it should be propagated in the pipeline. For example, the error of loading
 154        CachedResource is already reported to the inspector by the loader. But we still need
 155        to reject the promise to propagate this error to the script element.
 156        At that time, we don&apos;t want to report the same error twice. When we propagate the error
 157        that is already reported to the inspector, we throw moduleLoaderAlreadyReportedErrorSymbol
 158        symbol instead. By comparing the thrown error with this symbol, we can distinguish errors raised
 159        when checking syntax of a module script from errors reported already.
 160        In the reject handler of the promise, we only report a error that is not this symbol.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:165
&gt;&gt; +// #if ENABLE(ES6_MODULES)
&gt; 
&gt; ???

To make EWS work, this patch temporary comments out this ifdef.
When landing this patch, this comment out should be reverted. And TestExpectations&apos; [ Skip ] should be reverted too.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:170
&gt;&gt; +// #endif
&gt; 
&gt; ???

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251202</commentid>
    <comment_count>150</comment_count>
      <attachid>294662</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 15:46:57 -0800</bug_when>
    <thetext>Comment on attachment 294662
Patch

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

Thanks. OK. I&apos;ve replied all the review comments. I&apos;ll upload the updated patch once I ensured that can be built.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:193
&gt;&gt; +    JSDOMWindowShell* shell = windowShell(world);
&gt; 
&gt; Please use a reference in new code unless there is a reason not to.
&gt; 
&gt;     auto&amp; shell = *windowShell(world);

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:194
&gt;&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();
&gt; 
&gt; Please use ExecState&amp; state in new code unless there is a reason not to.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:208
&gt;&gt; +    JSDOMWindowShell* shell = windowShell(world);
&gt; 
&gt; Please use a reference in new code unless there is a reason not to.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:209
&gt;&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();
&gt; 
&gt; Please use ExecState&amp; state in new code unless there is a reason not to.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:224
&gt;&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:226
&gt;&gt; +    Ref&lt;Frame&gt; protector(m_frame);
&gt; 
&gt; Unclear why a protector is helpful here. I am really concerned about adding protectors when it’s not clear exactly what they are needed for.

This is the same to ScriptController::executeScript. Script execution can destroy the frame.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:231
&gt;&gt; +        // FIXME: Give a chance to dump the stack trace if the &quot;corssorigin&quot; attribute allows.
&gt; 
&gt; Typo: &quot;corssorigin&quot;.

Oops, fixed. And add bugzilla URL here.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:247
&gt;&gt; +    const SourceCode&amp; jsSourceCode = moduleRecord-&gt;sourceCode();
&gt; 
&gt; auto&amp;

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:250
&gt;&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();
&gt; 
&gt; auto&amp;, references, state instead of exec

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:251
&gt;&gt; +    const String* savedSourceURL = m_sourceURL;
&gt; 
&gt; auto*; also, save/restore is not great, but I suppose we don’t have a good alternative

Currently, we change it `const auto* String` thing, and leave save / restore.
In JSC, we have some helper like SetForScope&lt;&gt;. I&apos;ll move this to WTF in the subsequent patch.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:254
&gt;&gt; +    Ref&lt;Frame&gt; protector(m_frame);
&gt; 
&gt; rationale for protector

According to the ScriptController::executeScript, script evaluation can destroy the frame.
We would like to keep it until calling InspectorInstrumentation::didEvaluateScript.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:256
&gt;&gt; +    InspectorInstrumentationCookie cookie = InspectorInstrumentation::willEvaluateScript(m_frame, sourceURL, jsSourceCode.firstLine());
&gt; 
&gt; auto

Fixed. BTW, these things are the same in non module evaluation code.
I&apos;ll upload the subsequent patch that will change like this after this patch.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:258
&gt;&gt; +    JSValue returnValue = moduleRecord-&gt;evaluate(exec);
&gt; 
&gt; auto

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:364
&gt;&gt; +void ScriptController::setupModuleScriptHandlers(CachedModuleScript&amp; moduleScriptRef, JSInternalPromise* promise, DOMWrapperWorld&amp; world)
&gt; 
&gt; Can the promise argument be a reference?

Yes. This dereference should be done at JSC &lt;-&gt; WebCore border. So dereferencing this in JSMainThreadExecState.h. And passing the reference.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:367
&gt;&gt; +    ExecState* exec = shell-&gt;window()-&gt;globalExec();
&gt; 
&gt; auto, state

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:374
&gt;&gt; +    PrivateName moduleLoaderFetchingIsCanceledSymbol = m_moduleLoaderFetchingIsCanceledSymbol;
&gt; 
&gt; auto?

No, we would like to copy this PrivateName into the lambda.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:378
&gt;&gt; +    JSFunction* fulfillHandler = JSNativeStdFunction::create(exec-&gt;vm(), shell-&gt;window(), 1, String(), [moduleScript](ExecState* exec) {
&gt; 
&gt; auto

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:384
&gt;&gt; +    JSFunction* rejectHandler = JSNativeStdFunction::create(exec-&gt;vm(), shell-&gt;window(), 1, String(), [moduleScript, moduleLoaderAlreadyReportedErrorSymbol, moduleLoaderFetchingIsCanceledSymbol](ExecState* exec) {
&gt; 
&gt; auto

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:386
&gt;&gt; +        if (Symbol* symbol = jsDynamicCast&lt;Symbol*&gt;(error)) {
&gt; 
&gt; auto

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:679
&gt;&gt; +    Ref&lt;Frame&gt; protector(m_frame); // Script execution can destroy the frame, and thus the ScriptController.
&gt; 
&gt; Even this comment does not make it clear why the protector is a good idea. What‘s the harm in the ScriptController being destroyed? The harm comes in if code uses the script controller after destroyed, and the code below does not do that. So the protector belongs somewhere else I think. This is a real concern long term about our code structure.

Hm, right. So I think keeping protector for module script evaluation is fine in the meantime.
And in the other patch, we should drop these protectors and place appropriate protectors instead.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.h:48
&gt;&gt;  class ExecState;
&gt; 
&gt; Alphabetical order please.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.h:64
&gt;&gt;  class Widget;
&gt; 
&gt; Alphabetical order please.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.h:129
&gt;&gt; +    JSC::JSValue evaluateModule(const URL&amp;, JSC::JSModuleRecord*);
&gt; 
&gt; References for JSModuleRecord&amp;?

We can do that thing by dereferencing it in WebCore ScriptModuleLoader.cpp. Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:61
&gt;&gt; +    JSDOMGlobalObject&amp; globalObject = *JSC::jsCast&lt;JSDOMGlobalObject*&gt;(jsGlobalObject);
&gt; 
&gt; auto&amp;

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:63
&gt;&gt; +    Ref&lt;DeferredPromise&gt; promise = DeferredPromise::create(globalObject, jsPromise);
&gt; 
&gt; auto

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:133
&gt;&gt; +    JSDOMGlobalObject&amp; globalObject = *JSC::jsCast&lt;JSDOMGlobalObject*&gt;(jsGlobalObject);
&gt; 
&gt; auto&amp;

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:135
&gt;&gt; +    Ref&lt;DeferredPromise&gt; deferred = DeferredPromise::create(globalObject, jsPromise);
&gt; 
&gt; auto

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:159
&gt;&gt; +        RefPtr&lt;CachedModuleScriptLoader&gt; loader = CachedModuleScriptLoader::create(*this, deferred.get());
&gt; 
&gt; auto

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:209
&gt;&gt; +    CachedScript* cachedScript = loader.cachedScript();
&gt; 
&gt; auto*

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.h:66
&gt;&gt; +    HashSet&lt;RefPtr&lt;CachedModuleScriptLoader&gt;&gt; m_loaders;
&gt; 
&gt; Ref instead of RefPtr?

Code becomes a bit weird (Ref&lt;&gt; cannot be copied, so in some place, we will use `copyRef` if we would like to continue using the original Ref&lt;&gt;). But we can.

Ref&lt;&gt; loader = ...;
m_loaders.add(loader.copyRef());
loader-&gt;...

Changed.

&gt;&gt; Source/WebCore/dom/LoadableModuleScript.h:37
&gt;&gt; +    ~LoadableModuleScript();
&gt; 
&gt; WebKit coding style says virtual here

Fixed.

&gt;&gt; Source/WebCore/dom/LoadableModuleScript.h:43
&gt;&gt; +    bool wasCanceled() const override;
&gt; 
&gt; final instead of override; can some of these be private too, if they are not called non-polymorphically?

Fixed. Currently they are polymorphically called in ScriptElement.cpp.

&gt;&gt; Source/WebCore/dom/LoadableModuleScript.h:48
&gt;&gt; +    void execute(ScriptElement&amp;) override;
&gt; 
&gt; Ditto.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251219</commentid>
    <comment_count>151</comment_count>
      <attachid>294662</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 16:05:33 -0800</bug_when>
    <thetext>Comment on attachment 294662
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:30
&gt;&gt;&gt; +#include &quot;JSDOMPromise.h&quot;
&gt;&gt; 
&gt;&gt; I don’t think this include is needed. Forward declaration of DeferredPromise should suffice.
&gt; 
&gt; Right. Dropped.

Ah, no. Unfortunately, RefPtr&lt;DeferredPromise&gt; requires complete class declaration since it will instantiate `-&gt;ref()` and `-&gt;deref()` calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251289</commentid>
    <comment_count>152</comment_count>
      <attachid>294786</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 17:34:23 -0800</bug_when>
    <thetext>Created attachment 294786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251292</commentid>
    <comment_count>153</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-14 17:39:12 -0800</bug_when>
    <thetext>Attachment 294786 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:377:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 160 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>1251302</commentid>
    <comment_count>154</comment_count>
      <attachid>294662</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-14 17:59:48 -0800</bug_when>
    <thetext>Comment on attachment 294662
Patch

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

Thanks for considering all my comments! I have a few follow-up thoughts.

&gt;&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:91
&gt;&gt;&gt; +    RefPtr&lt;CachedModuleScript&gt; protectedThis(this);
&gt;&gt; 
&gt;&gt; Should be Ref, not RefPtr. What is the rationale for protection here?
&gt; 
&gt; During `client-&gt;notifyFinished()`, CachedModuleScript&apos;s owner can drop this. So this is necessary.

Oh, I see, it’s needed because we pass *this to the other notifyFinished functions.

&gt;&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:105
&gt;&gt;&gt; +    client.notifyFinished(*this);
&gt;&gt; 
&gt;&gt; What is the rationale for protection here?
&gt; 
&gt; During `client.notifyFinished(*this)`, the owner can drop the ref to this `CachedModuleScript`.
&gt; Until `client.notifyFinished(*this)` is done, this protectedThis ensures that the given argument `CachedModuleScript&amp;` is live.

I guess you are saying we want to protect &quot;this&quot; because we passed it in.

&gt;&gt;&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:30
&gt;&gt;&gt;&gt; +#include &quot;JSDOMPromise.h&quot;
&gt;&gt;&gt; 
&gt;&gt;&gt; I don’t think this include is needed. Forward declaration of DeferredPromise should suffice.
&gt;&gt; 
&gt;&gt; Right. Dropped.
&gt; 
&gt; Ah, no. Unfortunately, RefPtr&lt;DeferredPromise&gt; requires complete class declaration since it will instantiate `-&gt;ref()` and `-&gt;deref()` calls.

Not super important but: That would only be when compiling constructors, destructors, and other code that makes use of the data member. I would expect that we could include JSPromise.h in .cpp files and not in this header. I wonder what specific case drives the need for this?

&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:94
&gt;&gt;&gt; +    , m_moduleLoaderFetchingIsCanceledSymbol()
&gt;&gt; 
&gt;&gt; Why is this needed?
&gt; 
&gt; This is noted in ChangeLog. Pasting.
&gt; 
&gt;  147        The module loader pipeline is constructed as a chain of promises.
&gt;  148        Rejecting a promise when some error occurs is important because the execution flow of
&gt;  149        the promise chain is driven by &quot;rejected&quot; or &quot;fulfilled&quot; events.
&gt;  150        If the promise is not rejected while error occurs, reject handler won&apos;t be executed
&gt;  151        and all the subsequent promise chain will wait the result forever.
&gt;  152        As a result, even if the error is already reported to the inspector elsewhere,
&gt;  153        it should be propagated in the pipeline. For example, the error of loading
&gt;  154        CachedResource is already reported to the inspector by the loader. But we still need
&gt;  155        to reject the promise to propagate this error to the script element.
&gt;  156        At that time, we don&apos;t want to report the same error twice. When we propagate the error
&gt;  157        that is already reported to the inspector, we throw moduleLoaderAlreadyReportedErrorSymbol
&gt;  158        symbol instead. By comparing the thrown error with this symbol, we can distinguish errors raised
&gt;  159        when checking syntax of a module script from errors reported already.
&gt;  160        In the reject handler of the promise, we only report a error that is not this symbol.

I was asking a much more narrow question. Why do we need to explicitly specify the initialization of these data members in the constructor. Wouldn’t the same thing happen if we didn’t write those two lines of code?

&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:226
&gt;&gt;&gt; +    Ref&lt;Frame&gt; protector(m_frame);
&gt;&gt; 
&gt;&gt; Unclear why a protector is helpful here. I am really concerned about adding protectors when it’s not clear exactly what they are needed for.
&gt; 
&gt; This is the same to ScriptController::executeScript. Script execution can destroy the frame.

OK, but why is it a problem that the frame was destroyed at that point? Presumably once the script is executed we don’t use the ScriptController or the Frame before returning from the function. It must be some code after the script is executed but before this function returns. I don’t see what code that is, which benefits from the protection.

&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:251
&gt;&gt;&gt; +    const String* savedSourceURL = m_sourceURL;
&gt;&gt; 
&gt;&gt; auto*; also, save/restore is not great, but I suppose we don’t have a good alternative
&gt; 
&gt; Currently, we change it `const auto* String` thing, and leave save / restore.
&gt; In JSC, we have some helper like SetForScope&lt;&gt;. I&apos;ll move this to WTF in the subsequent patch.

I think we have multiple helpers like that; another one is called TemporaryChange, I think.

&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:254
&gt;&gt;&gt; +    Ref&lt;Frame&gt; protector(m_frame);
&gt;&gt; 
&gt;&gt; rationale for protector
&gt; 
&gt; According to the ScriptController::executeScript, script evaluation can destroy the frame.
&gt; We would like to keep it until calling InspectorInstrumentation::didEvaluateScript.

OK, makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251344</commentid>
    <comment_count>155</comment_count>
      <attachid>294662</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 20:33:08 -0800</bug_when>
    <thetext>Comment on attachment 294662
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/bindings/js/CachedModuleScript.cpp:105
&gt;&gt;&gt;&gt; +    client.notifyFinished(*this);
&gt;&gt;&gt; 
&gt;&gt;&gt; What is the rationale for protection here?
&gt;&gt; 
&gt;&gt; During `client.notifyFinished(*this)`, the owner can drop the ref to this `CachedModuleScript`.
&gt;&gt; Until `client.notifyFinished(*this)` is done, this protectedThis ensures that the given argument `CachedModuleScript&amp;` is live.
&gt; 
&gt; I guess you are saying we want to protect &quot;this&quot; because we passed it in.

Yup, right.

&gt;&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:94
&gt;&gt;&gt;&gt; +    , m_moduleLoaderFetchingIsCanceledSymbol()
&gt;&gt;&gt; 
&gt;&gt;&gt; Why is this needed?
&gt;&gt; 
&gt;&gt; This is noted in ChangeLog. Pasting.
&gt;&gt; 
&gt;&gt;  147        The module loader pipeline is constructed as a chain of promises.
&gt;&gt;  148        Rejecting a promise when some error occurs is important because the execution flow of
&gt;&gt;  149        the promise chain is driven by &quot;rejected&quot; or &quot;fulfilled&quot; events.
&gt;&gt;  150        If the promise is not rejected while error occurs, reject handler won&apos;t be executed
&gt;&gt;  151        and all the subsequent promise chain will wait the result forever.
&gt;&gt;  152        As a result, even if the error is already reported to the inspector elsewhere,
&gt;&gt;  153        it should be propagated in the pipeline. For example, the error of loading
&gt;&gt;  154        CachedResource is already reported to the inspector by the loader. But we still need
&gt;&gt;  155        to reject the promise to propagate this error to the script element.
&gt;&gt;  156        At that time, we don&apos;t want to report the same error twice. When we propagate the error
&gt;&gt;  157        that is already reported to the inspector, we throw moduleLoaderAlreadyReportedErrorSymbol
&gt;&gt;  158        symbol instead. By comparing the thrown error with this symbol, we can distinguish errors raised
&gt;&gt;  159        when checking syntax of a module script from errors reported already.
&gt;&gt;  160        In the reject handler of the promise, we only report a error that is not this symbol.
&gt; 
&gt; I was asking a much more narrow question. Why do we need to explicitly specify the initialization of these data members in the constructor. Wouldn’t the same thing happen if we didn’t write those two lines of code?

Aha! I see. Yeah, default constructor is enough. Dropped.

&gt;&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:226
&gt;&gt;&gt;&gt; +    Ref&lt;Frame&gt; protector(m_frame);
&gt;&gt;&gt; 
&gt;&gt;&gt; Unclear why a protector is helpful here. I am really concerned about adding protectors when it’s not clear exactly what they are needed for.
&gt;&gt; 
&gt;&gt; This is the same to ScriptController::executeScript. Script execution can destroy the frame.
&gt; 
&gt; OK, but why is it a problem that the frame was destroyed at that point? Presumably once the script is executed we don’t use the ScriptController or the Frame before returning from the function. It must be some code after the script is executed but before this function returns. I don’t see what code that is, which benefits from the protection.

Yeah, right. As you mentioned in ScriptController::executeScript, this Ref&lt;&gt; protection may be used for some weird thing.
Like, there are some missing protector, and instead, it guards against the crash.

I think keeping protector for module script evaluation is fine in the meantime.
This bug should be fixed in the other patch and at that time, both classic scripts and module scripts should be fixed at once.
I&apos;ve filed it. https://bugs.webkit.org/show_bug.cgi?id=164763
And add FIXME comments.

&gt;&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:251
&gt;&gt;&gt;&gt; +    const String* savedSourceURL = m_sourceURL;
&gt;&gt;&gt; 
&gt;&gt;&gt; auto*; also, save/restore is not great, but I suppose we don’t have a good alternative
&gt;&gt; 
&gt;&gt; Currently, we change it `const auto* String` thing, and leave save / restore.
&gt;&gt; In JSC, we have some helper like SetForScope&lt;&gt;. I&apos;ll move this to WTF in the subsequent patch.
&gt; 
&gt; I think we have multiple helpers like that; another one is called TemporaryChange, I think.

Yeah! That&apos;s completely the same. Use TemporaryChange&lt;const String*&gt; here.

&gt;&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:374
&gt;&gt;&gt; +    PrivateName moduleLoaderFetchingIsCanceledSymbol = m_moduleLoaderFetchingIsCanceledSymbol;
&gt;&gt; 
&gt;&gt; auto?
&gt; 
&gt; No, we would like to copy this PrivateName into the lambda.

Ah, oops. I misread it as `auto&amp;`. Use auto here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251347</commentid>
    <comment_count>156</comment_count>
      <attachid>294802</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 20:37:04 -0800</bug_when>
    <thetext>Created attachment 294802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251348</commentid>
    <comment_count>157</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-14 20:42:16 -0800</bug_when>
    <thetext>Attachment 294802 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:375:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 160 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>1251360</commentid>
    <comment_count>158</comment_count>
      <attachid>294805</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 21:21:08 -0800</bug_when>
    <thetext>Created attachment 294805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251361</commentid>
    <comment_count>159</comment_count>
      <attachid>294805</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 21:23:02 -0800</bug_when>
    <thetext>Comment on attachment 294805
Patch

Oops, failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251362</commentid>
    <comment_count>160</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-14 21:25:18 -0800</bug_when>
    <thetext>Attachment 294805 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:376:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 143 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>1251363</commentid>
    <comment_count>161</comment_count>
      <attachid>294806</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 21:28:46 -0800</bug_when>
    <thetext>Created attachment 294806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251364</commentid>
    <comment_count>162</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-14 21:32:39 -0800</bug_when>
    <thetext>Attachment 294806 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:376:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 160 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>1251376</commentid>
    <comment_count>163</comment_count>
      <attachid>294806</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-14 22:36:04 -0800</bug_when>
    <thetext>Comment on attachment 294806
Patch

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

New failing tests:
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked.html
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251377</commentid>
    <comment_count>164</comment_count>
      <attachid>294813</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-14 22:36:13 -0800</bug_when>
    <thetext>Created attachment 294813
Archive of layout-test-results from ews101 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews101  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251379</commentid>
    <comment_count>165</comment_count>
      <attachid>294806</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-14 22:43:33 -0800</bug_when>
    <thetext>Comment on attachment 294806
Patch

Attachment 294806 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/2518063

New failing tests:
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked.html
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251380</commentid>
    <comment_count>166</comment_count>
      <attachid>294815</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-14 22:43:42 -0800</bug_when>
    <thetext>Created attachment 294815
Archive of layout-test-results from ews105 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews105  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251382</commentid>
    <comment_count>167</comment_count>
      <attachid>294806</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-14 22:46:58 -0800</bug_when>
    <thetext>Comment on attachment 294806
Patch

Attachment 294806 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/2518035

New failing tests:
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked.html
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251383</commentid>
    <comment_count>168</comment_count>
      <attachid>294817</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-14 22:47:07 -0800</bug_when>
    <thetext>Created attachment 294817
Archive of layout-test-results from ews116 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews116  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251385</commentid>
    <comment_count>169</comment_count>
      <attachid>294818</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 22:52:36 -0800</bug_when>
    <thetext>Created attachment 294818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251386</commentid>
    <comment_count>170</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-14 22:57:13 -0800</bug_when>
    <thetext>Attachment 294818 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:376:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 160 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>1251397</commentid>
    <comment_count>171</comment_count>
      <attachid>294818</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-15 00:08:03 -0800</bug_when>
    <thetext>Comment on attachment 294818
Patch

Attachment 294818 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/2518409

New failing tests:
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked.html
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251398</commentid>
    <comment_count>172</comment_count>
      <attachid>294823</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-15 00:08:12 -0800</bug_when>
    <thetext>Created attachment 294823
Archive of layout-test-results from ews106 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251399</commentid>
    <comment_count>173</comment_count>
      <attachid>294818</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-15 00:17:11 -0800</bug_when>
    <thetext>Comment on attachment 294818
Patch

Attachment 294818 did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/2518411

New failing tests:
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked.html
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251400</commentid>
    <comment_count>174</comment_count>
      <attachid>294824</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-15 00:17:20 -0800</bug_when>
    <thetext>Created attachment 294824
Archive of layout-test-results from ews121 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews121  Port: ios-simulator-wk2  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251404</commentid>
    <comment_count>175</comment_count>
      <attachid>294818</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-15 00:36:17 -0800</bug_when>
    <thetext>Comment on attachment 294818
Patch

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

New failing tests:
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked.html
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251405</commentid>
    <comment_count>176</comment_count>
      <attachid>294826</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-15 00:36:26 -0800</bug_when>
    <thetext>Created attachment 294826
Archive of layout-test-results from ews101 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews101  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251406</commentid>
    <comment_count>177</comment_count>
      <attachid>294818</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-15 00:41:36 -0800</bug_when>
    <thetext>Comment on attachment 294818
Patch

Attachment 294818 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/2518503

New failing tests:
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-blocked.html
http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251407</commentid>
    <comment_count>178</comment_count>
      <attachid>294827</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-15 00:41:44 -0800</bug_when>
    <thetext>Created attachment 294827
Archive of layout-test-results from ews112 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews112  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251410</commentid>
    <comment_count>179</comment_count>
      <attachid>294829</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-15 01:13:48 -0800</bug_when>
    <thetext>Created attachment 294829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251411</commentid>
    <comment_count>180</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-15 01:17:19 -0800</bug_when>
    <thetext>Attachment 294829 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:376:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 160 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>1251415</commentid>
    <comment_count>181</comment_count>
      <attachid>294662</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-15 01:48:10 -0800</bug_when>
    <thetext>Comment on attachment 294662
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.h:30
&gt;&gt;&gt;&gt;&gt; +#include &quot;JSDOMPromise.h&quot;
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; I don’t think this include is needed. Forward declaration of DeferredPromise should suffice.
&gt;&gt;&gt; 
&gt;&gt;&gt; Right. Dropped.
&gt;&gt; 
&gt;&gt; Ah, no. Unfortunately, RefPtr&lt;DeferredPromise&gt; requires complete class declaration since it will instantiate `-&gt;ref()` and `-&gt;deref()` calls.
&gt; 
&gt; Not super important but: That would only be when compiling constructors, destructors, and other code that makes use of the data member. I would expect that we could include JSPromise.h in .cpp files and not in this header. I wonder what specific case drives the need for this?

Oops, it was wrong. I need to include `&lt;wtf/RefPtr.h&gt;`. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251416</commentid>
    <comment_count>182</comment_count>
      <attachid>294830</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-15 01:50:13 -0800</bug_when>
    <thetext>Created attachment 294830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251417</commentid>
    <comment_count>183</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-15 01:55:11 -0800</bug_when>
    <thetext>Attachment 294830 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:376:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 160 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>1251418</commentid>
    <comment_count>184</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-15 02:04:14 -0800</bug_when>
    <thetext>The patch is ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251755</commentid>
    <comment_count>185</comment_count>
      <attachid>294830</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-11-15 18:57:22 -0800</bug_when>
    <thetext>Comment on attachment 294830
Patch

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

&gt; Source/WebCore/bindings/js/CachedModuleScriptClient.h:32
&gt; +class CachedModuleScriptClient {

I&apos;m not saying that we should do it in this patch but we should consider
using std::function / lambda in the lieu of these client classes with one function.

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:69
&gt; +    // If the content is already cached, this immediately calls notifyFinished.
&gt; +    m_cachedScript-&gt;addClient(*this);

What is the significant of this comment?
Why do we care that it may synchronously call notifyFinished?

&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:85
&gt; +    // from purging its data buffer. To keep the underlying CachedResource during
&gt; +    // processing, we remove the client after calling client&apos;s notifyFinished.

It&apos;s not clear to me why removing the client keeps the data buffer.
Or are you saying that we can&apos;t do this before calling notifyFinished?
i.e. the data buffer may now be purged?
If so, a better way of phrasing this would be something like
&quot;Remove the client after calling notifyFinished to keep
the data buffer in CachedResource alive while notifyFinished processes the resource.&quot;

&gt; Source/WebCore/bindings/js/ScriptController.cpp:210
&gt; +    setupModuleScriptHandlers(moduleScript, JSMainThreadExecState::loadModule(state, sourceCode.jsSourceCode(), toJS(&amp;state, shell.window(), &amp;element)), world);

There&apos;s a lot of nesting going on here. Can we split some of it to a separate line?

&gt; Source/WebCore/bindings/js/ScriptController.cpp:362
&gt; +enum class ErrorStatus {
&gt; +    AlreadyReported,
&gt; +    FetchingCanceled,
&gt; +    ErrorThrown,
&gt; +};

We don&apos;t need this enum anymore do we?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:100
&gt; +    bool isRootModule = importerModuleKey.isSymbol() || importerModuleKey.isUndefined();

Can this logic be extracted as a separate static local helper function?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:150
&gt; +        deferred-&gt;reject(TypeError, ASCIILiteral(&quot;Module key is an invalid URL.&quot;));

I think it&apos;s more natural to say &quot;module key is not a valid URL&quot; for an error message.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:155
&gt; +    auto* scriptElement = toScriptElementIfPossible(&amp;JSC::jsCast&lt;JSElement*&gt;(initiator)-&gt;wrapped());

Should we just call jsCast&lt;HTMLScriptElement*&gt;?
Or does SVG script element also support module?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:209
&gt; +    auto* cachedScript = loader.cachedScript();

Why not a reference? Also, why is it guaranteed that cachedScript is not null?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:226
&gt; +            &quot;Refused to execute module script from &apos;&quot;, cachedScript-&gt;url().stringCenterEllipsizedToLength(),
&gt; +            &quot;&apos; because its MIME type (&apos;&quot;, cachedScript-&gt;response().mimeType(), &quot;&apos;) is not executable.&quot;));

&quot;refused to execute&quot; is quite a departure from other kinds of error messages we have.
How about simply &quot;~ is not a valid JavaScript MIME type&quot;.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:230
&gt; +    if (auto* frame = m_document.frame()) {

We can just exit early when frame is null since that&apos;s not a formal flow of control.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:234
&gt; +        } else if (cachedScript-&gt;wasCanceled())

Why not an early return instead of else iff for the same reason?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:235
&gt; +            promise-&gt;reject(frame-&gt;script().moduleLoaderFetchingIsCanceledSymbol());

Ditto to add an early exit instead.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.h:50
&gt; +WTF_MAKE_NONCOPYABLE(ScriptModuleLoader); WTF_MAKE_FAST_ALLOCATED;

I think we indent these.

&gt; Source/WebCore/dom/ScriptElement.cpp:246
&gt; +    bool isParserInsertedDeferredScript = (scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() &amp;&amp; deferAttributeValue() &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue()) || (scriptType == ScriptType::Module &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue());

It seems like this can make a use of a line break in the middle.

&gt; Source/WebCore/dom/ScriptElement.cpp:250
&gt; +    } else if (scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue()) {

It seems like we keep checking scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() multiple types.
How about declaring a local variable like isClassicExternalScript?

&gt; Source/WebCore/dom/ScriptElement.cpp:253
&gt; +    } else if ((scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() &amp;&amp; !asyncAttributeValue() &amp;&amp; !m_forceAsync) || (scriptType == ScriptType::Module &amp;&amp; !asyncAttributeValue() &amp;&amp; !m_forceAsync)) {

It looks like both classic &amp; module scripts want to check !asyncAttributeValue() &amp;&amp; !m_forceAsync.
I think it&apos;s cleaner to put that outside ||.
e.g. (isClassicExternalScript || scriptType == ScriptType::Module) &amp;&amp; !asyncAttributeValue() &amp;&amp; !m_forceAsync

Also, it might be worth adding a comment (better yet an assertion) here
or above all these if-else that inline module would be processed within requestModuleScript.
It&apos;s not great that our implementation is further away from the spec text:
https://html.spec.whatwg.org/#prepare-a-script

We should probably refactor at some point to make it more aligned with the spec&apos;ed text given the complexity.

Alternatively, we can split into two functions and use this if-else for module as well.
I&apos;m inclined to say that&apos;s probably more preferrable because that&apos;ll align our code more with the spec text.

&gt; Source/WebCore/dom/ScriptElement.cpp:258
&gt; +    } else if (hasSourceAttribute() || scriptType == ScriptType::Module) {
&gt;          ASSERT(m_loadableScript);

So this is an async case. Can we assert that asyncAttributeValue() is true here?

&gt; Source/WebCore/dom/ScriptElement.cpp:286
&gt; +        String nonceAttribute = m_element.attributeWithoutSynchronization(HTMLNames::nonceAttr);
&gt; +        String crossOriginMode = m_element.attributeWithoutSynchronization(HTMLNames::crossoriginAttr);
&gt; +        auto request = requestScriptWithCache(m_element.document().completeURL(sourceURL), ScriptType::Classic, nonceAttribute, crossOriginMode);

Can we set crossOriginMode to &quot;omit&quot; as spec&apos;ed in step 15 of https://html.spec.whatwg.org/#prepare-a-script
instead of changing it in CachedResourceRequest::setAsPotentiallyCrossOrigin?
That&apos;ll better match the spec and we don&apos;t have to make CachedResourceRequest aware of script type we&apos;re fetching.

&gt; Source/WebCore/dom/ScriptElement.cpp:395
&gt;              return;

Should we rename this to executeClassicScript for clarity?

&gt; Source/WebCore/dom/ScriptElement.cpp:408
&gt; +    // Create a script from the script element node, using the script
&gt; +    // block&apos;s source and the script block&apos;s type.
&gt; +    // Note: This is where the script is compiled and actually executed.

I don&apos;t think we really need this comment.
We call a function called &quot;evaluate&quot; right beneath it.

&gt; Source/WebCore/html/parser/CSSPreloadScanner.cpp:206
&gt; -            m_requests-&gt;append(std::make_unique&lt;PreloadRequest&gt;(&quot;css&quot;, url, baseElementURL, CachedResource::CSSStyleSheet, String()));
&gt; +            m_requests-&gt;append(std::make_unique&lt;PreloadRequest&gt;(&quot;css&quot;, url, baseElementURL, CachedResource::CSSStyleSheet, String(), PreloadRequest::ScriptType::Classic));

!? Does why CSS preloader specifying a script type?
It doesn&apos;t load or run any scripts, right?

&gt; Source/WebCore/html/parser/HTMLResourcePreloader.h:39
&gt; +    enum class ScriptType {
&gt; +        Classic,
&gt; +        Module,
&gt; +    };

Maybe we should declare this in a separate header like ScriptType.h and share it with ScriptElement.
It&apos;s redundant to have two enums.
Although I could see us wanting to add more types. e.g. ClassicScript, ModuleScript, CSS.
Yet another alternative is to split CachedResource::Script to CachedResource::ClassicScript and CachedResource::ModuleScript.

&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:85
&gt; -void CachedResourceRequest::setAsPotentiallyCrossOrigin(const String&amp; mode, Document&amp; document)
&gt; +void CachedResourceRequest::setAsPotentiallyCrossOriginImpl(const String&amp; mode, Document&amp; document, CrossOriginSettingContext crossOriginSettingContext)

We normally suffix these functions with &quot;Internal&quot; instead. e.g. setAsPotentiallyCrossOriginInternal here.

&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:98
&gt; +        // https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-single-module-script
&gt; +        m_options.mode = FetchOptions::Mode::Cors;
&gt; +        m_options.credentials = FetchOptions::Credentials::Omit;
&gt; +        m_options.allowCredentials = DoNotAllowStoredCredentials;

These defaults appear to come from:
https://html.spec.whatwg.org/#prepare-a-script
I think we should do this in prepareScript to better match the spec instead.

&gt; LayoutTests/ChangeLog:66
&gt; +        * js/dom/module-and-dom-content-loaded-expected.txt: Added.

We probably want to another directly inside dom or js since you&apos;ve got so many tests here.

&gt; LayoutTests/http/tests/misc/module-script-async.html:17
&gt; +    if (!window.status_)
&gt; +        window.status_ = &apos;&apos;;
&gt; +    window.status_ += &apos; &apos; + msg + &apos; &apos;;

Can we use a more regular name like window.log and use an array instead of concatenating scripts?

&gt; LayoutTests/http/tests/misc/module-script-async.html:32
&gt; +    var expectedA = &quot; async  external  inline  DOMContentLoaded  slowAsync &quot;;
&gt; +    var expectedB = &quot; external  async  inline  DOMContentLoaded  slowAsync &quot;;
&gt; +    var expectedC = &quot; external  inline  async  DOMContentLoaded  slowAsync &quot;;
&gt; +    var expectedD = &quot; external  inline  DOMContentLoaded  async  slowAsync &quot;;
&gt; +    var results = &quot;PASS&quot;;
&gt; +    if (window.status_ != expectedA &amp;&amp; window.status_ != expectedB &amp;&amp; window.status_ != expectedC &amp;&amp; window.status_ != expectedD)
&gt; +        results = &quot;FAIL: Expected one of &apos;&quot; + expectedA + &quot;&apos; || &apos;&quot; + expectedB + &quot;&apos; || &apos;&quot; + expectedC + &quot;&apos; || &apos;&quot; + expectedD + &quot;&apos;, Actual=&apos;&quot; + window.status_ + &quot;&apos;&quot;;

It appears to me that a better way of doing this would be something like
const expectedOrderings = [[&apos;async&apos;, &apos;external&apos;, &apos;inline&apos;, &apos;DOMContentLoaded&apos;, &apos;slowAsync&apos;], ...]
if (!expectedOrderings.find((expected) =&gt; JSON.stringify(expected) == JSON.stringify(window.log)))
  results = &apos;FAIL: ...&apos;;

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-and-scripthash.html:24
&gt; +        &lt;script type=&quot;module&quot; nonce=&quot;nonceynonce&quot;&gt;
&gt; +            alert(&apos;PASS (3/3)&apos;);
&gt; +            done(&quot;PASS&quot;);
&gt; +        &lt;/script&gt;

I think we should move one of these passes to the end so that we know for sure FAIL cases did run instead of the test finishing prematurely.

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-basic-blocked.html:6
&gt; +        &lt;script nonce=&quot;noncynonce&quot;&gt;
&gt; +        if (window.testRunner) {

Maybe indent the script once more to be consistent?

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-basic-blocked.html:32
&gt; +        &lt;/script&gt;

It seems like we should add a test case for using eval statement &amp; calling eval function
in inline scripts and external scripts and make sure they&apos;re blocked.

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-ignore-unsafeinline.html:4
&gt; +        &lt;meta http-equiv=&quot;Content-Security-Policy&quot; content=&quot;script-src &apos;nonce-noncynonce&apos; &apos;nonce-noncy+/=nonce&apos; &apos;unsafe-inline&apos;&quot;&gt;

I guess unsafe-inline doesn&apos;t allow inline module scripts?
Where is that spec&apos;ed?
Could you mention that in the change log?

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-ignore-unsafeinline.html:26
&gt; +        &lt;script type=&quot;module&quot;&gt;
&gt; +            alert(&apos;FAIL (1/1)&apos;);
&gt; +        &lt;/script&gt;

Again, I think it&apos;s better to have a FAIL case not appear at the very end.

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html:22
&gt; +  &lt;p&gt;
&gt; +      None of these scripts should execute, as all the nonces are invalid.

Inconsistent indentation.

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-same-origin.html:9
&gt; +        &lt;script nonce=&quot;noncynonce&quot;&gt;
&gt; +        if (window.testRunner) {

Nit: inconsistent indentation.

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-same-origin.html:17
&gt; +            var preloaded = internals.isPreloaded(&quot;../resources/redir.php?url=http://127.0.0.1:8000/security/contentSecurityPolicy/resources/alert-pass.js&quot;);
&gt; +            document.querySelector(&quot;#preloaded&quot;).innerText = preloaded ? &quot;YES&quot; : &quot;NO&quot;;

Shouldn&apos;t this always be NO? If so, why don&apos;t we just assert with a comment clarifying
what we should do when we change the behavior of our preloader instead?
If that&apos;s going to change, that seems to make this test flaky, which needs to be avoided.

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect.html:17
&gt; +            var preloaded = internals.isPreloaded(&quot;../resources/redir.php?url=http://localhost:8000/security/contentSecurityPolicy/resources/alert-pass.js&quot;);
&gt; +            document.querySelector(&quot;#preloaded&quot;).innerText = preloaded ? &quot;YES&quot; : &quot;NO&quot;;

Ditto.

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/resources/multiple-iframe-module-test.js:38
&gt; +    iframe.src = baseURL + &quot;resources/echo-module-script-src.pl?&quot; +
&gt; +                 &quot;experimental=&quot; + (experimental ? &quot;true&quot; : &quot;false&quot;) +
&gt; +                 &quot;&amp;should_run=&quot; + encodeURIComponent(current[0]) +
&gt; +                 &quot;&amp;csp=&quot; + policy + &quot;&amp;q=&quot; + scriptToLoad;

Nit: + should be at the beginning of each line and these should not be aligned against =.
(Same rule as C++).

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/resources/multiple-iframe-module-test.js:40
&gt; +    if (current[3] !== undefined)
&gt; +      iframe.src += &quot;&amp;nonce=&quot; + encodeURIComponent(current[3]);

Wrong indentation.

Instead of building strings like this, can we just create an array of key-value pair and join them together at the end?
e.g.
const queries = {};
queries[&apos;experimental&apos;] = (!!experimental).toString();
Object.getPropertyNames(queries).map((key) =&gt; key + &apos;=&apos; + queries[key]).join(&apos;&amp;&apos;);

&gt; LayoutTests/http/tests/security/module-correct-mime-types.html:8
&gt; +description(&apos;Test module rejects scripts with correct mime types.&apos;);

Did you mean to say module scripts with correct mime types *run*? They&apos;re certainly not rejected here.

&gt; LayoutTests/http/tests/security/module-correct-mime-types.html:52
&gt; +    debug(&apos;Module rejects scripts with correct mime types.&apos;);

Ditto.

&gt; LayoutTests/http/tests/security/module-crossorigin-loads-same-origin.html:10
&gt; +function loaded() {
&gt; +    document.querySelector(&quot;pre&quot;).innerHTML = &quot;PASS&quot;;

This checks we&apos;ve fired load script but not quite whether script had run or not.
Can we check the value of &quot;secretness&quot; defined in localScript.js to make sure the script had run?
You may need to modify localScript.js to export some symbol, etc... though...

&gt; LayoutTests/http/tests/security/module-no-mime-type.html:19
&gt; +function done()
&gt; +{
&gt; +    debug(&apos;Module rejects a script with no mime type.&apos;);
&gt; +    finishJSTest();
&gt; +}

Is it possible to check that the script actually didn&apos;t run via a global state, etc...?

&gt; LayoutTests/http/tests/security/module-requires-javascript-mime-types.html:8
&gt; +description(&apos;Test module rejects scripts with no mime type.&apos;);

How is this test different from module-no-mime-type.html?

&gt; LayoutTests/js/dom/module-and-dom-content-loaded.html:21
&gt; +window.addEventListener(&apos;DOMContentLoaded&apos;, function ()
&gt; +{
&gt; +    finishJSTest();
&gt; +}, false);

Can we add a event listener in a classic inline script to make sure DOMContentLoaded is not fired until the module script had run?
Also, can we assert that document.readyState is not &quot;loading&quot; until modules had ran?

Otherwise, this test would only timeout when the semantics of type=module is violated,
which isn&apos;t a great way to signal that the semantics is actually violated.

&gt; LayoutTests/js/dom/module-and-window-load.html:22
&gt; +&lt;script type=&quot;module&quot;&gt;
&gt; +window.onload = function ()
&gt; +{
&gt; +    finishJSTest();
&gt; +}
&gt; +&lt;/script&gt;

Ditto. I think we should change some state in the module script and have a separate classic script
which attaches a load event handler which checks that the module had ran.

&gt; LayoutTests/js/dom/module-async-and-window-load.html:18
&gt; +window.onload = function ()

Ditto.

&gt; LayoutTests/js/dom/module-execution-order-mixed.html:23
&gt; +shouldBe(&quot;count++&quot;, &quot;6&quot;);

Could you add another test where classical scripts and module scripts are mixed?

&gt; LayoutTests/js/dom/module-incorrect-relative-specifier.html:15
&gt; +    debug(`${current}`);

Can we push &quot;this&quot; into a set and verify at the end that all module script elements are in the set?

&gt; LayoutTests/js/dom/module-load-event-with-src.html:14
&gt; +&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;script type=&quot;module&quot; onload=&quot;finishJSTest()&quot; src=&quot;script-tests/module-load-event-with-src.js&quot;&gt;&lt;/script&gt;

Can we also check some global state for making sure the script had run instead of relying the expected result to contain some text?
When this starts failing, some people might think it&apos;s okay to just rebaseline the test if glanced it quickly.
Whereas if it&apos;s explicitly checked via shouldBe, people are a lot more likely to realize that something is broken.

&gt; LayoutTests/js/dom/module-load-event.html:16
&gt; +&lt;script type=&quot;module&quot; onload=&quot;finishJSTest()&quot;&gt;
&gt; +debug(&apos;Executing an inlined module.&apos;);
&gt; +&lt;/script&gt;

Ditto about changing the global state instead of just emitting text.

&gt; LayoutTests/js/dom/module-load-same-module-from-different-entry-point-dynamic.html:20
&gt; +element.type = &quot;module&quot;;
&gt; +element.innerText = &quot;script-tests/module-load-same-module-from-different-entry-point.js&quot;;

Ditto about checking the global state explicitly.

&gt; LayoutTests/js/dom/module-load-same-module-from-different-entry-point.html:17
&gt; +debug(&apos;Executing the module.&apos;);

Ditto about change the global state instead of just emitting text.

&gt; LayoutTests/js/dom/module-not-found-error-event-with-src.html:16
&gt; +function onError()
&gt; +{
&gt; +    successfullyParsed = true;
&gt; +    finishJSTest()
&gt; +}

Instead of just finishing script we should explicitly check that the error event had fired
by e.g. adding another module script that loads and checking this condition in that module script
or on its load event handler.

&gt; LayoutTests/js/dom/module-not-found-error-event.html:19
&gt; +&lt;script type=&quot;module&quot; onerror=&quot;onError()&quot;&gt;

Ditto about more explicitly checking the error being dispatched.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251833</commentid>
    <comment_count>186</comment_count>
      <attachid>294830</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 02:14:17 -0800</bug_when>
    <thetext>Comment on attachment 294830
Patch

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

Thanks!!

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptClient.h:32
&gt;&gt; +class CachedModuleScriptClient {
&gt; 
&gt; I&apos;m not saying that we should do it in this patch but we should consider
&gt; using std::function / lambda in the lieu of these client classes with one function.

It&apos;s interesting clean up!

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:69
&gt;&gt; +    m_cachedScript-&gt;addClient(*this);
&gt; 
&gt; What is the significant of this comment?
&gt; Why do we care that it may synchronously call notifyFinished?

It means that setting m_cachedScript should be done before this. notifyFinished requires that m_cachedScript is not null.

&gt;&gt; Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp:85
&gt;&gt; +    // processing, we remove the client after calling client&apos;s notifyFinished.
&gt; 
&gt; It&apos;s not clear to me why removing the client keeps the data buffer.
&gt; Or are you saying that we can&apos;t do this before calling notifyFinished?
&gt; i.e. the data buffer may now be purged?
&gt; If so, a better way of phrasing this would be something like
&gt; &quot;Remove the client after calling notifyFinished to keep
&gt; the data buffer in CachedResource alive while notifyFinished processes the resource.&quot;

Right. Changed.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:210
&gt;&gt; +    setupModuleScriptHandlers(moduleScript, JSMainThreadExecState::loadModule(state, sourceCode.jsSourceCode(), toJS(&amp;state, shell.window(), &amp;element)), world);
&gt; 
&gt; There&apos;s a lot of nesting going on here. Can we split some of it to a separate line?

Yeah, I&apos;ve split it, like,

auto&amp; promise = JSMainThreadExecState::loadModule(state, sourceCode.jsSourceCode(), toJS(&amp;state, shell.window(), &amp;element));
setupModuleScriptHandlers(moduleScript, promise, world);

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:362
&gt;&gt; +};
&gt; 
&gt; We don&apos;t need this enum anymore do we?

Ah, right! Dropped.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:100
&gt;&gt; +    bool isRootModule = importerModuleKey.isSymbol() || importerModuleKey.isUndefined();
&gt; 
&gt; Can this logic be extracted as a separate static local helper function?

Extracted it as `bool isRootModule(JSC::JSValue)`.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:150
&gt;&gt; +        deferred-&gt;reject(TypeError, ASCIILiteral(&quot;Module key is an invalid URL.&quot;));
&gt; 
&gt; I think it&apos;s more natural to say &quot;module key is not a valid URL&quot; for an error message.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:155
&gt;&gt; +    auto* scriptElement = toScriptElementIfPossible(&amp;JSC::jsCast&lt;JSElement*&gt;(initiator)-&gt;wrapped());
&gt; 
&gt; Should we just call jsCast&lt;HTMLScriptElement*&gt;?
&gt; Or does SVG script element also support module?

Right now, we implemented it in ScriptElement. So SVG script element should support it.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:209
&gt;&gt; +    auto* cachedScript = loader.cachedScript();
&gt; 
&gt; Why not a reference? Also, why is it guaranteed that cachedScript is not null?

notifyFinished is called only when cachedScript is non null.
It never becomes nullptr. Taking reference instead.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:226
&gt;&gt; +            &quot;&apos; because its MIME type (&apos;&quot;, cachedScript-&gt;response().mimeType(), &quot;&apos;) is not executable.&quot;));
&gt; 
&gt; &quot;refused to execute&quot; is quite a departure from other kinds of error messages we have.
&gt; How about simply &quot;~ is not a valid JavaScript MIME type&quot;.

Looks good. Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:230
&gt;&gt; +    if (auto* frame = m_document.frame()) {
&gt; 
&gt; We can just exit early when frame is null since that&apos;s not a formal flow of control.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:234
&gt;&gt; +        } else if (cachedScript-&gt;wasCanceled())
&gt; 
&gt; Why not an early return instead of else iff for the same reason?

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:235
&gt;&gt; +            promise-&gt;reject(frame-&gt;script().moduleLoaderFetchingIsCanceledSymbol());
&gt; 
&gt; Ditto to add an early exit instead.

Fixed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.h:50
&gt;&gt; +WTF_MAKE_NONCOPYABLE(ScriptModuleLoader); WTF_MAKE_FAST_ALLOCATED;
&gt; 
&gt; I think we indent these.

Fixed.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:246
&gt;&gt; +    bool isParserInsertedDeferredScript = (scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() &amp;&amp; deferAttributeValue() &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue()) || (scriptType == ScriptType::Module &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue());
&gt; 
&gt; It seems like this can make a use of a line break in the middle.

Inserted a line break.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:250
&gt;&gt; +    } else if (scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() &amp;&amp; m_parserInserted &amp;&amp; !asyncAttributeValue()) {
&gt; 
&gt; It seems like we keep checking scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() multiple types.
&gt; How about declaring a local variable like isClassicExternalScript?

Sounds nice. Fixed.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:253
&gt;&gt; +    } else if ((scriptType == ScriptType::Classic &amp;&amp; hasSourceAttribute() &amp;&amp; !asyncAttributeValue() &amp;&amp; !m_forceAsync) || (scriptType == ScriptType::Module &amp;&amp; !asyncAttributeValue() &amp;&amp; !m_forceAsync)) {
&gt; 
&gt; It looks like both classic &amp; module scripts want to check !asyncAttributeValue() &amp;&amp; !m_forceAsync.
&gt; I think it&apos;s cleaner to put that outside ||.
&gt; e.g. (isClassicExternalScript || scriptType == ScriptType::Module) &amp;&amp; !asyncAttributeValue() &amp;&amp; !m_forceAsync
&gt; 
&gt; Also, it might be worth adding a comment (better yet an assertion) here
&gt; or above all these if-else that inline module would be processed within requestModuleScript.
&gt; It&apos;s not great that our implementation is further away from the spec text:
&gt; https://html.spec.whatwg.org/#prepare-a-script
&gt; 
&gt; We should probably refactor at some point to make it more aligned with the spec&apos;ed text given the complexity.
&gt; 
&gt; Alternatively, we can split into two functions and use this if-else for module as well.
&gt; I&apos;m inclined to say that&apos;s probably more preferrable because that&apos;ll align our code more with the spec text.

The above fix is done. And I added the comment here.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:258
&gt;&gt;          ASSERT(m_loadableScript);
&gt; 
&gt; So this is an async case. Can we assert that asyncAttributeValue() is true here?

Inserted, ASSERT(asyncAttributeValue() || m_forceAsync);.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:286
&gt;&gt; +        auto request = requestScriptWithCache(m_element.document().completeURL(sourceURL), ScriptType::Classic, nonceAttribute, crossOriginMode);
&gt; 
&gt; Can we set crossOriginMode to &quot;omit&quot; as spec&apos;ed in step 15 of https://html.spec.whatwg.org/#prepare-a-script
&gt; instead of changing it in CachedResourceRequest::setAsPotentiallyCrossOrigin?
&gt; That&apos;ll better match the spec and we don&apos;t have to make CachedResourceRequest aware of script type we&apos;re fetching.

Fixed.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:395
&gt;&gt;              return;
&gt; 
&gt; Should we rename this to executeClassicScript for clarity?

Currently, XML script element is not handled.
Once it is done, we will rename this function.

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:408
&gt;&gt; +    // Note: This is where the script is compiled and actually executed.
&gt; 
&gt; I don&apos;t think we really need this comment.
&gt; We call a function called &quot;evaluate&quot; right beneath it.

OK, dropped. Maybe this is ancient comment :)

&gt;&gt; Source/WebCore/html/parser/CSSPreloadScanner.cpp:206
&gt;&gt; +            m_requests-&gt;append(std::make_unique&lt;PreloadRequest&gt;(&quot;css&quot;, url, baseElementURL, CachedResource::CSSStyleSheet, String(), PreloadRequest::ScriptType::Classic));
&gt; 
&gt; !? Does why CSS preloader specifying a script type?
&gt; It doesn&apos;t load or run any scripts, right?

Yes, this is because PreloadRequest always needs all the fields right now. That&apos;s why I selected PreloadRequest::ModuleScript::{Yes, No} previously.
At that time, we can pass PreloadRequest::ModuleScript::No.

Maybe, it is better for now, reverted.
Once the refactoring noted below is landed, this should be fixed.

&gt;&gt; Source/WebCore/html/parser/HTMLResourcePreloader.h:39
&gt;&gt; +    };
&gt; 
&gt; Maybe we should declare this in a separate header like ScriptType.h and share it with ScriptElement.
&gt; It&apos;s redundant to have two enums.
&gt; Although I could see us wanting to add more types. e.g. ClassicScript, ModuleScript, CSS.
&gt; Yet another alternative is to split CachedResource::Script to CachedResource::ClassicScript and CachedResource::ModuleScript.

Right. It should be better. In the meantime, I reverted this ScriptType to ModuleScript { Yes, No }.
The above refactoring will be done in the separate patch.

&gt;&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:85
&gt;&gt; +void CachedResourceRequest::setAsPotentiallyCrossOriginImpl(const String&amp; mode, Document&amp; document, CrossOriginSettingContext crossOriginSettingContext)
&gt; 
&gt; We normally suffix these functions with &quot;Internal&quot; instead. e.g. setAsPotentiallyCrossOriginInternal here.

Now, setAsPotentiallyCrossOriginImpl is dropped since crossOriginMode is changed in the caller side.

&gt;&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:98
&gt;&gt; +        m_options.allowCredentials = DoNotAllowStoredCredentials;
&gt; 
&gt; These defaults appear to come from:
&gt; https://html.spec.whatwg.org/#prepare-a-script
&gt; I think we should do this in prepareScript to better match the spec instead.

Instead, we set &quot;omit&quot; to crossOriginMode. So we can drop this if clause and the else side is extended to accept &quot;omit&quot;.
And we cannot move the above things to ScriptElement since it is also used from the preloader.

&gt;&gt; LayoutTests/ChangeLog:66
&gt;&gt; +        * js/dom/module-and-dom-content-loaded-expected.txt: Added.
&gt; 
&gt; We probably want to another directly inside dom or js since you&apos;ve got so many tests here.

Nice. Moved to js/dom/module.

&gt;&gt; LayoutTests/http/tests/misc/module-script-async.html:17
&gt;&gt; +    window.status_ += &apos; &apos; + msg + &apos; &apos;;
&gt; 
&gt; Can we use a more regular name like window.log and use an array instead of concatenating scripts?

Fixed.

&gt;&gt; LayoutTests/http/tests/misc/module-script-async.html:32
&gt;&gt; +        results = &quot;FAIL: Expected one of &apos;&quot; + expectedA + &quot;&apos; || &apos;&quot; + expectedB + &quot;&apos; || &apos;&quot; + expectedC + &quot;&apos; || &apos;&quot; + expectedD + &quot;&apos;, Actual=&apos;&quot; + window.status_ + &quot;&apos;&quot;;
&gt; 
&gt; It appears to me that a better way of doing this would be something like
&gt; const expectedOrderings = [[&apos;async&apos;, &apos;external&apos;, &apos;inline&apos;, &apos;DOMContentLoaded&apos;, &apos;slowAsync&apos;], ...]
&gt; if (!expectedOrderings.find((expected) =&gt; JSON.stringify(expected) == JSON.stringify(window.log)))
&gt;   results = &apos;FAIL: ...&apos;;

Fixed.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-and-scripthash.html:24
&gt;&gt; +        &lt;/script&gt;
&gt; 
&gt; I think we should move one of these passes to the end so that we know for sure FAIL cases did run instead of the test finishing prematurely.

Fixed.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-basic-blocked.html:6
&gt;&gt; +        if (window.testRunner) {
&gt; 
&gt; Maybe indent the script once more to be consistent?

Fixed.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-basic-blocked.html:32
&gt;&gt; +        &lt;/script&gt;
&gt; 
&gt; It seems like we should add a test case for using eval statement &amp; calling eval function
&gt; in inline scripts and external scripts and make sure they&apos;re blocked.

Added.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-ignore-unsafeinline.html:4
&gt;&gt; +        &lt;meta http-equiv=&quot;Content-Security-Policy&quot; content=&quot;script-src &apos;nonce-noncynonce&apos; &apos;nonce-noncy+/=nonce&apos; &apos;unsafe-inline&apos;&quot;&gt;
&gt; 
&gt; I guess unsafe-inline doesn&apos;t allow inline module scripts?
&gt; Where is that spec&apos;ed?
&gt; Could you mention that in the change log?

https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script Step 11, &quot;If the script element does not have a src content attribute, and the Should element&apos;s inline behavior be blocked by Content Security Policy? algorithm returns &quot;Blocked&quot; when executed upon the script element, &quot;script&quot;, and the script element&apos;s child text content, then abort these steps. The script is not executed. [CSP]&quot;

So, if the script tag does not have src (it should include inline module scripts), CSP unsafe-inline should be applied.
Noted.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-ignore-unsafeinline.html:26
&gt;&gt; +        &lt;/script&gt;
&gt; 
&gt; Again, I think it&apos;s better to have a FAIL case not appear at the very end.

Fixed.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-invalidnonce.html:22
&gt;&gt; +      None of these scripts should execute, as all the nonces are invalid.
&gt; 
&gt; Inconsistent indentation.

Fixed.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-same-origin.html:9
&gt;&gt; +        if (window.testRunner) {
&gt; 
&gt; Nit: inconsistent indentation.

Fixed.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-same-origin.html:17
&gt;&gt; +            document.querySelector(&quot;#preloaded&quot;).innerText = preloaded ? &quot;YES&quot; : &quot;NO&quot;;
&gt; 
&gt; Shouldn&apos;t this always be NO? If so, why don&apos;t we just assert with a comment clarifying
&gt; what we should do when we change the behavior of our preloader instead?
&gt; If that&apos;s going to change, that seems to make this test flaky, which needs to be avoided.

OK, dropped.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect.html:17
&gt;&gt; +            document.querySelector(&quot;#preloaded&quot;).innerText = preloaded ? &quot;YES&quot; : &quot;NO&quot;;
&gt; 
&gt; Ditto.

Dropped.

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/resources/multiple-iframe-module-test.js:40
&gt;&gt; +      iframe.src += &quot;&amp;nonce=&quot; + encodeURIComponent(current[3]);
&gt; 
&gt; Wrong indentation.
&gt; 
&gt; Instead of building strings like this, can we just create an array of key-value pair and join them together at the end?
&gt; e.g.
&gt; const queries = {};
&gt; queries[&apos;experimental&apos;] = (!!experimental).toString();
&gt; Object.getPropertyNames(queries).map((key) =&gt; key + &apos;=&apos; + queries[key]).join(&apos;&amp;&apos;);

OK, fixed like this.

&gt;&gt; LayoutTests/http/tests/security/module-correct-mime-types.html:8
&gt;&gt; +description(&apos;Test module rejects scripts with correct mime types.&apos;);
&gt; 
&gt; Did you mean to say module scripts with correct mime types *run*? They&apos;re certainly not rejected here.

Oops, right. Fixed.

&gt;&gt; LayoutTests/http/tests/security/module-correct-mime-types.html:52
&gt;&gt; +    debug(&apos;Module rejects scripts with correct mime types.&apos;);
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; LayoutTests/http/tests/security/module-crossorigin-loads-same-origin.html:10
&gt;&gt; +    document.querySelector(&quot;pre&quot;).innerHTML = &quot;PASS&quot;;
&gt; 
&gt; This checks we&apos;ve fired load script but not quite whether script had run or not.
&gt; Can we check the value of &quot;secretness&quot; defined in localScript.js to make sure the script had run?
&gt; You may need to modify localScript.js to export some symbol, etc... though...

Fixed.

&gt;&gt; LayoutTests/http/tests/security/module-no-mime-type.html:19
&gt;&gt; +}
&gt; 
&gt; Is it possible to check that the script actually didn&apos;t run via a global state, etc...?

Fixed.

&gt;&gt; LayoutTests/http/tests/security/module-requires-javascript-mime-types.html:8
&gt;&gt; +description(&apos;Test module rejects scripts with no mime type.&apos;);
&gt; 
&gt; How is this test different from module-no-mime-type.html?

Oops, dropped.

&gt;&gt; LayoutTests/js/dom/module-and-dom-content-loaded.html:21
&gt;&gt; +}, false);
&gt; 
&gt; Can we add a event listener in a classic inline script to make sure DOMContentLoaded is not fired until the module script had run?
&gt; Also, can we assert that document.readyState is not &quot;loading&quot; until modules had ran?
&gt; 
&gt; Otherwise, this test would only timeout when the semantics of type=module is violated,
&gt; which isn&apos;t a great way to signal that the semantics is actually violated.

Fixed.

&gt;&gt; LayoutTests/js/dom/module-and-window-load.html:22
&gt;&gt; +&lt;/script&gt;
&gt; 
&gt; Ditto. I think we should change some state in the module script and have a separate classic script
&gt; which attaches a load event handler which checks that the module had ran.

Fixed.

&gt;&gt; LayoutTests/js/dom/module-async-and-window-load.html:18
&gt;&gt; +window.onload = function ()
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; LayoutTests/js/dom/module-execution-order-mixed.html:23
&gt;&gt; +shouldBe(&quot;count++&quot;, &quot;6&quot;);
&gt; 
&gt; Could you add another test where classical scripts and module scripts are mixed?

Added.

&gt;&gt; LayoutTests/js/dom/module-incorrect-relative-specifier.html:15
&gt;&gt; +    debug(`${current}`);
&gt; 
&gt; Can we push &quot;this&quot; into a set and verify at the end that all module script elements are in the set?

Fixed.

&gt;&gt; LayoutTests/js/dom/module-load-event-with-src.html:14
&gt;&gt; +&lt;script type=&quot;module&quot; onload=&quot;finishJSTest()&quot; src=&quot;script-tests/module-load-event-with-src.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; Can we also check some global state for making sure the script had run instead of relying the expected result to contain some text?
&gt; When this starts failing, some people might think it&apos;s okay to just rebaseline the test if glanced it quickly.
&gt; Whereas if it&apos;s explicitly checked via shouldBe, people are a lot more likely to realize that something is broken.

Fixed.

&gt;&gt; LayoutTests/js/dom/module-load-event.html:16
&gt;&gt; +&lt;/script&gt;
&gt; 
&gt; Ditto about changing the global state instead of just emitting text.

Fixed.

&gt;&gt; LayoutTests/js/dom/module-load-same-module-from-different-entry-point-dynamic.html:20
&gt;&gt; +element.innerText = &quot;script-tests/module-load-same-module-from-different-entry-point.js&quot;;
&gt; 
&gt; Ditto about checking the global state explicitly.

Fixed.

&gt;&gt; LayoutTests/js/dom/module-load-same-module-from-different-entry-point.html:17
&gt;&gt; +debug(&apos;Executing the module.&apos;);
&gt; 
&gt; Ditto about change the global state instead of just emitting text.

Fixed.

&gt;&gt; LayoutTests/js/dom/module-not-found-error-event-with-src.html:16
&gt;&gt; +}
&gt; 
&gt; Instead of just finishing script we should explicitly check that the error event had fired
&gt; by e.g. adding another module script that loads and checking this condition in that module script
&gt; or on its load event handler.

Fixed.

&gt;&gt; LayoutTests/js/dom/module-not-found-error-event.html:19
&gt;&gt; +&lt;script type=&quot;module&quot; onerror=&quot;onError()&quot;&gt;
&gt; 
&gt; Ditto about more explicitly checking the error being dispatched.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251834</commentid>
    <comment_count>187</comment_count>
      <attachid>294928</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 02:45:11 -0800</bug_when>
    <thetext>Created attachment 294928
Checking EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251835</commentid>
    <comment_count>188</comment_count>
      <attachid>294929</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 02:49:41 -0800</bug_when>
    <thetext>Created attachment 294929
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251836</commentid>
    <comment_count>189</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-16 02:51:12 -0800</bug_when>
    <thetext>Attachment 294928 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:372:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 169 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>1251837</commentid>
    <comment_count>190</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-16 02:54:53 -0800</bug_when>
    <thetext>Attachment 294929 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/ScriptController.cpp:372:  &apos;moduleScript&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedModuleScriptRef&apos;.  [readability/naming/protected] [4]
Total errors found: 1 in 169 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>1251842</commentid>
    <comment_count>191</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 03:39:59 -0800</bug_when>
    <thetext>Committed r208788: &lt;http://trac.webkit.org/changeset/208788&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260914</attachid>
            <date>2015-09-10 01:24:45 -0700</date>
            <delta_ts>2015-09-10 21:03:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150910012438.patch</filename>
            <type>text/plain</type>
            <size>43720</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZTMyMTNhZjFiMzI1MDRhNzcxNDBhMzVlNjJiYWEzZmViYjUxOGE3Li4yNDZmYTFhYjIzMzU5YTUz
NWE3ZTQxMzFkZTAyOGYwZDBhOWQ3M2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNS0wOS0xMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpmb3JFYWNo
Q29kZUJsb2NrKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoZXh0cmFjdERpcmVjdG9y
eU5hbWUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHA6
CisKIDIwMTUtMDktMDggIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+
CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBERkc6OmRmZ0NvbnZlcnRKU1ZhbHVlVG9JbnQzMigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYWNlN2I0YzhkODliNjUyZjkxMzA3NjljMDYyZTA0NGE2YTY5NGUyNi4u
NmFiZDY2YjYwOThkMzM2ZGFlY2NmN2NlNDVkNWQ3MWU2ZmUwM2RmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU0IEBACisyMDE1LTA5LTEwICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVncmF0ZSBFUzYgTW9kdWxlcyBpbnRvIFdlYkNv
cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODg5
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZS5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9y
dW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaDogQWRkZWQuCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRET01FeGNlcHRpb24pOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNYWluVGhy
ZWFkRXhlY1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6
OnN0YXJ0TG9hZGluZ01vZHVsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpzdGFydExvYWRp
bmdNb2R1bGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OnN0
YXJ0TG9hZGluZ01vZHVsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKiBkb20vTW9kdWxlRmV0Y2hlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6TW9kdWxlRmV0Y2hlcik6CisgICAgICAg
IChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlRmV0Y2hlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGRvbS9Nb2R1bGVGZXRjaGVy
Lmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9Nb2R1bGVMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vZHVsZUxvYWRlcjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2Fk
ZXI6OmZldGNoKToKKyAgICAgICAgKiBkb20vTW9kdWxlTG9hZGVyLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6CisgICAgICAgICogZG9tL1Njcmlw
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRU
eXBlU3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVT
Y3JpcHQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVu
dDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxl
bWVudC5oOgorCiAyMDE1LTA5LTA4ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIFNldmVyYWwgaW5zcGVjdG9yLXByb3RvY29sIHRlc3RzIGFyZSBmbGFreSB3aXRoIEd1
YXJkTWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5k
ZXggNjg4ZmQwZWQ5ZTI3ZWI5ZjkxMDNhN2JmYWUyMWNkN2E0YTk1YjY0Yi4uZGU4YTFkMDA2NmU1
ZGQ2ODVkNGM1ZjI1ZDYxZWIzM2EzY2Y5ODc2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaApAQCAtMTI2OSw2ICsxMjY5LDEzIEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBGdW5jdG9yPiBpbmxpbmUgdm9pZCBTY3JpcHRFeGVjdXRhYmxlOjpmb3JFYWNoQ29kZUJs
b2NrKEZ1bmN0CiAgICAgICAgICAgICBjb2RlQmxvY2stPmZvckVhY2hSZWxhdGVkQ29kZUJsb2Nr
KGYpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIE1vZHVsZVByb2dyYW1FeGVj
dXRhYmxlVHlwZTogeworICAgICAgICBpZiAoQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBqc0Nhc3Q8
TW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqPih0aGlzKS0+bV9tb2R1bGVQcm9ncmFtQ29kZUJsb2Nr
LmdldCgpKQorICAgICAgICAgICAgY29kZUJsb2NrLT5mb3JFYWNoUmVsYXRlZENvZGVCbG9jayhz
dGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvcikpOworICAgICAgICBicmVhazsKKyAgICB9CisK
ICAgICBkZWZhdWx0OgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggOGZhNDRiMTc3YjczZjNhY2Y3OWE0MWEwY2M5NGYy
NDljYzZiZjY4My4uMTViZDhiN2YzNDU0Y2NhZjI1ZTg3MzA2ZDE0YjgzMDE1MGY0MTIxYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2pzYy5jcHAKQEAgLTc3NSw3ICs3NzUsNyBAQCBzdGF0aWMgYm9vbCBleHRyYWN0
RGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIGFic29sdXRlUGF0aFRvRmlsZSwgRGlyZWN0b3J5
TmFtZQogICAgIGlmIChmaXJzdFNlcGFyYXRvclBvc2l0aW9uID09IGxhc3RTZXBhcmF0b3JQb3Np
dGlvbikKICAgICAgICAgZGlyZWN0b3J5TmFtZS5xdWVyeU5hbWUgPSBTdHJpbmdJbXBsOjplbXB0
eSgpOwogICAgIGVsc2UKLSAgICAgICAgZGlyZWN0b3J5TmFtZS5xdWVyeU5hbWUgPSBhYnNvbHV0
ZVBhdGhUb0ZpbGUuc3Vic3RyaW5nKGZpcnN0U2VwYXJhdG9yUG9zaXRpb24gKyAxLCBsYXN0U2Vw
YXJhdG9yUG9zaXRpb24pOyAvLyBOb3QgaW5jbHVkZSB0aGUgc2VwYXJhdG9yLgorICAgICAgICBk
aXJlY3RvcnlOYW1lLnF1ZXJ5TmFtZSA9IGFic29sdXRlUGF0aFRvRmlsZS5zdWJzdHJpbmcoZmly
c3RTZXBhcmF0b3JQb3NpdGlvbiArIDEsIGxhc3RTZXBhcmF0b3JQb3NpdGlvbiAtIGZpcnN0U2Vw
YXJhdG9yUG9zaXRpb24gLSAxKTsgLy8gTm90IGluY2x1ZGUgdGhlIHNlcGFyYXRvci4KICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCA0ZTY3YThjN2Q5MTc0
OGQ5NWNiODk2NGYwYzQ4ODQ0OWVhZjA3NmQxLi5mZWZkZWNkZjAzYjY0ZTZkZjNiNDEwMGQ2MWI2
YTQ0N2NmYWYyZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcApAQCAtMzgsNyArMzgsNyBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotY29uc3QgQ2xhc3NJbmZvIEpTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQ6OnNfaW5mbyA9IHsgIkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQiLCBudWxscHRyLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQpIH07
Citjb25zdCBDbGFzc0luZm8gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6c19pbmZvID0geyAi
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCkgfTsKIAogSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21p
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjU1N2EyZjIxZWNmNmIyYWVjYWQ2N2UzNTNlMTk2NmU0
Nzk0ZTgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBX
ZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pTSW50
ZXJuYWxQcm9taXNlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlz
ZS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM2YzA4NmRkMzlhZmY5ZTEwNGJkNWE2ZmY3YWU3OTI1NDYzODY5NTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9G
V0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWRfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUyYTg5NTdiNTk4N2M5YmQ1MjJhMWEy
NWJkZjg2ODRmNTljOTM2NGQuLjgwNDQ0ZDAyNTdjNWYxNWM1MTVkZDg2NWE4MGNmMDg5YWJmNTA5
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTYyOTYsNiArNjI5NiwxMCBAQAogCQlFMUZGOEY2ODE4MDc0NjA4MDAxMzI2NzQg
LyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5
cHRvQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTFGRjhGNkMxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1S
ZWdpc3RyeS5jcHAgKi87IH07CiAJCUUxRkY4RjZEMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9B
bGdvcml0aG1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5LmggKi87IH07CisJCUUzQjEwRkEyMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMTBG
QTAxQkEwMDRCQzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5jcHAgKi87IH07CisJCUUzQjEwRkEz
MUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjEwRkExMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1
bGVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlFM0IxMEZBNjFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IxMEZBNDFCQTBGMjlD
MDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5jcHAgKi87IH07CisJCUUzQjEwRkE3MUJBMEYyOUMw
MDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0IxMEZBNTFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0
MDFDMjc1MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDAxQzI3NDE3Q0U1
M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0MjRBMzlFMTMzMERGMDEwMENG
NkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlEMTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxl
R3JpZFRpbGUuaCAqLzsgfTsKIAkJRTQyNEEzQTAxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRp
bGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0MjRBMzlGMTMzMERGMUUwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gKi87
IH07CkBAIC0xNDAxMiw2ICsxNDAxNiwxMCBAQAogCQlFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQg
LyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3Jp
dGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QjE4
MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNCMTBGQTAxQkEwMDRCQzAwOTNERTNBIC8qIE1vZHVsZUxv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVMb2Fk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0IxMEZBMTFCQTAwNEJDMDA5
M0RFM0EgLyogTW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0IxMEZBNDFC
QTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNb2R1bGVGZXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTNCMTBGQTUxQkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZldGNoZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlRmV0Y2hlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDAxQzI3NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0
ZXJhdG9yQXNzZXJ0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVt
ZW50SXRlcmF0b3JBc3NlcnRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBDb2xvckRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUHJvcGVydHlOYW1lcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM3Miw2ICsyMzM4MCwxMCBAQAog
CQkJCTQxQkY3MDBBMEZFODZGNDkwMDVFOERFQyAvKiBNZXNzYWdlUG9ydENoYW5uZWwuaCAqLywK
IAkJCQlDQjhDRjAxNTFBOTM0QjQzMDAwRDUxMEIgLyogTWljcm9UYXNrLmNwcCAqLywKIAkJCQk1
M0I4OTVBRDE5REM3QzM3MDA5Q0FBOTMgLyogTWljcm9UYXNrLmggKi8sCisJCQkJRTNCMTBGQTQx
QkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZldGNoZXIuY3BwICovLAorCQkJCUUzQjEwRkE1MUJB
MEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmggKi8sCisJCQkJRTNCMTBGQTAxQkEwMDRC
QzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5jcHAgKi8sCisJCQkJRTNCMTBGQTExQkEwMDRCQzAw
OTNERTNBIC8qIE1vZHVsZUxvYWRlci5oICovLAogCQkJCTg1MDMxQjJGMEE0NEVGQzcwMEY5OTJF
MCAvKiBNb3VzZUV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzMDBBNDRFRkM3MDBGOTkyRTAgLyog
TW91c2VFdmVudC5oICovLAogCQkJCTE0MUI5NEU1MDlFQzQyMjMwMDBFOTQxMyAvKiBNb3VzZUV2
ZW50LmlkbCAqLywKQEAgLTI0MjU1LDYgKzI0MjY3LDcgQEAKIAkJCQkwNjVBRDRGNTBCMEMyRURB
MDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDZE
N0JFMThCREI3NkYwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA2NUFENEY3MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCUUzQjEwRkEzMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVM
b2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2MDI3Q0FEMEIxQ0JGQzAwMDg4NEIyRCAvKiBD
b250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTdBREU3MjI2MTBDQkJCOUIwMDZC
M0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDUwMDJG
QzFCNTZENzk5MDAyMEFBRjcgLyogUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NjcyNCw2ICsyNjczNyw3IEBACiAJCQkJMkQ5M0FFRTMxOURGNTY0MTAwMkE4NkMzIC8qIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NkIyQ0UxMThCNzEw
MTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTEwMDk5
RTY0OTIwMDU2RTU4MSAvKiBTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTNCMTBGQTcxQkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZldGNoZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUI4REJEQjRDMTMwQjBGOEEwMEY1Q0RCMSAvKiBTZXRTZWxlY3Rpb25Db21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTk0RjA4MjQ1RTU5MDAxRTlBQkMgLyogU2V0
dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzRUY3NjZCMTY1MzBBNjEwMDRDQkU0OSAvKiBT
ZXR0aW5nc01hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODc3NCw2ICsyODc4OCw3IEBACiAJ
CQkJQzU4NUE2NjIxMUQ0RkFDNTAwNEMzRTRCIC8qIElEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFENzE5QkYxODExMDZFMDAwMTZEQzUxIC8qIElEQkN1cnNvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTY3MzBBMzE4MkQ4RkJCMDAzRkFGNUMgLyogSURCQ3Vy
c29yQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0IxMEZBNjFCQTBGMjlDMDA5M0RF
M0EgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTAxOTQ0NDE4MzZG
N0U0MDA5MjU1MjMgLyogSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTFENzE5QzMxODExMDZFMDAwMTZEQzUxIC8qIElEQkN1cnNvcldpdGhWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQ3MTlDNjE4MTEwNkUwMDAxNkRDNTEgLyogSURCRGF0
YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY4Nyw2ICsyOTcwMiw3IEBACiAJCQkJRDNB
OTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUQzQUExMEYzMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDOTA4NDNDRjFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1v
dGVDb250cm9scy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0IxMEZBMjFCQTAwNEJDMDA5M0RF
M0EgLyogTW9kdWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFRUZDRDc5MTlEQjMx
RjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNEQkVBRUFDMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUM5MDI3RjQxMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNl
c3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmNwcAppbmRleCA1YTQxYjQ2N2UyMjUwZGQ5OWMxNzFiYzYwNTQxZjJjMWM0Nzcy
ZDk3Li4zM2UyZTc3MDAxZjkzMGU1Njk4YzdiYTg4ODFmYzdmMmZmMzg1NTgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTI1MCw3ICsyNTAsNyBA
QCB2b2lkIHNldERPTUV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEV4Y2VwdGlvbkNvZGUgZWMp
CiAgICAgaWYgKCFlYyB8fCBleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVET01FeGNlcHRpb24o
ZXhlYywgZWMpKTsKKyAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZURP
TUV4Y2VwdGlvbihleGVjLCBTWU5UQVhfRVJSKSk7CiB9CiAKICN1bmRlZiBUUllfVE9fQ1JFQVRF
X0VYQ0VQVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHAKaW5kZXggYTI5MGRkYzllNTgxYWNkNjM0MzAxNzAwYmFmODI3Y2ExYTRlZmQwMi4uYTM4
ZmQ1NDhjNjk4MGMzMzhhOWVjNTQ4NTA3ZGJjMjYwYWNjYmJmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0zMSwxMSArMzEsMTMgQEAK
ICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTm9kZS5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGll
bnREYXRhLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9NaWNyb3Rhc2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgogCkBAIC01Niw3ICs1OCw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93QWNjZXNzRnJv
bShjb25zdCBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCwgRXhlY1N0YXRlKiBlCiAKIGNvbnN0
IENsYXNzSW5mbyBKU0RPTVdpbmRvd0Jhc2U6OnNfaW5mbyA9IHsgIldpbmRvdyIsICZKU0RPTUds
b2JhbE9iamVjdDo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRE9NV2luZG93QmFz
ZSkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3Vw
cG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0
U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAm
c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwgbnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5k
b3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NG
cm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxk
SW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZl
bnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgJm1vZHVsZUxvYWRl
clJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCiBKU0RP
TVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCkK
ICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsICZzaGVsbC0+d29ybGQoKSwg
JnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC0yNzksNCArMjgxLDIzIEBAIHZvaWQgSlNE
T01XaW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2lu
ZG93KiB3aW5kb3cpCiAgICAgfQogfQogCisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9N
V2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwg
SlNDOjpKU1ZhbHVlIHJlZmVycmVyKQoreworICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYg
KERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5kb2N1bWVudCgpKQorICAg
ICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5yZXNvbHZlKGdsb2JhbE9iamVj
dCwgZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJyZXIpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNy
ZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4
ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXkpCit7Cisg
ICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dC
YXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09i
amVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxl
TG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlS2V5KTsKKyAgICBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gZGVm
ZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5lZCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApp
bmRleCA1ZWQzODYyYzE0MTE4N2MwMDZiNjg4ZGI3OTc3OTRiMzY5ODEwNTY0Li4yMTkzYjY2YzNm
NDkwODQwZWJlMWVmYWY0NWNjMTNjYzlkYmQyZjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNzgsNiArNzgsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBKU0M6OldhdGNocG9pbnRTZXQgbV93aW5kb3dDbG9zZVdhdGNocG9p
bnRzOwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gTW9kdWxlIExvYWRlciBob29rcy4KKyAg
ICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlclJlc29sdmUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxl
TG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlKTsKKwogICAgICAgICBSZWZQdHI8RE9NV2luZG93PiBtX2ltcGw7CiAgICAgICAgIEpT
RE9NV2luZG93U2hlbGwqIG1fc2hlbGw7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKaW5kZXggMDllN2U1YjYwMjY4Nzli
NTMzNWExZmUxZWY3MWM0NDc0MzBiZmNkNC4uNGEyNzRhYmM5OTIxMjIwODA5NDJlZjlkNTYyNzc2
Yjg2ZmVhMzRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmgKQEAgLTc0LDYgKzc0LDExIEBAIGNsYXNzIEpTTWFpblRocmVhZEV4
ZWNTdGF0ZSB7CiAgICAgICAgIHRhc2sucnVuKGV4ZWMpOwogICAgIH0KIAorICAgIHN0YXRpYyBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBzdGFydExvYWRpbmdNb2R1bGUoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBK
U0M6OmV2YWx1YXRlTW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUpOworICAgIH0KKwogICAgIHN0YXRp
YyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgaW5zdHJ1bWVudEZ1bmN0aW9uQ2FsbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpDYWxsVHlwZSwgY29uc3QgSlNDOjpDYWxsRGF0
YSYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcAppbmRleCA0YjNiMDk3MmJlNzdmM2M3NjU5NWYxNDBlMjZhNzQ4ZmY4ZWE0
NTBjLi40M2YxODk0MjA1YTQ1YjMzZWUzZjEyMDU3OGNiZjViNzM4MzU0YWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNTQsNyAr
NTQsOSBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRl
IDxwcm9maWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQ
b3NpdGlvbi5oPgogCkBAIC0xODAsNiArMTgyLDMyIEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVl
IFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJj
CiAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFs
V29ybGQoKSk7CiB9CiAKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6c3RhcnRMb2FkaW5nTW9kdWxl
SW5Xb3JsZChjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQp
Cit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIEpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpzdGFydExvYWRpbmdNb2R1bGUoZXhl
YywgbW9kdWxlTmFtZSk7CisKKyAgICBKU0Z1bmN0aW9uKiBlcnJvckhhbmRsZXIgPSBKU05hdGl2
ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJp
bmcoKSwgWyZdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICAvLyBGSVhNRTogUmVwb3J0IGVy
cm9ycy4KKyAgICAgICAgU3RyaW5nIHZhbHVlID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAg
ICBkYXRhTG9nKCJFcnJvcjogIiwgdmFsdWUsICJcbiIpOworICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhlbihl
eGVjLCBudWxscHRyLCBlcnJvckhhbmRsZXIpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6
OnN0YXJ0TG9hZGluZ01vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgc3Rh
cnRMb2FkaW5nTW9kdWxlSW5Xb3JsZChtb2R1bGVOYW1lLCBtYWluVGhyZWFkTm9ybWFsV29ybGQo
KSk7Cit9CisKIFJlZjxET01XcmFwcGVyV29ybGQ+IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdv
cmxkKCkKIHsKICAgICByZXR1cm4gRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoSlNET01XaW5kb3c6
OmNvbW1vblZNKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5oCmluZGV4IDA3YzUzYjdjOGVkZmI0ZTI4ZjVjYTEzYWEyYzRlMDU1OTRlZjUxMjIuLjg4
YjZhMDliZTRlYmY0ZjJlNGU3NDBiYzAyZTcxYTk0ZDcxNDI0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTExNSw2ICsxMTUsOSBAQCBj
bGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFs
dWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CiAgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFs
dWUgZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29y
bGQmKTsKIAorICAgIHZvaWQgc3RhcnRMb2FkaW5nTW9kdWxlSW5Xb3JsZChjb25zdCBTdHJpbmcm
IG1vZHVsZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgc3RhcnRMb2FkaW5nTW9k
dWxlKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisKICAgICBXVEY6OlRleHRQb3NpdGlvbiBl
dmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0OwogCiAgICAgdm9pZCBlbmFibGVFdmFsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjMDk0MWQyNTE5MTQxNDU4MjBiNWJkYzUzMDU4ZDY4
Y2Q5M2YzNGFiLi5mNmFiN2RjYTEwYjVlYTczMWJlNDZhMTg4ZWZhNzZlNmY1ZTQ5M2FkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMiw2ICsxMDIsNyBAQAogI2luY2x1ZGUgIk1lZGlh
UHJvZHVjZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgogI2luY2x1ZGUgIk1lZGlh
UXVlcnlNYXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgog
I2luY2x1ZGUgIk5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCkBAIC00NjEsNiArNDYyLDcgQEAg
RG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIHVuc2lnbmVk
IGRvY3VtZW50Q2xhc3NlcywgdW5zaWcKICAgICAsIG1fc3RhcnRUaW1lKHN0ZDo6Y2hyb25vOjpz
dGVhZHlfY2xvY2s6Om5vdygpKQogICAgICwgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZChm
YWxzZSkKICAgICAsIG1fc2NyaXB0UnVubmVyKHN0ZDo6bWFrZV91bmlxdWU8U2NyaXB0UnVubmVy
PigqdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihzdGQ6Om1ha2VfdW5pcXVlPE1vZHVsZUxv
YWRlcj4oKnRoaXMpKQogICAgICwgbV94bWxWZXJzaW9uKEFTQ0lJTGl0ZXJhbCgiMS4wIikpCiAg
ICAgLCBtX3htbFN0YW5kYWxvbmUoU3RhbmRhbG9uZVVuc3BlY2lmaWVkKQogICAgICwgbV9oYXNY
TUxEZWNsYXJhdGlvbihmYWxzZSkKQEAgLTYwMiw2ICs2MDQsNyBAQCBEb2N1bWVudDo6fkRvY3Vt
ZW50KCkKICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yUGFnZUNh
Y2hlKCk7CiAKICAgICBtX3NjcmlwdFJ1bm5lciA9IG51bGxwdHI7CisgICAgbV9tb2R1bGVMb2Fk
ZXIgPSBudWxscHRyOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCA5ZWY0OGM5MzM4MDczYWUwMjljMmVhMzdjOTM3NWQ1Y2ViOTlhNmQ0
Li5lMjIzM2I2NGJjYjBkZDhiNWMxNTU1MTUyZmQ2NGNjY2YyMTY2MDAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTI3LDYgKzEyNyw3IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBj
bGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBj
bGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKK2NsYXNzIE1vZHVsZUxvYWRlcjsKIGNsYXNzIE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9uOwogY2xh
c3MgTm9kZUZpbHRlcjsKQEAgLTkyMCw2ICs5MjEsNyBAQCBjbGFzcyBEb2N1bWVudCA6IHB1Ymxp
YyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9u
QwogICAgIERvY3VtZW50JiB0b3BEb2N1bWVudCgpIGNvbnN0OwogICAgIAogICAgIFNjcmlwdFJ1
bm5lciogc2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9zY3JpcHRSdW5uZXIuZ2V0KCk7IH0KKyAg
ICBNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlcigpIHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyLmdl
dCgpOyB9CiAKICAgICBIVE1MU2NyaXB0RWxlbWVudCogY3VycmVudFNjcmlwdCgpIGNvbnN0IHsg
cmV0dXJuICFtX2N1cnJlbnRTY3JpcHRTdGFjay5pc0VtcHR5KCkgPyBtX2N1cnJlbnRTY3JpcHRT
dGFjay5sYXN0KCkuZ2V0KCkgOiAwOyB9CiAgICAgdm9pZCBwdXNoQ3VycmVudFNjcmlwdChQYXNz
UmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50Pik7CkBAIC0xNTAxLDYgKzE1MDMsNyBAQCBjbGFzcyBE
b2N1bWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMg
U2NyaXB0RXhlY3V0aW9uQwogICAgIGJvb2wgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZDsK
ICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0UnVubmVyPiBtX3NjcmlwdFJ1bm5lcjsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKIAogICAg
IFZlY3RvcjxSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+PiBtX2N1cnJlbnRTY3JpcHRTdGFjazsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZldGNoZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZldGNoZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZmNkMDUxMmYz
ZWM0NTQ2MTQ1MzRmZDExMmFhOGJmNmMwZmYzZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgiCisKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5o
IgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdFNv
dXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVGZXRjaGVyOjpNb2R1
bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291
cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgOiBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgLCBtX2dsb2Jh
bE9iamVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCkKKyAgICAsIG1fZGVmZXJy
ZWQoZ2xvYmFsT2JqZWN0LT52bSgpLCBkZWZlcnJlZCkKK3sKKyAgICBSZXNvdXJjZUxvYWRlck9w
dGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3Vy
Y2VPcHRpb25zKCk7CisgICAgb3B0aW9ucy5zZXRDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0
aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOworCisg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHNvdXJjZVVS
TCksIG9wdGlvbnMpOworCisgICAgLy8gRklYTUU6IEhhbmRsZSBjcm9zcy1vcmlnaW4gb3B0aW9u
cy4KKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcihBdG9taWNTdHJpbmcoc291cmNlVVJMLnN0cmlu
ZygpKSk7CisKKyAgICBtX2NhY2hlZFNjcmlwdCA9IGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9h
ZGVyKCkucmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKKyAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xp
ZW50KHRoaXMpOworfQorCitSZWY8TW9kdWxlRmV0Y2hlcj4gTW9kdWxlRmV0Y2hlcjo6Y3JlYXRl
KEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1l
bnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9kdWxlRmV0Y2hlcihnbG9iYWxPYmpl
Y3QsIHNvdXJjZVVSTCwgZGVmZXJyZWQsIGRvY3VtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlRmV0
Y2hlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIEFT
U0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fY2FjaGVkU2NyaXB0KTsKKyAgICBp
ZiAoIW1fY2FjaGVkU2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9jYWNo
ZWRTY3JpcHQpOworCisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9iamVjdC0+
dm0oKSk7CisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFs
RXhlYygpOworICAgIGlmIChtX2NhY2hlZFNjcmlwdC0+ZXJyb3JPY2N1cnJlZCgpKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBEbyBlcnJvciByZXBvcnQuCisgICAgfSBlbHNlIGlmICghbV9jYWNoZWRT
Y3JpcHQtPndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VD
b2RlKG1fY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICAgICAgbV9kZWZlcnJlZC0+cmVzb2x2ZShl
eGVjLCBKU0M6OmpzU3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkpKTsKKyAgICB9Cisg
ICAgbV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICBtX2NhY2hlZFNjcmlw
dCA9IG51bGxwdHI7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1
bGVGZXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVmY2UyYmI0ZWU3ZjIwMmQ4Zjc1NDYwZGQzMjhkYjM5NDA5NWEyMWIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5oCkBAIC0wLDAgKzEsNjIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUZldGNoZXJfaAorI2RlZmluZSBNb2R1bGVG
ZXRjaGVyX2gKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCisjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJVUkwuaCIKKyNpbmNsdWRlIDxoZWFw
L1N0cm9uZ0lubGluZXMuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3Mg
RG9jdW1lbnQ7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKKworY2xhc3MgTW9kdWxlRmV0Y2hl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPE1vZHVsZUZldGNoZXI+LCBwcml2YXRlIENhY2hlZFJlc291
cmNlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNb2R1bGVGZXRjaGVyKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNb2R1bGVGZXRj
aGVyPiBjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlND
OjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQmKTsKKworcHJpdmF0ZToKKyAg
ICBNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkws
IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisKKyAgICAvLyBG
b3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVk
KENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAg
SlNDOjpTdHJvbmc8SlNET01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6
U3Ryb25nPEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUZldGNoZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW9kdWxlTG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmY4OTYwOTJiNWE4YWQ3
NWFiMWQ3Yjg3NDQ0NWE5YWY2NWJhYzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL01vZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgorI2luY2x1ZGUgPHJ1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVMb2FkZXI6Ok1vZHVsZUxv
YWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorewor
fQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpK
U1ZhbHVlIG1vZHVsZU5hbWVWYWx1ZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyVmFsdWUpCit7Cisg
ICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgaWYg
KG1vZHVsZU5hbWVWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJl
c29sdmUoZXhlYywgbW9kdWxlTmFtZVZhbHVlKTsKKworICAgIC8vIEZJWE1FOiBXZSBub3cgYXNz
dW1lIHRoYXQgbW9kdWxlIG5hbWUgaXMgZWl0aGVyIHN5bWJvbCBvciBzdHJpbmcuCisgICAgLy8g
V2hlbiBleHBvc2luZyB0aGUgcmVmbGVjdGlvbiB0byB0aGUgbW9kdWxlIGxvYWRlciBhbmQgbW9k
dWxlcywgd2UgbmVlZCB0byByZWNhc3QgdGhpcyBwYXJ0LgorICAgIEFTU0VSVChtb2R1bGVOYW1l
VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgU3RyaW5nIG1vZHVsZU5hbWUgPSBKU0M6OmpzQ2FzdDxK
U0M6OkpTU3RyaW5nKj4obW9kdWxlTmFtZVZhbHVlKS0+dmFsdWUoZXhlYyk7CisKKyAgICAvLyBO
b3csIHdlIGNvbnNpZGVyIHRoZSBnaXZlbiBtb2R1bGVOYW1lIGFzIHRoZSBzYW1lIHRvIHRoZSBz
cmM9Ii4uLiIgaW4gdGhlIHNjcmlwdCB0YWcuCisgICAgLy8gV2UgdXNlIHRoZSBjb21wbGV0ZWQg
VVJMIGFzIHRoZSBtb2R1bGUga2V5LgorICAgIC8vCisgICAgLy8gRklYTUU6IFdlIG5lZWQgc2l0
ZSBwYWNrYWdpbmcgc3lzdGVtLiBCdXQgaXQncyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYyB5ZXQu
CisgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jYnJvd3Nlci1sb2FkZXIt
cHJvdG90eXBlLSU0MCU0MHJlc29sdmUKKyAgICBVUkwgY29tcGxldGVkVVJMOworCisgICAgLy8g
RklYTUU6IENoZWNrIG1fZG9jdW1lbnQgbGlmZXRpbWUuCisgICAgaWYgKHJlZmVycmVyVmFsdWUu
aXNTeW1ib2woKSkKKyAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVS
TChtb2R1bGVOYW1lKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHJlZmVycmVyVmFsdWUuaXNV
bmRlZmluZWQoKSkKKyAgICAgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxl
dGVVUkwobW9kdWxlTmFtZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKHJl
ZmVycmVyVmFsdWUuaXNTdHJpbmcoKSk7CisgICAgICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBK
U0M6OmpzQ2FzdDxKU0M6OkpTU3RyaW5nKj4ocmVmZXJyZXJWYWx1ZSktPnZhbHVlKGV4ZWMpOwor
ICAgICAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVO
YW1lLCBVUkwoUGFyc2VkVVJMU3RyaW5nLCByZWZlcnJlcikpOworICAgICAgICB9CisgICAgfQor
ICAgIGlmICghY29tcGxldGVkVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIGRlZmVycmVk
LT5yZWplY3QoZXhlYywgY3JlYXRlRE9NRXhjZXB0aW9uKGV4ZWMsIFNZTlRBWF9FUlIpKTsKKwor
ICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBqc1N0cmluZyhleGVjLCBjb21wbGV0
ZWRVUkwuc3RyaW5nKCkpKTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9h
ZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUpCit7CisgICAgLy8gRklYTUU6
IFdoZW4gaW1wbGVtZW50aW5nIHJlZmxlY3RpdmUgbW9kdWxlIGxvYWRlciBhbmQgbW9kdWxlcywg
d2Ugc2hvdWxkIHJlY2FzdCB0aGlzIGltcGxlbWVudGF0aW9uLgorICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworCisgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghbW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSwgIlN5bWJvbGljIG1vZHVsZSBrZXkgc2hvdWxk
IGJlIGFscmVhZHkgZnVsZmlsbGVkIHdpdGggdGhlIGlubGluZWQgcmVzb3VyY2UuIik7CisgICAg
QVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOworCisgICAgVVJMIGNvbXBsZXRlZFVS
TChQYXJzZWRVUkxTdHJpbmcsIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykp
OworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoY29tcGxldGVkVVJMLmlzVmFsaWQoKSwgIlRoZSBy
ZXNvbHZlIGhvb2sgc2hvdWxkIHByb2R1Y2UgdGhlIHZhbGlkIFVSTCBhcyBhIHN0cmluZy4iKTsK
KworICAgIG1fZmV0Y2hpbmdVUkxNYXAuYWRkKGNvbXBsZXRlZFVSTCwgTW9kdWxlRmV0Y2hlcjo6
Y3JlYXRlKEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgY29t
cGxldGVkVVJMLCBkZWZlcnJlZCwgbV9kb2N1bWVudCkpOworCisgICAgcmV0dXJuIGRlZmVycmVk
LT5wcm9taXNlKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1
bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVMb2FkZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNDRmYWM1OTRmNTUxOGM2NDllNGM4NGY1NWYwMzUzM2Q1MmFhMTQxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUxvYWRlci5oCkBAIC0wLDAgKzEsNjEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUxvYWRlcl9oCisjZGVmaW5lIE1vZHVsZUxvYWRl
cl9oCisKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5j
bHVkZSAiVVJMSGFzaC5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4K
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFzcyBNb2R1bGVM
b2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUxvYWRlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1vZHVsZUxvYWRlcihEb2N1
bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29s
dmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlIG1vZHVsZUtleSk7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNoTWFwPFVSTCwg
UmVmUHRyPE1vZHVsZUZldGNoZXI+PiBGZXRjaGluZ1VSTE1hcDsKKyAgICBEb2N1bWVudCYgbV9k
b2N1bWVudDsKKyAgICBGZXRjaGluZ1VSTE1hcCBtX2ZldGNoaW5nVVJMTWFwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA2NmJiZWNlMWQzNWUxYTQ3NjNiZjllYmViZjBm
MGMxMmNkYmVmMWQ3Li5iNTA3NGVlODg2MWE5NDg2MDU0Y2Y3ZjUyMzFkNDQ3MTc0ODA5MGU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNjEsNiArMTYxLDEwIEBAIGJv
b2wgU2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3VwcG9ydGVkKExlZ2FjeVR5cGVTdXBwb3J0
IHN1cHBvcnRMZWdhY3lUeXBlcykKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0gZWxz
ZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUodHlw
ZS5zdHJpcFdoaXRlU3BhY2UoKS5sb3dlcigpKSB8fCAoc3VwcG9ydExlZ2FjeVR5cGVzID09IEFs
bG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSAmJiBpc0xlZ2FjeVN1cHBvcnRlZEphdmFTY3Jp
cHRMYW5ndWFnZSh0eXBlKSkpCiAgICAgICAgIHJldHVybiB0cnVlOworLy8gI2lmIEVOQUJMRShF
UzZfTU9EVUxFUykKKyAgICBlbHNlIGlmICh0eXBlID09ICJtb2R1bGUiKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKy8vICNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjE2LDYgKzIy
MCwxOCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0
aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAgICAgICBtX2NoYXJhY3RlckVuY29k
aW5nID0gY2hhcnNldEF0dHJpYnV0ZVZhbHVlKCk7CiAgICAgZWxzZQogICAgICAgICBtX2NoYXJh
Y3RlckVuY29kaW5nID0gZG9jdW1lbnQuY2hhcnNldCgpOworICAgIAorICAgIGlmIChpc01vZHVs
ZVR5cGUoKSkgeworICAgICAgICAvLyBUaGUgYnJvd3NlciBtb2R1bGUgbG9hZGVyIGxvYWRzIHRo
ZSBtb2R1bGUgc291cmNlcy4KKyAgICAgICAgLy8gU2luY2UgdGhlIG1vZHVsZSBpbnZvbHZlcyBs
b2FkaW5nIG9mIHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBhbmQgdGhlIGRlcGVuZGVudCBtb2R1bGVz
IGRvZXMgbm90IGhhdmUgY29ycmVzcG9uZGluZyBzY3JpcHQgZWxlbWVudHMsCisgICAgICAgIC8v
IHRoZSBmdW5jdGlvbmFsaXR5IG9mIGxvYWRpbmcgbW9kdWxlcyBpcyBzZXBhcmF0ZWQgZnJvbSB0
aGUgc2NyaXB0IGVsZW1lbnQuCisgICAgICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgewor
ICAgICAgICAgICAgaWYgKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VB
dHRyaWJ1dGVWYWx1ZSgpKS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgZG9jdW1lbnQuZnJhbWUoKS0+c2NyaXB0KCkuc3RhcnRMb2FkaW5nTW9k
dWxlKHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KIAogICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkKICAgICAgICAgaWYg
KCFyZXF1ZXN0U2NyaXB0KHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmgKaW5kZXggYjdlNzNkMGRlZTgzZDMyNGU4NzJmN2JjNGMxYjkzM2RjOTZjMTEy
YS4uODE3M2M0NDk3NzZkOGEyMjhhZDU2YzdmNDhlZDI4MDVjYmI3Y2Y0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5oCkBAIC05Myw2ICs5Myw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQg
OiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNB
dHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1
dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRl
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBjb25zdCA9IDA7
CiAKICAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggNjk1MTE0NjY4MDQ5MTRiN2FiMjA5ZmJlOTYxYzViZjgzMmUxMDdh
Ny4uMTg4NGE3MTg5ODc4YmE0ZmEzMDJmM2MzNmIwNzJkOWRkODA2ZjE4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE2MSw2ICsxNjEsMTEgQEAgYm9v
bCBIVE1MU2NyaXB0RWxlbWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1
cm4gZmFzdEhhc0F0dHJpYnV0ZShzcmNBdHRyKTsKIH0KIAorYm9vbCBIVE1MU2NyaXB0RWxlbWVu
dDo6aXNNb2R1bGVUeXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFzdEdldEF0dHJpYnV0ZSh0
eXBlQXR0cikuc3RyaW5nKCkgPT0gIm1vZHVsZSI7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1l
bnQ6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKICAgICBBU1NFUlQoIWhhdmVGaXJlZExvYWRFdmVu
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBlMzljMTBj
YTVlODZjMzY2YTUzOGQxN2M2NjQ0YjNhMjRkMTM4MjA5Li43NTRiZmEyNTdkMmU3OGM0MzdiMWVk
MjhmMzJhYTBjZjE3M2E1MzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIEhUTUxTY3JpcHRFbGVtZW50IGZpbmFsIDogcHVi
bGljIEhUTUxFbGVtZW50LCBwdWJsaWMgU2NyaXB0RWxlbWVudCB7CiAgICAgdmlydHVhbCBib29s
IGFzeW5jQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBo
YXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNN
b2R1bGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hM
b2FkRXZlbnQoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQu
Y3BwCmluZGV4IDZmM2NhODNlODUzMjIyZGZkNWU4MDUyNzJmMGY1Yzk0NjQzNGQyMjQuLmQyMjg1
NTJhZTk2Mzk4MTQ3NjA5NDAxZDZmNDRhZWQ1NTY1OWFjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE1MSw2ICsxNTEsMTEgQEAgYm9vbCBTVkdTY3JpcHRF
bGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKK2Jvb2wgU1ZHU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgU1ZHU2NyaXB0RWxlbWVudDo6aGFzU291cmNlQXR0cmli
dXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzQXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZB
dHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4IDRjMWFhMDhlNmQy
ZmM4ZmY4ZGE5OWY0MjdjZWM3ZDRmMmM2NGUzMDUuLmMzM2JiZjhhNzM1YzliNzI4MjJmMjc2ZDZj
MjNhOTI4ZDZiZjgzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAt
NjIsNiArNjIsNyBAQCBjbGFzcyBTVkdTY3JpcHRFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0Vs
ZW1lbnQKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlIHsgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZDo6ZGlzcGF0Y2hMb2FkRXZlbnQodGhpcyk7IH0KIApkaWZmIC0tZ2l0
IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDFjYTM1OGUxNWYzMGU4YWFmM2NkZWYyNzg1
ZTdkNTFiODQ3MDU3MjAuLjE0MWZkZGIxOGJiNGVhZTM1YzYyOTE1OGI2YjQyN2U5YWE3ZTA5ZmIg
MTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxNS0wOS0xMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAg
ICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3JlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC54Y3dvcmtzcGFj
ZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWU6CisKKzIwMTUtMDkt
MTAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VT
Nl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFy
ZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lOgorCiAyMDE1LTA5LTA4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0IG1hbnVhbCB0
ZXN0IGFkZGVkIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzcwMzIxIHRvIGFu
IGF1dG9tYXRlZCB0ZXN0CmRpZmYgLS1naXQgYS9XZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRk
YXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lIGIvV2ViS2l0Lnhjd29ya3NwYWNlL3hj
c2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQppbmRleCAyMjNlODhiYmM0
MGU1OWEyZTNmNDc2NjIxY2QzMjBmY2Y1YmU1M2ZlLi4zOWFjYjNmY2VmMzgyNmNhYzY4MTI5NjJj
ZWQyMmVkYzk4ZjJjNTYwIDEwMDY0NAotLS0gYS9XZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRk
YXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lCQorKysgYi9XZWJLaXQueGN3b3Jrc3Bh
Y2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lCQpAQCAtMTYzLDcg
KzE2Myw4IEBACiAgICAgICBpZ25vcmVzUGVyc2lzdGVudFN0YXRlT25MYXVuY2ggPSAiWUVTIgog
ICAgICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAiWUVTIgogICAgICAgYWxsb3dMb2NhdGlv
blNpbXVsYXRpb24gPSAiWUVTIj4KLSAgICAgIDxCdWlsZGFibGVQcm9kdWN0UnVubmFibGU+Cisg
ICAgICA8QnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlCisgICAgICAgICBydW5uYWJsZURlYnVnZ2lu
Z01vZGUgPSAiMCI+CiAgICAgICAgICA8QnVpbGRhYmxlUmVmZXJlbmNlCiAgICAgICAgICAgICBC
dWlsZGFibGVJZGVudGlmaWVyID0gInByaW1hcnkiCiAgICAgICAgICAgICBCbHVlcHJpbnRJZGVu
dGlmaWVyID0gIjhEMTEwNzI2MDQ4NkNFQjgwMEU0NzA5MCIKQEAgLTE3Miw2ICsxNzMsMTIgQEAK
ICAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOlRvb2xzL01pbmlC
cm93c2VyL01pbmlCcm93c2VyLnhjb2RlcHJvaiI+CiAgICAgICAgICA8L0J1aWxkYWJsZVJlZmVy
ZW5jZT4KICAgICAgIDwvQnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgICAgPENvbW1hbmRM
aW5lQXJndW1lbnRzPgorICAgICAgICAgPENvbW1hbmRMaW5lQXJndW1lbnQKKyAgICAgICAgICAg
IGFyZ3VtZW50ID0gIi9Vc2Vycy95dXN1a2VzdXp1a2kvd29yay9tb2R1bGVzL2luZGV4Lmh0bWwi
CisgICAgICAgICAgICBpc0VuYWJsZWQgPSAiWUVTIj4KKyAgICAgICAgIDwvQ29tbWFuZExpbmVB
cmd1bWVudD4KKyAgICAgIDwvQ29tbWFuZExpbmVBcmd1bWVudHM+CiAgICAgICA8QWRkaXRpb25h
bE9wdGlvbnM+CiAgICAgICA8L0FkZGl0aW9uYWxPcHRpb25zPgogICAgPC9MYXVuY2hBY3Rpb24+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260987</attachid>
            <date>2015-09-10 21:03:54 -0700</date>
            <delta_ts>2015-09-14 15:21:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150910210347.patch</filename>
            <type>text/plain</type>
            <size>43027</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZTMyMTNhZjFiMzI1MDRhNzcxNDBhMzVlNjJiYWEzZmViYjUxOGE3Li4yNDZmYTFhYjIzMzU5YTUz
NWE3ZTQxMzFkZTAyOGYwZDBhOWQ3M2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNS0wOS0xMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpmb3JFYWNo
Q29kZUJsb2NrKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoZXh0cmFjdERpcmVjdG9y
eU5hbWUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHA6
CisKIDIwMTUtMDktMDggIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+
CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBERkc6OmRmZ0NvbnZlcnRKU1ZhbHVlVG9JbnQzMigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYWNlN2I0YzhkODliNjUyZjkxMzA3NjljMDYyZTA0NGE2YTY5NGUyNi4u
NTI4YmEzYTlkNzVmNjljNGFjYjhkMjdmMWJmNDIwMWI3NDhhZmJiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU0IEBACisyMDE1LTA5LTEwICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVncmF0ZSBFUzYgTW9kdWxlcyBpbnRvIFdlYkNv
cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODg5
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZS5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9y
dW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaDogQWRkZWQuCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1v
ZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpt
b2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OnN0YXJ0TG9hZGluZ01vZHVsZSk6
CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpyZXBvcnRBc3luY2hyb25vdXNFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0Q29udHJvbGxlcjo6c3RhcnRMb2FkaW5nTW9kdWxlSW5Xb3JsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpzdGFydExvYWRpbmdNb2R1bGUpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1vZHVsZUxvYWRlcik6CisgICAgICAgICogZG9t
L01vZHVsZUZldGNoZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNo
ZXI6Ok1vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBkb20vTW9kdWxlRmV0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vTW9k
dWxlTG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6Ok1v
ZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBkb20vTW9kdWxlTG9h
ZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6
CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBodG1sL0hU
TUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToKKyAgICAg
ICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorCiAyMDE1LTA5LTA4ICBCcmlhbiBCdXJnICA8
YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFNldmVyYWwgaW5zcGVjdG9yLXByb3RvY29sIHRl
c3RzIGFyZSBmbGFreSB3aXRoIEd1YXJkTWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggNjg4ZmQwZWQ5ZTI3ZWI5ZjkxMDNhN2JmYWUyMWNkN2E0
YTk1YjY0Yi4uZGU4YTFkMDA2NmU1ZGQ2ODVkNGM1ZjI1ZDYxZWIzM2EzY2Y5ODc2OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtMTI2OSw2ICsxMjY5
LDEzIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdm9pZCBTY3JpcHRFeGVj
dXRhYmxlOjpmb3JFYWNoQ29kZUJsb2NrKEZ1bmN0CiAgICAgICAgICAgICBjb2RlQmxvY2stPmZv
ckVhY2hSZWxhdGVkQ29kZUJsb2NrKGYpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBj
YXNlIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlVHlwZTogeworICAgICAgICBpZiAoQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSBqc0Nhc3Q8TW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqPih0aGlzKS0+bV9t
b2R1bGVQcm9ncmFtQ29kZUJsb2NrLmdldCgpKQorICAgICAgICAgICAgY29kZUJsb2NrLT5mb3JF
YWNoUmVsYXRlZENvZGVCbG9jayhzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvcikpOworICAg
ICAgICBicmVhazsKKyAgICB9CisKICAgICBkZWZhdWx0OgogICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggOGZhNDRiMTc3
YjczZjNhY2Y3OWE0MWEwY2M5NGYyNDljYzZiZjY4My4uMTViZDhiN2YzNDU0Y2NhZjI1ZTg3MzA2
ZDE0YjgzMDE1MGY0MTIxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTc3NSw3ICs3NzUsNyBA
QCBzdGF0aWMgYm9vbCBleHRyYWN0RGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIGFic29sdXRl
UGF0aFRvRmlsZSwgRGlyZWN0b3J5TmFtZQogICAgIGlmIChmaXJzdFNlcGFyYXRvclBvc2l0aW9u
ID09IGxhc3RTZXBhcmF0b3JQb3NpdGlvbikKICAgICAgICAgZGlyZWN0b3J5TmFtZS5xdWVyeU5h
bWUgPSBTdHJpbmdJbXBsOjplbXB0eSgpOwogICAgIGVsc2UKLSAgICAgICAgZGlyZWN0b3J5TmFt
ZS5xdWVyeU5hbWUgPSBhYnNvbHV0ZVBhdGhUb0ZpbGUuc3Vic3RyaW5nKGZpcnN0U2VwYXJhdG9y
UG9zaXRpb24gKyAxLCBsYXN0U2VwYXJhdG9yUG9zaXRpb24pOyAvLyBOb3QgaW5jbHVkZSB0aGUg
c2VwYXJhdG9yLgorICAgICAgICBkaXJlY3RvcnlOYW1lLnF1ZXJ5TmFtZSA9IGFic29sdXRlUGF0
aFRvRmlsZS5zdWJzdHJpbmcoZmlyc3RTZXBhcmF0b3JQb3NpdGlvbiArIDEsIGxhc3RTZXBhcmF0
b3JQb3NpdGlvbiAtIGZpcnN0U2VwYXJhdG9yUG9zaXRpb24gLSAxKTsgLy8gTm90IGluY2x1ZGUg
dGhlIHNlcGFyYXRvci4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNw
cAppbmRleCA0ZTY3YThjN2Q5MTc0OGQ5NWNiODk2NGYwYzQ4ODQ0OWVhZjA3NmQxLi5mZWZkZWNk
ZjAzYjY0ZTZkZjNiNDEwMGQ2MWI2YTQ0N2NmYWYyZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNw
cApAQCAtMzgsNyArMzgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY29uc3QgQ2xhc3NJbmZv
IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OnNfaW5mbyA9IHsgIkpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQiLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQpIH07Citjb25zdCBDbGFzc0luZm8gSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZDo6c19pbmZvID0geyAiSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCkgfTsKIAogSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjU1N2EyZjIxZWNm
NmIyYWVjYWQ2N2UzNTNlMTk2NmU0Nzk0ZTgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCkBAIC0w
LDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZV9oCisjZGVm
aW5lIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQu
aCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzA4NmRkMzlhZmY5ZTEwNGJkNWE2ZmY3YWU3
OTI1NDYzODY5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaApAQCAtMCwwICsxLDQg
QEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjZGVm
aW5lIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWRfaAorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUy
YTg5NTdiNTk4N2M5YmQ1MjJhMWEyNWJkZjg2ODRmNTljOTM2NGQuLjgwNDQ0ZDAyNTdjNWYxNWM1
MTVkZDg2NWE4MGNmMDg5YWJmNTA5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYyOTYsNiArNjI5NiwxMCBAQAogCQlFMUZG
OEY2ODE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjYxODA3NDYwODAw
MTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTFGRjhGNkMxODBE
QjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZBMTgwREI1QkUwMDEzMjY3
NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgKi87IH07CiAJCUUxRkY4RjZEMTgwREI1
QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8q
IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi87IH07CisJCUUzQjEwRkEyMUJBMDA0QkMwMDkz
REUzQSAvKiBNb2R1bGVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTNCMTBGQTAxQkEwMDRCQzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5j
cHAgKi87IH07CisJCUUzQjEwRkEzMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjEwRkExMUJB
MDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0IxMEZBNjFCQTBGMjlDMDA5M0RFM0EgLyogTW9k
dWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFM0IxMEZBNDFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5jcHAgKi87IH07
CisJCUUzQjEwRkE3MUJBMEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IxMEZBNTFCQTBGMjlDMDA5
M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUU0MDFDMjc1MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRl
cmF0b3JBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNDAxQzI3NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUU0MjRBMzlFMTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlEMTMzMERGMDEw
MENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCAqLzsgfTsKIAkJRTQyNEEzQTAxMzMwREYx
RTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlGMTMzMERGMUUwMENGNkRDOSAvKiBMZWdh
Y3lUaWxlR3JpZFRpbGUubW0gKi87IH07CkBAIC0xNDAxMiw2ICsxNDAxNiwxMCBAQAogCQlFMUZG
OEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyog
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVn
aXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
UmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNCMTBGQTAxQkEwMDRC
QzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNb2R1bGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFM0IxMEZBMTFCQTAwNEJDMDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFM0IxMEZBNDFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVGZXRjaGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNCMTBGQTUxQkEwRjI5QzAwOTNERTNBIC8q
IE1vZHVsZUZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxl
RmV0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDAxQzI3NDE3Q0U1M0VD
MDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBDb2xvckRhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JEYXRhLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1IC8q
IENTU1Byb3BlcnR5TmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ1NTUHJvcGVydHlOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MzM3Miw2ICsyMzM4MCwxMCBAQAogCQkJCTQxQkY3MDBBMEZFODZGNDkwMDVFOERFQyAvKiBNZXNz
YWdlUG9ydENoYW5uZWwuaCAqLywKIAkJCQlDQjhDRjAxNTFBOTM0QjQzMDAwRDUxMEIgLyogTWlj
cm9UYXNrLmNwcCAqLywKIAkJCQk1M0I4OTVBRDE5REM3QzM3MDA5Q0FBOTMgLyogTWljcm9UYXNr
LmggKi8sCisJCQkJRTNCMTBGQTQxQkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZldGNoZXIuY3Bw
ICovLAorCQkJCUUzQjEwRkE1MUJBMEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmggKi8s
CisJCQkJRTNCMTBGQTAxQkEwMDRCQzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5jcHAgKi8sCisJ
CQkJRTNCMTBGQTExQkEwMDRCQzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5oICovLAogCQkJCTg1
MDMxQjJGMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIz
MDBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5oICovLAogCQkJCTE0MUI5NEU1MDlFQzQy
MjMwMDBFOTQxMyAvKiBNb3VzZUV2ZW50LmlkbCAqLywKQEAgLTI0MjU1LDYgKzI0MjY3LDcgQEAK
IAkJCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxMDZEN0JFMThCREI3NkYwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY3MEIwQzJFREEwMDVBMkIxRCAvKiBD
b250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzQjEwRkEzMUJBMDA0
QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2MDI3Q0FE
MEIxQ0JGQzAwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdBREU3MjI2MTBDQkJCOUIwMDZCM0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRDUwMDJGQzFCNTZENzk5MDAyMEFBRjcgLyogUGF0aFV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNjcyNCw2ICsyNjczNyw3IEBACiAJCQkJMkQ5M0FFRTMxOURG
NTY0MTAwMkE4NkMzIC8qIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTc1NkIyQ0UxMThCNzEwMTYwMEZFQ0ZBQSAvKiBTZXNzaW9uSUQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzMzA5RTEwMDk5RTY0OTIwMDU2RTU4MSAvKiBTZXROb2RlQXR0cmlidXRlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNCMTBGQTcxQkEwRjI5QzAwOTNERTNBIC8qIE1v
ZHVsZUZldGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUI4REJEQjRDMTMwQjBGOEEwMEY1Q0RC
MSAvKiBTZXRTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTk0RjA4
MjQ1RTU5MDAxRTlBQkMgLyogU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzRUY3NjZC
MTY1MzBBNjEwMDRDQkU0OSAvKiBTZXR0aW5nc01hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
ODc3NCw2ICsyODc4OCw3IEBACiAJCQkJQzU4NUE2NjIxMUQ0RkFDNTAwNEMzRTRCIC8qIElEQkJp
bmRpbmdVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFENzE5QkYxODExMDZFMDAw
MTZEQzUxIC8qIElEQkN1cnNvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTY3MzBBMzE4MkQ4
RkJCMDAzRkFGNUMgLyogSURCQ3Vyc29yQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
M0IxMEZBNjFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MTAxOTQ0NDE4MzZGN0U0MDA5MjU1MjMgLyogSURCQ3Vyc29yQmFja2VuZE9wZXJh
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFENzE5QzMxODExMDZFMDAwMTZEQzUxIC8q
IElEQkN1cnNvcldpdGhWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQ3MTlDNjE4MTEw
NkUwMDAxNkRDNTEgLyogSURCRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY4Nyw2
ICsyOTcwMiw3IEBACiAJCQkJRDNBOTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQzQUExMEYzMTIzQTk4QUEwMDkyMTUyQiAvKiBN
ZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDOTA4NDNDRjFCMThFNDdE
MDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
M0IxMEZBMjFCQTAwNEJDMDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNFRUZDRDc5MTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNEQkVBRUFDMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNl
bGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM5MDI3RjQxMUIxRDBB
RDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBhMjkwZGRjOWU1
ODFhY2Q2MzQzMDE3MDBiYWY4MjdjYTFhNGVmZDAyLi5hMzhmZDU0OGM2OTgwYzMzOGE5ZWM1NDg1
MDdkYmMyNjBhY2NiYmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAKQEAgLTMxLDExICszMSwxMyBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93
Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIk1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKKyNpbmNsdWRlIDxy
dW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KICNpbmNsdWRlIDxydW50aW1lL01p
Y3JvdGFzay5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTU2LDcgKzU4LDcg
QEAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0
KiB0aGlzT2JqZWN0LCBFeGVjU3RhdGUqIGUKIAogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93
QmFzZTo6c19pbmZvID0geyAiV2luZG93IiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNET01XaW5kb3dCYXNlKSB9OwogCi1jb25zdCBHbG9iYWxP
YmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUgPSB7ICZzaG91bGRBbGxvd0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBv
cnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVu
dGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRC
ZWZvcmVUaW1lb3V0LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Citjb25z
dCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgPSB7ICZzaG91bGRBbGxvd0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGlu
ZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZh
U2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1
cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRl
ckZldGNoLCBudWxscHRyLCBudWxscHRyIH07CiAKIEpTRE9NV2luZG93QmFzZTo6SlNET01XaW5k
b3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8RE9NV2luZG93
PiB3aW5kb3csIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKQogICAgIDogSlNET01HbG9iYWxPYmpl
Y3Qodm0sIHN0cnVjdHVyZSwgJnNoZWxsLT53b3JsZCgpLCAmc19nbG9iYWxPYmplY3RNZXRob2RU
YWJsZSkKQEAgLTI3OSw0ICsyODEsMjMgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmZpcmVGcmFt
ZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRvdykKICAgICB9CiB9
CiAKKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2Fk
ZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcmVmZXJyZXIp
Cit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01X
aW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0g
dGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+
bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVOYW1lLCBy
ZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9
IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVj
dCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRlZmluZWQoKSk7Cit9
CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSkKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRo
aXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwor
ICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCkuZG9jdW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+ZmV0Y2goZ2xvYmFs
T2JqZWN0LCBleGVjLCBtb2R1bGVLZXkpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShl
eGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpz
VW5kZWZpbmVkKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDVlZDM4NjJjMTQxMTg3YzAw
NmI2ODhkYjc5Nzc5NGIzNjk4MTA1NjQuLjIxOTNiNjZjM2Y0OTA4NDBlYmUxZWZhZjQ1Y2MxM2Nj
OWRiZDJmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oCkBAIC03OCw2ICs3OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTQzo6
V2F0Y2hwb2ludFNldCBtX3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHM7CiAKICAgICBwcml2YXRlOgor
ICAgICAgICAvLyBNb2R1bGUgTG9hZGVyIGhvb2tzLgorICAgICAgICBzdGF0aWMgSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0
YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgICAgIFJl
ZlB0cjxET01XaW5kb3c+IG1faW1wbDsKICAgICAgICAgSlNET01XaW5kb3dTaGVsbCogbV9zaGVs
bDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJl
YWRFeGVjU3RhdGUuaAppbmRleCAwOWU3ZTViNjAyNjg3OWI1MzM1YTFmZTFlZjcxYzQ0NzQzMGJm
Y2Q0Li4xMDQ1MzM4ZTFmNDNjNmI4NzM5ZmExYWU0MjhkZDlkZDM3NDQxOWVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaApAQCAt
NzQsNiArNzQsMTYgQEAgY2xhc3MgSlNNYWluVGhyZWFkRXhlY1N0YXRlIHsKICAgICAgICAgdGFz
ay5ydW4oZXhlYyk7CiAgICAgfQogCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IHN0YXJ0TG9hZGluZ01vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBt
b2R1bGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6ZXZhbHVhdGVNb2R1bGUoZXhl
YywgbW9kdWxlTmFtZSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIHN0YXJ0TG9hZGluZ01vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpT
b3VyY2VDb2RlJiBzb3VyY2VDb2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6ZXZhbHVh
dGVNb2R1bGUoZXhlYywgc291cmNlQ29kZSk7CisgICAgfQorCiAgICAgc3RhdGljIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSBpbnN0cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBKU0M6OkNhbGxUeXBlLCBjb25zdCBKU0M6OkNhbGxEYXRhJik7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwCmluZGV4IDRiM2IwOTcyYmU3N2YzYzc2NTk1ZjE0MGUyNmE3NDhmZjhlYTQ1MGMuLjhhNDJk
YWI0MTdkY2M2NjFkOTVhZWM3N2EyMWU5NzBkZTdjNzQ5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01NCw3ICs1NCw5IEBACiAj
aW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHByb2ZpbGVy
L1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNp
bmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9K
U0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+
CiAKQEAgLTE4MCw2ICsxODIsNTIgQEAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmMKICAgICByZXR1
cm4gZXZhbHVhdGVJbldvcmxkKHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsK
IH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlcG9ydEFzeW5jaHJvbm91c0V4Y2VwdGlvbihK
U0M6OkV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICAvLyBUT0RPOiBVc2Ugc29tZSBtYXJrZXIuCisg
ICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXBvcnRF
eGNlcHRpb24oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIG51bGxwdHIpOworICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBT
Y3JpcHRDb250cm9sbGVyOjpzdGFydExvYWRpbmdNb2R1bGVJbldvcmxkKGNvbnN0IFN0cmluZyYg
bW9kdWxlTmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIg
bG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93
U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xv
YmFsRXhlYygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU01haW5UaHJl
YWRFeGVjU3RhdGU6OnN0YXJ0TG9hZGluZ01vZHVsZShleGVjLCBtb2R1bGVOYW1lKTsKKworICAg
IEpTRnVuY3Rpb24qIGVycm9ySGFuZGxlciA9IEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgp
LCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCByZXBvcnRBc3luY2hyb25vdXNFeGNlcHRp
b24pOworCisgICAgcmV0dXJuIHByb21pc2UtPnRoZW4oZXhlYywgbnVsbHB0ciwgZXJyb3JIYW5k
bGVyKTsKK30KKworSlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdENvbnRyb2xsZXI6OnN0YXJ0TG9h
ZGluZ01vZHVsZShjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgcmV0dXJuIHN0YXJ0
TG9hZGluZ01vZHVsZUluV29ybGQobW9kdWxlTmFtZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkp
OworfQorCitKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0Q29udHJvbGxlcjo6c3RhcnRMb2FkaW5n
TW9kdWxlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBET01XcmFw
cGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOwor
CisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAg
RXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBK
U0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6c3RhcnRM
b2FkaW5nTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCkpOworCisgICAgSlNG
dW5jdGlvbiogZXJyb3JIYW5kbGVyID0gSlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNo
ZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIHJlcG9ydEFzeW5jaHJvbm91c0V4Y2VwdGlvbik7
CisKKyAgICByZXR1cm4gcHJvbWlzZS0+dGhlbihleGVjLCBudWxscHRyLCBlcnJvckhhbmRsZXIp
OworfQorCitKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0Q29udHJvbGxlcjo6c3RhcnRMb2FkaW5n
TW9kdWxlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgcmV0dXJu
IHN0YXJ0TG9hZGluZ01vZHVsZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRocmVhZE5vcm1hbFdv
cmxkKCkpOworfQorCiBSZWY8RE9NV3JhcHBlcldvcmxkPiBTY3JpcHRDb250cm9sbGVyOjpjcmVh
dGVXb3JsZCgpCiB7CiAgICAgcmV0dXJuIERPTVdyYXBwZXJXb3JsZDo6Y3JlYXRlKEpTRE9NV2lu
ZG93Ojpjb21tb25WTSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuaAppbmRleCAwN2M1M2I3YzhlZGZiNGUyOGY1Y2ExM2FhMmM0ZTA1NTk0ZWY1MTIy
Li5hOTE2ZjQzMTY3MTkwMjk2NjhlYTVlNWU3NjNkMTkwM2E1YWUwZDg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCw4IEBA
IGNsYXNzIFNjcmlwdFZhbHVlOwogCiBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2Jh
bE9iamVjdDsKKyAgICBjbGFzcyBKU0ludGVybmFsUHJvbWlzZTsKKwogICAgIGNsYXNzIEV4ZWNT
dGF0ZTsKIAogICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CkBAIC0xMTUsNiArMTE3LDEyIEBAIGNs
YXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1
YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSBldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3Js
ZCYpOwogCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogc3RhcnRMb2FkaW5nTW9kdWxlSW5X
b3JsZChjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYpOworICAgIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIHN0YXJ0TG9hZGluZ01vZHVsZShjb25zdCBTdHJpbmcmIG1v
ZHVsZU5hbWUpOworCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogc3RhcnRMb2FkaW5nTW9k
dWxlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7Cisg
ICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogc3RhcnRMb2FkaW5nTW9kdWxlKGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUmKTsKKwogICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0
aW9uKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuYWJsZUV2YWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCmluZGV4IGMwOTQxZDI1MTkxNDE0NTgyMGI1YmRjNTMwNThkNjhjZDkzZjM0YWIuLmY2YWI3
ZGNhMTBiNWVhNzMxYmU0NmExODhlZmE3NmU2ZjVlNDkzYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtMTAyLDYgKzEwMiw3IEBACiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2lu
Y2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIK
KyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHRzLmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmVzdGlu
Z0xldmVsSW5jcmVtZW50ZXIuaCIKQEAgLTQ2MSw2ICs0NjIsNyBAQCBEb2N1bWVudDo6RG9jdW1l
bnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2Vz
LCB1bnNpZwogICAgICwgbV9zdGFydFRpbWUoc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93
KCkpCiAgICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkKGZhbHNlKQogICAgICwgbV9z
Y3JpcHRSdW5uZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKKyAgICAs
IG1fbW9kdWxlTG9hZGVyKHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlTG9hZGVyPigqdGhpcykpCiAg
ICAgLCBtX3htbFZlcnNpb24oQVNDSUlMaXRlcmFsKCIxLjAiKSkKICAgICAsIG1feG1sU3RhbmRh
bG9uZShTdGFuZGFsb25lVW5zcGVjaWZpZWQpCiAgICAgLCBtX2hhc1hNTERlY2xhcmF0aW9uKGZh
bHNlKQpAQCAtNjAyLDYgKzYwNCw3IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAgICAgICBt
X2RvbVdpbmRvdy0+cmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JQYWdlQ2FjaGUoKTsKIAogICAgIG1f
c2NyaXB0UnVubmVyID0gbnVsbHB0cjsKKyAgICBtX21vZHVsZUxvYWRlciA9IG51bGxwdHI7CiAK
ICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDllZjQ4YzkzMzgwNzNhZTAyOWMyZWEzN2M5Mzc1ZDVjZWI5OWE2ZDQuLmUyMjMzYjY0YmNiMGRk
OGI1YzE1NTUxNTJmZDY0Y2NjZjIxNjYwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjcs
NiArMTI3LDcgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJh
Y2tUYXJnZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlN
YXRjaGVyOworY2xhc3MgTW9kdWxlTG9hZGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0NvbGxlY3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpA
QCAtOTIwLDYgKzkyMSw3IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUs
IHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgRG9jdW1lbnQm
IHRvcERvY3VtZW50KCkgY29uc3Q7CiAgICAgCiAgICAgU2NyaXB0UnVubmVyKiBzY3JpcHRSdW5u
ZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5nZXQoKTsgfQorICAgIE1vZHVsZUxvYWRlciog
bW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gbV9tb2R1bGVMb2FkZXIuZ2V0KCk7IH0KIAogICAgIEhU
TUxTY3JpcHRFbGVtZW50KiBjdXJyZW50U2NyaXB0KCkgY29uc3QgeyByZXR1cm4gIW1fY3VycmVu
dFNjcmlwdFN0YWNrLmlzRW1wdHkoKSA/IG1fY3VycmVudFNjcmlwdFN0YWNrLmxhc3QoKS5nZXQo
KSA6IDA7IH0KICAgICB2b2lkIHB1c2hDdXJyZW50U2NyaXB0KFBhc3NSZWZQdHI8SFRNTFNjcmlw
dEVsZW1lbnQ+KTsKQEAgLTE1MDEsNiArMTUwMyw3IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGlj
IENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25D
CiAgICAgYm9vbCBtX292ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkOwogICAgIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxI
VE1MU2NyaXB0RWxlbWVudD4+IG1fY3VycmVudFNjcmlwdFN0YWNrOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TW9kdWxlRmV0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRiYWZlYjk1NWE3MTZiOTE4MzRmYzBlNWVk
MWJmMzE1NjYxMDY3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1
bGVGZXRjaGVyLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoZXIuaCIKKworI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiRE9N
V3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiTW9k
dWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVk
ZSAiU2NyaXB0U291cmNlQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUZl
dGNoZXI6Ok1vZHVsZUZldGNoZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJy
ZWQsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAg
LCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmpl
Y3QtPnZtKCksIGdsb2JhbE9iamVjdCkKKyAgICAsIG1fZGVmZXJyZWQoZ2xvYmFsT2JqZWN0LT52
bSgpLCBkZWZlcnJlZCkKK3sKKyAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CisgICAg
b3B0aW9ucy5zZXRDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uKENvbnRlbnRTZWN1cml0
eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOworCisgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHNvdXJjZVVSTCksIG9wdGlvbnMpOworCisg
ICAgLy8gRklYTUU6IEhhbmRsZSBjcm9zcy1vcmlnaW4gb3B0aW9ucy4KKyAgICByZXF1ZXN0LnNl
dEluaXRpYXRvcihBdG9taWNTdHJpbmcoc291cmNlVVJMLnN0cmluZygpKSk7CisKKyAgICBtX2Nh
Y2hlZFNjcmlwdCA9IGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFNjcmlw
dChyZXF1ZXN0KTsKKyAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworfQorCitS
ZWY8TW9kdWxlRmV0Y2hlcj4gTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTW9kdWxlRmV0Y2hlcihnbG9iYWxPYmplY3QsIHNvdXJjZVVSTCwgZGVm
ZXJyZWQsIGRvY3VtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlRmV0Y2hlcjo6bm90aWZ5RmluaXNo
ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIEFTU0VSVF9VTlVTRUQocmVzb3Vy
Y2UsIHJlc291cmNlID09IG1fY2FjaGVkU2NyaXB0KTsKKyAgICBpZiAoIW1fY2FjaGVkU2NyaXB0
KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9jYWNoZWRTY3JpcHQpOworCisgICAg
SlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9iamVjdC0+dm0oKSk7CisgICAgSlNDOjpF
eGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworICAgIGlmICht
X2NhY2hlZFNjcmlwdC0+ZXJyb3JPY2N1cnJlZCgpKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxk
IGJlIGhhbmRsZWQgYnkgdGhlIGRlZmF1bHQgY2FjaGUgbG9hZGVyLgorICAgICAgICAvLyBTbywg
d2UgZG9uJ3QgdGhyb3cgYW55IG1lYW5pbmdmdWwgZXJyb3IgaGVyZS4KKyAgICAgICAgbV9kZWZl
cnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6anNVbmRlZmluZWQoKSk7CisgICAgfSBlbHNlIGlmICgh
bV9jYWNoZWRTY3JpcHQtPndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgU2NyaXB0U291cmNlQ29k
ZSBzb3VyY2VDb2RlKG1fY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICAgICAgbV9kZWZlcnJlZC0+
cmVzb2x2ZShleGVjLCBKU0M6OmpzU3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkpKTsK
KyAgICB9CisgICAgbV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICBtX2Nh
Y2hlZFNjcmlwdCA9IG51bGxwdHI7CisKKyAgICBtX2RvY3VtZW50Lm1vZHVsZUxvYWRlcigpLT5u
b3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAvLyBBZnRlciBNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUgZGVzdHJveWVkLgorfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L01vZHVsZUZldGNoZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmIxMDRlMWY5NWE1NzkzMzdkY2JhYmUzNjk1
MzMxN2Q2NDM3Y2ZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVs
ZUZldGNoZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVG
ZXRjaGVyX2gKKyNkZWZpbmUgTW9kdWxlRmV0Y2hlcl9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVk
ZSAiVVJMLmgiCisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgSlNET01HbG9iYWxPYmpl
Y3Q7CisKK2NsYXNzIE1vZHVsZUZldGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVGZXRj
aGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoTW9kdWxlRmV0Y2hlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8TW9kdWxlRmV0Y2hlcj4gY3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERv
Y3VtZW50Jik7CisKK3ByaXZhdGU6CisgICAgTW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVj
dCosIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQq
LCBEb2N1bWVudCYpOworCisgICAgLy8gRm9yIENhY2hlZFJlc291cmNlQ2xpZW50LgorICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOworCisg
ICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgVVJMIG1fc291cmNlVVJMOworICAgIEpTQzo6
U3Ryb25nPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKKyAgICBKU0M6OlN0cm9u
ZzxKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ+IG1fZGVmZXJyZWQ7CisgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdCB7IH07Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1bGVGZXRjaGVyX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL01vZHVsZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJjNWU5ZTNlNTc4YzQwZDdjN2Ex
YzNjY2VhZDk3MzEwZTc3M2RjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb2R1bGVMb2FkZXIuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgorCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCisjaW5jbHVkZSA8cnVudGltZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU1N0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVy
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7Cit9CisK
K0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFs
dWUgbW9kdWxlTmFtZVZhbHVlLCBKU0M6OkpTVmFsdWUgcmVmZXJyZXJWYWx1ZSkKK3sKKyAgICBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFs
UHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAobW9k
dWxlTmFtZVZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2
ZShleGVjLCBtb2R1bGVOYW1lVmFsdWUpOworCisgICAgLy8gRklYTUU6IFdlIG5vdyBhc3N1bWUg
dGhhdCBtb2R1bGUgbmFtZSBpcyBlaXRoZXIgc3ltYm9sIG9yIHN0cmluZy4KKyAgICAvLyBXaGVu
IGV4cG9zaW5nIHRoZSByZWZsZWN0aW9uIHRvIHRoZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVz
LCB3ZSBuZWVkIHRvIHJlY2FzdCB0aGlzIHBhcnQuCisgICAgQVNTRVJUKG1vZHVsZU5hbWVWYWx1
ZS5pc1N0cmluZygpKTsKKyAgICBTdHJpbmcgbW9kdWxlTmFtZSA9IEpTQzo6anNDYXN0PEpTQzo6
SlNTdHJpbmcqPihtb2R1bGVOYW1lVmFsdWUpLT52YWx1ZShleGVjKTsKKworICAgIC8vIE5vdywg
d2UgY29uc2lkZXIgdGhlIGdpdmVuIG1vZHVsZU5hbWUgYXMgdGhlIHNhbWUgdG8gdGhlIHNyYz0i
Li4uIiBpbiB0aGUgc2NyaXB0IHRhZy4KKyAgICAvLyBXZSB1c2UgdGhlIGNvbXBsZXRlZCBVUkwg
YXMgdGhlIG1vZHVsZSBrZXkuCisgICAgLy8KKyAgICAvLyBGSVhNRTogV2UgbmVlZCBzaXRlIHBh
Y2thZ2luZyBzeXN0ZW0uIEJ1dCBpdCdzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjIHlldC4KKyAg
ICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWxvYWRlci1wcm90
b3R5cGUtJTQwJTQwcmVzb2x2ZQorICAgIFVSTCBjb21wbGV0ZWRVUkw7CisKKyAgICAvLyBGSVhN
RTogQ2hlY2sgbV9kb2N1bWVudCBsaWZldGltZS4KKyAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1N5
bWJvbCgpKQorICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1v
ZHVsZU5hbWUpOworICAgIGVsc2UgeworICAgICAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1VuZGVm
aW5lZCgpKQorICAgICAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVS
TChtb2R1bGVOYW1lKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQocmVmZXJy
ZXJWYWx1ZS5pc1N0cmluZygpKTsKKyAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IEpTQzo6
anNDYXN0PEpTQzo6SlNTdHJpbmcqPihyZWZlcnJlclZhbHVlKS0+dmFsdWUoZXhlYyk7CisgICAg
ICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUs
IFVSTChQYXJzZWRVUkxTdHJpbmcsIHJlZmVycmVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAg
aWYgKCFjb21wbGV0ZWRVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJl
amVjdChleGVjLCBjcmVhdGVET01FeGNlcHRpb24oZXhlYywgU1lOVEFYX0VSUikpOworCisgICAg
cmV0dXJuIGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIGpzU3RyaW5nKGV4ZWMsIGNvbXBsZXRlZFVS
TC5zdHJpbmcoKSkpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6
OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogV2hl
biBpbXBsZW1lbnRpbmcgcmVmbGVjdGl2ZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBz
aG91bGQgcmVjYXN0IHRoaXMgaW1wbGVtZW50YXRpb24uCisgICAgSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFt
b2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpLCAiU3ltYm9saWMgbW9kdWxlIGtleSBzaG91bGQgYmUg
YWxyZWFkeSBmdWxmaWxsZWQgd2l0aCB0aGUgaW5saW5lZCByZXNvdXJjZS4iKTsKKyAgICBBU1NF
UlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisKKyAgICBVUkwgY29tcGxldGVkVVJMKFBh
cnNlZFVSTFN0cmluZywgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7Cisg
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRShjb21wbGV0ZWRVUkwuaXNWYWxpZCgpLCAiVGhlIHJlc29s
dmUgaG9vayBzaG91bGQgcHJvZHVjZSB0aGUgdmFsaWQgVVJMIGFzIGEgc3RyaW5nLiIpOworCisg
ICAgbV9mZXRjaGluZ1NldC5hZGQoTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTQzo6anNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgY29tcGxldGVkVVJMLCBkZWZlcnJlZCwg
bV9kb2N1bWVudCkpOworCisgICAgcmV0dXJuIGRlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK3Zv
aWQgTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKiBmZXRjaGVyKQor
eworICAgIG1fZmV0Y2hpbmdTZXQucmVtb3ZlKGZldGNoZXIpOworfQorCisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb2R1bGVMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDBkMmM2OTRkMDc2OTkyNGZhNGExZDAzOTE4
MjExMzQ0OGRjYjg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVs
ZUxvYWRlci5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUxv
YWRlcl9oCisjZGVmaW5lIE1vZHVsZUxvYWRlcl9oCisKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVy
LmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSAiVVJMSGFzaC5oIgorI2luY2x1ZGUgPHJ1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworCitjbGFzcyBNb2R1bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IGV4cGxpY2l0IE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJl
cik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgCisgICAg
dm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKik7CisKK3ByaXZhdGU6CisgICAgRG9j
dW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgSGFzaFNldDxSZWZQdHI8TW9kdWxlRmV0Y2hlcj4+IG1f
ZmV0Y2hpbmdTZXQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBN
b2R1bGVMb2FkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY2YmJl
Y2UxZDM1ZTFhNDc2M2JmOWViZWJmMGYwYzEyY2RiZWYxZDcuLmY4OGMyYjllMjIxYThjMjBiNGRk
YTdmMmFkNjYxNTYwYzE4M2RjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAK
QEAgLTE2MSw2ICsxNjEsMTAgQEAgYm9vbCBTY3JpcHRFbGVtZW50Ojppc1NjcmlwdFR5cGVTdXBw
b3J0ZWQoTGVnYWN5VHlwZVN1cHBvcnQgc3VwcG9ydExlZ2FjeVR5cGVzKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRl
ZEphdmFTY3JpcHRNSU1FVHlwZSh0eXBlLnN0cmlwV2hpdGVTcGFjZSgpLmxvd2VyKCkpIHx8IChz
dXBwb3J0TGVnYWN5VHlwZXMgPT0gQWxsb3dMZWdhY3lUeXBlSW5UeXBlQXR0cmlidXRlICYmIGlz
TGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1YWdlKHR5cGUpKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CisvLyAjaWYgRU5BQkxFKEVTNl9NT0RVTEVTKQorICAgIGVsc2UgaWYgKHR5cGUgPT0g
Im1vZHVsZSIpCisgICAgICAgIHJldHVybiB0cnVlOworLy8gI2VuZGlmCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCkBAIC0yMTcsNiArMjIxLDIyIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFy
ZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAg
ICAgZWxzZQogICAgICAgICBtX2NoYXJhY3RlckVuY29kaW5nID0gZG9jdW1lbnQuY2hhcnNldCgp
OwogCisgICAgaWYgKGlzTW9kdWxlVHlwZSgpKSB7CisgICAgICAgIC8vIFRoZSBicm93c2VyIG1v
ZHVsZSBsb2FkZXIgbG9hZHMgdGhlIG1vZHVsZSBzb3VyY2VzLgorICAgICAgICAvLyBTaW5jZSB0
aGUgbW9kdWxlIGludm9sdmVzIGxvYWRpbmcgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzIGFuZCB0
aGUgZGVwZW5kZW50IG1vZHVsZXMgZG9lcyBub3QgaGF2ZSBjb3JyZXNwb25kaW5nIHNjcmlwdCBl
bGVtZW50cywKKyAgICAgICAgLy8gdGhlIGZ1bmN0aW9uYWxpdHkgb2YgbG9hZGluZyBtb2R1bGVz
IGlzIHNlcGFyYXRlZCBmcm9tIHRoZSBzY3JpcHQgZWxlbWVudC4KKyAgICAgICAgaWYgKGhhc1Nv
dXJjZUF0dHJpYnV0ZSgpKSB7CisgICAgICAgICAgICBpZiAoc3RyaXBMZWFkaW5nQW5kVHJhaWxp
bmdIVE1MU3BhY2VzKHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBkb2N1bWVudC5mcmFtZSgpLT5zY3Jp
cHQoKS5zdGFydExvYWRpbmdNb2R1bGUoc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAvLyBSZXNldCBsaW5lIG51bWJl
cmluZyBmb3IgbmVzdGVkIHdyaXRlcy4KKyAgICAgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0g
ZG9jdW1lbnQuaXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlvbigpIDogc2NyaXB0U3Rh
cnRQb3NpdGlvbjsKKyAgICAgICAgZG9jdW1lbnQuZnJhbWUoKS0+c2NyaXB0KCkuc3RhcnRMb2Fk
aW5nTW9kdWxlKFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0Q29udGVudCgpLCBkb2N1bWVudC51cmwo
KSwgcG9zaXRpb24pKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgaWYgKGhh
c1NvdXJjZUF0dHJpYnV0ZSgpKQogICAgICAgICBpZiAoIXJlcXVlc3RTY3JpcHQoc291cmNlQXR0
cmlidXRlVmFsdWUoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuaAppbmRleCBiN2U3M2QwZGVlODNkMzI0ZTg3MmY3YmM0YzFiOTMzZGM5NmMx
MTJhLi44MTczYzQ0OTc3NmQ4YTIyOGFkNTZjN2Y0OGVkMjgwNWNiYjdjZjQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTkzLDYgKzkzLDcgQEAgY2xhc3MgU2NyaXB0RWxlbWVu
dCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIHZpcnR1YWwgYm9vbCBhc3lu
Y0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJp
YnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1
dGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0ID0g
MDsKIAogICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmNwcAppbmRleCA2OTUxMTQ2NjgwNDkxNGI3YWIyMDlmYmU5NjFjNWJmODMyZTEw
N2E3Li4xODg0YTcxODk4NzhiYTRmYTMwMmYzYzM2YjA3MmQ5ZGQ4MDZmMTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtMTYxLDYgKzE2MSwxMSBAQCBi
b29sIEhUTUxTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdAogICAgIHJl
dHVybiBmYXN0SGFzQXR0cmlidXRlKHNyY0F0dHIpOwogfQogCitib29sIEhUTUxTY3JpcHRFbGVt
ZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBmYXN0R2V0QXR0cmlidXRl
KHR5cGVBdHRyKS5zdHJpbmcoKSA9PSAibW9kdWxlIjsKK30KKwogdm9pZCBIVE1MU2NyaXB0RWxl
bWVudDo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogewogICAgIEFTU0VSVCghaGF2ZUZpcmVkTG9hZEV2
ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGUzOWMx
MGNhNWU4NmMzNjZhNTM4ZDE3YzY2NDRiM2EyNGQxMzgyMDkuLjc1NGJmYTI1N2QyZTc4YzQzN2Ix
ZWQyOGYzMmFhMGNmMTczYTUzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKICAgICB2aXJ0dWFsIGJv
b2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBp
c01vZHVsZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aExvYWRFdmVudCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5jcHAKaW5kZXggNmYzY2E4M2U4NTMyMjJkZmQ1ZTgwNTI3MmYwZjVjOTQ2NDM0ZDIyNC4uZDIy
ODU1MmFlOTYzOTgxNDc2MDk0MDFkNmY0NGFlZDU1NjU5YWNjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtMTUxLDYgKzE1MSwxMSBAQCBib29sIFNWR1Njcmlw
dEVsZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorYm9vbCBTVkdTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworICAg
IHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRy
aWJ1dGUoKSBjb25zdAogewogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJl
ZkF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggNGMxYWEwOGU2
ZDJmYzhmZjhkYTk5ZjQyN2NlYzdkNGYyYzY0ZTMwNS4uYzMzYmJmOGE3MzVjOWI3MjgyMmYyNzZk
NmMyM2E5MjhkNmJmODMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBA
IC02Miw2ICs2Miw3IEBAIGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZH
RWxlbWVudAogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGUgeyBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261138</attachid>
            <date>2015-09-14 15:21:22 -0700</date>
            <delta_ts>2015-09-15 03:00:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150914152112.patch</filename>
            <type>text/plain</type>
            <size>86863</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
Y2M4Mzc5MGIwNGQxZGNiNDNjZmVkYmIxNTRjZjdjYmRhMmY1Y2E5Li5kMGU5NGUxMWNjNDcxZWNl
ZTA0MjJkNzFlNTIxZDk4ZmQ4MmI1ZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNS0wOS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ1aWx0
aW5zL01vZHVsZUxvYWRlck9iamVjdC5qczoKKyAgICAgICAgKG1vZHVsZUV2YWx1YXRpb24pOgor
ICAgICAgICAobG9hZE1vZHVsZUdyYXBoKToKKyAgICAgICAgKHByZXBhcmVNb2R1bGVHcmFwaCk6
CisgICAgICAgIChsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaCk6CisgICAgICAgIChsb2FkTW9k
dWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoZnVuY3Rpb25Mb2Fk
TW9kdWxlKToKKyAgICAgICAgKHJ1bldpdGhTY3JpcHRzKToKKyAgICAgICAgKiBydW50aW1lL0Nv
bXBsZXRpb24uY3BwOgorICAgICAgICAoSlNDOjppZGVudGlmaWVyVG9KU1ZhbHVlKToKKyAgICAg
ICAgKEpTQzo6bG9hZE1vZHVsZUdyYXBoKToKKyAgICAgICAgKEpTQzo6cHJlcGFyZU1vZHVsZUdy
YXBoKToKKyAgICAgICAgKEpTQzo6bGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGgpOgorICAgICAg
ICAoSlNDOjpldmFsdWF0ZU1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Db21w
bGV0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVS
ZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpKU01vZHVsZVJlY29yZDo6ZXZhbHVhdGUpOgorICAg
ICAgICAoSlNDOjpKU01vZHVsZVJlY29yZDo6ZXhlY3V0ZSk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9KU01vZHVsZVJlY29yZC5oOgorICAgICAgICAqIHJ1bnRpbWUvTW9kdWxlTG9hZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TW9kdWxlTG9hZGVyT2JqZWN0Ojpsb2FkTW9kdWxl
R3JhcGgpOgorICAgICAgICAoSlNDOjpNb2R1bGVMb2FkZXJPYmplY3Q6OnByZXBhcmVNb2R1bGVH
cmFwaCk6CisgICAgICAgIChKU0M6Ok1vZHVsZUxvYWRlck9iamVjdDo6bGlua0FuZEV2YWx1YXRl
TW9kdWxlR3JhcGgpOgorICAgICAgICAoSlNDOjpNb2R1bGVMb2FkZXJPYmplY3Q6OmV2YWx1YXRl
KToKKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyT2JqZWN0RXZhbHVhdGUpOgorICAgICAgICAo
SlNDOjpNb2R1bGVMb2FkZXJPYmplY3Q6OmxvYWRNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvTW9kdWxlTG9hZGVyT2JqZWN0Lmg6CisKIDIwMTUtMDktMTAgIFN1a29sc2FrIFNh
a3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHN3aXRj
aCBzdGF0ZW1lbnRzIGluIFdlYkFzc2VtYmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRkNWYzNjc5YjhlZWI4
OWM3MzNlZjJkODVhYWNmOTVjOTg1YjNhNi4uNjkwNDE1M2MyNDZhMzg0ZTE1OTNjZTU2ZDMzODU2
ZTEyODA2ZTEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE1LTA5LTE0ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVn
cmF0ZSBFUzYgTW9kdWxlcyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICog
Rm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQuaDogQWRkZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU01vZHVs
ZVJlY29yZC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNNYWluVGhy
ZWFkRXhlY1N0YXRlOjpwcmVwYXJlTW9kdWxlR3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6SlNN
YWluVGhyZWFkRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
Q29udHJvbGxlcjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6cmVwb3J0QXN5bmNocm9u
b3VzRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OnByZXBh
cmVNb2R1bGVHcmFwaEluV29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6cHJlcGFyZU1vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUdyYXBoSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29u
dHJvbGxlcjo6aW5pdE1vZHVsZUdyYXBoKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIGRvbS9Nb2R1bGVGZXRjaGVyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNb2R1bGVGZXRjaGVyOjpydW4pOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hl
cjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGRvbS9Nb2R1bGVGZXRjaGVyLmg6IEFkZGVk
LgorICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdy
YXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmV2YWx1
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpjcmVhdGUpOgorICAgICAgICAq
IGRvbS9Nb2R1bGVHcmFwaC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBo
OjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjptb2R1bGVLZXkpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OndlYWtQdHIpOgorICAgICAgICAqIGRvbS9N
b2R1bGVMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6
TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6cmVzb2x2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9h
ZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6Om5v
dGlmeU1vZHVsZUdyYXBoUmVhZHkpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjp0
aW1lckZpcmVkKToKKyAgICAgICAgKiBkb20vTW9kdWxlTG9hZGVyLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpN
b2R1bGVMb2FkZXI6OlBlbmRpbmdNb2R1bGVHcmFwaDo6Y2xlYXIpOgorICAgICAgICAqIGRvbS9T
Y3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmlzU2Ny
aXB0VHlwZVN1cHBvcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpwcmVw
YXJlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnN0b3BMb2FkUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpwcmVwYXJlTW9kdWxlR3Jh
cGgpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6
aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2Ny
aXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVu
dC5oOgorCiAyMDE1LTA5LTEwICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+
CiAKICAgICAgICAgQVg6IE1hdmVyaWNrczogVGV4dCBjdXJzb3IgZG9lcyBub3QgbW92ZSBhbG9u
ZyB3aXRoIFZvaWNlT3ZlciBjdXJzb3IgZm9yIHRleHQgZmllbGRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyT2JqZWN0LmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVsZUxvYWRlck9iamVjdC5qcwppbmRleCAxNjA2
MmU2ZDc0ZGEzYjc2ZTgxYjU4NWZlZTFjZWZjMzAwY2M1MTM1Li4yZTA4NmIwNGU2MDc4MDhhMDk3
YzcwNTcxNzgxNDA4N2YwMGQ1MDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvTW9kdWxlTG9hZGVyT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9Nb2R1bGVMb2FkZXJPYmplY3QuanMKQEAgLTQ4MywyMiArNDgzLDEwIEBAIGZ1
bmN0aW9uIG1vZHVsZUV2YWx1YXRpb24obW9kdWxlUmVjb3JkKQogICAgICAgICB2YXIgcmVxdWly
ZWRNb2R1bGVSZWNvcmQgPSBwYWlyLnZhbHVlOwogICAgICAgICB0aGlzLm1vZHVsZUV2YWx1YXRp
b24ocmVxdWlyZWRNb2R1bGVSZWNvcmQpOwogICAgIH0KLSAgICB0aGlzLmV2YWx1YXRlKG1vZHVs
ZVJlY29yZCk7CisgICAgdGhpcy5ldmFsdWF0ZShlbnRyeS5rZXksIG1vZHVsZVJlY29yZCk7CiB9
CiAKLWZ1bmN0aW9uIGxvYWRNb2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIpCi17Ci0gICAgInVz
ZSBzdHJpY3QiOwotCi0gICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgLy8gTG9hZGVyLnJlc29s
dmUgaG9vayBwb2ludC4KLSAgICAvLyByZXNvbHZlOiBtb2R1bGVOYW1lID0+IFByb21pc2UobW9k
dWxlS2V5KQotICAgIC8vIFRha2UgdGhlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1
ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgbG9jYXRpb24uCi0gICAgLy8gRm9yIGV4YW1w
bGUsIHRha2UgdGhlICJqcXVlcnkiIGFuZCByZXR1cm4gdGhlIFVSTCBmb3IgdGhlIHJlc291cmNl
LgotICAgIHJldHVybiB0aGlzLnJlc29sdmUobW9kdWxlTmFtZSwgcmVmZXJyZXIpLnRoZW4oZnVu
Y3Rpb24gKGtleSkgewotICAgICAgICByZXR1cm4gbG9hZGVyLnJlcXVlc3RSZWFkeShrZXkpOwot
ICAgIH0pOwotfQorLy8gQVBJcyB0byBjb250cm9sIHRoZSBtb2R1bGUgbG9hZGVyLgogCiBmdW5j
dGlvbiBwcm92aWRlKGtleSwgc3RhZ2UsIHZhbHVlKQogewpAQCAtNTM1LDMgKzUyMyw0MCBAQCBm
dW5jdGlvbiBwcm92aWRlKGtleSwgc3RhZ2UsIHZhbHVlKQogCiAgICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoIlJlcXVlc3RlZCBtb2R1bGUgaXMgYWxyZWFkeSByZWFkeSB0byBiZSBleGVjdXRlZC4i
KTsKIH0KKworZnVuY3Rpb24gbG9hZE1vZHVsZUdyYXBoKG1vZHVsZU5hbWUsIHJlZmVycmVyKQor
eworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIHZhciBsb2FkZXIgPSB0aGlzOworICAgIC8vIExv
YWRlci5yZXNvbHZlIGhvb2sgcG9pbnQuCisgICAgLy8gcmVzb2x2ZTogbW9kdWxlTmFtZSA9PiBQ
cm9taXNlKG1vZHVsZUtleSkKKyAgICAvLyBUYWtlIHRoZSBuYW1lIGFuZCByZXNvbHZlIGl0IHRv
IHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIGxvY2F0aW9uLgorICAgIC8v
IEZvciBleGFtcGxlLCB0YWtlIHRoZSAianF1ZXJ5IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRo
ZSByZXNvdXJjZS4KKyAgICByZXR1cm4gdGhpcy5yZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVy
KS50aGVuKGZ1bmN0aW9uIChrZXkpIHsKKyAgICAgICAgcmV0dXJuIGxvYWRlci5yZXF1ZXN0UmVh
ZHkoa2V5KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gcHJlcGFyZU1vZHVsZUdyYXBoKG1vZHVs
ZU5hbWUsIHJlZmVycmVyKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIHZhciBsb2FkZXIg
PSB0aGlzOworICAgIC8vIExvYWRlci5yZXNvbHZlIGhvb2sgcG9pbnQuCisgICAgLy8gcmVzb2x2
ZTogbW9kdWxlTmFtZSA9PiBQcm9taXNlKG1vZHVsZUtleSkKKyAgICAvLyBUYWtlIHRoZSBuYW1l
IGFuZCByZXNvbHZlIGl0IHRvIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNl
IGxvY2F0aW9uLgorICAgIC8vIEZvciBleGFtcGxlLCB0YWtlIHRoZSAianF1ZXJ5IiBhbmQgcmV0
dXJuIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJjZS4KKyAgICByZXR1cm4gdGhpcy5yZXNvbHZlKG1v
ZHVsZU5hbWUsIHJlZmVycmVyKS50aGVuKGZ1bmN0aW9uIChrZXkpIHsKKyAgICAgICAgcmV0dXJu
IGxvYWRlci5yZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5KTsKKyAgICB9KS50aGVuKGZ1bmN0aW9u
IChlbnRyeSkgeworICAgICAgICByZXR1cm4gZW50cnkua2V5OworICAgIH0pOworfQorCitmdW5j
dGlvbiBsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaChrZXkpCit7CisgICAgInVzZSBzdHJpY3Qi
OworCisgICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlYWR5KGtleSk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCmluZGV4IDIzNjlhOWRmNTM2Y2VhMzVjNTFhYWUxYmQ2YzY3ODViMGVkZTkyYmQuLjg5OGY4
ODdmMDBjNzMyNTY2MjU1ZjUzY2YxMTNjNDJjYTA5NDEwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CkBAIC03MDksNyArNzA5LDcgQEAgY2xhc3MgR2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFs
T2JqZWN0IHsKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBHbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsg
Imdsb2JhbCIsICZKU0dsb2JhbE9iamVjdDo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEdsb2JhbE9iamVjdCkgfTsKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEds
b2JhbE9iamVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zy
b20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJ
bnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAwLCAmc2hvdWxkSW50ZXJy
dXB0U2NyaXB0QmVmb3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2Fk
ZXJGZXRjaCwgbnVsbHB0ciwgbnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUgR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNj
ZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNo
b3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsIDAsICZzaG91bGRJ
bnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVs
ZUxvYWRlckZldGNoLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07CiAKIAogR2xvYmFsT2Jq
ZWN0OjpHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTE0NzMs
NyArMTQ3Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkTW9k
dWxlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWZldGNoU2NyaXB0RnJvbUxvY2FsRmlsZVN5
c3RlbShmaWxlTmFtZSwgc2NyaXB0KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShl
eGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0
ZXJhbCgiQ291bGQgbm90IG9wZW4gZmlsZS4iKSkpKTsKIAotICAgIEpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gZXZhbHVhdGVNb2R1bGUoZXhlYywgZmlsZU5hbWUpOworICAgIEpTSW50ZXJu
YWxQcm9taXNlKiBwcm9taXNlID0gbG9hZE1vZHVsZUdyYXBoKGV4ZWMsIGZpbGVOYW1lKTsKICAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTE2NDYsNyArMTY0Niw3IEBAIHN0YXRpYyBib29sIHJ1
bldpdGhTY3JpcHRzKEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8U2Ny
aXB0PiYgc2NyCiAgICAgICAgIGlmIChzY3JpcHRzW2ldLmlzRmlsZSkgewogICAgICAgICAgICAg
ZmlsZU5hbWUgPSBzY3JpcHRzW2ldLmFyZ3VtZW50OwogICAgICAgICAgICAgaWYgKG1vZHVsZSkK
LSAgICAgICAgICAgICAgICBwcm9taXNlID0gZXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LT5n
bG9iYWxFeGVjKCksIGZpbGVOYW1lKTsKKyAgICAgICAgICAgICAgICBwcm9taXNlID0gbG9hZE1v
ZHVsZUdyYXBoKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBmaWxlTmFtZSk7CiAgICAgICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoIWZldGNoU2NyaXB0RnJvbUxvY2FsRmls
ZVN5c3RlbShmaWxlTmFtZSwgc2NyaXB0QnVmZmVyKSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOyAvLyBmYWlsIGVhcmx5IHNvIHdlIGNhbiBjYXRjaCBtaXNzaW5nIGZpbGVzCkBA
IC0xNjYyLDcgKzE2NjIsNyBAQCBzdGF0aWMgYm9vbCBydW5XaXRoU2NyaXB0cyhHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFNjcmlwdD4mIHNjcgogCiAgICAgICAgIGlm
IChtb2R1bGUpIHsKICAgICAgICAgICAgIGlmICghcHJvbWlzZSkKLSAgICAgICAgICAgICAgICBw
cm9taXNlID0gZXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGpzY1Nv
dXJjZShzY3JpcHRCdWZmZXIsIGZpbGVOYW1lKSk7CisgICAgICAgICAgICAgICAgcHJvbWlzZSA9
IGxvYWRNb2R1bGVHcmFwaChnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwganNjU291cmNlKHNj
cmlwdEJ1ZmZlciwgZmlsZU5hbWUpKTsKICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFs
RXhlYygpLT5jbGVhckV4Y2VwdGlvbigpOwogICAgICAgICAgICAgcHJvbWlzZS0+dGhlbihnbG9i
YWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgbnVsbHB0ciwgZXJyb3JIYW5kbGVyKTsKICAgICAgICAg
ICAgIGdsb2JhbE9iamVjdC0+dm0oKS5kcmFpbk1pY3JvdGFza3MoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKaW5kZXggYjVmNjIzYWNkYTUyMzA1MTE4
N2QwZGI1Njg4NTIxMjYyZDg2MjQ4Yy4uYmZjZjZlMjRkZmRjYmU2NTg1Y2I3MjY3NGEwMDVmZDk4
OTkyYTBiYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxl
dGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5j
cHAKQEAgLTExMywyMyArMTEzLDc3IEBAIEpTVmFsdWUgZXZhbHVhdGUoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTVmFsdWUgdGhpc1ZhbHVlLCBOCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBldmFsdWF0ZU1vZHVs
ZShjb25zdCBKU0xvY2tIb2xkZXImLCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK3N0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBpZGVudGlmaWVyVG9KU1ZhbHVlKFZNJiB2bSwgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2Fk
ZXIoKS0+bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgaWYgKGlk
ZW50aWZpZXIuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIFN5bWJvbDo6Y3JlYXRlKHZtLCBz
dGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKmlkZW50aWZpZXIuaW1wbCgpKSk7CisgICAgcmV0dXJu
IGpzU3RyaW5nKCZ2bSwgaWRlbnRpZmllci5pbXBsKCkpOwogfQogCi1zdGF0aWMgSlNJbnRlcm5h
bFByb21pc2UqIGV2YWx1YXRlTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYgbG9jaywgRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVy
JiBtb2R1bGVOYW1lKQorc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlR3JhcGgo
Y29uc3QgSlNMb2NrSG9sZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCiB7Ci0gICAg
SlNWYWx1ZSBtb2R1bGVOYW1lVmFsdWU7Ci0gICAgaWYgKG1vZHVsZU5hbWUuaXNTeW1ib2woKSkK
LSAgICAgICAgbW9kdWxlTmFtZVZhbHVlID0gU3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgc3Rh
dGljX2Nhc3Q8U3ltYm9sSW1wbCY+KCptb2R1bGVOYW1lLmltcGwoKSkpOwotICAgIGVsc2UKLSAg
ICAgICAgbW9kdWxlTmFtZVZhbHVlID0ganNTdHJpbmcoJmV4ZWMtPnZtKCksIG1vZHVsZU5hbWUu
aW1wbCgpKTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2FkZXIoKS0+bG9hZE1v
ZHVsZUdyYXBoKGV4ZWMsIG1vZHVsZU5hbWUsIHJlZmVycmVyKTsKK30KKworc3RhdGljIEpTSW50
ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlR3JhcGgoY29uc3QgSlNMb2NrSG9sZGVyJiBsb2NrLCBF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50
aWZpZXImIG1vZHVsZU5hbWUpCit7CisgICAgcmV0dXJuIGxvYWRNb2R1bGVHcmFwaChsb2NrLCBl
eGVjLCBnbG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxl
TmFtZSksIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVs
ZUdyYXBoKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQoreworICAg
IEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOworICAgIFJFTEVBU0VfQVNTRVJUKGV4ZWMtPnZtKCku
YXRvbWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5nVGFibGUo
KSk7CisgICAgUkVMRUFTRV9BU1NFUlQoIWV4ZWMtPnZtKCkuaXNDb2xsZWN0b3JCdXN5KCkpOwor
CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPnZtRW50cnlHbG9iYWxP
YmplY3QoKTsKKworICAgIC8vIEdlbmVyYXRlIHRoZSB1bmlxdWUga2V5IGZvciB0aGUgc291cmNl
LXByb3ZpZGVkIG1vZHVsZS4KKyAgICBQcml2YXRlTmFtZSBwcml2YXRlTmFtZShQcml2YXRlTmFt
ZTo6RGVzY3JpcHRpb24sICJFbnRyeVBvaW50TW9kdWxlIik7CisgICAgU3ltYm9sKiBrZXkgPSBT
eW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqcHJpdmF0ZU5hbWUudWlkKCkpOworCisgICAgLy8g
SW5zZXJ0IHRoZSBnaXZlbiBzb3VyY2UgY29kZSB0byB0aGUgTW9kdWxlTG9hZGVyIHJlZ2lzdHJ5
IGFzIHRoZSBmZXRjaGVkIHJlZ2lzdHJ5IGVudHJ5LgorICAgIGdsb2JhbE9iamVjdC0+bW9kdWxl
TG9hZGVyKCktPnByb3ZpZGUoZXhlYywga2V5LCBNb2R1bGVMb2FkZXJPYmplY3Q6OlN0YXR1czo6
RmV0Y2gsIHNvdXJjZS50b1N0cmluZygpKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
IHsKKyAgICAgICAgSlNWYWx1ZSBleGNlcHRpb24gPSBleGVjLT5leGNlcHRpb24oKS0+dmFsdWUo
KTsKKyAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZGVmZXJyZWQtPnJlamVjdChleGVjLCBl
eGNlcHRpb24pOworICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gbG9hZE1vZHVsZUdyYXBoKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5
LCBqc1VuZGVmaW5lZCgpKTsKK30KKworSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGVHcmFw
aChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZU5hbWUpCit7CisgICAg
SlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5h
dG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgp
KTsKKyAgICBSRUxFQVNFX0FTU0VSVCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1c3koKSk7CisK
KyAgICByZXR1cm4gbG9hZE1vZHVsZUdyYXBoKGxvY2ssIGV4ZWMsIGV4ZWMtPnZtRW50cnlHbG9i
YWxPYmplY3QoKSwgbW9kdWxlTmFtZSk7Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9k
dWxlR3JhcGgoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7Cisg
ICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0o
KS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJs
ZSgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1c3koKSk7
CisKKyAgICByZXR1cm4gbG9hZE1vZHVsZUdyYXBoKGxvY2ssIGV4ZWMsIGV4ZWMtPnZtRW50cnlH
bG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBtb2R1bGVOYW1lKSk7
Cit9CisKK3N0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogcHJlcGFyZU1vZHVsZUdyYXBoKGNvbnN0
IEpTTG9ja0hvbGRlciYsIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyKQoreworICAgIHJldHVy
biBnbG9iYWxPYmplY3QtPm1vZHVsZUxvYWRlcigpLT5wcmVwYXJlTW9kdWxlR3JhcGgoZXhlYywg
bW9kdWxlTmFtZSwgcmVmZXJyZXIpOworfQogCi0gICAgcmV0dXJuIGV2YWx1YXRlTW9kdWxlKGxv
Y2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwgbW9kdWxlTmFtZVZhbHVlLCBqc1VuZGVmaW5lZCgpKTsK
K3N0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogcHJlcGFyZU1vZHVsZUdyYXBoKGNvbnN0IEpTTG9j
a0hvbGRlciYgbG9jaywgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1lKQoreworICAgIHJldHVybiBwcmVwYXJl
TW9kdWxlR3JhcGgobG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVl
KGV4ZWMtPnZtKCksIG1vZHVsZU5hbWUpLCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNJbnRlcm5h
bFByb21pc2UqIGV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlKQorSlNJbnRlcm5hbFByb21pc2UqIHByZXBhcmVNb2R1bGVHcmFwaChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKIHsKICAgICBKU0xvY2tIb2xkZXIg
bG9jayhleGVjKTsKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT52bSgpLmF0b21pY1N0cmluZ1Rh
YmxlKCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOwpAQCAtMTUxLDI1
ICsyMDUsMjggQEAgSlNJbnRlcm5hbFByb21pc2UqIGV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogICAgICAgICByZXR1cm4gZGVmZXJyZWQt
PnByb21pc2UoKTsKICAgICB9CiAKLSAgICByZXR1cm4gZXZhbHVhdGVNb2R1bGUobG9jaywgZXhl
YywgZ2xvYmFsT2JqZWN0LCBrZXksIGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBwcmVwYXJl
TW9kdWxlR3JhcGgobG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBrZXksIGpzVW5kZWZpbmVkKCkp
OwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogZXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1lKQorSlNJbnRlcm5hbFByb21pc2UqIHByZXBh
cmVNb2R1bGVHcmFwaChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkK
IHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBSRUxFQVNFX0FTU0VSVChleGVj
LT52bSgpLmF0b21pY1N0cmluZ1RhYmxlKCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmlu
Z1RhYmxlKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFleGVjLT52bSgpLmlzQ29sbGVjdG9yQnVz
eSgpKTsKIAotICAgIHJldHVybiBldmFsdWF0ZU1vZHVsZShsb2NrLCBleGVjLCBleGVjLT52bUVu
dHJ5R2xvYmFsT2JqZWN0KCksIG1vZHVsZU5hbWUpOworICAgIHJldHVybiBwcmVwYXJlTW9kdWxl
R3JhcGgobG9jaywgZXhlYywgZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKGV4ZWMsIG1vZHVsZU5hbWUpKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2Uq
IGV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1l
KQorCitKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGgoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXkpCiB7CiAgICAgSlNMb2NrSG9s
ZGVyIGxvY2soZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJp
bmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKICAgICBS
RUxFQVNFX0FTU0VSVCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1c3koKSk7CiAKLSAgICByZXR1
cm4gZXZhbHVhdGVNb2R1bGUobG9jaywgZXhlYywgZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgp
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIG1vZHVsZU5hbWUpKTsKKyAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpOworCisg
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+bW9kdWxlTG9hZGVyKCktPmxpbmtBbmRFdmFsdWF0ZU1v
ZHVsZUdyYXBoKGV4ZWMsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxlS2V5
KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tcGxldGlvbi5oCmluZGV4IGNiMDkxZmYxNjRiMjI4ZGMwMmMyMjNkZDFlZDhjZDY0ODI5
MTVhNjUuLjIxZmQ4ZGEwMDlkMGE0YjdhMDg2OGU3MWRlZWE0Y2FlOTUzYjU0OWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmgKQEAgLTQ1LDkgKzQ1LDE4IEBA
IGlubGluZSBKU1ZhbHVlIGV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlQ29kZSwgSlNWYWx1ZSB0CiAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiB1bnVzZWQ7
CiAgICAgcmV0dXJuIGV2YWx1YXRlKGV4ZWMsIHNvdXJjZUNvZGUsIHRoaXNWYWx1ZSwgdW51c2Vk
KTsKIH0KLUpTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBldmFsdWF0ZU1vZHVs
ZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJik7Ci1KU19FWFBPUlRfUFJJVkFURSBKU0lu
dGVybmFsUHJvbWlzZSogZXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgbW9kdWxlTmFtZSk7Ci1KU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlzZSogZXZh
bHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKKworLy8g
TG9hZCB0aGUgbW9kdWxlIHNvdXJjZSBhbmQgZXZhbHVhdGUgaXQuCitKU19FWFBPUlRfUFJJVkFU
RSBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZUdyYXBoKEV4ZWNTdGF0ZSosIGNvbnN0IFNv
dXJjZUNvZGUmKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9k
dWxlR3JhcGgoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlTmFtZSk7CitKU19F
WFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZUdyYXBoKEV4ZWNTdGF0
ZSosIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisKKy8vIEZldGNoIHRoZSBtb2R1bGUgc291
cmNlLCBhbmQgaW5zdGFudGlhdGUgdGhlIG1vZHVsZSByZWNvcmQuCitKU19FWFBPUlRfUFJJVkFU
RSBKU0ludGVybmFsUHJvbWlzZSogcHJlcGFyZU1vZHVsZUdyYXBoKEV4ZWNTdGF0ZSosIGNvbnN0
IFNvdXJjZUNvZGUmKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBwcmVw
YXJlTW9kdWxlR3JhcGgoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKKwor
Ly8gTGluayBhbmQgZXZhbHVhdGUgdGhlIGFscmVhZHkgbGlua2VkIG1vZHVsZS4KK0pTX0VYUE9S
VF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaChF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXkpOwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCmluZGV4IDI5OTEwNjQ5ODI4N2RmMjg5MDY1MThkM2RhMjcxMjJmYjhjN2MxY2MuLmRm
MjYzMjVmYzU1MTViZTU2ZTkwNTM5MGIxNGZmZTU2YjJkNDIwZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTE2NSw3ICsxNjUs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTR2xvYmFsT2JqZWN0Ojpz
X2luZm8gPSB7ICJHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCAmZ2xvYmFsT2JqZWN0VGFi
bGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNHbG9iYWxPYmplY3QpIH07CiAKLWNvbnN0IEdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRh
YmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNS
aWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1l
RmxhZ3MsIG51bGxwdHIsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Citjb25zdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSBKU0dsb2JhbE9iamVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFs
bG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUlu
Zm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCBudWxs
cHRyLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCiAvKiBTb3VyY2UgZm9yIEpTR2xvYmFs
T2JqZWN0Lmx1dC5oCiBAYmVnaW4gZ2xvYmFsT2JqZWN0VGFibGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGRjYjNhMDg3Zjc5OWJmNmJk
MmM0YTY2MzY4NjA4NDMxZjFiYjRkZWQuLjU0NjFjZWI1Mjg2ZGQ2ZDJkMmExYWQzNGM4YjgxZjVl
YzA2YTdhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaApAQCAtMTcwLDYgKzE3MCw5IEBAIHN0cnVjdCBHbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSB7CiAKICAgICB0eXBlZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlckluc3Rh
bnRpYXRlUHRyKShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTVmFsdWUsIEpTVmFsdWUp
OwogICAgIE1vZHVsZUxvYWRlckluc3RhbnRpYXRlUHRyIG1vZHVsZUxvYWRlckluc3RhbnRpYXRl
OworCisgICAgdHlwZWRlZiBKU1ZhbHVlICgqTW9kdWxlTG9hZGVyRXZhbHVhdGVQdHIpKEpTR2xv
YmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CisgICAgTW9kdWxlTG9h
ZGVyRXZhbHVhdGVQdHIgbW9kdWxlTG9hZGVyRXZhbHVhdGU7CiB9OwogCiBjbGFzcyBKU0dsb2Jh
bE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmNwcAppbmRleCBmYjM2NDI4
ZjJhN2E3ZmNmMDFmZDJlNWUzMzMyMmVjMjVkN2NhMmU0Li45YjgyMzRhZjY3Y2M1ZmE0NWZlMTRj
NzhlYmEwZWE2YWU3YjMyMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU01vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNNb2R1bGVSZWNvcmQuY3BwCkBAIC02MDksNyArNjA5LDcgQEAgdm9pZCBKU01vZHVsZVJl
Y29yZDo6aW5zdGFudGlhdGVEZWNsYXJhdGlvbnMoRXhlY1N0YXRlKiBleGVjLCBNb2R1bGVQcm9n
cmFtRXhlY3UKICAgICBtX21vZHVsZUVudmlyb25tZW50LnNldCh2bSwgdGhpcywgbW9kdWxlRW52
aXJvbm1lbnQpOwogfQogCi1KU1ZhbHVlIEpTTW9kdWxlUmVjb3JkOjpleGVjdXRlKEV4ZWNTdGF0
ZSogZXhlYykKK0pTVmFsdWUgSlNNb2R1bGVSZWNvcmQ6OmV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBpZiAoIW1fbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNNb2R1bGVSZWNvcmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9k
dWxlUmVjb3JkLmgKaW5kZXggNzBhMTkwZjgyYzY3OGQxODYxZjUwNmVkMWQ4MGYyMjViY2M5MGU1
ZS4uZTkzYzgwYWE5ZTk0ZTkxNjk5MjA5ZTEwODMzMTE3MDFjYTg0ZDY3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5oCkBAIC0xMjMsNyArMTIz
LDcgQEAgY2xhc3MgSlNNb2R1bGVSZWNvcmQgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3Qg
ewogICAgIH0KIAogICAgIHZvaWQgbGluayhFeGVjU3RhdGUqKTsKLSAgICBKU1ZhbHVlIGV4ZWN1
dGUoRXhlY1N0YXRlKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBldmFsdWF0ZShF
eGVjU3RhdGUqKTsKIAogICAgIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiBtb2R1bGVQcm9ncmFt
RXhlY3V0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuZ2V0
KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxl
TG9hZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxv
YWRlck9iamVjdC5jcHAKaW5kZXggNmU2ZjlmOWE2ZGE2MTgxMmUzYzIxYWQ0MzY2ZmQ4N2I3Y2Qx
NDdkOC4uODM1MWM0YjVkZjhjZjI3OTUzODE0ODA1ZDNlN2RiMzJkMzZlOTZlMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJPYmplY3QuY3Bw
CkBAIC04NSw4ICs4NSwxMCBAQCBjb25zdCBDbGFzc0luZm8gTW9kdWxlTG9hZGVyT2JqZWN0Ojpz
X2luZm8gPSB7ICJNb2R1bGVMb2FkZXIiLCAmQmFzZTo6c19pbmZvLCAmbQogICAgIG1vZHVsZURl
Y2xhcmF0aW9uSW5zdGFudGlhdGlvbiBtb2R1bGVMb2FkZXJPYmplY3RNb2R1bGVEZWNsYXJhdGlv
bkluc3RhbnRpYXRpb24gRG9udEVudW18RnVuY3Rpb24gMgogICAgIG1vZHVsZUV2YWx1YXRpb24g
ICAgICAgICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RNb2R1bGVFdmFsdWF0aW9uICAgICAgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gMgogICAgIGV2YWx1YXRlICAgICAgICAgICAgICAgICAg
ICAgICBtb2R1bGVMb2FkZXJPYmplY3RFdmFsdWF0ZSAgICAgICAgICAgICAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gMgotICAgIGxvYWRNb2R1bGUgICAgICAgICAgICAgICAgICAgICBtb2R1
bGVMb2FkZXJPYmplY3RMb2FkTW9kdWxlICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gMgogICAgIHByb3ZpZGUgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVMb2FkZXJP
YmplY3RQcm92aWRlICAgICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMwor
ICAgIGxvYWRNb2R1bGVHcmFwaCAgICAgICAgICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RMb2Fk
TW9kdWxlR3JhcGggICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgorICAgIHByZXBh
cmVNb2R1bGVHcmFwaCAgICAgICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RQcmVwYXJlTW9kdWxl
R3JhcGggICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgorICAgIGxpbmtBbmRFdmFsdWF0
ZU1vZHVsZUdyYXBoICAgICBtb2R1bGVMb2FkZXJPYmplY3RMaW5rQW5kRXZhbHVhdGVNb2R1bGVH
cmFwaCAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICAgIHBhcnNlTW9kdWxlICAgICAgICAgICAg
ICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RQYXJzZU1vZHVsZSAgICAgICAgICAgICAgICAgICAg
RG9udEVudW18RnVuY3Rpb24gMgogICAgIHJlcXVlc3RlZE1vZHVsZXMgICAgICAgICAgICAgICBt
b2R1bGVMb2FkZXJPYmplY3RSZXF1ZXN0ZWRNb2R1bGVzICAgICAgICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gMQogICAgIHJlc29sdmUgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVMb2Fk
ZXJPYmplY3RSZXNvbHZlICAgICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
MQpAQCAtMTQ2LDkgKzE0OCw5IEBAIEpTVmFsdWUgTW9kdWxlTG9hZGVyT2JqZWN0Ojpwcm92aWRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXksIFN0YXR1cyBzdGF0dXMsCiAgICAgcmV0dXJu
IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1lbnRz
KTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIE1vZHVsZUxvYWRlck9iamVjdDo6bG9hZE1vZHVs
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikK
K0pTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXJPYmplY3Q6OmxvYWRNb2R1bGVHcmFwaChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKIHsK
LSAgICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZXhlYywgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmxvYWRNb2R1bGVQdWJsaWNOYW1lKCkp
KTsKKyAgICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZXhlYywg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmxvYWRNb2R1bGVHcmFwaFB1Ymxp
Y05hbWUoKSkpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBl
ID0gSlNDOjpnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOwogICAgIEFTU0VSVChjYWxs
VHlwZSAhPSBDYWxsVHlwZU5vbmUpOwpAQCAtMTYwLDYgKzE2MiwzMyBAQCBKU0ludGVybmFsUHJv
bWlzZSogTW9kdWxlTG9hZGVyT2JqZWN0Ojpsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBtb2R1bAogICAgIHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21pc2UqPihjYWxsKGV4
ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3VtZW50cykpOwogfQog
CitKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9hZGVyT2JqZWN0OjpwcmVwYXJlTW9kdWxlR3Jh
cGgoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIp
Cit7CisgICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMs
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5wcmVwYXJlTW9kdWxlR3JhcGhQ
dWJsaWNOYW1lKCkpKTsKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlwZSBjYWxs
VHlwZSA9IEpTQzo6Z2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKKyAgICBBU1NFUlQo
Y2FsbFR5cGUgIT0gQ2FsbFR5cGVOb25lKTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFy
Z3VtZW50czsKKyAgICBhcmd1bWVudHMuYXBwZW5kKG1vZHVsZU5hbWUpOworICAgIGFyZ3VtZW50
cy5hcHBlbmQocmVmZXJyZXIpOworCisgICAgcmV0dXJuIGpzQ2FzdDxKU0ludGVybmFsUHJvbWlz
ZSo+KGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1l
bnRzKSk7Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXJPYmplY3Q6OmxpbmtB
bmRFdmFsdWF0ZU1vZHVsZUdyYXBoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBtb2R1bGVLZXkp
Cit7CisgICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMs
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5saW5rQW5kRXZhbHVhdGVNb2R1
bGVHcmFwaFB1YmxpY05hbWUoKSkpOworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxU
eXBlIGNhbGxUeXBlID0gSlNDOjpnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOworICAg
IEFTU0VSVChjYWxsVHlwZSAhPSBDYWxsVHlwZU5vbmUpOworCisgICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJndW1lbnRzOworICAgIGFyZ3VtZW50cy5hcHBlbmQobW9kdWxlS2V5KTsKKworICAg
IHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21pc2UqPihjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBj
YWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3VtZW50cykpOworfQorCiBKU0ludGVybmFsUHJv
bWlzZSogTW9kdWxlTG9hZGVyT2JqZWN0OjpyZXNvbHZlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBuYW1lLCBKU1ZhbHVlIHJlZmVycmVyKQogewogICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxl
TG9hZGluZ1N0YXRlKCkpCkBAIC0yMTksNiArMjQ4LDIxIEBAIEpTSW50ZXJuYWxQcm9taXNlKiBN
b2R1bGVMb2FkZXJPYmplY3Q6Omluc3RhbnRpYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBr
ZXksCiAgICAgcmV0dXJuIGRlZmVycmVkLT5wcm9taXNlKCk7CiB9CiAKK0pTVmFsdWUgTW9kdWxl
TG9hZGVyT2JqZWN0OjpldmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1Zh
bHVlIG1vZHVsZVJlY29yZFZhbHVlKQoreworICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxlTG9h
ZGluZ1N0YXRlKCkpCisgICAgICAgIGRhdGFMb2coIkxvYWRlciBbZXZhbHVhdGVdICIsIHByaW50
YWJsZU1vZHVsZUtleShleGVjLCBrZXkpLCAiXG4iKTsKKworICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CisgICAgaWYgKGdsb2Jh
bE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZhbHVhdGUp
CisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkt
Pm1vZHVsZUxvYWRlckV2YWx1YXRlKGdsb2JhbE9iamVjdCwgZXhlYywga2V5LCBtb2R1bGVSZWNv
cmRWYWx1ZSk7CisKKyAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0ganNEeW5hbWlj
Q2FzdDxKU01vZHVsZVJlY29yZCo+KG1vZHVsZVJlY29yZFZhbHVlKTsKKyAgICBpZiAoIW1vZHVs
ZVJlY29yZCkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgcmV0dXJuIG1vZHVs
ZVJlY29yZC0+ZXZhbHVhdGUoZXhlYyk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbW9kdWxlTG9hZGVyT2JqZWN0UGFyc2VNb2R1bGUoRXhlY1N0YXRlKiBleGVjKQogewogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC0yODEsMTggKzMyNSw2IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyT2JqZWN0TW9kdWxlRGVjbGFyYXRpb25JbnN0YW50
aWF0aW9uKEV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJPYmplY3RFdmFsdWF0
ZShFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9
IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVSZWNvcmQqPihleGVjLT5hcmd1bWVudCgwKSk7Ci0gICAg
aWYgKCFtb2R1bGVSZWNvcmQpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7Ci0KLSAgICBpZiAoT3B0aW9uczo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQot
ICAgICAgICBkYXRhTG9nKCJMb2FkZXIgW2V2YWx1YXRlXSAiLCBtb2R1bGVSZWNvcmQtPm1vZHVs
ZUtleSgpLCAiXG4iKTsKLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobW9kdWxlUmVjb3Jk
LT5leGVjdXRlKGV4ZWMpKTsKLX0KLQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IEhvb2sgRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlck9iamVjdFJlc29sdmUoRXhlY1N0YXRlKiBl
eGVjKQpAQCAtMzQ2LDQgKzM3OCwxNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1v
ZHVsZUxvYWRlck9iamVjdEluc3RhbnRpYXRlKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+aW5zdGFudGlhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQo
MCksIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0gQWRk
aXRpb25hbCBIb29rIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJPYmplY3RFdmFsdWF0ZShFeGVj
U3RhdGUqIGV4ZWMpCit7CisgICAgLy8gVG8gaW5zdHJ1bWVudCBhbmQgcmV0cmlldmUgdGhlIGVy
cm9ycyByYWlzZWQgZnJvbSB0aGUgbW9kdWxlIGV4ZWN1dGlvbiwKKyAgICAvLyB3ZSBpbnNlcnRl
ZCB0aGUgaG9vayBwb2ludCBoZXJlLgorCisgICAgTW9kdWxlTG9hZGVyT2JqZWN0KiBsb2FkZXIg
PSBqc0R5bmFtaWNDYXN0PE1vZHVsZUxvYWRlck9iamVjdCo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsK
KyAgICBpZiAoIWxvYWRlcikKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+ZXZhbHVhdGUoZXhl
YywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9k
dWxlTG9hZGVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVM
b2FkZXJPYmplY3QuaAppbmRleCAxMmNmZTU2ZWViYjZjNDI3YzBlZjc5MDIxZjk5N2M2YjBkMzg0
YTFmLi4xOTQ5NzUyNGZhNmY0OTRlMzk0YWQ1MDAwMjc0YzBhMzQ4OTFiYTU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJPYmplY3QuaApAQCAt
NjQsNyArNjQsOSBAQCBjbGFzcyBNb2R1bGVMb2FkZXJPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiAKICAgICAvLyBBUElzIHRvIGNvbnRyb2wgdGhlIG1vZHVsZSBsb2FkZXIuCiAg
ICAgSlNWYWx1ZSBwcm92aWRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBTdGF0dXMsIGNvbnN0
IFN0cmluZyYpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSos
IEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcik7CisgICAgSlNJbnRlcm5hbFBy
b21pc2UqIGxvYWRNb2R1bGVHcmFwaChFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpT
VmFsdWUgcmVmZXJyZXIpOworICAgIEpTSW50ZXJuYWxQcm9taXNlKiBwcmVwYXJlTW9kdWxlR3Jh
cGgoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyKTsKKyAg
ICBKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGgoRXhlY1N0YXRl
KiwgSlNWYWx1ZSBtb2R1bGVLZXkpOwogCiAgICAgLy8gUGxhdGZvcm0gZGVwZW5kZW50IGhvb2tl
ZCBBUElzLgogICAgIEpTSW50ZXJuYWxQcm9taXNlKiByZXNvbHZlKEV4ZWNTdGF0ZSosIEpTVmFs
dWUgbmFtZSwgSlNWYWx1ZSByZWZlcnJlcik7CkBAIC03Miw2ICs3NCw5IEBAIGNsYXNzIE1vZHVs
ZUxvYWRlck9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBKU0ludGVybmFs
UHJvbWlzZSogdHJhbnNsYXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHBheWxv
YWQpOwogICAgIEpTSW50ZXJuYWxQcm9taXNlKiBpbnN0YW50aWF0ZShFeGVjU3RhdGUqLCBKU1Zh
bHVlIGtleSwgSlNWYWx1ZSBzb3VyY2UpOwogCisgICAgLy8gQWRkaXRpb25hbCBwbGF0Zm9ybSBk
ZXBlbmRlbnQgaG9va2VkIEFQSXMuCisgICAgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqLCBK
U1ZhbHVlIGtleSwgSlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCiAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oIGIvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmNTU3YTJmMjFlY2Y2YjJhZWNhZDY3ZTM1M2UxOTY2ZTQ3OTRlODAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0pTSW50ZXJu
YWxQcm9taXNlX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VfaAorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVu
dGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZjMDg2ZGQzOWFm
ZjllMTA0YmQ1YTZmZjdhZTc5MjU0NjM4Njk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5o
PgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9y
dW50aW1lL0pTTW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlOWVjZmZiY2Y1N2MyYTlj
Nzk1Y2NiMWQ4MDM0MGY5MTRkN2Q0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApAQCAtMCwwICsxLDQg
QEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNvcmRfaAorI2RlZmluZSBXZWJDb3Jl
X0ZXRF9KU01vZHVsZVJlY29yZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVS
ZWNvcmQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDUyYTg5NTdiNTk4N2M5YmQ1MjJhMWEyNWJkZjg2ODRmNTlj
OTM2NGQuLjExMmMwYzZmMTlhZGNmODk0MGIwZDhmYTA4NjVlZTEwZWQ5YzQyNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYy
OTYsNiArNjI5NiwxMiBAQAogCQlFMUZGOEY2ODE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVD
cnlwdG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNw
cCAqLzsgfTsKIAkJRTFGRjhGNkMxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAg
Ki87IH07CiAJCUUxRkY4RjZEMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFG
RjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi87IH07
CisJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM5QTUyMTFCQTZCRDQ2MDBB
M0E3QUUgLyogTW9kdWxlR3JhcGguY3BwICovOyB9OworCQlFMzM5QTUyNDFCQTZCRDQ2MDBBM0E3
QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzMzlBNTIyMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzQjEwRkEyMUJB
MDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMTBGQTAxQkEwMDRCQzAwOTNERTNBIC8qIE1vZHVs
ZUxvYWRlci5jcHAgKi87IH07CisJCUUzQjEwRkEzMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVM
b2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
QjEwRkExMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0IxMEZBNjFCQTBGMjlDMDA5M0RF
M0EgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFM0IxMEZBNDFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5j
cHAgKi87IH07CisJCUUzQjEwRkE3MUJBMEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IxMEZBNTFC
QTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0MDFDMjc1MTdDRTUzRUMwMEM0MUEzNSAvKiBF
bGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDAxQzI3NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJh
dG9yQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0MjRBMzlFMTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlE
MTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCAqLzsgfTsKIAkJRTQyNEEz
QTAxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlGMTMzMERGMUUwMENGNkRD
OSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gKi87IH07CkBAIC0xNDAxMiw2ICsxNDAxOCwxMiBA
QAogCQlFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG9DdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzOUE1
MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUdyYXBoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUdyYXBoLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzQjEwRkEwMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNCMTBGQTExQkEwMDRCQzAwOTNERTNB
IC8qIE1vZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1
bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNCMTBGQTQxQkEwRjI5
QzAwOTNERTNBIC8qIE1vZHVsZUZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTW9kdWxlRmV0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzQjEwRkE1MUJBMEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudEl0
ZXJhdG9yQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA2RjNG
QjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbG9yRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjMzNzIsNiArMjMzODQsMTIgQEAKIAkJCQk0
MUJGNzAwQTBGRTg2RjQ5MDA1RThERUMgLyogTWVzc2FnZVBvcnRDaGFubmVsLmggKi8sCiAJCQkJ
Q0I4Q0YwMTUxQTkzNEI0MzAwMEQ1MTBCIC8qIE1pY3JvVGFzay5jcHAgKi8sCiAJCQkJNTNCODk1
QUQxOURDN0MzNzAwOUNBQTkzIC8qIE1pY3JvVGFzay5oICovLAorCQkJCUUzQjEwRkE0MUJBMEYy
OUMwMDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmNwcCAqLywKKwkJCQlFM0IxMEZBNTFCQTBGMjlD
MDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5oICovLAorCQkJCUUzMzlBNTIxMUJBNkJENDYwMEEz
QTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi8sCisJCQkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FF
IC8qIE1vZHVsZUdyYXBoLmggKi8sCisJCQkJRTNCMTBGQTAxQkEwMDRCQzAwOTNERTNBIC8qIE1v
ZHVsZUxvYWRlci5jcHAgKi8sCisJCQkJRTNCMTBGQTExQkEwMDRCQzAwOTNERTNBIC8qIE1vZHVs
ZUxvYWRlci5oICovLAogCQkJCTg1MDMxQjJGMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50
LmNwcCAqLywKIAkJCQk4NTAzMUIzMDBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5oICov
LAogCQkJCTE0MUI5NEU1MDlFQzQyMjMwMDBFOTQxMyAvKiBNb3VzZUV2ZW50LmlkbCAqLywKQEAg
LTI0MjU1LDYgKzI0MjczLDcgQEAKIAkJCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29u
dGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDZEN0JFMThCREI3NkYwMDBB
QjE2NiAvKiBDb250ZXh0TWVudUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY3
MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCUUzQjEwRkEzMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA2MDI3Q0FEMEIxQ0JGQzAwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTdBREU3MjI2MTBDQkJCOUIwMDZCM0IzQSAvKiBDb250ZXh0
TWVudVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDUwMDJGQzFCNTZENzk5MDAyMEFB
RjcgLyogUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ4MSw2ICsyNDUwMCw3
IEBACiAJCQkJMzE2MDIzRjAxNTMyQzQwQzAwRDUwRkY0IC8qIERpY3Rpb25hcnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEzMSAvKiBEaWN0aW9uYXJ5TG9va3Vw
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNEMTMxMDA4REIwQzMgLyogRGlyZWN0
Q29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzM5QTUyNDFCQTZCRDQ2MDBBM0E3QUUg
LyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0
REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QUYy
RDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY3MjQsNiArMjY3NDQsNyBAQAogCQkJCTJE
OTNBRUUzMTlERjU2NDEwMDJBODZDMyAvKiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3NTZCMkNFMTE4QjcxMDE2MDBGRUNGQUEgLyogU2Vzc2lvbklELmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxMDA5OUU2NDkyMDA1NkU1ODEgLyogU2V0Tm9kZUF0
dHJpYnV0ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzQjEwRkE3MUJBMEYyOUMwMDkz
REUzQSAvKiBNb2R1bGVGZXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCOERCREI0QzEzMEIw
RjhBMDBGNUNEQjEgLyogU2V0U2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNGMTk5NEYwODI0NUU1OTAwMUU5QUJDIC8qIFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1M0VGNzY2QjE2NTMwQTYxMDA0Q0JFNDkgLyogU2V0dGluZ3NNYWNyb3MuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjc4NjMsNiArMjc4ODQsNyBAQAogCQkJCUNEMEVFRTBFMTQ3NDNGMzkwMDNFQUZB
MiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEJD
MTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZEMzE2MDA3MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzM5QTUyMzFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxl
R3JhcGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwODExMkIwMjZGNzAwQzFBMzU5IC8q
IEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENTU5Njkx
MTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQzMTYwQkUxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlck1hYy5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI4Nzc0LDYgKzI4Nzk2LDcgQEAKIAkJCQlDNTg1QTY2MjExRDRG
QUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUQ3MTlCRjE4MTEwNkUwMDAxNkRDNTEgLyogSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxNjczMEEzMTgyRDhGQkIwMDNGQUY1QyAvKiBJREJDdXJzb3JCYWNrZW5kLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzQjEwRkE2MUJBMEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRj
aGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMDE5NDQ0MTgzNkY3RTQwMDkyNTUyMyAvKiBJ
REJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQ3MTlD
MzE4MTEwNkUwMDAxNkRDNTEgLyogSURCQ3Vyc29yV2l0aFZhbHVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxRDcxOUM2MTgxMTA2RTAwMDE2REM1MSAvKiBJREJEYXRhYmFzZS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI5Njg3LDYgKzI5NzEwLDcgQEAKIAkJCQlEM0E5NEEzODEyMkRBQkFDMDBB
MzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNBQTEwRjMx
MjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUM5MDg0M0NGMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzQjEwRkEyMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VFRkNENzkxOURCMzFGNzAwMzg3NkQ3IC8qIE1l
ZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCRUFFQUMxOUQ5MkI2
QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzkwMjdGNDExQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCmluZGV4IGQ0ZjAwMWQyOGZiZDNlOTg5M2YzMTliOGIzMDAyZDFjMDEyOWViODAuLjMyYTA1
YjZjODAyOWVjMjY4NmM4ZjhiOWQ3OGZlNTI4MjEwNTBhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMzEsMTEgKzMxLDEzIEBACiAj
aW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50
RGF0YS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvTWljcm90YXNrLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KIApAQCAtNTYsNyArNTgsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20o
Y29uc3QgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBD
bGFzc0luZm8gSlNET01XaW5kb3dCYXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9i
YWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2Up
IH07CiAKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19n
bG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBv
cnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNj
cmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNo
b3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93
QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJv
bSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZElu
dGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50
TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJS
ZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2Fk
ZXJFdmFsdWF0ZSB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0RP
TVdpbmRvd1NoZWxsKiBzaGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1
cmUsICZzaGVsbC0+d29ybGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC0yNzks
NCArMjgxLDMxIEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVhcmVkV2F0Y2hw
b2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAgfQogfQogCisKK0pTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6
OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyKQoreworICAgIEpTRE9N
V2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGds
b2JhbE9iamVjdCk7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmlt
cGwoKS5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigp
LT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJyZXIpOworICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVy
biBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNW
YWx1ZSBtb2R1bGVLZXkpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1l
bnQqIGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJl
dHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywg
bW9kdWxlS2V5KTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVk
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2Jq
ZWN0KTsKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5lZCgpKTsK
K30KKworSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUo
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCkKK3sKKyAg
ICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jh
c2UqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2Jq
ZWN0LT5pbXBsKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVM
b2FkZXIoKS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXksIG1vZHVsZVJl
Y29yZCk7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aAppbmRleCA1ZWQzODYyYzE0MTE4N2MwMDZiNjg4ZGI3OTc3OTRiMzY5ODEwNTY0Li4yZDQ0Yjgw
MDllNTRkYmIwNzRlOGY5OTc3YzE2YjI1ZTEyNTdlYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNzgsNiArNzgsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBKU0M6OldhdGNocG9pbnRTZXQgbV93aW5kb3dDbG9zZVdhdGNo
cG9pbnRzOwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gTW9kdWxlIExvYWRlciBob29rcy4K
KyAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlclJlc29s
dmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBK
U0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9k
dWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFs
dWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNWYWx1ZSk7CisKICAgICAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV9pbXBsOwogICAg
ICAgICBKU0RPTVdpbmRvd1NoZWxsKiBtX3NoZWxsOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCmluZGV4IDA5ZTdlNWI2
MDI2ODc5YjUzMzVhMWZlMWVmNzFjNDQ3NDMwYmZjZDQuLmEzODc2MzM5ZTczNTE1MmNiM2Q3OTM3
Njg2YWYyMzY2M2ZmNTI0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCkBAIC03NCw2ICs3NCwyMSBAQCBjbGFzcyBKU01haW5U
aHJlYWRFeGVjU3RhdGUgewogICAgICAgICB0YXNrLnJ1bihleGVjKTsKICAgICB9CiAKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJlcGFyZU1vZHVsZUdyYXBoKEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCisgICAgeworICAgICAgICBy
ZXR1cm4gSlNDOjpwcmVwYXJlTW9kdWxlR3JhcGgoZXhlYywgbW9kdWxlTmFtZSk7CisgICAgfQor
CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByZXBhcmVNb2R1bGVHcmFwaChK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6cHJlcGFyZU1vZHVsZUdyYXBoKGV4ZWMsIHNvdXJj
ZUNvZGUpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsaW5r
QW5kRXZhbHVhdGVNb2R1bGVHcmFwaChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBtb2R1bGVLZXkpCisgICAgeworICAgICAgICByZXR1cm4gSlNDOjpsaW5rQW5k
RXZhbHVhdGVNb2R1bGVHcmFwaChleGVjLCBtb2R1bGVLZXkpOworICAgIH0KKwogICAgIHN0YXRp
YyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgaW5zdHJ1bWVudEZ1bmN0aW9uQ2FsbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpDYWxsVHlwZSwgY29uc3QgSlNDOjpDYWxsRGF0
YSYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDUwNDRiYzE3ODM1MTNiOWIxYTI2YmQz
YmQxY2I1YzAwYjcwYTEwZDAuLmFjZDYxN2U4Njk4OTI5MDc1Mzc2ZTU4MzJhYjI4M2YyZDJmYTc5
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjb25zdCBDbGFzc0luZm8gSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfaW5mbyA9IHsgIldv
cmtlckdsb2JhbFNjb3BlIiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UpIH07CiAKLWNvbnN0IEdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3Vw
cG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRS
dW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlw
dEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKK2Nv
bnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2ds
b2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJv
ZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwg
JmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZElu
dGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIgfTsKIAogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OkpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNz
UmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBpbXBsKQogICAgIDogSlNET01HbG9iYWxPYmplY3Qo
dm0sIHN0cnVjdHVyZSwgJm5vcm1hbFdvcmxkKHZtKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDRiM2IwOTcyYmU3N2YzYzc2NTk1ZjE0MGUyNmE3NDhmZjhlYTQ1MGMuLmExMjM2YTlm
ODc4ZTc3OTNkYjcwNTMwOGY5N2FiMThiNGUxNmJhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAj
aW5jbHVkZSAiTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGgu
aCIKICNpbmNsdWRlICJOUF9qc29iamVjdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlQ29uc29sZUNsaWVudC5oIgpAQCAtNTQsNyArNTUsMTEgQEAKICNpbmNsdWRlIDxpbnNw
ZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvSlNGdW5jdGlvbi5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNNb2R1bGVS
ZWNvcmQuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+
CiAKQEAgLTE3NSwxMSArMTgwLDEwNCBAQCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRD
b250cm9sbGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZQogICAgIHJl
dHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVjLT52bSgpLCByZXR1cm5WYWx1ZSk7CiB9
CiAKLURlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpIAorRGVwcmVjYXRlZDo6U2NyaXB0VmFs
dWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291
cmNlQ29kZSkKIHsKICAgICByZXR1cm4gZXZhbHVhdGVJbldvcmxkKHNvdXJjZUNvZGUsIG1haW5U
aHJlYWROb3JtYWxXb3JsZCgpKTsKIH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlcG9ydEFz
eW5jaHJvbm91c0V4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgLy8gVE9ETzogVXNl
IHNvbWUgbWFya2VyLgorICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWQoKSkK
KyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBudWxscHRy
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCitKU0lu
dGVybmFsUHJvbWlzZSogU2NyaXB0Q29udHJvbGxlcjo6cHJlcGFyZU1vZHVsZUdyYXBoSW5Xb3Js
ZChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgp
KTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOwor
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisg
ICAgcmV0dXJuIGluaXRNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0
YXRlOjpwcmVwYXJlTW9kdWxlR3JhcGgoZXhlYywgbW9kdWxlTmFtZSksIHdvcmxkKTsKK30KKwor
SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdENvbnRyb2xsZXI6OnByZXBhcmVNb2R1bGVHcmFwaChN
b2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sKKyAg
ICByZXR1cm4gcHJlcGFyZU1vZHVsZUdyYXBoSW5Xb3JsZChtb2R1bGVHcmFwaCwgbW9kdWxlTmFt
ZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCitKU0ludGVybmFsUHJvbWlzZSogU2Ny
aXB0Q29udHJvbGxlcjo6cHJlcGFyZU1vZHVsZUdyYXBoSW5Xb3JsZChNb2R1bGVHcmFwaCYgbW9k
dWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIERPTVdyYXBwZXJX
b3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAg
ICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVj
U3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIHJldHVy
biBpbml0TW9kdWxlR3JhcGgobW9kdWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6cHJl
cGFyZU1vZHVsZUdyYXBoKGV4ZWMsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCkpLCB3b3JsZCk7
Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRDb250cm9sbGVyOjpwcmVwYXJlTW9kdWxl
R3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlKQoreworICAgIHJldHVybiBwcmVwYXJlTW9kdWxlR3JhcGhJbldvcmxkKG1vZHVs
ZUdyYXBoLCBzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKK0pTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFw
aEluV29ybGQoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBET01XcmFwcGVyV29ybGQmIHdvcmxk
KQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5k
b3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVj
ID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBKU0ludGVybmFsUHJvbWlz
ZSogcHJvbWlzZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bGlua0FuZEV2YWx1YXRlTW9kdWxl
R3JhcGgoZXhlYywgbW9kdWxlR3JhcGgubW9kdWxlS2V5KCkpOworCisgICAgSlNGdW5jdGlvbiog
cmVqZWN0SGFuZGxlciA9IEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2lu
ZG93KCksIDEsIFN0cmluZygpLCByZXBvcnRBc3luY2hyb25vdXNFeGNlcHRpb24pOworICAgIHJl
dHVybiBwcm9taXNlLT50aGVuKGV4ZWMsIG51bGxwdHIsIHJlamVjdEhhbmRsZXIpOworfQorCitK
U0ludGVybmFsUHJvbWlzZSogU2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxl
R3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoKQoreworICAgIHJldHVybiBsaW5rQW5kRXZh
bHVhdGVNb2R1bGVHcmFwaEluV29ybGQobW9kdWxlR3JhcGgsIG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKK30KKworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZh
bHVhdGVNb2R1bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVS
ZWNvcmQsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2so
d29ybGQudm0oKSk7CisKKyAgICBjb25zdCBTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUgPSBtb2R1
bGVSZWNvcmQtPnNvdXJjZUNvZGUoKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0g
d2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3co
KS0+Z2xvYmFsRXhlYygpOworICAgIGNvbnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3Nv
dXJjZVVSTDsKKyAgICBtX3NvdXJjZVVSTCA9ICZzb3VyY2VVUkwuc3RyaW5nKCk7CisKKyAgICBS
ZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVT
Y3JpcHQobV9mcmFtZSwgc291cmNlVVJMLCBqc1NvdXJjZUNvZGUuZmlyc3RMaW5lKCkpOworCisg
ICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUoZXhlYyk7Cisg
ICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOworICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgZXZhbHVhdGlvbkV4Y2VwdGlvbiA9IGV4ZWMtPnZt
KCkuZXhjZXB0aW9uKCk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1
YXRlU2NyaXB0KGNvb2tpZSwgbV9mcmFtZSk7CisKKyAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlv
bikgeworICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXZhbHVhdGlvbkV4Y2VwdGlvbiwg
bnVsbHB0cik7CisgICAgICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAgICAg
IHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSgpOworICAgIH0KKworICAgIG1fc291cmNl
VVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVl
KGV4ZWMtPnZtKCksIHJldHVyblZhbHVlKTsKK30KKworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUg
U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpT
TW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQpCit7CisgICAgcmV0dXJuIGV2YWx1YXRlTW9kdWxl
KHNvdXJjZVVSTCwgbW9kdWxlUmVjb3JkLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisK
IFJlZjxET01XcmFwcGVyV29ybGQ+IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdvcmxkKCkKIHsK
ICAgICByZXR1cm4gRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoSlNET01XaW5kb3c6OmNvbW1vblZN
KCkpOwpAQCAtMjcyLDYgKzM3MCwzMSBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgcmV0dXJuIHdpbmRv
d1NoZWxsOwogfQogCitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQor
ICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3ltYm9sKj4odmFsdWUp
LT5wcml2YXRlTmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmcoKSk7CisgICAgcmV0
dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywganNDYXN0PEpTU3RyaW5nKj4odmFsdWUp
LT52YWx1ZShleGVjKSk7Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRDb250cm9sbGVy
Ojppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBKU0ludGVybmFsUHJv
bWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8TW9kdWxlR3Jh
cGg+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha1B0cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBmdWxm
aWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVs
bC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7Cisg
ICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQgZWxlbWVudCBhbmQgZG9jdW1lbnQgbWF5IGJl
IGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUgbW9kdWxlLgorICAgICAgICAvLyBJbiB0aGlz
IGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBtb2R1bGUgYm9keS4KKyAgICAgICAgaWYgKFJl
ZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAg
ICAgbW9kdWxlR3JhcGgtPm5vdGlmeUxvYWRlZChqc1ZhbHVlVG9Nb2R1bGVLZXkoZXhlYywgZXhl
Yy0+YXJndW1lbnQoMCkpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICB9KTsKKyAgICBKU0Z1bmN0aW9uKiByZWplY3RIYW5kbGVyID0gSlNGdW5j
dGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIHJl
cG9ydEFzeW5jaHJvbm91c0V4Y2VwdGlvbik7CisgICAgcmV0dXJuIHByb21pc2UtPnRoZW4oZXhl
YywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRsZXIpOworfQorCiBUZXh0UG9zaXRpb24gU2Ny
aXB0Q29udHJvbGxlcjo6ZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdAogewogICAgIC8vIEZJ
WE1FOiBJZiB3ZSBhcmUgbm90IGN1cnJlbnRseSBwYXJzaW5nLCB3ZSBzaG91bGQgdXNlIG91ciBj
dXJyZW50IGxvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmgKaW5kZXggMDdjNTNiN2M4ZWRmYjRlMjhmNWNhMTNhYTJjNGUwNTU5NGVmNTEyMi4u
MGJhMzZjODgwNGUzYWQzZjNjZjdkMzNjODcwZjliMjllMzRiODY3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtNDQsNiArNDQsOSBAQCBj
bGFzcyBTY3JpcHRWYWx1ZTsKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNHbG9iYWxP
YmplY3Q7CisgICAgY2xhc3MgSlNJbnRlcm5hbFByb21pc2U7CisgICAgY2xhc3MgSlNNb2R1bGVS
ZWNvcmQ7CisKICAgICBjbGFzcyBFeGVjU3RhdGU7CiAKICAgICBuYW1lc3BhY2UgQmluZGluZ3Mg
ewpAQCAtNTcsNiArNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGcmFtZTsKIGNs
YXNzIEhUTUxEb2N1bWVudDsKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OworY2xhc3MgTW9kdWxl
R3JhcGg7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBj
bGFzcyBXaWRnZXQ7CkBAIC0xMTUsNiArMTE5LDE3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIg
ewogICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmKTsKICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZUluV29ybGQoY29u
c3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYpOwogCisgICAgSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogcHJlcGFyZU1vZHVsZUdyYXBoSW5Xb3JsZChNb2R1bGVHcmFwaCYsIGNv
bnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogcHJlcGFyZU1vZHVsZUdyYXBoKE1vZHVsZUdyYXBoJiwgY29uc3QgU3Ry
aW5nJiBtb2R1bGVOYW1lKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcmVwYXJlTW9k
dWxlR3JhcGhJbldvcmxkKE1vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERP
TVdyYXBwZXJXb3JsZCYpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByZXBhcmVNb2R1
bGVHcmFwaChNb2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAgIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZUdyYXBoSW5Xb3JsZChN
b2R1bGVHcmFwaCYgLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaChNb2R1bGVHcmFwaCYpOworCisgICAgRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiwgSlNDOjpKU01v
ZHVsZVJlY29yZCosIERPTVdyYXBwZXJXb3JsZCYpOworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6SlNNb2R1bGVSZWNvcmQqKTsKKwog
ICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CiAKICAg
ICB2b2lkIGVuYWJsZUV2YWwoKTsKQEAgLTE3MCw2ICsxODUsNyBAQCBjbGFzcyBTY3JpcHRDb250
cm9sbGVyIHsKIAogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd1NoZWxs
KiBpbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIGluaXRNb2R1bGVHcmFwaChNb2R1bGVHcmFwaCYsIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
LCBET01XcmFwcGVyV29ybGQmKTsKIAogICAgIHZvaWQgZGlzY29ubmVjdFBsYXRmb3JtU2NyaXB0
T2JqZWN0cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2NzZiZGQ4MmJmYjA4YzZh
OGM1NjhlM2M4MGRhOWUyZWQ1YjI3Y2ZiLi5hODFmMjQ2MjI5NTRlMzVlODIyZWIxYjBhZDkyMWMw
OWFlYmE1MzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMiw2ICsxMDIsNyBAQAog
I2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgog
I2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgi
CiAjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgogI2luY2x1ZGUgIk5h
bWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCkBAIC00
NjEsNiArNDYyLDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJM
JiB1cmwsIHVuc2lnbmVkIGRvY3VtZW50Q2xhc3NlcywgdW5zaWcKICAgICAsIG1fc3RhcnRUaW1l
KHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpKQogICAgICwgbV9vdmVyTWluaW11bUxh
eW91dFRocmVzaG9sZChmYWxzZSkKICAgICAsIG1fc2NyaXB0UnVubmVyKHN0ZDo6bWFrZV91bmlx
dWU8U2NyaXB0UnVubmVyPigqdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihzdGQ6Om1ha2Vf
dW5pcXVlPE1vZHVsZUxvYWRlcj4oKnRoaXMpKQogICAgICwgbV94bWxWZXJzaW9uKEFTQ0lJTGl0
ZXJhbCgiMS4wIikpCiAgICAgLCBtX3htbFN0YW5kYWxvbmUoU3RhbmRhbG9uZVVuc3BlY2lmaWVk
KQogICAgICwgbV9oYXNYTUxEZWNsYXJhdGlvbihmYWxzZSkKQEAgLTYwMiw2ICs2MDQsNyBAQCBE
b2N1bWVudDo6fkRvY3VtZW50KCkKICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0VW5sZXNzU3Vz
cGVuZGVkRm9yUGFnZUNhY2hlKCk7CiAKICAgICBtX3NjcmlwdFJ1bm5lciA9IG51bGxwdHI7Cisg
ICAgbV9tb2R1bGVMb2FkZXIgPSBudWxscHRyOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5l
cnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBlMGFkMWJjMmI5ZTdkZmE1YjE4NzZkYWI3
ZDRkZjAzMjdhOTBkZjQzLi44NjllMzNiZDNhOGUwMGQ3NjliM2YxM2JjNjcyNDgxZDI1NDlkNWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTI3LDYgKzEyNyw3IEBAIGNsYXNzIE1lZGlhUGxh
eWJhY2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVk
aWFRdWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKK2NsYXNzIE1vZHVsZUxvYWRl
cjsKIGNsYXNzIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dD
b2xsZWN0aW9uOwogY2xhc3MgTm9kZUZpbHRlcjsKQEAgLTkxOSw2ICs5MjAsNyBAQCBjbGFzcyBE
b2N1bWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMg
U2NyaXB0RXhlY3V0aW9uQwogICAgIERvY3VtZW50JiB0b3BEb2N1bWVudCgpIGNvbnN0OwogICAg
IAogICAgIFNjcmlwdFJ1bm5lciogc2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9zY3JpcHRSdW5u
ZXIuZ2V0KCk7IH0KKyAgICBNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlcigpIHsgcmV0dXJuIG1f
bW9kdWxlTG9hZGVyLmdldCgpOyB9CiAKICAgICBIVE1MU2NyaXB0RWxlbWVudCogY3VycmVudFNj
cmlwdCgpIGNvbnN0IHsgcmV0dXJuICFtX2N1cnJlbnRTY3JpcHRTdGFjay5pc0VtcHR5KCkgPyBt
X2N1cnJlbnRTY3JpcHRTdGFjay5sYXN0KCkuZ2V0KCkgOiAwOyB9CiAgICAgdm9pZCBwdXNoQ3Vy
cmVudFNjcmlwdChQYXNzUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50Pik7CkBAIC0xNTAwLDYgKzE1
MDIsNyBAQCBjbGFzcyBEb2N1bWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJl
ZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQwogICAgIGJvb2wgbV9vdmVyTWluaW11bUxh
eW91dFRocmVzaG9sZDsKICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0UnVubmVyPiBt
X3NjcmlwdFJ1bm5lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kdWxlTG9hZGVyPiBtX21vZHVs
ZUxvYWRlcjsKIAogICAgIFZlY3RvcjxSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+PiBtX2N1cnJl
bnRTY3JpcHRTdGFjazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZl
dGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZldGNoZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEzMjI1YzJiMzllMzU0YzFiYjFmNWIyZjM4ZTRjZWZkYWZkZDIyNDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5jcHAKQEAgLTAsMCArMSw5
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVG
ZXRjaGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlJl
c291cmNlTG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCisg
ICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQor
ICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QpCisg
ICAgLCBtX2RlZmVycmVkKGdsb2JhbE9iamVjdC0+dm0oKSwgZGVmZXJyZWQpCit7CisgICAgUmVz
b3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpOworICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5
UG9saWN5SW1wb3NpdGlvbihDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGlj
eUNoZWNrKTsKKworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChzb3VyY2VVUkwpLCBvcHRpb25zKTsKKworICAgIC8vIEZJWE1FOiBIYW5kbGUgY3Jvc3Mt
b3JpZ2luIG9wdGlvbnMuCisgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoQXRvbWljU3RyaW5nKHNv
dXJjZVVSTC5zdHJpbmcoKSkpOworCisgICAgbV9jYWNoZWRTY3JpcHQgPSBkb2N1bWVudC5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7Cit9CisKK1JlZjxNb2R1
bGVGZXRjaGVyPiBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBNb2R1bGVGZXRjaGVyKGdsb2JhbE9iamVjdCwgc291cmNlVVJMLCBkZWZlcnJlZCwg
ZG9jdW1lbnQpKTsKK30KKwordm9pZCBNb2R1bGVGZXRjaGVyOjpydW4oKQoreworICAgIC8vIE5v
dGU6IElmIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGltbWVpZGF0ZWx5IGNh
bGxzIG5vdGlmeUZpbmlzaGVkLgorICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7
Cit9CisKK3ZvaWQgTW9kdWxlRmV0Y2hlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlKQoreworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1f
Y2FjaGVkU2NyaXB0KTsKKyAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQorICAgICAgICByZXR1cm47
CisKKyAgICBBU1NFUlQobV9jYWNoZWRTY3JpcHQpOworICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1v
dmVDbGllbnQodGhpcyk7CisKKyNpZiBFTkFCTEUoTk9TTklGRikKKyAgICBpZiAobV9jYWNoZWRT
Y3JpcHQgJiYgIW1fY2FjaGVkU2NyaXB0LT5taW1lVHlwZUFsbG93ZWRCeU5vc25pZmYoKSkgewor
ICAgICAgICBtX2RvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3Vy
aXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBmcm9t
ICciICsgbV9jYWNoZWRTY3JpcHQtPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0
aCgpICsgIicgYmVjYXVzZSBpdHMgTUlNRSB0eXBlICgnIiArIG1fY2FjaGVkU2NyaXB0LT5taW1l
VHlwZSgpICsgIicpIGlzIG5vdCBleGVjdXRhYmxlLCBhbmQgc3RyaWN0IE1JTUUgdHlwZSBjaGVj
a2luZyBpcyBlbmFibGVkLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAg
ICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKG1fZ2xvYmFsT2JqZWN0LT52bSgpKTsKKyAgICBKU0M6
OkV4ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgaWYg
KG1fY2FjaGVkU2NyaXB0LT5lcnJvck9jY3VycmVkKCkpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91
bGQgYmUgaGFuZGxlZCBieSB0aGUgZGVmYXVsdCBjYWNoZSBsb2FkZXIuCisgICAgICAgIC8vIFNv
LCB3ZSBkb24ndCB0aHJvdyBhbnkgbWVhbmluZ2Z1bCBlcnJvciBoZXJlLgorICAgICAgICBtX2Rl
ZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpqc1VuZGVmaW5lZCgpKTsKKyAgICB9IGVsc2UgaWYg
KCFtX2NhY2hlZFNjcmlwdC0+d2FzQ2FuY2VsZWQoKSkgeworICAgICAgICBTY3JpcHRTb3VyY2VD
b2RlIHNvdXJjZUNvZGUobV9jYWNoZWRTY3JpcHQuZ2V0KCkpOworICAgICAgICBtX2RlZmVycmVk
LT5yZXNvbHZlKGV4ZWMsIEpTQzo6anNTdHJpbmcoZXhlYywgc291cmNlQ29kZS5zb3VyY2UoKSkp
OworICAgIH0KKyAgICBtX2NhY2hlZFNjcmlwdCA9IG51bGxwdHI7CisKKyAgICBtX2RvY3VtZW50
Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAvLyBBZnRlciBNb2R1
bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUgZGVzdHJveWVkLgor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZldGNoZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOGI0ZDJhZDQ0
NzE1ZWQzNzcyMTBkNGU5NzBhMWZiZjcxYjJlNmVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL01vZHVsZUZldGNoZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBNb2R1bGVGZXRjaGVyX2gKKyNkZWZpbmUgTW9kdWxlRmV0Y2hlcl9oCisKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
SGFuZGxlLmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVz
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIERvY3VtZW50OworY2xh
c3MgSlNET01HbG9iYWxPYmplY3Q7CisKK2NsYXNzIE1vZHVsZUZldGNoZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxNb2R1bGVGZXRjaGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxlRmV0Y2hlcik7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TW9kdWxlRmV0Y2hlcj4gY3JlYXRlKEpT
RE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisgICAgCisgICAgdm9pZCBydW4oKTsKKworcHJp
dmF0ZToKKyAgICBNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBz
b3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisK
KyAgICAvLyBGb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBEb2N1bWVudCYgbV9k
b2N1bWVudDsKKyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJvbmc8SlNET01HbG9i
YWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFw
aC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWY1MDE2NmIyZDY3ODEyY2I1NTU0NGY1Yjg3NWFjZGVjM2ZkZTBj
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5jcHAK
QEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJNb2R1bGVHcmFwaC5oIgorCisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTTmF0
aXZlU3RkRnVuY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVHcmFwaDo6
TW9kdWxlR3JhcGgoRWxlbWVudCYgZWxlbWVudCkKKyAgICA6IG1fZWxlbWVudChlbGVtZW50KQor
ICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQoreworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpu
b3RpZnlMb2FkZWQoY29uc3QgSlNDOjpJZGVudGlmaWVyJiBtb2R1bGVLZXkpCit7CisgICAgbV9t
b2R1bGVLZXkgPSBtb2R1bGVLZXk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkubW9kdWxlTG9h
ZGVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVhZHkodGhpcyk7Cit9CisKK3ZvaWQgTW9kdWxlR3Jh
cGg6OmV2YWx1YXRlKCkKK3sKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9lbGVtZW50LmRvY3Vt
ZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxpbmtBbmRFdmFsdWF0ZU1v
ZHVsZUdyYXBoKCp0aGlzKTsKK30KKworUmVmPE1vZHVsZUdyYXBoPiBNb2R1bGVHcmFwaDo6Y3Jl
YXRlKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sKKyAgICBB
U1NFUlQoZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpOworICAgIFJlZjxNb2R1bGVHcmFwaD4g
bW9kdWxlR3JhcGggPSBhZG9wdFJlZigqbmV3IE1vZHVsZUdyYXBoKGVsZW1lbnQpKTsKKyAgICBl
bGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCkucHJlcGFyZU1vZHVsZUdyYXBoKG1v
ZHVsZUdyYXBoLCBtb2R1bGVOYW1lKTsKKyAgICByZXR1cm4gbW9kdWxlR3JhcGg7Cit9CisKK1Jl
ZjxNb2R1bGVHcmFwaD4gTW9kdWxlR3JhcGg6OmNyZWF0ZShFbGVtZW50JiBlbGVtZW50LCBjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIEFTU0VSVChlbGVtZW50LmRv
Y3VtZW50KCkuZnJhbWUoKSk7CisgICAgUmVmPE1vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaCA9IGFk
b3B0UmVmKCpuZXcgTW9kdWxlR3JhcGgoZWxlbWVudCkpOworICAgIGVsZW1lbnQuZG9jdW1lbnQo
KS5mcmFtZSgpLT5zY3JpcHQoKS5wcmVwYXJlTW9kdWxlR3JhcGgobW9kdWxlR3JhcGgsIHNvdXJj
ZUNvZGUpOworICAgIHJldHVybiBtb2R1bGVHcmFwaDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxl
R3JhcGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mYWRmN2ZkMzZiYjk0MGUzNzRlNTgyYTFmYWM3MGJkMzVlNTli
ZWZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9kdWxlR3JhcGhfaAorI2Rl
ZmluZSBNb2R1bGVHcmFwaF9oCisKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVk
ZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRWxlbWVudDsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CisKK2NsYXNzIE1vZHVsZUdy
YXBoIDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlR3JhcGg+IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShNb2R1bGVHcmFwaCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8TW9kdWxlR3JhcGg+IGNyZWF0ZShFbGVtZW50JiwgY29uc3QgU3RyaW5n
JiBtb2R1bGVOYW1lKTsKKyAgICBzdGF0aWMgUmVmPE1vZHVsZUdyYXBoPiBjcmVhdGUoRWxlbWVu
dCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7
IHJldHVybiBtX2VsZW1lbnQ7IH0KKyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtl
eSgpIHsgcmV0dXJuIG1fbW9kdWxlS2V5OyB9CisKKyAgICB2b2lkIGV2YWx1YXRlKCk7CisKKyAg
ICBXZWFrUHRyPE1vZHVsZUdyYXBoPiB3ZWFrUHRyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlm
eUxvYWRlZChjb25zdCBKU0M6OklkZW50aWZpZXImKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNp
dCBNb2R1bGVHcmFwaChFbGVtZW50Jik7CisKKyAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CisgICAg
SlNDOjpJZGVudGlmaWVyIG1fbW9kdWxlS2V5OworICAgIFdlYWtQdHJGYWN0b3J5PE1vZHVsZUdy
YXBoPiBtX3dlYWtQdHJGYWN0b3J5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUxvYWRlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDkyNDI4MjEzMmU4YzVhM2Q0NGUxZWY3ZDkyZDM1ZTQ4M2ZjMTI2NQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVMb2FkZXIuY3BwCkBAIC0wLDAg
KzEsMTQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1v
ZHVsZUxvYWRlci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
KyNpbmNsdWRlICJNaWNyb1Rhc2suaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNNb2R1bGVSZWNv
cmQuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworTW9kdWxlTG9hZGVyOjpNb2R1bGVMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorICAg
IDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fdGltZXIoKnRoaXMsICZNb2R1bGVMb2Fk
ZXI6OnRpbWVyRmlyZWQpCit7CisgICAgZGF0YUxvZygiTW9kdWxlTG9hZGVyIGxvYWRcbiIpOwor
fQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpK
U1ZhbHVlIG1vZHVsZU5hbWVWYWx1ZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyVmFsdWUpCit7Cisg
ICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgaWYg
KG1vZHVsZU5hbWVWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJl
c29sdmUoZXhlYywgbW9kdWxlTmFtZVZhbHVlKTsKKworICAgIC8vIEZJWE1FOiBXZSBub3cgYXNz
dW1lIHRoYXQgbW9kdWxlIG5hbWUgaXMgZWl0aGVyIHN5bWJvbCBvciBzdHJpbmcuCisgICAgLy8g
V2hlbiBleHBvc2luZyB0aGUgcmVmbGVjdGlvbiB0byB0aGUgbW9kdWxlIGxvYWRlciBhbmQgbW9k
dWxlcywgd2UgbmVlZCB0byByZWNhc3QgdGhpcyBwYXJ0LgorICAgIEFTU0VSVChtb2R1bGVOYW1l
VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgU3RyaW5nIG1vZHVsZU5hbWUgPSBKU0M6OmpzQ2FzdDxK
U0M6OkpTU3RyaW5nKj4obW9kdWxlTmFtZVZhbHVlKS0+dmFsdWUoZXhlYyk7CisKKyAgICAvLyBO
b3csIHdlIGNvbnNpZGVyIHRoZSBnaXZlbiBtb2R1bGVOYW1lIGFzIHRoZSBzYW1lIHRvIHRoZSBz
cmM9Ii4uLiIgaW4gdGhlIHNjcmlwdCB0YWcuCisgICAgLy8gV2UgdXNlIHRoZSBjb21wbGV0ZWQg
VVJMIGFzIHRoZSBtb2R1bGUga2V5LgorICAgIC8vCisgICAgLy8gRklYTUU6IFdlIG5lZWQgc2l0
ZSBwYWNrYWdpbmcgc3lzdGVtLiBCdXQgaXQncyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYyB5ZXQu
CisgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jYnJvd3Nlci1sb2FkZXIt
cHJvdG90eXBlLSU0MCU0MHJlc29sdmUKKyAgICBVUkwgY29tcGxldGVkVVJMOworCisgICAgLy8g
RklYTUU6IENoZWNrIG1fZG9jdW1lbnQgbGlmZXRpbWUuCisgICAgaWYgKHJlZmVycmVyVmFsdWUu
aXNTeW1ib2woKSkKKyAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVS
TChtb2R1bGVOYW1lKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHJlZmVycmVyVmFsdWUuaXNV
bmRlZmluZWQoKSkKKyAgICAgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxl
dGVVUkwobW9kdWxlTmFtZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKHJl
ZmVycmVyVmFsdWUuaXNTdHJpbmcoKSk7CisgICAgICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBK
U0M6OmpzQ2FzdDxKU0M6OkpTU3RyaW5nKj4ocmVmZXJyZXJWYWx1ZSktPnZhbHVlKGV4ZWMpOwor
ICAgICAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVO
YW1lLCBVUkwoUGFyc2VkVVJMU3RyaW5nLCByZWZlcnJlcikpOworICAgICAgICB9CisgICAgfQor
ICAgIGlmICghY29tcGxldGVkVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIGRlZmVycmVk
LT5yZWplY3QoZXhlYywgY3JlYXRlRE9NRXhjZXB0aW9uKGV4ZWMsIFNZTlRBWF9FUlIpKTsKKwor
ICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBqc1N0cmluZyhleGVjLCBjb21wbGV0
ZWRVUkwuc3RyaW5nKCkpKTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9h
ZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUpCit7CisgICAgLy8gRklYTUU6
IFdoZW4gaW1wbGVtZW50aW5nIHJlZmxlY3RpdmUgbW9kdWxlIGxvYWRlciBhbmQgbW9kdWxlcywg
d2Ugc2hvdWxkIHJlY2FzdCB0aGlzIGltcGxlbWVudGF0aW9uLgorICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworCisgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghbW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSwgIlN5bWJvbGljIG1vZHVsZSBrZXkgc2hvdWxk
IGJlIGFscmVhZHkgZnVsZmlsbGVkIHdpdGggdGhlIGlubGluZWQgcmVzb3VyY2UuIik7CisgICAg
QVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOworCisgICAgVVJMIGNvbXBsZXRlZFVS
TChQYXJzZWRVUkxTdHJpbmcsIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykp
OworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoY29tcGxldGVkVVJMLmlzVmFsaWQoKSwgIlRoZSBy
ZXNvbHZlIGhvb2sgc2hvdWxkIHByb2R1Y2UgdGhlIHZhbGlkIFVSTCBhcyBhIHN0cmluZy4iKTsK
KworICAgIFJlZjxNb2R1bGVGZXRjaGVyPiBmZXRjaGVyID0gTW9kdWxlRmV0Y2hlcjo6Y3JlYXRl
KEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgY29tcGxldGVk
VVJMLCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7CisgICAgbV9mZXRjaGluZ1NldC5hZGQoJmZldGNo
ZXIuZ2V0KCkpOworICAgIGZldGNoZXItPnJ1bigpOworCisgICAgcmV0dXJuIGRlZmVycmVkLT5w
cm9taXNlKCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVs
ZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUpCit7CisgICAgLy8gRklY
TUU6IEN1cnJlbnRseSwgd2Ugb25seSBzdXBwb3J0IEpTTW9kdWxlUmVjb3JkLgorICAgIEpTQzo6
SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpT
TW9kdWxlUmVjb3JkKj4obW9kdWxlUmVjb3JkVmFsdWUpOworICAgIGlmICghbW9kdWxlUmVjb3Jk
KQorICAgICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworCisgICAgVVJMIHNvdXJjZVVS
TDsKKyAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgc291cmNlVVJM
ID0gbV9kb2N1bWVudC51cmwoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1vZHVsZUtl
eVZhbHVlLmlzU3RyaW5nKCkpOworICAgICAgICBzb3VyY2VVUkwgPSBVUkwoUGFyc2VkVVJMU3Ry
aW5nLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKGV4ZWMpKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gbV9kb2N1bWVudC5mcmFtZSgpLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3Vy
Y2VVUkwsIG1vZHVsZVJlY29yZCk7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5p
c2hlZChNb2R1bGVGZXRjaGVyKiBmZXRjaGVyKQoreworICAgIG1fZmV0Y2hpbmdTZXQucmVtb3Zl
KGZldGNoZXIpOworfQorCit2b2lkIE1vZHVsZUxvYWRlcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFk
eShNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGgpCit7CisgICAgbV9tb2R1bGVHcmFwaHNUb0V4ZWN1
dGUuYXBwZW5kKFBlbmRpbmdNb2R1bGVHcmFwaCB7ICZtb2R1bGVHcmFwaC0+ZWxlbWVudCgpLCBt
b2R1bGVHcmFwaCB9KTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBN
b2R1bGVMb2FkZXI6OnRpbWVyRmlyZWQoKQoreworICAgIFJlZjxEb2N1bWVudD4gcHJvdGVjdCht
X2RvY3VtZW50KTsKKyAgICBWZWN0b3I8UGVuZGluZ01vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaHM7
CisgICAgbW9kdWxlR3JhcGhzLnN3YXAobV9tb2R1bGVHcmFwaHNUb0V4ZWN1dGUpOworCisgICAg
Zm9yIChQZW5kaW5nTW9kdWxlR3JhcGgmIHBlbmRpbmdNb2R1bGVHcmFwaCA6IG1vZHVsZUdyYXBo
cykgeworICAgICAgICBwZW5kaW5nTW9kdWxlR3JhcGgubW9kdWxlR3JhcGgtPmV2YWx1YXRlKCk7
CisgICAgICAgIE1pY3JvVGFza1F1ZXVlOjpzaW5nbGV0b24oKS5ydW5NaWNyb1Rhc2tzKCk7Cisg
ICAgICAgIHBlbmRpbmdNb2R1bGVHcmFwaC5jbGVhcigpOworICAgIH0KK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL01vZHVsZUxvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNWIyMzk4NWI2NjJjMGY5ZmZmMTM0MWVl
OWFlYWIxYzYwNjBlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9k
dWxlTG9hZGVyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9kdWxl
TG9hZGVyX2gKKyNkZWZpbmUgTW9kdWxlTG9hZGVyX2gKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKyNp
bmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIlVSTC5oIgorI2luY2x1ZGUgIlVSTEhhc2guaCIK
KyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNz
IE1vZHVsZUxvYWRlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxlTG9hZGVyKTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTW9kdWxlTG9h
ZGVyKERvY3VtZW50Jik7CisKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fZG9jdW1lbnQ7CisgICAgfQorCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlz
ZSogcmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyKTsKKyAgICBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5KTsKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCk7CisKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVk
KE1vZHVsZUZldGNoZXIqKTsKKyAgICB2b2lkIG5vdGlmeU1vZHVsZUdyYXBoUmVhZHkoTW9kdWxl
R3JhcGgqKTsKKworICAgIHZvaWQgdGltZXJGaXJlZCgpOworCisgICAgc3RydWN0IFBlbmRpbmdN
b2R1bGVHcmFwaCB7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50OworICAgICAgICBS
ZWZQdHI8TW9kdWxlR3JhcGg+IG1vZHVsZUdyYXBoOworCisgICAgICAgIHZvaWQgY2xlYXIoKQor
ICAgICAgICB7CisgICAgICAgICAgICBlbGVtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgICAgIG1v
ZHVsZUdyYXBoID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH07CisKK3ByaXZhdGU6CisgICAg
RG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgSGFzaFNldDxSZWZQdHI8TW9kdWxlRmV0Y2hlcj4+
IG1fZmV0Y2hpbmdTZXQ7CisgICAgVmVjdG9yPFBlbmRpbmdNb2R1bGVHcmFwaD4gbV9tb2R1bGVH
cmFwaHNUb0V4ZWN1dGU7CisgICAgVGltZXIgbV90aW1lcjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUxvYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggNjZiYmVjZTFkMzVlMWE0NzYzYmY5ZWJlYmYwZjBjMTJjZGJlZjFk
Ny4uM2JlZjRlNmU5ZDMzMTFiNDdkYjBmNjE5MDU5NmEzYjYyY2VmZDEzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkhUTUxQ
YXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNy
ZW1lbnRlci5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNb2R1
bGVHcmFwaC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2lu
Y2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIKQEAgLTE2MSw2ICsxNjIsMTAgQEAgYm9vbCBTY3Jp
cHRFbGVtZW50Ojppc1NjcmlwdFR5cGVTdXBwb3J0ZWQoTGVnYWN5VHlwZVN1cHBvcnQgc3VwcG9y
dExlZ2FjeVR5cGVzKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmIChN
SU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh0eXBlLnN0cmlw
V2hpdGVTcGFjZSgpLmxvd2VyKCkpIHx8IChzdXBwb3J0TGVnYWN5VHlwZXMgPT0gQWxsb3dMZWdh
Y3lUeXBlSW5UeXBlQXR0cmlidXRlICYmIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1
YWdlKHR5cGUpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CisvLyAjaWYgRU5BQkxFKEVTNl9NT0RV
TEVTKQorICAgIGVsc2UgaWYgKHR5cGUgPT0gIm1vZHVsZSIpCisgICAgICAgIHJldHVybiB0cnVl
OworLy8gI2VuZGlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0yMTcsNiArMjIyLDkgQEAg
Ym9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2Ny
aXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBlbHNlCiAgICAgICAgIG1fY2hhcmFjdGVyRW5j
b2RpbmcgPSBkb2N1bWVudC5jaGFyc2V0KCk7CiAKKyAgICBpZiAoaXNNb2R1bGVUeXBlKCkpCisg
ICAgICAgIHJldHVybiBwcmVwYXJlTW9kdWxlR3JhcGgoc2NyaXB0U3RhcnRQb3NpdGlvbik7CisK
ICAgICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpCiAgICAgICAgIGlmICghcmVxdWVzdFNjcmlw
dChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTMxNyw2ICszMjUsNyBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OnN0b3BMb2FkUmVxdWVzdCgpCiAg
ICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICBt
X2NhY2hlZFNjcmlwdCA9IDA7CiAgICAgfQorICAgIC8vIEZJWE1FOiBUaGUgbW9kdWxlIGxvYWRl
ciBzaG91bGQgaGF2ZSB0aGUgbWVjaGFuaXNtIHRvIHN0b3AgbG9hZGluZy4KIH0KIAogdm9pZCBT
Y3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQpAQCAtMzMy
LDYgKzM0MSw0MSBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGUoQ2FjaGVkU2NyaXB0KiBj
YWNoZWRTY3JpcHQpCiAgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CiB9CiAK
K2Jvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZU1vZHVsZUdyYXBoKGNvbnN0IFRleHRQb3NpdGlv
biYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3sKKyAgICAvLyBUaGUgYnJvd3NlciBtb2R1bGUgbG9h
ZGVyIGxvYWRzIHRoZSBtb2R1bGUgc291cmNlcy4KKyAgICAvLyBTaW5jZSB0aGUgbW9kdWxlIGlu
dm9sdmVzIGxvYWRpbmcgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzIGFuZCB0aGUgZGVwZW5kZW50
IG1vZHVsZXMgZG9lcyBub3QgaGF2ZSBjb3JyZXNwb25kaW5nIHNjcmlwdCBlbGVtZW50cywKKyAg
ICAvLyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBsb2FkaW5nIG1vZHVsZXMgaXMgc2VwYXJhdGVkIGZy
b20gdGhlIHNjcmlwdCBlbGVtZW50LgorICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgewor
ICAgICAgICBTdHJpbmcgc291cmNlVXJsID0gc291cmNlQXR0cmlidXRlVmFsdWUoKTsKKyAgICAg
ICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50KG1fZWxlbWVudC5kb2N1bWVudCgpKTsK
KyAgICAgICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJs
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBTY3JpcHQgZWxlbWVu
dCBtYXkgYmUgZGV0YWNoZWQgYW5kIGF0dGFjaGVkIHRvIGEgZGlmZmVyZW50IGRvY3VtZW50IHdo
aWxlIGV4ZWN1dGluZyB0aGUgZXZlbnQgbGlzdGVuZXIuCisgICAgICAgIGlmICghbV9lbGVtZW50
LmluRG9jdW1lbnQoKSB8fCAmbV9lbGVtZW50LmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVu
dC5wdHIoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoc3RyaXBM
ZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgc3VwcG9ydCBjcm9zcy1vcmln
aW4gbW9kZS4gSG93ZXZlciwgYmVjYXVzZSBjdXJyZW50bHkgd2UgZG9uJ3QgaGF2ZSB0aGUgcG9s
aWN5IHRvIGFwcGx5IHRoaXMgdG8gdGhlIGxvYWRpbmdzIG9mIHRoZSBkZXBlbmRlbnQgbW9kdWxl
cywgd2UgaGF2ZSBub3QgaW1wbGVtZW50ZWQgdGhpcyB5ZXQuCisKKyAgICAgICAgbV9tb2R1bGVH
cmFwaCA9IE1vZHVsZUdyYXBoOjpjcmVhdGUobV9lbGVtZW50LCBzb3VyY2VBdHRyaWJ1dGVWYWx1
ZSgpKTsKKyAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgaWYgKG1fZWxlbWVudC5kb2N1bWVudCgpLmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5hbGxvd0lubGluZVNjcmlwdChtX2VsZW1lbnQuZG9jdW1lbnQoKS51cmwo
KSwgbV9zdGFydExpbmVOdW1iZXIsIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgp
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgLy8gUmVzZXQgbGluZSBudW1iZXJpbmcgZm9y
IG5lc3RlZCB3cml0ZXMuCisgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gbV9lbGVtZW50LmRv
Y3VtZW50KCkuaXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlvbigpIDogc2NyaXB0U3Rh
cnRQb3NpdGlvbjsKKyAgICBtX21vZHVsZUdyYXBoID0gTW9kdWxlR3JhcGg6OmNyZWF0ZShtX2Vs
ZW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0Q29udGVudCgpLCBtX2VsZW1lbnQuZG9jdW1l
bnQoKS51cmwoKSwgcG9zaXRpb24pKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBTY3Jp
cHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAg
ICAgQVNTRVJUKCFtX3dpbGxCZVBhcnNlckV4ZWN1dGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5oCmluZGV4IGI3ZTczZDBkZWU4M2QzMjRlODcyZjdiYzRjMWI5MzNkYzk2YzExMmEuLjQx
YTA3MzliOTc0MmE2Y2M2ZjMxYWI4ZGY2YjUyZDRlZTM5MjdkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRWxlbWVudDsKK2Ns
YXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNvdXJj
ZUNvZGU7CiAKQEAgLTgyLDYgKzgzLDggQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUg
Q2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgcmVxdWVzdFNjcmlwdChjb25zdCBTdHJp
bmcmIHNvdXJjZVVybCk7CiAgICAgdm9pZCBzdG9wTG9hZFJlcXVlc3QoKTsKIAorICAgIGJvb2wg
cHJlcGFyZU1vZHVsZUdyYXBoKGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlv
bik7CisKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkgY29u
c3QgPSAwOwpAQCAtOTMsNiArOTYsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFs
dWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVUeXBlKCkgY29uc3QgPSAwOwogCiAgICAgRWxl
bWVudCYgbV9lbGVtZW50OwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4g
bV9jYWNoZWRTY3JpcHQ7CkBAIC0xMDksNiArMTEzLDcgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6
IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgbV9yZXF1ZXN0VXNlc0Fj
Y2Vzc0NvbnRyb2wgOiAxOwogICAgIFN0cmluZyBtX2NoYXJhY3RlckVuY29kaW5nOwogICAgIFN0
cmluZyBtX2ZhbGxiYWNrQ2hhcmFjdGVyRW5jb2Rpbmc7CisgICAgUmVmUHRyPE1vZHVsZUdyYXBo
PiBtX21vZHVsZUdyYXBoOwogfTsKIAogU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZShFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCmluZGV4IGUxM2E1Y2RkY2NhMmNiM2I3NTZhOGQzYTU3ZTIzZjgwYTliNDNlNDguLjc1Njc3
OWU3YTUwZDVjNGFjYzNkZDM5NzM5MjUxMGZjOTdhZTY0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNjEsNiArMTYxLDE1IEBAIGJvb2wgSFRNTFNj
cmlwdEVsZW1lbnQ6Omhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhc3RI
YXNBdHRyaWJ1dGUoc3JjQXR0cik7CiB9CiAKK2Jvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9k
dWxlVHlwZSgpIGNvbnN0Cit7CisvLyAjaWYgRU5BQkxFKEVTNl9NT0RVTEVTKQorICAgIHJldHVy
biBmYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKS5zdHJpbmcoKSA9PSAibW9kdWxlIjsKKy8vICNl
bHNlCisvLyAgICByZXR1cm4gZmFsc2U7CisvLyAjZW5kaWYKK30KKwogdm9pZCBIVE1MU2NyaXB0
RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogewogICAgIEFTU0VSVCghaGF2ZUZpcmVkTG9h
ZEV2ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDMx
MmM2NjI2ZThiODMxNGU4NWUyZGY2ODdkYmYwOWYyYjJmZTM3YjIuLjFkZmQ4YzhiNzNlODcyYWJj
ZDVlYjRiMzQyZTc5MmQzMzUwM2U3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKICAgICB2aXJ0dWFs
IGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc01vZHVsZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaExvYWRFdmVudCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5jcHAKaW5kZXggOGFkZmNmYTQxMGFiZTQ3ZTMzMjRhZTViOGQ5MjQzZjU2NjY0NWQ5NS4u
YmE1ZjA2ZjQ0YjZiMTE3ZmNiYjYyMzM1MzhlMmUxNGNkN2Y4ZTY5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtMTUxLDYgKzE1MSwxMSBAQCBib29sIFNWR1Nj
cmlwdEVsZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorYm9vbCBTVkdTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAorewor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VB
dHRyaWJ1dGUoKSBjb25zdAogewogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1lczo6
aHJlZkF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggNTM1ZTQy
ZTZmMDY0NmQ4MDEwNDE5MDkzYzYyMjkyNGIzODNkNzEwMS4uOGFmZGUzMTEyNWU1ZGQ0OThkYjgy
YTRlMDk4M2FiMDc0ZTBkY2M2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nj
cmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5o
CkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
U1ZHRWxlbWVudAogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGUgeyBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261183</attachid>
            <date>2015-09-15 03:00:36 -0700</date>
            <delta_ts>2015-09-18 17:36:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150915030021.patch</filename>
            <type>text/plain</type>
            <size>93589</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZDQ5YTdmNWM2NDYzZmEwZDUyMTZkYjQ1ZWY3NzI1NmQ3MGM1MDIwLi43MmFhNjQ3YWQzYjAyYjY0
N2Q5ZGU3MTM4MjgzMWQ5NGNmNzZlMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxNS0wOS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ1aWx0
aW5zL01vZHVsZUxvYWRlck9iamVjdC5qczoKKyAgICAgICAgKG1vZHVsZUV2YWx1YXRpb24pOgor
ICAgICAgICAobG9hZE1vZHVsZUdyYXBoKToKKyAgICAgICAgKHByZXBhcmVNb2R1bGVHcmFwaCk6
CisgICAgICAgIChsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaCk6CisgICAgICAgIChsb2FkTW9k
dWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoZnVuY3Rpb25Mb2Fk
TW9kdWxlKToKKyAgICAgICAgKHJ1bldpdGhTY3JpcHRzKToKKyAgICAgICAgKiBydW50aW1lL0Nv
bXBsZXRpb24uY3BwOgorICAgICAgICAoSlNDOjppZGVudGlmaWVyVG9KU1ZhbHVlKToKKyAgICAg
ICAgKEpTQzo6bG9hZE1vZHVsZUdyYXBoKToKKyAgICAgICAgKEpTQzo6cHJlcGFyZU1vZHVsZUdy
YXBoKToKKyAgICAgICAgKEpTQzo6bGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGgpOgorICAgICAg
ICAoSlNDOjpldmFsdWF0ZU1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Db21w
bGV0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVS
ZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpKU01vZHVsZVJlY29yZDo6ZXZhbHVhdGUpOgorICAg
ICAgICAoSlNDOjpKU01vZHVsZVJlY29yZDo6ZXhlY3V0ZSk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9KU01vZHVsZVJlY29yZC5oOgorICAgICAgICAqIHJ1bnRpbWUvTW9kdWxlTG9hZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TW9kdWxlTG9hZGVyT2JqZWN0Ojpsb2FkTW9kdWxl
R3JhcGgpOgorICAgICAgICAoSlNDOjpNb2R1bGVMb2FkZXJPYmplY3Q6OnByZXBhcmVNb2R1bGVH
cmFwaCk6CisgICAgICAgIChKU0M6Ok1vZHVsZUxvYWRlck9iamVjdDo6bGlua0FuZEV2YWx1YXRl
TW9kdWxlR3JhcGgpOgorICAgICAgICAoSlNDOjpNb2R1bGVMb2FkZXJPYmplY3Q6OmV2YWx1YXRl
KToKKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyT2JqZWN0RXZhbHVhdGUpOgorICAgICAgICAo
SlNDOjpNb2R1bGVMb2FkZXJPYmplY3Q6OmxvYWRNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvTW9kdWxlTG9hZGVyT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TeW1ib2wu
aDoKKwogMjAxNS0wOS0xNCAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICByZW5hbWUgY2FsbEZyYW1lRm9yVGhyb3cgdG8gY2FsbEZyYW1lRm9yQ2F0Y2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxZWQxZDI1YTIyNDY2ZGNjYjVkYzMxMDU3MzNkY2Y4NmRmZTY5NTU2Li42MjI3Zjkx
ZTQ1NmJhZTAwMjFmYWVjNGU3Njc5ZDk4OTZmMTNmMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
ODYgQEAKKzIwMTUtMDktMTUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGludG8gV2ViQ29yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IChPT1BTISkuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5n
SGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1
bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9k
dWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1
bGVMb2FkZXJFdmFsdWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OnByZXBhcmVNb2R1bGVHcmFwaCk6
CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0
ZU1vZHVsZUdyYXBoKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3Bl
QmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250cm9sbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZU1vZHVsZUxvYWRlckFzeW5jaHJvbm91c0Vy
cm9yUmVwb3J0RnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6
cHJlcGFyZU1vZHVsZUdyYXBoSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250
cm9sbGVyOjpwcmVwYXJlTW9kdWxlR3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29u
dHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGhJbldvcmxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUdyYXBoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVmFsdWVUb01vZHVsZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRDb250cm9sbGVyOjppbml0TW9kdWxlR3JhcGgpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6Om1v
ZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1vZHVsZUxvYWRlcik6CisgICAgICAg
ICogZG9tL01vZHVsZUZldGNoZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVs
ZUZldGNoZXI6Ok1vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hl
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6OnJ1bik6CisgICAg
ICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICog
ZG9tL01vZHVsZUZldGNoZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRj
aGVyOjptb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6Y2FjaGVk
U2NyaXB0KToKKyAgICAgICAgKiBkb20vTW9kdWxlR3JhcGguY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpNb2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpN
b2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBo
Ojpub3RpZnlFcnJvcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlF
eGVjdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6ZXZhbHVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL01vZHVs
ZUdyYXBoLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om1vZHVsZUtleSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVHcmFwaDo6d2Vha1B0cik6CisgICAgICAgICogZG9tL01vZHVsZUxvYWRl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpNb2R1bGVMb2Fk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpyZXNvbHZlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxl
TG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6Om5vdGlm
eUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6bm90aWZ5TW9kdWxl
R3JhcGhSZWFkeSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OnRpbWVyRmlyZWQp
OgorICAgICAgICAqIGRvbS9Nb2R1bGVMb2FkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVMb2FkZXI6OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRl
cjo6UGVuZGluZ01vZHVsZUdyYXBoOjpjbGVhcik6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3Vw
cG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVNb2R1bGVHcmFwaCk6CisgICAg
ICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5
cGUpOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50
Ojppc01vZHVsZVR5cGUpOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisKIDIw
MTUtMDktMTQgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgUG9s
aXNoIGNvZGUgZm9yIHIxODk1NzkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvTW9kdWxlTG9hZGVyT2JqZWN0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL01vZHVsZUxvYWRlck9iamVjdC5qcwppbmRleCAxNjA2MmU2ZDc0ZGEzYjc2ZTgxYjU4
NWZlZTFjZWZjMzAwY2M1MTM1Li4yZTA4NmIwNGU2MDc4MDhhMDk3YzcwNTcxNzgxNDA4N2YwMGQ1
MDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTW9kdWxlTG9h
ZGVyT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Nb2R1bGVM
b2FkZXJPYmplY3QuanMKQEAgLTQ4MywyMiArNDgzLDEwIEBAIGZ1bmN0aW9uIG1vZHVsZUV2YWx1
YXRpb24obW9kdWxlUmVjb3JkKQogICAgICAgICB2YXIgcmVxdWlyZWRNb2R1bGVSZWNvcmQgPSBw
YWlyLnZhbHVlOwogICAgICAgICB0aGlzLm1vZHVsZUV2YWx1YXRpb24ocmVxdWlyZWRNb2R1bGVS
ZWNvcmQpOwogICAgIH0KLSAgICB0aGlzLmV2YWx1YXRlKG1vZHVsZVJlY29yZCk7CisgICAgdGhp
cy5ldmFsdWF0ZShlbnRyeS5rZXksIG1vZHVsZVJlY29yZCk7CiB9CiAKLWZ1bmN0aW9uIGxvYWRN
b2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIpCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAg
dmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgLy8gTG9hZGVyLnJlc29sdmUgaG9vayBwb2ludC4KLSAg
ICAvLyByZXNvbHZlOiBtb2R1bGVOYW1lID0+IFByb21pc2UobW9kdWxlS2V5KQotICAgIC8vIFRh
a2UgdGhlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0
aGUgcmVzb3VyY2UgbG9jYXRpb24uCi0gICAgLy8gRm9yIGV4YW1wbGUsIHRha2UgdGhlICJqcXVl
cnkiIGFuZCByZXR1cm4gdGhlIFVSTCBmb3IgdGhlIHJlc291cmNlLgotICAgIHJldHVybiB0aGlz
LnJlc29sdmUobW9kdWxlTmFtZSwgcmVmZXJyZXIpLnRoZW4oZnVuY3Rpb24gKGtleSkgewotICAg
ICAgICByZXR1cm4gbG9hZGVyLnJlcXVlc3RSZWFkeShrZXkpOwotICAgIH0pOwotfQorLy8gQVBJ
cyB0byBjb250cm9sIHRoZSBtb2R1bGUgbG9hZGVyLgogCiBmdW5jdGlvbiBwcm92aWRlKGtleSwg
c3RhZ2UsIHZhbHVlKQogewpAQCAtNTM1LDMgKzUyMyw0MCBAQCBmdW5jdGlvbiBwcm92aWRlKGtl
eSwgc3RhZ2UsIHZhbHVlKQogCiAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlcXVlc3RlZCBt
b2R1bGUgaXMgYWxyZWFkeSByZWFkeSB0byBiZSBleGVjdXRlZC4iKTsKIH0KKworZnVuY3Rpb24g
bG9hZE1vZHVsZUdyYXBoKG1vZHVsZU5hbWUsIHJlZmVycmVyKQoreworICAgICJ1c2Ugc3RyaWN0
IjsKKworICAgIHZhciBsb2FkZXIgPSB0aGlzOworICAgIC8vIExvYWRlci5yZXNvbHZlIGhvb2sg
cG9pbnQuCisgICAgLy8gcmVzb2x2ZTogbW9kdWxlTmFtZSA9PiBQcm9taXNlKG1vZHVsZUtleSkK
KyAgICAvLyBUYWtlIHRoZSBuYW1lIGFuZCByZXNvbHZlIGl0IHRvIHRoZSB1bmlxdWUgaWRlbnRp
ZmllciBmb3IgdGhlIHJlc291cmNlIGxvY2F0aW9uLgorICAgIC8vIEZvciBleGFtcGxlLCB0YWtl
IHRoZSAianF1ZXJ5IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJjZS4KKyAgICBy
ZXR1cm4gdGhpcy5yZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyKS50aGVuKGZ1bmN0aW9uIChr
ZXkpIHsKKyAgICAgICAgcmV0dXJuIGxvYWRlci5yZXF1ZXN0UmVhZHkoa2V5KTsKKyAgICB9KTsK
K30KKworZnVuY3Rpb24gcHJlcGFyZU1vZHVsZUdyYXBoKG1vZHVsZU5hbWUsIHJlZmVycmVyKQor
eworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIHZhciBsb2FkZXIgPSB0aGlzOworICAgIC8vIExv
YWRlci5yZXNvbHZlIGhvb2sgcG9pbnQuCisgICAgLy8gcmVzb2x2ZTogbW9kdWxlTmFtZSA9PiBQ
cm9taXNlKG1vZHVsZUtleSkKKyAgICAvLyBUYWtlIHRoZSBuYW1lIGFuZCByZXNvbHZlIGl0IHRv
IHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIGxvY2F0aW9uLgorICAgIC8v
IEZvciBleGFtcGxlLCB0YWtlIHRoZSAianF1ZXJ5IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRo
ZSByZXNvdXJjZS4KKyAgICByZXR1cm4gdGhpcy5yZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVy
KS50aGVuKGZ1bmN0aW9uIChrZXkpIHsKKyAgICAgICAgcmV0dXJuIGxvYWRlci5yZXF1ZXN0SW5z
dGFudGlhdGVBbGwoa2V5KTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uIChlbnRyeSkgeworICAgICAg
ICByZXR1cm4gZW50cnkua2V5OworICAgIH0pOworfQorCitmdW5jdGlvbiBsaW5rQW5kRXZhbHVh
dGVNb2R1bGVHcmFwaChrZXkpCit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgcmV0dXJuIHRo
aXMucmVxdWVzdFJlYWR5KGtleSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDVjZDkyNzg4
NDJmNmRkNTVlNGY4ODI0YjFkYTA1M2I4YTdkY2YyYWUuLjhiZTk4NDJjNzA1YjlhM2Y2MGJmNmRi
MWQ1YzQ3YjYwOGNjZWY3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC03MDksNyArNzA5LDcg
QEAgY2xhc3MgR2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKIH07CiAKIGNv
bnN0IENsYXNzSW5mbyBHbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgImdsb2JhbCIsICZKU0dsb2Jh
bE9iamVjdDo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdsb2JhbE9iamVj
dCkgfTsKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEdsb2JhbE9iamVjdDo6c19nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2Zp
bGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZq
YXZhU2NyaXB0UnVudGltZUZsYWdzLCAwLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGlt
ZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwg
bnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgR2xvYmFsT2JqZWN0Ojpz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRz
UHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlw
dCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsIDAsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZv
cmVUaW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRlckZldGNoLCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyIH07CiAKIAogR2xvYmFsT2JqZWN0OjpHbG9iYWxPYmplY3Qo
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTE0NzMsNyArMTQ3Myw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBpZiAoIWZldGNoU2NyaXB0RnJvbUxvY2FsRmlsZVN5c3RlbShmaWxlTmFtZSwgc2Ny
aXB0KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT52bSgpLnRocm93RXhj
ZXB0aW9uKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IG9w
ZW4gZmlsZS4iKSkpKTsKIAotICAgIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gZXZhbHVh
dGVNb2R1bGUoZXhlYywgZmlsZU5hbWUpOworICAgIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNl
ID0gbG9hZE1vZHVsZUdyYXBoKGV4ZWMsIGZpbGVOYW1lKTsKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAKQEAgLTE2NDYsNyArMTY0Niw3IEBAIHN0YXRpYyBib29sIHJ1bldpdGhTY3JpcHRzKEdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8U2NyaXB0PiYgc2NyCiAgICAgICAg
IGlmIChzY3JpcHRzW2ldLmlzRmlsZSkgewogICAgICAgICAgICAgZmlsZU5hbWUgPSBzY3JpcHRz
W2ldLmFyZ3VtZW50OwogICAgICAgICAgICAgaWYgKG1vZHVsZSkKLSAgICAgICAgICAgICAgICBw
cm9taXNlID0gZXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGZpbGVO
YW1lKTsKKyAgICAgICAgICAgICAgICBwcm9taXNlID0gbG9hZE1vZHVsZUdyYXBoKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRXhlYygpLCBmaWxlTmFtZSk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgICAgICBpZiAoIWZldGNoU2NyaXB0RnJvbUxvY2FsRmlsZVN5c3RlbShmaWxlTmFtZSwg
c2NyaXB0QnVmZmVyKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBmYWls
IGVhcmx5IHNvIHdlIGNhbiBjYXRjaCBtaXNzaW5nIGZpbGVzCkBAIC0xNjYyLDcgKzE2NjIsNyBA
QCBzdGF0aWMgYm9vbCBydW5XaXRoU2NyaXB0cyhHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Y29uc3QgVmVjdG9yPFNjcmlwdD4mIHNjcgogCiAgICAgICAgIGlmIChtb2R1bGUpIHsKICAgICAg
ICAgICAgIGlmICghcHJvbWlzZSkKLSAgICAgICAgICAgICAgICBwcm9taXNlID0gZXZhbHVhdGVN
b2R1bGUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGpzY1NvdXJjZShzY3JpcHRCdWZmZXIs
IGZpbGVOYW1lKSk7CisgICAgICAgICAgICAgICAgcHJvbWlzZSA9IGxvYWRNb2R1bGVHcmFwaChn
bG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwganNjU291cmNlKHNjcmlwdEJ1ZmZlciwgZmlsZU5h
bWUpKTsKICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLT5jbGVhckV4Y2Vw
dGlvbigpOwogICAgICAgICAgICAgcHJvbWlzZS0+dGhlbihnbG9iYWxPYmplY3QtPmdsb2JhbEV4
ZWMoKSwgbnVsbHB0ciwgZXJyb3JIYW5kbGVyKTsKICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+
dm0oKS5kcmFpbk1pY3JvdGFza3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tcGxldGlvbi5jcHAKaW5kZXggYjVmNjIzYWNkYTUyMzA1MTE4N2QwZGI1Njg4NTIxMjYyZDg2
MjQ4Yy4uYmZjZjZlMjRkZmRjYmU2NTg1Y2I3MjY3NGEwMDVmZDk4OTkyYTBiYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKQEAgLTExMywyMyArMTEz
LDc3IEBAIEpTVmFsdWUgZXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UsIEpTVmFsdWUgdGhpc1ZhbHVlLCBOCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
c3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBldmFsdWF0ZU1vZHVsZShjb25zdCBKU0xvY2tIb2xk
ZXImLCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBp
ZGVudGlmaWVyVG9KU1ZhbHVlKFZNJiB2bSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikK
IHsKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2FkZXIoKS0+bG9hZE1vZHVsZShl
eGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgaWYgKGlkZW50aWZpZXIuaXNTeW1ib2wo
KSkKKyAgICAgICAgcmV0dXJuIFN5bWJvbDo6Y3JlYXRlKHZtLCBzdGF0aWNfY2FzdDxTeW1ib2xJ
bXBsJj4oKmlkZW50aWZpZXIuaW1wbCgpKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgaWRl
bnRpZmllci5pbXBsKCkpOwogfQogCi1zdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGV2YWx1YXRl
TW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYgbG9jaywgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1lKQorc3Rh
dGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlR3JhcGgoY29uc3QgSlNMb2NrSG9sZGVy
JiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCiB7Ci0gICAgSlNWYWx1ZSBtb2R1bGVOYW1l
VmFsdWU7Ci0gICAgaWYgKG1vZHVsZU5hbWUuaXNTeW1ib2woKSkKLSAgICAgICAgbW9kdWxlTmFt
ZVZhbHVlID0gU3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1w
bCY+KCptb2R1bGVOYW1lLmltcGwoKSkpOwotICAgIGVsc2UKLSAgICAgICAgbW9kdWxlTmFtZVZh
bHVlID0ganNTdHJpbmcoJmV4ZWMtPnZtKCksIG1vZHVsZU5hbWUuaW1wbCgpKTsKKyAgICByZXR1
cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2FkZXIoKS0+bG9hZE1vZHVsZUdyYXBoKGV4ZWMsIG1v
ZHVsZU5hbWUsIHJlZmVycmVyKTsKK30KKworc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2Fk
TW9kdWxlR3JhcGgoY29uc3QgSlNMb2NrSG9sZGVyJiBsb2NrLCBFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZU5hbWUp
Cit7CisgICAgcmV0dXJuIGxvYWRNb2R1bGVHcmFwaChsb2NrLCBleGVjLCBnbG9iYWxPYmplY3Qs
IGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxlTmFtZSksIGpzVW5kZWZpbmVk
KCkpOworfQorCitKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZUdyYXBoKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQoreworICAgIEpTTG9ja0hvbGRlciBsb2Nr
KGV4ZWMpOworICAgIFJFTEVBU0VfQVNTRVJUKGV4ZWMtPnZtKCkuYXRvbWljU3RyaW5nVGFibGUo
KSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5nVGFibGUoKSk7CisgICAgUkVMRUFTRV9B
U1NFUlQoIWV4ZWMtPnZtKCkuaXNDb2xsZWN0b3JCdXN5KCkpOworCisgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKTsKKworICAgIC8v
IEdlbmVyYXRlIHRoZSB1bmlxdWUga2V5IGZvciB0aGUgc291cmNlLXByb3ZpZGVkIG1vZHVsZS4K
KyAgICBQcml2YXRlTmFtZSBwcml2YXRlTmFtZShQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24sICJF
bnRyeVBvaW50TW9kdWxlIik7CisgICAgU3ltYm9sKiBrZXkgPSBTeW1ib2w6OmNyZWF0ZShleGVj
LT52bSgpLCAqcHJpdmF0ZU5hbWUudWlkKCkpOworCisgICAgLy8gSW5zZXJ0IHRoZSBnaXZlbiBz
b3VyY2UgY29kZSB0byB0aGUgTW9kdWxlTG9hZGVyIHJlZ2lzdHJ5IGFzIHRoZSBmZXRjaGVkIHJl
Z2lzdHJ5IGVudHJ5LgorICAgIGdsb2JhbE9iamVjdC0+bW9kdWxlTG9hZGVyKCktPnByb3ZpZGUo
ZXhlYywga2V5LCBNb2R1bGVMb2FkZXJPYmplY3Q6OlN0YXR1czo6RmV0Y2gsIHNvdXJjZS50b1N0
cmluZygpKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgSlNWYWx1
ZSBleGNlcHRpb24gPSBleGVjLT5leGNlcHRpb24oKS0+dmFsdWUoKTsKKyAgICAgICAgZXhlYy0+
Y2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVm
ZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2Jq
ZWN0KTsKKyAgICAgICAgZGVmZXJyZWQtPnJlamVjdChleGVjLCBleGNlcHRpb24pOworICAgICAg
ICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbG9hZE1v
ZHVsZUdyYXBoKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBqc1VuZGVmaW5lZCgpKTsK
K30KKworSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGVHcmFwaChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIG1vZHVsZU5hbWUpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2so
ZXhlYyk7CisgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgp
ID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKKyAgICBSRUxFQVNFX0FT
U0VSVCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1c3koKSk7CisKKyAgICByZXR1cm4gbG9hZE1v
ZHVsZUdyYXBoKGxvY2ssIGV4ZWMsIGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgbW9kdWxl
TmFtZSk7Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlR3JhcGgoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgSlNMb2NrSG9sZGVyIGxv
Y2soZXhlYyk7CisgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJs
ZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKKyAgICBSRUxFQVNF
X0FTU0VSVCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1c3koKSk7CisKKyAgICByZXR1cm4gbG9h
ZE1vZHVsZUdyYXBoKGxvY2ssIGV4ZWMsIGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBtb2R1bGVOYW1lKSk7Cit9CisKK3N0YXRpYyBKU0lu
dGVybmFsUHJvbWlzZSogcHJlcGFyZU1vZHVsZUdyYXBoKGNvbnN0IEpTTG9ja0hvbGRlciYsIEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBtb2R1
bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyKQoreworICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm1v
ZHVsZUxvYWRlcigpLT5wcmVwYXJlTW9kdWxlR3JhcGgoZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJy
ZXIpOworfQogCi0gICAgcmV0dXJuIGV2YWx1YXRlTW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9i
amVjdCwgbW9kdWxlTmFtZVZhbHVlLCBqc1VuZGVmaW5lZCgpKTsKK3N0YXRpYyBKU0ludGVybmFs
UHJvbWlzZSogcHJlcGFyZU1vZHVsZUdyYXBoKGNvbnN0IEpTTG9ja0hvbGRlciYgbG9jaywgRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlm
aWVyJiBtb2R1bGVOYW1lKQoreworICAgIHJldHVybiBwcmVwYXJlTW9kdWxlR3JhcGgobG9jaywg
ZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMtPnZtKCksIG1vZHVs
ZU5hbWUpLCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIGV2YWx1YXRl
TW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQorSlNJbnRl
cm5hbFByb21pc2UqIHByZXBhcmVNb2R1bGVHcmFwaChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSkKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBS
RUxFQVNFX0FTU0VSVChleGVjLT52bSgpLmF0b21pY1N0cmluZ1RhYmxlKCkgPT0gd3RmVGhyZWFk
RGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOwpAQCAtMTUxLDI1ICsyMDUsMjggQEAgSlNJbnRl
cm5hbFByb21pc2UqIGV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNl
Q29kZSYgc291cmNlKQogICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKICAgICB9
CiAKLSAgICByZXR1cm4gZXZhbHVhdGVNb2R1bGUobG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBr
ZXksIGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBwcmVwYXJlTW9kdWxlR3JhcGgobG9jaywg
ZXhlYywgZ2xvYmFsT2JqZWN0LCBrZXksIGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0ludGVybmFs
UHJvbWlzZSogZXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBtb2R1bGVOYW1lKQorSlNJbnRlcm5hbFByb21pc2UqIHByZXBhcmVNb2R1bGVHcmFwaChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKIHsKICAgICBKU0xvY2tIb2xk
ZXIgbG9jayhleGVjKTsKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT52bSgpLmF0b21pY1N0cmlu
Z1RhYmxlKCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOwogICAgIFJF
TEVBU0VfQVNTRVJUKCFleGVjLT52bSgpLmlzQ29sbGVjdG9yQnVzeSgpKTsKIAotICAgIHJldHVy
biBldmFsdWF0ZU1vZHVsZShsb2NrLCBleGVjLCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCks
IG1vZHVsZU5hbWUpOworICAgIHJldHVybiBwcmVwYXJlTW9kdWxlR3JhcGgobG9jaywgZXhlYywg
ZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMs
IG1vZHVsZU5hbWUpKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIGV2YWx1YXRlTW9kdWxlKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQorCitKU0ludGVybmFsUHJv
bWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGgoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBtb2R1bGVLZXkpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAg
ICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRo
cmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKICAgICBSRUxFQVNFX0FTU0VSVCghZXhl
Yy0+dm0oKS5pc0NvbGxlY3RvckJ1c3koKSk7CiAKLSAgICByZXR1cm4gZXZhbHVhdGVNb2R1bGUo
bG9jaywgZXhlYywgZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKGV4ZWMsIG1vZHVsZU5hbWUpKTsKKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpOworCisgICAgcmV0dXJuIGdsb2JhbE9i
amVjdC0+bW9kdWxlTG9hZGVyKCktPmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUdyYXBoKGV4ZWMsIGlk
ZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxlS2V5KSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
cGxldGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCmlu
ZGV4IGNiMDkxZmYxNjRiMjI4ZGMwMmMyMjNkZDFlZDhjZDY0ODI5MTVhNjUuLjIxZmQ4ZGEwMDlk
MGE0YjdhMDg2OGU3MWRlZWE0Y2FlOTUzYjU0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21wbGV0aW9uLmgKQEAgLTQ1LDkgKzQ1LDE4IEBAIGlubGluZSBKU1ZhbHVlIGV2
YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlQ29kZSwgSlNW
YWx1ZSB0CiAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiB1bnVzZWQ7CiAgICAgcmV0dXJuIGV2YWx1
YXRlKGV4ZWMsIHNvdXJjZUNvZGUsIHRoaXNWYWx1ZSwgdW51c2VkKTsKIH0KLUpTX0VYUE9SVF9Q
UklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBldmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25z
dCBTb3VyY2VDb2RlJik7Ci1KU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlzZSogZXZh
bHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlTmFtZSk7Ci1K
U19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlzZSogZXZhbHVhdGVNb2R1bGUoRXhlY1N0
YXRlKiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKKworLy8gTG9hZCB0aGUgbW9kdWxlIHNv
dXJjZSBhbmQgZXZhbHVhdGUgaXQuCitKU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlz
ZSogbG9hZE1vZHVsZUdyYXBoKEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKK0pTX0VY
UE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlR3JhcGgoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlTmFtZSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0lu
dGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZUdyYXBoKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
bW9kdWxlTmFtZSk7CisKKy8vIEZldGNoIHRoZSBtb2R1bGUgc291cmNlLCBhbmQgaW5zdGFudGlh
dGUgdGhlIG1vZHVsZSByZWNvcmQuCitKU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlz
ZSogcHJlcGFyZU1vZHVsZUdyYXBoKEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKK0pT
X0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBwcmVwYXJlTW9kdWxlR3JhcGgoRXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKKworLy8gTGluayBhbmQgZXZhbHVh
dGUgdGhlIGFscmVhZHkgbGlua2VkIG1vZHVsZS4KK0pTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJu
YWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBtb2R1bGVLZXkpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDI5OTEw
NjQ5ODI4N2RmMjg5MDY1MThkM2RhMjcxMjJmYjhjN2MxY2MuLmRmMjYzMjVmYzU1MTViZTU2ZTkw
NTM5MGIxNGZmZTU2YjJkNDIwZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTR2xvYmFsT2JqZWN0OjpzX2luZm8gPSB7ICJHbG9iYWxP
YmplY3QiLCAmQmFzZTo6c19pbmZvLCAmZ2xvYmFsT2JqZWN0VGFibGUsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNHbG9iYWxPYmplY3QpIH07CiAKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNj
ZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNo
b3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsIG51bGxwdHIsICZz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyIH07Citjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9i
amVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZz
dXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1
cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCBudWxscHRyLCAmc2hvdWxkSW50ZXJy
dXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciB9OwogCiAvKiBTb3VyY2UgZm9yIEpTR2xvYmFsT2JqZWN0Lmx1dC5oCiBAYmVn
aW4gZ2xvYmFsT2JqZWN0VGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCmluZGV4IGRjYjNhMDg3Zjc5OWJmNmJkMmM0YTY2MzY4NjA4NDMxZjFi
YjRkZWQuLjU0NjFjZWI1Mjg2ZGQ2ZDJkMmExYWQzNGM4YjgxZjVlYzA2YTdhNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTcwLDYg
KzE3MCw5IEBAIHN0cnVjdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSB7CiAKICAgICB0eXBlZGVm
IEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlckluc3RhbnRpYXRlUHRyKShKU0dsb2Jh
bE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTVmFsdWUsIEpTVmFsdWUpOwogICAgIE1vZHVsZUxvYWRl
ckluc3RhbnRpYXRlUHRyIG1vZHVsZUxvYWRlckluc3RhbnRpYXRlOworCisgICAgdHlwZWRlZiBK
U1ZhbHVlICgqTW9kdWxlTG9hZGVyRXZhbHVhdGVQdHIpKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0
YXRlKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CisgICAgTW9kdWxlTG9hZGVyRXZhbHVhdGVQdHIgbW9k
dWxlTG9hZGVyRXZhbHVhdGU7CiB9OwogCiBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBK
U1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTW9kdWxlUmVjb3JkLmNwcAppbmRleCA4NDNjOTRlMTgwNDZkMWY0OGY5NWRlNzZj
YzUxOTBkYTMyZDI4NjI1Li4xY2M0OTM3NWQ0ZjJjZjJlYzdlMmUwMWJiYTdiYjhhOTE0N2Y4NGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29y
ZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQu
Y3BwCkBAIC04NDQsNyArODQ0LDcgQEAgdm9pZCBKU01vZHVsZVJlY29yZDo6aW5zdGFudGlhdGVE
ZWNsYXJhdGlvbnMoRXhlY1N0YXRlKiBleGVjLCBNb2R1bGVQcm9ncmFtRXhlY3UKICAgICBtX21v
ZHVsZUVudmlyb25tZW50LnNldCh2bSwgdGhpcywgbW9kdWxlRW52aXJvbm1lbnQpOwogfQogCi1K
U1ZhbHVlIEpTTW9kdWxlUmVjb3JkOjpleGVjdXRlKEV4ZWNTdGF0ZSogZXhlYykKK0pTVmFsdWUg
SlNNb2R1bGVSZWNvcmQ6OmV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBpZiAoIW1f
bW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKaW5kZXgg
MzBkZTdmNWM1ZmUxMzNlOGFhNTRjMGM5MjA0ZTc2YTNkYjEwYTE4NS4uYjgyYTllMWQ1N2FhYTRl
NjhhN2YyODA1ODc1NWUwNzdiNWIxMDI2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU01vZHVsZVJlY29yZC5oCkBAIC0xMjMsNyArMTIzLDcgQEAgY2xhc3MgSlNNb2R1
bGVSZWNvcmQgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIH0KIAogICAgIHZv
aWQgbGluayhFeGVjU3RhdGUqKTsKLSAgICBKU1ZhbHVlIGV4ZWN1dGUoRXhlY1N0YXRlKik7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqKTsKIAogICAg
IE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiBtb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlck9iamVjdC5jcHAKaW5k
ZXggNmU2ZjlmOWE2ZGE2MTgxMmUzYzIxYWQ0MzY2ZmQ4N2I3Y2QxNDdkOC4uODM1MWM0YjVkZjhj
ZjI3OTUzODE0ODA1ZDNlN2RiMzJkMzZlOTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJPYmplY3QuY3BwCkBAIC04NSw4ICs4NSwxMCBA
QCBjb25zdCBDbGFzc0luZm8gTW9kdWxlTG9hZGVyT2JqZWN0OjpzX2luZm8gPSB7ICJNb2R1bGVM
b2FkZXIiLCAmQmFzZTo6c19pbmZvLCAmbQogICAgIG1vZHVsZURlY2xhcmF0aW9uSW5zdGFudGlh
dGlvbiBtb2R1bGVMb2FkZXJPYmplY3RNb2R1bGVEZWNsYXJhdGlvbkluc3RhbnRpYXRpb24gRG9u
dEVudW18RnVuY3Rpb24gMgogICAgIG1vZHVsZUV2YWx1YXRpb24gICAgICAgICAgICAgICBtb2R1
bGVMb2FkZXJPYmplY3RNb2R1bGVFdmFsdWF0aW9uICAgICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gMgogICAgIGV2YWx1YXRlICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVMb2FkZXJP
YmplY3RFdmFsdWF0ZSAgICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgot
ICAgIGxvYWRNb2R1bGUgICAgICAgICAgICAgICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RMb2Fk
TW9kdWxlICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgogICAgIHByb3Zp
ZGUgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RQcm92aWRlICAgICAg
ICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMworICAgIGxvYWRNb2R1bGVHcmFw
aCAgICAgICAgICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RMb2FkTW9kdWxlR3JhcGggICAgICAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgorICAgIHByZXBhcmVNb2R1bGVHcmFwaCAgICAg
ICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RQcmVwYXJlTW9kdWxlR3JhcGggICAgICAgICAgICAg
RG9udEVudW18RnVuY3Rpb24gMgorICAgIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZUdyYXBoICAgICBt
b2R1bGVMb2FkZXJPYmplY3RMaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaCAgICAgRG9udEVudW18
RnVuY3Rpb24gMQogICAgIHBhcnNlTW9kdWxlICAgICAgICAgICAgICAgICAgICBtb2R1bGVMb2Fk
ZXJPYmplY3RQYXJzZU1vZHVsZSAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
MgogICAgIHJlcXVlc3RlZE1vZHVsZXMgICAgICAgICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RS
ZXF1ZXN0ZWRNb2R1bGVzICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICAgIHJl
c29sdmUgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVMb2FkZXJPYmplY3RSZXNvbHZlICAg
ICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQpAQCAtMTQ2LDkgKzE0OCw5
IEBAIEpTVmFsdWUgTW9kdWxlTG9hZGVyT2JqZWN0Ojpwcm92aWRlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBrZXksIFN0YXR1cyBzdGF0dXMsCiAgICAgcmV0dXJuIGNhbGwoZXhlYywgZnVuY3Rp
b24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1lbnRzKTsKIH0KIAotSlNJbnRlcm5h
bFByb21pc2UqIE1vZHVsZUxvYWRlck9iamVjdDo6bG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK0pTSW50ZXJuYWxQcm9taXNl
KiBNb2R1bGVMb2FkZXJPYmplY3Q6OmxvYWRNb2R1bGVHcmFwaChFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKIHsKLSAgICBKU09iamVjdCogZnVu
Y3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygp
LmJ1aWx0aW5OYW1lcygpLmxvYWRNb2R1bGVQdWJsaWNOYW1lKCkpKTsKKyAgICBKU09iamVjdCog
ZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1l
cygpLmJ1aWx0aW5OYW1lcygpLmxvYWRNb2R1bGVHcmFwaFB1YmxpY05hbWUoKSkpOwogICAgIENh
bGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBlID0gSlNDOjpnZXRDYWxsRGF0
YShmdW5jdGlvbiwgY2FsbERhdGEpOwogICAgIEFTU0VSVChjYWxsVHlwZSAhPSBDYWxsVHlwZU5v
bmUpOwpAQCAtMTYwLDYgKzE2MiwzMyBAQCBKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9hZGVy
T2JqZWN0Ojpsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBtb2R1bAogICAgIHJl
dHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21pc2UqPihjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxs
VHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3VtZW50cykpOwogfQogCitKU0ludGVybmFsUHJvbWlz
ZSogTW9kdWxlTG9hZGVyT2JqZWN0OjpwcmVwYXJlTW9kdWxlR3JhcGgoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCit7CisgICAgSlNPYmplY3Qq
IGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5idWlsdGluTmFtZXMoKS5wcmVwYXJlTW9kdWxlR3JhcGhQdWJsaWNOYW1lKCkpKTsKKyAg
ICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IEpTQzo6Z2V0Q2Fs
bERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKKyAgICBBU1NFUlQoY2FsbFR5cGUgIT0gQ2FsbFR5
cGVOb25lKTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKKyAgICBhcmd1
bWVudHMuYXBwZW5kKG1vZHVsZU5hbWUpOworICAgIGFyZ3VtZW50cy5hcHBlbmQocmVmZXJyZXIp
OworCisgICAgcmV0dXJuIGpzQ2FzdDxKU0ludGVybmFsUHJvbWlzZSo+KGNhbGwoZXhlYywgZnVu
Y3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1lbnRzKSk7Cit9CisKK0pTSW50
ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXJPYmplY3Q6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUdy
YXBoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBtb2R1bGVLZXkpCit7CisgICAgSlNPYmplY3Qq
IGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5idWlsdGluTmFtZXMoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaFB1YmxpY05hbWUo
KSkpOworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gSlND
OjpnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOworICAgIEFTU0VSVChjYWxsVHlwZSAh
PSBDYWxsVHlwZU5vbmUpOworCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwor
ICAgIGFyZ3VtZW50cy5hcHBlbmQobW9kdWxlS2V5KTsKKworICAgIHJldHVybiBqc0Nhc3Q8SlNJ
bnRlcm5hbFByb21pc2UqPihjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEs
IHRoaXMsIGFyZ3VtZW50cykpOworfQorCiBKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9hZGVy
T2JqZWN0OjpyZXNvbHZlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJl
ZmVycmVyKQogewogICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCkBA
IC0yMTksNiArMjQ4LDIxIEBAIEpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXJPYmplY3Q6
Omluc3RhbnRpYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXksCiAgICAgcmV0dXJuIGRl
ZmVycmVkLT5wcm9taXNlKCk7CiB9CiAKK0pTVmFsdWUgTW9kdWxlTG9hZGVyT2JqZWN0OjpldmFs
dWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIG1vZHVsZVJlY29yZFZh
bHVlKQoreworICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCisgICAg
ICAgIGRhdGFMb2coIkxvYWRlciBbZXZhbHVhdGVdICIsIHByaW50YWJsZU1vZHVsZUtleShleGVj
LCBrZXkpLCAiXG4iKTsKKworICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZhbHVhdGUpCisgICAgICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlckV2YWx1
YXRlKGdsb2JhbE9iamVjdCwgZXhlYywga2V5LCBtb2R1bGVSZWNvcmRWYWx1ZSk7CisKKyAgICBK
U01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZVJlY29y
ZCo+KG1vZHVsZVJlY29yZFZhbHVlKTsKKyAgICBpZiAoIW1vZHVsZVJlY29yZCkKKyAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgcmV0dXJuIG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUo
ZXhlYyk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyT2Jq
ZWN0UGFyc2VNb2R1bGUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CkBAIC0yODEsMTggKzMyNSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9k
dWxlTG9hZGVyT2JqZWN0TW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uKEV4CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJPYmplY3RFdmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMp
Ci17Ci0gICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IGpzRHluYW1pY0Nhc3Q8SlNN
b2R1bGVSZWNvcmQqPihleGVjLT5hcmd1bWVudCgwKSk7Ci0gICAgaWYgKCFtb2R1bGVSZWNvcmQp
Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBp
ZiAoT3B0aW9uczo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQotICAgICAgICBkYXRhTG9nKCJM
b2FkZXIgW2V2YWx1YXRlXSAiLCBtb2R1bGVSZWNvcmQtPm1vZHVsZUtleSgpLCAiXG4iKTsKLQot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobW9kdWxlUmVjb3JkLT5leGVjdXRlKGV4ZWMpKTsK
LX0KLQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhvb2sgRnVuY3Rpb25zIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG1vZHVsZUxvYWRlck9iamVjdFJlc29sdmUoRXhlY1N0YXRlKiBleGVjKQpAQCAtMzQ2LDQgKzM3
OCwxNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlck9iamVjdElu
c3RhbnRpYXRlKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxv
YWRlci0+aW5zdGFudGlhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50
KDEpKSk7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkaXRpb25hbCBIb29rIEZ1bmN0
aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtb2R1bGVMb2FkZXJPYmplY3RFdmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMpCit7Cisg
ICAgLy8gVG8gaW5zdHJ1bWVudCBhbmQgcmV0cmlldmUgdGhlIGVycm9ycyByYWlzZWQgZnJvbSB0
aGUgbW9kdWxlIGV4ZWN1dGlvbiwKKyAgICAvLyB3ZSBpbnNlcnRlZCB0aGUgaG9vayBwb2ludCBo
ZXJlLgorCisgICAgTW9kdWxlTG9hZGVyT2JqZWN0KiBsb2FkZXIgPSBqc0R5bmFtaWNDYXN0PE1v
ZHVsZUxvYWRlck9iamVjdCo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAoIWxvYWRlcikK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+ZXZhbHVhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQo
MCksIGV4ZWMtPmFyZ3VtZW50KDEpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJPYmplY3QuaAppbmRl
eCAxMmNmZTU2ZWViYjZjNDI3YzBlZjc5MDIxZjk5N2M2YjBkMzg0YTFmLi4xOTQ5NzUyNGZhNmY0
OTRlMzk0YWQ1MDAwMjc0YzBhMzQ4OTFiYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJPYmplY3QuaApAQCAtNjQsNyArNjQsOSBAQCBjbGFz
cyBNb2R1bGVMb2FkZXJPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAKICAgICAv
LyBBUElzIHRvIGNvbnRyb2wgdGhlIG1vZHVsZSBsb2FkZXIuCiAgICAgSlNWYWx1ZSBwcm92aWRl
KEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBTdGF0dXMsIGNvbnN0IFN0cmluZyYpOwotICAgIEpT
SW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlTmFt
ZSwgSlNWYWx1ZSByZWZlcnJlcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGVH
cmFwaChFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpOwor
ICAgIEpTSW50ZXJuYWxQcm9taXNlKiBwcmVwYXJlTW9kdWxlR3JhcGgoRXhlY1N0YXRlKiwgSlNW
YWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyKTsKKyAgICBKU0ludGVybmFsUHJvbWlz
ZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGgoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVL
ZXkpOwogCiAgICAgLy8gUGxhdGZvcm0gZGVwZW5kZW50IGhvb2tlZCBBUElzLgogICAgIEpTSW50
ZXJuYWxQcm9taXNlKiByZXNvbHZlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmFtZSwgSlNWYWx1ZSBy
ZWZlcnJlcik7CkBAIC03Miw2ICs3NCw5IEBAIGNsYXNzIE1vZHVsZUxvYWRlck9iamVjdCA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBKU0ludGVybmFsUHJvbWlzZSogdHJhbnNsYXRl
KEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHBheWxvYWQpOwogICAgIEpTSW50ZXJu
YWxQcm9taXNlKiBpbnN0YW50aWF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBz
b3VyY2UpOwogCisgICAgLy8gQWRkaXRpb25hbCBwbGF0Zm9ybSBkZXBlbmRlbnQgaG9va2VkIEFQ
SXMuCisgICAgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1
ZSBtb2R1bGVSZWNvcmQpOworCiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
T2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9s
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCA4M2Y1ZGUy
NDg1MmJjMzc4ZWUwYTc3MDM5ZjQ2MzE4MjVmZGRkYmJlLi5kZGI2OGNjYjM2NTQ0NTk5MTBjZDNm
MjNmNjY4NzRkMDA1ODhhOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wu
aApAQCAtODYsNyArODYsNyBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
IAogICAgIFN5bWJvbChWTSYpOwogICAgIFN5bWJvbChWTSYsIGNvbnN0IFN0cmluZyYpOwotICAg
IFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3lt
Ym9sKFZNJiwgU3ltYm9sSW1wbCYgdWlkKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
IHZtKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdI
ZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjU1N2EyZjIx
ZWNmNmIyYWVjYWQ2N2UzNTNlMTk2NmU0Nzk0ZTgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCkBA
IC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZV9oCisj
ZGVmaW5lIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlX2gKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzA4NmRkMzlhZmY5ZTEwNGJkNWE2ZmY3
YWU3OTI1NDYzODY5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJk
aW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaApAQCAtMCwwICsx
LDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisj
ZGVmaW5lIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWRfaAorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU01vZHVs
ZVJlY29yZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU01v
ZHVsZVJlY29yZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZTllY2ZmYmNmNTdjMmE5Yzc5NWNjYjFkODAzNDBm
OTE0ZDdkNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdl
YkNvcmVfRldEX0pTTW9kdWxlUmVjb3JkX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNNb2R1bGVS
ZWNvcmRfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9kdWxlUmVjb3JkLmg+CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA1NGVjODVhZGFmZWYxMTE1MGViZDM4Njg4NmMzZWRhNDgzMzdhZjU0Li5lNTc0ZDMx
MTM4Y2MzOTM2OTRlYzQwMzIwNTkwMjU0YWFlMDIzYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzA2LDYgKzYzMDYsMTIg
QEAKIAkJRTFGRjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjY2
MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi87IH07CiAJCUUx
RkY4RjZDMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QTE4MERC
NUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovOyB9OwogCQlFMUZG
OEY2RDE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgwREI1QkUw
MDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovOyB9OworCQlFMzM5QTUyMzFC
QTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVs
ZUdyYXBoLmNwcCAqLzsgfTsKKwkJRTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdy
YXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM5
QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0IxMEZBMjFCQTAwNEJDMDA5M0RFM0Eg
LyogTW9kdWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzQjEwRkEwMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuY3BwICov
OyB9OworCQlFM0IxMEZBMzFCQTAwNEJDMDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IxMEZBMTFCQTAwNEJD
MDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTNCMTBGQTYxQkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZl
dGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNCMTBGQTQxQkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZldGNoZXIuY3BwICovOyB9OworCQlF
M0IxMEZBNzFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMTBGQTUxQkEwRjI5QzAwOTNERTNB
IC8qIE1vZHVsZUZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlFNDAxQzI3NTE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9y
QXNzZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDI0
QTM5RTEzMzBERjAxMDBDRjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDI0QTM5RDEzMzBERjAxMDBDRjZE
QzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLmggKi87IH07CiAJCUU0MjRBM0EwMTMzMERGMUUwMENG
NkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDI0QTM5RjEzMzBERjFFMDBDRjZEQzkgLyogTGVnYWN5VGls
ZUdyaWRUaWxlLm1tICovOyB9OwpAQCAtMTQwNDIsNiArMTQwNDgsMTIgQEAKIAkJRTFGRjhGNjYx
ODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMzlBNTIxMUJBNkJENDYwMEEz
QTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNb2R1bGVHcmFwaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMzlB
NTIyMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNb2R1bGVHcmFwaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFM0IxMEZBMDFCQTAwNEJDMDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzQjEwRkExMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2Fk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlTG9hZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQjEwRkE0MUJBMEYyOUMwMDkzREUzQSAvKiBN
b2R1bGVGZXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1v
ZHVsZUZldGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0IxMEZBNTFC
QTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNb2R1bGVGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRJdGVyYXRvckFzc2VydGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNkYzRkIxMTk4MzA3RDAwOUQ1
OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDFFQTAzODEx
OTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0eU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzNDMwLDYgKzIzNDQyLDEyIEBACiAJCQkJNDFCRjcwMEEwRkU4NkY0
OTAwNUU4REVDIC8qIE1lc3NhZ2VQb3J0Q2hhbm5lbC5oICovLAogCQkJCUNCOENGMDE1MUE5MzRC
NDMwMDBENTEwQiAvKiBNaWNyb1Rhc2suY3BwICovLAogCQkJCTUzQjg5NUFEMTlEQzdDMzcwMDlD
QUE5MyAvKiBNaWNyb1Rhc2suaCAqLywKKwkJCQlFM0IxMEZBNDFCQTBGMjlDMDA5M0RFM0EgLyog
TW9kdWxlRmV0Y2hlci5jcHAgKi8sCisJCQkJRTNCMTBGQTUxQkEwRjI5QzAwOTNERTNBIC8qIE1v
ZHVsZUZldGNoZXIuaCAqLywKKwkJCQlFMzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxl
R3JhcGguY3BwICovLAorCQkJCUUzMzlBNTIyMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFw
aC5oICovLAorCQkJCUUzQjEwRkEwMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuY3Bw
ICovLAorCQkJCUUzQjEwRkExMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCAqLywK
IAkJCQk4NTAzMUIyRjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5jcHAgKi8sCiAJCQkJ
ODUwMzFCMzAwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuaCAqLywKIAkJCQkxNDFCOTRF
NTA5RUM0MjIzMDAwRTk0MTMgLyogTW91c2VFdmVudC5pZGwgKi8sCkBAIC0yNDMxNCw2ICsyNDMz
Miw3IEBACiAJCQkJMDY1QUQ0RjUwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTA2RDdCRTE4QkRCNzZGMDAwQUIxNjYgLyogQ29udGV4
dE1lbnVDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjVBRDRGNzBCMEMyRURBMDA1QTJC
MUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0IxMEZB
MzFCQTAwNEJDMDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
NjAyN0NBRDBCMUNCRkMwMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QURFNzIyNjEwQ0JCQjlCMDA2QjNCM0EgLyogQ29udGV4dE1lbnVQcm92aWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ1MDAyRkMxQjU2RDc5OTAwMjBBQUY3IC8qIFBhdGhVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ1NDAsNiArMjQ1NTksNyBAQAogCQkJCTMxNjAy
M0YwMTUzMkM0MEMwMEQ1MEZGNCAvKiBEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzdGRjNENTFBMTAxMkQ2MDA4RUJBMzEgLyogRGljdGlvbmFyeUxvb2t1cC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkRBRjE5OTkxNTEzRDEzMTAwOERCMEMzIC8qIERpcmVjdENvbnZvbHZlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBo
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0Nh
Y2hlTW9uaXRvckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUFGMkQ2OTE0NDM1RDA1MDAx
NkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5
RUNDNjE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTI2Nzc4LDYgKzI2Nzk4LDcgQEAKIAkJCQkyRDkzQUVFMzE5REY1NjQx
MDAyQTg2QzMgLyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzU2QjJDRTExOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTMzMDlFMTAwOTlFNjQ5MjAwNTZFNTgxIC8qIFNldE5vZGVBdHRyaWJ1dGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0IxMEZBNzFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxl
RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjhEQkRCNEMxMzBCMEY4QTAwRjVDREIxIC8q
IFNldFNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTRGMDgyNDVF
NTkwMDFFOUFCQyAvKiBTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNFRjc2NkIxNjUz
MEE2MTAwNENCRTQ5IC8qIFNldHRpbmdzTWFjcm9zLmggaW4gSGVhZGVycyAqLywKQEAgLTI3OTIx
LDYgKzI3OTQyLDcgQEAKIAkJCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0
aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBCQzEyQjAyNzJBMDBDMUEz
NTkgLyogQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAw
NzEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZEMzE2MDgxMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtlcm5l
bFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU1OTY5MTE0NzVCNjc4MDAxRDBC
RDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEJF
MTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yODgzNyw2ICsyODg1OSwxNCBAQAogCQkJCTUxRTFFQ0MwMEM5MUM5MDQwMERDMjU1QiAv
KiBJY29uUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDcxOUI5MTgxMTA2RTAwMDE2
REM1MSAvKiBJREJBbnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU4NUE2NjIxMUQ0RkFDNTAw
NEMzRTRCIC8qIElEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFE
NzE5QkYxODExMDZFMDAwMTZEQzUxIC8qIElEQkN1cnNvci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk1MTY3MzBBMzE4MkQ4RkJCMDAzRkFGNUMgLyogSURCQ3Vyc29yQmFja2VuZC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlFM0IxMEZBNjFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTAxOTQ0NDE4MzZGN0U0MDA5MjU1MjMgLyogSURCQ3Vy
c29yQmFja2VuZE9wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTFENzE5QzMxODEx
MDZFMDAwMTZEQzUxIC8qIElEQkN1cnNvcldpdGhWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk1MUQ3MTlDNjE4MTEwNkUwMDAxNkRDNTEgLyogSURCRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTE3NzFDOEUxODJEQjRCNzAwOEU3ODFFIC8qIElEQkRhdGFiYXNlQmFja2VuZC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUQ3MTlDQjE4MTEwNkUwMDAxNkRDNTEgLyogSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDcxOUNFMTgxMTA2
RTAwMDE2REM1MSAvKiBJREJEYXRhYmFzZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTYzMTE3RDE4NTEyNDJCMDA1MzQ2NDcgLyogSURCRGF0YWJhc2VNZXRhZGF0YS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUQ3MTlEMDE4MTEwNkUwMDAxNkRDNTEgLyogSURCRXZlbnREaXNw
YXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk3NDEsNiArMjk3NzEsNyBAQAogCQkJCUQz
QTk0QTM4MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlEM0FBMTBGMzEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzkwODQzQ0YxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVt
b3RlQ29udHJvbHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTNCMTBGQTIxQkEwMDRCQzAwOTNE
RTNBIC8qIE1vZHVsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRUVGQ0Q3OTE5REIz
MUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDREJFQUVBQzE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDOTAyN0Y0MTFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFT
ZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggZDRmMDAxZDI4ZmJkM2U5ODkzZjMxOWI4YjMwMDJk
MWMwMTI5ZWI4MC4uMzJhMDViNmM4MDI5ZWMyNjg2YzhmOGI5ZDc4ZmU1MjgyMTA1MGE2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0z
MSwxMSArMzEsMTMgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUg
IkpTTm9kZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9NaWNyb3Rhc2suaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC01Niw3ICs1OCw3IEBAIHN0YXRpYyBib29sIHNob3Vs
ZEFsbG93QWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCwgRXhlY1N0
YXRlKiBlCiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd0Jhc2U6OnNfaW5mbyA9IHsgIldp
bmRvdyIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTRE9NV2luZG93QmFzZSkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNE
T01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dB
Y2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAm
c2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFz
a1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hv
dWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3Vy
Y2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywg
JnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91
dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwgbnVs
bHB0ciwgJm1vZHVsZUxvYWRlckV2YWx1YXRlIH07CiAKIEpTRE9NV2luZG93QmFzZTo6SlNET01X
aW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8RE9NV2lu
ZG93PiB3aW5kb3csIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKQogICAgIDogSlNET01HbG9iYWxP
YmplY3Qodm0sIHN0cnVjdHVyZSwgJnNoZWxsLT53b3JsZCgpLCAmc19nbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSkKQEAgLTI3OSw0ICsyODEsMzEgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmZpcmVG
cmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRvdykKICAgICB9
CiB9CiAKKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVM
b2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcmVmZXJy
ZXIpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNE
T01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50
ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVu
dC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVOYW1l
LCByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJl
ZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9i
amVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRlZmluZWQoKSk7
Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9h
ZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSkKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2Uq
IHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3Qp
OworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCkuZG9jdW1l
bnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+ZmV0Y2goZ2xv
YmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXkpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0
ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMs
IGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1
bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9k
dWxlUmVjb3JkKQoreworICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKERvY3VtZW50KiBk
b2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4g
ZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFsdWF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1v
ZHVsZUtleSwgbW9kdWxlUmVjb3JkKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDVlZDM4NjJjMTQxMTg3YzAwNmI2ODhkYjc5Nzc5NGIz
Njk4MTA1NjQuLjJkNDRiODAwOWU1NGRiYjA3NGU4Zjk5NzdjMTZiMjVlMTI1N2VhYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC03OCw2ICs3
OCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTQzo6V2F0Y2hwb2ludFNldCBt
X3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHM7CiAKICAgICBwcml2YXRlOgorICAgICAgICAvLyBNb2R1
bGUgTG9hZGVyIGhvb2tzLgorICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKwogICAgICAgICBSZWZQdHI8RE9NV2lu
ZG93PiBtX2ltcGw7CiAgICAgICAgIEpTRE9NV2luZG93U2hlbGwqIG1fc2hlbGw7CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmgKaW5kZXggMDllN2U1YjYwMjY4NzliNTMzNWExZmUxZWY3MWM0NDc0MzBiZmNkNC4uYTM4NzYz
MzllNzM1MTUyY2IzZDc5Mzc2ODZhZjIzNjYzZmY1MjRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKQEAgLTc0LDYgKzc0LDIx
IEBAIGNsYXNzIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSB7CiAgICAgICAgIHRhc2sucnVuKGV4ZWMp
OwogICAgIH0KIAorICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcmVwYXJlTW9k
dWxlR3JhcGgoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBKU0M6OnByZXBhcmVNb2R1bGVHcmFwaChleGVjLCBtb2R1
bGVOYW1lKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJl
cGFyZU1vZHVsZUdyYXBoKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OlNvdXJjZUNv
ZGUmIHNvdXJjZUNvZGUpCisgICAgeworICAgICAgICByZXR1cm4gSlNDOjpwcmVwYXJlTW9kdWxl
R3JhcGgoZXhlYywgc291cmNlQ29kZSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNJbnRl
cm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZUdyYXBoKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUdyYXBoKGV4ZWMsIG1vZHVsZUtleSk7Cisg
ICAgfQorCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBpbnN0cnVt
ZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBKU0M6OkNhbGxUeXBlLCBj
b25zdCBKU0M6OkNhbGxEYXRhJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNTA0NGJj
MTc4MzUxM2I5YjFhMjZiZDNiZDFjYjVjMDBiNzBhMTBkMC4uYWNkNjE3ZTg2OTg5MjkwNzUzNzZl
NTgzMmFiMjgzZjJkMmZhNzkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1dvcmtlckdsb2JhbFNjb3BlQmFz
ZTo6c19pbmZvID0geyAiV29ya2VyR2xvYmFsU2NvcGUiLCAmSlNET01HbG9iYWxPYmplY3Q6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dvcmtlckdsb2JhbFNjb3BlQmFzZSkgfTsK
IAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6
OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAmc3VwcG9y
dHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2Ny
aXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hv
dWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NG
cm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxk
SW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZl
bnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0ciwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCiBKU1dvcmtlckdsb2JhbFNjb3Bl
QmFzZTo6SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+IGltcGwpCiAgICAgOiBK
U0RPTUdsb2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCAmbm9ybWFsV29ybGQodm0pLCAmc19nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAKaW5kZXggNGIzYjA5NzJiZTc3ZjNjNzY1OTVmMTQwZTI2YTc0OGZm
OGVhNDUwYy4uZDQxNTI5OWJlZjZlMzJhNGY1ODU0N2M3ZjUyMTUyYWYyMzU5MDJhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRl
ICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKKyNpbmNs
dWRlICJNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCkBAIC01NCw3ICs1NSwxMSBA
QAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxwcm9m
aWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+
CisjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8
cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNOYXRpdmVTdGRG
dW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9UZXh0UG9zaXRpb24uaD4KIApAQCAtODYsNiArOTEsNyBAQCBTY3JpcHRDb250cm9sbGVyOjpT
Y3JpcHRDb250cm9sbGVyKEZyYW1lJiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAg
LCBtX3NvdXJjZVVSTCgwKQogICAgICwgbV9wYXVzZWQoZmFsc2UpCisgICAgLCBtX21vZHVsZUxv
YWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKICAgICAsIG1fd2luZG93U2NyaXB0TlBPYmplY3QoMCkKICNlbmRpZgpAQCAtMTc1
LDExICsxODEsMTM0IEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6
OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlCiAgICAgcmV0dXJuIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJldHVyblZhbHVlKTsKIH0KIAotRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0
U291cmNlQ29kZSYgc291cmNlQ29kZSkgCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRD
b250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQog
ewogICAgIHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRocmVhZE5vcm1h
bFdvcmxkKCkpOwogfQogCitKU0Z1bmN0aW9uKiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVNb2R1
bGVMb2FkZXJBc3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0aW9uKE1vZHVsZUdyYXBoJiBtb2R1
bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxs
KiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVs
bC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8TW9kdWxlR3JhcGg+IHdl
YWtQdHIobW9kdWxlR3JhcGgud2Vha1B0cigpKTsKKyAgICBQcml2YXRlTmFtZSBtb2R1bGVMb2Fk
ZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9y
dGVkRXJyb3JTeW1ib2w7CisgICAgcmV0dXJuIEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShl
eGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbbW9kdWxlTG9hZGVyQWxy
ZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAg
ICAgICBKU1ZhbHVlIGVycm9yID0gZXhlYy0+YXJndW1lbnQoMCk7CisKKyAgICAgICAgaWYgKFJl
ZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAg
ICAgbW9kdWxlR3JhcGgtPm5vdGlmeUVycm9yZWQoKTsKKworICAgICAgICAvLyBPbmNlIHJlcG9y
dGVkIGVycm9yIGlzIG1hcmtlZCBhcyBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5
bWJvbC4KKyAgICAgICAgLy8gRG9uJ3QgcmVwb3J0IGl0IGhlcmUgYWdhaW4uCisgICAgICAgIGlm
IChTeW1ib2wqIHN5bWJvbCA9IGpzRHluYW1pY0Nhc3Q8U3ltYm9sKj4oZXJyb3IpKSB7CisgICAg
ICAgICAgICBpZiAoc3ltYm9sLT5wcml2YXRlTmFtZSgpID09IG1vZHVsZUxvYWRlckFscmVhZHlS
ZXBvcnRlZEVycm9yU3ltYm9sKQorICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTogQmVjYXVz
ZSB3ZSBoYXZlIG5vdCBzdXBwb3J0ZWQgdGhlICJjcm9zc29yaWdpbiIgYXR0cmlidXRlIGluIHRo
ZSBtb2R1bGUgdGFnLAorICAgICAgICAvLyB3ZSBwYXNzIHRoZSBudWxscHRyIHRvIHJlcG9ydEV4
Y2VwdGlvbidzIENhY2hlZFNjcmlwdCogcGFyYW1ldGVyLiBXaGVuIHBhc3NpbmcgbnVsbHB0cgor
ICAgICAgICAvLyB0byByZXBvcnRFeGNlcHRpb24sIFdlYkNvcmUgZG9lcyBub3Qgc2hvdyB0aGUg
ZGV0YWlsIG9mIHRoZSBlcnJvciBpZiB0aGUgVVJMIG9mIHRoZQorICAgICAgICAvLyBzb3VyY2Ug
ZG9lcyBub3QgcGFzcyB0aGUgc2FtZSBvcmlnaW4gcG9saWN5LiBTbyB0aGUgY3VycmVudCBiZWhh
dmlvciBpcyBjb25zZXJ2YXRpdmU7CisgICAgICAgIC8vIG9ubHkgdGhlIG1vZHVsZSBjb2RlIHRo
YXQgVVJMIGlzIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4gY2FuIHJlcG9ydCB0aGUgZGV0YWlscyBv
ZiB0aGUKKyAgICAgICAgLy8gZXJyb3IuIE9uY2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBiZWhh
dmlvciwgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBl
cnJvciwgbnVsbHB0cik7CisKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICB9KTsKK30KKworSlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdENvbnRyb2xs
ZXI6OnByZXBhcmVNb2R1bGVHcmFwaEluV29ybGQoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBj
b25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAg
SlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBz
aGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+
d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIHJldHVybiBpbml0TW9kdWxlR3JhcGgobW9k
dWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6cHJlcGFyZU1vZHVsZUdyYXBoKGV4ZWMs
IG1vZHVsZU5hbWUpLCB3b3JsZCk7Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRDb250
cm9sbGVyOjpwcmVwYXJlTW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25z
dCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgcmV0dXJuIHByZXBhcmVNb2R1bGVHcmFwaElu
V29ybGQobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsK
K30KKworSlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdENvbnRyb2xsZXI6OnByZXBhcmVNb2R1bGVH
cmFwaEluV29ybGQoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hv
bGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3
aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygp
LT5nbG9iYWxFeGVjKCk7CisKKyAgICByZXR1cm4gaW5pdE1vZHVsZUdyYXBoKG1vZHVsZUdyYXBo
LCBKU01haW5UaHJlYWRFeGVjU3RhdGU6OnByZXBhcmVNb2R1bGVHcmFwaChleGVjLCBzb3VyY2VD
b2RlLmpzU291cmNlQ29kZSgpKSwgd29ybGQpOworfQorCitKU0ludGVybmFsUHJvbWlzZSogU2Ny
aXB0Q29udHJvbGxlcjo6cHJlcGFyZU1vZHVsZUdyYXBoKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFw
aCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICByZXR1cm4gcHJl
cGFyZU1vZHVsZUdyYXBoSW5Xb3JsZChtb2R1bGVHcmFwaCwgc291cmNlQ29kZSwgbWFpblRocmVh
ZE5vcm1hbFdvcmxkKCkpOworfQorCitKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0Q29udHJvbGxl
cjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGhJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVH
cmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3
b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwo
d29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhl
YygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU01haW5UaHJlYWRFeGVj
U3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUdyYXBoKGV4ZWMsIG1vZHVsZUdyYXBoLm1vZHVs
ZUtleSgpKTsKKworICAgIFdlYWtQdHI8TW9kdWxlR3JhcGg+IHdlYWtQdHIobW9kdWxlR3JhcGgu
d2Vha1B0cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3Rk
RnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygp
LCBbd2Vha1B0cl0oRXhlY1N0YXRlKikgeworICAgICAgICBpZiAoUmVmUHRyPE1vZHVsZUdyYXBo
PiBtb2R1bGVHcmFwaCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICBtb2R1bGVHcmFwaC0+
bm90aWZ5RXhlY3V0ZWQoKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICB9KTsKKworICAgIHJldHVybiBwcm9taXNlLT50aGVuKGV4ZWMsIGZ1bGZp
bGxIYW5kbGVyLCBjcmVhdGVNb2R1bGVMb2FkZXJBc3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0
aW9uKG1vZHVsZUdyYXBoLCB3b3JsZCkpOworfQorCitKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0
Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVs
ZUdyYXBoKQoreworICAgIHJldHVybiBsaW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaEluV29ybGQo
bW9kdWxlR3JhcGgsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKworRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiBz
b3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIERPTVdyYXBwZXJXb3JsZCYg
d29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBjb25z
dCBTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUgPSBtb2R1bGVSZWNvcmQtPnNvdXJjZUNvZGUoKTsK
KworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAg
IEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworICAgIGNv
bnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsKKyAgICBtX3NvdXJjZVVS
TCA9ICZzb3VyY2VVUkwuc3RyaW5nKCk7CisKKyAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFt
ZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJM
LCBqc1NvdXJjZUNvZGUuZmlyc3RMaW5lKCkpOworCisgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9
IG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUoZXhlYyk7CisgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBl
dmFsdWF0aW9uRXhjZXB0aW9uOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAg
ICAgZXZhbHVhdGlvbkV4Y2VwdGlvbiA9IGV4ZWMtPnZtKCkuZXhjZXB0aW9uKCk7CisKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSwgbV9mcmFt
ZSk7CisKKyAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikgeworICAgICAgICByZXBvcnRFeGNl
cHRpb24oZXhlYywgZXZhbHVhdGlvbkV4Y2VwdGlvbiwgbnVsbHB0cik7CisgICAgICAgIG1fc291
cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAgICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSgpOworICAgIH0KKworICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7Cisg
ICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJldHVyblZhbHVl
KTsKK30KKworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVh
dGVNb2R1bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNv
cmQpCit7CisgICAgcmV0dXJuIGV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgbW9kdWxlUmVjb3Jk
LCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKIFJlZjxET01XcmFwcGVyV29ybGQ+IFNj
cmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdvcmxkKCkKIHsKICAgICByZXR1cm4gRE9NV3JhcHBlcldv
cmxkOjpjcmVhdGUoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwpAQCAtMjcyLDYgKzQwMSwzMCBA
QCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQpCiAgICAgcmV0dXJuIHdpbmRvd1NoZWxsOwogfQogCitzdGF0aWMgSWRl
bnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQoreworICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gSWRlbnRpZmll
cjo6ZnJvbVVpZChqc0Nhc3Q8U3ltYm9sKj4odmFsdWUpLT5wcml2YXRlTmFtZSgpKTsKKyAgICBB
U1NFUlQodmFsdWUuaXNTdHJpbmcoKSk7CisgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJp
bmcoZXhlYywganNDYXN0PEpTU3RyaW5nKj4odmFsdWUpLT52YWx1ZShleGVjKSk7Cit9CisKK0pT
SW50ZXJuYWxQcm9taXNlKiBTY3JpcHRDb250cm9sbGVyOjppbml0TW9kdWxlR3JhcGgoTW9kdWxl
R3JhcGgmIG1vZHVsZUdyYXBoLCBKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSwgRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1No
ZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2Jh
bEV4ZWMoKTsKKworICAgIFdlYWtQdHI8TW9kdWxlR3JhcGg+IHdlYWtQdHIobW9kdWxlR3JhcGgu
d2Vha1B0cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3Rk
RnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygp
LCBbd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIC8vIE1vZHVsZUdyYXBoLCBz
Y3JpcHQgZWxlbWVudCBhbmQgZG9jdW1lbnQgbWF5IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGlu
ZyB0aGUgbW9kdWxlLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhl
Y3V0ZSBtb2R1bGUgYm9keS4KKyAgICAgICAgaWYgKFJlZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxl
R3JhcGggPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgbW9kdWxlR3JhcGgtPm5vdGlmeUxv
YWRlZChqc1ZhbHVlVG9Nb2R1bGVLZXkoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKyAgICBy
ZXR1cm4gcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxsSGFuZGxlciwgY3JlYXRlTW9kdWxlTG9h
ZGVyQXN5bmNocm9ub3VzRXJyb3JSZXBvcnRGdW5jdGlvbihtb2R1bGVHcmFwaCwgd29ybGQpKTsK
K30KKwogVGV4dFBvc2l0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2ZW50SGFuZGxlclBvc2l0aW9u
KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogSWYgd2UgYXJlIG5vdCBjdXJyZW50bHkgcGFyc2lu
Zywgd2Ugc2hvdWxkIHVzZSBvdXIgY3VycmVudCBsb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDA3YzUzYjdjOGVkZmI0ZTI4ZjVj
YTEzYWEyYzRlMDU1OTRlZjUxMjIuLmRlYzM2MmE2Nzc4Njc5NzIxNzE4NDk5MmM5ZTM2ZjM4NmFl
M2FjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmgKQEAgLTQ0LDYgKzQ0LDkgQEAgY2xhc3MgU2NyaXB0VmFsdWU7CiAKIG5hbWVzcGFjZSBKU0Mg
ewogICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0OworICAgIGNsYXNzIEpTSW50ZXJuYWxQcm9taXNl
OworICAgIGNsYXNzIEpTTW9kdWxlUmVjb3JkOworCiAgICAgY2xhc3MgRXhlY1N0YXRlOwogCiAg
ICAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKQEAgLTU3LDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CiBjbGFzcyBIVE1MUGx1Z0lu
RWxlbWVudDsKK2NsYXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNs
YXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgV2lkZ2V0OwpAQCAtMTE1LDYgKzExOSwxNyBAQCBj
bGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFs
dWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CiAgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFs
dWUgZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29y
bGQmKTsKIAorICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByZXBhcmVNb2R1bGVHcmFwaElu
V29ybGQoTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIERPTVdyYXBwZXJX
b3JsZCYpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByZXBhcmVNb2R1bGVHcmFwaChN
b2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisgICAgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZSogcHJlcGFyZU1vZHVsZUdyYXBoSW5Xb3JsZChNb2R1bGVHcmFwaCYsIGNvbnN0
IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlKiBwcmVwYXJlTW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmLCBjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJik7CisKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVh
dGVNb2R1bGVHcmFwaEluV29ybGQoTW9kdWxlR3JhcGgmICwgRE9NV3JhcHBlcldvcmxkJik7Cisg
ICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlR3JhcGgoTW9k
dWxlR3JhcGgmKTsKKworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlTW9kdWxl
KGNvbnN0IFVSTCYsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBET01XcmFwcGVyV29ybGQmKTsKKyAg
ICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6
OkpTTW9kdWxlUmVjb3JkKik7CisKICAgICBXVEY6OlRleHRQb3NpdGlvbiBldmVudEhhbmRsZXJQ
b3NpdGlvbigpIGNvbnN0OwogCiAgICAgdm9pZCBlbmFibGVFdmFsKCk7CkBAIC0xMzUsNiArMTUw
LDggQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAKICAgICBjb25zdCBTdHJpbmcqIHNvdXJj
ZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9IC8vIDAgaWYgd2UgYXJlIG5vdCBl
dmFsdWF0aW5nIGFueSBzY3JpcHQKIAorICAgIGNvbnN0IEpTQzo6UHJpdmF0ZU5hbWUmIG1vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsgfQorCiAgICAgdm9pZCBjbGVhcldp
bmRvd1NoZWxsKERPTVdpbmRvdyogbmV3RE9NV2luZG93LCBib29sIGdvaW5nSW50b1BhZ2VDYWNo
ZSk7CiAgICAgdm9pZCB1cGRhdGVEb2N1bWVudCgpOwogCkBAIC0xNzAsNiArMTg3LDggQEAgY2xh
c3MgU2NyaXB0Q29udHJvbGxlciB7CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNE
T01XaW5kb3dTaGVsbCogaW5pdFNjcmlwdChET01XcmFwcGVyV29ybGQmKTsKKyAgICBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBpbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmLCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgSlNDOjpKU0Z1bmN0aW9uKiBj
cmVhdGVNb2R1bGVMb2FkZXJBc3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0aW9uKE1vZHVsZUdy
YXBoJiwgRE9NV3JhcHBlcldvcmxkJik7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RQbGF0Zm9ybVNj
cmlwdE9iamVjdHMoKTsKIApAQCAtMTc4LDYgKzE5Nyw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xs
ZXIgewogICAgIGNvbnN0IFN0cmluZyogbV9zb3VyY2VVUkw7CiAKICAgICBib29sIG1fcGF1c2Vk
OworICAgIEpTQzo6UHJpdmF0ZU5hbWUgbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJv
clN5bWJvbDsKIAogICAgIC8vIFRoZSByb290IG9iamVjdCB1c2VkIGZvciBvYmplY3RzIGJvdW5k
IG91dHNpZGUgdGhlIGNvbnRleHQgb2YgYSBwbHVnaW4sIHN1Y2gKICAgICAvLyBhcyBOUEFQSSBw
bHVnaW5zLiBUaGUgcGx1Z2lucyB1c2luZyB0aGVzZSBvYmplY3RzIHByZXZlbnQgYSBwYWdlIGZy
b20gYmVpbmcgY2FjaGVkIHNvIHRoZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDkxOTIx
NDdkOWM4OGEyMzFhMjU3YjkyMTY2OTc2ZjYxN2FiMThiOTQuLmIwYTk1NGM0N2NmM2VmNjk1Mzk1
MzRiZDg4YzE2Y2FhZDI1NWRhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTAyLDYg
KzEwMiw3IEBACiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhUXVl
cnlMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1
bGVMb2FkZXIuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAj
aW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50
ZXIuaCIKQEAgLTQ2MSw2ICs0NjIsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1l
LCBjb25zdCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwogICAgICwg
bV9zdGFydFRpbWUoc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpCiAgICAgLCBtX292
ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkKGZhbHNlKQogICAgICwgbV9zY3JpcHRSdW5uZXIoc3Rk
OjptYWtlX3VuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVy
KHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlTG9hZGVyPigqdGhpcykpCiAgICAgLCBtX3htbFZlcnNp
b24oQVNDSUlMaXRlcmFsKCIxLjAiKSkKICAgICAsIG1feG1sU3RhbmRhbG9uZShTdGFuZGFsb25l
VW5zcGVjaWZpZWQpCiAgICAgLCBtX2hhc1hNTERlY2xhcmF0aW9uKGZhbHNlKQpAQCAtNjAyLDYg
KzYwNCw3IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVz
ZXRVbmxlc3NTdXNwZW5kZWRGb3JQYWdlQ2FjaGUoKTsKIAogICAgIG1fc2NyaXB0UnVubmVyID0g
bnVsbHB0cjsKKyAgICBtX21vZHVsZUxvYWRlciA9IG51bGxwdHI7CiAKICAgICByZW1vdmVBbGxF
dmVudExpc3RlbmVycygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc0Y2VhYTk2YmM5MmY0
NzgxN2NlYmI1ZjNjZjkzOTBhMTlhNzdkNjkuLmY1N2M0MTMxZmRjZTU1Y2NjZDRlNjA4MGRiYjUx
OTUzYzRiMjdjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjgsNiArMTI4LDcgQEAgY2xh
c3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7
CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworY2xhc3Mg
TW9kdWxlTG9hZGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNz
IE5hbWVkRmxvd0NvbGxlY3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpAQCAtOTI3LDYgKzkyOCw3
IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2Nv
cGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgRG9jdW1lbnQmIHRvcERvY3VtZW50KCkg
Y29uc3Q7CiAgICAgCiAgICAgU2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBt
X3NjcmlwdFJ1bm5lci5nZXQoKTsgfQorICAgIE1vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyKCkg
eyByZXR1cm4gbV9tb2R1bGVMb2FkZXIuZ2V0KCk7IH0KIAogICAgIEhUTUxTY3JpcHRFbGVtZW50
KiBjdXJyZW50U2NyaXB0KCkgY29uc3QgeyByZXR1cm4gIW1fY3VycmVudFNjcmlwdFN0YWNrLmlz
RW1wdHkoKSA/IG1fY3VycmVudFNjcmlwdFN0YWNrLmxhc3QoKS5nZXQoKSA6IDA7IH0KICAgICB2
b2lkIHB1c2hDdXJyZW50U2NyaXB0KFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+KTsKQEAg
LTE1MTAsNiArMTUxMiw3IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUs
IHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgYm9vbCBtX292
ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3Jp
cHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVMb2Fk
ZXI+IG1fbW9kdWxlTG9hZGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVu
dD4+IG1fY3VycmVudFNjcmlwdFN0YWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTW9kdWxlRmV0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTZmZDk3Y2E1YTJjZmI5NjA0OTc3ZGUzMDFlY2ZhMGM5ZDU0ZWYxZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVGZXRjaGVyLmNwcApA
QCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJNb2R1bGVGZXRjaGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgorI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVk
ZSAiTW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisj
aW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVy
KEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYg
bW9kdWxlS2V5LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKKyAgICAsIG1fbW9kdWxlS2V5KG1vZHVsZUtleSkKKyAgICAsIG1fc291cmNlVVJM
KHNvdXJjZVVSTCkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xv
YmFsT2JqZWN0KQorICAgICwgbV9kZWZlcnJlZChnbG9iYWxPYmplY3QtPnZtKCksIGRlZmVycmVk
KQoreworfQorCitSZWY8TW9kdWxlRmV0Y2hlcj4gTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxl
S2V5LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
KiBkZWZlcnJlZCwgRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE1vZHVsZUZldGNoZXIoZ2xvYmFsT2JqZWN0LCBtb2R1bGVLZXksIHNvdXJjZVVSTCwgZGVm
ZXJyZWQsIGRvY3VtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlRmV0Y2hlcjo6cnVuKCkKK3sKKyAg
ICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpk
ZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CisgICAgb3B0aW9ucy5zZXRDb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRv
UG9saWN5Q2hlY2spOworCisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0KG1fc291cmNlVVJMKSwgb3B0aW9ucyk7CisKKyAgICAvLyBGSVhNRTogU2hvdWxk
IGhhbmRsZSAiY3Jvc3NvcmlnaW4iIG9wdGlvbnMuCisgICAgLy8gT25jZSB0aGUgc3BlYyBkZXNj
cmliZXMgdGhlIGRldGFpbHMsIHdlIHdpbGwgZm9sbG93IGl0LgorICAgIHJlcXVlc3Quc2V0SW5p
dGlhdG9yKEF0b21pY1N0cmluZyhtX3NvdXJjZVVSTC5zdHJpbmcoKSkpOworCisgICAgbV9jYWNo
ZWRTY3JpcHQgPSBtX2RvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFNjcmlw
dChyZXF1ZXN0KTsKKyAgICAvLyBOb3RlOiBJZiB0aGUgY29udGVudCBpcyBhbHJlYWR5IGNhY2hl
ZCwgdGhpcyBpbW1laWRhdGVseSBjYWxscyBub3RpZnlGaW5pc2hlZC4KKyAgICBtX2NhY2hlZFNj
cmlwdC0+YWRkQ2xpZW50KHRoaXMpOworfQorCit2b2lkIE1vZHVsZUZldGNoZXI6Om5vdGlmeUZp
bmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJl
c291cmNlLCByZXNvdXJjZSA9PSBtX2NhY2hlZFNjcmlwdCk7CisgICAgaWYgKCFtX2NhY2hlZFNj
cmlwdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKG1fY2FjaGVkU2NyaXB0KTsKKyAg
ICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworCisjaWYgRU5BQkxFKE5PU05J
RkYpCisgICAgaWYgKG1fY2FjaGVkU2NyaXB0ICYmICFtX2NhY2hlZFNjcmlwdC0+bWltZVR5cGVB
bGxvd2VkQnlOb3NuaWZmKCkpIHsKKyAgICAgICAgbV9kb2N1bWVudC5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIlJlZnVzZWQg
dG8gZXhlY3V0ZSBzY3JpcHQgZnJvbSAnIiArIG1fY2FjaGVkU2NyaXB0LT51cmwoKS5zdHJpbmdD
ZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXRzIE1JTUUgdHlwZSAoJyIg
KyBtX2NhY2hlZFNjcmlwdC0+bWltZVR5cGUoKSArICInKSBpcyBub3QgZXhlY3V0YWJsZSwgYW5k
IHN0cmljdCBNSU1FIHR5cGUgY2hlY2tpbmcgaXMgZW5hYmxlZC4iKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJh
bWUoKSkgeworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKG1fZ2xvYmFsT2JqZWN0LT52
bSgpKTsKKyAgICAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xv
YmFsRXhlYygpOworICAgICAgICBpZiAobV9jYWNoZWRTY3JpcHQtPmVycm9yT2NjdXJyZWQoKSkg
eworICAgICAgICAgICAgLy8gVGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUgaXMgY29uc3RydWN0
ZWQgYXMgYSBjaGFpbiBvZiBwcm9taXNlcy4KKyAgICAgICAgICAgIC8vIFJlamVjdGluZyBhIHBy
b21pc2UgaWYgc29tZSBlcnJvciBvY2N1cnMgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlIGV4ZWN1
dGlvbiBmbG93IG9mCisgICAgICAgICAgICAvLyB0aGUgcHJvbWlzZSBjaGFpbiBpcyBkcml2ZW4g
YnkgInJlamVjdGVkIiBvciAiZnVsZmlsbGVkIiBldmVudHMuCisgICAgICAgICAgICAvLyBJZiB0
aGUgcHJvbWlzZSBpcyBub3QgcmVqZWN0ZWQgd2hpbGUgZXJyb3Igb2NjdXJzLCByZWplY3QgaGFu
ZGxlciB3b24ndCBiZSBleGVjdXRlZAorICAgICAgICAgICAgLy8gYW5kIGFsbCB0aGUgc3Vic2Vx
dWVudCBwcm9taXNlIGNoYWluIHdhaXQgdGhlIHJlc3VsdCBmb3JldmVyLgorICAgICAgICAgICAg
Ly8KKyAgICAgICAgICAgIC8vIEFzIGEgcmVzdWx0LCBldmVuIGlmIHRoZSBlcnJvciBpcyBhbHJl
YWR5IHJlcG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgZWxzZXdoZXJlLAorICAgICAgICAgICAgLy8g
aXQgc2hvdWxkIGJlIHByb3BhZ2F0ZWQgaW4gdGhlIHBpcGVsaW5lLiBGb3IgZXhhbXBsZSwgdGhl
IGVycm9yIG9mIGxvYWRpbmcKKyAgICAgICAgICAgIC8vIENhY2hlZFJlc291cmNlIGlzIHJlcG9y
dGVkIGJ5IHRoZSBsb2FkZXIuIEJ1dCB3ZSBuZWVkIHRvIHJlamVjdCB0aGUgcHJvbWlzZSBieSBz
b21lCisgICAgICAgICAgICAvLyBlcnJvci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAv
LyBOb3QgdG8gcmVwb3J0IHRoZSBlcnJvciB0d2ljZSwgd2hlbiB3ZSBwcm9wYWdhdGUgdGhlIGVy
cm9yIHRoYXQgaXMgYWxyZWFkeSByZXBvcnRlZAorICAgICAgICAgICAgLy8gdG8gdGhlIGluc3Bl
Y3Rvciwgd2UgdGhyb3cgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgc3lt
Ym9sIGluc3RlYWQuCisgICAgICAgICAgICAvLyBJbiB0aGUgcmVqZWN0IGhhbmRsZXIgb2YgdGhl
IHByb21pc2UsIHdlIG9ubHkgcmVwb3J0IHRoZSBlcnJvciB0aGF0IGlzIG5vdCB0aGlzCisgICAg
ICAgICAgICAvLyBzeW1ib2wuCisgICAgICAgICAgICBtX2RlZmVycmVkLT5yZWplY3QoZXhlYywg
SlNDOjpTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVM
b2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgICAgICB9IGVs
c2UgaWYgKCFtX2NhY2hlZFNjcmlwdC0+d2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAgU2Ny
aXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKG1fY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICAgICAg
ICAgIG1fZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgSlNDOjpqc1N0cmluZyhleGVjLCBzb3VyY2VD
b2RlLnNvdXJjZSgpKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgbV9jYWNoZWRTY3JpcHQgPSBu
dWxscHRyOworCisgICAgbV9kb2N1bWVudC5tb2R1bGVMb2FkZXIoKS0+bm90aWZ5RmluaXNoZWQo
dGhpcyk7CisgICAgLy8gQWZ0ZXIgTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCBjYWxsLCB8
dGhpc3wgbWF5IGJlIGRlc3Ryb3llZC4KK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL01vZHVsZUZldGNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVGZXRjaGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjJmOTQzNjhmYzE3ZDY0ZjYwYWJjMTkxYWIxNDRhNzdjMjM3OTk2Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVGZXRjaGVyLmgKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9kdWxlRmV0Y2hlcl9oCisjZGVm
aW5lIE1vZHVsZUZldGNoZXJfaAorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlVSTC5oIgorI2lu
Y2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRTY3Jp
cHQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworCitjbGFzcyBN
b2R1bGVGZXRjaGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlRmV0Y2hlcj4sIHByaXZhdGUg
Q2FjaGVkUmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUZl
dGNoZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PE1vZHVsZUZldGNoZXI+IGNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgbW9kdWxlS2V5LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFs
UHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQmKTsKKworICAgIHZvaWQgcnVuKCk7CisKKyAgICBj
b25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSgpIHsgcmV0dXJuIG1fbW9kdWxlS2V5OyB9
CisgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlw
dC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIE1vZHVsZUZldGNoZXIoSlNET01HbG9iYWxPYmpl
Y3QqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSwgY29uc3QgVVJMJiBzb3VyY2VV
UkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisKKyAgICAv
LyBGb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlz
aGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVu
dDsKKyAgICBKU0M6OklkZW50aWZpZXIgbV9tb2R1bGVLZXk7CisgICAgVVJMIG1fc291cmNlVVJM
OworICAgIEpTQzo6U3Ryb25nPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKKyAg
ICBKU0M6OlN0cm9uZzxKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ+IG1fZGVmZXJyZWQ7
CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdCB7
IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1bGVGZXRj
aGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlR3JhcGguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhYjdkYjA3MTk4
MjE0YWQxNzU4MmIwYWQzNWQ1ZGJiM2JjYjMwNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW9kdWxlR3JhcGguY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKworI2luY2x1
ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgor
I2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNOYXRp
dmVTdGRGdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUdyYXBoOjpN
b2R1bGVHcmFwaChFbGVtZW50JiBlbGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCisg
ICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCit7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6Om5v
dGlmeUxvYWRlZChjb25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSkKK3sKKyAgICBtX21v
ZHVsZUtleSA9IG1vZHVsZUtleTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5tb2R1bGVMb2Fk
ZXIoKS0+bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSh0aGlzKTsKK30KKwordm9pZCBNb2R1bGVHcmFw
aDo6bm90aWZ5RXJyb3JlZCgpCit7CisgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9l
bGVtZW50KS0+ZGlzcGF0Y2hFcnJvckV2ZW50KCk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6Om5v
dGlmeUV4ZWN1dGVkKCkKK3sKKyAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1l
bnQpLT5kaXNwYXRjaExvYWRFdmVudCgpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpldmFsdWF0
ZSgpCit7CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1l
KCkpCisgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGVHcmFwaCgq
dGhpcyk7Cit9CisKK1JlZjxNb2R1bGVHcmFwaD4gTW9kdWxlR3JhcGg6OmNyZWF0ZShFbGVtZW50
JiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgQVNTRVJUKGVsZW1l
bnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBSZWY8TW9kdWxlR3JhcGg+IG1vZHVsZUdyYXBo
ID0gYWRvcHRSZWYoKm5ldyBNb2R1bGVHcmFwaChlbGVtZW50KSk7CisgICAgZWxlbWVudC5kb2N1
bWVudCgpLmZyYW1lKCktPnNjcmlwdCgpLnByZXBhcmVNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwg
bW9kdWxlTmFtZSk7CisgICAgcmV0dXJuIG1vZHVsZUdyYXBoOworfQorCitSZWY8TW9kdWxlR3Jh
cGg+IE1vZHVsZUdyYXBoOjpjcmVhdGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgU2NyaXB0U291
cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBBU1NFUlQoZWxlbWVudC5kb2N1bWVudCgpLmZy
YW1lKCkpOworICAgIFJlZjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSBhZG9wdFJlZigqbmV3
IE1vZHVsZUdyYXBoKGVsZW1lbnQpKTsKKyAgICBlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+
c2NyaXB0KCkucHJlcGFyZU1vZHVsZUdyYXBoKG1vZHVsZUdyYXBoLCBzb3VyY2VDb2RlKTsKKyAg
ICByZXR1cm4gbW9kdWxlR3JhcGg7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb2R1bGVHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjI0NjdhMDZlMjc3NGU2ZjZmYWViODJjNzMzNzY3NmQ5NjJkNmM5YgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oCkBAIC0wLDAgKzEs
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUdyYXBoX2gKKyNkZWZpbmUgTW9kdWxl
R3JhcGhfaAorCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1l
bnQ7CitjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOworCitjbGFzcyBNb2R1bGVHcmFwaCA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1vZHVsZUdyYXBoPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9k
dWxlR3JhcGgpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPE1vZHVsZUdyYXBoPiBjcmVhdGUoRWxlbWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFt
ZSk7CisgICAgc3RhdGljIFJlZjxNb2R1bGVHcmFwaD4gY3JlYXRlKEVsZW1lbnQmLCBjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJik7CisKKyAgICBFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9l
bGVtZW50OyB9CisgICAgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBtb2R1bGVLZXkoKSB7IHJldHVy
biBtX21vZHVsZUtleTsgfQorCisgICAgdm9pZCBldmFsdWF0ZSgpOworCisgICAgV2Vha1B0cjxN
b2R1bGVHcmFwaD4gd2Vha1B0cigpCisgICAgeworICAgICAgICByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlMb2FkZWQoY29u
c3QgSlNDOjpJZGVudGlmaWVyJik7CisgICAgdm9pZCBub3RpZnlFcnJvcmVkKCk7CisgICAgdm9p
ZCBub3RpZnlFeGVjdXRlZCgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1vZHVsZUdyYXBo
KEVsZW1lbnQmKTsKKworICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKKyAgICBKU0M6OklkZW50aWZp
ZXIgbV9tb2R1bGVLZXk7CisgICAgV2Vha1B0ckZhY3Rvcnk8TW9kdWxlR3JhcGg+IG1fd2Vha1B0
ckZhY3Rvcnk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1
bGVMb2FkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlTG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzlm
M2UxNDZmZmJlMzhmZDY2YjYzMDVhOGNiNTM5NTBlZmJjYmY4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgi
CisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1p
Y3JvVGFzay5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgorI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8
cnVudGltZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVM
b2FkZXI6Ok1vZHVsZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50
KGRvY3VtZW50KQorICAgICwgbV90aW1lcigqdGhpcywgJk1vZHVsZUxvYWRlcjo6dGltZXJGaXJl
ZCkKK3sKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9hZGVyOjpyZXNvbHZl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lVmFsdWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlclZhbHVl
KQoreworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwor
ICAgIGlmIChtb2R1bGVOYW1lVmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIGRlZmVy
cmVkLT5yZXNvbHZlKGV4ZWMsIG1vZHVsZU5hbWVWYWx1ZSk7CisKKyAgICAvLyBGSVhNRTogV2Ug
bm93IGFzc3VtZSB0aGF0IG1vZHVsZSBuYW1lIGlzIGVpdGhlciBzeW1ib2wgb3Igc3RyaW5nLgor
ICAgIC8vIFdoZW4gZXhwb3NpbmcgdGhlIHJlZmxlY3Rpb24gdG8gdGhlIG1vZHVsZSBsb2FkZXIg
YW5kIG1vZHVsZXMsIHdlIG5lZWQgdG8gcmVjYXN0IHRoaXMgcGFydC4KKyAgICBBU1NFUlQobW9k
dWxlTmFtZVZhbHVlLmlzU3RyaW5nKCkpOworICAgIFN0cmluZyBtb2R1bGVOYW1lID0gSlNDOjpq
c0Nhc3Q8SlNDOjpKU1N0cmluZyo+KG1vZHVsZU5hbWVWYWx1ZSktPnZhbHVlKGV4ZWMpOworCisg
ICAgLy8gTm93LCB3ZSBjb25zaWRlciB0aGUgZ2l2ZW4gbW9kdWxlTmFtZSBhcyB0aGUgc2FtZSB0
byB0aGUgc3JjPSIuLi4iIGluIHRoZSBzY3JpcHQgdGFnLgorICAgIC8vIFdlIHVzZSB0aGUgY29t
cGxldGVkIFVSTCBhcyB0aGUgbW9kdWxlIGtleS4KKyAgICAvLworICAgIC8vIEZJWE1FOiBXZSBu
ZWVkIHNpdGUgcGFja2FnaW5nIHN5c3RlbS4gQnV0IGl0J3Mgbm90IGRlZmluZWQgaW4gdGhlIHNw
ZWMgeWV0LgorICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXIt
bG9hZGVyLXByb3RvdHlwZS0lNDAlNDByZXNvbHZlCisgICAgVVJMIGNvbXBsZXRlZFVSTDsKKwor
ICAgIC8vIEZJWE1FOiBDaGVjayBtX2RvY3VtZW50IGxpZmV0aW1lLgorICAgIGlmIChyZWZlcnJl
clZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29t
cGxldGVVUkwobW9kdWxlTmFtZSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChyZWZlcnJlclZh
bHVlLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50
LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFT
U0VSVChyZWZlcnJlclZhbHVlLmlzU3RyaW5nKCkpOworICAgICAgICAgICAgU3RyaW5nIHJlZmVy
cmVyID0gSlNDOjpqc0Nhc3Q8SlNDOjpKU1N0cmluZyo+KHJlZmVycmVyVmFsdWUpLT52YWx1ZShl
eGVjKTsKKyAgICAgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwo
bW9kdWxlTmFtZSwgVVJMKFBhcnNlZFVSTFN0cmluZywgcmVmZXJyZXIpKTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBpZiAoIWNvbXBsZXRlZFVSTC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBk
ZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGNyZWF0ZURPTUV4Y2VwdGlvbihleGVjLCBTWU5UQVhfRVJS
KSk7CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhlYywganNTdHJpbmcoZXhlYywg
Y29tcGxldGVkVVJMLnN0cmluZygpKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIE1v
ZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQoreworICAgIC8v
IEZJWE1FOiBXaGVuIGltcGxlbWVudGluZyByZWZsZWN0aXZlIG1vZHVsZSBsb2FkZXIgYW5kIG1v
ZHVsZXMsIHdlIHNob3VsZCByZWNhc3QgdGhpcyBpbXBsZW1lbnRhdGlvbi4KKyAgICBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKworICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoIW1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCksICJTeW1ib2xpYyBtb2R1bGUga2V5
IHNob3VsZCBiZSBhbHJlYWR5IGZ1bGZpbGxlZCB3aXRoIHRoZSBpbmxpbmVkIHJlc291cmNlLiIp
OworICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKKworICAgIEpTQzo6SWRl
bnRpZmllciBtb2R1bGVLZXkgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgYXNT
dHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7CisKKyAgICBVUkwgY29tcGxldGVk
VVJMKFBhcnNlZFVSTFN0cmluZywgbW9kdWxlS2V5LmltcGwoKSk7CisgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShjb21wbGV0ZWRVUkwuaXNWYWxpZCgpLCAiVGhlIHJlc29sdmUgaG9vayBzaG91bGQg
cHJvZHVjZSB0aGUgdmFsaWQgVVJMIGFzIGEgc3RyaW5nLiIpOworCisgICAgUmVmPE1vZHVsZUZl
dGNoZXI+IGZldGNoZXIgPSBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNDOjpqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBtb2R1bGVLZXksIGNvbXBsZXRlZFVSTCwgZGVm
ZXJyZWQsIG1fZG9jdW1lbnQpOworICAgIG1fZmV0Y2hpbmdTZXQuYWRkKCZmZXRjaGVyLmdldCgp
KTsKKyAgICBmZXRjaGVyLT5ydW4oKTsKKworICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgp
OworfQorCitKU0M6OkpTVmFsdWUgTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1
ZSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlKQoreworICAgIC8vIEZJWE1FOiBDdXJy
ZW50bHksIHdlIG9ubHkgc3VwcG9ydCBKU01vZHVsZVJlY29yZC4KKyAgICBKU0M6OkpTTW9kdWxl
UmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU01vZHVsZVJl
Y29yZCo+KG1vZHVsZVJlY29yZFZhbHVlKTsKKyAgICBpZiAoIW1vZHVsZVJlY29yZCkKKyAgICAg
ICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKKworICAgIFVSTCBzb3VyY2VVUkw7CisgICAg
aWYgKG1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHNvdXJjZVVSTCA9IG1fZG9j
dW1lbnQudXJsKCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5p
c1N0cmluZygpKTsKKyAgICAgICAgc291cmNlVVJMID0gVVJMKFBhcnNlZFVSTFN0cmluZywgYXNT
dHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7CisgICAgfQorCisgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5z
Y3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsIG1vZHVsZVJlY29yZCk7CisgICAgcmV0
dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKwordm9pZCBNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKE1vZHVsZUZldGNoZXIqIGZldGNoZXIpCit7CisgICAgbV9mZXRjaGluZ1NldC5yZW1v
dmUoZmV0Y2hlcik7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjpub3RpZnlNb2R1bGVHcmFwaFJl
YWR5KE1vZHVsZUdyYXBoKiBtb2R1bGVHcmFwaCkKK3sKKyAgICBtX21vZHVsZUdyYXBoc1RvRXhl
Y3V0ZS5hcHBlbmQoUGVuZGluZ01vZHVsZUdyYXBoIHsgJm1vZHVsZUdyYXBoLT5lbGVtZW50KCks
IG1vZHVsZUdyYXBoIH0pOworICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lk
IE1vZHVsZUxvYWRlcjo6dGltZXJGaXJlZCgpCit7CisgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0
KG1fZG9jdW1lbnQpOworICAgIFZlY3RvcjxQZW5kaW5nTW9kdWxlR3JhcGg+IG1vZHVsZUdyYXBo
czsKKyAgICBtb2R1bGVHcmFwaHMuc3dhcChtX21vZHVsZUdyYXBoc1RvRXhlY3V0ZSk7CisKKyAg
ICBmb3IgKFBlbmRpbmdNb2R1bGVHcmFwaCYgcGVuZGluZ01vZHVsZUdyYXBoIDogbW9kdWxlR3Jh
cGhzKSB7CisgICAgICAgIHBlbmRpbmdNb2R1bGVHcmFwaC5tb2R1bGVHcmFwaC0+ZXZhbHVhdGUo
KTsKKyAgICAgICAgTWljcm9UYXNrUXVldWU6OnNpbmdsZXRvbigpLnJ1bk1pY3JvVGFza3MoKTsK
KyAgICAgICAgcGVuZGluZ01vZHVsZUdyYXBoLmNsZWFyKCk7CisgICAgfQorfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW9kdWxlTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE4ZGVhOTI0ZDUwOWY5YjVjYmQ4ODVj
NDU5YzlmNWQwZDU4YzdlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b2R1bGVMb2FkZXIuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1
bGVMb2FkZXJfaAorI2RlZmluZSBNb2R1bGVMb2FkZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIk1vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgor
I2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworCitjbGFzcyBNb2R1bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IGV4cGxpY2l0IE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJl
cik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNDOjpK
U1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCisgICAg
dm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKik7CisgICAgdm9pZCBub3RpZnlNb2R1
bGVHcmFwaFJlYWR5KE1vZHVsZUdyYXBoKik7CisKKyAgICB2b2lkIHRpbWVyRmlyZWQoKTsKKwor
ICAgIHN0cnVjdCBQZW5kaW5nTW9kdWxlR3JhcGggeworICAgICAgICBSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudDsKKyAgICAgICAgUmVmUHRyPE1vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaDsKKworICAg
ICAgICB2b2lkIGNsZWFyKCkKKyAgICAgICAgeworICAgICAgICAgICAgZWxlbWVudCA9IG51bGxw
dHI7CisgICAgICAgICAgICBtb2R1bGVHcmFwaCA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9
OworCitwcml2YXRlOgorICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIEhhc2hTZXQ8UmVm
UHRyPE1vZHVsZUZldGNoZXI+PiBtX2ZldGNoaW5nU2V0OworICAgIFZlY3RvcjxQZW5kaW5nTW9k
dWxlR3JhcGg+IG1fbW9kdWxlR3JhcGhzVG9FeGVjdXRlOworICAgIFRpbWVyIG1fdGltZXI7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1bGVMb2FkZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY2YmJlY2UxZDM1ZTFhNDc2M2Jm
OWViZWJmMGYwYzEyY2RiZWYxZDcuLjE2NGNjY2QyNGIwN2E5NWU1N2MxYWIxYjU4NzJjOGNhNGE4
ZjJlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWdub3JlRGVzdHJ1
Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCkBAIC0xNjEsNiAr
MTYyLDEwIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3VwcG9ydGVkKExlZ2Fj
eVR5cGVTdXBwb3J0IHN1cHBvcnRMZWdhY3lUeXBlcykKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0gZWxzZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TUlNRVR5cGUodHlwZS5zdHJpcFdoaXRlU3BhY2UoKS5sb3dlcigpKSB8fCAoc3VwcG9ydExlZ2Fj
eVR5cGVzID09IEFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSAmJiBpc0xlZ2FjeVN1cHBv
cnRlZEphdmFTY3JpcHRMYW5ndWFnZSh0eXBlKSkpCiAgICAgICAgIHJldHVybiB0cnVlOworLy8g
I2lmIEVOQUJMRShFUzZfTU9EVUxFUykKKyAgICBlbHNlIGlmICh0eXBlID09ICJtb2R1bGUiKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKy8vICNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIApA
QCAtMjE3LDYgKzIyMiw5IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25z
dCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgZWxzZQogICAg
ICAgICBtX2NoYXJhY3RlckVuY29kaW5nID0gZG9jdW1lbnQuY2hhcnNldCgpOwogCisgICAgaWYg
KGlzTW9kdWxlVHlwZSgpKQorICAgICAgICByZXR1cm4gcHJlcGFyZU1vZHVsZUdyYXBoKHNjcmlw
dFN0YXJ0UG9zaXRpb24pOworCiAgICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKQogICAgICAg
ICBpZiAoIXJlcXVlc3RTY3JpcHQoc291cmNlQXR0cmlidXRlVmFsdWUoKSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0zMTcsNiArMzI1LDcgQEAgdm9pZCBTY3JpcHRFbGVtZW50Ojpz
dG9wTG9hZFJlcXVlc3QoKQogICAgICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVu
dCh0aGlzKTsKICAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSAwOwogICAgIH0KKyAgICAvLyBGSVhN
RTogVGhlIG1vZHVsZSBsb2FkZXIgc2hvdWxkIGhhdmUgdGhlIG1lY2hhbmlzbSB0byBzdG9wIGxv
YWRpbmcuCiB9CiAKIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNh
Y2hlZFNjcmlwdCkKQEAgLTMzMiw2ICszNDEsNTIgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVj
dXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogICAgIGNhY2hlZFNjcmlwdC0+cmVtb3Zl
Q2xpZW50KHRoaXMpOwogfQogCitib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVNb2R1bGVHcmFw
aChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCit7CisgICAgLy8gVGhl
IGJyb3dzZXIgbW9kdWxlIGxvYWRlciBsb2FkcyB0aGUgbW9kdWxlIHNvdXJjZXMuCisgICAgLy8g
U2luY2UgdGhlIG1vZHVsZSBpbnZvbHZlcyBsb2FkaW5nIG9mIHRoZSBkZXBlbmRlbnQgbW9kdWxl
cyBhbmQgdGhlIGRlcGVuZGVudCBtb2R1bGVzIGRvZXMgbm90IGhhdmUgY29ycmVzcG9uZGluZyBz
Y3JpcHQgZWxlbWVudHMsCisgICAgLy8gdGhlIGZ1bmN0aW9uYWxpdHkgb2YgbG9hZGluZyBtb2R1
bGVzIGlzIHNlcGFyYXRlZCBmcm9tIHRoZSBzY3JpcHQgZWxlbWVudC4KKyAgICBpZiAoaGFzU291
cmNlQXR0cmlidXRlKCkpIHsKKyAgICAgICAgU3RyaW5nIHNvdXJjZVVybCA9IHNvdXJjZUF0dHJp
YnV0ZVZhbHVlKCk7CisgICAgICAgIFJlZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudChtX2Vs
ZW1lbnQuZG9jdW1lbnQoKSk7CisgICAgICAgIGlmICghbV9lbGVtZW50LmRpc3BhdGNoQmVmb3Jl
TG9hZEV2ZW50KHNvdXJjZVVybCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgLy8gU2NyaXB0IGVsZW1lbnQgbWF5IGJlIGRldGFjaGVkIGFuZCBhdHRhY2hlZCB0byBhIGRp
ZmZlcmVudCBkb2N1bWVudCB3aGlsZSBleGVjdXRpbmcgdGhlIGV2ZW50IGxpc3RlbmVyLgorICAg
ICAgICBpZiAoIW1fZWxlbWVudC5pbkRvY3VtZW50KCkgfHwgJm1fZWxlbWVudC5kb2N1bWVudCgp
ICE9IG9yaWdpbmFsRG9jdW1lbnQucHRyKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgaWYgKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VVcmwp
LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hFcnJvckV2ZW50KCk7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTogU2hvdWxk
IHN1cHBvcnQgY3Jvc3Mtb3JpZ2luIG1vZGUgaW4gdGhlIG1vZHVsZSB0YWcuCisgICAgICAgIC8v
IEhvd2V2ZXIgd2UgZG9uJ3QgaGF2ZSB0aGUgcG9saWN5IHRvIGFwcGx5IHRoaXMgbW9kZSB0byB0
aGUgcmVzb3VyY2VzIG9mIHRoZSBkZXBlbmRlbnQgbW9kdWxlcy4KKyAgICAgICAgLy8gUHJvdmlk
ZWQgbXVsdGlwbGUgbW9kdWxlIHRhZ3MsCisgICAgICAgIC8vCisgICAgICAgIC8vICAgQTogPHNj
cmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi4uIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3Nj
cmlwdD4KKyAgICAgICAgLy8gICBCOiA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuLi4iPjwv
c2NyaXB0PgorICAgICAgICAvLworICAgICAgICAvLyAnQScgaGFzIHRoZSAiY3Jvc3NvcmlnaW4i
IGF0dHJpYnV0ZS4gQnV0ICdCJyBkb2VzIG5vdCBoYXZlIGl0LgorICAgICAgICAvLyBIb3dldmVy
LCBFUzYgbW9kdWxlcyBhbGxvdyAnQScgYW5kICdCJyB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBh
bmQgaXQgd2lsbCBiZSBjYWNoZWQgaW4gdGhlCisgICAgICAgIC8vIG1vZHVsZSBsb2FkZXIuIElu
IHRoYXQgY2FzZSwgaXQgaXMgY29udHJvdmVyc2lhbCB0aGF0IHdoaWNoICJjcm9zc29yaWdpbiIg
YXR0cmlidXRlIHdpbGwgYmUKKyAgICAgICAgLy8gYXBwbGllZCB0byB0aGUgbW9kdWxlIGxvYWRl
ZCBieSB0aGUgYm90aC4gT25jZSB0aGUgc3BlYyBvZiB0aGUgbW9kdWxlIGxvYWRlciBpcyBmaXhl
ZCwgd2UKKyAgICAgICAgLy8gc2hvdWxkIGZvbGxvdyBpdC4KKworICAgICAgICBtX21vZHVsZUdy
YXBoID0gTW9kdWxlR3JhcGg6OmNyZWF0ZShtX2VsZW1lbnQsIHNvdXJjZUF0dHJpYnV0ZVZhbHVl
KCkpOworICAgICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVlOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIW1fZWxlbWVudC5kb2N1bWVudCgpLmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5hbGxvd0lubGluZVNjcmlwdChtX2VsZW1lbnQuZG9jdW1lbnQoKS51cmwo
KSwgbV9zdGFydExpbmVOdW1iZXIsIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgp
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgLy8gUmVzZXQgbGluZSBudW1iZXJpbmcgZm9y
IG5lc3RlZCB3cml0ZXMuCisgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gbV9lbGVtZW50LmRv
Y3VtZW50KCkuaXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlvbigpIDogc2NyaXB0U3Rh
cnRQb3NpdGlvbjsKKyAgICBtX21vZHVsZUdyYXBoID0gTW9kdWxlR3JhcGg6OmNyZWF0ZShtX2Vs
ZW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0Q29udGVudCgpLCBtX2VsZW1lbnQuZG9jdW1l
bnQoKS51cmwoKSwgcG9zaXRpb24pKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBTY3Jp
cHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAg
ICAgQVNTRVJUKCFtX3dpbGxCZVBhcnNlckV4ZWN1dGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5oCmluZGV4IGI3ZTczZDBkZWU4M2QzMjRlODcyZjdiYzRjMWI5MzNkYzk2YzExMmEuLjQx
YTA3MzliOTc0MmE2Y2M2ZjMxYWI4ZGY2YjUyZDRlZTM5MjdkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRWxlbWVudDsKK2Ns
YXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNvdXJj
ZUNvZGU7CiAKQEAgLTgyLDYgKzgzLDggQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUg
Q2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgcmVxdWVzdFNjcmlwdChjb25zdCBTdHJp
bmcmIHNvdXJjZVVybCk7CiAgICAgdm9pZCBzdG9wTG9hZFJlcXVlc3QoKTsKIAorICAgIGJvb2wg
cHJlcGFyZU1vZHVsZUdyYXBoKGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlv
bik7CisKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkgY29u
c3QgPSAwOwpAQCAtOTMsNiArOTYsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFs
dWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVUeXBlKCkgY29uc3QgPSAwOwogCiAgICAgRWxl
bWVudCYgbV9lbGVtZW50OwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4g
bV9jYWNoZWRTY3JpcHQ7CkBAIC0xMDksNiArMTEzLDcgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6
IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgbV9yZXF1ZXN0VXNlc0Fj
Y2Vzc0NvbnRyb2wgOiAxOwogICAgIFN0cmluZyBtX2NoYXJhY3RlckVuY29kaW5nOwogICAgIFN0
cmluZyBtX2ZhbGxiYWNrQ2hhcmFjdGVyRW5jb2Rpbmc7CisgICAgUmVmUHRyPE1vZHVsZUdyYXBo
PiBtX21vZHVsZUdyYXBoOwogfTsKIAogU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZShFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCmluZGV4IGUxM2E1Y2RkY2NhMmNiM2I3NTZhOGQzYTU3ZTIzZjgwYTliNDNlNDguLjc1Njc3
OWU3YTUwZDVjNGFjYzNkZDM5NzM5MjUxMGZjOTdhZTY0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNjEsNiArMTYxLDE1IEBAIGJvb2wgSFRNTFNj
cmlwdEVsZW1lbnQ6Omhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhc3RI
YXNBdHRyaWJ1dGUoc3JjQXR0cik7CiB9CiAKK2Jvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9k
dWxlVHlwZSgpIGNvbnN0Cit7CisvLyAjaWYgRU5BQkxFKEVTNl9NT0RVTEVTKQorICAgIHJldHVy
biBmYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKS5zdHJpbmcoKSA9PSAibW9kdWxlIjsKKy8vICNl
bHNlCisvLyAgICByZXR1cm4gZmFsc2U7CisvLyAjZW5kaWYKK30KKwogdm9pZCBIVE1MU2NyaXB0
RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogewogICAgIEFTU0VSVCghaGF2ZUZpcmVkTG9h
ZEV2ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDMx
MmM2NjI2ZThiODMxNGU4NWUyZGY2ODdkYmYwOWYyYjJmZTM3YjIuLjFkZmQ4YzhiNzNlODcyYWJj
ZDVlYjRiMzQyZTc5MmQzMzUwM2U3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKICAgICB2aXJ0dWFs
IGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc01vZHVsZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaExvYWRFdmVudCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5jcHAKaW5kZXggOGFkZmNmYTQxMGFiZTQ3ZTMzMjRhZTViOGQ5MjQzZjU2NjY0NWQ5NS4u
YmE1ZjA2ZjQ0YjZiMTE3ZmNiYjYyMzM1MzhlMmUxNGNkN2Y4ZTY5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtMTUxLDYgKzE1MSwxMSBAQCBib29sIFNWR1Nj
cmlwdEVsZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorYm9vbCBTVkdTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAorewor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VB
dHRyaWJ1dGUoKSBjb25zdAogewogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1lczo6
aHJlZkF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggNTM1ZTQy
ZTZmMDY0NmQ4MDEwNDE5MDkzYzYyMjkyNGIzODNkNzEwMS4uOGFmZGUzMTEyNWU1ZGQ0OThkYjgy
YTRlMDk4M2FiMDc0ZTBkY2M2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nj
cmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5o
CkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
U1ZHRWxlbWVudAogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGUgeyBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261547</attachid>
            <date>2015-09-18 17:36:49 -0700</date>
            <delta_ts>2015-09-18 20:23:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150918173635.patch</filename>
            <type>text/plain</type>
            <size>71713</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDU5YzE3MmQ1YTk0N2E3OTg2NGJhZWZjYzZlZTliYmFiMDhkYmE1Li5lMWQ1MjhkN2U4NTM1NTdh
YjRiMjU3ODRmN2I0ZjkxNTZlNDUxMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wOS0xOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRp
bWUvU3ltYm9sLmg6CisKIDIwMTUtMDktMTggIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNh
a0BnbWFpbC5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHR5cGUgY29udmVyc2lvbiBpbnN0cnVj
dGlvbnMgaW4gV2ViQXNzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODFiOGZlZjFkYjk4M2I4Yzk5Y2Y0
YTZiNzZmMDk3Y2VmNDliNjcxLi4yZDU5MGJkNzk4ZTU2YmQxMTljZTYwZGFlNTJjNjcwOGUxZWM5
OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODUgQEAKKzIwMTUtMDktMTggIFl1c3VrZSBTdXp1
a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVT
NiBNb2R1bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBGb3J3YXJk
aW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg6IEFkZGVkLgorICAgICAgICAq
IEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3Jk
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVj
U3RhdGU6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNYWluVGhyZWFkRXhlY1N0
YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6U2Ny
aXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFs
dWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVNb2R1bGVM
b2FkZXJBc3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRy
b2xsZXI6OmluaXRNb2R1bGVHcmFwaCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bW9kdWxlTG9h
ZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKiBkb20v
TW9kdWxlRmV0Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hl
cjo6TW9kdWxlRmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6cnVuKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBkb20vTW9k
dWxlRmV0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6Om1v
ZHVsZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjYWNoZWRTY3JpcHQp
OgorICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdy
YXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlm
eUVycm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUV4ZWN1dGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpldmFsdWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVHcmFwaDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vTW9kdWxlR3JhcGgu
aDogQ29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5l
ckRyYWdnaW5nSW5mby5oLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om1vZHVsZUtleSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVHcmFwaDo6d2Vha1B0cik6CisgICAgICAgICogZG9tL01vZHVsZUxvYWRl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpNb2R1bGVMb2Fk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpyZXNvbHZlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxl
TG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6Om5vdGlm
eUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6bm90aWZ5TW9kdWxl
R3JhcGhSZWFkeSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OnRpbWVyRmlyZWQp
OgorICAgICAgICAqIGRvbS9Nb2R1bGVMb2FkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVMb2FkZXI6OmRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRl
cjo6UGVuZGluZ01vZHVsZUdyYXBoOjpjbGVhcik6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3Vw
cG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAqIGRv
bS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6aXNNb2R1
bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorCiAyMDE1LTA5LTE4
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1dpbl0gRml4IGJpbmRpbmdzIHRlc3RzIGFmdGVyIHIxODk5MzQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IDgzZjVkZTI0ODUyYmMzNzhlZTBhNzcwMzlmNDYzMTgy
NWZkZGRiYmUuLmRkYjY4Y2NiMzY1NDQ1OTkxMGNkM2YyM2Y2Njg3NGQwMDU4OGE5NTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC04Niw3ICs4Niw3IEBAIGNsYXNz
IFN5bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgU3ltYm9sKFZNJik7CiAgICAg
U3ltYm9sKFZNJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgU3ltYm9sKFZNJiwgU3ltYm9sSW1wbCYg
dWlkKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1aWQp
OwogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFs
UHJvbWlzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNTU3YTJmMjFlY2Y2YjJhZWNhZDY3ZTM1M2UxOTY2ZTQ3
OTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdl
YkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRl
cm5hbFByb21pc2VfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNl
Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzZjMDg2ZGQzOWFmZjllMTA0YmQ1YTZmZjdhZTc5MjU0NjM4Njk1NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZX
RF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjNlOWVjZmZiY2Y1N2MyYTljNzk1Y2NiMWQ4MDM0MGY5MTRkN2Q0ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNv
cmQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNvcmRf
aAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KU01vZHVsZVJlY29yZF9oCisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc4NGIwMzIyM2E2MjgyYzQz
MWY0MTQ1MmM5NTgzNDk3ZWYyYTlhM2YuLjIxODk2ZTI3MWE0M2U5NTY3NzU5MmM0NmQwNjAzYzcw
Y2VhNjE5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTYzMTksNiArNjMxOSwxMiBAQAogCQlFMUZGOEY2ODE4MDc0NjA4MDAx
MzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTU3Vi
dGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTFGRjhGNkMxODBEQjVCRTAwMTMyNjc0IC8q
IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdv
cml0aG1SZWdpc3RyeS5jcHAgKi87IH07CiAJCUUxRkY4RjZEMTgwREI1QkUwMDEzMjY3NCAvKiBD
cnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5LmggKi87IH07CisJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVH
cmFwaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwICovOyB9OworCQlFMzM5
QTUyNDFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzlBNTIyMUJBNkJENDYwMEEzQTdBRSAvKiBN
b2R1bGVHcmFwaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUUzQjEwRkEyMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMTBGQTAxQkEwMDRC
QzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5jcHAgKi87IH07CisJCUUzQjEwRkEzMUJBMDA0QkMw
MDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzQjEwRkExMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0Ix
MEZBNjFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IxMEZBNDFCQTBGMjlDMDA5M0RFM0Eg
LyogTW9kdWxlRmV0Y2hlci5jcHAgKi87IH07CisJCUUzQjEwRkE3MUJBMEYyOUMwMDkzREUzQSAv
KiBNb2R1bGVGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0IxMEZBNTFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0MDFDMjc1MTdD
RTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDAxQzI3NDE3Q0U1M0VDMDBDNDFB
MzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0MjRBMzlFMTMzMERGMDEwMENGNkRDOSAvKiBM
ZWdhY3lUaWxlR3JpZFRpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0MjRBMzlEMTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUu
aCAqLzsgfTsKIAkJRTQyNEEzQTAxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGls
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRB
MzlGMTMzMERGMUUwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gKi87IH07CkBAIC0x
NDA3MCw2ICsxNDA3NiwxMiBAQAogCQlFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0
bGVDcnlwdG9DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QjE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUdyYXBoLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1v
ZHVsZUdyYXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUdyYXBo
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQjEwRkEwMUJBMDA0QkMwMDkzREUz
QSAvKiBNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNCMTBG
QTExQkEwMDRCQzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTNCMTBGQTQxQkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZldGNoZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlRmV0Y2hlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQjEwRkE1MUJBMEYyOUMwMDkzREUzQSAvKiBNb2R1bGVG
ZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUZldGNoZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1
IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbG9yRGF0YS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9w
ZXJ0eU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1By
b3BlcnR5TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM0NzgsNiAr
MjM0OTAsMTIgQEAKIAkJCQk0MUJGNzAwQTBGRTg2RjQ5MDA1RThERUMgLyogTWVzc2FnZVBvcnRD
aGFubmVsLmggKi8sCiAJCQkJQ0I4Q0YwMTUxQTkzNEI0MzAwMEQ1MTBCIC8qIE1pY3JvVGFzay5j
cHAgKi8sCiAJCQkJNTNCODk1QUQxOURDN0MzNzAwOUNBQTkzIC8qIE1pY3JvVGFzay5oICovLAor
CQkJCUUzQjEwRkE0MUJBMEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmNwcCAqLywKKwkJ
CQlFM0IxMEZBNTFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5oICovLAorCQkJCUUz
MzlBNTIxMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi8sCisJCQkJRTMzOUE1
MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggKi8sCisJCQkJRTNCMTBGQTAxQkEw
MDRCQzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5jcHAgKi8sCisJCQkJRTNCMTBGQTExQkEwMDRC
QzAwOTNERTNBIC8qIE1vZHVsZUxvYWRlci5oICovLAogCQkJCTg1MDMxQjJGMEE0NEVGQzcwMEY5
OTJFMCAvKiBNb3VzZUV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzMDBBNDRFRkM3MDBGOTkyRTAg
LyogTW91c2VFdmVudC5oICovLAogCQkJCTE0MUI5NEU1MDlFQzQyMjMwMDBFOTQxMyAvKiBNb3Vz
ZUV2ZW50LmlkbCAqLywKQEAgLTI0MzY3LDYgKzI0Mzg1LDcgQEAKIAkJCQkwNjVBRDRGNTBCMEMy
RURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
MDZEN0JFMThCREI3NkYwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA2NUFENEY3MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzQjEwRkEzMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1
bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2MDI3Q0FEMEIxQ0JGQzAwMDg4NEIyRCAv
KiBDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTdBREU3MjI2MTBDQkJCOUIw
MDZCM0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDUw
MDJGQzFCNTZENzk5MDAyMEFBRjcgLyogUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNDU5Myw2ICsyNDYxMiw3IEBACiAJCQkJMzE2MDIzRjAxNTMyQzQwQzAwRDUwRkY0IC8qIERp
Y3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEzMSAv
KiBEaWN0aW9uYXJ5TG9va3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNEMTMx
MDA4REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzM5QTUy
NDFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTdF
REFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1v
bml0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBE
aXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MzQsNiAr
MjY4NTQsNyBAQAogCQkJCTJEOTNBRUUzMTlERjU2NDEwMDJBODZDMyAvKiBTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTZCMkNFMTE4QjcxMDE2MDBGRUNG
QUEgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxMDA5OUU2NDkyMDA1
NkU1ODEgLyogU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUz
QjEwRkE3MUJBMEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCOERCREI0QzEzMEIwRjhBMDBGNUNEQjEgLyogU2V0U2VsZWN0aW9uQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NEYwODI0NUU1OTAwMUU5QUJDIC8qIFNldHRpbmdzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1M0VGNzY2QjE2NTMwQTYxMDA0Q0JFNDkgLyogU2V0dGluZ3NN
YWNyb3MuaCBpbiBIZWFkZXJzICovLApAQCAtMjc5NzksNiArMjgwMDAsNyBAQAogCQkJCUNEMEVF
RTBFMTQ3NDNGMzkwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZEMzE2MEJDMTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTWFj
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDA3MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzM5QTUyMzFCQTZCRDQ2
MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwODEx
MkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNENTU5NjkxMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1Mu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQkUxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlv
RmlsZVJlYWRlck1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4OTAwLDYgKzI4OTIyLDE0IEBA
CiAJCQkJNTFFMUVDQzAwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNvcmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFENzE5QjkxODExMDZFMDAwMTZEQzUxIC8qIElEQkFueS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDNTg1QTY2MjExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxp
dGllcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUQ3MTlCRjE4MTEwNkUwMDAxNkRDNTEgLyog
SURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxNjczMEEzMTgyRDhGQkIwMDNGQUY1
QyAvKiBJREJDdXJzb3JCYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzQjEwRkE2MUJB
MEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUx
MDE5NDQ0MTgzNkY3RTQwMDkyNTUyMyAvKiBJREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk1MUQ3MTlDMzE4MTEwNkUwMDAxNkRDNTEgLyogSURCQ3Vyc29y
V2l0aFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRDcxOUM2MTgxMTA2RTAwMDE2REM1
MSAvKiBJREJEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTc3MUM4RTE4MkRCNEI3
MDA4RTc4MUUgLyogSURCRGF0YWJhc2VCYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUx
RDcxOUNCMTgxMTA2RTAwMDE2REM1MSAvKiBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFENzE5Q0UxODExMDZFMDAwMTZEQzUxIC8qIElEQkRhdGFiYXNl
RXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNjMxMTdEMTg1MTI0MkIwMDUzNDY0
NyAvKiBJREJEYXRhYmFzZU1ldGFkYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRDcxOUQw
MTgxMTA2RTAwMDE2REM1MSAvKiBJREJFdmVudERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTgwMiw2ICsyOTgzMiw3IEBACiAJCQkJRDNBOTRBMzgxMjJEQUJBQzAwQTM3QkJDIC8q
IE1lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQzQUExMEYzMTIzQTk4QUEw
MDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDOTA4
NDNDRjFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlFM0IxMEZBMjFCQTAwNEJDMDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNFRUZDRDc5MTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291
cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQkVBRUFDMTlEOTJCNkMwMEJFQkE4
OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM5
MDI3RjQxMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRl
eCA3OWI3NDBiZTVlMWEyNjAwYzQxZDczMjEyNTE1ZjhmZjExMmJlOTY2Li4zMmEwNWI2YzgwMjll
YzI2ODZjOGY4YjlkNzhmZTUyODIxMDUwYTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMxLDExICszMSwxMyBAQAogI2luY2x1ZGUg
IkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
KyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KICNpbmNsdWRl
IDxydW50aW1lL01pY3JvdGFzay5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAg
LTU2LDcgKzU4LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3NGcm9tKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0LCBFeGVjU3RhdGUqIGUKIAogY29uc3QgQ2xhc3NJbmZv
IEpTRE9NV2luZG93QmFzZTo6c19pbmZvID0geyAiV2luZG93IiwgJkpTRE9NR2xvYmFsT2JqZWN0
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNET01XaW5kb3dCYXNlKSB9OwogCi1j
b25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgPSB7ICZzaG91bGRBbGxvd0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2Zp
bGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZq
YXZhU2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRl
cnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyIH07Citjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRv
d0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZzaG91bGRBbGxvd0FjY2Vzc0Zy
b20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJ
bnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVu
dExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCAmbW9kdWxlTG9hZGVy
UmVzb2x2ZSwgJm1vZHVsZUxvYWRlckZldGNoLCBudWxscHRyLCBudWxscHRyLCAmbW9kdWxlTG9h
ZGVyRXZhbHVhdGUgfTsKIAogSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNE
T01XaW5kb3dTaGVsbCogc2hlbGwpCiAgICAgOiBKU0RPTUdsb2JhbE9iamVjdCh2bSwgc3RydWN0
dXJlLCAmc2hlbGwtPndvcmxkKCksICZzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQpAQCAtMjc5
LDQgKzI4MSwzMSBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6ZmlyZUZyYW1lQ2xlYXJlZFdhdGNo
cG9pbnRzRm9yV2luZG93KERPTVdpbmRvdyogd2luZG93KQogICAgIH0KIH0KIAorCitKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUoSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlND
OjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlcikKK3sKKyAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5p
bXBsKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIo
KS0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZU5hbWUsIHJlZmVycmVyKTsKKyAg
ICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1
cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5lZCgpKTsKK30KKworSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgbW9kdWxlS2V5KQoreworICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpT
Qzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKERvY3Vt
ZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5kb2N1bWVudCgpKQorICAgICAgICBy
ZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5mZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMs
IG1vZHVsZUtleSk7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJl
ZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9i
amVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRlZmluZWQoKSk7
Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpCit7Cisg
ICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dC
YXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09i
amVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxl
TG9hZGVyKCktPmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlS2V5LCBtb2R1bGVS
ZWNvcmQpOworICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmgKaW5kZXggNWVkMzg2MmMxNDExODdjMDA2YjY4OGRiNzk3Nzk0YjM2OTgxMDU2NC4uMmQ0NGI4
MDA5ZTU0ZGJiMDc0ZThmOTk3N2MxNmIyNWUxMjU3ZWFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTc4LDYgKzc4LDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgSlNDOjpXYXRjaHBvaW50U2V0IG1fd2luZG93Q2xvc2VXYXRj
aHBvaW50czsKIAogICAgIHByaXZhdGU6CisgICAgICAgIC8vIE1vZHVsZSBMb2FkZXIgaG9va3Mu
CisgICAgICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwg
SlNDOjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1v
ZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZh
bHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
LCBKU0M6OkpTVmFsdWUpOworCiAgICAgICAgIFJlZlB0cjxET01XaW5kb3c+IG1faW1wbDsKICAg
ICAgICAgSlNET01XaW5kb3dTaGVsbCogbV9zaGVsbDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAppbmRleCAwOWU3ZTVi
NjAyNjg3OWI1MzM1YTFmZTFlZjcxYzQ0NzQzMGJmY2Q0Li40ZmQ2ODNlMTU5MTAyYjE1Mjg3ZDYz
ODk5YzAxNmVmZDM3NDgwM2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaApAQCAtNzQsNiArNzQsMjQgQEAgY2xhc3MgSlNNYWlu
VGhyZWFkRXhlY1N0YXRlIHsKICAgICAgICAgdGFzay5ydW4oZXhlYyk7CiAgICAgfQogCisgICAg
c3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKKyAgICB7CisgICAgICAgIEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6Omxv
YWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpT
Qzo6U291cmNlQ29kZSYgc291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4
ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1
bGUoZXhlYywgc291cmNlQ29kZSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBtb2R1bGVLZXkpCisgICAgeworICAgICAgICBKU01haW5UaHJl
YWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsaW5r
QW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgbW9kdWxlS2V5KTsKKyAgICB9CisKICAgICBzdGF0aWMg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGluc3RydW1lbnRGdW5jdGlvbkNhbGwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEpTQzo6Q2FsbFR5cGUsIGNvbnN0IEpTQzo6Q2FsbERhdGEm
KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAKaW5kZXggNGIzYjA5NzJiZTc3ZjNjNzY1OTVmMTQwZTI2YTc0OGZmOGVhNDUw
Yy4uY2FiNzhhMjlhMDA1MjVkNGUwM2E3MTk4YTYxMDljNjNlYTIyZTM4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJNYWlu
RnJhbWUuaCIKICNpbmNsdWRlICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJN
b2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCkBAIC01NCw3ICs1NSwxMSBAQAogI2lu
Y2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxwcm9maWxlci9Q
cm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5j
bHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFs
UHJvbWlzZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlv
bi5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0
UG9zaXRpb24uaD4KIApAQCAtODYsNiArOTEsNyBAQCBTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRD
b250cm9sbGVyKEZyYW1lJiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX3Nv
dXJjZVVSTCgwKQogICAgICwgbV9wYXVzZWQoZmFsc2UpCisgICAgLCBtX21vZHVsZUxvYWRlckFs
cmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKICAgICAsIG1fd2luZG93U2NyaXB0TlBPYmplY3QoMCkKICNlbmRpZgpAQCAtMTc1LDExICsx
ODEsMTM0IEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlCiAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6
OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJldHVyblZhbHVlKTsKIH0KIAotRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNl
Q29kZSYgc291cmNlQ29kZSkgCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9s
bGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogewogICAg
IHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRocmVhZE5vcm1hbFdvcmxk
KCkpOwogfQogCitKU0Z1bmN0aW9uKiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVNb2R1bGVMb2Fk
ZXJBc3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0aW9uKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFw
aCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVs
bCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2lu
ZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8TW9kdWxlR3JhcGg+IHdlYWtQdHIo
bW9kdWxlR3JhcGgud2Vha1B0cigpKTsKKyAgICBQcml2YXRlTmFtZSBtb2R1bGVMb2FkZXJBbHJl
YWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJy
b3JTeW1ib2w7CisgICAgcmV0dXJuIEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52
bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJl
cG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICBK
U1ZhbHVlIGVycm9yID0gZXhlYy0+YXJndW1lbnQoMCk7CisKKyAgICAgICAgaWYgKFJlZlB0cjxN
b2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgbW9k
dWxlR3JhcGgtPm5vdGlmeUVycm9yZWQoKTsKKworICAgICAgICAvLyBPbmNlIHJlcG9ydGVkIGVy
cm9yIGlzIG1hcmtlZCBhcyBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbC4K
KyAgICAgICAgLy8gRG9uJ3QgcmVwb3J0IGl0IGhlcmUgYWdhaW4uCisgICAgICAgIGlmIChTeW1i
b2wqIHN5bWJvbCA9IGpzRHluYW1pY0Nhc3Q8U3ltYm9sKj4oZXJyb3IpKSB7CisgICAgICAgICAg
ICBpZiAoc3ltYm9sLT5wcml2YXRlTmFtZSgpID09IG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKQorICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTogQmVjYXVzZSB3ZSBo
YXZlIG5vdCBzdXBwb3J0ZWQgdGhlICJjcm9zc29yaWdpbiIgYXR0cmlidXRlIGluIHRoZSBtb2R1
bGUgdGFnLAorICAgICAgICAvLyB3ZSBwYXNzIHRoZSBudWxscHRyIHRvIHJlcG9ydEV4Y2VwdGlv
bidzIENhY2hlZFNjcmlwdCogcGFyYW1ldGVyLiBXaGVuIHBhc3NpbmcgbnVsbHB0cgorICAgICAg
ICAvLyB0byByZXBvcnRFeGNlcHRpb24sIFdlYkNvcmUgZG9lcyBub3Qgc2hvdyB0aGUgZGV0YWls
IG9mIHRoZSBlcnJvciBpZiB0aGUgVVJMIG9mIHRoZQorICAgICAgICAvLyBzb3VyY2UgZG9lcyBu
b3QgcGFzcyB0aGUgc2FtZSBvcmlnaW4gcG9saWN5LiBTbyB0aGUgY3VycmVudCBiZWhhdmlvciBp
cyBjb25zZXJ2YXRpdmU7CisgICAgICAgIC8vIG9ubHkgdGhlIG1vZHVsZSBjb2RlIHRoYXQgVVJM
IGlzIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4gY2FuIHJlcG9ydCB0aGUgZGV0YWlscyBvZiB0aGUK
KyAgICAgICAgLy8gZXJyb3IuIE9uY2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBiZWhhdmlvciwg
d2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBlcnJvciwg
bnVsbHB0cik7CisKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKKyAgICB9KTsKK30KKworSlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdENvbnRyb2xsZXI6Omxv
YWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU3RyaW5nJiBt
b2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBs
b2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dT
aGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9i
YWxFeGVjKCk7CisKKyAgICByZXR1cm4gaW5pdE1vZHVsZUdyYXBoKG1vZHVsZUdyYXBoLCBKU01h
aW5UaHJlYWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSksIHdvcmxkKTsK
K30KKworSlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9k
dWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAg
cmV0dXJuIGxvYWRNb2R1bGVJbldvcmxkKG1vZHVsZUdyYXBoLCBtb2R1bGVOYW1lLCBtYWluVGhy
ZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRDb250cm9s
bGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7Cisg
ICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxs
KiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVs
bC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIHJldHVybiBpbml0TW9kdWxlR3JhcGgo
bW9kdWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBzb3Vy
Y2VDb2RlLmpzU291cmNlQ29kZSgpKSwgd29ybGQpOworfQorCitKU0ludGVybmFsUHJvbWlzZSog
U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgcmV0dXJuIGxvYWRNb2R1
bGVJbldvcmxkKG1vZHVsZUdyYXBoLCBzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQo
KSk7Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZh
bHVhdGVNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAg
IEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgSlNJbnRl
cm5hbFByb21pc2UqIHByb21pc2UgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFs
dWF0ZU1vZHVsZShleGVjLCBtb2R1bGVHcmFwaC5tb2R1bGVLZXkoKSk7CisKKyAgICBXZWFrUHRy
PE1vZHVsZUdyYXBoPiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtQdHIoKSk7CisgICAgSlNGdW5j
dGlvbiogZnVsZmlsbEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+
dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dlYWtQdHJdKEV4ZWNTdGF0ZSop
IHsKKyAgICAgICAgaWYgKFJlZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRy
LmdldCgpKQorICAgICAgICAgICAgbW9kdWxlR3JhcGgtPm5vdGlmeUV4ZWN1dGVkKCk7CisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAg
ICByZXR1cm4gcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxsSGFuZGxlciwgY3JlYXRlTW9kdWxl
TG9hZGVyQXN5bmNocm9ub3VzRXJyb3JSZXBvcnRGdW5jdGlvbihtb2R1bGVHcmFwaCwgd29ybGQp
KTsKK30KKworSlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFs
dWF0ZU1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgpCit7CisgICAgcmV0dXJuIGxpbmtB
bmRFdmFsdWF0ZU1vZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKK30KKworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZh
bHVhdGVNb2R1bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVS
ZWNvcmQsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2so
d29ybGQudm0oKSk7CisKKyAgICBjb25zdCBTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUgPSBtb2R1
bGVSZWNvcmQtPnNvdXJjZUNvZGUoKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0g
d2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3co
KS0+Z2xvYmFsRXhlYygpOworICAgIGNvbnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3Nv
dXJjZVVSTDsKKyAgICBtX3NvdXJjZVVSTCA9ICZzb3VyY2VVUkwuc3RyaW5nKCk7CisKKyAgICBS
ZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVT
Y3JpcHQobV9mcmFtZSwgc291cmNlVVJMLCBqc1NvdXJjZUNvZGUuZmlyc3RMaW5lKCkpOworCisg
ICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUoZXhlYyk7Cisg
ICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOworICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgZXZhbHVhdGlvbkV4Y2VwdGlvbiA9IGV4ZWMtPnZt
KCkuZXhjZXB0aW9uKCk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1
YXRlU2NyaXB0KGNvb2tpZSwgbV9mcmFtZSk7CisKKyAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlv
bikgeworICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXZhbHVhdGlvbkV4Y2VwdGlvbiwg
bnVsbHB0cik7CisgICAgICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAgICAg
IHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSgpOworICAgIH0KKworICAgIG1fc291cmNl
VVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVl
KGV4ZWMtPnZtKCksIHJldHVyblZhbHVlKTsKK30KKworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUg
U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpT
TW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQpCit7CisgICAgcmV0dXJuIGV2YWx1YXRlTW9kdWxl
KHNvdXJjZVVSTCwgbW9kdWxlUmVjb3JkLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisK
IFJlZjxET01XcmFwcGVyV29ybGQ+IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdvcmxkKCkKIHsK
ICAgICByZXR1cm4gRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoSlNET01XaW5kb3c6OmNvbW1vblZN
KCkpOwpAQCAtMjcyLDYgKzQwMSwzMCBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgcmV0dXJuIHdpbmRv
d1NoZWxsOwogfQogCitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQor
ICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3ltYm9sKj4odmFsdWUp
LT5wcml2YXRlTmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmcoKSk7CisgICAgcmV0
dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywganNDYXN0PEpTU3RyaW5nKj4odmFsdWUp
LT52YWx1ZShleGVjKSk7Cit9CisKK0pTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRDb250cm9sbGVy
Ojppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBKU0ludGVybmFsUHJv
bWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8TW9kdWxlR3Jh
cGg+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha1B0cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBmdWxm
aWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVs
bC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7Cisg
ICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQgZWxlbWVudCBhbmQgZG9jdW1lbnQgbWF5IGJl
IGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUgbW9kdWxlLgorICAgICAgICAvLyBJbiB0aGlz
IGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBtb2R1bGUgYm9keS4KKyAgICAgICAgaWYgKFJl
ZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAg
ICAgbW9kdWxlR3JhcGgtPm5vdGlmeUxvYWRlZChqc1ZhbHVlVG9Nb2R1bGVLZXkoZXhlYywgZXhl
Yy0+YXJndW1lbnQoMCkpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICB9KTsKKyAgICByZXR1cm4gcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxs
SGFuZGxlciwgY3JlYXRlTW9kdWxlTG9hZGVyQXN5bmNocm9ub3VzRXJyb3JSZXBvcnRGdW5jdGlv
bihtb2R1bGVHcmFwaCwgd29ybGQpKTsKK30KKwogVGV4dFBvc2l0aW9uIFNjcmlwdENvbnRyb2xs
ZXI6OmV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogSWYgd2Ug
YXJlIG5vdCBjdXJyZW50bHkgcGFyc2luZywgd2Ugc2hvdWxkIHVzZSBvdXIgY3VycmVudCBsb2Nh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCmlu
ZGV4IDA3YzUzYjdjOGVkZmI0ZTI4ZjVjYTEzYWEyYzRlMDU1OTRlZjUxMjIuLjQ4MzljMTFkMGRk
ZDRiMTQ4MjhkYWUzNTU2NGYxNjA5ZTg4YzQwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTQ0LDYgKzQ0LDkgQEAgY2xhc3MgU2NyaXB0
VmFsdWU7CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0OworICAg
IGNsYXNzIEpTSW50ZXJuYWxQcm9taXNlOworICAgIGNsYXNzIEpTTW9kdWxlUmVjb3JkOworCiAg
ICAgY2xhc3MgRXhlY1N0YXRlOwogCiAgICAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKQEAgLTU3LDYg
KzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MRG9j
dW1lbnQ7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2NsYXNzIE1vZHVsZUdyYXBoOwogY2xh
c3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgV2lkZ2V0
OwpAQCAtMTE1LDYgKzExOSwxNyBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAgICBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CiAg
ICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmKTsKIAorICAgIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIGxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVO
YW1lLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsb2Fk
TW9kdWxlKE1vZHVsZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKKyAgICBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYsIGNvbnN0
IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlKiBsb2FkTW9kdWxlKE1vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYpOworCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxl
SW5Xb3JsZChNb2R1bGVHcmFwaCYgLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoTW9kdWxlR3JhcGgmKTsKKworICAg
IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpTTW9kdWxlUmVjb3JkKik7
CisKICAgICBXVEY6OlRleHRQb3NpdGlvbiBldmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0Owog
CiAgICAgdm9pZCBlbmFibGVFdmFsKCk7CkBAIC0xMzUsNiArMTUwLDggQEAgY2xhc3MgU2NyaXB0
Q29udHJvbGxlciB7CiAKICAgICBjb25zdCBTdHJpbmcqIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlVVJMOyB9IC8vIDAgaWYgd2UgYXJlIG5vdCBldmFsdWF0aW5nIGFueSBzY3Jp
cHQKIAorICAgIGNvbnN0IEpTQzo6UHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFscmVhZHlSZXBv
cnRlZEVycm9yU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVw
b3J0ZWRFcnJvclN5bWJvbDsgfQorCiAgICAgdm9pZCBjbGVhcldpbmRvd1NoZWxsKERPTVdpbmRv
dyogbmV3RE9NV2luZG93LCBib29sIGdvaW5nSW50b1BhZ2VDYWNoZSk7CiAgICAgdm9pZCB1cGRh
dGVEb2N1bWVudCgpOwogCkBAIC0xNzAsNiArMTg3LDggQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxl
ciB7CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3dTaGVsbCogaW5p
dFNjcmlwdChET01XcmFwcGVyV29ybGQmKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBp
bml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiwgRE9N
V3JhcHBlcldvcmxkJik7CisgICAgSlNDOjpKU0Z1bmN0aW9uKiBjcmVhdGVNb2R1bGVMb2FkZXJB
c3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0aW9uKE1vZHVsZUdyYXBoJiwgRE9NV3JhcHBlcldv
cmxkJik7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKIApA
QCAtMTc4LDYgKzE5Nyw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIGNvbnN0IFN0
cmluZyogbV9zb3VyY2VVUkw7CiAKICAgICBib29sIG1fcGF1c2VkOworICAgIEpTQzo6UHJpdmF0
ZU5hbWUgbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKIAogICAgIC8v
IFRoZSByb290IG9iamVjdCB1c2VkIGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhlIGNvbnRl
eHQgb2YgYSBwbHVnaW4sIHN1Y2gKICAgICAvLyBhcyBOUEFQSSBwbHVnaW5zLiBUaGUgcGx1Z2lu
cyB1c2luZyB0aGVzZSBvYmplY3RzIHByZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVkIHNv
IHRoZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDIxNzkzYzIyZjA1M2ZiN2IwNjU2ODE3
Y2ZjN2RhYjMxODRhZThiZDQuLjM4NjFmZTg1M2IwZWI5MjZhZDVjNzA5YzMzOTNkOTZlNjQ1NWVi
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTAyLDYgKzEwMiw3IEBACiAjaW5jbHVk
ZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCiAjaW5jbHVk
ZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKICNpbmNs
dWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVM
aXN0LmgiCiAjaW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCIKQEAgLTQ2MSw2ICs0
NjIsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwg
dW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwogICAgICwgbV9zdGFydFRpbWUoc3RkOjpj
aHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpCiAgICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0VGhy
ZXNob2xkKGZhbHNlKQogICAgICwgbV9zY3JpcHRSdW5uZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3Jp
cHRSdW5uZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKHN0ZDo6bWFrZV91bmlxdWU8
TW9kdWxlTG9hZGVyPigqdGhpcykpCiAgICAgLCBtX3htbFZlcnNpb24oQVNDSUlMaXRlcmFsKCIx
LjAiKSkKICAgICAsIG1feG1sU3RhbmRhbG9uZShTdGFuZGFsb25lVW5zcGVjaWZpZWQpCiAgICAg
LCBtX2hhc1hNTERlY2xhcmF0aW9uKGZhbHNlKQpAQCAtNjAyLDYgKzYwNCw3IEBAIERvY3VtZW50
Ojp+RG9jdW1lbnQoKQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRVbmxlc3NTdXNwZW5kZWRG
b3JQYWdlQ2FjaGUoKTsKIAogICAgIG1fc2NyaXB0UnVubmVyID0gbnVsbHB0cjsKKyAgICBtX21v
ZHVsZUxvYWRlciA9IG51bGxwdHI7CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc0Y2VhYTk2YmM5MmY0NzgxN2NlYmI1ZjNjZjkzOTBh
MTlhNzdkNjkuLmY1N2M0MTMxZmRjZTU1Y2NjZDRlNjA4MGRiYjUxOTUzYzRiMjdjM2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xMjgsNiArMTI4LDcgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1Rh
cmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5
TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworY2xhc3MgTW9kdWxlTG9hZGVyOwogY2xh
c3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0NvbGxlY3Rp
b247CiBjbGFzcyBOb2RlRmlsdGVyOwpAQCAtOTI3LDYgKzkyOCw3IEBAIGNsYXNzIERvY3VtZW50
IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRF
eGVjdXRpb25DCiAgICAgRG9jdW1lbnQmIHRvcERvY3VtZW50KCkgY29uc3Q7CiAgICAgCiAgICAg
U2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5nZXQo
KTsgfQorICAgIE1vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gbV9tb2R1bGVM
b2FkZXIuZ2V0KCk7IH0KIAogICAgIEhUTUxTY3JpcHRFbGVtZW50KiBjdXJyZW50U2NyaXB0KCkg
Y29uc3QgeyByZXR1cm4gIW1fY3VycmVudFNjcmlwdFN0YWNrLmlzRW1wdHkoKSA/IG1fY3VycmVu
dFNjcmlwdFN0YWNrLmxhc3QoKS5nZXQoKSA6IDA7IH0KICAgICB2b2lkIHB1c2hDdXJyZW50U2Ny
aXB0KFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+KTsKQEAgLTE1MTAsNiArMTUxMiw3IEBA
IGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUs
IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgYm9vbCBtX292ZXJNaW5pbXVtTGF5b3V0VGhy
ZXNob2xkOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0
UnVubmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVy
OwogCiAgICAgVmVjdG9yPFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4+IG1fY3VycmVudFNjcmlw
dFN0YWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZh
ZjZjNTk0Zjc3MzY4NzI4ZDc1NTNiMTBkOWE4ZTYyZmQ5ZmZiMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVGZXRjaGVyLmNwcApAQCAtMCwwICsxLDEyOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVy
LmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hl
ZFNjcmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5LCBjb25zdCBV
UkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwg
RG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1f
bW9kdWxlS2V5KG1vZHVsZUtleSkKKyAgICAsIG1fc291cmNlVVJMKHNvdXJjZVVSTCkKKyAgICAs
IG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0KQorICAgICwg
bV9kZWZlcnJlZChnbG9iYWxPYmplY3QtPnZtKCksIGRlZmVycmVkKQoreworfQorCitSZWY8TW9k
dWxlRmV0Y2hlcj4gTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5LCBjb25zdCBVUkwmIHNv
dXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1l
bnQmIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vZHVsZUZldGNoZXIo
Z2xvYmFsT2JqZWN0LCBtb2R1bGVLZXksIHNvdXJjZVVSTCwgZGVmZXJyZWQsIGRvY3VtZW50KSk7
Cit9CisKK2Jvb2wgTW9kdWxlRmV0Y2hlcjo6cnVuKCkKK3sKKyAgICBSZXNvdXJjZUxvYWRlck9w
dGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3Vy
Y2VPcHRpb25zKCk7CisgICAgb3B0aW9ucy5zZXRDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0
aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOworCisg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fc291cmNl
VVJMKSwgb3B0aW9ucyk7CisKKyAgICAvLyBGSVhNRTogU2hvdWxkIGhhbmRsZSAiY3Jvc3Nvcmln
aW4iIG9wdGlvbnMuCisgICAgLy8gT25jZSB0aGUgc3BlYyBkZXNjcmliZXMgdGhlIGRldGFpbHMs
IHdlIHdpbGwgZm9sbG93IGl0LgorICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKEF0b21pY1N0cmlu
ZyhtX3NvdXJjZVVSTC5zdHJpbmcoKSkpOworCisgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2RvY3Vt
ZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKKyAgICBp
ZiAoIW1fY2FjaGVkU2NyaXB0KSB7CisgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3Vt
ZW50LmZyYW1lKCkpIHsKKyAgICAgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sobV9nbG9i
YWxPYmplY3QtPnZtKCkpOworICAgICAgICAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBtX2ds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVqZWN0
KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgKihmcmFtZS0+c2NyaXB0KCku
bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKS51aWQoKSkpKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gTm90ZTogSWYgdGhl
IGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMgaW1tZWlkYXRlbHkgY2FsbHMgbm90aWZ5
RmluaXNoZWQuCisgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwordm9pZCBNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2UpCit7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3Vy
Y2UgPT0gbV9jYWNoZWRTY3JpcHQpOworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAg
IHJldHVybjsKKworICAgIEFTU0VSVChtX2NhY2hlZFNjcmlwdCk7CisgICAgbV9jYWNoZWRTY3Jp
cHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKworI2lmIEVOQUJMRShOT1NOSUZGKQorICAgIGlmICht
X2NhY2hlZFNjcmlwdCAmJiAhbV9jYWNoZWRTY3JpcHQtPm1pbWVUeXBlQWxsb3dlZEJ5Tm9zbmlm
ZigpKSB7CisgICAgICAgIG1fZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2Ny
aXB0IGZyb20gJyIgKyBtX2NhY2hlZFNjcmlwdC0+dXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXpl
ZFRvTGVuZ3RoKCkgKyAiJyBiZWNhdXNlIGl0cyBNSU1FIHR5cGUgKCciICsgbV9jYWNoZWRTY3Jp
cHQtPm1pbWVUeXBlKCkgKyAiJykgaXMgbm90IGV4ZWN1dGFibGUsIGFuZCBzdHJpY3QgTUlNRSB0
eXBlIGNoZWNraW5nIGlzIGVuYWJsZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5k
aWYKKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpIHsKKyAgICAg
ICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9iamVjdC0+dm0oKSk7CisgICAgICAg
IEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAg
ICAgICAgaWYgKG1fY2FjaGVkU2NyaXB0LT5lcnJvck9jY3VycmVkKCkpIHsKKyAgICAgICAgICAg
IC8vIFRoZSBtb2R1bGUgbG9hZGVyIHBpcGVsaW5lIGlzIGNvbnN0cnVjdGVkIGFzIGEgY2hhaW4g
b2YgcHJvbWlzZXMuCisgICAgICAgICAgICAvLyBSZWplY3RpbmcgYSBwcm9taXNlIGlmIHNvbWUg
ZXJyb3Igb2NjdXJzIGlzIGltcG9ydGFudCBiZWNhdXNlIHRoZSBleGVjdXRpb24gZmxvdyBvZgor
ICAgICAgICAgICAgLy8gdGhlIHByb21pc2UgY2hhaW4gaXMgZHJpdmVuIGJ5ICJyZWplY3RlZCIg
b3IgImZ1bGZpbGxlZCIgZXZlbnRzLgorICAgICAgICAgICAgLy8gSWYgdGhlIHByb21pc2UgaXMg
bm90IHJlamVjdGVkIHdoaWxlIGVycm9yIG9jY3VycywgcmVqZWN0IGhhbmRsZXIgd29uJ3QgYmUg
ZXhlY3V0ZWQKKyAgICAgICAgICAgIC8vIGFuZCBhbGwgdGhlIHN1YnNlcXVlbnQgcHJvbWlzZSBj
aGFpbiB3YWl0IHRoZSByZXN1bHQgZm9yZXZlci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAg
ICAvLyBBcyBhIHJlc3VsdCwgZXZlbiBpZiB0aGUgZXJyb3IgaXMgYWxyZWFkeSByZXBvcnRlZCB0
byB0aGUgaW5zcGVjdG9yIGVsc2V3aGVyZSwKKyAgICAgICAgICAgIC8vIGl0IHNob3VsZCBiZSBw
cm9wYWdhdGVkIGluIHRoZSBwaXBlbGluZS4gRm9yIGV4YW1wbGUsIHRoZSBlcnJvciBvZiBsb2Fk
aW5nCisgICAgICAgICAgICAvLyBDYWNoZWRSZXNvdXJjZSBpcyByZXBvcnRlZCBieSB0aGUgbG9h
ZGVyLiBCdXQgd2UgbmVlZCB0byByZWplY3QgdGhlIHByb21pc2UgYnkgc29tZQorICAgICAgICAg
ICAgLy8gZXJyb3IuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTm90IHRvIHJlcG9y
dCB0aGUgZXJyb3IgdHdpY2UsIHdoZW4gd2UgcHJvcGFnYXRlIHRoZSBlcnJvciB0aGF0IGlzIGFs
cmVhZHkgcmVwb3J0ZWQKKyAgICAgICAgICAgIC8vIHRvIHRoZSBpbnNwZWN0b3IsIHdlIHRocm93
IG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sIHN5bWJvbCBpbnN0ZWFkLgor
ICAgICAgICAgICAgLy8gQnkgY29tcGFyaW5nIHRoZSB0aHJvd24gZXJyb3Igd2l0aCB0aGlzIHN5
bWJvbCwgd2UgY2FuIGRpc3Rpbmd1aXNoIGVycm9ycyByYWlzZWQKKyAgICAgICAgICAgIC8vIHdo
ZW4gbGlua2luZyBvciBleGVjdXRpbmcgYSBtb2R1bGUgZ3JhcGggZnJvbSBlcnJvcnMgcmVwb3J0
ZWQgYWxyZWFkeS4KKyAgICAgICAgICAgIC8vIEluIHRoZSByZWplY3QgaGFuZGxlciBvZiB0aGUg
cHJvbWlzZSwgd2Ugb25seSByZXBvcnQgYSBlcnJvciB0aGF0IGlzIG5vdCB0aGlzIHN5bWJvbC4K
KyAgICAgICAgICAgIG1fZGVmZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OlN5bWJvbDo6Y3JlYXRl
KGV4ZWMtPnZtKCksICooZnJhbWUtPnNjcmlwdCgpLm1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKCkudWlkKCkpKSk7CisgICAgICAgIH0gZWxzZSBpZiAoIW1fY2FjaGVkU2Ny
aXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJj
ZUNvZGUobV9jYWNoZWRTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVz
b2x2ZShleGVjLCBKU0M6OmpzU3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkpKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBtX2NhY2hlZFNjcmlwdCA9IG51bGxwdHI7CisKKyAgICBtX2Rv
Y3VtZW50Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAvLyBBZnRl
ciBNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUgZGVzdHJv
eWVkLgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hl
ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZldGNoZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTU3
MjExYWMwYzAxMmVlNGUxMGYyMWQ3OGRjZTUyYjUxNGFiOGRlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZldGNoZXIuaApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBNb2R1bGVGZXRjaGVyX2gKKyNkZWZpbmUgTW9kdWxlRmV0Y2hlcl9o
CisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJ
bmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+
CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIERvY3VtZW50
OworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CisKK2NsYXNzIE1vZHVsZUZldGNoZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxNb2R1bGVGZXRjaGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVu
dCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxlRmV0Y2hlcik7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TW9kdWxlRmV0Y2hlcj4gY3Jl
YXRlKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBtb2R1bGVLZXks
IGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqLCBE
b2N1bWVudCYpOworCisgICAgYm9vbCBydW4oKTsKKworICAgIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgbW9kdWxlS2V5KCkgeyByZXR1cm4gbV9tb2R1bGVLZXk7IH0KKyAgICBDYWNoZWRTY3JpcHQq
IGNhY2hlZFNjcmlwdCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9CisKK3ByaXZh
dGU6CisgICAgTW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgbW9kdWxlS2V5LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFs
UHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQmKTsKKworICAgIC8vIEZvciBDYWNoZWRSZXNvdXJj
ZUNsaWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
KSBvdmVycmlkZTsKKworICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIEpTQzo6SWRlbnRp
ZmllciBtX21vZHVsZUtleTsKKyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJvbmc8
SlNET01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpTQzo6
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b2R1bGVHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI1Njk4NzlmNjIwMGRiM2FhNmQzZTgwNzU2MGE1
YzRlNWM2YWEwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVH
cmFwaC5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorCisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxk
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRT
b3VyY2VDb2RlLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKEVsZW1lbnQm
IGVsZW1lbnQpCisgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fd2Vha1B0ckZhY3Rv
cnkodGhpcykKK3sKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgbW9kdWxlS2V5KQoreworICAgIG1fbW9kdWxlS2V5ID0gbW9kdWxlS2V5
OworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLm1vZHVsZUxvYWRlcigpLT5ub3RpZnlNb2R1bGVH
cmFwaFJlYWR5KHRoaXMpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpub3RpZnlFcnJvcmVkKCkK
K3sKKyAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaEVy
cm9yRXZlbnQoKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXhlY3V0ZWQoKQorewor
ICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1fZWxlbWVudCktPmRpc3BhdGNoTG9hZEV2
ZW50KCk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6OmV2YWx1YXRlKCkKK3sKKyAgICBpZiAoRnJh
bWUqIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUt
PnNjcmlwdCgpLmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSgqdGhpcyk7Cit9CisKK1JlZjxNb2R1bGVH
cmFwaD4gTW9kdWxlR3JhcGg6OmNyZWF0ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHJpbmcm
IG1vZHVsZU5hbWUpCit7CisgICAgQVNTRVJUKGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsK
KyAgICBSZWY8TW9kdWxlR3JhcGg+IG1vZHVsZUdyYXBoID0gYWRvcHRSZWYoKm5ldyBNb2R1bGVH
cmFwaChlbGVtZW50KSk7CisgICAgZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgp
LmxvYWRNb2R1bGUobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUpOworICAgIHJldHVybiBtb2R1bGVH
cmFwaDsKK30KKworUmVmPE1vZHVsZUdyYXBoPiBNb2R1bGVHcmFwaDo6Y3JlYXRlKEVsZW1lbnQm
IGVsZW1lbnQsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgQVNT
RVJUKGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBSZWY8TW9kdWxlR3JhcGg+IG1v
ZHVsZUdyYXBoID0gYWRvcHRSZWYoKm5ldyBNb2R1bGVHcmFwaChlbGVtZW50KSk7CisgICAgZWxl
bWVudC5kb2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgpLmxvYWRNb2R1bGUobW9kdWxlR3JhcGgs
IHNvdXJjZUNvZGUpOworICAgIHJldHVybiBtb2R1bGVHcmFwaDsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TW9kdWxlR3JhcGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjQ2N2EwNmUyNzc0ZTZmNmZhZWI4MmM3MzM3Njc2
ZDk2MmQ2YzliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdy
YXBoLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9kdWxlR3JhcGhf
aAorI2RlZmluZSBNb2R1bGVHcmFwaF9oCisKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgiCisj
aW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgRWxlbWVudDsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CisKK2NsYXNzIE1v
ZHVsZUdyYXBoIDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlR3JhcGg+IHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShNb2R1bGVHcmFwaCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8TW9kdWxlR3JhcGg+IGNyZWF0ZShFbGVtZW50JiwgY29uc3Qg
U3RyaW5nJiBtb2R1bGVOYW1lKTsKKyAgICBzdGF0aWMgUmVmPE1vZHVsZUdyYXBoPiBjcmVhdGUo
RWxlbWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAgIEVsZW1lbnQmIGVsZW1l
bnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KKyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG1v
ZHVsZUtleSgpIHsgcmV0dXJuIG1fbW9kdWxlS2V5OyB9CisKKyAgICB2b2lkIGV2YWx1YXRlKCk7
CisKKyAgICBXZWFrUHRyPE1vZHVsZUdyYXBoPiB3ZWFrUHRyKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICB9CisKKyAgICB2b2lk
IG5vdGlmeUxvYWRlZChjb25zdCBKU0M6OklkZW50aWZpZXImKTsKKyAgICB2b2lkIG5vdGlmeUVy
cm9yZWQoKTsKKyAgICB2b2lkIG5vdGlmeUV4ZWN1dGVkKCk7CisKK3ByaXZhdGU6CisgICAgZXhw
bGljaXQgTW9kdWxlR3JhcGgoRWxlbWVudCYpOworCisgICAgRWxlbWVudCYgbV9lbGVtZW50Owor
ICAgIEpTQzo6SWRlbnRpZmllciBtX21vZHVsZUtleTsKKyAgICBXZWFrUHRyRmFjdG9yeTxNb2R1
bGVHcmFwaD4gbV93ZWFrUHRyRmFjdG9yeTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIE1vZHVsZUxvYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVMb2FkZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA3OWYzZTE0NmZmYmUzOGZkNjZiNjMwNWE4Y2I1Mzk1MGVmYmNiZjgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlTG9hZGVyLmNwcApAQCAt
MCwwICsxLDE1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNb2R1bGVMb2FkZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCisjaW5jbHVkZSAiTWljcm9UYXNrLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKyNp
bmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0VmFs
dWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0NvbXBsZXRpb24uaD4KKyNpbmNsdWRlIDxydW50aW1l
L0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU1N0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK01vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCkK
KyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX3RpbWVyKCp0aGlzLCAmTW9kdWxl
TG9hZGVyOjp0aW1lckZpcmVkKQoreworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1
bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWVWYWx1ZSwgSlNDOjpKU1Zh
bHVlIHJlZmVycmVyVmFsdWUpCit7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
KiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMs
IGdsb2JhbE9iamVjdCk7CisgICAgaWYgKG1vZHVsZU5hbWVWYWx1ZS5pc1N5bWJvbCgpKQorICAg
ICAgICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgbW9kdWxlTmFtZVZhbHVlKTsKKwor
ICAgIC8vIEZJWE1FOiBXZSBub3cgYXNzdW1lIHRoYXQgbW9kdWxlIG5hbWUgaXMgZWl0aGVyIHN5
bWJvbCBvciBzdHJpbmcuCisgICAgLy8gV2hlbiBleHBvc2luZyB0aGUgcmVmbGVjdGlvbiB0byB0
aGUgbW9kdWxlIGxvYWRlciBhbmQgbW9kdWxlcywgd2UgbmVlZCB0byByZWNhc3QgdGhpcyBwYXJ0
LgorICAgIEFTU0VSVChtb2R1bGVOYW1lVmFsdWUuaXNTdHJpbmcoKSk7CisgICAgU3RyaW5nIG1v
ZHVsZU5hbWUgPSBKU0M6OmpzQ2FzdDxKU0M6OkpTU3RyaW5nKj4obW9kdWxlTmFtZVZhbHVlKS0+
dmFsdWUoZXhlYyk7CisKKyAgICAvLyBOb3csIHdlIGNvbnNpZGVyIHRoZSBnaXZlbiBtb2R1bGVO
YW1lIGFzIHRoZSBzYW1lIHRvIHRoZSBzcmM9Ii4uLiIgaW4gdGhlIHNjcmlwdCB0YWcuCisgICAg
Ly8gV2UgdXNlIHRoZSBjb21wbGV0ZWQgVVJMIGFzIHRoZSBtb2R1bGUga2V5LgorICAgIC8vCisg
ICAgLy8gRklYTUU6IFdlIG5lZWQgc2l0ZSBwYWNrYWdpbmcgc3lzdGVtLiBCdXQgaXQncyBub3Qg
ZGVmaW5lZCBpbiB0aGUgc3BlYyB5ZXQuCisgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlv
L2xvYWRlci8jYnJvd3Nlci1sb2FkZXItcHJvdG90eXBlLSU0MCU0MHJlc29sdmUKKyAgICBVUkwg
Y29tcGxldGVkVVJMOworCisgICAgLy8gRklYTUU6IENoZWNrIG1fZG9jdW1lbnQgbGlmZXRpbWUu
CisgICAgaWYgKHJlZmVycmVyVmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgY29tcGxldGVkVVJM
ID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVOYW1lKTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgaWYgKHJlZmVycmVyVmFsdWUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgICAgIGNvbXBsZXRl
ZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwobW9kdWxlTmFtZSk7CisgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgQVNTRVJUKHJlZmVycmVyVmFsdWUuaXNTdHJpbmcoKSk7CisgICAgICAg
ICAgICBTdHJpbmcgcmVmZXJyZXIgPSBKU0M6OmpzQ2FzdDxKU0M6OkpTU3RyaW5nKj4ocmVmZXJy
ZXJWYWx1ZSktPnZhbHVlKGV4ZWMpOworICAgICAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1
bWVudC5jb21wbGV0ZVVSTChtb2R1bGVOYW1lLCBVUkwoUGFyc2VkVVJMU3RyaW5nLCByZWZlcnJl
cikpOworICAgICAgICB9CisgICAgfQorICAgIGlmICghY29tcGxldGVkVVJMLmlzVmFsaWQoKSkK
KyAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywgY3JlYXRlRE9NRXhjZXB0aW9u
KGV4ZWMsIFNZTlRBWF9FUlIpKTsKKworICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVj
LCBqc1N0cmluZyhleGVjLCBjb21wbGV0ZWRVUkwuc3RyaW5nKCkpKTsKK30KKworSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogTW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5
VmFsdWUpCit7CisgICAgLy8gRklYTUU6IFdoZW4gaW1wbGVtZW50aW5nIHJlZmxlY3RpdmUgbW9k
dWxlIGxvYWRlciBhbmQgbW9kdWxlcywgd2Ugc2hvdWxkIHJlY2FzdCB0aGlzIGltcGxlbWVudGF0
aW9uLgorICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwor
CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSwgIlN5
bWJvbGljIG1vZHVsZSBrZXkgc2hvdWxkIGJlIGFscmVhZHkgZnVsZmlsbGVkIHdpdGggdGhlIGlu
bGluZWQgcmVzb3VyY2UuIik7CisgICAgQVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkp
OworCisgICAgSlNDOjpJZGVudGlmaWVyIG1vZHVsZUtleSA9IEpTQzo6SWRlbnRpZmllcjo6ZnJv
bVN0cmluZyhleGVjLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKGV4ZWMpKTsKKwor
ICAgIFVSTCBjb21wbGV0ZWRVUkwoUGFyc2VkVVJMU3RyaW5nLCBtb2R1bGVLZXkuaW1wbCgpKTsK
KyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGNvbXBsZXRlZFVSTC5pc1ZhbGlkKCksICJUaGUgcmVz
b2x2ZSBob29rIHNob3VsZCBwcm9kdWNlIHRoZSB2YWxpZCBVUkwgYXMgYSBzdHJpbmcuIik7CisK
KyAgICBSZWY8TW9kdWxlRmV0Y2hlcj4gZmV0Y2hlciA9IE1vZHVsZUZldGNoZXI6OmNyZWF0ZShK
U0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCksIG1vZHVsZUtleSwg
Y29tcGxldGVkVVJMLCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7CisgICAgbV9mZXRjaGluZ1NldC5h
ZGQoJmZldGNoZXIuZ2V0KCkpOworICAgIGZldGNoZXItPnJ1bigpOworCisgICAgcmV0dXJuIGRl
ZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1Zh
bHVlIG1vZHVsZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUpCit7Cisg
ICAgLy8gRklYTUU6IEN1cnJlbnRseSwgd2Ugb25seSBzdXBwb3J0IEpTTW9kdWxlUmVjb3JkLgor
ICAgIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IEpTQzo6anNEeW5hbWljQ2Fz
dDxKU0M6OkpTTW9kdWxlUmVjb3JkKj4obW9kdWxlUmVjb3JkVmFsdWUpOworICAgIGlmICghbW9k
dWxlUmVjb3JkKQorICAgICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworCisgICAgVVJM
IHNvdXJjZVVSTDsKKyAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAg
c291cmNlVVJMID0gbV9kb2N1bWVudC51cmwoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJU
KG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOworICAgICAgICBzb3VyY2VVUkwgPSBVUkwoUGFy
c2VkVVJMU3RyaW5nLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKGV4ZWMpKTsKKyAg
ICB9CisKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKQorICAgICAg
ICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgbW9kdWxl
UmVjb3JkKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworfQorCit2b2lkIE1vZHVs
ZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoTW9kdWxlRmV0Y2hlciogZmV0Y2hlcikKK3sKKyAgICBt
X2ZldGNoaW5nU2V0LnJlbW92ZShmZXRjaGVyKTsKK30KKwordm9pZCBNb2R1bGVMb2FkZXI6Om5v
dGlmeU1vZHVsZUdyYXBoUmVhZHkoTW9kdWxlR3JhcGgqIG1vZHVsZUdyYXBoKQoreworICAgIG1f
bW9kdWxlR3JhcGhzVG9FeGVjdXRlLmFwcGVuZChQZW5kaW5nTW9kdWxlR3JhcGggeyAmbW9kdWxl
R3JhcGgtPmVsZW1lbnQoKSwgbW9kdWxlR3JhcGggfSk7CisgICAgbV90aW1lci5zdGFydE9uZVNo
b3QoMCk7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjp0aW1lckZpcmVkKCkKK3sKKyAgICBSZWY8
RG9jdW1lbnQ+IHByb3RlY3QobV9kb2N1bWVudCk7CisgICAgVmVjdG9yPFBlbmRpbmdNb2R1bGVH
cmFwaD4gbW9kdWxlR3JhcGhzOworICAgIG1vZHVsZUdyYXBocy5zd2FwKG1fbW9kdWxlR3JhcGhz
VG9FeGVjdXRlKTsKKworICAgIGZvciAoUGVuZGluZ01vZHVsZUdyYXBoJiBwZW5kaW5nTW9kdWxl
R3JhcGggOiBtb2R1bGVHcmFwaHMpIHsKKyAgICAgICAgcGVuZGluZ01vZHVsZUdyYXBoLm1vZHVs
ZUdyYXBoLT5ldmFsdWF0ZSgpOworICAgICAgICBNaWNyb1Rhc2tRdWV1ZTo6c2luZ2xldG9uKCku
cnVuTWljcm9UYXNrcygpOworICAgICAgICBwZW5kaW5nTW9kdWxlR3JhcGguY2xlYXIoKTsKKyAg
ICB9Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MThkZWE5
MjRkNTA5ZjliNWNiZDg4NWM0NTljOWY1ZDBkNThjN2VlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL01vZHVsZUxvYWRlci5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIE1vZHVsZUxvYWRlcl9oCisjZGVmaW5lIE1vZHVsZUxvYWRlcl9oCisKKyNp
bmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUg
Ik1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pT
SW50ZXJuYWxQcm9taXNlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIE1vZHVsZUxvYWRlciB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxlTG9hZGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTW9kdWxlTG9hZGVyKERvY3VtZW50Jik7CisKKyAg
ICBEb2N1bWVudCYgZG9jdW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQ7
CisgICAgfQorCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcmVzb2x2ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlND
OjpKU1ZhbHVlIHJlZmVycmVyKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBmZXRjaChK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgbW9kdWxl
S2V5KTsKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZVJlY29yZCk7CisKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKE1vZHVsZUZldGNoZXIqKTsKKyAg
ICB2b2lkIG5vdGlmeU1vZHVsZUdyYXBoUmVhZHkoTW9kdWxlR3JhcGgqKTsKKworICAgIHZvaWQg
dGltZXJGaXJlZCgpOworCisgICAgc3RydWN0IFBlbmRpbmdNb2R1bGVHcmFwaCB7CisgICAgICAg
IFJlZlB0cjxFbGVtZW50PiBlbGVtZW50OworICAgICAgICBSZWZQdHI8TW9kdWxlR3JhcGg+IG1v
ZHVsZUdyYXBoOworCisgICAgICAgIHZvaWQgY2xlYXIoKQorICAgICAgICB7CisgICAgICAgICAg
ICBlbGVtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgICAgIG1vZHVsZUdyYXBoID0gbnVsbHB0cjsK
KyAgICAgICAgfQorICAgIH07CisKK3ByaXZhdGU6CisgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7
CisgICAgSGFzaFNldDxSZWZQdHI8TW9kdWxlRmV0Y2hlcj4+IG1fZmV0Y2hpbmdTZXQ7CisgICAg
VmVjdG9yPFBlbmRpbmdNb2R1bGVHcmFwaD4gbV9tb2R1bGVHcmFwaHNUb0V4ZWN1dGU7CisgICAg
VGltZXIgbV90aW1lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IE1vZHVsZUxvYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNjZi
YmVjZTFkMzVlMWE0NzYzYmY5ZWJlYmYwZjBjMTJjZGJlZjFkNy4uYjM4NWViZTZjNjc4MGJmYTM3
MmM4ZDc1NTUyZDI5NGNmODM1YjY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNs
dWRlICJJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIgogI2luY2x1ZGUg
Ik1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1l
bnQuaCIKQEAgLTE2MSw2ICsxNjIsMTAgQEAgYm9vbCBTY3JpcHRFbGVtZW50Ojppc1NjcmlwdFR5
cGVTdXBwb3J0ZWQoTGVnYWN5VHlwZVN1cHBvcnQgc3VwcG9ydExlZ2FjeVR5cGVzKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1
cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh0eXBlLnN0cmlwV2hpdGVTcGFjZSgpLmxvd2VyKCkp
IHx8IChzdXBwb3J0TGVnYWN5VHlwZXMgPT0gQWxsb3dMZWdhY3lUeXBlSW5UeXBlQXR0cmlidXRl
ICYmIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1YWdlKHR5cGUpKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CisvLyAjaWYgRU5BQkxFKEVTNl9NT0RVTEVTKQorICAgIGVsc2UgaWYgKHR5
cGUgPT0gIm1vZHVsZSIpCisgICAgICAgIHJldHVybiB0cnVlOworLy8gI2VuZGlmCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCkBAIC0yMTcsNiArMjIyLDkgQEAgYm9vbCBTY3JpcHRFbGVtZW50Ojpw
cmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVn
YWMKICAgICBlbHNlCiAgICAgICAgIG1fY2hhcmFjdGVyRW5jb2RpbmcgPSBkb2N1bWVudC5jaGFy
c2V0KCk7CiAKKyAgICBpZiAoaXNNb2R1bGVUeXBlKCkpCisgICAgICAgIHJldHVybiBsb2FkTW9k
dWxlKHNjcmlwdFN0YXJ0UG9zaXRpb24pOworCiAgICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgp
KQogICAgICAgICBpZiAoIXJlcXVlc3RTY3JpcHQoc291cmNlQXR0cmlidXRlVmFsdWUoKSkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMTcsNiArMzI1LDcgQEAgdm9pZCBTY3JpcHRF
bGVtZW50OjpzdG9wTG9hZFJlcXVlc3QoKQogICAgICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPnJl
bW92ZUNsaWVudCh0aGlzKTsKICAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSAwOwogICAgIH0KKyAg
ICAvLyBGSVhNRTogVGhlIG1vZHVsZSBsb2FkZXIgc2hvdWxkIGhhdmUgdGhlIG1lY2hhbmlzbSB0
byBzdG9wIGxvYWRpbmcuCiB9CiAKIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRT
Y3JpcHQqIGNhY2hlZFNjcmlwdCkKQEAgLTMzMiw2ICszNDEsNTIgQEAgdm9pZCBTY3JpcHRFbGVt
ZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogICAgIGNhY2hlZFNjcmlw
dC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogfQogCitib29sIFNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1
bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQoreworICAgIC8vIFRo
ZSBicm93c2VyIG1vZHVsZSBsb2FkZXIgbG9hZHMgdGhlIG1vZHVsZSBzb3VyY2VzLgorICAgIC8v
IFNpbmNlIHRoZSBtb2R1bGUgaW52b2x2ZXMgbG9hZGluZyBvZiB0aGUgZGVwZW5kZW50IG1vZHVs
ZXMgYW5kIHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBkb2VzIG5vdCBoYXZlIGNvcnJlc3BvbmRpbmcg
c2NyaXB0IGVsZW1lbnRzLAorICAgIC8vIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGxvYWRpbmcgbW9k
dWxlcyBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUgc2NyaXB0IGVsZW1lbnQuCisgICAgaWYgKGhhc1Nv
dXJjZUF0dHJpYnV0ZSgpKSB7CisgICAgICAgIFN0cmluZyBzb3VyY2VVcmwgPSBzb3VyY2VBdHRy
aWJ1dGVWYWx1ZSgpOworICAgICAgICBSZWY8RG9jdW1lbnQ+IG9yaWdpbmFsRG9jdW1lbnQobV9l
bGVtZW50LmRvY3VtZW50KCkpOworICAgICAgICBpZiAoIW1fZWxlbWVudC5kaXNwYXRjaEJlZm9y
ZUxvYWRFdmVudChzb3VyY2VVcmwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIC8vIFNjcmlwdCBlbGVtZW50IG1heSBiZSBkZXRhY2hlZCBhbmQgYXR0YWNoZWQgdG8gYSBk
aWZmZXJlbnQgZG9jdW1lbnQgd2hpbGUgZXhlY3V0aW5nIHRoZSBldmVudCBsaXN0ZW5lci4KKyAg
ICAgICAgaWYgKCFtX2VsZW1lbnQuaW5Eb2N1bWVudCgpIHx8ICZtX2VsZW1lbnQuZG9jdW1lbnQo
KSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgIGlmIChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJs
KS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gRklYTUU6IFNob3Vs
ZCBzdXBwb3J0IGNyb3NzLW9yaWdpbiBtb2RlIGluIHRoZSBtb2R1bGUgdGFnLgorICAgICAgICAv
LyBIb3dldmVyIHdlIGRvbid0IGhhdmUgdGhlIHBvbGljeSB0byBhcHBseSB0aGlzIG1vZGUgdG8g
dGhlIHJlc291cmNlcyBvZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCisgICAgICAgIC8vIFByb3Zp
ZGVkIG11bHRpcGxlIG1vZHVsZSB0YWdzLAorICAgICAgICAvLworICAgICAgICAvLyAgIEE6IDxz
Y3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9z
Y3JpcHQ+CisgICAgICAgIC8vICAgQjogPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi4uIj48
L3NjcmlwdD4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gJ0EnIGhhcyB0aGUgImNyb3Nzb3JpZ2lu
IiBhdHRyaWJ1dGUuIEJ1dCAnQicgZG9lcyBub3QgaGF2ZSBpdC4KKyAgICAgICAgLy8gSG93ZXZl
ciwgRVM2IG1vZHVsZXMgYWxsb3cgJ0EnIGFuZCAnQicgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUg
YW5kIGl0IHdpbGwgYmUgY2FjaGVkIGluIHRoZQorICAgICAgICAvLyBtb2R1bGUgbG9hZGVyLiBJ
biB0aGF0IGNhc2UsIGl0IGlzIGNvbnRyb3ZlcnNpYWwgdGhhdCB3aGljaCAiY3Jvc3NvcmlnaW4i
IGF0dHJpYnV0ZSB3aWxsIGJlCisgICAgICAgIC8vIGFwcGxpZWQgdG8gdGhlIG1vZHVsZSBsb2Fk
ZWQgYnkgdGhlIGJvdGguIE9uY2UgdGhlIHNwZWMgb2YgdGhlIG1vZHVsZSBsb2FkZXIgaXMgZml4
ZWQsIHdlCisgICAgICAgIC8vIHNob3VsZCBmb2xsb3cgaXQuCisKKyAgICAgICAgbV9tb2R1bGVH
cmFwaCA9IE1vZHVsZUdyYXBoOjpjcmVhdGUobV9lbGVtZW50LCBzb3VyY2VBdHRyaWJ1dGVWYWx1
ZSgpKTsKKyAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgaWYgKCFtX2VsZW1lbnQuZG9jdW1lbnQoKS5jb250ZW50U2Vj
dXJpdHlQb2xpY3koKS0+YWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJs
KCksIG1fc3RhcnRMaW5lTnVtYmVyLCBtX2VsZW1lbnQuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUo
KSkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIC8vIFJlc2V0IGxpbmUgbnVtYmVyaW5nIGZv
ciBuZXN0ZWQgd3JpdGVzLgorICAgIFRleHRQb3NpdGlvbiBwb3NpdGlvbiA9IG1fZWxlbWVudC5k
b2N1bWVudCgpLmlzSW5Eb2N1bWVudFdyaXRlKCkgPyBUZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0
YXJ0UG9zaXRpb247CisgICAgbV9tb2R1bGVHcmFwaCA9IE1vZHVsZUdyYXBoOjpjcmVhdGUobV9l
bGVtZW50LCBTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgbV9lbGVtZW50LmRvY3Vt
ZW50KCkudXJsKCksIHBvc2l0aW9uKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgU2Ny
aXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewog
ICAgIEFTU0VSVCghbV93aWxsQmVQYXJzZXJFeGVjdXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuaAppbmRleCBiN2U3M2QwZGVlODNkMzI0ZTg3MmY3YmM0YzFiOTMzZGM5NmMxMTJhLi43
NGIzNDIwMzA5MDcyYzkwZDg3NTY1ZmYyOTJhZGIwODBhOGE5MDcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIEVsZW1lbnQ7Citj
bGFzcyBNb2R1bGVHcmFwaDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBTY3JpcHRTb3Vy
Y2VDb2RlOwogCkBAIC04Miw2ICs4Myw4IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRl
IENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIHJlcXVlc3RTY3JpcHQoY29uc3QgU3Ry
aW5nJiBzb3VyY2VVcmwpOwogICAgIHZvaWQgc3RvcExvYWRSZXF1ZXN0KCk7CiAKKyAgICBib29s
IGxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKwog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCBTdHJpbmcgc291cmNlQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7
CkBAIC05Myw2ICs5Niw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJl
c291cmNlQ2xpZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBjb25zdCA9IDA7CiAKICAgICBFbGVtZW50JiBt
X2VsZW1lbnQ7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hl
ZFNjcmlwdDsKQEAgLTEwOSw2ICsxMTMsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0
ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCBtX3JlcXVlc3RVc2VzQWNjZXNzQ29u
dHJvbCA6IDE7CiAgICAgU3RyaW5nIG1fY2hhcmFjdGVyRW5jb2Rpbmc7CiAgICAgU3RyaW5nIG1f
ZmFsbGJhY2tDaGFyYWN0ZXJFbmNvZGluZzsKKyAgICBSZWZQdHI8TW9kdWxlR3JhcGg+IG1fbW9k
dWxlR3JhcGg7CiB9OwogCiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5k
ZXggZTEzYTVjZGRjY2EyY2IzYjc1NmE4ZDNhNTdlMjNmODBhOWI0M2U0OC4uNzU2Nzc5ZTdhNTBk
NWM0YWNjM2RkMzk3MzkyNTEwZmM5N2FlNjRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5jcHAKQEAgLTE2MSw2ICsxNjEsMTUgQEAgYm9vbCBIVE1MU2NyaXB0RWxl
bWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gZmFzdEhhc0F0dHJp
YnV0ZShzcmNBdHRyKTsKIH0KIAorYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBl
KCkgY29uc3QKK3sKKy8vICNpZiBFTkFCTEUoRVM2X01PRFVMRVMpCisgICAgcmV0dXJuIGZhc3RH
ZXRBdHRyaWJ1dGUodHlwZUF0dHIpLnN0cmluZygpID09ICJtb2R1bGUiOworLy8gI2Vsc2UKKy8v
ICAgIHJldHVybiBmYWxzZTsKKy8vICNlbmRpZgorfQorCiB2b2lkIEhUTUxTY3JpcHRFbGVtZW50
OjpkaXNwYXRjaExvYWRFdmVudCgpCiB7CiAgICAgQVNTRVJUKCFoYXZlRmlyZWRMb2FkRXZlbnQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggMzEyYzY2MjZl
OGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZlMzdiMi4uMWRmZDhjOGI3M2U4NzJhYmNkNWViNGIz
NDJlNzkyZDMzNTAzZTc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBIVE1MRWxlbWVudCwgcHVibGljIFNjcmlwdEVsZW1lbnQgewogICAgIHZpcnR1YWwgYm9vbCBh
c3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGRl
ZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFz
U291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTW9k
dWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9h
ZEV2ZW50KCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNw
cAppbmRleCA4YWRmY2ZhNDEwYWJlNDdlMzMyNGFlNWI4ZDkyNDNmNTY2NjQ1ZDk1Li5iYTVmMDZm
NDRiNmIxMTdmY2JiNjIzMzUzOGUyZTE0Y2Q3ZjhlNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNTEsNiArMTUxLDExIEBAIGJvb2wgU1ZHU2NyaXB0RWxl
bWVudDo6ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Citib29sIFNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiBib29sIFNWR1NjcmlwdEVsZW1lbnQ6Omhhc1NvdXJjZUF0dHJpYnV0
ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA1MzVlNDJlNmYwNjQ2
ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAxLi44YWZkZTMxMTI1ZTVkZDQ5OGRiODJhNGUwOTgz
YWIwNzRlMGRjYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTYy
LDYgKzYyLDcgQEAgY2xhc3MgU1ZHU2NyaXB0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVt
ZW50CiAgICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSBvdmVycmlkZSB7IFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9hZEV2ZW50KHRoaXMpOyB9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5OGQ0ZDJhNWNjMzE4MjM2
MzUzMmIwODVmZjU4Njg0OGZkNmRiZGU3Li5mYzRhN2MyN2I5NjllZTEzYzBkZTM4MjRlNmIxNjJi
YjljMWVhOWU1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDktMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGlu
dG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8uaDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW06
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5n
SW5mby5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJE
cmFnZ2luZ0luZm8ubW06CisKIDIwMTUtMDktMTggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgaU9TIFdlYktpdFRlc3RSdW5uZXIgZnJlcXVlbnRseSBjcmFz
aGVzIGluIFdLQ29udGV4dEdldEljb25EYXRhYmFzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLmggYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8uaAppbmRleCBiNGUxM2VhN2Vj
NDg5YTg5ZDUxMmY0NTk1ZGUxMDA0ZDdmYmRlMTgyLi5iZWEwOWNhMjg2YzlkZThkYzQzM2E5NTU4
NzRlYTIzZDgwM2NlNjcwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWVEcmFnZ2luZ0luZm8uaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8uaApAQCAtNTIsMTAgKzUyLDggQEAgQHByaXZhdGUK
IC0gKHZvaWQpc2xpZGVEcmFnZ2VkSW1hZ2VUbzooTlNQb2ludClzY3JlZW5Qb2ludDsKIC0gKE5T
QXJyYXkgKiluYW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uOihOU1VSTCAq
KWRyb3BEZXN0aW5hdGlvbjsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMTAwCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1NwcmluZ0xvYWRpbmdIaWdobGlnaHQg
c3ByaW5nTG9hZGluZ0hpZ2hsaWdodDsKIC0gKHZvaWQpcmVzZXRTcHJpbmdMb2FkaW5nOwotI2Vu
ZGlmCiBAZW5kCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tCmluZGV4IDA3YzdmOGRmYjZiMDQ0ZWIxMTU2
ZGExMmNlYjBjMGE1MjcxMjBkNjcuLmYyMTlkNzk4ZWUwNzkyNTE5OGViNWMxOWU5NWFlODc3MzM1
MmVmZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZURyYWdnaW5nSW5mby5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWVEcmFnZ2luZ0luZm8ubW0KQEAgLTE0Miw3ICsxNDIsNiBAQCAtICh2b2lkKWVudW1lcmF0
ZURyYWdnaW5nSXRlbXNXaXRoT3B0aW9uczooTlNFbnVtZXJhdGlvbk9wdGlvbnMpZW51bU9wdHMg
Zm9yVmlldwogICAgIC8vIElnbm9yZWQuCiB9CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTEwMAogLShOU1NwcmluZ0xvYWRpbmdIaWdobGlnaHQpc3ByaW5nTG9h
ZGluZ0hpZ2hsaWdodAogewogICAgIHJldHVybiBOU1NwcmluZ0xvYWRpbmdIaWdobGlnaHROb25l
OwpAQCAtMTUxLDcgKzE1MCw2IEBAIC0oTlNTcHJpbmdMb2FkaW5nSGlnaGxpZ2h0KXNwcmluZ0xv
YWRpbmdIaWdobGlnaHQKIC0gKHZvaWQpcmVzZXRTcHJpbmdMb2FkaW5nCiB7CiB9Ci0jZW5kaWYK
IAogQGVuZAogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRU
ZXN0UnVubmVyRHJhZ2dpbmdJbmZvLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJL
aXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLmgKaW5kZXggMTcwMDIwZTMwMDcyNDA2N2IwYjJkYjA0
ZDRmNzM3NThmZjkzNTFkMS4uNzUyMjlmZTA0MDM5YTcxNmRhYjU5ZmFjOWY3NGIxODU3ZTdiNzA2
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5l
ckRyYWdnaW5nSW5mby5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRl
c3RSdW5uZXJEcmFnZ2luZ0luZm8uaApAQCAtNDUsOCArNDUsNiBAQCBAcHJpdmF0ZQogLSAodm9p
ZClzbGlkZURyYWdnZWRJbWFnZVRvOihOU1BvaW50KXNjcmVlblBvaW50OwogLSAoTlNBcnJheSAq
KW5hbWVzT2ZQcm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb246KE5TVVJMICopZHJvcERl
c3RpbmF0aW9uOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEx
MDAKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodCBzcHJpbmdM
b2FkaW5nSGlnaGxpZ2h0OwogLSAodm9pZClyZXNldFNwcmluZ0xvYWRpbmc7Ci0jZW5kaWYKIEBl
bmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5u
ZXJEcmFnZ2luZ0luZm8ubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0
UnVubmVyRHJhZ2dpbmdJbmZvLm1tCmluZGV4IDhiN2QxNTgyZjY5ZWMwZjA1MDRlOWE0MTkwNjg1
YTZlZjkyZmMwNDAuLjFlYTJjODQzMTgyYzMwOGEyMmQ5MjNjNmIwMTJjNmExYWUwY2NiZWEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJEcmFn
Z2luZ0luZm8ubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1
bm5lckRyYWdnaW5nSW5mby5tbQpAQCAtMTQ2LDcgKzE0Niw2IEBAIC0gKHZvaWQpZW51bWVyYXRl
RHJhZ2dpbmdJdGVtc1dpdGhPcHRpb25zOihOU0VudW1lcmF0aW9uT3B0aW9ucyllbnVtT3B0cyBm
b3JWaWV3CiAgICAgLy8gSWdub3JlZC4KIH0KIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMTAwCiAtKE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodClzcHJpbmdMb2Fk
aW5nSGlnaGxpZ2h0CiB7CiAgICAgcmV0dXJuIE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodE5vbmU7
CkBAIC0xNTUsNiArMTU0LDUgQEAgLShOU1NwcmluZ0xvYWRpbmdIaWdobGlnaHQpc3ByaW5nTG9h
ZGluZ0hpZ2hsaWdodAogLSAodm9pZClyZXNldFNwcmluZ0xvYWRpbmcKIHsKIH0KLSNlbmRpZgog
CiBAZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261562</attachid>
            <date>2015-09-18 20:23:36 -0700</date>
            <delta_ts>2015-09-18 21:16:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150918202322.patch</filename>
            <type>text/plain</type>
            <size>67271</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTM4YzU2NDIxMDg1MmYxMDUxZTFhOGI0NzRkMmQyZGRjYWYxZWE1Li4wMzkwZjgwYjU4NmVhOThj
YWRlZTQ3YzQwYmZhYWZiNWViYWU0YWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wOS0xOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRp
bWUvU3ltYm9sLmg6CisKIDIwMTUtMDktMTggIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNh
a0BnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIGluIHRoZSBXZWJB
c3NlbWJseSBwYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyM2EwNjIyNzYwY2I0NDA5YmY2MTI1ZDU1YTUw
YWQwOTdmOWI1ZWMwLi5mNTVjYThmNGU2Zjg5YTZhODlmMjNlNjFlMWU0YTMzZjY1OWRkMzE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsODUgQEAKKzIwMTUtMDktMTggIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1
bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndh
cmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4K
KyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNYWluVGhy
ZWFkRXhlY1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNYWluVGhyZWFkRXhlY1N0YXRlOjps
aW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6U2NyaXB0Q29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVNb2R1bGVMb2FkZXJB
c3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJv
bGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6
OmluaXRNb2R1bGVHcmFwaCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bW9kdWxlTG9hZGVyQWxy
ZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKiBkb20vTW9kdWxl
RmV0Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6TW9k
dWxlRmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6cnVuKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBkb20vTW9kdWxlRmV0
Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6Om1vZHVsZUtl
eSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjYWNoZWRTY3JpcHQpOgorICAg
ICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlR3JhcGg6Ok1vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpu
b3RpZnlMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUVycm9y
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUV4ZWN1dGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVHcmFwaDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vTW9kdWxlR3JhcGguaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6ZWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVHcmFwaDo6bW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVs
ZUdyYXBoOjp3ZWFrUHRyKToKKyAgICAgICAgKiBkb20vTW9kdWxlTG9hZGVyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6Ok1vZHVsZUxvYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpub3RpZnlNb2R1bGVHcmFwaFJlYWR5KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6dGltZXJGaXJlZCk6CisgICAgICAgICog
ZG9tL01vZHVsZUxvYWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRl
cjo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpQZW5kaW5nTW9k
dWxlR3JhcGg6OmNsZWFyKToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojppc1NjcmlwdFR5cGVTdXBwb3J0ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpzdG9wTG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RWxlbWVudDo6bG9hZE1vZHVsZSk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUpOgorICAgICAgICAqIGh0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUpOgorICAg
ICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisKIDIwMTUtMDktMTggIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTUwMTg3KTogdXBk
YXRlSWRGb3JUcmVlU2NvcGUgbWF5IG5vdCBiZSBjYWxsZWQgaW5zaWRlIHNoYWRvdyB0cmVlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCA4M2Y1ZGUyNDg1MmJjMzc4
ZWUwYTc3MDM5ZjQ2MzE4MjVmZGRkYmJlLi5kZGI2OGNjYjM2NTQ0NTk5MTBjZDNmMjNmNjY4NzRk
MDA1ODhhOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1i
b2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaApAQCAtODYs
NyArODYsNyBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIFN5
bWJvbChWTSYpOwogICAgIFN5bWJvbChWTSYsIGNvbnN0IFN0cmluZyYpOwotICAgIFN5bWJvbChW
TSYsIFN5bWJvbEltcGwmIHVpZCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3ltYm9sKFZNJiwg
U3ltYm9sSW1wbCYgdWlkKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAg
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2UuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjU1N2EyZjIxZWNmNmIyYWVj
YWQ2N2UzNTNlMTk2NmU0Nzk0ZTgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCkBAIC0wLDAgKzEs
NCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZV9oCisjZGVmaW5lIFdl
YkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0ludGVybmFsUHJvbWlzZS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzA4NmRkMzlhZmY5ZTEwNGJkNWE2ZmY3YWU3OTI1NDYz
ODY5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaApAQCAtMCwwICsxLDQgQEAKKyNp
Zm5kZWYgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjZGVmaW5lIFdl
YkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWRfaAorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU01vZHVsZVJlY29yZC5o
IGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU01vZHVsZVJlY29y
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYzZTllY2ZmYmNmNTdjMmE5Yzc5NWNjYjFkODAzNDBmOTE0ZDdkNGYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50
aW1lL0pTTW9kdWxlUmVjb3JkLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldE
X0pTTW9kdWxlUmVjb3JkX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNvcmRfaAor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9kdWxlUmVjb3JkLmg+CisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1
ODhhN2ZjODg2MzBjZDg4NTU2MWVjNWQwNTE1MmYwZDY0YWMwNWY4Li5iNTJlMTM5OWJiNTc2MWFk
Y2MyYmVmMGMwYmNlOTYyOTg3OTQ3MzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzE3LDYgKzYzMTcsMTIgQEAKIAkJRTFG
RjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjY2MTgwNzQ2MDgw
MDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi87IH07CiAJCUUxRkY4RjZDMTgw
REI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QTE4MERCNUJFMDAxMzI2
NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovOyB9OwogCQlFMUZGOEY2RDE4MERC
NUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgwREI1QkUwMDEzMjY3NCAv
KiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovOyB9OworCQlFMzM5QTUyMzFCQTZCRDQ2MDBB
M0E3QUUgLyogTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNw
cCAqLzsgfTsKKwkJRTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM5QTUyMjFCQTZC
RDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlFM0IxMEZBMjFCQTAwNEJDMDA5M0RFM0EgLyogTW9kdWxl
TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzQjEwRkEwMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuY3BwICovOyB9OworCQlF
M0IxMEZBMzFCQTAwNEJDMDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IxMEZBMTFCQTAwNEJDMDA5M0RFM0Eg
LyogTW9kdWxlTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJRTNCMTBGQTYxQkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZldGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMTBGQTQx
QkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZldGNoZXIuY3BwICovOyB9OworCQlFM0IxMEZBNzFC
QTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMTBGQTUxQkEwRjI5QzAwOTNERTNBIC8qIE1vZHVs
ZUZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFNDAxQzI3NTE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9u
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwMUMy
NzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDI0QTM5RTEzMzBE
RjAxMDBDRjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDI0QTM5RDEzMzBERjAxMDBDRjZEQzkgLyogTGVn
YWN5VGlsZUdyaWRUaWxlLmggKi87IH07CiAJCUU0MjRBM0EwMTMzMERGMUUwMENGNkRDOSAvKiBM
ZWdhY3lUaWxlR3JpZFRpbGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDI0QTM5RjEzMzBERjFFMDBDRjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxl
Lm1tICovOyB9OwpAQCAtMTQwNjYsNiArMTQwNzIsMTIgQEAKIAkJRTFGRjhGNjYxODA3NDYwODAw
MTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFG
RjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMzlBNTIxMUJBNkJENDYwMEEzQTdBRSAvKiBN
b2R1bGVHcmFwaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1
bGVHcmFwaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMzlBNTIyMUJBNkJE
NDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2R1bGVHcmFwaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0IxMEZB
MDFCQTAwNEJDMDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzQjEwRkExMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlTG9hZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzQjEwRkE0MUJBMEYyOUMwMDkzREUzQSAvKiBNb2R1bGVGZXRj
aGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUZldGNo
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0IxMEZBNTFCQTBGMjlDMDA5
M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNb2R1bGVGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDFDMjc0
MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENv
bG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckRh
dGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDFFQTAzODExOTgzNkRCMDA3
MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDU1NQcm9wZXJ0eU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIzNDcyLDYgKzIzNDg0LDEyIEBACiAJCQkJNDFCRjcwMEEwRkU4NkY0OTAwNUU4REVD
IC8qIE1lc3NhZ2VQb3J0Q2hhbm5lbC5oICovLAogCQkJCUNCOENGMDE1MUE5MzRCNDMwMDBENTEw
QiAvKiBNaWNyb1Rhc2suY3BwICovLAogCQkJCTUzQjg5NUFEMTlEQzdDMzcwMDlDQUE5MyAvKiBN
aWNyb1Rhc2suaCAqLywKKwkJCQlFM0IxMEZBNDFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0
Y2hlci5jcHAgKi8sCisJCQkJRTNCMTBGQTUxQkEwRjI5QzAwOTNERTNBIC8qIE1vZHVsZUZldGNo
ZXIuaCAqLywKKwkJCQlFMzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3Bw
ICovLAorCQkJCUUzMzlBNTIyMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oICovLAor
CQkJCUUzQjEwRkEwMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuY3BwICovLAorCQkJ
CUUzQjEwRkExMUJBMDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuaCAqLywKIAkJCQk4NTAz
MUIyRjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMzAw
QTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuaCAqLywKIAkJCQkxNDFCOTRFNTA5RUM0MjIz
MDAwRTk0MTMgLyogTW91c2VFdmVudC5pZGwgKi8sCkBAIC0yNDM2MCw2ICsyNDM3OCw3IEBACiAJ
CQkJMDY1QUQ0RjUwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTA2RDdCRTE4QkRCNzZGMDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjVBRDRGNzBCMEMyRURBMDA1QTJCMUQgLyogQ29u
dGV4dE1lbnVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0IxMEZBMzFCQTAwNEJD
MDA5M0RFM0EgLyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjAyN0NBRDBC
MUNCRkMwMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QURFNzIyNjEwQ0JCQjlCMDA2QjNCM0EgLyogQ29udGV4dE1lbnVQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkQ1MDAyRkMxQjU2RDc5OTAwMjBBQUY3IC8qIFBhdGhVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovLApAQCAtMjQ1ODYsNiArMjQ2MDUsNyBAQAogCQkJCTMxNjAyM0YwMTUzMkM0
MEMwMEQ1MEZGNCAvKiBEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzdGRjNENTFB
MTAxMkQ2MDA4RUJBMzEgLyogRGljdGlvbmFyeUxvb2t1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBRjE5OTkxNTEzRDEzMTAwOERCMEMzIC8qIERpcmVjdENvbnZvbHZlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRv
ckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUFGMkQ2OTE0NDM1RDA1MDAxNkE3ODQgLyog
RGlzcGxheVJlZnJlc2hNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDNjE5MkVD
QzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKQEAgLTI2ODI3LDYgKzI2ODQ3LDcgQEAKIAkJCQkyRDkzQUVFMzE5REY1NjQxMDAyQTg2QzMg
LyogU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU2QjJD
RTExOEI3MTAxNjAwRkVDRkFBIC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMz
MDlFMTAwOTlFNjQ5MjAwNTZFNTgxIC8qIFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFM0IxMEZBNzFCQTBGMjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjhEQkRCNEMxMzBCMEY4QTAwRjVDREIxIC8qIFNldFNlbGVj
dGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTRGMDgyNDVFNTkwMDFFOUFC
QyAvKiBTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNFRjc2NkIxNjUzMEE2MTAwNENC
RTQ5IC8qIFNldHRpbmdzTWFjcm9zLmggaW4gSGVhZGVycyAqLywKQEAgLTI3OTcyLDYgKzI3OTkz
LDcgQEAKIAkJCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklP
Uy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBCQzEyQjAyNzJBMDBDMUEzNTkgLyogQXVk
aW9EZXN0aW5hdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAwNzEyQjAyNjc2
MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZEMzE2MDgxMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtlcm5lbFByb2Nlc3Nv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU1OTY5MTE0NzVCNjc4MDAxRDBCRDAgLyogQXVk
aW9GaWxlUmVhZGVySU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEJFMTJCMDI3MkEw
MEMxQTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg5
Miw2ICsyODkxNCw3IEBACiAJCQkJNTFFMUVDQzAwQzkxQzkwNDAwREMyNTVCIC8qIEljb25SZWNv
cmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFENzE5QjkxODExMDZFMDAwMTZEQzUxIC8qIElE
QkFueS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTg1QTY2MjExRDRGQUM1MDA0QzNFNEIgLyog
SURCQmluZGluZ1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0IxMEZBNjFCQTBG
MjlDMDA5M0RFM0EgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQ3
MTlDRTE4MTEwNkUwMDAxNkRDNTEgLyogSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTE2MzExN0QxODUxMjQyQjAwNTM0NjQ3IC8qIElEQkRhdGFiYXNlTWV0YWRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFENzE5RDAxODExMDZFMDAwMTZEQzUxIC8qIElE
QkV2ZW50RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5Nzk0LDYgKzI5ODE3LDcg
QEAKIAkJCQlEM0E5NEEzODEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRDNBQTEwRjMxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlN
YXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM5MDg0M0NGMUIxOEU0N0QwMEI2ODU2NCAv
KiBNZWRpYVJlbW90ZUNvbnRyb2xzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzQjEwRkEyMUJB
MDA0QkMwMDkzREUzQSAvKiBNb2R1bGVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VF
RkNENzkxOURCMzFGNzAwMzg3NkQ3IC8qIE1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0RCRUFFQUMxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3Jv
dXBBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzkwMjdGNDExQjFEMEFEMjAwQkZCRkVG
IC8qIE1lZGlhU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDc5Yjc0MGJlNWUxYTI2MDBjNDFk
NzMyMTI1MTVmOGZmMTEyYmU5NjYuLjMyYTA1YjZjODAyOWVjMjY4NmM4ZjhiOWQ3OGZlNTI4MjEw
NTBhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcApAQCAtMzEsMTEgKzMxLDEzIEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIK
ICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTW9k
dWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvTWljcm90YXNrLmg+
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtNTYsNyArNTgsNyBAQCBzdGF0aWMg
Ym9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20oY29uc3QgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmpl
Y3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dCYXNlOjpzX2lu
Zm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2UpIH07CiAKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNo
b3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291
cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3Ms
ICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVv
dXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKK2NvbnN0
IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmlsaW5n
LCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFT
Y3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVw
dFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVy
RmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSB9OwogCiBKU0RP
TVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCkK
ICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsICZzaGVsbC0+d29ybGQoKSwg
JnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC0yNzksNCArMjgxLDMxIEBAIHZvaWQgSlNE
T01XaW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2lu
ZG93KiB3aW5kb3cpCiAgICAgfQogfQogCisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9N
V2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwg
SlNDOjpKU1ZhbHVlIHJlZmVycmVyKQoreworICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYg
KERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5kb2N1bWVudCgpKQorICAg
ICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5yZXNvbHZlKGdsb2JhbE9iamVj
dCwgZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJyZXIpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNy
ZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4
ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXkpCit7Cisg
ICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dC
YXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09i
amVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxl
TG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlS2V5KTsKKyAgICBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gZGVm
ZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5lZCgpKTsKK30KKworSlNDOjpKU1ZhbHVlIEpT
RE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCkKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRo
aXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwor
ICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCkuZG9jdW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+ZXZhbHVhdGUoZ2xv
YmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCk7CisgICAgcmV0dXJuIEpT
Qzo6anNVbmRlZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA1ZWQzODYyYzE0MTE4
N2MwMDZiNjg4ZGI3OTc3OTRiMzY5ODEwNTY0Li4yZDQ0YjgwMDllNTRkYmIwNzRlOGY5OTc3YzE2
YjI1ZTEyNTdlYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuaApAQCAtNzgsNiArNzgsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBK
U0M6OldhdGNocG9pbnRTZXQgbV93aW5kb3dDbG9zZVdhdGNocG9pbnRzOwogCiAgICAgcHJpdmF0
ZToKKyAgICAgICAgLy8gTW9kdWxlIExvYWRlciBob29rcy4KKyAgICAgICAgc3RhdGljIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgICAg
ICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsKKyAgICAgICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisKICAg
ICAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV9pbXBsOwogICAgICAgICBKU0RPTVdpbmRvd1NoZWxs
KiBtX3NoZWxsOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWFpblRocmVhZEV4ZWNTdGF0ZS5oCmluZGV4IDA5ZTdlNWI2MDI2ODc5YjUzMzVhMWZlMWVmNzFj
NDQ3NDMwYmZjZDQuLjRmZDY4M2UxNTkxMDJiMTUyODdkNjM4OTljMDE2ZWZkMzc0ODAzZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oCkBAIC03NCw2ICs3NCwyNCBAQCBjbGFzcyBKU01haW5UaHJlYWRFeGVjU3RhdGUgewogICAg
ICAgICB0YXNrLnJ1bihleGVjKTsKICAgICB9CiAKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFs
UHJvbWlzZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBt
b2R1bGVOYW1lKQorICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRT
dGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVO
YW1lKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbG9hZE1v
ZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlKQorICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShl
eGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bG9hZE1vZHVsZShleGVjLCBzb3VyY2VDb2RlKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1
YXRlTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIG1v
ZHVsZUtleSkKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3Rh
dGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVj
LCBtb2R1bGVLZXkpOworICAgIH0KKwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgaW5zdHJ1bWVudEZ1bmN0aW9uQ2FsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
SlNDOjpDYWxsVHlwZSwgY29uc3QgSlNDOjpDYWxsRGF0YSYpOwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA0YjNi
MDk3MmJlNzdmM2M3NjU5NWYxNDBlMjZhNzQ4ZmY4ZWE0NTBjLi40YThjMTgzZGJkOTcwNTMwNzQ3
NzFlY2Q2YWMyNWJkMjc4ODE5OGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTWFp
blRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk1l
bW9yeVByZXNzdXJlSGFuZGxlci5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCiAjaW5jbHVk
ZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNv
bGVDbGllbnQuaCIKQEAgLTU0LDcgKzU1LDExIEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1Njcmlw
dENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rp
b24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+Cisj
aW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogCkBAIC04Niw2
ICs5MSw3IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xsZXIoRnJhbWUmIGZyYW1l
KQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fc291cmNlVVJMKDApCiAgICAgLCBtX3Bh
dXNlZChmYWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1i
b2woKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV93aW5kb3dTY3Jp
cHROUE9iamVjdCgwKQogI2VuZGlmCkBAIC0xNzUsMTEgKzE4MSwxMzQgQEAgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUKICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0o
KSwgcmV0dXJuVmFsdWUpOwogfQogCi1EZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKSAKK0Rl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3Js
ZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiB9CiAKK0pTRnVuY3Rpb24q
IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZU1vZHVsZUxvYWRlckFzeW5jaHJvbm91c0Vycm9yUmVw
b3J0RnVuY3Rpb24oTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBET01XcmFwcGVyV29ybGQmIHdv
cmxkKQoreworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQp
OworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOwor
CisgICAgV2Vha1B0cjxNb2R1bGVHcmFwaD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrUHRyKCkp
OworICAgIFByaXZhdGVOYW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9s
ID0gbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICByZXR1cm4g
SlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwg
MSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCwgd2Vh
a1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIEpTVmFsdWUgZXJyb3IgPSBleGVjLT5h
cmd1bWVudCgwKTsKKworICAgICAgICBpZiAoUmVmUHRyPE1vZHVsZUdyYXBoPiBtb2R1bGVHcmFw
aCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICBtb2R1bGVHcmFwaC0+bm90aWZ5RXJyb3Jl
ZCgpOworCisgICAgICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3IgaXMgbWFya2VkIGFzIG1vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAgICAgICAvLyBEb24ndCByZXBv
cnQgaXQgaGVyZSBhZ2Fpbi4KKyAgICAgICAgaWYgKFN5bWJvbCogc3ltYm9sID0ganNEeW5hbWlj
Q2FzdDxTeW1ib2wqPihlcnJvcikpIHsKKyAgICAgICAgICAgIGlmIChzeW1ib2wtPnByaXZhdGVO
YW1lKCkgPT0gbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAg
fQorCisgICAgICAgIC8vIEZJWE1FOiBCZWNhdXNlIHdlIGhhdmUgbm90IHN1cHBvcnRlZCB0aGUg
ImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUgaW4gdGhlIG1vZHVsZSB0YWcsCisgICAgICAgIC8vIHdl
IHBhc3MgdGhlIG51bGxwdHIgdG8gcmVwb3J0RXhjZXB0aW9uJ3MgQ2FjaGVkU2NyaXB0KiBwYXJh
bWV0ZXIuIFdoZW4gcGFzc2luZyBudWxscHRyCisgICAgICAgIC8vIHRvIHJlcG9ydEV4Y2VwdGlv
biwgV2ViQ29yZSBkb2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVycm9yIGlmIHRoZSBV
Ukwgb2YgdGhlCisgICAgICAgIC8vIHNvdXJjZSBkb2VzIG5vdCBwYXNzIHRoZSBzYW1lIG9yaWdp
biBwb2xpY3kuIFNvIHRoZSBjdXJyZW50IGJlaGF2aW9yIGlzIGNvbnNlcnZhdGl2ZTsKKyAgICAg
ICAgLy8gb25seSB0aGUgbW9kdWxlIGNvZGUgdGhhdCBVUkwgaXMgd2l0aGluIHRoZSBzYW1lIG9y
aWdpbiBjYW4gcmVwb3J0IHRoZSBkZXRhaWxzIG9mIHRoZQorICAgICAgICAvLyBlcnJvci4gT25j
ZSB0aGUgc3BlYyBkZXNjcmliZXMgdGhlIGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAg
ICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGVycm9yLCBudWxscHRyKTsKKworICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworfQorCit2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVH
cmFwaCwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQor
eworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dT
aGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0g
c2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0TW9kdWxlR3JhcGgobW9k
dWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVO
YW1lKSwgd29ybGQpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9k
dWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAg
bG9hZE1vZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3Jt
YWxXb3JsZCgpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3Js
ZChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJj
ZUNvZGUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2so
d29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxs
KHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4
ZWMoKTsKKworICAgIGluaXRNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhl
Y1N0YXRlOjpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCkpLCB3b3Js
ZCk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYg
bW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAg
bG9hZE1vZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3Jt
YWxXb3JsZCgpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVN
b2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9N
V2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSog
ZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgSlNJbnRlcm5hbFBy
b21pc2UqIHByb21pc2UgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1v
ZHVsZShleGVjLCBtb2R1bGVHcmFwaC5tb2R1bGVLZXkoKSk7CisKKyAgICBXZWFrUHRyPE1vZHVs
ZUdyYXBoPiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtQdHIoKSk7CisgICAgSlNGdW5jdGlvbiog
ZnVsZmlsbEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwg
c2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dlYWtQdHJdKEV4ZWNTdGF0ZSopIHsKKyAg
ICAgICAgaWYgKFJlZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRyLmdldCgp
KQorICAgICAgICAgICAgbW9kdWxlR3JhcGgtPm5vdGlmeUV4ZWN1dGVkKCk7CisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBwcm9t
aXNlLT50aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCBjcmVhdGVNb2R1bGVMb2FkZXJBc3luY2hy
b25vdXNFcnJvclJlcG9ydEZ1bmN0aW9uKG1vZHVsZUdyYXBoLCB3b3JsZCkpOworfQorCit2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShNb2R1bGVHcmFwaCYgbW9k
dWxlR3JhcGgpCit7CisgICAgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFw
aCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwg
SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sK
KyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIGNvbnN0IFNvdXJjZUNv
ZGUmIGpzU291cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29kZSgpOworCisgICAgSlNE
T01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRl
KiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisgICAgY29uc3QgU3RyaW5n
KiBzYXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gJnNvdXJj
ZVVSTC5zdHJpbmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKKworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwsIGpzU291cmNl
Q29kZS5maXJzdExpbmUoKSk7CisKKyAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gbW9kdWxlUmVj
b3JkLT5ldmFsdWF0ZShleGVjKTsKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25F
eGNlcHRpb247CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICBldmFsdWF0
aW9uRXhjZXB0aW9uID0gZXhlYy0+dm0oKS5leGNlcHRpb24oKTsKKworICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llLCBtX2ZyYW1lKTsKKworICAg
IGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKSB7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVj
LCBldmFsdWF0aW9uRXhjZXB0aW9uLCBudWxscHRyKTsKKyAgICAgICAgbV9zb3VyY2VVUkwgPSBz
YXZlZFNvdXJjZVVSTDsKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKCk7
CisgICAgfQorCisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICByZXR1cm4g
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOworfQorCitE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShj
b25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCkKK3sKKyAg
ICByZXR1cm4gZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQsIG1haW5UaHJl
YWROb3JtYWxXb3JsZCgpKTsKK30KKwogUmVmPERPTVdyYXBwZXJXb3JsZD4gU2NyaXB0Q29udHJv
bGxlcjo6Y3JlYXRlV29ybGQoKQogewogICAgIHJldHVybiBET01XcmFwcGVyV29ybGQ6OmNyZWF0
ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0yNzIsNiArNDAxLDMwIEBAIEpTRE9NV2lu
ZG93U2hlbGwqIFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCkKICAgICByZXR1cm4gd2luZG93U2hlbGw7CiB9CiAKK3N0YXRpYyBJZGVudGlmaWVyIGpz
VmFsdWVUb01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAg
aWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tVWlk
KGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCh2YWx1
ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBq
c0Nhc3Q8SlNTdHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30KKwordm9pZCBTY3JpcHRD
b250cm9sbGVyOjppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBKU0lu
dGVybmFsUHJvbWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBK
U0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3Rh
dGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8
TW9kdWxlR3JhcGg+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha1B0cigpKTsKKyAgICBKU0Z1bmN0
aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52
bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRlKiBl
eGVjKSB7CisgICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQgZWxlbWVudCBhbmQgZG9jdW1l
bnQgbWF5IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUgbW9kdWxlLgorICAgICAgICAv
LyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBtb2R1bGUgYm9keS4KKyAgICAg
ICAgaWYgKFJlZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRyLmdldCgpKQor
ICAgICAgICAgICAgbW9kdWxlR3JhcGgtPm5vdGlmeUxvYWRlZChqc1ZhbHVlVG9Nb2R1bGVLZXko
ZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKyAgICBwcm9taXNlLT50aGVuKGV4ZWMsIGZ1bGZp
bGxIYW5kbGVyLCBjcmVhdGVNb2R1bGVMb2FkZXJBc3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0
aW9uKG1vZHVsZUdyYXBoLCB3b3JsZCkpOworfQorCiBUZXh0UG9zaXRpb24gU2NyaXB0Q29udHJv
bGxlcjo6ZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJZiB3
ZSBhcmUgbm90IGN1cnJlbnRseSBwYXJzaW5nLCB3ZSBzaG91bGQgdXNlIG91ciBjdXJyZW50IGxv
Y2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgK
aW5kZXggMDdjNTNiN2M4ZWRmYjRlMjhmNWNhMTNhYTJjNGUwNTU5NGVmNTEyMi4uOWEzMTkzM2M3
NDE4MjJlZmE3NDdiOWQ5YjJmMjI4NzdjZGE3YWVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtNDQsNiArNDQsOSBAQCBjbGFzcyBTY3Jp
cHRWYWx1ZTsKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7Cisg
ICAgY2xhc3MgSlNNb2R1bGVSZWNvcmQ7CisgICAgY2xhc3MgSlNJbnRlcm5hbFByb21pc2U7CisK
ICAgICBjbGFzcyBFeGVjU3RhdGU7CiAKICAgICBuYW1lc3BhY2UgQmluZGluZ3MgewpAQCAtNTcs
NiArNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxE
b2N1bWVudDsKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OworY2xhc3MgTW9kdWxlR3JhcGg7CiBj
bGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXaWRn
ZXQ7CkBAIC0xMTUsNiArMTE5LDE3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsK
ICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0
U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYpOwogCisgICAgdm9pZCBsb2FkTW9kdWxlSW5X
b3JsZChNb2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRE9NV3JhcHBlcldv
cmxkJik7CisgICAgdm9pZCBsb2FkTW9kdWxlKE1vZHVsZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBt
b2R1bGVOYW1lKTsKKyAgICB2b2lkIGxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiwgY29u
c3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgbG9hZE1v
ZHVsZShNb2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAgIHZvaWQg
bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgLCBET01XcmFwcGVyV29y
bGQmKTsKKyAgICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShNb2R1bGVHcmFwaCYpOworCisg
ICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiwgSlND
OjpKU01vZHVsZVJlY29yZCosIERPTVdyYXBwZXJXb3JsZCYpOworICAgIERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6SlNNb2R1bGVSZWNvcmQq
KTsKKwogICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7
CiAKICAgICB2b2lkIGVuYWJsZUV2YWwoKTsKQEAgLTEzNSw2ICsxNTAsOCBAQCBjbGFzcyBTY3Jp
cHRDb250cm9sbGVyIHsKIAogICAgIGNvbnN0IFN0cmluZyogc291cmNlVVJMKCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2VVUkw7IH0gLy8gMCBpZiB3ZSBhcmUgbm90IGV2YWx1YXRpbmcgYW55IHNj
cmlwdAogCisgICAgY29uc3QgSlNDOjpQcml2YXRlTmFtZSYgbW9kdWxlTG9hZGVyQWxyZWFkeVJl
cG9ydGVkRXJyb3JTeW1ib2woKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUxvYWRlckFscmVhZHlS
ZXBvcnRlZEVycm9yU3ltYm9sOyB9CisKICAgICB2b2lkIGNsZWFyV2luZG93U2hlbGwoRE9NV2lu
ZG93KiBuZXdET01XaW5kb3csIGJvb2wgZ29pbmdJbnRvUGFnZUNhY2hlKTsKICAgICB2b2lkIHVw
ZGF0ZURvY3VtZW50KCk7CiAKQEAgLTE3MCw2ICsxODcsOCBAQCBjbGFzcyBTY3JpcHRDb250cm9s
bGVyIHsKIAogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd1NoZWxsKiBp
bml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgaW5pdE1vZHVsZUdyYXBoKE1v
ZHVsZUdyYXBoJiwgSlNDOjpKU0ludGVybmFsUHJvbWlzZSosIERPTVdyYXBwZXJXb3JsZCYpOwor
ICAgIEpTQzo6SlNGdW5jdGlvbiogY3JlYXRlTW9kdWxlTG9hZGVyQXN5bmNocm9ub3VzRXJyb3JS
ZXBvcnRGdW5jdGlvbihNb2R1bGVHcmFwaCYsIERPTVdyYXBwZXJXb3JsZCYpOwogCiAgICAgdm9p
ZCBkaXNjb25uZWN0UGxhdGZvcm1TY3JpcHRPYmplY3RzKCk7CiAKQEAgLTE3OCw2ICsxOTcsNyBA
QCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAgICBjb25zdCBTdHJpbmcqIG1fc291cmNlVVJM
OwogCiAgICAgYm9vbCBtX3BhdXNlZDsKKyAgICBKU0M6OlByaXZhdGVOYW1lIG1fbW9kdWxlTG9h
ZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7CiAKICAgICAvLyBUaGUgcm9vdCBvYmplY3Qg
dXNlZCBmb3Igb2JqZWN0cyBib3VuZCBvdXRzaWRlIHRoZSBjb250ZXh0IG9mIGEgcGx1Z2luLCBz
dWNoCiAgICAgLy8gYXMgTlBBUEkgcGx1Z2lucy4gVGhlIHBsdWdpbnMgdXNpbmcgdGhlc2Ugb2Jq
ZWN0cyBwcmV2ZW50IGEgcGFnZSBmcm9tIGJlaW5nIGNhY2hlZCBzbyB0aGV5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCAyMTc5M2MyMmYwNTNmYjdiMDY1NjgxN2NmYzdkYWIzMTg0YWU4YmQ0
Li4zODYxZmU4NTNiMGViOTI2YWQ1YzcwOWMzMzkzZDk2ZTY0NTVlYmRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTEwMiw2ICsxMDIsNyBAQAogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIu
aCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRj
aGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cy5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgogI2luY2x1ZGUg
Ik5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCkBAIC00NjEsNiArNDYyLDcgQEAgRG9jdW1lbnQ6
OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIHVuc2lnbmVkIGRvY3VtZW50
Q2xhc3NlcywgdW5zaWcKICAgICAsIG1fc3RhcnRUaW1lKHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xv
Y2s6Om5vdygpKQogICAgICwgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZChmYWxzZSkKICAg
ICAsIG1fc2NyaXB0UnVubmVyKHN0ZDo6bWFrZV91bmlxdWU8U2NyaXB0UnVubmVyPigqdGhpcykp
CisgICAgLCBtX21vZHVsZUxvYWRlcihzdGQ6Om1ha2VfdW5pcXVlPE1vZHVsZUxvYWRlcj4oKnRo
aXMpKQogICAgICwgbV94bWxWZXJzaW9uKEFTQ0lJTGl0ZXJhbCgiMS4wIikpCiAgICAgLCBtX3ht
bFN0YW5kYWxvbmUoU3RhbmRhbG9uZVVuc3BlY2lmaWVkKQogICAgICwgbV9oYXNYTUxEZWNsYXJh
dGlvbihmYWxzZSkKQEAgLTYwMiw2ICs2MDQsNyBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAg
ICAgICAgbV9kb21XaW5kb3ctPnJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yUGFnZUNhY2hlKCk7CiAK
ICAgICBtX3NjcmlwdFJ1bm5lciA9IG51bGxwdHI7CisgICAgbV9tb2R1bGVMb2FkZXIgPSBudWxs
cHRyOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCA3NGNlYWE5NmJjOTJmNDc4MTdjZWJiNWYzY2Y5MzkwYTE5YTc3ZDY5Li5mNTdjNDEz
MWZkY2U1NWNjY2Q0ZTYwODBkYmI1MTk1M2M0YjI3YzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTI4LDYgKzEyOCw3IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBjbGFzcyBNZWRp
YVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBNZWRp
YVF1ZXJ5TWF0Y2hlcjsKK2NsYXNzIE1vZHVsZUxvYWRlcjsKIGNsYXNzIE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9uOwogY2xhc3MgTm9kZUZp
bHRlcjsKQEAgLTkyNyw2ICs5MjgsNyBAQCBjbGFzcyBEb2N1bWVudCA6IHB1YmxpYyBDb250YWlu
ZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQwogICAgIERv
Y3VtZW50JiB0b3BEb2N1bWVudCgpIGNvbnN0OwogICAgIAogICAgIFNjcmlwdFJ1bm5lciogc2Ny
aXB0UnVubmVyKCkgeyByZXR1cm4gbV9zY3JpcHRSdW5uZXIuZ2V0KCk7IH0KKyAgICBNb2R1bGVM
b2FkZXIqIG1vZHVsZUxvYWRlcigpIHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyLmdldCgpOyB9CiAK
ICAgICBIVE1MU2NyaXB0RWxlbWVudCogY3VycmVudFNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuICFt
X2N1cnJlbnRTY3JpcHRTdGFjay5pc0VtcHR5KCkgPyBtX2N1cnJlbnRTY3JpcHRTdGFjay5sYXN0
KCkuZ2V0KCkgOiAwOyB9CiAgICAgdm9pZCBwdXNoQ3VycmVudFNjcmlwdChQYXNzUmVmUHRyPEhU
TUxTY3JpcHRFbGVtZW50Pik7CkBAIC0xNTEwLDYgKzE1MTIsNyBAQCBjbGFzcyBEb2N1bWVudCA6
IHB1YmxpYyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhl
Y3V0aW9uQwogICAgIGJvb2wgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZDsKICAgICAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0UnVubmVyPiBtX3NjcmlwdFJ1bm5lcjsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKIAogICAgIFZlY3RvcjxS
ZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+PiBtX2N1cnJlbnRTY3JpcHRTdGFjazsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZldGNoZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL01vZHVsZUZldGNoZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYWY2YzU5NGY3NzM2ODcyOGQ3
NTUzYjEwZDlhOGU2MmZkOWZmYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTW9kdWxlRmV0Y2hlci5jcHAKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorCisjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNs
dWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlc291
cmNlTG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNs
dWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9kdWxl
RmV0Y2hlcjo6TW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBj
b25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVu
dCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX21vZHVsZUtleShtb2R1bGVL
ZXkpCisgICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgLCBtX2dsb2JhbE9iamVjdChn
bG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCkKKyAgICAsIG1fZGVmZXJyZWQoZ2xvYmFs
T2JqZWN0LT52bSgpLCBkZWZlcnJlZCkKK3sKK30KKworUmVmPE1vZHVsZUZldGNoZXI+IE1vZHVs
ZUZldGNoZXI6OmNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBK
U0M6OklkZW50aWZpZXImIG1vZHVsZUtleSwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2R1bGVGZXRjaGVyKGdsb2JhbE9iamVjdCwgbW9k
dWxlS2V5LCBzb3VyY2VVUkwsIGRlZmVycmVkLCBkb2N1bWVudCkpOworfQorCitib29sIE1vZHVs
ZUZldGNoZXI6OnJ1bigpCit7CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOworICAg
IG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihDb250ZW50U2VjdXJp
dHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrKTsKKworICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX3NvdXJjZVVSTCksIG9wdGlvbnMpOwor
CisgICAgLy8gRklYTUU6IFNob3VsZCBoYW5kbGUgImNyb3Nzb3JpZ2luIiBvcHRpb25zLgorICAg
IC8vIE9uY2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBkZXRhaWxzLCB3ZSB3aWxsIGZvbGxvdyBp
dC4KKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcihBdG9taWNTdHJpbmcobV9zb3VyY2VVUkwuc3Ry
aW5nKCkpKTsKKworICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9kb2N1bWVudC5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CisgICAgaWYgKCFtX2NhY2hlZFNjcmlw
dCkgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKSB7Cisg
ICAgICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKG1fZ2xvYmFsT2JqZWN0LT52bSgpKTsK
KyAgICAgICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2Jh
bEV4ZWMoKTsKKyAgICAgICAgICAgIG1fZGVmZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OlN5bWJv
bDo6Y3JlYXRlKGV4ZWMtPnZtKCksICooZnJhbWUtPnNjcmlwdCgpLm1vZHVsZUxvYWRlckFscmVh
ZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkudWlkKCkpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIE5vdGU6IElmIHRoZSBjb250ZW50IGlzIGFscmVh
ZHkgY2FjaGVkLCB0aGlzIGltbWVpZGF0ZWx5IGNhbGxzIG5vdGlmeUZpbmlzaGVkLgorICAgIG1f
Y2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgTW9kdWxlRmV0Y2hlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
KQoreworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fY2FjaGVkU2Ny
aXB0KTsKKyAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICBB
U1NFUlQobV9jYWNoZWRTY3JpcHQpOworICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQo
dGhpcyk7CisKKyNpZiBFTkFCTEUoTk9TTklGRikKKyAgICBpZiAobV9jYWNoZWRTY3JpcHQgJiYg
IW1fY2FjaGVkU2NyaXB0LT5taW1lVHlwZUFsbG93ZWRCeU5vc25pZmYoKSkgeworICAgICAgICBt
X2RvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCAiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBmcm9tICciICsgbV9j
YWNoZWRTY3JpcHQtPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicg
YmVjYXVzZSBpdHMgTUlNRSB0eXBlICgnIiArIG1fY2FjaGVkU2NyaXB0LT5taW1lVHlwZSgpICsg
IicpIGlzIG5vdCBleGVjdXRhYmxlLCBhbmQgc3RyaWN0IE1JTUUgdHlwZSBjaGVja2luZyBpcyBl
bmFibGVkLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoRnJh
bWUqIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9s
ZGVyIGxvY2sobV9nbG9iYWxPYmplY3QtPnZtKCkpOworICAgICAgICBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIGlmIChtX2NhY2hl
ZFNjcmlwdC0+ZXJyb3JPY2N1cnJlZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgbW9kdWxlIGxv
YWRlciBwaXBlbGluZSBpcyBjb25zdHJ1Y3RlZCBhcyBhIGNoYWluIG9mIHByb21pc2VzLgorICAg
ICAgICAgICAgLy8gUmVqZWN0aW5nIGEgcHJvbWlzZSBpZiBzb21lIGVycm9yIG9jY3VycyBpcyBp
bXBvcnRhbnQgYmVjYXVzZSB0aGUgZXhlY3V0aW9uIGZsb3cgb2YKKyAgICAgICAgICAgIC8vIHRo
ZSBwcm9taXNlIGNoYWluIGlzIGRyaXZlbiBieSAicmVqZWN0ZWQiIG9yICJmdWxmaWxsZWQiIGV2
ZW50cy4KKyAgICAgICAgICAgIC8vIElmIHRoZSBwcm9taXNlIGlzIG5vdCByZWplY3RlZCB3aGls
ZSBlcnJvciBvY2N1cnMsIHJlamVjdCBoYW5kbGVyIHdvbid0IGJlIGV4ZWN1dGVkCisgICAgICAg
ICAgICAvLyBhbmQgYWxsIHRoZSBzdWJzZXF1ZW50IHByb21pc2UgY2hhaW4gd2FpdCB0aGUgcmVz
dWx0IGZvcmV2ZXIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQXMgYSByZXN1bHQs
IGV2ZW4gaWYgdGhlIGVycm9yIGlzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBl
bHNld2hlcmUsCisgICAgICAgICAgICAvLyBpdCBzaG91bGQgYmUgcHJvcGFnYXRlZCBpbiB0aGUg
cGlwZWxpbmUuIEZvciBleGFtcGxlLCB0aGUgZXJyb3Igb2YgbG9hZGluZworICAgICAgICAgICAg
Ly8gQ2FjaGVkUmVzb3VyY2UgaXMgcmVwb3J0ZWQgYnkgdGhlIGxvYWRlci4gQnV0IHdlIG5lZWQg
dG8gcmVqZWN0IHRoZSBwcm9taXNlIGJ5IHNvbWUKKyAgICAgICAgICAgIC8vIGVycm9yLgorICAg
ICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdCB0byByZXBvcnQgdGhlIGVycm9yIHR3aWNl
LCB3aGVuIHdlIHByb3BhZ2F0ZSB0aGUgZXJyb3IgdGhhdCBpcyBhbHJlYWR5IHJlcG9ydGVkCisg
ICAgICAgICAgICAvLyB0byB0aGUgaW5zcGVjdG9yLCB3ZSB0aHJvdyBtb2R1bGVMb2FkZXJBbHJl
YWR5UmVwb3J0ZWRFcnJvclN5bWJvbCBzeW1ib2wgaW5zdGVhZC4KKyAgICAgICAgICAgIC8vIEJ5
IGNvbXBhcmluZyB0aGUgdGhyb3duIGVycm9yIHdpdGggdGhpcyBzeW1ib2wsIHdlIGNhbiBkaXN0
aW5ndWlzaCBlcnJvcnMgcmFpc2VkCisgICAgICAgICAgICAvLyB3aGVuIGxpbmtpbmcgb3IgZXhl
Y3V0aW5nIGEgbW9kdWxlIGdyYXBoIGZyb20gZXJyb3JzIHJlcG9ydGVkIGFscmVhZHkuCisgICAg
ICAgICAgICAvLyBJbiB0aGUgcmVqZWN0IGhhbmRsZXIgb2YgdGhlIHByb21pc2UsIHdlIG9ubHkg
cmVwb3J0IGEgZXJyb3IgdGhhdCBpcyBub3QgdGhpcyBzeW1ib2wuCisgICAgICAgICAgICBtX2Rl
ZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqKGZy
YW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVp
ZCgpKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFtX2NhY2hlZFNjcmlwdC0+d2FzQ2FuY2VsZWQo
KSkgeworICAgICAgICAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKG1fY2FjaGVkU2Ny
aXB0LmdldCgpKTsKKyAgICAgICAgICAgIG1fZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgSlNDOjpq
c1N0cmluZyhleGVjLCBzb3VyY2VDb2RlLnNvdXJjZSgpKSk7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgbV9jYWNoZWRTY3JpcHQgPSBudWxscHRyOworCisgICAgbV9kb2N1bWVudC5tb2R1bGVMb2Fk
ZXIoKS0+bm90aWZ5RmluaXNoZWQodGhpcyk7CisgICAgLy8gQWZ0ZXIgTW9kdWxlTG9hZGVyOjpu
b3RpZnlGaW5pc2hlZCBjYWxsLCB8dGhpc3wgbWF5IGJlIGRlc3Ryb3llZC4KK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZldGNoZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb2R1bGVGZXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk1NzIxMWFjMGMwMTJlZTRlMTBm
MjFkNzhkY2U1MmI1MTRhYjhkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb2R1bGVGZXRjaGVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
TW9kdWxlRmV0Y2hlcl9oCisjZGVmaW5lIE1vZHVsZUZldGNoZXJfaAorCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgor
I2luY2x1ZGUgIlVSTC5oIgorI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBDYWNoZWRTY3JpcHQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEpTRE9NR2xv
YmFsT2JqZWN0OworCitjbGFzcyBNb2R1bGVGZXRjaGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TW9k
dWxlRmV0Y2hlcj4sIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE1vZHVsZUZldGNoZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1vZHVsZUZldGNoZXI+IGNyZWF0ZShKU0RPTUdsb2JhbE9i
amVjdCosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5LCBjb25zdCBVUkwmIHNvdXJj
ZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQmKTsKKworICAg
IGJvb2wgcnVuKCk7CisKKyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSgpIHsg
cmV0dXJuIG1fbW9kdWxlS2V5OyB9CisgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7
IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIE1vZHVsZUZl
dGNoZXIoSlNET01HbG9iYWxPYmplY3QqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtl
eSwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCos
IERvY3VtZW50Jik7CisKKyAgICAvLyBGb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAg
ICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBKU0M6OklkZW50aWZpZXIgbV9tb2R1bGVLZXk7
CisgICAgVVJMIG1fc291cmNlVVJMOworICAgIEpTQzo6U3Ryb25nPEpTRE9NR2xvYmFsT2JqZWN0
PiBtX2dsb2JhbE9iamVjdDsKKyAgICBKU0M6OlN0cm9uZzxKU0M6OkpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQ+IG1fZGVmZXJyZWQ7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2Ny
aXB0PiBtX2NhY2hlZFNjcmlwdCB7IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBNb2R1bGVGZXRjaGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb2R1bGVHcmFwaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlR3JhcGguY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFiNTY5ODc5ZjYyMDBkYjNhYTZkM2U4MDc1NjBhNWM0ZTVjNmFhMGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlR3JhcGguY3BwCkBAIC0wLDAg
KzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9k
dWxlR3JhcGguaCIKKworI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1
ZGUgIk1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNs
dWRlICJTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK01vZHVsZUdyYXBoOjpNb2R1bGVHcmFwaChFbGVtZW50JiBlbGVtZW50KQorICAgIDog
bV9lbGVtZW50KGVsZW1lbnQpCisgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCit7Cit9CisK
K3ZvaWQgTW9kdWxlR3JhcGg6Om5vdGlmeUxvYWRlZChjb25zdCBKU0M6OklkZW50aWZpZXImIG1v
ZHVsZUtleSkKK3sKKyAgICBtX21vZHVsZUtleSA9IG1vZHVsZUtleTsKKyAgICBtX2VsZW1lbnQu
ZG9jdW1lbnQoKS5tb2R1bGVMb2FkZXIoKS0+bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSh0aGlzKTsK
K30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXJyb3JlZCgpCit7CisgICAgdG9TY3JpcHRF
bGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KS0+ZGlzcGF0Y2hFcnJvckV2ZW50KCk7Cit9CisK
K3ZvaWQgTW9kdWxlR3JhcGg6Om5vdGlmeUV4ZWN1dGVkKCkKK3sKKyAgICB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaExvYWRFdmVudCgpOworfQorCit2b2lk
IE1vZHVsZUdyYXBoOjpldmFsdWF0ZSgpCit7CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZWxl
bWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5saW5rQW5k
RXZhbHVhdGVNb2R1bGUoKnRoaXMpOworfQorCitSZWY8TW9kdWxlR3JhcGg+IE1vZHVsZUdyYXBo
OjpjcmVhdGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQorewor
ICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgUmVmPE1vZHVsZUdy
YXBoPiBtb2R1bGVHcmFwaCA9IGFkb3B0UmVmKCpuZXcgTW9kdWxlR3JhcGgoZWxlbWVudCkpOwor
ICAgIGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQoKS5sb2FkTW9kdWxlKG1vZHVs
ZUdyYXBoLCBtb2R1bGVOYW1lKTsKKyAgICByZXR1cm4gbW9kdWxlR3JhcGg7Cit9CisKK1JlZjxN
b2R1bGVHcmFwaD4gTW9kdWxlR3JhcGg6OmNyZWF0ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIEFTU0VSVChlbGVtZW50LmRvY3Vt
ZW50KCkuZnJhbWUoKSk7CisgICAgUmVmPE1vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaCA9IGFkb3B0
UmVmKCpuZXcgTW9kdWxlR3JhcGgoZWxlbWVudCkpOworICAgIGVsZW1lbnQuZG9jdW1lbnQoKS5m
cmFtZSgpLT5zY3JpcHQoKS5sb2FkTW9kdWxlKG1vZHVsZUdyYXBoLCBzb3VyY2VDb2RlKTsKKyAg
ICByZXR1cm4gbW9kdWxlR3JhcGg7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb2R1bGVHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjI0NjdhMDZlMjc3NGU2ZjZmYWViODJjNzMzNzY3NmQ5NjJkNmM5YgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oCkBAIC0wLDAgKzEs
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUdyYXBoX2gKKyNkZWZpbmUgTW9kdWxl
R3JhcGhfaAorCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1l
bnQ7CitjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOworCitjbGFzcyBNb2R1bGVHcmFwaCA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1vZHVsZUdyYXBoPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9k
dWxlR3JhcGgpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPE1vZHVsZUdyYXBoPiBjcmVhdGUoRWxlbWVudCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFt
ZSk7CisgICAgc3RhdGljIFJlZjxNb2R1bGVHcmFwaD4gY3JlYXRlKEVsZW1lbnQmLCBjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJik7CisKKyAgICBFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9l
bGVtZW50OyB9CisgICAgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBtb2R1bGVLZXkoKSB7IHJldHVy
biBtX21vZHVsZUtleTsgfQorCisgICAgdm9pZCBldmFsdWF0ZSgpOworCisgICAgV2Vha1B0cjxN
b2R1bGVHcmFwaD4gd2Vha1B0cigpCisgICAgeworICAgICAgICByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlMb2FkZWQoY29u
c3QgSlNDOjpJZGVudGlmaWVyJik7CisgICAgdm9pZCBub3RpZnlFcnJvcmVkKCk7CisgICAgdm9p
ZCBub3RpZnlFeGVjdXRlZCgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1vZHVsZUdyYXBo
KEVsZW1lbnQmKTsKKworICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKKyAgICBKU0M6OklkZW50aWZp
ZXIgbV9tb2R1bGVLZXk7CisgICAgV2Vha1B0ckZhY3Rvcnk8TW9kdWxlR3JhcGg+IG1fd2Vha1B0
ckZhY3Rvcnk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1
bGVMb2FkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlTG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzlm
M2UxNDZmZmJlMzhmZDY2YjYzMDVhOGNiNTM5NTBlZmJjYmY4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgi
CisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1p
Y3JvVGFzay5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgorI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8
cnVudGltZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVM
b2FkZXI6Ok1vZHVsZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50
KGRvY3VtZW50KQorICAgICwgbV90aW1lcigqdGhpcywgJk1vZHVsZUxvYWRlcjo6dGltZXJGaXJl
ZCkKK3sKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9hZGVyOjpyZXNvbHZl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lVmFsdWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlclZhbHVl
KQoreworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwor
ICAgIGlmIChtb2R1bGVOYW1lVmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIGRlZmVy
cmVkLT5yZXNvbHZlKGV4ZWMsIG1vZHVsZU5hbWVWYWx1ZSk7CisKKyAgICAvLyBGSVhNRTogV2Ug
bm93IGFzc3VtZSB0aGF0IG1vZHVsZSBuYW1lIGlzIGVpdGhlciBzeW1ib2wgb3Igc3RyaW5nLgor
ICAgIC8vIFdoZW4gZXhwb3NpbmcgdGhlIHJlZmxlY3Rpb24gdG8gdGhlIG1vZHVsZSBsb2FkZXIg
YW5kIG1vZHVsZXMsIHdlIG5lZWQgdG8gcmVjYXN0IHRoaXMgcGFydC4KKyAgICBBU1NFUlQobW9k
dWxlTmFtZVZhbHVlLmlzU3RyaW5nKCkpOworICAgIFN0cmluZyBtb2R1bGVOYW1lID0gSlNDOjpq
c0Nhc3Q8SlNDOjpKU1N0cmluZyo+KG1vZHVsZU5hbWVWYWx1ZSktPnZhbHVlKGV4ZWMpOworCisg
ICAgLy8gTm93LCB3ZSBjb25zaWRlciB0aGUgZ2l2ZW4gbW9kdWxlTmFtZSBhcyB0aGUgc2FtZSB0
byB0aGUgc3JjPSIuLi4iIGluIHRoZSBzY3JpcHQgdGFnLgorICAgIC8vIFdlIHVzZSB0aGUgY29t
cGxldGVkIFVSTCBhcyB0aGUgbW9kdWxlIGtleS4KKyAgICAvLworICAgIC8vIEZJWE1FOiBXZSBu
ZWVkIHNpdGUgcGFja2FnaW5nIHN5c3RlbS4gQnV0IGl0J3Mgbm90IGRlZmluZWQgaW4gdGhlIHNw
ZWMgeWV0LgorICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXIt
bG9hZGVyLXByb3RvdHlwZS0lNDAlNDByZXNvbHZlCisgICAgVVJMIGNvbXBsZXRlZFVSTDsKKwor
ICAgIC8vIEZJWE1FOiBDaGVjayBtX2RvY3VtZW50IGxpZmV0aW1lLgorICAgIGlmIChyZWZlcnJl
clZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29t
cGxldGVVUkwobW9kdWxlTmFtZSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChyZWZlcnJlclZh
bHVlLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50
LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFT
U0VSVChyZWZlcnJlclZhbHVlLmlzU3RyaW5nKCkpOworICAgICAgICAgICAgU3RyaW5nIHJlZmVy
cmVyID0gSlNDOjpqc0Nhc3Q8SlNDOjpKU1N0cmluZyo+KHJlZmVycmVyVmFsdWUpLT52YWx1ZShl
eGVjKTsKKyAgICAgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwo
bW9kdWxlTmFtZSwgVVJMKFBhcnNlZFVSTFN0cmluZywgcmVmZXJyZXIpKTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBpZiAoIWNvbXBsZXRlZFVSTC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBk
ZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGNyZWF0ZURPTUV4Y2VwdGlvbihleGVjLCBTWU5UQVhfRVJS
KSk7CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhlYywganNTdHJpbmcoZXhlYywg
Y29tcGxldGVkVVJMLnN0cmluZygpKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIE1v
ZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQoreworICAgIC8v
IEZJWE1FOiBXaGVuIGltcGxlbWVudGluZyByZWZsZWN0aXZlIG1vZHVsZSBsb2FkZXIgYW5kIG1v
ZHVsZXMsIHdlIHNob3VsZCByZWNhc3QgdGhpcyBpbXBsZW1lbnRhdGlvbi4KKyAgICBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKworICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoIW1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCksICJTeW1ib2xpYyBtb2R1bGUga2V5
IHNob3VsZCBiZSBhbHJlYWR5IGZ1bGZpbGxlZCB3aXRoIHRoZSBpbmxpbmVkIHJlc291cmNlLiIp
OworICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKKworICAgIEpTQzo6SWRl
bnRpZmllciBtb2R1bGVLZXkgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgYXNT
dHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7CisKKyAgICBVUkwgY29tcGxldGVk
VVJMKFBhcnNlZFVSTFN0cmluZywgbW9kdWxlS2V5LmltcGwoKSk7CisgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShjb21wbGV0ZWRVUkwuaXNWYWxpZCgpLCAiVGhlIHJlc29sdmUgaG9vayBzaG91bGQg
cHJvZHVjZSB0aGUgdmFsaWQgVVJMIGFzIGEgc3RyaW5nLiIpOworCisgICAgUmVmPE1vZHVsZUZl
dGNoZXI+IGZldGNoZXIgPSBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNDOjpqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBtb2R1bGVLZXksIGNvbXBsZXRlZFVSTCwgZGVm
ZXJyZWQsIG1fZG9jdW1lbnQpOworICAgIG1fZmV0Y2hpbmdTZXQuYWRkKCZmZXRjaGVyLmdldCgp
KTsKKyAgICBmZXRjaGVyLT5ydW4oKTsKKworICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgp
OworfQorCitKU0M6OkpTVmFsdWUgTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1
ZSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlKQoreworICAgIC8vIEZJWE1FOiBDdXJy
ZW50bHksIHdlIG9ubHkgc3VwcG9ydCBKU01vZHVsZVJlY29yZC4KKyAgICBKU0M6OkpTTW9kdWxl
UmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU01vZHVsZVJl
Y29yZCo+KG1vZHVsZVJlY29yZFZhbHVlKTsKKyAgICBpZiAoIW1vZHVsZVJlY29yZCkKKyAgICAg
ICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKKworICAgIFVSTCBzb3VyY2VVUkw7CisgICAg
aWYgKG1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHNvdXJjZVVSTCA9IG1fZG9j
dW1lbnQudXJsKCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5p
c1N0cmluZygpKTsKKyAgICAgICAgc291cmNlVVJMID0gVVJMKFBhcnNlZFVSTFN0cmluZywgYXNT
dHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7CisgICAgfQorCisgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5z
Y3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsIG1vZHVsZVJlY29yZCk7CisgICAgcmV0
dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKwordm9pZCBNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKE1vZHVsZUZldGNoZXIqIGZldGNoZXIpCit7CisgICAgbV9mZXRjaGluZ1NldC5yZW1v
dmUoZmV0Y2hlcik7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjpub3RpZnlNb2R1bGVHcmFwaFJl
YWR5KE1vZHVsZUdyYXBoKiBtb2R1bGVHcmFwaCkKK3sKKyAgICBtX21vZHVsZUdyYXBoc1RvRXhl
Y3V0ZS5hcHBlbmQoUGVuZGluZ01vZHVsZUdyYXBoIHsgJm1vZHVsZUdyYXBoLT5lbGVtZW50KCks
IG1vZHVsZUdyYXBoIH0pOworICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lk
IE1vZHVsZUxvYWRlcjo6dGltZXJGaXJlZCgpCit7CisgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0
KG1fZG9jdW1lbnQpOworICAgIFZlY3RvcjxQZW5kaW5nTW9kdWxlR3JhcGg+IG1vZHVsZUdyYXBo
czsKKyAgICBtb2R1bGVHcmFwaHMuc3dhcChtX21vZHVsZUdyYXBoc1RvRXhlY3V0ZSk7CisKKyAg
ICBmb3IgKFBlbmRpbmdNb2R1bGVHcmFwaCYgcGVuZGluZ01vZHVsZUdyYXBoIDogbW9kdWxlR3Jh
cGhzKSB7CisgICAgICAgIHBlbmRpbmdNb2R1bGVHcmFwaC5tb2R1bGVHcmFwaC0+ZXZhbHVhdGUo
KTsKKyAgICAgICAgTWljcm9UYXNrUXVldWU6OnNpbmdsZXRvbigpLnJ1bk1pY3JvVGFza3MoKTsK
KyAgICAgICAgcGVuZGluZ01vZHVsZUdyYXBoLmNsZWFyKCk7CisgICAgfQorfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW9kdWxlTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE4ZGVhOTI0ZDUwOWY5YjVjYmQ4ODVj
NDU5YzlmNWQwZDU4YzdlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b2R1bGVMb2FkZXIuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1
bGVMb2FkZXJfaAorI2RlZmluZSBNb2R1bGVMb2FkZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIk1vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgor
I2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworCitjbGFzcyBNb2R1bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IGV4cGxpY2l0IE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJl
cik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNDOjpK
U1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCisgICAg
dm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKik7CisgICAgdm9pZCBub3RpZnlNb2R1
bGVHcmFwaFJlYWR5KE1vZHVsZUdyYXBoKik7CisKKyAgICB2b2lkIHRpbWVyRmlyZWQoKTsKKwor
ICAgIHN0cnVjdCBQZW5kaW5nTW9kdWxlR3JhcGggeworICAgICAgICBSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudDsKKyAgICAgICAgUmVmUHRyPE1vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaDsKKworICAg
ICAgICB2b2lkIGNsZWFyKCkKKyAgICAgICAgeworICAgICAgICAgICAgZWxlbWVudCA9IG51bGxw
dHI7CisgICAgICAgICAgICBtb2R1bGVHcmFwaCA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9
OworCitwcml2YXRlOgorICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIEhhc2hTZXQ8UmVm
UHRyPE1vZHVsZUZldGNoZXI+PiBtX2ZldGNoaW5nU2V0OworICAgIFZlY3RvcjxQZW5kaW5nTW9k
dWxlR3JhcGg+IG1fbW9kdWxlR3JhcGhzVG9FeGVjdXRlOworICAgIFRpbWVyIG1fdGltZXI7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1bGVMb2FkZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY2YmJlY2UxZDM1ZTFhNDc2M2Jm
OWViZWJmMGYwYzEyY2RiZWYxZDcuLmIwNzZjOTUxOTZkYWM3MDY3ZjExMWYxYjA3ZDA2MDA3ZGVj
N2FhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWdub3JlRGVzdHJ1
Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCkBAIC0xNjEsNiAr
MTYyLDEwIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3VwcG9ydGVkKExlZ2Fj
eVR5cGVTdXBwb3J0IHN1cHBvcnRMZWdhY3lUeXBlcykKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0gZWxzZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TUlNRVR5cGUodHlwZS5zdHJpcFdoaXRlU3BhY2UoKS5sb3dlcigpKSB8fCAoc3VwcG9ydExlZ2Fj
eVR5cGVzID09IEFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSAmJiBpc0xlZ2FjeVN1cHBv
cnRlZEphdmFTY3JpcHRMYW5ndWFnZSh0eXBlKSkpCiAgICAgICAgIHJldHVybiB0cnVlOworI2lm
IEVOQUJMRShFUzZfTU9EVUxFUykKKyAgICBlbHNlIGlmICh0eXBlID09ICJtb2R1bGUiKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjE3
LDYgKzIyMiw5IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0
UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgZWxzZQogICAgICAgICBt
X2NoYXJhY3RlckVuY29kaW5nID0gZG9jdW1lbnQuY2hhcnNldCgpOwogCisgICAgaWYgKGlzTW9k
dWxlVHlwZSgpKQorICAgICAgICByZXR1cm4gbG9hZE1vZHVsZShzY3JpcHRTdGFydFBvc2l0aW9u
KTsKKwogICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkKICAgICAgICAgaWYgKCFyZXF1ZXN0
U2NyaXB0KHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMzE3LDYgKzMyNSw3IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0
KCkKICAgICAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CiAgICAg
ICAgIG1fY2FjaGVkU2NyaXB0ID0gMDsKICAgICB9CisgICAgLy8gRklYTUU6IFRoZSBtb2R1bGUg
bG9hZGVyIHNob3VsZCBoYXZlIHRoZSBtZWNoYW5pc20gdG8gc3RvcCBsb2FkaW5nLgogfQogCiB2
b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCkBA
IC0zMzIsNiArMzQxLDUyIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3Jp
cHQqIGNhY2hlZFNjcmlwdCkKICAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsK
IH0KIAorYm9vbCBTY3JpcHRFbGVtZW50Ojpsb2FkTW9kdWxlKGNvbnN0IFRleHRQb3NpdGlvbiYg
c2NyaXB0U3RhcnRQb3NpdGlvbikKK3sKKyAgICAvLyBUaGUgYnJvd3NlciBtb2R1bGUgbG9hZGVy
IGxvYWRzIHRoZSBtb2R1bGUgc291cmNlcy4KKyAgICAvLyBTaW5jZSB0aGUgbW9kdWxlIGludm9s
dmVzIGxvYWRpbmcgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzIGFuZCB0aGUgZGVwZW5kZW50IG1v
ZHVsZXMgZG9lcyBub3QgaGF2ZSBjb3JyZXNwb25kaW5nIHNjcmlwdCBlbGVtZW50cywKKyAgICAv
LyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBsb2FkaW5nIG1vZHVsZXMgaXMgc2VwYXJhdGVkIGZyb20g
dGhlIHNjcmlwdCBlbGVtZW50LgorICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgeworICAg
ICAgICBTdHJpbmcgc291cmNlVXJsID0gc291cmNlQXR0cmlidXRlVmFsdWUoKTsKKyAgICAgICAg
UmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50KG1fZWxlbWVudC5kb2N1bWVudCgpKTsKKyAg
ICAgICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBTY3JpcHQgZWxlbWVudCBt
YXkgYmUgZGV0YWNoZWQgYW5kIGF0dGFjaGVkIHRvIGEgZGlmZmVyZW50IGRvY3VtZW50IHdoaWxl
IGV4ZWN1dGluZyB0aGUgZXZlbnQgbGlzdGVuZXIuCisgICAgICAgIGlmICghbV9lbGVtZW50Lmlu
RG9jdW1lbnQoKSB8fCAmbV9lbGVtZW50LmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5w
dHIoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoc3RyaXBMZWFk
aW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgc3VwcG9ydCBjcm9zcy1vcmlnaW4g
bW9kZSBpbiB0aGUgbW9kdWxlIHRhZy4KKyAgICAgICAgLy8gSG93ZXZlciB3ZSBkb24ndCBoYXZl
IHRoZSBwb2xpY3kgdG8gYXBwbHkgdGhpcyBtb2RlIHRvIHRoZSByZXNvdXJjZXMgb2YgdGhlIGRl
cGVuZGVudCBtb2R1bGVzLgorICAgICAgICAvLyBQcm92aWRlZCBtdWx0aXBsZSBtb2R1bGUgdGFn
cywKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICBBOiA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3Jj
PSIuLi4iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PgorICAgICAgICAvLyAgIEI6
IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiI+PC9zY3JpcHQ+CisgICAgICAgIC8vCisg
ICAgICAgIC8vICdBJyBoYXMgdGhlICJjcm9zc29yaWdpbiIgYXR0cmlidXRlLiBCdXQgJ0InIGRv
ZXMgbm90IGhhdmUgaXQuCisgICAgICAgIC8vIEhvd2V2ZXIsIEVTNiBtb2R1bGVzIGFsbG93ICdB
JyBhbmQgJ0InIHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGFuZCBpdCB3aWxsIGJlIGNhY2hlZCBp
biB0aGUKKyAgICAgICAgLy8gbW9kdWxlIGxvYWRlci4gSW4gdGhhdCBjYXNlLCBpdCBpcyBjb250
cm92ZXJzaWFsIHRoYXQgd2hpY2ggImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUgd2lsbCBiZQorICAg
ICAgICAvLyBhcHBsaWVkIHRvIHRoZSBtb2R1bGUgbG9hZGVkIGJ5IHRoZSBib3RoLiBPbmNlIHRo
ZSBzcGVjIG9mIHRoZSBtb2R1bGUgbG9hZGVyIGlzIGZpeGVkLCB3ZQorICAgICAgICAvLyBzaG91
bGQgZm9sbG93IGl0LgorCisgICAgICAgIG1fbW9kdWxlR3JhcGggPSBNb2R1bGVHcmFwaDo6Y3Jl
YXRlKG1fZWxlbWVudCwgc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CisgICAgICAgIG1faXNFeHRl
cm5hbFNjcmlwdCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlm
ICghbV9lbGVtZW50LmRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5s
aW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBtX3N0YXJ0TGluZU51bWJlciwg
bV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAvLyBSZXNldCBsaW5lIG51bWJlcmluZyBmb3IgbmVzdGVkIHdyaXRlcy4KKyAgICBU
ZXh0UG9zaXRpb24gcG9zaXRpb24gPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5pc0luRG9jdW1lbnRX
cml0ZSgpID8gVGV4dFBvc2l0aW9uKCkgOiBzY3JpcHRTdGFydFBvc2l0aW9uOworICAgIG1fbW9k
dWxlR3JhcGggPSBNb2R1bGVHcmFwaDo6Y3JlYXRlKG1fZWxlbWVudCwgU2NyaXB0U291cmNlQ29k
ZShzY3JpcHRDb250ZW50KCksIG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBwb3NpdGlvbikp
OworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlz
aGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQoIW1fd2lsbEJlUGFy
c2VyRXhlY3V0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggYjdlNzNkMGRl
ZTgzZDMyNGU4NzJmN2JjNGMxYjkzM2RjOTZjMTEyYS4uNzRiMzQyMDMwOTA3MmM5MGQ4NzU2NWZm
MjkyYWRiMDgwYThhOTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0zMSw2
ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNz
IENvbnRhaW5lck5vZGU7CiBjbGFzcyBFbGVtZW50OworY2xhc3MgTW9kdWxlR3JhcGg7CiBjbGFz
cyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIApAQCAtODIsNiArODMs
OCBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7
CiAgICAgYm9vbCByZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKTsKICAgICB2
b2lkIHN0b3BMb2FkUmVxdWVzdCgpOwogCisgICAgYm9vbCBsb2FkTW9kdWxlKGNvbnN0IFRleHRQ
b3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgU3RyaW5n
IHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwpAQCAtOTMsNiArOTYsNyBAQCBjbGFz
cyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgdmly
dHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhh
c1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVU
eXBlKCkgY29uc3QgPSAwOwogCiAgICAgRWxlbWVudCYgbV9lbGVtZW50OwogICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9jYWNoZWRTY3JpcHQ7CkBAIC0xMDksNiArMTEz
LDcgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQg
ewogICAgIGJvb2wgbV9yZXF1ZXN0VXNlc0FjY2Vzc0NvbnRyb2wgOiAxOwogICAgIFN0cmluZyBt
X2NoYXJhY3RlckVuY29kaW5nOwogICAgIFN0cmluZyBtX2ZhbGxiYWNrQ2hhcmFjdGVyRW5jb2Rp
bmc7CisgICAgUmVmUHRyPE1vZHVsZUdyYXBoPiBtX21vZHVsZUdyYXBoOwogfTsKIAogU2NyaXB0
RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShFbGVtZW50Kik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGUxM2E1Y2RkY2NhMmNiM2I3NTZh
OGQzYTU3ZTIzZjgwYTliNDNlNDguLmQxNWViNzFiZTNmNmJjZmIxMDc4MmY5NzQ4NzViNDAwYmMw
ZDcxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0x
NjEsNiArMTYxLDE1IEBAIGJvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6Omhhc1NvdXJjZUF0dHJpYnV0
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoc3JjQXR0cik7CiB9CiAKK2Jv
b2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxF
KEVTNl9NT0RVTEVTKQorICAgIHJldHVybiBmYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKS5zdHJp
bmcoKSA9PSAibW9kdWxlIjsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisK
IHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKICAgICBBU1NF
UlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaAppbmRleCAzMTJjNjYyNmU4YjgzMTRlODVlMmRmNjg3ZGJmMDlmMmIyZmUzN2IyLi4x
ZGZkOGM4YjczZTg3MmFiY2Q1ZWI0YjM0MmU3OTJkMzM1MDNlNzlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIEhUTUxTY3Jp
cHRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgU2NyaXB0RWxlbWVu
dCB7CiAgICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDhhZGZjZmE0MTBhYmU0N2UzMzI0YWU1Yjhk
OTI0M2Y1NjY2NDVkOTUuLmJhNWYwNmY0NGI2YjExN2ZjYmI2MjMzNTM4ZTJlMTRjZDdmOGU2OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE1MSw2ICsxNTEs
MTEgQEAgYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgU1ZHU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVU
eXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgU1ZHU2NyaXB0RWxl
bWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzQXR0cmli
dXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5oCmluZGV4IDUzNWU0MmU2ZjA2NDZkODAxMDQxOTA5M2M2MjI5MjRiMzgzZDcxMDEuLjhhZmRl
MzExMjVlNWRkNDk4ZGI4MmE0ZTA5ODNhYjA3NGUwZGNjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBTVkdTY3JpcHRFbGVtZW50
IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNBdHRyaWJ1
dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0
ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGhhc1NvdXJjZUF0dHJp
YnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92
ZXJyaWRlIHsgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlzcGF0Y2hMb2FkRXZlbnQo
dGhpcyk7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261570</attachid>
            <date>2015-09-18 21:16:03 -0700</date>
            <delta_ts>2015-09-21 11:56:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150918211549.patch</filename>
            <type>text/plain</type>
            <size>68394</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTM4YzU2NDIxMDg1MmYxMDUxZTFhOGI0NzRkMmQyZGRjYWYxZWE1Li4wMzkwZjgwYjU4NmVhOThj
YWRlZTQ3YzQwYmZhYWZiNWViYWU0YWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wOS0xOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRp
bWUvU3ltYm9sLmg6CisKIDIwMTUtMDktMTggIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNh
a0BnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIGluIHRoZSBXZWJB
c3NlbWJseSBwYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyM2EwNjIyNzYwY2I0NDA5YmY2MTI1ZDU1YTUw
YWQwOTdmOWI1ZWMwLi43MTU3ZmIwMmY4NjgxMWNlM2Y4Y2ExNmU2MjNkNTk3MzcxYzkxNjUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsODUgQEAKKzIwMTUtMDktMTggIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1
bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
Lmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9y
dW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJS
ZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJF
dmFsdWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg6CisgICAgICAgIChXZWJD
b3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1vZHVsZUZldGNoZXI6Ok1vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlRmV0Y2hlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6OnJ1
bik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUZldGNoZXI6OmNhY2hlZFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvTW9kdWxlTG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2Fk
ZXI6Ok1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OnJlc29s
dmUpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVs
ZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVy
Ojpub3RpZnlNb2R1bGVHcmFwaFJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRl
cjo6dGltZXJGaXJlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OlBlbmRpbmdNb2R1bGVHcmFwaDo6Y2xlYXIpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0Q29udHJvbGxlcjo6U2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRD
b250cm9sbGVyOjpjcmVhdGVNb2R1bGVMb2FkZXJBc3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldv
cmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxl
SW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZh
bHVhdGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVh
dGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1bGVHcmFwaCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0Q29udHJvbGxlcjo6bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bW9kdWxl
TG9hZGVyKToKKyAgICAgICAgKiBkb20vTW9kdWxlR3JhcGguY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpNb2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpN
b2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBo
Ojpub3RpZnlFcnJvcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlF
eGVjdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6ZXZhbHVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL01vZHVs
ZUdyYXBoLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om1vZHVsZUtleSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVHcmFwaDo6d2Vha1B0cik6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3Vw
cG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAqIGRv
bS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6aXNNb2R1
bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorCiAyMDE1LTA5LTE4
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjE1MDE4Nyk6IHVwZGF0ZUlkRm9yVHJlZVNjb3BlIG1heSBub3QgYmUgY2FsbGVkIGluc2lkZSBz
aGFkb3cgdHJlZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5
bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggODNm
NWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1ZmRkZGJiZS4uZGRiNjhjY2IzNjU0NDU5OTEw
Y2QzZjIzZjY2ODc0ZDAwNTg4YTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3lt
Ym9sLmgKQEAgLTg2LDcgKzg2LDcgQEAgY2xhc3MgU3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2Vs
bCB7CiAKICAgICBTeW1ib2woVk0mKTsKICAgICBTeW1ib2woVk0mLCBjb25zdCBTdHJpbmcmKTsK
LSAgICBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1aWQpOworICAgIEpTX0VYUE9SVF9QUklWQVRF
IFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KFZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGNhMWRlNGQxNTY5NDhiZjdl
MTBkMGVlYjQ2NmNjZmM1ZTM2NmIxMWEuLmRkNmFkYmZjYTk5Y2EzNTU2M2FkOTlkZDU2MDI5ZDU3
ZTVjOGQzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjIzLDYgKzEyMjMsOCBAQCBzZXQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5j
cHAKICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRj
aGVyLmNwcAorICAgIGJpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKICAgICBiaW5kaW5ncy9q
cy9SZWFkYWJsZUpTU3RyZWFtLmNwcAogICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5j
cHAKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCkBAIC0xNDQ3LDYg
KzE0NDksNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL01lc3NhZ2VQb3J0LmNwcAog
ICAgIGRvbS9NZXNzYWdlUG9ydENoYW5uZWwuY3BwCiAgICAgZG9tL01pY3JvVGFzay5jcHAKKyAg
ICBkb20vTW9kdWxlR3JhcGguY3BwCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01v
dXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJv
bWlzZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVy
bmFsUHJvbWlzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNTU3YTJmMjFlY2Y2YjJhZWNhZDY3ZTM1M2UxOTY2
ZTQ3OTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVm
IFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJ
bnRlcm5hbFByb21pc2VfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9t
aXNlLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzZjMDg2ZGQzOWFmZjllMTA0YmQ1YTZmZjdhZTc5MjU0NjM4Njk1NQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3Jl
X0ZXRF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjNlOWVjZmZiY2Y1N2MyYTljNzk1Y2NiMWQ4MDM0MGY5MTRkN2Q0ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVS
ZWNvcmQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNv
cmRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KU01vZHVsZVJlY29yZF9oCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU4OGE3ZmM4ODYzMGNk
ODg1NTYxZWM1ZDA1MTUyZjBkNjRhYzA1ZjguLjIyYWQwN2FjODVhOWMyOWEzMGE3ZDY5N2UwNTM4
OGU2NGExNTg3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTYzMTcsNiArNjMxNywxMiBAQAogCQlFMUZGOEY2ODE4MDc0NjA4
MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpT
U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTFGRjhGNkMxODBEQjVCRTAwMTMyNjc0
IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9B
bGdvcml0aG1SZWdpc3RyeS5jcHAgKi87IH07CiAJCUUxRkY4RjZEMTgwREI1QkUwMDEzMjY3NCAv
KiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29y
aXRobVJlZ2lzdHJ5LmggKi87IH07CisJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1
bGVHcmFwaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwICovOyB9OworCQlF
MzM5QTUyNDFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzlBNTIyMUJBNkJENDYwMEEzQTdBRSAv
KiBNb2R1bGVHcmFwaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUUzODgzODk2MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODgzODkyMUJB
RDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRf
VEFHUyA9ICgpOyB9OyB9OworCQlFMzg4Mzg5NzFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0
Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4
ODM4OTMxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVNTRVRfVEFHUyA9ICgpOyB9OyB9OworCQlFMzg4Mzg5ODFCQUQxNDVGMDBENjJFRTMgLyogTW9k
dWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwICovOyBzZXR0
aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCUUzODgzODk5MUJBRDE0NUYwMEQ2MkVF
MyAvKiBNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OwogCQlFNDAxQzI3NTE3Q0U1M0VDMDBD
NDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVs
ZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFNDI0QTM5RTEzMzBERjAxMDBDRjZEQzkgLyogTGVnYWN5VGls
ZUdyaWRUaWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDI0QTM5RDEzMzBERjAxMDBDRjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLmggKi87IH07
CiAJCUU0MjRBM0EwMTMzMERGMUUwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDI0QTM5RjEzMzBE
RjFFMDBDRjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLm1tICovOyB9OwpAQCAtMTQwNjYsNiAr
MTQwNzIsMTIgQEAKIAkJRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRv
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3VidGxl
Q3J5cHRvQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkEx
ODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8q
IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzMzlBNTIxMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVHcmFwaC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzMzlBNTIyMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFw
aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVHcmFwaC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5MjFCQUQxNDVGMDBENjJFRTMgLyogTW9k
dWxlRmV0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1
bGVGZXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4OTMxQkFE
MTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9kdWxlRmV0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
Mzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVt
ZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNDFFQTAzODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1l
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0eU5h
bWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNTA2LDYgKzIxNTE4LDEw
IEBACiAJCQkJNDExODlFRjgxQUQ4MjMzQzAwQjkwQTBEIC8qIEpTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyQ3VzdG9tLmNwcCAqLywKIAkJCQlFMUMzNkQzMjBFQjBBMDk0MDA3NDEwQkMgLyogSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBC
QyAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5oICovLAorCQkJCUUzODgzODkyMUJBRDE0NUYw
MEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmNwcCAqLywKKwkJCQlFMzg4Mzg5MzFCQUQxNDVGMDBE
NjJFRTMgLyogTW9kdWxlRmV0Y2hlci5oICovLAorCQkJCUUzODgzODk0MUJBRDE0NUYwMEQ2MkVF
MyAvKiBNb2R1bGVMb2FkZXIuY3BwICovLAorCQkJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAv
KiBNb2R1bGVMb2FkZXIuaCAqLywKIAkJCQk0MTk4QkRFRTFBODExMjM2MDBCMjJGQjUgLyogUmVh
ZGFibGVKU1N0cmVhbS5jcHAgKi8sCiAJCQkJNDE5OEJERUYxQTgxMTIzNjAwQjIyRkI1IC8qIFJl
YWRhYmxlSlNTdHJlYW0uaCAqLywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2No
ZWR1bGVkQWN0aW9uLmNwcCAqLywKQEAgLTIzNDcyLDYgKzIzNDg4LDggQEAKIAkJCQk0MUJGNzAw
QTBGRTg2RjQ5MDA1RThERUMgLyogTWVzc2FnZVBvcnRDaGFubmVsLmggKi8sCiAJCQkJQ0I4Q0Yw
MTUxQTkzNEI0MzAwMEQ1MTBCIC8qIE1pY3JvVGFzay5jcHAgKi8sCiAJCQkJNTNCODk1QUQxOURD
N0MzNzAwOUNBQTkzIC8qIE1pY3JvVGFzay5oICovLAorCQkJCUUzMzlBNTIxMUJBNkJENDYwMEEz
QTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi8sCisJCQkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FF
IC8qIE1vZHVsZUdyYXBoLmggKi8sCiAJCQkJODUwMzFCMkYwQTQ0RUZDNzAwRjk5MkUwIC8qIE1v
dXNlRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjMwMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2
ZW50LmggKi8sCiAJCQkJMTQxQjk0RTUwOUVDNDIyMzAwMEU5NDEzIC8qIE1vdXNlRXZlbnQuaWRs
ICovLApAQCAtMjQ1ODYsNiArMjQ2MDQsNyBAQAogCQkJCTMxNjAyM0YwMTUzMkM0MEMwMEQ1MEZG
NCAvKiBEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzdGRjNENTFBMTAxMkQ2MDA4
RUJBMzEgLyogRGljdGlvbmFyeUxvb2t1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBRjE5OTkx
NTEzRDEzMTAwOERCMEMzIC8qIERpcmVjdENvbnZvbHZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0OUFGMkQ2OTE0NDM1RDA1MDAxNkE3ODQgLyogRGlzcGxheVJl
ZnJlc2hNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDNjE5MkVDQzgzMDA5ODRC
NzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2
MTYxLDYgKzI2MTgwLDcgQEAKIAkJCQlDRTEyNTI0MTFBMTZCMUI2MDA4NjQ0ODAgLyogTWVkaWFQ
bGF5ZXJTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAv
KiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUNDMDAy
MjBGRTUgLyogTWVkaWFRdWVyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4ODM4OTkxQkFEMTQ1
RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkMw
QTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTRFMTk1OTJFMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlEM0E5NEEzOTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCBp
biBIZWFkZXJzICovLApAQCAtMjcyMDUsNiArMjcyMjUsNyBAQAogCQkJCTA4MEU0OTI4MTI1NUYz
QkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0RW5naW5lU3BhY2luZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDhGMEJGQzYxMjU1QzUzQzAwMDc1MTg1IC8qIFNWR1RleHRNZXRyaWNzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3MTE3NDQ1OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NC
dWlsZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg4Mzg5NzFCQUQxNDVGMDBENjJFRTMgLyog
TW9kdWxlRmV0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBQ0UwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1RleHRQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRDEw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4NTRCMDI1MTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdUZXh0UXVlcnkuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjc5NzIsNiArMjc5OTMsNyBAQAogCQkJCUNEMEVFRTBFMTQ3NDNGMzkw
MDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZE
MzE2MEJDMTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZEMzE2MDA3MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzM5QTUyMzFCQTZCRDQ2MDBBM0E3QUUgLyog
TW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwODExMkIwMjZGNzAwQzFB
MzU5IC8qIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
NTU5NjkxMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkQzMTYwQkUxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlck1h
Yy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4NTM1LDYgKzI4NTU3LDcgQEAKIAkJCQlFNEEwMDc4
NTFCODIwRUQzMDAyQzVBNkUgLyogRGF0YVVSTERlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDk4MzkxNTEwRjFFNzZCNDAwQzIzNzgyIC8qIERPTVdlYktpdENTU01hdHJpeC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCThBRDBBNTk3MTRDODgzNTgwMDBEODNDNSAvKiBET01XZWJLaXRDU1NS
ZWdpb25SdWxlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4ODM4OTgxQkFEMTQ1RjAwRDYyRUUz
IC8qIE1vZHVsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTYxMUU2MjBFMUM0RTE0
MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW0gaW4gU291cmNlcyAqLywK
IAkJCQkzRjJCMzNFQzE2NUFGMTU2MDBFMzk4N0MgLyogRE9NV2ViS2l0Q1NTVmlld3BvcnRSdWxl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M5MUEzOEYxQjQ5OEFCRTAwM0Y5RUZBIC8qIEpTTm9k
ZU9yU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg4NjIsNiArMjg4ODUsNyBAQAogCQkJ
CUE4NzFEQjJFMEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBODcxREIyOTBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ29s
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREIyODBBMTUwQkQ2MDBCMTJBNjgg
LyogSFRNTFRhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzg4Mzg5NjFCQUQx
NDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcx
REIyRDBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTg3MURCMzAwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVJvd0VsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0NDJDQTAwRDJCMzM2MDAwMzM4RkY5IC8qIEhU
TUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNzliNzQwYmU1ZTFhMjYw
MGM0MWQ3MzIxMjUxNWY4ZmYxMTJiZTk2Ni4uMzJhMDViNmM4MDI5ZWMyNjg2YzhmOGI5ZDc4ZmU1
MjgyMTA1MGE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0zMSwxMSArMzEsMTMgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3Rv
bS5oIgogI2luY2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8cnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9NaWNyb3Rh
c2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC01Niw3ICs1OCw3IEBAIHN0
YXRpYyBib29sIHNob3VsZEFsbG93QWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9iamVjdCogdGhp
c09iamVjdCwgRXhlY1N0YXRlKiBlCiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd0Jhc2U6
OnNfaW5mbyA9IHsgIldpbmRvdyIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTRE9NV2luZG93QmFzZSkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0g
eyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1Jp
Y2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVG
bGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3Jl
VGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9Owor
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9m
aWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAm
amF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50
ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVM
b2FkZXJGZXRjaCwgbnVsbHB0ciwgbnVsbHB0ciwgJm1vZHVsZUxvYWRlckV2YWx1YXRlIH07CiAK
IEpTRE9NV2luZG93QmFzZTo6SlNET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIFBhc3NSZWZQdHI8RE9NV2luZG93PiB3aW5kb3csIEpTRE9NV2luZG93U2hlbGwqIHNo
ZWxsKQogICAgIDogSlNET01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgJnNoZWxsLT53b3Js
ZCgpLCAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKQEAgLTI3OSw0ICsyODEsMzEgQEAgdm9p
ZCBKU0RPTVdpbmRvd0Jhc2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhE
T01XaW5kb3cqIHdpbmRvdykKICAgICB9CiB9CiAKKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVO
YW1lLCBKU0M6OkpTVmFsdWUgcmVmZXJyZXIpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlz
T2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAg
ICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkp
CisgICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xvYmFs
T2JqZWN0LCBleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFs
UHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZWpl
Y3QoZXhlYywganNVbmRlZmluZWQoKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpT
RE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSkK
K3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdp
bmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0
aGlzT2JqZWN0LT5pbXBsKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5t
b2R1bGVMb2FkZXIoKS0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXkpOworICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVy
biBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTVmFs
dWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9k
dWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkKQoreworICAgIEpTRE9NV2luZG93QmFz
ZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVj
dCk7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5kb2N1
bWVudCgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFsdWF0
ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkKTsKKyAgICByZXR1
cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDVlZDM4NjJj
MTQxMTg3YzAwNmI2ODhkYjc5Nzc5NGIzNjk4MTA1NjQuLjJkNDRiODAwOWU1NGRiYjA3NGU4Zjk5
NzdjMTZiMjVlMTI1N2VhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5oCkBAIC03OCw2ICs3OCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIEpTQzo6V2F0Y2hwb2ludFNldCBtX3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHM7CiAKICAgICBw
cml2YXRlOgorICAgICAgICAvLyBNb2R1bGUgTG9hZGVyIGhvb2tzLgorICAgICAgICBzdGF0aWMg
SlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Cisg
ICAgICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworICAg
ICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
KwogICAgICAgICBSZWZQdHI8RE9NV2luZG93PiBtX2ltcGw7CiAgICAgICAgIEpTRE9NV2luZG93
U2hlbGwqIG1fc2hlbGw7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKaW5kZXggMDllN2U1YjYwMjY4NzliNTMzNWExZmUx
ZWY3MWM0NDc0MzBiZmNkNC4uNGZkNjgzZTE1OTEwMmIxNTI4N2Q2Mzg5OWMwMTZlZmQzNzQ4MDNl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmgKQEAgLTc0LDYgKzc0LDI0IEBAIGNsYXNzIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSB7
CiAgICAgICAgIHRhc2sucnVuKGV4ZWMpOwogICAgIH0KIAorICAgIHN0YXRpYyBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJp
bmcmIG1vZHVsZU5hbWUpCisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3Vy
cmVudFN0YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIG1v
ZHVsZU5hbWUpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIHNv
dXJjZUNvZGUpCisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0
YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNv
ZGUpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5k
RXZhbHVhdGVNb2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgbW9kdWxlS2V5KQorICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJl
bnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bGlua0FuZEV2YWx1YXRlTW9kdWxl
KGV4ZWMsIG1vZHVsZUtleSk7CisgICAgfQorCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSBpbnN0cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBKU0M6OkNhbGxUeXBlLCBjb25zdCBKU0M6OkNhbGxEYXRhJik7CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZjMWM5OTZmMjNmZjZmOGZiN2Y2YWE0NzQ2MjU0NzU0MGI0ODQ0MTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcApAQCAtMCww
ICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJN
b2R1bGVGZXRjaGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiTW9k
dWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVk
ZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCisg
ICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQor
ICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QpCisg
ICAgLCBtX2RlZmVycmVkKGdsb2JhbE9iamVjdC0+dm0oKSwgZGVmZXJyZWQpCit7Cit9CisKK1Jl
ZjxNb2R1bGVGZXRjaGVyPiBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBNb2R1bGVGZXRjaGVyKGdsb2JhbE9iamVjdCwgc291cmNlVVJMLCBkZWZl
cnJlZCwgZG9jdW1lbnQpKTsKK30KKworYm9vbCBNb2R1bGVGZXRjaGVyOjpydW4oKQoreworICAg
IFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRl
ZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKKyAgICBvcHRpb25zLnNldENvbnRlbnRTZWN1
cml0eVBvbGljeUltcG9zaXRpb24oQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Q
b2xpY3lDaGVjayk7CisKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QobV9zb3VyY2VVUkwpLCBvcHRpb25zKTsKKworICAgIC8vIEZJWE1FOiBTaG91bGQg
aGFuZGxlICJjcm9zc29yaWdpbiIgb3B0aW9ucy4KKyAgICAvLyBPbmNlIHRoZSBzcGVjIGRlc2Ny
aWJlcyB0aGUgZGV0YWlscywgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgcmVxdWVzdC5zZXRJbml0
aWF0b3IoQXRvbWljU3RyaW5nKG1fc291cmNlVVJMLnN0cmluZygpKSk7CisKKyAgICBtX2NhY2hl
ZFNjcmlwdCA9IG1fZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0U2NyaXB0
KHJlcXVlc3QpOworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8vIE5vdGU6IElmIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlz
IGltbWVpZGF0ZWx5IGNhbGxzIG5vdGlmeUZpbmlzaGVkLgorICAgIG1fY2FjaGVkU2NyaXB0LT5h
ZGRDbGllbnQodGhpcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTW9kdWxlRmV0Y2hl
cjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIEFTU0VS
VF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fY2FjaGVkU2NyaXB0KTsKKyAgICBpZiAo
IW1fY2FjaGVkU2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9jYWNoZWRT
Y3JpcHQpOworICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisKKyNpZiBF
TkFCTEUoTk9TTklGRikKKyAgICBpZiAobV9jYWNoZWRTY3JpcHQgJiYgIW1fY2FjaGVkU2NyaXB0
LT5taW1lVHlwZUFsbG93ZWRCeU5vc25pZmYoKSkgeworICAgICAgICBtX2RvY3VtZW50LmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCAiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBmcm9tICciICsgbV9jYWNoZWRTY3JpcHQtPnVy
bCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicgYmVjYXVzZSBpdHMgTUlN
RSB0eXBlICgnIiArIG1fY2FjaGVkU2NyaXB0LT5taW1lVHlwZSgpICsgIicpIGlzIG5vdCBleGVj
dXRhYmxlLCBhbmQgc3RyaWN0IE1JTUUgdHlwZSBjaGVja2luZyBpcyBlbmFibGVkLiIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9k
b2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sobV9nbG9i
YWxPYmplY3QtPnZtKCkpOworICAgICAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIGlmIChtX2NhY2hlZFNjcmlwdC0+ZXJyb3JP
Y2N1cnJlZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZSBp
cyBjb25zdHJ1Y3RlZCBhcyBhIGNoYWluIG9mIHByb21pc2VzLgorICAgICAgICAgICAgLy8gUmVq
ZWN0aW5nIGEgcHJvbWlzZSBpZiBzb21lIGVycm9yIG9jY3VycyBpcyBpbXBvcnRhbnQgYmVjYXVz
ZSB0aGUgZXhlY3V0aW9uIGZsb3cgb2YKKyAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGNoYWlu
IGlzIGRyaXZlbiBieSAicmVqZWN0ZWQiIG9yICJmdWxmaWxsZWQiIGV2ZW50cy4KKyAgICAgICAg
ICAgIC8vIElmIHRoZSBwcm9taXNlIGlzIG5vdCByZWplY3RlZCB3aGlsZSBlcnJvciBvY2N1cnMs
IHJlamVjdCBoYW5kbGVyIHdvbid0IGJlIGV4ZWN1dGVkCisgICAgICAgICAgICAvLyBhbmQgYWxs
IHRoZSBzdWJzZXF1ZW50IHByb21pc2UgY2hhaW4gd2FpdCB0aGUgcmVzdWx0IGZvcmV2ZXIuCisg
ICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQXMgYSByZXN1bHQsIGV2ZW4gaWYgdGhlIGVy
cm9yIGlzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBlbHNld2hlcmUsCisgICAg
ICAgICAgICAvLyBpdCBzaG91bGQgYmUgcHJvcGFnYXRlZCBpbiB0aGUgcGlwZWxpbmUuIEZvciBl
eGFtcGxlLCB0aGUgZXJyb3Igb2YgbG9hZGluZworICAgICAgICAgICAgLy8gQ2FjaGVkUmVzb3Vy
Y2UgaXMgcmVwb3J0ZWQgYnkgdGhlIGxvYWRlci4gQnV0IHdlIG5lZWQgdG8gcmVqZWN0IHRoZSBw
cm9taXNlIGJ5IHNvbWUKKyAgICAgICAgICAgIC8vIGVycm9yLgorICAgICAgICAgICAgLy8KKyAg
ICAgICAgICAgIC8vIE5vdCB0byByZXBvcnQgdGhlIGVycm9yIHR3aWNlLCB3aGVuIHdlIHByb3Bh
Z2F0ZSB0aGUgZXJyb3IgdGhhdCBpcyBhbHJlYWR5IHJlcG9ydGVkCisgICAgICAgICAgICAvLyB0
byB0aGUgaW5zcGVjdG9yLCB3ZSB0aHJvdyBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJv
clN5bWJvbCBzeW1ib2wgaW5zdGVhZC4KKyAgICAgICAgICAgIC8vIEJ5IGNvbXBhcmluZyB0aGUg
dGhyb3duIGVycm9yIHdpdGggdGhpcyBzeW1ib2wsIHdlIGNhbiBkaXN0aW5ndWlzaCBlcnJvcnMg
cmFpc2VkCisgICAgICAgICAgICAvLyB3aGVuIGxpbmtpbmcgb3IgZXhlY3V0aW5nIGEgbW9kdWxl
IGdyYXBoIGZyb20gZXJyb3JzIHJlcG9ydGVkIGFscmVhZHkuCisgICAgICAgICAgICAvLyBJbiB0
aGUgcmVqZWN0IGhhbmRsZXIgb2YgdGhlIHByb21pc2UsIHdlIG9ubHkgcmVwb3J0IGEgZXJyb3Ig
dGhhdCBpcyBub3QgdGhpcyBzeW1ib2wuCisgICAgICAgICAgICBtX2RlZmVycmVkLT5yZWplY3Qo
ZXhlYywgSlNDOjpTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5t
b2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgICAg
ICB9IGVsc2UgaWYgKCFtX2NhY2hlZFNjcmlwdC0+d2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAg
ICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKG1fY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAg
ICAgICAgICAgIG1fZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgSlNDOjpqc1N0cmluZyhleGVjLCBz
b3VyY2VDb2RlLnNvdXJjZSgpKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgbV9jYWNoZWRTY3Jp
cHQgPSBudWxscHRyOworCisgICAgbV9kb2N1bWVudC5tb2R1bGVMb2FkZXIoKS0+bm90aWZ5Rmlu
aXNoZWQodGhpcyk7CisgICAgLy8gQWZ0ZXIgTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCBj
YWxsLCB8dGhpc3wgbWF5IGJlIGRlc3Ryb3llZC4KK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZGY5YmFlNjI0YWY4N2U1YWE4
M2I4MGZjMDI3YzhmNjVmNDZhZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgTW9kdWxlRmV0Y2hlcl9oCisjZGVmaW5lIE1vZHVsZUZldGNoZXJfaAorCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhh
bmRsZS5oIgorI2luY2x1ZGUgIlVSTC5oIgorI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRTY3JpcHQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNz
IEpTRE9NR2xvYmFsT2JqZWN0OworCitjbGFzcyBNb2R1bGVGZXRjaGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8TW9kdWxlRmV0Y2hlcj4sIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUZldGNoZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1vZHVsZUZldGNoZXI+IGNyZWF0ZShKU0RP
TUdsb2JhbE9iamVjdCosIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQqLCBEb2N1bWVudCYpOworCisgICAgYm9vbCBydW4oKTsKKworICAgIENhY2hl
ZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0K
KworcHJpdmF0ZToKKyAgICBNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3Qg
VVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50
Jik7CisKKyAgICAvLyBGb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBEb2N1bWVu
dCYgbV9kb2N1bWVudDsKKyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJvbmc8SlNE
T01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThmZTA3NTZjYzI5Zjlm
OWM0NDVhOWI3YjEyNWI5MjU5YzkwYzkxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1pY3Jv
VGFzay5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUg
PHJ1bnRpbWUvSlNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVMb2Fk
ZXI6Ok1vZHVsZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQorICAgICwgbV90aW1lcigqdGhpcywgJk1vZHVsZUxvYWRlcjo6dGltZXJGaXJlZCkK
K3sKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVOYW1lVmFsdWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlclZhbHVlKQor
eworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAg
IGlmIChtb2R1bGVOYW1lVmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIGRlZmVycmVk
LT5yZXNvbHZlKGV4ZWMsIG1vZHVsZU5hbWVWYWx1ZSk7CisKKyAgICAvLyBGSVhNRTogV2Ugbm93
IGFzc3VtZSB0aGF0IG1vZHVsZSBuYW1lIGlzIGVpdGhlciBzeW1ib2wgb3Igc3RyaW5nLgorICAg
IC8vIFdoZW4gZXhwb3NpbmcgdGhlIHJlZmxlY3Rpb24gdG8gdGhlIG1vZHVsZSBsb2FkZXIgYW5k
IG1vZHVsZXMsIHdlIG5lZWQgdG8gcmVjYXN0IHRoaXMgcGFydC4KKyAgICBBU1NFUlQobW9kdWxl
TmFtZVZhbHVlLmlzU3RyaW5nKCkpOworICAgIFN0cmluZyBtb2R1bGVOYW1lID0gSlNDOjpqc0Nh
c3Q8SlNDOjpKU1N0cmluZyo+KG1vZHVsZU5hbWVWYWx1ZSktPnZhbHVlKGV4ZWMpOworCisgICAg
Ly8gTm93LCB3ZSBjb25zaWRlciB0aGUgZ2l2ZW4gbW9kdWxlTmFtZSBhcyB0aGUgc2FtZSB0byB0
aGUgc3JjPSIuLi4iIGluIHRoZSBzY3JpcHQgdGFnLgorICAgIC8vIFdlIHVzZSB0aGUgY29tcGxl
dGVkIFVSTCBhcyB0aGUgbW9kdWxlIGtleS4KKyAgICAvLworICAgIC8vIEZJWE1FOiBXZSBuZWVk
IHNpdGUgcGFja2FnaW5nIHN5c3RlbS4gQnV0IGl0J3Mgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMg
eWV0LgorICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXItbG9h
ZGVyLXByb3RvdHlwZS0lNDAlNDByZXNvbHZlCisgICAgVVJMIGNvbXBsZXRlZFVSTDsKKworICAg
IC8vIEZJWE1FOiBDaGVjayBtX2RvY3VtZW50IGxpZmV0aW1lLgorICAgIGlmIChyZWZlcnJlclZh
bHVlLmlzU3ltYm9sKCkpCisgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxl
dGVVUkwobW9kdWxlTmFtZSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChyZWZlcnJlclZhbHVl
LmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNv
bXBsZXRlVVJMKG1vZHVsZU5hbWUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VS
VChyZWZlcnJlclZhbHVlLmlzU3RyaW5nKCkpOworICAgICAgICAgICAgU3RyaW5nIHJlZmVycmVy
ID0gSlNDOjpqc0Nhc3Q8SlNDOjpKU1N0cmluZyo+KHJlZmVycmVyVmFsdWUpLT52YWx1ZShleGVj
KTsKKyAgICAgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwobW9k
dWxlTmFtZSwgVVJMKFBhcnNlZFVSTFN0cmluZywgcmVmZXJyZXIpKTsKKyAgICAgICAgfQorICAg
IH0KKyAgICBpZiAoIWNvbXBsZXRlZFVSTC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBkZWZl
cnJlZC0+cmVqZWN0KGV4ZWMsIGNyZWF0ZURPTUV4Y2VwdGlvbihleGVjLCBTWU5UQVhfRVJSKSk7
CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhlYywganNTdHJpbmcoZXhlYywgY29t
cGxldGVkVVJMLnN0cmluZygpKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIE1vZHVs
ZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQoreworICAgIC8vIEZJ
WE1FOiBXaGVuIGltcGxlbWVudGluZyByZWZsZWN0aXZlIG1vZHVsZSBsb2FkZXIgYW5kIG1vZHVs
ZXMsIHdlIHNob3VsZCByZWNhc3QgdGhpcyBpbXBsZW1lbnRhdGlvbi4KKyAgICBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKworICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UoIW1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCksICJTeW1ib2xpYyBtb2R1bGUga2V5IHNo
b3VsZCBiZSBhbHJlYWR5IGZ1bGZpbGxlZCB3aXRoIHRoZSBpbmxpbmVkIHJlc291cmNlLiIpOwor
ICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKKworICAgIEpTQzo6SWRlbnRp
ZmllciBtb2R1bGVLZXkgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgYXNTdHJp
bmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7CisKKyAgICBVUkwgY29tcGxldGVkVVJM
KFBhcnNlZFVSTFN0cmluZywgbW9kdWxlS2V5LmltcGwoKSk7CisgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRShjb21wbGV0ZWRVUkwuaXNWYWxpZCgpLCAiVGhlIHJlc29sdmUgaG9vayBzaG91bGQgcHJv
ZHVjZSB0aGUgdmFsaWQgVVJMIGFzIGEgc3RyaW5nLiIpOworCisgICAgUmVmPE1vZHVsZUZldGNo
ZXI+IGZldGNoZXIgPSBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNDOjpqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBjb21wbGV0ZWRVUkwsIGRlZmVycmVkLCBtX2RvY3Vt
ZW50KTsKKyAgICBtX2ZldGNoaW5nU2V0LmFkZCgmZmV0Y2hlci5nZXQoKSk7CisgICAgaWYgKCFm
ZXRjaGVyLT5ydW4oKSkgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2N1bWVudC5m
cmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpT
eW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJB
bHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgIH0KKworICAgIHJldHVy
biBkZWZlcnJlZC0+cHJvbWlzZSgpOworfQorCitKU0M6OkpTVmFsdWUgTW9kdWxlTG9hZGVyOjpl
dmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6
SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlKQor
eworICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBKU01vZHVsZVJlY29y
ZC4KKyAgICBKU0M6OkpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBKU0M6OmpzRHluYW1p
Y0Nhc3Q8SlNDOjpKU01vZHVsZVJlY29yZCo+KG1vZHVsZVJlY29yZFZhbHVlKTsKKyAgICBpZiAo
IW1vZHVsZVJlY29yZCkKKyAgICAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKKworICAg
IFVSTCBzb3VyY2VVUkw7CisgICAgaWYgKG1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCkpCisgICAg
ICAgIHNvdXJjZVVSTCA9IG1fZG9jdW1lbnQudXJsKCk7CisgICAgZWxzZSB7CisgICAgICAgIEFT
U0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKKyAgICAgICAgc291cmNlVVJMID0gVVJM
KFBhcnNlZFVSTFN0cmluZywgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7
CisgICAgfQorCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAg
ICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsIG1v
ZHVsZVJlY29yZCk7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKwordm9pZCBN
b2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZUZldGNoZXIqIGZldGNoZXIpCit7Cisg
ICAgbV9mZXRjaGluZ1NldC5yZW1vdmUoZmV0Y2hlcik7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVy
Ojpub3RpZnlNb2R1bGVHcmFwaFJlYWR5KE1vZHVsZUdyYXBoKiBtb2R1bGVHcmFwaCkKK3sKKyAg
ICBtX21vZHVsZUdyYXBoc1RvRXhlY3V0ZS5hcHBlbmQoUGVuZGluZ01vZHVsZUdyYXBoIHsgJm1v
ZHVsZUdyYXBoLT5lbGVtZW50KCksIG1vZHVsZUdyYXBoIH0pOworICAgIG1fdGltZXIuc3RhcnRP
bmVTaG90KDApOworfQorCit2b2lkIE1vZHVsZUxvYWRlcjo6dGltZXJGaXJlZCgpCit7CisgICAg
UmVmPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOworICAgIFZlY3RvcjxQZW5kaW5nTW9k
dWxlR3JhcGg+IG1vZHVsZUdyYXBoczsKKyAgICBtb2R1bGVHcmFwaHMuc3dhcChtX21vZHVsZUdy
YXBoc1RvRXhlY3V0ZSk7CisKKyAgICBmb3IgKFBlbmRpbmdNb2R1bGVHcmFwaCYgcGVuZGluZ01v
ZHVsZUdyYXBoIDogbW9kdWxlR3JhcGhzKSB7CisgICAgICAgIHBlbmRpbmdNb2R1bGVHcmFwaC5t
b2R1bGVHcmFwaC0+ZXZhbHVhdGUoKTsKKyAgICAgICAgTWljcm9UYXNrUXVldWU6OnNpbmdsZXRv
bigpLnJ1bk1pY3JvVGFza3MoKTsKKyAgICAgICAgcGVuZGluZ01vZHVsZUdyYXBoLmNsZWFyKCk7
CisgICAgfQorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9N
b2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcxOGRlYTkyNGQ1MDlmOWI1Y2JkODg1YzQ1OWM5ZjVkMGQ1OGM3ZWUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIu
aApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVMb2FkZXJfaAor
I2RlZmluZSBNb2R1bGVMb2FkZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
Ik1vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorI2luY2x1ZGUgIlRp
bWVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50Owor
CitjbGFzcyBNb2R1bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUxv
YWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1v
ZHVsZUxvYWRlcihEb2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkKKyAgICB7
CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlcik7CisgICAgSlND
OjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSBt
b2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCisgICAgdm9pZCBub3RpZnlG
aW5pc2hlZChNb2R1bGVGZXRjaGVyKik7CisgICAgdm9pZCBub3RpZnlNb2R1bGVHcmFwaFJlYWR5
KE1vZHVsZUdyYXBoKik7CisKKyAgICB2b2lkIHRpbWVyRmlyZWQoKTsKKworICAgIHN0cnVjdCBQ
ZW5kaW5nTW9kdWxlR3JhcGggeworICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudDsKKyAg
ICAgICAgUmVmUHRyPE1vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaDsKKworICAgICAgICB2b2lkIGNs
ZWFyKCkKKyAgICAgICAgeworICAgICAgICAgICAgZWxlbWVudCA9IG51bGxwdHI7CisgICAgICAg
ICAgICBtb2R1bGVHcmFwaCA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9OworCitwcml2YXRl
OgorICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIEhhc2hTZXQ8UmVmUHRyPE1vZHVsZUZl
dGNoZXI+PiBtX2ZldGNoaW5nU2V0OworICAgIFZlY3RvcjxQZW5kaW5nTW9kdWxlR3JhcGg+IG1f
bW9kdWxlR3JhcGhzVG9FeGVjdXRlOworICAgIFRpbWVyIG1fdGltZXI7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1bGVMb2FkZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA0YjNiMDk3MmJl
NzdmM2M3NjU5NWYxNDBlMjZhNzQ4ZmY4ZWE0NTBjLi43NGRlODgyNzE2ZGY5YzZmYTFjYjU0NTgw
NzdhYTkwOTNlODZlZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTTWFpblRocmVh
ZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk1lbW9yeVBy
ZXNzdXJlSGFuZGxlci5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCiAjaW5jbHVkZSAiTlBf
anNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGll
bnQuaCIKQEAgLTU0LDcgKzU1LDExIEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxT
dGFjay5oPgogI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogCkBAIC04Niw2ICs5MSw3
IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xsZXIoRnJhbWUmIGZyYW1lKQogICAg
IDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fc291cmNlVVJMKDApCiAgICAgLCBtX3BhdXNlZChm
YWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKQog
I2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV93aW5kb3dTY3JpcHROUE9i
amVjdCgwKQogI2VuZGlmCkBAIC0xNzUsMTEgKzE4MSwxMzQgQEAgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUKICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0
dXJuVmFsdWUpOwogfQogCi1EZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVy
OjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKSAKK0RlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3Vy
Y2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiB9CiAKK0pTRnVuY3Rpb24qIFNjcmlw
dENvbnRyb2xsZXI6OmNyZWF0ZU1vZHVsZUxvYWRlckFzeW5jaHJvbm91c0Vycm9yUmVwb3J0RnVu
Y3Rpb24oTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQor
eworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAg
IEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAg
V2Vha1B0cjxNb2R1bGVHcmFwaD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrUHRyKCkpOworICAg
IFByaXZhdGVOYW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sID0gbV9t
b2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICByZXR1cm4gSlNOYXRp
dmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3Ry
aW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCwgd2Vha1B0cl0o
RXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIEpTVmFsdWUgZXJyb3IgPSBleGVjLT5hcmd1bWVu
dCgwKTsKKworICAgICAgICBpZiAoUmVmUHRyPE1vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaCA9IHdl
YWtQdHIuZ2V0KCkpCisgICAgICAgICAgICBtb2R1bGVHcmFwaC0+bm90aWZ5RXJyb3JlZCgpOwor
CisgICAgICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3IgaXMgbWFya2VkIGFzIG1vZHVsZUxvYWRl
ckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAgICAgICAvLyBEb24ndCByZXBvcnQgaXQg
aGVyZSBhZ2Fpbi4KKyAgICAgICAgaWYgKFN5bWJvbCogc3ltYm9sID0ganNEeW5hbWljQ2FzdDxT
eW1ib2wqPihlcnJvcikpIHsKKyAgICAgICAgICAgIGlmIChzeW1ib2wtPnByaXZhdGVOYW1lKCkg
PT0gbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfQorCisg
ICAgICAgIC8vIEZJWE1FOiBCZWNhdXNlIHdlIGhhdmUgbm90IHN1cHBvcnRlZCB0aGUgImNyb3Nz
b3JpZ2luIiBhdHRyaWJ1dGUgaW4gdGhlIG1vZHVsZSB0YWcsCisgICAgICAgIC8vIHdlIHBhc3Mg
dGhlIG51bGxwdHIgdG8gcmVwb3J0RXhjZXB0aW9uJ3MgQ2FjaGVkU2NyaXB0KiBwYXJhbWV0ZXIu
IFdoZW4gcGFzc2luZyBudWxscHRyCisgICAgICAgIC8vIHRvIHJlcG9ydEV4Y2VwdGlvbiwgV2Vi
Q29yZSBkb2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVycm9yIGlmIHRoZSBVUkwgb2Yg
dGhlCisgICAgICAgIC8vIHNvdXJjZSBkb2VzIG5vdCBwYXNzIHRoZSBzYW1lIG9yaWdpbiBwb2xp
Y3kuIFNvIHRoZSBjdXJyZW50IGJlaGF2aW9yIGlzIGNvbnNlcnZhdGl2ZTsKKyAgICAgICAgLy8g
b25seSB0aGUgbW9kdWxlIGNvZGUgdGhhdCBVUkwgaXMgd2l0aGluIHRoZSBzYW1lIG9yaWdpbiBj
YW4gcmVwb3J0IHRoZSBkZXRhaWxzIG9mIHRoZQorICAgICAgICAvLyBlcnJvci4gT25jZSB0aGUg
c3BlYyBkZXNjcmliZXMgdGhlIGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICAgICAg
cmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGVycm9yLCBudWxscHRyKTsKKworICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworfQorCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwg
Y29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAg
IEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCog
c2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwt
PndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0TW9kdWxlR3JhcGgobW9kdWxlR3Jh
cGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKSwg
d29ybGQpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3Jh
cGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgbG9hZE1v
ZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChNb2R1
bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUs
IERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQu
dm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxk
KTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsK
KworICAgIGluaXRNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0YXRl
Ojpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCkpLCB3b3JsZCk7Cit9
CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxl
R3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgbG9hZE1v
ZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJ
bldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkK
K3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93
U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2Uq
IHByb21pc2UgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShl
eGVjLCBtb2R1bGVHcmFwaC5tb2R1bGVLZXkoKSk7CisKKyAgICBXZWFrUHRyPE1vZHVsZUdyYXBo
PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtQdHIoKSk7CisgICAgSlNGdW5jdGlvbiogZnVsZmls
bEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwt
PndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dlYWtQdHJdKEV4ZWNTdGF0ZSopIHsKKyAgICAgICAg
aWYgKFJlZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRyLmdldCgpKQorICAg
ICAgICAgICAgbW9kdWxlR3JhcGgtPm5vdGlmeUV4ZWN1dGVkKCk7CisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBwcm9taXNlLT50
aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCBjcmVhdGVNb2R1bGVMb2FkZXJBc3luY2hyb25vdXNF
cnJvclJlcG9ydEZ1bmN0aW9uKG1vZHVsZUdyYXBoLCB3b3JsZCkpOworfQorCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3Jh
cGgpCit7CisgICAgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFwaCwgbWFp
blRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3Jp
cHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1
bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBK
U0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIGNvbnN0IFNvdXJjZUNvZGUmIGpz
U291cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29kZSgpOworCisgICAgSlNET01XaW5k
b3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVj
ID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisgICAgY29uc3QgU3RyaW5nKiBzYXZl
ZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTC5z
dHJpbmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKKworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwsIGpzU291cmNlQ29kZS5m
aXJzdExpbmUoKSk7CisKKyAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gbW9kdWxlUmVjb3JkLT5l
dmFsdWF0ZShleGVjKTsKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRp
b247CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICBldmFsdWF0aW9uRXhj
ZXB0aW9uID0gZXhlYy0+dm0oKS5leGNlcHRpb24oKTsKKworICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llLCBtX2ZyYW1lKTsKKworICAgIGlmIChl
dmFsdWF0aW9uRXhjZXB0aW9uKSB7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBldmFs
dWF0aW9uRXhjZXB0aW9uLCBudWxscHRyKTsKKyAgICAgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNv
dXJjZVVSTDsKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKCk7CisgICAg
fQorCisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICByZXR1cm4gRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOworfQorCitEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBV
UkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCkKK3sKKyAgICByZXR1
cm4gZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQsIG1haW5UaHJlYWROb3Jt
YWxXb3JsZCgpKTsKK30KKwogUmVmPERPTVdyYXBwZXJXb3JsZD4gU2NyaXB0Q29udHJvbGxlcjo6
Y3JlYXRlV29ybGQoKQogewogICAgIHJldHVybiBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RP
TVdpbmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0yNzIsNiArNDAxLDMyIEBAIEpTRE9NV2luZG93U2hl
bGwqIFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkK
ICAgICByZXR1cm4gd2luZG93U2hlbGw7CiB9CiAKK3N0YXRpYyBJZGVudGlmaWVyIGpzVmFsdWVU
b01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZh
bHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tVWlkKGpzQ2Fz
dDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCh2YWx1ZS5pc1N0
cmluZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBqc0Nhc3Q8
SlNTdHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9s
bGVyOjppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBKU0ludGVybmFs
UHJvbWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdp
bmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4
ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8TW9kdWxl
R3JhcGg+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha1B0cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBm
dWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBz
aGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7
CisgICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQgZWxlbWVudCBhbmQgZG9jdW1lbnQgbWF5
IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUgbW9kdWxlLgorICAgICAgICAvLyBJbiB0
aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBtb2R1bGUgYm9keS4KKyAgICAgICAgaWYg
KFJlZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRyLmdldCgpKSB7CisgICAg
ICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtleShleGVjLCBl
eGVjLT5hcmd1bWVudCgwKSk7CisgICAgICAgICAgICBtb2R1bGVHcmFwaC0+bm90aWZ5TG9hZGVk
KG1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisgICAgcHJvbWlzZS0+dGhlbihleGVjLCBm
dWxmaWxsSGFuZGxlciwgY3JlYXRlTW9kdWxlTG9hZGVyQXN5bmNocm9ub3VzRXJyb3JSZXBvcnRG
dW5jdGlvbihtb2R1bGVHcmFwaCwgd29ybGQpKTsKK30KKwogVGV4dFBvc2l0aW9uIFNjcmlwdENv
bnRyb2xsZXI6OmV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTog
SWYgd2UgYXJlIG5vdCBjdXJyZW50bHkgcGFyc2luZywgd2Ugc2hvdWxkIHVzZSBvdXIgY3VycmVu
dCBsb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5oCmluZGV4IDA3YzUzYjdjOGVkZmI0ZTI4ZjVjYTEzYWEyYzRlMDU1OTRlZjUxMjIuLjlhMzE5
MzNjNzQxODIyZWZhNzQ3YjlkOWIyZjIyODc3Y2RhN2FlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTQ0LDYgKzQ0LDkgQEAgY2xhc3Mg
U2NyaXB0VmFsdWU7CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OworICAgIGNsYXNzIEpTTW9kdWxlUmVjb3JkOworICAgIGNsYXNzIEpTSW50ZXJuYWxQcm9taXNl
OworCiAgICAgY2xhc3MgRXhlY1N0YXRlOwogCiAgICAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKQEAg
LTU3LDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRnJhbWU7CiBjbGFzcyBI
VE1MRG9jdW1lbnQ7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2NsYXNzIE1vZHVsZUdyYXBo
OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3Mg
V2lkZ2V0OwpAQCAtMTE1LDYgKzExOSwxNyBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAg
ICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
Jik7CiAgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmKTsKIAorICAgIHZvaWQgbG9hZE1vZHVs
ZUluV29ybGQoTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIERPTVdyYXBw
ZXJXb3JsZCYpOworICAgIHZvaWQgbG9hZE1vZHVsZShNb2R1bGVHcmFwaCYsIGNvbnN0IFN0cmlu
ZyYgbW9kdWxlTmFtZSk7CisgICAgdm9pZCBsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYs
IGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGxv
YWRNb2R1bGUoTW9kdWxlR3JhcGgmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisKKyAgICB2
b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmICwgRE9NV3JhcHBl
cldvcmxkJik7CisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoTW9kdWxlR3JhcGgmKTsK
KworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYs
IEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICBEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpTTW9kdWxlUmVj
b3JkKik7CisKICAgICBXVEY6OlRleHRQb3NpdGlvbiBldmVudEhhbmRsZXJQb3NpdGlvbigpIGNv
bnN0OwogCiAgICAgdm9pZCBlbmFibGVFdmFsKCk7CkBAIC0xMzUsNiArMTUwLDggQEAgY2xhc3Mg
U2NyaXB0Q29udHJvbGxlciB7CiAKICAgICBjb25zdCBTdHJpbmcqIHNvdXJjZVVSTCgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9IC8vIDAgaWYgd2UgYXJlIG5vdCBldmFsdWF0aW5nIGFu
eSBzY3JpcHQKIAorICAgIGNvbnN0IEpTQzo6UHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFscmVh
ZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVMb2FkZXJBbHJl
YWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsgfQorCiAgICAgdm9pZCBjbGVhcldpbmRvd1NoZWxsKERP
TVdpbmRvdyogbmV3RE9NV2luZG93LCBib29sIGdvaW5nSW50b1BhZ2VDYWNoZSk7CiAgICAgdm9p
ZCB1cGRhdGVEb2N1bWVudCgpOwogCkBAIC0xNzAsNiArMTg3LDggQEAgY2xhc3MgU2NyaXB0Q29u
dHJvbGxlciB7CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3dTaGVs
bCogaW5pdFNjcmlwdChET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGluaXRNb2R1bGVHcmFw
aChNb2R1bGVHcmFwaCYsIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqLCBET01XcmFwcGVyV29ybGQm
KTsKKyAgICBKU0M6OkpTRnVuY3Rpb24qIGNyZWF0ZU1vZHVsZUxvYWRlckFzeW5jaHJvbm91c0Vy
cm9yUmVwb3J0RnVuY3Rpb24oTW9kdWxlR3JhcGgmLCBET01XcmFwcGVyV29ybGQmKTsKIAogICAg
IHZvaWQgZGlzY29ubmVjdFBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwogCkBAIC0xNzgsNiArMTk3
LDcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAgICAgY29uc3QgU3RyaW5nKiBtX3NvdXJj
ZVVSTDsKIAogICAgIGJvb2wgbV9wYXVzZWQ7CisgICAgSlNDOjpQcml2YXRlTmFtZSBtX21vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOwogCiAgICAgLy8gVGhlIHJvb3Qgb2Jq
ZWN0IHVzZWQgZm9yIG9iamVjdHMgYm91bmQgb3V0c2lkZSB0aGUgY29udGV4dCBvZiBhIHBsdWdp
biwgc3VjaAogICAgIC8vIGFzIE5QQVBJIHBsdWdpbnMuIFRoZSBwbHVnaW5zIHVzaW5nIHRoZXNl
IG9iamVjdHMgcHJldmVudCBhIHBhZ2UgZnJvbSBiZWluZyBjYWNoZWQgc28gdGhleQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggMjE3OTNjMjJmMDUzZmI3YjA2NTY4MTdjZmM3ZGFiMzE4NGFl
OGJkNC4uMzg2MWZlODUzYjBlYjkyNmFkNWM3MDljMzM5M2Q5NmU2NDU1ZWJkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAKICNpbmNsdWRlICJNZWRpYVByb2R1
Y2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5
TWF0Y2hlci5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIk1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMuaCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKICNpbmNs
dWRlICJOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIgpAQCAtNDYxLDYgKzQ2Miw3IEBAIERvY3Vt
ZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1bnNpZ25lZCBkb2N1
bWVudENsYXNzZXMsIHVuc2lnCiAgICAgLCBtX3N0YXJ0VGltZShzdGQ6OmNocm9ubzo6c3RlYWR5
X2Nsb2NrOjpub3coKSkKICAgICAsIG1fb3Zlck1pbmltdW1MYXlvdXRUaHJlc2hvbGQoZmFsc2Up
CiAgICAgLCBtX3NjcmlwdFJ1bm5lcihzdGQ6Om1ha2VfdW5pcXVlPFNjcmlwdFJ1bm5lcj4oKnRo
aXMpKQorICAgICwgbV9tb2R1bGVMb2FkZXIoc3RkOjptYWtlX3VuaXF1ZTxNb2R1bGVMb2FkZXI+
KCp0aGlzKSkKICAgICAsIG1feG1sVmVyc2lvbihBU0NJSUxpdGVyYWwoIjEuMCIpKQogICAgICwg
bV94bWxTdGFuZGFsb25lKFN0YW5kYWxvbmVVbnNwZWNpZmllZCkKICAgICAsIG1faGFzWE1MRGVj
bGFyYXRpb24oZmFsc2UpCkBAIC02MDIsNiArNjA0LDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgp
CiAgICAgICAgIG1fZG9tV2luZG93LT5yZXNldFVubGVzc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSgp
OwogCiAgICAgbV9zY3JpcHRSdW5uZXIgPSBudWxscHRyOworICAgIG1fbW9kdWxlTG9hZGVyID0g
bnVsbHB0cjsKIAogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggNzRjZWFhOTZiYzkyZjQ3ODE3Y2ViYjVmM2NmOTM5MGExOWE3N2Q2OS4uZjU3
YzQxMzFmZGNlNTVjY2NkNGU2MDgwZGJiNTE5NTNjNGIyN2MzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKQEAgLTEyOCw2ICsxMjgsNyBAQCBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xhc3Mg
TWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3Mg
TWVkaWFRdWVyeU1hdGNoZXI7CitjbGFzcyBNb2R1bGVMb2FkZXI7CiBjbGFzcyBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRGbG93Q29sbGVjdGlvbjsKIGNsYXNzIE5v
ZGVGaWx0ZXI7CkBAIC05MjcsNiArOTI4LDcgQEAgY2xhc3MgRG9jdW1lbnQgOiBwdWJsaWMgQ29u
dGFpbmVyTm9kZSwgcHVibGljIFRyZWVTY29wZSwgcHVibGljIFNjcmlwdEV4ZWN1dGlvbkMKICAg
ICBEb2N1bWVudCYgdG9wRG9jdW1lbnQoKSBjb25zdDsKICAgICAKICAgICBTY3JpcHRSdW5uZXIq
IHNjcmlwdFJ1bm5lcigpIHsgcmV0dXJuIG1fc2NyaXB0UnVubmVyLmdldCgpOyB9CisgICAgTW9k
dWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIoKSB7IHJldHVybiBtX21vZHVsZUxvYWRlci5nZXQoKTsg
fQogCiAgICAgSFRNTFNjcmlwdEVsZW1lbnQqIGN1cnJlbnRTY3JpcHQoKSBjb25zdCB7IHJldHVy
biAhbV9jdXJyZW50U2NyaXB0U3RhY2suaXNFbXB0eSgpID8gbV9jdXJyZW50U2NyaXB0U3RhY2su
bGFzdCgpLmdldCgpIDogMDsgfQogICAgIHZvaWQgcHVzaEN1cnJlbnRTY3JpcHQoUGFzc1JlZlB0
cjxIVE1MU2NyaXB0RWxlbWVudD4pOwpAQCAtMTUxMCw2ICsxNTEyLDcgQEAgY2xhc3MgRG9jdW1l
bnQgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSwgcHVibGljIFRyZWVTY29wZSwgcHVibGljIFNjcmlw
dEV4ZWN1dGlvbkMKICAgICBib29sIG1fb3Zlck1pbmltdW1MYXlvdXRUaHJlc2hvbGQ7CiAgICAg
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdFJ1bm5lcj4gbV9zY3JpcHRSdW5uZXI7CisgICAg
c3RkOjp1bmlxdWVfcHRyPE1vZHVsZUxvYWRlcj4gbV9tb2R1bGVMb2FkZXI7CiAKICAgICBWZWN0
b3I8UmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50Pj4gbV9jdXJyZW50U2NyaXB0U3RhY2s7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW9kdWxlR3JhcGguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkZjE3MWJhN2RjMWMyNWY3MDhm
MDI4YWI4N2RjN2EzMTI5YzQzMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTW9kdWxlR3JhcGguY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKworI2luY2x1ZGUgIkRPTVdy
YXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIk1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNs
dWRlICJTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUdyYXBoOjpNb2R1bGVHcmFwaChFbGVtZW50JiBl
bGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCisgICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCit7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6Om5vdGlmeUxvYWRlZChVbmlxdWVkU3Ry
aW5nSW1wbCogbW9kdWxlS2V5KQoreworICAgIG1fbW9kdWxlS2V5ID0gbW9kdWxlS2V5OworICAg
IG1fZWxlbWVudC5kb2N1bWVudCgpLm1vZHVsZUxvYWRlcigpLT5ub3RpZnlNb2R1bGVHcmFwaFJl
YWR5KHRoaXMpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpub3RpZnlFcnJvcmVkKCkKK3sKKyAg
ICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaEVycm9yRXZl
bnQoKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXhlY3V0ZWQoKQoreworICAgIHRv
U2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1fZWxlbWVudCktPmRpc3BhdGNoTG9hZEV2ZW50KCk7
Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6OmV2YWx1YXRlKCkKK3sKKyAgICBpZiAoRnJhbWUqIGZy
YW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUtPnNjcmlw
dCgpLmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSgqdGhpcyk7Cit9CisKK1JlZjxNb2R1bGVHcmFwaD4g
TW9kdWxlR3JhcGg6OmNyZWF0ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG1vZHVs
ZU5hbWUpCit7CisgICAgQVNTRVJUKGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBS
ZWY8TW9kdWxlR3JhcGg+IG1vZHVsZUdyYXBoID0gYWRvcHRSZWYoKm5ldyBNb2R1bGVHcmFwaChl
bGVtZW50KSk7CisgICAgZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgpLmxvYWRN
b2R1bGUobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUpOworICAgIHJldHVybiBtb2R1bGVHcmFwaDsK
K30KKworUmVmPE1vZHVsZUdyYXBoPiBNb2R1bGVHcmFwaDo6Y3JlYXRlKEVsZW1lbnQmIGVsZW1l
bnQsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgQVNTRVJUKGVs
ZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBSZWY8TW9kdWxlR3JhcGg+IG1vZHVsZUdy
YXBoID0gYWRvcHRSZWYoKm5ldyBNb2R1bGVHcmFwaChlbGVtZW50KSk7CisgICAgZWxlbWVudC5k
b2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgpLmxvYWRNb2R1bGUobW9kdWxlR3JhcGgsIHNvdXJj
ZUNvZGUpOworICAgIHJldHVybiBtb2R1bGVHcmFwaDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxl
R3JhcGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mMGExNDczYjQ0NDlhYTlhMjRhMmQwMGJhNzQ1MDkxNjA0NDUx
OTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgK
QEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9kdWxlR3JhcGhfaAorI2Rl
ZmluZSBNb2R1bGVHcmFwaF9oCisKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVk
ZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRWxlbWVudDsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CisKK2NsYXNzIE1vZHVsZUdy
YXBoIDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlR3JhcGg+IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShNb2R1bGVHcmFwaCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8TW9kdWxlR3JhcGg+IGNyZWF0ZShFbGVtZW50JiwgY29uc3QgU3RyaW5n
JiBtb2R1bGVOYW1lKTsKKyAgICBzdGF0aWMgUmVmPE1vZHVsZUdyYXBoPiBjcmVhdGUoRWxlbWVu
dCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7
IHJldHVybiBtX2VsZW1lbnQ7IH0KKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkg
eyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KKworICAgIHZvaWQgZXZhbHVhdGUoKTsKKwor
ICAgIFdlYWtQdHI8TW9kdWxlR3JhcGg+IHdlYWtQdHIoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIH0KKworICAgIHZvaWQgbm90
aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkpOworICAgIHZvaWQgbm90aWZ5
RXJyb3JlZCgpOworICAgIHZvaWQgbm90aWZ5RXhlY3V0ZWQoKTsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBNb2R1bGVHcmFwaChFbGVtZW50Jik7CisKKyAgICBFbGVtZW50JiBtX2VsZW1lbnQ7
CisgICAgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiBtX21vZHVsZUtleTsKKyAgICBXZWFrUHRy
RmFjdG9yeTxNb2R1bGVHcmFwaD4gbV93ZWFrUHRyRmFjdG9yeTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUxvYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKaW5kZXggNjZiYmVjZTFkMzVlMWE0NzYzYmY5ZWJlYmYwZjBjMTJjZGJl
ZjFkNy4uZWE2ZDYyNWUzZDNhNjM4Y2JjNGFlMzQ4MDBlNTQ4ZWI3NzJhYzJiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkhU
TUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJ
bmNyZW1lbnRlci5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJN
b2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgog
I2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIKQEAgLTE2MSw2ICsxNjIsMTAgQEAgYm9vbCBT
Y3JpcHRFbGVtZW50Ojppc1NjcmlwdFR5cGVTdXBwb3J0ZWQoTGVnYWN5VHlwZVN1cHBvcnQgc3Vw
cG9ydExlZ2FjeVR5cGVzKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlm
IChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh0eXBlLnN0
cmlwV2hpdGVTcGFjZSgpLmxvd2VyKCkpIHx8IChzdXBwb3J0TGVnYWN5VHlwZXMgPT0gQWxsb3dM
ZWdhY3lUeXBlSW5UeXBlQXR0cmlidXRlICYmIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlwdExh
bmd1YWdlKHR5cGUpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CisjaWYgRU5BQkxFKEVTNl9NT0RV
TEVTKQorICAgIGVsc2UgaWYgKHR5cGUgPT0gIm1vZHVsZSIpCisgICAgICAgIHJldHVybiB0cnVl
OworI2VuZGlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0yMTcsNiArMjIyLDkgQEAgYm9v
bCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0
U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBlbHNlCiAgICAgICAgIG1fY2hhcmFjdGVyRW5jb2Rp
bmcgPSBkb2N1bWVudC5jaGFyc2V0KCk7CiAKKyAgICBpZiAoaXNNb2R1bGVUeXBlKCkpCisgICAg
ICAgIHJldHVybiBsb2FkTW9kdWxlKHNjcmlwdFN0YXJ0UG9zaXRpb24pOworCiAgICAgaWYgKGhh
c1NvdXJjZUF0dHJpYnV0ZSgpKQogICAgICAgICBpZiAoIXJlcXVlc3RTY3JpcHQoc291cmNlQXR0
cmlidXRlVmFsdWUoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMTcsNiArMzI1
LDkgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpzdG9wTG9hZFJlcXVlc3QoKQogICAgICAgICAgICAg
bV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKICAgICAgICAgbV9jYWNoZWRTY3Jp
cHQgPSAwOwogICAgIH0KKyAgICAvLyBGSVhNRTogVGhlIG1vZHVsZSBsb2FkZXIgc2hvdWxkIGhh
dmUgdGhlIG1lY2hhbmlzbSB0byBzdG9wIGxvYWRpbmcuCisgICAgLy8gVGhlIGN1cnJlbnQgbG9h
ZGVyIHNwZWMgZG9lcyBub3QgaGF2ZSB0aGlzLiBPbmNlIGl0IGlzIHNwZWNpZmllZAorICAgIC8v
IHdlIHdpbGwgaW50cm9kdWNlIHRoaXMgZmVhdHVyZS4KIH0KIAogdm9pZCBTY3JpcHRFbGVtZW50
OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQpAQCAtMzMyLDYgKzM0Myw1MiBA
QCB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQp
CiAgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CiB9CiAKK2Jvb2wgU2NyaXB0
RWxlbWVudDo6bG9hZE1vZHVsZShjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRp
b24pCit7CisgICAgLy8gVGhlIGJyb3dzZXIgbW9kdWxlIGxvYWRlciBsb2FkcyB0aGUgbW9kdWxl
IHNvdXJjZXMuCisgICAgLy8gU2luY2UgdGhlIG1vZHVsZSBpbnZvbHZlcyBsb2FkaW5nIG9mIHRo
ZSBkZXBlbmRlbnQgbW9kdWxlcyBhbmQgdGhlIGRlcGVuZGVudCBtb2R1bGVzIGRvZXMgbm90IGhh
dmUgY29ycmVzcG9uZGluZyBzY3JpcHQgZWxlbWVudHMsCisgICAgLy8gdGhlIGZ1bmN0aW9uYWxp
dHkgb2YgbG9hZGluZyBtb2R1bGVzIGlzIHNlcGFyYXRlZCBmcm9tIHRoZSBzY3JpcHQgZWxlbWVu
dC4KKyAgICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpIHsKKyAgICAgICAgU3RyaW5nIHNvdXJj
ZVVybCA9IHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCk7CisgICAgICAgIFJlZjxEb2N1bWVudD4gb3Jp
Z2luYWxEb2N1bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7CisgICAgICAgIGlmICghbV9lbGVt
ZW50LmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KHNvdXJjZVVybCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgLy8gU2NyaXB0IGVsZW1lbnQgbWF5IGJlIGRldGFjaGVkIGFu
ZCBhdHRhY2hlZCB0byBhIGRpZmZlcmVudCBkb2N1bWVudCB3aGlsZSBleGVjdXRpbmcgdGhlIGV2
ZW50IGxpc3RlbmVyLgorICAgICAgICBpZiAoIW1fZWxlbWVudC5pbkRvY3VtZW50KCkgfHwgJm1f
ZWxlbWVudC5kb2N1bWVudCgpICE9IG9yaWdpbmFsRG9jdW1lbnQucHRyKCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRN
TFNwYWNlcyhzb3VyY2VVcmwpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hFcnJv
ckV2ZW50KCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAg
ICAvLyBGSVhNRTogU2hvdWxkIHN1cHBvcnQgY3Jvc3Mtb3JpZ2luIG1vZGUgaW4gdGhlIG1vZHVs
ZSB0YWcuCisgICAgICAgIC8vIEhvd2V2ZXIgd2UgZG9uJ3QgaGF2ZSB0aGUgcG9saWN5IHRvIGFw
cGx5IHRoaXMgbW9kZSB0byB0aGUgcmVzb3VyY2VzIG9mIHRoZSBkZXBlbmRlbnQgbW9kdWxlcy4K
KyAgICAgICAgLy8gUHJvdmlkZWQgbXVsdGlwbGUgbW9kdWxlIHRhZ3MsCisgICAgICAgIC8vCisg
ICAgICAgIC8vICAgQTogPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi4uIiBjcm9zc29yaWdp
bj0iYW5vbnltb3VzIj48L3NjcmlwdD4KKyAgICAgICAgLy8gICBCOiA8c2NyaXB0IHR5cGU9Im1v
ZHVsZSIgc3JjPSIuLi4iPjwvc2NyaXB0PgorICAgICAgICAvLworICAgICAgICAvLyAnQScgaGFz
IHRoZSAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZS4gQnV0ICdCJyBkb2VzIG5vdCBoYXZlIGl0Lgor
ICAgICAgICAvLyBIb3dldmVyLCBFUzYgbW9kdWxlcyBhbGxvdyAnQScgYW5kICdCJyB0byBsb2Fk
IHRoZSBzYW1lIG1vZHVsZSBhbmQgaXQgd2lsbCBiZSBjYWNoZWQgaW4gdGhlCisgICAgICAgIC8v
IG1vZHVsZSBsb2FkZXIuIEluIHRoYXQgY2FzZSwgaXQgaXMgY29udHJvdmVyc2lhbCB0aGF0IHdo
aWNoICJjcm9zc29yaWdpbiIgYXR0cmlidXRlIHdpbGwgYmUKKyAgICAgICAgLy8gYXBwbGllZCB0
byB0aGUgbW9kdWxlIGxvYWRlZCBieSB0aGUgYm90aC4gT25jZSB0aGUgc3BlYyBvZiB0aGUgbW9k
dWxlIGxvYWRlciBpcyBmaXhlZCwgd2UKKyAgICAgICAgLy8gc2hvdWxkIGZvbGxvdyBpdC4KKwor
ICAgICAgICBtX21vZHVsZUdyYXBoID0gTW9kdWxlR3JhcGg6OmNyZWF0ZShtX2VsZW1lbnQsIHNv
dXJjZUF0dHJpYnV0ZVZhbHVlKCkpOworICAgICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVl
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIW1fZWxlbWVudC5kb2N1
bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZVNjcmlwdChtX2VsZW1l
bnQuZG9jdW1lbnQoKS51cmwoKSwgbV9zdGFydExpbmVOdW1iZXIsIG1fZWxlbWVudC5pc0luVXNl
ckFnZW50U2hhZG93VHJlZSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgLy8gUmVzZXQg
bGluZSBudW1iZXJpbmcgZm9yIG5lc3RlZCB3cml0ZXMuCisgICAgVGV4dFBvc2l0aW9uIHBvc2l0
aW9uID0gbV9lbGVtZW50LmRvY3VtZW50KCkuaXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3Np
dGlvbigpIDogc2NyaXB0U3RhcnRQb3NpdGlvbjsKKyAgICBtX21vZHVsZUdyYXBoID0gTW9kdWxl
R3JhcGg6OmNyZWF0ZShtX2VsZW1lbnQsIFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0Q29udGVudCgp
LCBtX2VsZW1lbnQuZG9jdW1lbnQoKS51cmwoKSwgcG9zaXRpb24pKTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogdm9pZCBTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCiB7CiAgICAgQVNTRVJUKCFtX3dpbGxCZVBhcnNlckV4ZWN1dGVkKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5oCmluZGV4IGI3ZTczZDBkZWU4M2QzMjRlODcyZjdiYzRj
MWI5MzNkYzk2YzExMmEuLjc0YjM0MjAzMDkwNzJjOTBkODc1NjVmZjI5MmFkYjA4MGE4YTkwNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDb250YWluZXJOb2RlOwog
Y2xhc3MgRWxlbWVudDsKK2NsYXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0RWxlbWVudDsK
IGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiAKQEAgLTgyLDYgKzgzLDggQEAgY2xhc3MgU2NyaXB0
RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgcmVxdWVz
dFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7CiAgICAgdm9pZCBzdG9wTG9hZFJlcXVl
c3QoKTsKIAorICAgIGJvb2wgbG9hZE1vZHVsZShjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0
YXJ0UG9zaXRpb24pOworCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlKikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBzb3VyY2VBdHRyaWJ1dGVW
YWx1ZSgpIGNvbnN0ID0gMDsKQEAgLTkzLDYgKzk2LDcgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6
IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0
dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0
ZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0ID0gMDsK
IAogICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0OwpAQCAtMTA5LDYgKzExMyw3IEBAIGNsYXNzIFNjcmlw
dEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIG1fcmVx
dWVzdFVzZXNBY2Nlc3NDb250cm9sIDogMTsKICAgICBTdHJpbmcgbV9jaGFyYWN0ZXJFbmNvZGlu
ZzsKICAgICBTdHJpbmcgbV9mYWxsYmFja0NoYXJhY3RlckVuY29kaW5nOworICAgIFJlZlB0cjxN
b2R1bGVHcmFwaD4gbV9tb2R1bGVHcmFwaDsKIH07CiAKIFNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0
RWxlbWVudElmUG9zc2libGUoRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmNwcAppbmRleCBlMTNhNWNkZGNjYTJjYjNiNzU2YThkM2E1N2UyM2Y4MGE5YjQz
ZTQ4Li5kMTVlYjcxYmUzZjZiY2ZiMTA3ODJmOTc0ODc1YjQwMGJjMGQ3MTZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtMTYxLDYgKzE2MSwxNSBAQCBi
b29sIEhUTUxTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdAogICAgIHJl
dHVybiBmYXN0SGFzQXR0cmlidXRlKHNyY0F0dHIpOwogfQogCitib29sIEhUTUxTY3JpcHRFbGVt
ZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworI2lmIEVOQUJMRShFUzZfTU9EVUxFUykKKyAg
ICByZXR1cm4gZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikuc3RyaW5nKCkgPT0gIm1vZHVsZSI7
CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lkIEhUTUxTY3JpcHRF
bGVtZW50OjpkaXNwYXRjaExvYWRFdmVudCgpCiB7CiAgICAgQVNTRVJUKCFoYXZlRmlyZWRMb2Fk
RXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggMzEy
YzY2MjZlOGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZlMzdiMi4uMWRmZDhjOGI3M2U4NzJhYmNk
NWViNGIzNDJlNzkyZDMzNTAzZTc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIFNjcmlwdEVsZW1lbnQgewogICAgIHZpcnR1YWwg
Ym9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmNwcAppbmRleCA4YWRmY2ZhNDEwYWJlNDdlMzMyNGFlNWI4ZDkyNDNmNTY2NjQ1ZDk1Li5i
YTVmMDZmNDRiNmIxMTdmY2JiNjIzMzUzOGUyZTE0Y2Q3ZjhlNjlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNTEsNiArMTUxLDExIEBAIGJvb2wgU1ZHU2Ny
aXB0RWxlbWVudDo6ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitib29sIFNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFNWR1NjcmlwdEVsZW1lbnQ6Omhhc1NvdXJjZUF0
dHJpYnV0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZShYTGlua05hbWVzOjpo
cmVmQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA1MzVlNDJl
NmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAxLi44YWZkZTMxMTI1ZTVkZDQ5OGRiODJh
NGUwOTgzYWIwNzRlMGRjYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgK
QEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgU1ZHU2NyaXB0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBT
VkdFbGVtZW50CiAgICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFsdWUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSBvdmVycmlkZSB7IFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9hZEV2ZW50KHRoaXMpOyB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261672</attachid>
            <date>2015-09-21 11:56:13 -0700</date>
            <delta_ts>2015-09-23 14:18:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150921115556.patch</filename>
            <type>text/plain</type>
            <size>85113</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTM4YzU2NDIxMDg1MmYxMDUxZTFhOGI0NzRkMmQyZGRjYWYxZWE1Li4xZGRmOTc0YmNhYzEyOTM2
MDljMzU0NGJjNzI0ZWQyOTFiYWIzZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wOS0yMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRp
bWUvU3ltYm9sLmg6CisKIDIwMTUtMDktMTggIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNh
a0BnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIGluIHRoZSBXZWJB
c3NlbWJseSBwYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyM2EwNjIyNzYwY2I0NDA5YmY2MTI1ZDU1YTUw
YWQwOTdmOWI1ZWMwLi5kN2YxNTgzYTFlYmQyODA5ZDFiYTYwMzg2ZWQ3OTIwNWVjMGQ4MjllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsOTggQEAKKzIwMTUtMDktMjEgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1
bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
Lmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9y
dW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFk
ZXJzL3J1bnRpbWUvU3ltYm9sLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNv
bHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFs
dWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1vZHVsZUZldGNoZXI6Ok1vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxl
RmV0Y2hlcjo6fk1vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hl
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6OnJ1bik6CisgICAg
ICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
ZHVsZUZldGNoZXI6OmNhY2hlZFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxl
TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6Ok1vZHVs
ZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpN
b2R1bGVMb2FkZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6
bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZG9jdW1lbnQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0Q29udHJvbGxlcjo6U2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250
cm9sbGVyOjpjcmVhdGVNb2R1bGVMb2FkZXJBc3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5X
b3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVh
dGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVN
b2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1bGVHcmFwaCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
Q29udHJvbGxlcjo6bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bW9kdWxlTG9h
ZGVyKToKKyAgICAgICAgKiBkb20vTW9kdWxlR3JhcGguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUdyYXBoOjpNb2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1
bGVHcmFwaDo6bm90aWZ5TG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpu
b3RpZnlFcnJvcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlFeGVj
dXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6ZXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxl
R3JhcGg6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL01vZHVsZUdyYXBoLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TW9kdWxlR3JhcGg6Om1vZHVsZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6
d2Vha1B0cik6CisgICAgICAgICogZG9tL1BlbmRpbmdNb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ01vZHVsZUdyYXBoOjpQZW5kaW5nTW9kdWxlR3JhcGgp
OgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ01vZHVsZUdyYXBoOjp+UGVuZGluZ01vZHVsZUdy
YXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdNb2R1bGVHcmFwaDo6cmVsZWFzZUVsZW1l
bnRBbmRDbGVhcik6CisgICAgICAgICogZG9tL1BlbmRpbmdNb2R1bGVHcmFwaC5oOiBBZGRlZC4K
KyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFbGVtZW50Ojppc1NjcmlwdFR5cGVTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVt
ZW50OjpzdG9wTG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6
bG9hZE1vZHVsZSk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om1vZHVsZUdyYXBoKToKKyAgICAgICAgKiBkb20vU2NyaXB0
UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5l
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlTW9kdWxlR3JhcGhGb3JF
eGVjdXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpub3RpZnlNb2R1bGVH
cmFwaFJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6
CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVU
eXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVu
dDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorCiAy
MDE1LTA5LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJF
R1JFU1NJT04ocjE1MDE4Nyk6IHVwZGF0ZUlkRm9yVHJlZVNjb3BlIG1heSBub3QgYmUgY2FsbGVk
IGluc2lkZSBzaGFkb3cgdHJlZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgK
aW5kZXggODNmNWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1ZmRkZGJiZS4uZGRiNjhjY2Iz
NjU0NDU5OTEwY2QzZjIzZjY2ODc0ZDAwNTg4YTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3ltYm9sLmgKQEAgLTg2LDcgKzg2LDcgQEAgY2xhc3MgU3ltYm9sIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiAKICAgICBTeW1ib2woVk0mKTsKICAgICBTeW1ib2woVk0mLCBjb25zdCBT
dHJpbmcmKTsKLSAgICBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1aWQpOworICAgIEpTX0VYUE9S
VF9QUklWQVRFIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7CiAKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGNhMWRlNGQx
NTY5NDhiZjdlMTBkMGVlYjQ2NmNjZmM1ZTM2NmIxMWEuLmRkNmFkYmZjYTk5Y2EzNTU2M2FkOTlk
ZDU2MDI5ZDU3ZTVjOGQzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjIzLDYgKzEyMjMs
OCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9N
b2R1bGVGZXRjaGVyLmNwcAorICAgIGJpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKICAgICBi
aW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAogICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxl
ZEFjdGlvbi5jcHAKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCkBA
IC0xNDQ3LDYgKzE0NDksNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL01lc3NhZ2VQ
b3J0LmNwcAogICAgIGRvbS9NZXNzYWdlUG9ydENoYW5uZWwuY3BwCiAgICAgZG9tL01pY3JvVGFz
ay5jcHAKKyAgICBkb20vTW9kdWxlR3JhcGguY3BwCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwCiAg
ICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNTU3YTJmMjFlY2Y2YjJhZWNhZDY3
ZTM1M2UxOTY2ZTQ3OTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmgKQEAgLTAsMCArMSw0IEBA
CisjaWZuZGVmIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlX2gKKyNkZWZpbmUgV2ViQ29y
ZV9GV0RfSlNJbnRlcm5hbFByb21pc2VfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50
ZXJuYWxQcm9taXNlLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Zvcndh
cmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oIGIvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzZjMDg2ZGQzOWFmZjllMTA0YmQ1YTZmZjdhZTc5MjU0NjM4Njk1
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRl
ZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkX2gKKyNkZWZpbmUgV2ViQ29y
ZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmggYi9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjNlOWVjZmZiY2Y1N2MyYTljNzk1Y2NiMWQ4MDM0MGY5MTRkN2Q0ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUv
SlNNb2R1bGVSZWNvcmQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSlNN
b2R1bGVSZWNvcmRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KU01vZHVsZVJlY29yZF9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9TeW1ib2wuaCBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzUwNDI3ZjA5MWE5ZWNhY2ZiZmEwOTlhZTBkMDMwZTBlOWJjNWViMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmgK
QEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1N5bWJvbF9oCisjZGVmaW5lIFdl
YkNvcmVfRldEX1N5bWJvbF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3ltYm9sLmg+Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA1ODhhN2ZjODg2MzBjZDg4NTU2MWVjNWQwNTE1MmYwZDY0YWMwNWY4Li4wMGJl
NGRjMzEyNjkwNWU0ODE0MTFlNmMxMTRlZTdjYjhmZDRiMjJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzE3LDYgKzYzMTcs
MTQgQEAKIAkJRTFGRjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4
RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi87IH07CiAJ
CUUxRkY4RjZDMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QTE4
MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovOyB9OwogCQlF
MUZGOEY2RDE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgwREI1
QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovOyB9OworCQlFMzM5QTUy
MzFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1v
ZHVsZUdyYXBoLmNwcCAqLzsgfTsKKwkJRTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVs
ZUdyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzg4Mzg5NjFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzg4Mzg5MjFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5j
cHAgKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTcxQkFE
MTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVG
ZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4
OTgxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyog
TW9kdWxlTG9hZGVyLmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9Owor
CQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NTFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsg
fTsKKwkJRTM4ODM4OUMxQkIwN0QyNTAwRDYyRUUzIC8qIFBlbmRpbmdNb2R1bGVHcmFwaC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5QTFC
QjA3RDI1MDBENjJFRTMgLyogUGVuZGluZ01vZHVsZUdyYXBoLmNwcCAqLzsgc2V0dGluZ3MgPSB7
QVNTRVRfVEFHUyA9ICgpOyB9OyB9OworCQlFMzg4Mzg5RDFCQjA3RDI1MDBENjJFRTMgLyogUGVu
ZGluZ01vZHVsZUdyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzg4Mzg5QjFCQjA3RDI1MDBENjJFRTMgLyogUGVuZGluZ01vZHVsZUdyYXBoLmgg
Ki87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKIAkJRTQwMUMyNzUxN0NFNTNF
QzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAv
KiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQyNEEzOUUxMzMwREYwMTAwQ0Y2REM5IC8qIExlZ2Fj
eVRpbGVHcmlkVGlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTQyNEEzOUQxMzMwREYwMTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oICov
OyB9OwogCQlFNDI0QTNBMDEzMzBERjFFMDBDRjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyNEEzOUYx
MzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5tbSAqLzsgfTsKQEAgLTE0MDY2
LDYgKzE0MDc0LDE0IEBACiAJCUUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNy
eXB0b0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N1
YnRsZUNyeXB0b0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4
RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4RjZCMTgwREI1QkUwMDEzMjY3
NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlR3JhcGguY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxl
R3JhcGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlR3JhcGguaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4OTIxQkFEMTQ1RjAwRDYyRUUzIC8q
IE1vZHVsZUZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TW9kdWxlRmV0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgzODkz
MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1vZHVsZUZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9h
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUxvYWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5QTFCQjA3RDI1MDBENjJFRTMgLyog
UGVuZGluZ01vZHVsZUdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBlbmRpbmdNb2R1bGVHcmFwaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUzODgzODlCMUJCMDdEMjUwMEQ2MkVFMyAvKiBQZW5kaW5nTW9kdWxlR3JhcGguaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVuZGluZ01vZHVsZUdyYXBoLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50
SXRlcmF0b3JBc3NlcnRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVs
ZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNDFFQTAzODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0eU5hbWVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNTA2LDYgKzIxNTIyLDEwIEBA
CiAJCQkJNDExODlFRjgxQUQ4MjMzQzAwQjkwQTBEIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyQ3VzdG9tLmNwcCAqLywKIAkJCQlFMUMzNkQzMjBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBCQyAv
KiBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5oICovLAorCQkJCUUzODgzODkyMUJBRDE0NUYwMEQ2
MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmNwcCAqLywKKwkJCQlFMzg4Mzg5MzFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlRmV0Y2hlci5oICovLAorCQkJCUUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAv
KiBNb2R1bGVMb2FkZXIuY3BwICovLAorCQkJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBN
b2R1bGVMb2FkZXIuaCAqLywKIAkJCQk0MTk4QkRFRTFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFi
bGVKU1N0cmVhbS5jcHAgKi8sCiAJCQkJNDE5OEJERUYxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRh
YmxlSlNTdHJlYW0uaCAqLywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1
bGVkQWN0aW9uLmNwcCAqLywKQEAgLTIzNDcyLDYgKzIzNDkyLDggQEAKIAkJCQk0MUJGNzAwQTBG
RTg2RjQ5MDA1RThERUMgLyogTWVzc2FnZVBvcnRDaGFubmVsLmggKi8sCiAJCQkJQ0I4Q0YwMTUx
QTkzNEI0MzAwMEQ1MTBCIC8qIE1pY3JvVGFzay5jcHAgKi8sCiAJCQkJNTNCODk1QUQxOURDN0Mz
NzAwOUNBQTkzIC8qIE1pY3JvVGFzay5oICovLAorCQkJCUUzMzlBNTIxMUJBNkJENDYwMEEzQTdB
RSAvKiBNb2R1bGVHcmFwaC5jcHAgKi8sCisJCQkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8q
IE1vZHVsZUdyYXBoLmggKi8sCiAJCQkJODUwMzFCMkYwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNl
RXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjMwMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50
LmggKi8sCiAJCQkJMTQxQjk0RTUwOUVDNDIyMzAwMEU5NDEzIC8qIE1vdXNlRXZlbnQuaWRsICov
LApAQCAtMjM1MzEsNiArMjM1NTMsOCBAQAogCQkJCUUxMjg0QUUwMTA0NDdENDUwMEVBRUI1MiAv
KiBQYWdlVHJhbnNpdGlvbkV2ZW50LmggKi8sCiAJCQkJRTEyODRBRDkxMDQ0N0FFQjAwRUFFQjUy
IC8qIFBhZ2VUcmFuc2l0aW9uRXZlbnQuaWRsICovLAogCQkJCTgzRDI2RDNEMUFGRENDNTAwMDFC
Mzg3MyAvKiBQYXJlbnROb2RlLmlkbCAqLywKKwkJCQlFMzg4Mzg5QTFCQjA3RDI1MDBENjJFRTMg
LyogUGVuZGluZ01vZHVsZUdyYXBoLmNwcCAqLywKKwkJCQlFMzg4Mzg5QjFCQjA3RDI1MDBENjJF
RTMgLyogUGVuZGluZ01vZHVsZUdyYXBoLmggKi8sCiAJCQkJOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0
NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICovLAogCQkJCThBN0NDOTZBMTIwNzZENzMwMDFENDU4
OCAvKiBQZW5kaW5nU2NyaXB0LmggKi8sCiAJCQkJNDFCRjcwMEQwRkU4NkY2MTAwNUU4REVDIC8q
IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcCAqLywKQEAgLTI0NTg2LDYgKzI0NjEwLDcg
QEAKIAkJCQkzMTYwMjNGMDE1MzJDNDBDMDBENTBGRjQgLyogRGljdGlvbmFyeS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM3RkYzRDUxQTEwMTJENjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEQUYxOTk5MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RD
b252b2x2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzMzlBNTI0MUJBNkJENDYwMEEzQTdBRSAv
KiBNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRE
RkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJE
NjkxNDQzNUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQyOUVDQzYxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjE2MSw2ICsyNjE4Niw3IEBACiAJCQkJQ0Ux
MjUyNDExQTE2QjFCNjAwODY0NDgwIC8qIE1lZGlhUGxheWVyU1BJLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUzODgzODk5MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRFMTk1OTJDMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1
ZXJ5RXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyRTBBMzlEQUNDMDAyMjBG
RTUgLyogTWVkaWFRdWVyeUV4cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNBOTRBMzkxMjJEQUJB
QzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzgzLDYg
KzI2ODA5LDcgQEAKIAkJCQkwRkI4ODkwRjE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3Rh
dGVTdGlja3lOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFDQkQxMTE2MUE0NEU5MDBFNEM4
NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY2MkYyNjE0
REFGRUExMDA0MTU1NkMgLyogU2Nyb2xsaW5nVGhyZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
Mzg4Mzg5RDFCQjA3RDI1MDBENjJFRTMgLyogUGVuZGluZ01vZHVsZUdyYXBoLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUFBRERBNDE0REI0MDlGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNDMzhDMDMxNjQ0NzNERDAwMDkxRUIyIC8qIFNjcm9sbGluZ1Ry
ZWVGaXhlZE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEzRTg4MTkxQjNCRDcwMDBGMUI1
NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKQEAg
LTI3MjA1LDYgKzI3MjMyLDcgQEAKIAkJCQkwODBFNDkyODEyNTVGM0JEMDBFRkNBMjcgLyogU1ZH
VGV4dExheW91dEVuZ2luZVNwYWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RjBCRkM2MTI1
NUM1M0MwMDA3NTE4NSAvKiBTVkdUZXh0TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzEx
NzQ0NTkxNEJDMzRFQzAwRUU1RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRTM4ODM4OTcxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyMjI3QUNFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUZXh0UGF0
aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUQxMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAy
NTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTI3
OTcyLDYgKzI4MDAwLDcgQEAKIAkJCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9E
ZXN0aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBCQzEyQjAyNzJBMDBD
MUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMx
NjAwNzEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZEMzE2MDgxMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtl
cm5lbFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU1OTY5MTE0NzVCNjc4MDAx
RDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2
MEJFMTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yODUzNSw2ICsyODU2NCw3IEBACiAJCQkJRTRBMDA3ODUxQjgyMEVEMzAwMkM1QTZF
IC8qIERhdGFVUkxEZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODM5MTUxMEYxRTc2
QjQwMEMyMzc4MiAvKiBET01XZWJLaXRDU1NNYXRyaXgubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
QUQwQTU5NzE0Qzg4MzU4MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2MTFFNjIwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdl
YktpdENTU1RyYW5zZm9ybVZhbHVlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJM0YyQjMzRUMxNjVB
RjE1NjAwRTM5ODdDIC8qIERPTVdlYktpdENTU1ZpZXdwb3J0UnVsZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDOTFBMzhGMUI0OThBQkUwMDNGOUVGQSAvKiBKU05vZGVPclN0cmluZy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI4NTg4LDYgKzI4NjE4LDcgQEAKIAkJCQk5NzY2NTA0RjE0NEZCRkZF
MDBGNkJCNTEgLyogRXZlbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQzA5QTgx
MEIwNjRGMDAwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkU2OTM4QjYxMDQ1RDY3RTAwOEVBQkI2IC8qIEV2ZW50SGFuZGxlcklPUy5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUUzODgzODlDMUJCMDdEMjUwMEQ2MkVFMyAvKiBQZW5kaW5nTW9kdWxlR3JhcGgu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNDMDlBN0YwQjA2NEVFRjAwNUFCRDREIC8qIEV2ZW50
SGFuZGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUFENDQ5NUYzMTQxRkMwODkwMDU0MUVE
RiAvKiBFdmVudExpc3RlbmVyTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM0MDBEMTA5MThG
MUM4RjYwMDkwRDg2MyAvKiBFdmVudExvb3BJbnB1dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4
ODYyLDYgKzI4ODkzLDcgQEAKIAkJCQlBODcxREIyRTBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRh
YmxlQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMjkwQTE1MEJENjAw
QjEyQTY4IC8qIEhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3
MURCMjgwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMkQwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVBh
cnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjMwMEExNTBCRDYwMEIxMkE2
OCAvKiBIVE1MVGFibGVSb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNDQyQ0Ew
MEQyQjMzNjAwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTMxMDM0LDYgKzMxMDY2LDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSAxQ0RENDVFNTBCQTlDODQ2MDBG
OTAxNDcgLyogV2ViQ29yZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJ
RU5BQkxFX0VTNl9NT0RVTEVTID0gRU5BQkxFX0VTNl9NT0RVTEVTOwogCQkJfTsKIAkJCW5hbWUg
PSBEZWJ1ZzsKIAkJfTsKQEAgLTMxMDQxLDYgKzMxMDc0LDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSAxQ0RENDVFNTBC
QTlDODQ2MDBGOTAxNDcgLyogV2ViQ29yZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3Mg
PSB7CisJCQkJRU5BQkxFX0VTNl9NT0RVTEVTID0gRU5BQkxFX0VTNl9NT0RVTEVTOwogCQkJfTsK
IAkJCW5hbWUgPSBSZWxlYXNlOwogCQl9OwpAQCAtMzEwNDksNiArMzEwODMsNyBAQAogCQkJYmFz
ZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSAxQ0RENDVFNTBCQTlDODQ2MDBGOTAxNDcgLyogV2Vi
Q29yZS54Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CiAJCQkJQlVJTERfVkFSSUFO
VFMgPSBub3JtYWw7CisJCQkJRU5BQkxFX0VTNl9NT0RVTEVTID0gRU5BQkxFX0VTNl9NT0RVTEVT
OwogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OwpAQCAtMzExMjQsNiArMzExNTks
NyBAQAogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlv
blJlZmVyZW5jZSA9IDFDREQ0NUU1MEJBOUM4NDYwMEY5MDE0NyAvKiBXZWJDb3JlLnhjY29uZmln
ICovOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlFTkFCTEVfRVM2X01PRFVMRVMgPSBFTkFC
TEVfRVM2X01PRFVMRVM7CiAJCQkJUFJPRFVDVF9OQU1FID0gIkRlcml2ZWQgU291cmNlcyI7CiAJ
CQl9OwogCQkJbmFtZSA9IERlYnVnOwpAQCAtMzExMzIsNiArMzExNjgsNyBAQAogCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDFD
REQ0NUU1MEJBOUM4NDYwMEY5MDE0NyAvKiBXZWJDb3JlLnhjY29uZmlnICovOwogCQkJYnVpbGRT
ZXR0aW5ncyA9IHsKKwkJCQlFTkFCTEVfRVM2X01PRFVMRVMgPSBFTkFCTEVfRVM2X01PRFVMRVM7
CiAJCQkJUFJPRFVDVF9OQU1FID0gIkRlcml2ZWQgU291cmNlcyI7CiAJCQl9OwogCQkJbmFtZSA9
IFJlbGVhc2U7CkBAIC0zMTE0MCw2ICszMTE3Nyw3IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUwQkE5Qzg0
NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCQlQUk9EVUNU
X05BTUUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4
IDc5Yjc0MGJlNWUxYTI2MDBjNDFkNzMyMTI1MTVmOGZmMTEyYmU5NjYuLjMyYTA1YjZjODAyOWVj
MjY4NmM4ZjhiOWQ3OGZlNTI4MjEwNTBhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMzEsMTEgKzMxLDEzIEBACiAjaW5jbHVkZSAi
SlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgor
I2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvTWljcm90YXNrLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAt
NTYsNyArNTgsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20oY29uc3QgSlNH
bG9iYWxPYmplY3QqIHRoaXNPYmplY3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBDbGFzc0luZm8g
SlNET01XaW5kb3dCYXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9iYWxPYmplY3Q6
OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2UpIH07CiAKLWNv
bnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmpl
Y3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmls
aW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmph
dmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVy
cnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93
QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJv
bSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZElu
dGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50
TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJS
ZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2Fk
ZXJFdmFsdWF0ZSB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0RP
TVdpbmRvd1NoZWxsKiBzaGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1
cmUsICZzaGVsbC0+d29ybGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC0yNzks
NCArMjgxLDMxIEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVhcmVkV2F0Y2hw
b2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAgfQogfQogCisKK0pTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6
OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyKQoreworICAgIEpTRE9N
V2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGds
b2JhbE9iamVjdCk7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmlt
cGwoKS5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigp
LT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJyZXIpOworICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVy
biBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNW
YWx1ZSBtb2R1bGVLZXkpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1l
bnQqIGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJl
dHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywg
bW9kdWxlS2V5KTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVk
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2Jq
ZWN0KTsKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5lZCgpKTsK
K30KKworSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUo
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCkKK3sKKyAg
ICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jh
c2UqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2Jq
ZWN0LT5pbXBsKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVM
b2FkZXIoKS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXksIG1vZHVsZVJl
Y29yZCk7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aAppbmRleCA1ZWQzODYyYzE0MTE4N2MwMDZiNjg4ZGI3OTc3OTRiMzY5ODEwNTY0Li4yZDQ0Yjgw
MDllNTRkYmIwNzRlOGY5OTc3YzE2YjI1ZTEyNTdlYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNzgsNiArNzgsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBKU0M6OldhdGNocG9pbnRTZXQgbV93aW5kb3dDbG9zZVdhdGNo
cG9pbnRzOwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gTW9kdWxlIExvYWRlciBob29rcy4K
KyAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlclJlc29s
dmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBK
U0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9k
dWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFs
dWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNWYWx1ZSk7CisKICAgICAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV9pbXBsOwogICAg
ICAgICBKU0RPTVdpbmRvd1NoZWxsKiBtX3NoZWxsOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCmluZGV4IDA5ZTdlNWI2
MDI2ODc5YjUzMzVhMWZlMWVmNzFjNDQ3NDMwYmZjZDQuLjRmZDY4M2UxNTkxMDJiMTUyODdkNjM4
OTljMDE2ZWZkMzc0ODAzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCkBAIC03NCw2ICs3NCwyNCBAQCBjbGFzcyBKU01haW5U
aHJlYWRFeGVjU3RhdGUgewogICAgICAgICB0YXNrLnJ1bihleGVjKTsKICAgICB9CiAKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQorICAgIHsKKyAgICAgICAgSlNNYWluVGhy
ZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bG9h
ZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlND
OjpTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQorICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhl
Y1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bG9hZE1vZHVs
ZShleGVjLCBzb3VyY2VDb2RlKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFs
UHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSkKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVh
ZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxpbmtB
bmRFdmFsdWF0ZU1vZHVsZShleGVjLCBtb2R1bGVLZXkpOworICAgIH0KKwogICAgIHN0YXRpYyBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgaW5zdHJ1bWVudEZ1bmN0aW9uQ2FsbChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpDYWxsVHlwZSwgY29uc3QgSlNDOjpDYWxsRGF0YSYp
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9k
dWxlRmV0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yM2YxZWFhMDg4ODBkNGE2M2JjYWQ0ZTM0OWZjNGEwNTk0ZmUxM2U0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0
Y2hlci5jcHAKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJET01XcmFw
cGVyV29ybGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0
aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRT
b3VyY2VDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9kdWxlRmV0Y2hlcjo6TW9k
dWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwmIHNv
dXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1l
bnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fc291cmNl
VVJMKHNvdXJjZVVSTCkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwg
Z2xvYmFsT2JqZWN0KQorICAgICwgbV9kZWZlcnJlZChnbG9iYWxPYmplY3QtPnZtKCksIGRlZmVy
cmVkKQoreworfQorCitNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hlcigpCit7CisgICAgaWYg
KG1fY2FjaGVkU2NyaXB0KSB7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQo
dGhpcyk7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKyAgICB9Cit9CisKK1Jl
ZjxNb2R1bGVGZXRjaGVyPiBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBNb2R1bGVGZXRjaGVyKGdsb2JhbE9iamVjdCwgc291cmNlVVJMLCBkZWZl
cnJlZCwgZG9jdW1lbnQpKTsKK30KKworYm9vbCBNb2R1bGVGZXRjaGVyOjpydW4oKQoreworICAg
IFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRl
ZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKKyAgICBvcHRpb25zLnNldENvbnRlbnRTZWN1
cml0eVBvbGljeUltcG9zaXRpb24oQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Q
b2xpY3lDaGVjayk7CisKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QobV9zb3VyY2VVUkwpLCBvcHRpb25zKTsKKworICAgIC8vIEZJWE1FOiBTaG91bGQg
aGFuZGxlICJjcm9zc29yaWdpbiIgb3B0aW9ucy4KKyAgICAvLyBPbmNlIHRoZSBzcGVjIGRlc2Ny
aWJlcyB0aGUgZGV0YWlscywgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgcmVxdWVzdC5zZXRJbml0
aWF0b3IoQXRvbWljU3RyaW5nKG1fc291cmNlVVJMLnN0cmluZygpKSk7CisKKyAgICBtX2NhY2hl
ZFNjcmlwdCA9IG1fZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0U2NyaXB0
KHJlcXVlc3QpOworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8vIE5vdGU6IElmIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlz
IGltbWVpZGF0ZWx5IGNhbGxzIG5vdGlmeUZpbmlzaGVkLgorICAgIG1fY2FjaGVkU2NyaXB0LT5h
ZGRDbGllbnQodGhpcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTW9kdWxlRmV0Y2hl
cjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIEFTU0VS
VF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fY2FjaGVkU2NyaXB0KTsKKyAgICBpZiAo
IW1fY2FjaGVkU2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9jYWNoZWRT
Y3JpcHQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2Ny
aXB0ID0gbV9jYWNoZWRTY3JpcHQ7CisgICAgbV9jYWNoZWRTY3JpcHQgPSBudWxscHRyOworCisj
aWYgRU5BQkxFKE5PU05JRkYpCisgICAgaWYgKGNhY2hlZFNjcmlwdCAmJiAhY2FjaGVkU2NyaXB0
LT5taW1lVHlwZUFsbG93ZWRCeU5vc25pZmYoKSkgeworICAgICAgICBtX2RvY3VtZW50LmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCAiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBmcm9tICciICsgY2FjaGVkU2NyaXB0LT51cmwo
KS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXRzIE1JTUUg
dHlwZSAoJyIgKyBjYWNoZWRTY3JpcHQtPm1pbWVUeXBlKCkgKyAiJykgaXMgbm90IGV4ZWN1dGFi
bGUsIGFuZCBzdHJpY3QgTUlNRSB0eXBlIGNoZWNraW5nIGlzIGVuYWJsZWQuIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3Vt
ZW50LmZyYW1lKCkpIHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9i
amVjdC0+dm0oKSk7CisgICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKTsKKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC0+ZXJyb3JPY2N1cnJl
ZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZSBpcyBjb25z
dHJ1Y3RlZCBhcyBhIGNoYWluIG9mIHByb21pc2VzLgorICAgICAgICAgICAgLy8gUmVqZWN0aW5n
IGEgcHJvbWlzZSBpZiBzb21lIGVycm9yIG9jY3VycyBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUg
ZXhlY3V0aW9uIGZsb3cgb2YKKyAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGNoYWluIGlzIGRy
aXZlbiBieSAicmVqZWN0ZWQiIG9yICJmdWxmaWxsZWQiIGV2ZW50cy4KKyAgICAgICAgICAgIC8v
IElmIHRoZSBwcm9taXNlIGlzIG5vdCByZWplY3RlZCB3aGlsZSBlcnJvciBvY2N1cnMsIHJlamVj
dCBoYW5kbGVyIHdvbid0IGJlIGV4ZWN1dGVkCisgICAgICAgICAgICAvLyBhbmQgYWxsIHRoZSBz
dWJzZXF1ZW50IHByb21pc2UgY2hhaW4gd2FpdCB0aGUgcmVzdWx0IGZvcmV2ZXIuCisgICAgICAg
ICAgICAvLworICAgICAgICAgICAgLy8gQXMgYSByZXN1bHQsIGV2ZW4gaWYgdGhlIGVycm9yIGlz
IGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBlbHNld2hlcmUsCisgICAgICAgICAg
ICAvLyBpdCBzaG91bGQgYmUgcHJvcGFnYXRlZCBpbiB0aGUgcGlwZWxpbmUuIEZvciBleGFtcGxl
LCB0aGUgZXJyb3Igb2YgbG9hZGluZworICAgICAgICAgICAgLy8gQ2FjaGVkUmVzb3VyY2UgaXMg
cmVwb3J0ZWQgYnkgdGhlIGxvYWRlci4gQnV0IHdlIG5lZWQgdG8gcmVqZWN0IHRoZSBwcm9taXNl
IGJ5IHNvbWUKKyAgICAgICAgICAgIC8vIGVycm9yLgorICAgICAgICAgICAgLy8KKyAgICAgICAg
ICAgIC8vIE5vdCB0byByZXBvcnQgdGhlIGVycm9yIHR3aWNlLCB3aGVuIHdlIHByb3BhZ2F0ZSB0
aGUgZXJyb3IgdGhhdCBpcyBhbHJlYWR5IHJlcG9ydGVkCisgICAgICAgICAgICAvLyB0byB0aGUg
aW5zcGVjdG9yLCB3ZSB0aHJvdyBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJv
bCBzeW1ib2wgaW5zdGVhZC4KKyAgICAgICAgICAgIC8vIEJ5IGNvbXBhcmluZyB0aGUgdGhyb3du
IGVycm9yIHdpdGggdGhpcyBzeW1ib2wsIHdlIGNhbiBkaXN0aW5ndWlzaCBlcnJvcnMgcmFpc2Vk
CisgICAgICAgICAgICAvLyB3aGVuIGxpbmtpbmcgb3IgZXhlY3V0aW5nIGEgbW9kdWxlIGdyYXBo
IGZyb20gZXJyb3JzIHJlcG9ydGVkIGFscmVhZHkuCisgICAgICAgICAgICAvLyBJbiB0aGUgcmVq
ZWN0IGhhbmRsZXIgb2YgdGhlIHByb21pc2UsIHdlIG9ubHkgcmVwb3J0IGEgZXJyb3IgdGhhdCBp
cyBub3QgdGhpcyBzeW1ib2wuCisgICAgICAgICAgICBtX2RlZmVycmVkLT5yZWplY3QoZXhlYywg
SlNDOjpTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVM
b2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgICAgICB9IGVs
c2UgaWYgKCFjYWNoZWRTY3JpcHQtPndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgIFNjcmlw
dFNvdXJjZUNvZGUgc291cmNlQ29kZShjYWNoZWRTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAg
bV9kZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBKU0M6OmpzU3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUu
c291cmNlKCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEEgQ2FjaGVkUmVzb3VyY2VI
YW5kbGUgYWxvbmUgZG9lcyBub3QgcHJldmVudCB0aGUgdW5kZXJseWluZyBDYWNoZWRSZXNvdXJj
ZQorICAgIC8vIGZyb20gcHVyZ2luZyBpdHMgZGF0YSBidWZmZXIuIFVudGlsIHdlIGZpbmlzaCB1
c2luZyB0aGUgYmFja2luZyBidWZmZXIgb2YgdGhlCisgICAgLy8gY2FjaGVkIHNjcmlwdCwgd2Ug
ZG9uJ3QgcmVtb3ZlIHRoZSBjbGllbnQuCisgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQo
dGhpcyk7CisKKyAgICBtX2RvY3VtZW50Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0
aGlzKTsKKyAgICAvLyBBZnRlciBNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkIGNhbGwsIHx0
aGlzfCBtYXkgYmUgZGVzdHJveWVkLgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Nb2R1bGVGZXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkzZDM2YWUzNjBmMmY3MmIwZTk5ZWZiYTQz
N2Y3MzU0NmI0NjIwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL01vZHVsZUZldGNoZXIuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBNb2R1bGVGZXRjaGVyX2gKKyNkZWZpbmUgTW9kdWxlRmV0Y2hlcl9oCisKKyNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgi
CisjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5j
bHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgSlNET01H
bG9iYWxPYmplY3Q7CisKK2NsYXNzIE1vZHVsZUZldGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxN
b2R1bGVGZXRjaGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoTW9kdWxlRmV0Y2hlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8TW9kdWxlRmV0Y2hlcj4gY3JlYXRlKEpTRE9NR2xvYmFs
T2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCosIERvY3VtZW50Jik7CisKKyAgICB+TW9kdWxlRmV0Y2hlcigpOworCisgICAgYm9vbCBy
dW4oKTsKKworICAgIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNo
ZWRTY3JpcHQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBNb2R1bGVGZXRjaGVyKEpTRE9NR2xv
YmFsT2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZCosIERvY3VtZW50Jik7CisKKyAgICAvLyBGb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQu
CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJp
ZGU7CisKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBVUkwgbV9zb3VyY2VVUkw7Cisg
ICAgSlNDOjpTdHJvbmc8SlNET01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpT
Qzo6U3Ryb25nPEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAg
ICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUZldGNoZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTAwMmIxNjJkMDEyM2Y1YTA4OGFlZjdiZjBiNDNjNTMyOTUyN2VjOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKQEAgLTAs
MCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TW9kdWxlTG9hZGVyLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgorI2luY2x1ZGUgIk1pY3JvVGFzay5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5j
bHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVl
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9K
U0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJl
Y29yZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1l
L1N5bWJvbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUxvYWRlcjo6TW9kdWxl
TG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7
Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6
OkpTVmFsdWUgbW9kdWxlTmFtZVZhbHVlLCBKU0M6OkpTVmFsdWUgcmVmZXJyZXJWYWx1ZSkKK3sK
KyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBp
ZiAobW9kdWxlTmFtZVZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBkZWZlcnJlZC0+
cmVzb2x2ZShleGVjLCBtb2R1bGVOYW1lVmFsdWUpOworCisgICAgLy8gRklYTUU6IFdlIG5vdyBh
c3N1bWUgdGhhdCBtb2R1bGUgbmFtZSBpcyBlaXRoZXIgc3ltYm9sIG9yIHN0cmluZy4KKyAgICAv
LyBXaGVuIGV4cG9zaW5nIHRoZSByZWZsZWN0aW9uIHRvIHRoZSBtb2R1bGUgbG9hZGVyIGFuZCBt
b2R1bGVzLCB3ZSBuZWVkIHRvIHJlY2FzdCB0aGlzIHBhcnQuCisgICAgQVNTRVJUKG1vZHVsZU5h
bWVWYWx1ZS5pc1N0cmluZygpKTsKKyAgICBTdHJpbmcgbW9kdWxlTmFtZSA9IEpTQzo6anNDYXN0
PEpTQzo6SlNTdHJpbmcqPihtb2R1bGVOYW1lVmFsdWUpLT52YWx1ZShleGVjKTsKKworICAgIC8v
IE5vdywgd2UgY29uc2lkZXIgdGhlIGdpdmVuIG1vZHVsZU5hbWUgYXMgdGhlIHNhbWUgdG8gdGhl
IHNyYz0iLi4uIiBpbiB0aGUgc2NyaXB0IHRhZy4KKyAgICAvLyBXZSB1c2UgdGhlIGNvbXBsZXRl
ZCBVUkwgYXMgdGhlIG1vZHVsZSBrZXkuCisgICAgLy8KKyAgICAvLyBGSVhNRTogV2UgbmVlZCBz
aXRlIHBhY2thZ2luZyBzeXN0ZW0uIEJ1dCBpdCdzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjIHll
dC4KKyAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWxvYWRl
ci1wcm90b3R5cGUtJTQwJTQwcmVzb2x2ZQorICAgIFVSTCBjb21wbGV0ZWRVUkw7CisKKyAgICAv
LyBGSVhNRTogQ2hlY2sgbV9kb2N1bWVudCBsaWZldGltZS4KKyAgICBpZiAocmVmZXJyZXJWYWx1
ZS5pc1N5bWJvbCgpKQorICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRl
VVJMKG1vZHVsZU5hbWUpOworICAgIGVsc2UgeworICAgICAgICBpZiAocmVmZXJyZXJWYWx1ZS5p
c1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21w
bGV0ZVVSTChtb2R1bGVOYW1lKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQo
cmVmZXJyZXJWYWx1ZS5pc1N0cmluZygpKTsKKyAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9
IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJpbmcqPihyZWZlcnJlclZhbHVlKS0+dmFsdWUoZXhlYyk7
CisgICAgICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVs
ZU5hbWUsIFVSTChQYXJzZWRVUkxTdHJpbmcsIHJlZmVycmVyKSk7CisgICAgICAgIH0KKyAgICB9
CisgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZGVmZXJy
ZWQtPnJlamVjdChleGVjLCBjcmVhdGVET01FeGNlcHRpb24oZXhlYywgU1lOVEFYX0VSUikpOwor
CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIGpzU3RyaW5nKGV4ZWMsIGNvbXBs
ZXRlZFVSTC5zdHJpbmcoKSkpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVM
b2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKK3sKKyAgICAvLyBGSVhN
RTogV2hlbiBpbXBsZW1lbnRpbmcgcmVmbGVjdGl2ZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVz
LCB3ZSBzaG91bGQgcmVjYXN0IHRoaXMgaW1wbGVtZW50YXRpb24uCisgICAgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisKKyAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKCFtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpLCAiU3ltYm9saWMgbW9kdWxlIGtleSBzaG91
bGQgYmUgYWxyZWFkeSBmdWxmaWxsZWQgd2l0aCB0aGUgaW5saW5lZCByZXNvdXJjZS4iKTsKKyAg
ICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisKKyAgICBKU0M6OklkZW50aWZp
ZXIgbW9kdWxlS2V5ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGFzU3RyaW5n
KG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykpOworCisgICAgVVJMIGNvbXBsZXRlZFVSTChQ
YXJzZWRVUkxTdHJpbmcsIG1vZHVsZUtleS5pbXBsKCkpOworICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UoY29tcGxldGVkVVJMLmlzVmFsaWQoKSwgIlRoZSByZXNvbHZlIGhvb2sgc2hvdWxkIHByb2R1
Y2UgdGhlIHZhbGlkIFVSTCBhcyBhIHN0cmluZy4iKTsKKworICAgIFJlZjxNb2R1bGVGZXRjaGVy
PiBmZXRjaGVyID0gTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTQzo6anNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgY29tcGxldGVkVVJMLCBkZWZlcnJlZCwgbV9kb2N1bWVu
dCk7CisgICAgbV9mZXRjaGluZ1NldC5hZGQoJmZldGNoZXIuZ2V0KCkpOworICAgIGlmICghZmV0
Y2hlci0+cnVuKCkpIHsKKyAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJh
bWUoKSkKKyAgICAgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3lt
Ym9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgKihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxy
ZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKS51aWQoKSkpKTsKKyAgICB9CisKKyAgICByZXR1cm4g
ZGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworSlNDOjpKU1ZhbHVlIE1vZHVsZUxvYWRlcjo6ZXZh
bHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgbW9kdWxlS2V5VmFsdWUsIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSkKK3sK
KyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCB3ZSBvbmx5IHN1cHBvcnQgSlNNb2R1bGVSZWNvcmQu
CisgICAgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gSlNDOjpqc0R5bmFtaWND
YXN0PEpTQzo6SlNNb2R1bGVSZWNvcmQqPihtb2R1bGVSZWNvcmRWYWx1ZSk7CisgICAgaWYgKCFt
b2R1bGVSZWNvcmQpCisgICAgICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CisKKyAgICBV
Ukwgc291cmNlVVJMOworICAgIGlmIChtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAg
ICBzb3VyY2VVUkwgPSBtX2RvY3VtZW50LnVybCgpOworICAgIGVsc2UgeworICAgICAgICBBU1NF
UlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgICAgIHNvdXJjZVVSTCA9IFVSTChQ
YXJzZWRVUkxTdHJpbmcsIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykpOwor
ICAgIH0KKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCisgICAg
ICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1
bGVSZWNvcmQpOworICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Cit9CisKK3ZvaWQgTW9k
dWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKiBmZXRjaGVyKQoreworICAg
IG1fZmV0Y2hpbmdTZXQucmVtb3ZlKGZldGNoZXIpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL01vZHVsZUxvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0OTM2OTY4MTY1ZWVkODU4MTAx
NzgxY2QxODU0NzBjOGViNWUwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBNb2R1bGVMb2FkZXJfaAorI2RlZmluZSBNb2R1bGVMb2FkZXJfaAorCisjaW5jbHVk
ZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1
bGVHcmFwaC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVy
bmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFzcyBNb2R1bGVMb2FkZXIgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIGV4cGxpY2l0IE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworCisgICAgRG9j
dW1lbnQmIGRvY3VtZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50OworICAg
IH0KKworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNW
YWx1ZSByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7
CisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNv
cmQpOworCisgICAgdm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKik7Citwcml2YXRl
OgorICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIEhhc2hTZXQ8UmVmUHRyPE1vZHVsZUZl
dGNoZXI+PiBtX2ZldGNoaW5nU2V0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNGIzYjA5NzJiZTc3ZjNjNzY1OTVmMTQwZTI2YTc0
OGZmOGVhNDUwYy4uMDUwODEwODI1ZWI5NTY3MzY2MDkwM2M5OTI0MDk1YWRlYTRiNzJkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNs
dWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKKyNp
bmNsdWRlICJNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCkBAIC01NCw3ICs1NSwx
MSBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxw
cm9maWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9K
U0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNOYXRpdmVT
dGRGdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9UZXh0UG9zaXRpb24uaD4KIApAQCAtODYsNiArOTEsNyBAQCBTY3JpcHRDb250cm9sbGVy
OjpTY3JpcHRDb250cm9sbGVyKEZyYW1lJiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAg
ICAgLCBtX3NvdXJjZVVSTCgwKQogICAgICwgbV9wYXVzZWQoZmFsc2UpCisgICAgLCBtX21vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKICAgICAsIG1fd2luZG93U2NyaXB0TlBPYmplY3QoMCkKICNlbmRpZgpAQCAt
MTc1LDExICsxODEsMTM0IEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xs
ZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlCiAgICAgcmV0dXJuIERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJldHVyblZhbHVlKTsKIH0KIAotRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2Ny
aXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkgCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3Jp
cHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2Rl
KQogewogICAgIHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRocmVhZE5v
cm1hbFdvcmxkKCkpOwogfQogCitKU0Z1bmN0aW9uKiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVN
b2R1bGVMb2FkZXJBc3luY2hyb25vdXNFcnJvclJlcG9ydEZ1bmN0aW9uKE1vZHVsZUdyYXBoJiBt
b2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1No
ZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBz
aGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8TW9kdWxlR3JhcGg+
IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha1B0cigpKTsKKyAgICBQcml2YXRlTmFtZSBtb2R1bGVM
b2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJl
cG9ydGVkRXJyb3JTeW1ib2w7CisgICAgcmV0dXJuIEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0
ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbbW9kdWxlTG9hZGVy
QWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykgewor
ICAgICAgICBKU1ZhbHVlIGVycm9yID0gZXhlYy0+YXJndW1lbnQoMCk7CisKKyAgICAgICAgaWYg
KFJlZlB0cjxNb2R1bGVHcmFwaD4gbW9kdWxlR3JhcGggPSB3ZWFrUHRyLmdldCgpKQorICAgICAg
ICAgICAgbW9kdWxlR3JhcGgtPm5vdGlmeUVycm9yZWQoKTsKKworICAgICAgICAvLyBPbmNlIHJl
cG9ydGVkIGVycm9yIGlzIG1hcmtlZCBhcyBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJv
clN5bWJvbC4KKyAgICAgICAgLy8gRG9uJ3QgcmVwb3J0IGl0IGhlcmUgYWdhaW4uCisgICAgICAg
IGlmIChTeW1ib2wqIHN5bWJvbCA9IGpzRHluYW1pY0Nhc3Q8U3ltYm9sKj4oZXJyb3IpKSB7Cisg
ICAgICAgICAgICBpZiAoc3ltYm9sLT5wcml2YXRlTmFtZSgpID09IG1vZHVsZUxvYWRlckFscmVh
ZHlSZXBvcnRlZEVycm9yU3ltYm9sKQorICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTogQmVj
YXVzZSB3ZSBoYXZlIG5vdCBzdXBwb3J0ZWQgdGhlICJjcm9zc29yaWdpbiIgYXR0cmlidXRlIGlu
IHRoZSBtb2R1bGUgdGFnLAorICAgICAgICAvLyB3ZSBwYXNzIHRoZSBudWxscHRyIHRvIHJlcG9y
dEV4Y2VwdGlvbidzIENhY2hlZFNjcmlwdCogcGFyYW1ldGVyLiBXaGVuIHBhc3NpbmcgbnVsbHB0
cgorICAgICAgICAvLyB0byByZXBvcnRFeGNlcHRpb24sIFdlYkNvcmUgZG9lcyBub3Qgc2hvdyB0
aGUgZGV0YWlsIG9mIHRoZSBlcnJvciBpZiB0aGUgVVJMIG9mIHRoZQorICAgICAgICAvLyBzb3Vy
Y2UgZG9lcyBub3QgcGFzcyB0aGUgc2FtZSBvcmlnaW4gcG9saWN5LiBTbyB0aGUgY3VycmVudCBi
ZWhhdmlvciBpcyBjb25zZXJ2YXRpdmU7CisgICAgICAgIC8vIG9ubHkgdGhlIG1vZHVsZSBjb2Rl
IHRoYXQgVVJMIGlzIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4gY2FuIHJlcG9ydCB0aGUgZGV0YWls
cyBvZiB0aGUKKyAgICAgICAgLy8gZXJyb3IuIE9uY2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBi
ZWhhdmlvciwgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVj
LCBlcnJvciwgbnVsbHB0cik7CisKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKKyAgICB9KTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9k
dWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFN0cmluZyYgbW9kdWxl
TmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3
b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwo
d29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhl
YygpOworCisgICAgaW5pdE1vZHVsZUdyYXBoKG1vZHVsZUdyYXBoLCBKU01haW5UaHJlYWRFeGVj
U3RhdGU6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSksIHdvcmxkKTsKK30KKwordm9pZCBT
Y3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29u
c3QgU3RyaW5nJiBtb2R1bGVOYW1lKQoreworICAgIGxvYWRNb2R1bGVJbldvcmxkKG1vZHVsZUdy
YXBoLCBtb2R1bGVOYW1lLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKK3ZvaWQgU2Ny
aXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBo
LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBET01XcmFwcGVyV29ybGQmIHdv
cmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01X
aW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBl
eGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0TW9kdWxlR3Jh
cGgobW9kdWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBz
b3VyY2VDb2RlLmpzU291cmNlQ29kZSgpKSwgd29ybGQpOworfQorCit2b2lkIFNjcmlwdENvbnRy
b2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIGxvYWRNb2R1bGVJbldvcmxkKG1vZHVsZUdy
YXBoLCBzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKK3ZvaWQgU2Ny
aXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYg
bW9kdWxlR3JhcGgsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVy
IGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRv
d1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmds
b2JhbEV4ZWMoKTsKKworICAgIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNNYWluVGhy
ZWFkRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgSWRlbnRpZmllcjo6ZnJv
bVVpZCgmZXhlYy0+dm0oKSwgbW9kdWxlR3JhcGgubW9kdWxlS2V5KCkpKTsKKworICAgIFdlYWtQ
dHI8TW9kdWxlR3JhcGg+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha1B0cigpKTsKKyAgICBKU0Z1
bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVj
LT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRl
KikgeworICAgICAgICBpZiAoUmVmUHRyPE1vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaCA9IHdlYWtQ
dHIuZ2V0KCkpCisgICAgICAgICAgICBtb2R1bGVHcmFwaC0+bm90aWZ5RXhlY3V0ZWQoKTsKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKwor
ICAgIHByb21pc2UtPnRoZW4oZXhlYywgZnVsZmlsbEhhbmRsZXIsIGNyZWF0ZU1vZHVsZUxvYWRl
ckFzeW5jaHJvbm91c0Vycm9yUmVwb3J0RnVuY3Rpb24obW9kdWxlR3JhcGgsIHdvcmxkKSk7Cit9
CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKE1vZHVsZUdy
YXBoJiBtb2R1bGVHcmFwaCkKK3sKKyAgICBsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKG1v
ZHVsZUdyYXBoLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKK0RlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgc291
cmNlVVJMLCBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBET01XcmFwcGVyV29ybGQmIHdv
cmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgY29uc3Qg
U291cmNlQ29kZSYganNTb3VyY2VDb2RlID0gbW9kdWxlUmVjb3JkLT5zb3VyY2VDb2RlKCk7CisK
KyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBF
eGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKyAgICBjb25z
dCBTdHJpbmcqIHNhdmVkU291cmNlVVJMID0gbV9zb3VyY2VVUkw7CisgICAgbV9zb3VyY2VVUkwg
PSAmc291cmNlVVJMLnN0cmluZygpOworCisgICAgUmVmPEZyYW1lPiBwcm90ZWN0KG1fZnJhbWUp
OworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTCwg
anNTb3VyY2VDb2RlLmZpcnN0TGluZSgpKTsKKworICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBt
b2R1bGVSZWNvcmQtPmV2YWx1YXRlKGV4ZWMpOworICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZh
bHVhdGlvbkV4Y2VwdGlvbjsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAg
IGV2YWx1YXRpb25FeGNlcHRpb24gPSBleGVjLT52bSgpLmV4Y2VwdGlvbigpOworCisgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFdmFsdWF0ZVNjcmlwdChjb29raWUsIG1fZnJhbWUp
OworCisgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pIHsKKyAgICAgICAgcmVwb3J0RXhjZXB0
aW9uKGV4ZWMsIGV2YWx1YXRpb25FeGNlcHRpb24sIG51bGxwdHIpOworICAgICAgICBtX3NvdXJj
ZVVSTCA9IHNhdmVkU291cmNlVVJMOworICAgICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUoKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOworICAg
IHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVjLT52bSgpLCByZXR1cm5WYWx1ZSk7
Cit9CisKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRl
TW9kdWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3Jk
KQoreworICAgIHJldHVybiBldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsIG1vZHVsZVJlY29yZCwg
bWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCiBSZWY8RE9NV3JhcHBlcldvcmxkPiBTY3Jp
cHRDb250cm9sbGVyOjpjcmVhdGVXb3JsZCgpCiB7CiAgICAgcmV0dXJuIERPTVdyYXBwZXJXb3Js
ZDo6Y3JlYXRlKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKQEAgLTI3Miw2ICs0MDEsMzIgQEAg
SlNET01XaW5kb3dTaGVsbCogU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdChET01XcmFwcGVy
V29ybGQmIHdvcmxkKQogICAgIHJldHVybiB3aW5kb3dTaGVsbDsKIH0KIAorc3RhdGljIElkZW50
aWZpZXIganNWYWx1ZVRvTW9kdWxlS2V5KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkK
K3sKKyAgICBpZiAodmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6
OmZyb21VaWQoanNDYXN0PFN5bWJvbCo+KHZhbHVlKS0+cHJpdmF0ZU5hbWUoKSk7CisgICAgQVNT
RVJUKHZhbHVlLmlzU3RyaW5nKCkpOworICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KGV4ZWMsIGpzQ2FzdDxKU1N0cmluZyo+KHZhbHVlKS0+dmFsdWUoZXhlYykpOworfQorCit2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1bGVHcmFwaChNb2R1bGVHcmFwaCYgbW9kdWxlR3Jh
cGgsIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQor
eworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAg
IEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAg
V2Vha1B0cjxNb2R1bGVHcmFwaD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrUHRyKCkpOworICAg
IEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRl
KGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFt3ZWFrUHRyXShFeGVj
U3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgLy8gTW9kdWxlR3JhcGgsIHNjcmlwdCBlbGVtZW50IGFu
ZCBkb2N1bWVudCBtYXkgYmUgZGVzdHJveWVkIGR1cmluZyBsb2FkaW5nIHRoZSBtb2R1bGUuCisg
ICAgICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIG5vdCBleGVjdXRlIG1vZHVsZSBib2R5
LgorICAgICAgICBpZiAoUmVmUHRyPE1vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaCA9IHdlYWtQdHIu
Z2V0KCkpIHsKKyAgICAgICAgICAgIElkZW50aWZpZXIgbW9kdWxlS2V5ID0ganNWYWx1ZVRvTW9k
dWxlS2V5KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIG1vZHVsZUdyYXBo
LT5ub3RpZnlMb2FkZWQobW9kdWxlS2V5LmltcGwoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKyAgICBwcm9taXNl
LT50aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCBjcmVhdGVNb2R1bGVMb2FkZXJBc3luY2hyb25v
dXNFcnJvclJlcG9ydEZ1bmN0aW9uKG1vZHVsZUdyYXBoLCB3b3JsZCkpOworfQorCiBUZXh0UG9z
aXRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdAogewog
ICAgIC8vIEZJWE1FOiBJZiB3ZSBhcmUgbm90IGN1cnJlbnRseSBwYXJzaW5nLCB3ZSBzaG91bGQg
dXNlIG91ciBjdXJyZW50IGxvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmgKaW5kZXggMDdjNTNiN2M4ZWRmYjRlMjhmNWNhMTNhYTJjNGUwNTU5
NGVmNTEyMi4uOWEzMTkzM2M3NDE4MjJlZmE3NDdiOWQ5YjJmMjI4NzdjZGE3YWVhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtNDQsNiAr
NDQsOSBAQCBjbGFzcyBTY3JpcHRWYWx1ZTsKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3Mg
SlNHbG9iYWxPYmplY3Q7CisgICAgY2xhc3MgSlNNb2R1bGVSZWNvcmQ7CisgICAgY2xhc3MgSlNJ
bnRlcm5hbFByb21pc2U7CisKICAgICBjbGFzcyBFeGVjU3RhdGU7CiAKICAgICBuYW1lc3BhY2Ug
QmluZGluZ3MgewpAQCAtNTcsNiArNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBG
cmFtZTsKIGNsYXNzIEhUTUxEb2N1bWVudDsKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OworY2xh
c3MgTW9kdWxlR3JhcGg7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgU2VjdXJpdHlP
cmlnaW47CiBjbGFzcyBXaWRnZXQ7CkBAIC0xMTUsNiArMTE5LDE3IEBAIGNsYXNzIFNjcmlwdENv
bnRyb2xsZXIgewogICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmKTsKICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZUlu
V29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYpOwogCisgICAg
dm9pZCBsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYgbW9kdWxl
TmFtZSwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBsb2FkTW9kdWxlKE1vZHVsZUdyYXBo
JiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKKyAgICB2b2lkIGxvYWRNb2R1bGVJbldvcmxk
KE1vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYp
OworICAgIHZvaWQgbG9hZE1vZHVsZShNb2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmKTsKKworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFw
aCYgLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShN
b2R1bGVHcmFwaCYpOworCisgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVNb2R1
bGUoY29uc3QgVVJMJiwgSlNDOjpKU01vZHVsZVJlY29yZCosIERPTVdyYXBwZXJXb3JsZCYpOwor
ICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpT
Qzo6SlNNb2R1bGVSZWNvcmQqKTsKKwogICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxl
clBvc2l0aW9uKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuYWJsZUV2YWwoKTsKQEAgLTEzNSw2ICsx
NTAsOCBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKIAogICAgIGNvbnN0IFN0cmluZyogc291
cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0gLy8gMCBpZiB3ZSBhcmUgbm90
IGV2YWx1YXRpbmcgYW55IHNjcmlwdAogCisgICAgY29uc3QgSlNDOjpQcml2YXRlTmFtZSYgbW9k
dWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKSBjb25zdCB7IHJldHVybiBtX21v
ZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOyB9CisKICAgICB2b2lkIGNsZWFy
V2luZG93U2hlbGwoRE9NV2luZG93KiBuZXdET01XaW5kb3csIGJvb2wgZ29pbmdJbnRvUGFnZUNh
Y2hlKTsKICAgICB2b2lkIHVwZGF0ZURvY3VtZW50KCk7CiAKQEAgLTE3MCw2ICsxODcsOCBAQCBj
bGFzcyBTY3JpcHRDb250cm9sbGVyIHsKIAogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBK
U0RPTVdpbmRvd1NoZWxsKiBpbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQg
aW5pdE1vZHVsZUdyYXBoKE1vZHVsZUdyYXBoJiwgSlNDOjpKU0ludGVybmFsUHJvbWlzZSosIERP
TVdyYXBwZXJXb3JsZCYpOworICAgIEpTQzo6SlNGdW5jdGlvbiogY3JlYXRlTW9kdWxlTG9hZGVy
QXN5bmNocm9ub3VzRXJyb3JSZXBvcnRGdW5jdGlvbihNb2R1bGVHcmFwaCYsIERPTVdyYXBwZXJX
b3JsZCYpOwogCiAgICAgdm9pZCBkaXNjb25uZWN0UGxhdGZvcm1TY3JpcHRPYmplY3RzKCk7CiAK
QEAgLTE3OCw2ICsxOTcsNyBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAgICBjb25zdCBT
dHJpbmcqIG1fc291cmNlVVJMOwogCiAgICAgYm9vbCBtX3BhdXNlZDsKKyAgICBKU0M6OlByaXZh
dGVOYW1lIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7CiAKICAgICAv
LyBUaGUgcm9vdCBvYmplY3QgdXNlZCBmb3Igb2JqZWN0cyBib3VuZCBvdXRzaWRlIHRoZSBjb250
ZXh0IG9mIGEgcGx1Z2luLCBzdWNoCiAgICAgLy8gYXMgTlBBUEkgcGx1Z2lucy4gVGhlIHBsdWdp
bnMgdXNpbmcgdGhlc2Ugb2JqZWN0cyBwcmV2ZW50IGEgcGFnZSBmcm9tIGJlaW5nIGNhY2hlZCBz
byB0aGV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyMTc5M2MyMmYwNTNmYjdiMDY1Njgx
N2NmYzdkYWIzMTg0YWU4YmQ0Li4zODYxZmU4NTNiMGViOTI2YWQ1YzcwOWMzMzkzZDk2ZTY0NTVl
YmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMiw2ICsxMDIsNyBAQAogI2luY2x1
ZGUgIk1lZGlhUHJvZHVjZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgogI2luY2x1
ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgogI2luY2x1ZGUgIk5hbWVOb2Rl
TGlzdC5oIgogI2luY2x1ZGUgIk5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCkBAIC00NjEsNiAr
NDYyLDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmws
IHVuc2lnbmVkIGRvY3VtZW50Q2xhc3NlcywgdW5zaWcKICAgICAsIG1fc3RhcnRUaW1lKHN0ZDo6
Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpKQogICAgICwgbV9vdmVyTWluaW11bUxheW91dFRo
cmVzaG9sZChmYWxzZSkKICAgICAsIG1fc2NyaXB0UnVubmVyKHN0ZDo6bWFrZV91bmlxdWU8U2Ny
aXB0UnVubmVyPigqdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihzdGQ6Om1ha2VfdW5pcXVl
PE1vZHVsZUxvYWRlcj4oKnRoaXMpKQogICAgICwgbV94bWxWZXJzaW9uKEFTQ0lJTGl0ZXJhbCgi
MS4wIikpCiAgICAgLCBtX3htbFN0YW5kYWxvbmUoU3RhbmRhbG9uZVVuc3BlY2lmaWVkKQogICAg
ICwgbV9oYXNYTUxEZWNsYXJhdGlvbihmYWxzZSkKQEAgLTYwMiw2ICs2MDQsNyBAQCBEb2N1bWVu
dDo6fkRvY3VtZW50KCkKICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0VW5sZXNzU3VzcGVuZGVk
Rm9yUGFnZUNhY2hlKCk7CiAKICAgICBtX3NjcmlwdFJ1bm5lciA9IG51bGxwdHI7CisgICAgbV9t
b2R1bGVMb2FkZXIgPSBudWxscHRyOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3NGNlYWE5NmJjOTJmNDc4MTdjZWJiNWYzY2Y5Mzkw
YTE5YTc3ZDY5Li5mNTdjNDEzMWZkY2U1NWNjY2Q0ZTYwODBkYmI1MTk1M2M0YjI3YzNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtMTI4LDYgKzEyOCw3IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tU
YXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFRdWVy
eUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKK2NsYXNzIE1vZHVsZUxvYWRlcjsKIGNs
YXNzIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0
aW9uOwogY2xhc3MgTm9kZUZpbHRlcjsKQEAgLTkyNyw2ICs5MjgsNyBAQCBjbGFzcyBEb2N1bWVu
dCA6IHB1YmxpYyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0
RXhlY3V0aW9uQwogICAgIERvY3VtZW50JiB0b3BEb2N1bWVudCgpIGNvbnN0OwogICAgIAogICAg
IFNjcmlwdFJ1bm5lciogc2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9zY3JpcHRSdW5uZXIuZ2V0
KCk7IH0KKyAgICBNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlcigpIHsgcmV0dXJuIG1fbW9kdWxl
TG9hZGVyLmdldCgpOyB9CiAKICAgICBIVE1MU2NyaXB0RWxlbWVudCogY3VycmVudFNjcmlwdCgp
IGNvbnN0IHsgcmV0dXJuICFtX2N1cnJlbnRTY3JpcHRTdGFjay5pc0VtcHR5KCkgPyBtX2N1cnJl
bnRTY3JpcHRTdGFjay5sYXN0KCkuZ2V0KCkgOiAwOyB9CiAgICAgdm9pZCBwdXNoQ3VycmVudFNj
cmlwdChQYXNzUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50Pik7CkBAIC0xNTEwLDYgKzE1MTIsNyBA
QCBjbGFzcyBEb2N1bWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3Bl
LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQwogICAgIGJvb2wgbV9vdmVyTWluaW11bUxheW91dFRo
cmVzaG9sZDsKICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0UnVubmVyPiBtX3Njcmlw
dFJ1bm5lcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRl
cjsKIAogICAgIFZlY3RvcjxSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+PiBtX2N1cnJlbnRTY3Jp
cHRTdGFjazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI2NjY2
M2E3ZjY5MWI4NjU1YTUwMTU4MmQ2NzhhMDE0NTM4YjIxZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorCisj
aW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5u
ZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworTW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKEVsZW1lbnQmIGVsZW1lbnQpCisgICAgOiBt
X2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKK3sKK30KKwor
dm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVL
ZXkpCit7CisgICAgbV9tb2R1bGVLZXkgPSBtb2R1bGVLZXk7CisgICAgbV9lbGVtZW50LmRvY3Vt
ZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVhZHkodG9TY3JpcHRFbGVt
ZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6Om5vdGlm
eUVycm9yZWQoKQoreworICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1fZWxlbWVudCkt
PmRpc3BhdGNoRXJyb3JFdmVudCgpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpub3RpZnlFeGVj
dXRlZCgpCit7CisgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KS0+ZGlz
cGF0Y2hMb2FkRXZlbnQoKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6ZXZhbHVhdGUoKQorewor
ICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAg
ICAgICBmcmFtZS0+c2NyaXB0KCkubGlua0FuZEV2YWx1YXRlTW9kdWxlKCp0aGlzKTsKK30KKwor
dm9pZCBNb2R1bGVHcmFwaDo6bG9hZChjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAg
QVNTRVJUKG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpOworICAgIG1fZWxlbWVudC5kb2N1
bWVudCgpLmZyYW1lKCktPnNjcmlwdCgpLmxvYWRNb2R1bGUoKnRoaXMsIG1vZHVsZU5hbWUpOwor
fQorCit2b2lkIE1vZHVsZUdyYXBoOjpsb2FkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJj
ZUNvZGUpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpOworICAg
IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgpLmxvYWRNb2R1bGUoKnRoaXMs
IHNvdXJjZUNvZGUpOworfQorCitSZWY8TW9kdWxlR3JhcGg+IE1vZHVsZUdyYXBoOjpjcmVhdGUo
RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2R1bGVHcmFw
aChlbGVtZW50KSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1
bGVHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWZjMDRjZTc4NmQ4YTFmNDhkZGIwYTc3ODkwNzg3ZDkzZDYyNGU5YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUdyYXBoX2gKKyNkZWZpbmUgTW9kdWxlR3JhcGhfaAor
CisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFz
cyBTY3JpcHRTb3VyY2VDb2RlOworCisvLyBLZWVwIGxpZmV0aW1lIG9mIGEgTW9kdWxlR3JhcGgg
dGhlIHNhbWUgdG8gYSBTY3JpcHRFbGVtZW50LgorY2xhc3MgTW9kdWxlR3JhcGggOiBwdWJsaWMg
UmVmQ291bnRlZDxNb2R1bGVHcmFwaD4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVs
ZUdyYXBoKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxNb2R1bGVHcmFwaD4gY3JlYXRlKEVsZW1lbnQmKTsKKworICAgIEVsZW1lbnQmIGVsZW1lbnQo
KSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5
KCkgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KKworICAgIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmIG1vZHVsZU5hbWUpOworICAgIHZvaWQgbG9hZChjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
Jik7CisgICAgdm9pZCBldmFsdWF0ZSgpOworCisgICAgV2Vha1B0cjxNb2R1bGVHcmFwaD4gd2Vh
a1B0cigpCisgICAgeworICAgICAgICByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCk7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlMb2FkZWQoVW5pcXVlZFN0cmluZ0ltcGwq
IG1vZHVsZUtleSk7CisgICAgdm9pZCBub3RpZnlFcnJvcmVkKCk7CisgICAgdm9pZCBub3RpZnlF
eGVjdXRlZCgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1vZHVsZUdyYXBoKEVsZW1lbnQm
KTsKKworICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKKyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0lt
cGw+IG1fbW9kdWxlS2V5OworICAgIFdlYWtQdHJGYWN0b3J5PE1vZHVsZUdyYXBoPiBtX3dlYWtQ
dHJGYWN0b3J5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9k
dWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nTW9kdWxl
R3JhcGguY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdNb2R1bGVHcmFwaC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2Y4ZWYyM2ZjOTk1M2RhMTlmMzRmMzIxMDRlNzAwNzBkNzIxNGQyYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nTW9kdWxlR3JhcGguY3BwCkBA
IC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGVuZGluZ01vZHVsZUdyYXBoLmgiCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUGVuZGluZ01vZHVsZUdyYXBoOjpQZW5kaW5nTW9kdWxlR3JhcGgo
KQoreworfQorCitQZW5kaW5nTW9kdWxlR3JhcGg6OlBlbmRpbmdNb2R1bGVHcmFwaChFbGVtZW50
KiBlbGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCit7Cit9CisKK1BlbmRpbmdNb2R1
bGVHcmFwaDo6flBlbmRpbmdNb2R1bGVHcmFwaCgpCit7Cit9CisKK1JlZlB0cjxFbGVtZW50PiBQ
ZW5kaW5nTW9kdWxlR3JhcGg6OnJlbGVhc2VFbGVtZW50QW5kQ2xlYXIoKQoreworICAgIFJlZlB0
cjxFbGVtZW50PiBlbGVtZW50OworICAgIHN3YXAoZWxlbWVudCwgbV9lbGVtZW50KTsKKyAgICBy
ZXR1cm4gZWxlbWVudDsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UGVuZGluZ01vZHVsZUdyYXBoLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ01vZHVsZUdy
YXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTE0MjFkOGI5M2U2ODY1MGU3M2RmYWZhN2EwODNhNmY4MGExMWRj
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nTW9kdWxlR3Jh
cGguaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQZW5kaW5nTW9kdWxl
R3JhcGhfaAorI2RlZmluZSBQZW5kaW5nTW9kdWxlR3JhcGhfaAorCisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CisKK2NsYXNz
IFBlbmRpbmdNb2R1bGVHcmFwaCB7CitwdWJsaWM6CisgICAgUGVuZGluZ01vZHVsZUdyYXBoKCk7
CisgICAgUGVuZGluZ01vZHVsZUdyYXBoKEVsZW1lbnQqKTsKKyAgICAvLyBOb3QgdG8gaW5jbHVk
ZSBFbGVtZW50LmgsIHdlIGRlY2xhcmUgdGhlIGRlc3RydWN0b3IsIGJ1dCB0aGUgaW1wbGVtZW50
YXRpb24gYmVjb21lcyBlbXB0eS4KKyAgICB+UGVuZGluZ01vZHVsZUdyYXBoKCk7CisKKyAgICBS
ZWZQdHI8RWxlbWVudD4gcmVsZWFzZUVsZW1lbnRBbmRDbGVhcigpOworcHJpdmF0ZToKKyAgICAv
LyBPbmx5IGhvbGQgYW4gZWxlbWVudCBzaW5jZSBhbiBlbGVtZW50IGtlZXBzIGEgbW9kdWxlIGdy
YXBoLgorICAgIFJlZlB0cjxFbGVtZW50PiBtX2VsZW1lbnQ7Cit9OworCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY2YmJlY2UxZDM1ZTFhNDc2M2Jm
OWViZWJmMGYwYzEyY2RiZWYxZDcuLmU4NTZhZTEyOTk2MGQ3OTgyYzQ2NTQzNTY1MGYwYTJkYzEx
NTY3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWdub3JlRGVzdHJ1
Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCkBAIC0xNjEsNiAr
MTYyLDEwIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3VwcG9ydGVkKExlZ2Fj
eVR5cGVTdXBwb3J0IHN1cHBvcnRMZWdhY3lUeXBlcykKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0gZWxzZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TUlNRVR5cGUodHlwZS5zdHJpcFdoaXRlU3BhY2UoKS5sb3dlcigpKSB8fCAoc3VwcG9ydExlZ2Fj
eVR5cGVzID09IEFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSAmJiBpc0xlZ2FjeVN1cHBv
cnRlZEphdmFTY3JpcHRMYW5ndWFnZSh0eXBlKSkpCiAgICAgICAgIHJldHVybiB0cnVlOworI2lm
IEVOQUJMRShFUzZfTU9EVUxFUykKKyAgICBlbHNlIGlmICh0eXBlID09ICJtb2R1bGUiKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjE3
LDYgKzIyMiw5IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0
UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgZWxzZQogICAgICAgICBt
X2NoYXJhY3RlckVuY29kaW5nID0gZG9jdW1lbnQuY2hhcnNldCgpOwogCisgICAgaWYgKGlzTW9k
dWxlVHlwZSgpKQorICAgICAgICByZXR1cm4gbG9hZE1vZHVsZShzY3JpcHRTdGFydFBvc2l0aW9u
KTsKKwogICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkKICAgICAgICAgaWYgKCFyZXF1ZXN0
U2NyaXB0KHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMzE3LDYgKzMyNSw5IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0
KCkKICAgICAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CiAgICAg
ICAgIG1fY2FjaGVkU2NyaXB0ID0gMDsKICAgICB9CisgICAgLy8gRklYTUU6IFRoZSBtb2R1bGUg
bG9hZGVyIHNob3VsZCBoYXZlIHRoZSBtZWNoYW5pc20gdG8gc3RvcCBsb2FkaW5nLgorICAgIC8v
IFRoZSBjdXJyZW50IGxvYWRlciBzcGVjIGRvZXMgbm90IGhhdmUgdGhpcy4gT25jZSBpdCBpcyBz
cGVjaWZpZWQKKyAgICAvLyB3ZSB3aWxsIGludHJvZHVjZSB0aGlzIGZlYXR1cmUuCiB9CiAKIHZv
aWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKQEAg
LTMzMiw2ICszNDMsNTcgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlw
dCogY2FjaGVkU2NyaXB0KQogICAgIGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwog
fQogCitib29sIFNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBz
Y3JpcHRTdGFydFBvc2l0aW9uKQoreworICAgIC8vIFRoZSBicm93c2VyIG1vZHVsZSBsb2FkZXIg
bG9hZHMgdGhlIG1vZHVsZSBzb3VyY2VzLgorICAgIC8vIFNpbmNlIHRoZSBtb2R1bGUgaW52b2x2
ZXMgbG9hZGluZyBvZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMgYW5kIHRoZSBkZXBlbmRlbnQgbW9k
dWxlcyBkb2VzIG5vdCBoYXZlIGNvcnJlc3BvbmRpbmcgc2NyaXB0IGVsZW1lbnRzLAorICAgIC8v
IHRoZSBmdW5jdGlvbmFsaXR5IG9mIGxvYWRpbmcgbW9kdWxlcyBpcyBzZXBhcmF0ZWQgZnJvbSB0
aGUgc2NyaXB0IGVsZW1lbnQuCisgICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKSB7CisgICAg
ICAgIFN0cmluZyBzb3VyY2VVcmwgPSBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpOworICAgICAgICBS
ZWY8RG9jdW1lbnQ+IG9yaWdpbmFsRG9jdW1lbnQobV9lbGVtZW50LmRvY3VtZW50KCkpOworICAg
ICAgICBpZiAoIW1fZWxlbWVudC5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVcmwpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIFNjcmlwdCBlbGVtZW50IG1h
eSBiZSBkZXRhY2hlZCBhbmQgYXR0YWNoZWQgdG8gYSBkaWZmZXJlbnQgZG9jdW1lbnQgd2hpbGUg
ZXhlY3V0aW5nIHRoZSBldmVudCBsaXN0ZW5lci4KKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuaW5E
b2N1bWVudCgpIHx8ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0
cigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChzdHJpcExlYWRp
bmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJsKS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisKKyAgICAgICAgLy8gRklYTUU6IFNob3VsZCBzdXBwb3J0IGNyb3NzLW9yaWdpbiBt
b2RlIGluIHRoZSBtb2R1bGUgdGFnLgorICAgICAgICAvLyBIb3dldmVyIHdlIGRvbid0IGhhdmUg
dGhlIHBvbGljeSB0byBhcHBseSB0aGlzIG1vZGUgdG8gdGhlIHJlc291cmNlcyBvZiB0aGUgZGVw
ZW5kZW50IG1vZHVsZXMuCisgICAgICAgIC8vIFByb3ZpZGVkIG11bHRpcGxlIG1vZHVsZSB0YWdz
LAorICAgICAgICAvLworICAgICAgICAvLyAgIEE6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9
Ii4uLiIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CisgICAgICAgIC8vICAgQjog
PHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi4uIj48L3NjcmlwdD4KKyAgICAgICAgLy8KKyAg
ICAgICAgLy8gJ0EnIGhhcyB0aGUgImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUuIEJ1dCAnQicgZG9l
cyBub3QgaGF2ZSBpdC4KKyAgICAgICAgLy8gSG93ZXZlciwgRVM2IG1vZHVsZXMgYWxsb3cgJ0En
IGFuZCAnQicgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUgYW5kIGl0IHdpbGwgYmUgY2FjaGVkIGlu
IHRoZQorICAgICAgICAvLyBtb2R1bGUgbG9hZGVyLiBJbiB0aGF0IGNhc2UsIGl0IGlzIGNvbnRy
b3ZlcnNpYWwgdGhhdCB3aGljaCAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSB3aWxsIGJlCisgICAg
ICAgIC8vIGFwcGxpZWQgdG8gdGhlIG1vZHVsZSBsb2FkZWQgYnkgdGhlIGJvdGguIE9uY2UgdGhl
IHNwZWMgb2YgdGhlIG1vZHVsZSBsb2FkZXIgaXMgZml4ZWQsIHdlCisgICAgICAgIC8vIHNob3Vs
ZCBmb2xsb3cgaXQuCisKKyAgICAgICAgbV9tb2R1bGVHcmFwaCA9IE1vZHVsZUdyYXBoOjpjcmVh
dGUobV9lbGVtZW50KTsKKyAgICAgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVy
KCktPnF1ZXVlTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgpOwor
ICAgICAgICBtX21vZHVsZUdyYXBoLT5sb2FkKHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpOworICAg
ICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBpZiAoIW1fZWxlbWVudC5kb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5hbGxvd0lubGluZVNjcmlwdChtX2VsZW1lbnQuZG9jdW1lbnQoKS51cmwoKSwgbV9zdGFy
dExpbmVOdW1iZXIsIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBSZXNldCBsaW5lIG51bWJlcmluZyBmb3IgbmVzdGVk
IHdyaXRlcy4KKyAgICBUZXh0UG9zaXRpb24gcG9zaXRpb24gPSBtX2VsZW1lbnQuZG9jdW1lbnQo
KS5pc0luRG9jdW1lbnRXcml0ZSgpID8gVGV4dFBvc2l0aW9uKCkgOiBzY3JpcHRTdGFydFBvc2l0
aW9uOworICAgIG1fbW9kdWxlR3JhcGggPSBNb2R1bGVHcmFwaDo6Y3JlYXRlKG1fZWxlbWVudCk7
CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlTW9kdWxlR3Jh
cGhGb3JFeGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgpOworICAgIG1fbW9kdWxlR3JhcGgt
PmxvYWQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRDb250ZW50KCksIG1fZWxlbWVudC5kb2N1bWVu
dCgpLnVybCgpLCBwb3NpdGlvbikpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFNjcmlw
dEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAg
ICBBU1NFUlQoIW1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmgKaW5kZXggYjdlNzNkMGRlZTgzZDMyNGU4NzJmN2JjNGMxYjkzM2RjOTZjMTEyYS4uZWNj
MDA1MmFiMmIyMWVjNTlhNTk0M2RmNzY5MTc3ZTUzZjAwNTBmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IENhY2hlZFNjcmlwdDsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBFbGVtZW50OworY2xh
c3MgTW9kdWxlR3JhcGg7CiBjbGFzcyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNl
Q29kZTsKIApAQCAtNTksNiArNjAsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCByZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQ7IH0KICAgICBib29sIHdp
bGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkgY29uc3QgeyByZXR1cm4gbV93
aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZzsgfQogICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRT
Y3JpcHQ7IH0KKyAgICBNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGgoKSB7IHJldHVybiBtX21vZHVs
ZUdyYXBoLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKICAgICBTY3JpcHRFbGVtZW50KEVsZW1lbnQm
LCBib29sIGNyZWF0ZWRCeVBhcnNlciwgYm9vbCBpc0V2YWx1YXRlZCk7CkBAIC04Miw2ICs4NCw4
IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsK
ICAgICBib29sIHJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOwogICAgIHZv
aWQgc3RvcExvYWRSZXF1ZXN0KCk7CiAKKyAgICBib29sIGxvYWRNb2R1bGUoY29uc3QgVGV4dFBv
c2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlG
aW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBTdHJpbmcg
c291cmNlQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CkBAIC05Myw2ICs5Nyw3IEBAIGNsYXNz
IFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICB2aXJ0
dWFsIGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFz
U291cmNlQXR0cmlidXRlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5
cGUoKSBjb25zdCA9IDA7CiAKICAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CiAgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKQEAgLTEwOSw2ICsxMTQs
NyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7
CiAgICAgYm9vbCBtX3JlcXVlc3RVc2VzQWNjZXNzQ29udHJvbCA6IDE7CiAgICAgU3RyaW5nIG1f
Y2hhcmFjdGVyRW5jb2Rpbmc7CiAgICAgU3RyaW5nIG1fZmFsbGJhY2tDaGFyYWN0ZXJFbmNvZGlu
ZzsKKyAgICBSZWZQdHI8TW9kdWxlR3JhcGg+IG1fbW9kdWxlR3JhcGg7CiB9OwogCiBTY3JpcHRF
bGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggOTYzNjk4MDRhZDhmMDc0YmQ3MzZhZmJmYjUwMmE0NWZj
OTE1NzYwMS4uNTgzMTRhZjk2MTQwY2JkZTUxNjllNGE4ODU1MGU1MTI4NmQyZDM1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWljcm9UYXNr
LmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKyNpbmNsdWRlICJQZW5kaW5nTW9kdWxlR3Jh
cGguaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVu
dC5oIgogCkBAIC00OCw2ICs1MCwxMCBAQCBTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIoKQog
ICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nQXN5bmNTY3JpcHRzLnNpemUoKTsgKytp
KQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbW9kdWxlR3JhcGhzVG9FeGVjdXRlU29vbi5zaXpl
KCk7ICsraSkKKyAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50
KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGVuZGluZ01vZHVsZUdyYXBocy5z
aXplKCk7ICsraSkKKyAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNv
dW50KCk7CiB9CiAKIHZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihT
Y3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRT
Y3JpcHQ+IGNhY2hlZFNjcmlwdCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQpAQCAtNzEs
NiArNzcsMTggQEAgdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNj
cmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFIKICAgICB9CiB9CiAKK3ZvaWQgU2Ny
aXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNj
cmlwdEVsZW1lbnQsIE1vZHVsZUdyYXBoJikKK3sKKyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7
CisKKyAgICBFbGVtZW50JiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOworICAg
IEFTU0VSVChlbGVtZW50LmluRG9jdW1lbnQoKSk7CisKKyAgICBtX2RvY3VtZW50LmluY3JlbWVu
dExvYWRFdmVudERlbGF5Q291bnQoKTsKKworICAgIG1fcGVuZGluZ01vZHVsZUdyYXBocy5hZGQo
c2NyaXB0RWxlbWVudCwgUGVuZGluZ01vZHVsZUdyYXBoIHsgJmVsZW1lbnQgfSk7Cit9CisKIHZv
aWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKQEAgLTk3
LDYgKzExNSwxMyBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5U2NyaXB0UmVhZHkoU2NyaXB0
RWxlbWVudCogc2NyaXB0RWxlbWVudCwgRXhlY3V0aW9uVHlwZQogICAgIG1fdGltZXIuc3RhcnRP
bmVTaG90KDApOwogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFk
eShTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50KQoreworICAgIEFTU0VSVChtX3BlbmRpbmdN
b2R1bGVHcmFwaHMuY29udGFpbnMoc2NyaXB0RWxlbWVudCkpOworICAgIG1fbW9kdWxlR3JhcGhz
VG9FeGVjdXRlU29vbi5hcHBlbmQobV9wZW5kaW5nTW9kdWxlR3JhcGhzLnRha2Uoc2NyaXB0RWxl
bWVudCkpOworICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCiB2b2lkIFNjcmlwdFJ1
bm5lcjo6dGltZXJGaXJlZCgpCiB7CiAgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1l
bnQpOwpAQCAtMTIxLDYgKzE0NiwyMCBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCgp
CiAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPmV4ZWN1
dGUoY2FjaGVkU2NyaXB0KTsKICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnRE
ZWxheUNvdW50KCk7CiAgICAgfQorCisgICAgVmVjdG9yPFBlbmRpbmdNb2R1bGVHcmFwaD4gbW9k
dWxlR3JhcGhzOworICAgIG1vZHVsZUdyYXBocy5zd2FwKG1fbW9kdWxlR3JhcGhzVG9FeGVjdXRl
U29vbik7CisKKyAgICBmb3IgKFBlbmRpbmdNb2R1bGVHcmFwaCYgcGVuZGluZ01vZHVsZUdyYXBo
IDogbW9kdWxlR3JhcGhzKSB7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gcGVu
ZGluZ01vZHVsZUdyYXBoLnJlbGVhc2VFbGVtZW50QW5kQ2xlYXIoKTsKKyAgICAgICAgQVNTRVJU
KGVsZW1lbnQpOworICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKKyAgICAgICAgaWYgKCFlbGVtZW50KQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5n
ZXQoKSktPm1vZHVsZUdyYXBoKCktPmV2YWx1YXRlKCk7CisgICAgICAgIG1fZG9jdW1lbnQuZGVj
cmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIH0KKwogICAgIE1pY3JvVGFza1F1ZXVl
OjpzaW5nbGV0b24oKS5ydW5NaWNyb1Rhc2tzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuaAppbmRleCAyN2NkYmY4YjNhZjU2OTQ2MmU1YjlhZWIxNmNkNzY1MDUwODkxZTBkLi5lMGEy
ZDk5YzkyNWE3MDJhYmU1ZDYxNTczYzRkMjdlYWJlZGI4ZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dFJ1bm5lci5oCkBAIC0zNyw2ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q2FjaGVkU2NyaXB0OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OworY2xhc3MgTW9k
dWxlR3JhcGg7CitjbGFzcyBQZW5kaW5nTW9kdWxlR3JhcGg7CiBjbGFzcyBQZW5kaW5nU2NyaXB0
OwogY2xhc3MgU2NyaXB0RWxlbWVudDsKIApAQCAtNDgsMTAgKzUxLDEyIEBAIGNsYXNzIFNjcmlw
dFJ1bm5lciB7CiAKICAgICBlbnVtIEV4ZWN1dGlvblR5cGUgeyBBU1lOQ19FWEVDVVRJT04sIElO
X09SREVSX0VYRUNVVElPTiB9OwogICAgIHZvaWQgcXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2Ny
aXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4sIEV4ZWN1dGlv
blR5cGUpOwotICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9z
Y3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3Jk
ZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0eSgpOyB9CisgICAg
dm9pZCBxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBNb2R1bGVH
cmFwaCYpOworICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9z
Y3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3Jk
ZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0eSgpIHx8ICFtX21v
ZHVsZUdyYXBoc1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdNb2R1bGVHcmFw
aHMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsK
ICAgICB2b2lkIG5vdGlmeVNjcmlwdFJlYWR5KFNjcmlwdEVsZW1lbnQqLCBFeGVjdXRpb25UeXBl
KTsKKyAgICB2b2lkIG5vdGlmeU1vZHVsZUdyYXBoUmVhZHkoU2NyaXB0RWxlbWVudCopOwogCiBw
cml2YXRlOgogICAgIHZvaWQgdGltZXJGaXJlZCgpOwpAQCAtNjAsNiArNjUsOCBAQCBjbGFzcyBT
Y3JpcHRSdW5uZXIgewogICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1
dGVJbk9yZGVyOwogICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVT
b29uOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3Jr
LyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhlY3V0ZS1hcy1zb29uLWFzLXBvc3NpYmxlCiAg
ICAgSGFzaE1hcDxTY3JpcHRFbGVtZW50KiwgUGVuZGluZ1NjcmlwdD4gbV9wZW5kaW5nQXN5bmNT
Y3JpcHRzOworICAgIFZlY3RvcjxQZW5kaW5nTW9kdWxlR3JhcGg+IG1fbW9kdWxlR3JhcGhzVG9F
eGVjdXRlU29vbjsKKyAgICBIYXNoTWFwPFNjcmlwdEVsZW1lbnQqLCBQZW5kaW5nTW9kdWxlR3Jh
cGg+IG1fcGVuZGluZ01vZHVsZUdyYXBoczsKICAgICBUaW1lciBtX3RpbWVyOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCBlMTNhNWNkZGNjYTJj
YjNiNzU2YThkM2E1N2UyM2Y4MGE5YjQzZTQ4Li5kMTVlYjcxYmUzZjZiY2ZiMTA3ODJmOTc0ODc1
YjQwMGJjMGQ3MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNw
cApAQCAtMTYxLDYgKzE2MSwxNSBAQCBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VB
dHRyaWJ1dGUoKSBjb25zdAogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKHNyY0F0dHIpOwog
fQogCitib29sIEhUTUxTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworI2lm
IEVOQUJMRShFUzZfTU9EVUxFUykKKyAgICByZXR1cm4gZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0
cikuc3RyaW5nKCkgPT0gIm1vZHVsZSI7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorfQorCiB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpkaXNwYXRjaExvYWRFdmVudCgpCiB7CiAg
ICAgQVNTRVJUKCFoYXZlRmlyZWRMb2FkRXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmgKaW5kZXggMzEyYzY2MjZlOGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZl
MzdiMi4uMWRmZDhjOGI3M2U4NzJhYmNkNWViNGIzNDJlNzkyZDMzNTAzZTc5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBI
VE1MU2NyaXB0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIFNjcmlw
dEVsZW1lbnQgewogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA4YWRmY2ZhNDEwYWJlNDdlMzMy
NGFlNWI4ZDkyNDNmNTY2NjQ1ZDk1Li5iYTVmMDZmNDRiNmIxMTdmY2JiNjIzMzUzOGUyZTE0Y2Q3
ZjhlNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNTEs
NiArMTUxLDExIEBAIGJvb2wgU1ZHU2NyaXB0RWxlbWVudDo6ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFNWR1NjcmlwdEVsZW1lbnQ6Omlz
TW9kdWxlVHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFNWR1Nj
cmlwdEVsZW1lbnQ6Omhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhh
c0F0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuaAppbmRleCA1MzVlNDJlNmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAx
Li44YWZkZTMxMTI1ZTVkZDQ5OGRiODJhNGUwOTgzYWIwNzRlMGRjYzY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgU1ZHU2NyaXB0
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50CiAgICAgdmlydHVhbCBib29sIGFzeW5j
QXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJB
dHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3Vy
Y2VBdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVU
eXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZl
bnQoKSBvdmVycmlkZSB7IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9h
ZEV2ZW50KHRoaXMpOyB9CiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRl
eCA2ZDgyNWU0OWZjYjkyODVlYTJhZDI5OTExYWU1YjdiMzMyMzMxODc0Li42ZjE1NWQzYjZiMzVj
NmFkMmI1Y2Q3N2NjYjEyODRjZDQ2YzMwNDE0IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDktMjEgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1
bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwg
U291cmNlLnhjc2NoZW1lOgorCiAyMDE1LTA5LTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IHRlc3RzIG9uIFdpbmRvd3MgYWZ0ZXIg
c3dpdGNoaW5nIHRvIENNYWtlLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hh
cmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZSBiL1dlYktpdC54Y3dvcmtzcGFj
ZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWUKaW5kZXggMjIzZTg4
YmJjNDBlNTlhMmUzZjQ3NjYyMWNkMzIwZmNmNWJlNTNmZS4uMWI3M2NkNzBkYWUxNTE0N2Q5YTZj
MWE1Y2E0ZmFhYTk1Y2U0ZjEyOCAxMDA2NDQKLS0tIGEvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hh
cmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQkKKysrIGIvV2ViS2l0Lnhjd29y
a3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQkKQEAgLTEz
OCwxMCArMTM4LDEwIEBACiAgICAgICA8L0J1aWxkQWN0aW9uRW50cmllcz4KICAgIDwvQnVpbGRB
Y3Rpb24+CiAgICA8VGVzdEFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVn
IgogICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3Vu
ZGF0aW9uLkRlYnVnZ2VyLkxMREIiCiAgICAgICBzZWxlY3RlZExhdW5jaGVySWRlbnRpZmllciA9
ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIuTExEQiIKLSAgICAgIHNob3VsZFVz
ZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIgotICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0g
IkRlYnVnIj4KKyAgICAgIHNob3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIj4KICAg
ICAgIDxUZXN0YWJsZXM+CiAgICAgICA8L1Rlc3RhYmxlcz4KICAgICAgIDxNYWNyb0V4cGFuc2lv
bj4KQEAgLTE1MywxNyArMTUzLDIxIEBACiAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVy
ID0gImNvbnRhaW5lcjpUb29scy9NaW5pQnJvd3Nlci9NaW5pQnJvd3Nlci54Y29kZXByb2oiPgog
ICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CiAgICAgICA8L01hY3JvRXhwYW5zaW9uPgor
ICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPC9BZGRpdGlvbmFsT3B0aW9ucz4KICAg
IDwvVGVzdEFjdGlvbj4KICAgIDxMYXVuY2hBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlv
biA9ICJEZWJ1ZyIKICAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRl
YnVnZ2VyRm91bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgogICAgICAgc2VsZWN0ZWRMYXVuY2hlcklk
ZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCiAgICAg
ICBsYXVuY2hTdHlsZSA9ICIwIgogICAgICAgdXNlQ3VzdG9tV29ya2luZ0RpcmVjdG9yeSA9ICJO
TyIKLSAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyIKICAgICAgIGlnbm9yZXNQZXJz
aXN0ZW50U3RhdGVPbkxhdW5jaCA9ICJZRVMiCiAgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmlu
ZyA9ICJZRVMiCisgICAgICBkZWJ1Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50ZXJuYWwiCiAgICAg
ICBhbGxvd0xvY2F0aW9uU2ltdWxhdGlvbiA9ICJZRVMiPgotICAgICAgPEJ1aWxkYWJsZVByb2R1
Y3RSdW5uYWJsZT4KKyAgICAgIDxCdWlsZGFibGVQcm9kdWN0UnVubmFibGUKKyAgICAgICAgIHJ1
bm5hYmxlRGVidWdnaW5nTW9kZSA9ICIwIj4KICAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UK
ICAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJpbWFyeSIKICAgICAgICAgICAg
IEJsdWVwcmludElkZW50aWZpZXIgPSAiOEQxMTA3MjYwNDg2Q0VCODAwRTQ3MDkwIgpAQCAtMTc2
LDEwICsxODAsMTAgQEAKICAgICAgIDwvQWRkaXRpb25hbE9wdGlvbnM+CiAgICA8L0xhdW5jaEFj
dGlvbj4KICAgIDxQcm9maWxlQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVs
ZWFzZSIKICAgICAgIHNob3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIgogICAgICAg
c2F2ZWRUb29sSWRlbnRpZmllciA9ICIiCiAgICAgICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0b3J5
ID0gIk5PIgotICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCiAgICAgICBkZWJ1
Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiPgogICAgPC9Qcm9maWxlQWN0aW9uPgogICAgPEFu
YWx5emVBY3Rpb24K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261841</attachid>
            <date>2015-09-23 14:18:55 -0700</date>
            <delta_ts>2015-09-23 15:35:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150923141837.patch</filename>
            <type>text/plain</type>
            <size>88246</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTM4YzU2NDIxMDg1MmYxMDUxZTFhOGI0NzRkMmQyZGRjYWYxZWE1Li45YjVhOWQxN2YyYzU0ODk1
NmM3OGUxZmMzNTcwNGYwYmYzY2M3NTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRp
bWUvU3ltYm9sLmg6CisKIDIwMTUtMDktMTggIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNh
a0BnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIGluIHRoZSBXZWJB
c3NlbWJseSBwYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyM2EwNjIyNzYwY2I0NDA5YmY2MTI1ZDU1YTUw
YWQwOTdmOWI1ZWMwLi4yNzVjOTA2YzE2NDc5OGU1YjgxOWFkNDI1N2EyYmU4MGIyNjI4Njg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAwIEBACisyMDE1LTA5LTIzICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVncmF0ZSBFUzYgTW9k
dWxlcyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzOiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbAorICAgICAg
ICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2UuaDogQWRkZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdI
ZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaDogQWRkZWQuCisgICAgICAgICogRm9yd2Fy
ZGluZ0hlYWRlcnMvcnVudGltZS9TeW1ib2wuaDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxv
YWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVM
b2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxv
YWRlckV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6TW9kdWxlRmV0Y2hlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1
bGVGZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6cnVu
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TW9kdWxlRmV0Y2hlcjo6Y2FjaGVkU2NyaXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9Nb2R1bGVMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRl
cjo6TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6cmVzb2x2
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxl
TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlTG9h
ZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6
CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Omhh
bmRsZU1vZHVsZUxvYWRlckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlu
a0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250
cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRv
TW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1
bGVHcmFwaCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9y
dGVkRXJyb3JTeW1ib2wpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
On5Eb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKiBkb20vTW9kdWxlR3JhcGguY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpNb2R1bGVHcmFwaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlFcnJvcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
ZHVsZUdyYXBoOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6bm90
aWZ5RXZhbHVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpsb2FkKToKKyAg
ICAgICAgKiBkb20vTW9kdWxlR3JhcGguaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1
bGVHcmFwaDo6ZWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6bW9kdWxl
S2V5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjp3ZWFrRWxlbWVudFB0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6ZXJyb3JPY2N1cnJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVHcmFwaDo6aXNMb2FkZWQpOgorICAgICAgICAqIGRvbS9QZW5kaW5nTW9k
dWxlR3JhcGguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdNb2R1bGVHcmFw
aDo6UGVuZGluZ01vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdNb2R1bGVH
cmFwaDo6flBlbmRpbmdNb2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nTW9k
dWxlR3JhcGg6OnJlbGVhc2VFbGVtZW50QW5kQ2xlYXIpOgorICAgICAgICAqIGRvbS9QZW5kaW5n
TW9kdWxlR3JhcGguaDogQWRkZWQuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3VwcG9ydGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
bGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojptb2R1bGVHcmFwaCk6
CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRSdW5uZXI6On5TY3JpcHRSdW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVy
OjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRSdW5uZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6aGFzUGVuZGluZ1NjcmlwdHMpOgorICAgICAg
ICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNj
cmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAgICAgICogc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaDoKKwogMjAxNS0wOS0xOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNTAxODcpOiB1cGRhdGVJZEZvclRyZWVT
Y29wZSBtYXkgbm90IGJlIGNhbGxlZCBpbnNpZGUgc2hhZG93IHRyZWVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IDgzZjVkZTI0ODUyYmMzNzhlZTBhNzcwMzlmNDYz
MTgyNWZkZGRiYmUuLmRkYjY4Y2NiMzY1NDQ1OTkxMGNkM2YyM2Y2Njg3NGQwMDU4OGE5NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC04Niw3ICs4Niw3IEBAIGNs
YXNzIFN5bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgU3ltYm9sKFZNJik7CiAg
ICAgU3ltYm9sKFZNJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgU3ltYm9sKFZNJiwgU3ltYm9sSW1w
bCYgdWlkKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1
aWQpOwogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBjYTFkZTRkMTU2OTQ4YmY3ZTEwZDBlZWI0NjZjY2ZjNWUzNjZiMTFhLi5k
ZDZhZGJmY2E5OWNhMzU1NjNhZDk5ZGQ1NjAyOWQ1N2U1YzhkMzJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTIyMyw2ICsxMjIzLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYUGF0
aFJlc3VsdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20u
Y3BwCisgICAgYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5jcHAKKyAgICBiaW5kaW5ncy9qcy9N
b2R1bGVMb2FkZXIuY3BwCiAgICAgYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5jcHAKICAg
ICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCiAgICAgYmluZGluZ3MvanMvU2NyaXB0
Q2FjaGVkRnJhbWVEYXRhLmNwcApAQCAtMTQ0Nyw2ICsxNDQ5LDcgQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIGRvbS9NZXNzYWdlUG9ydC5jcHAKICAgICBkb20vTWVzc2FnZVBvcnRDaGFubmVs
LmNwcAogICAgIGRvbS9NaWNyb1Rhc2suY3BwCisgICAgZG9tL01vZHVsZUdyYXBoLmNwcAogICAg
IGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKICAgICBk
b20vTXV0YXRpb25FdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaCBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZjU1N2EyZjIxZWNmNmIyYWVjYWQ2N2UzNTNlMTk2NmU0Nzk0ZTgwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJv
bWlzZS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJv
bWlzZV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlX2gKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzA4NmRkMzlhZmY5ZTEw
NGJkNWE2ZmY3YWU3OTI1NDYzODY5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaApA
QCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWRfaAor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGlt
ZS9KU01vZHVsZVJlY29yZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVu
dGltZS9KU01vZHVsZVJlY29yZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZTllY2ZmYmNmNTdjMmE5Yzc5NWNj
YjFkODAzNDBmOTE0ZDdkNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKQEAgLTAsMCArMSw0IEBACisj
aWZuZGVmIFdlYkNvcmVfRldEX0pTTW9kdWxlUmVjb3JkX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0Rf
SlNNb2R1bGVSZWNvcmRfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9kdWxlUmVjb3Jk
Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvU3ltYm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50
aW1lL1N5bWJvbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MDQyN2YwOTFhOWVjYWNmYmZhMDk5YWUwZDAzMGUw
ZTliYzVlYjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL1N5bWJvbC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZX
RF9TeW1ib2xfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9TeW1ib2xfaAorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1N5bWJvbC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTg4YTdmYzg4NjMwY2Q4ODU1NjFlYzVk
MDUxNTJmMGQ2NGFjMDVmOC4uODIwNDdlZDM3YjdkZmFkNTMxZmZhZjU1MmY0NWRjNzM3NGE2NmJh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjMxNyw2ICs2MzE3LDE0IEBACiAJCUUxRkY4RjY4MTgwNzQ2MDgwMDEzMjY3NCAv
KiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlw
dG9DdXN0b20uY3BwICovOyB9OwogCQlFMUZGOEY2QzE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5LmNwcCAqLzsgfTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuaCAqLzsgfTsKKwkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzlBNTIx
MUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi87IH07CisJCUUzMzlBNTI0MUJB
NkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdy
YXBoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4OTIxQkFEMTQ1RjAwRDYy
RUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7
IH07IH07CisJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5MzFCQUQx
NDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdT
ID0gKCk7IH07IH07CisJCUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4
OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9
IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCUUzODgzODlDMUJCMDdEMjUwMEQ2MkVFMyAvKiBQ
ZW5kaW5nTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM4ODM4OUExQkIwN0QyNTAwRDYyRUUzIC8qIFBlbmRpbmdNb2R1bGVHcmFw
aC5jcHAgKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OUQx
QkIwN0QyNTAwRDYyRUUzIC8qIFBlbmRpbmdNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4OUIxQkIwN0QyNTAwRDYyRUUzIC8q
IFBlbmRpbmdNb2R1bGVHcmFwaC5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07
IH07CiAJCUU0MDFDMjc1MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDAx
QzI3NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0MjRBMzlFMTMz
MERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlEMTMzMERGMDEwMENGNkRDOSAvKiBM
ZWdhY3lUaWxlR3JpZFRpbGUuaCAqLzsgfTsKIAkJRTQyNEEzQTAxMzMwREYxRTAwQ0Y2REM5IC8q
IExlZ2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0MjRBMzlGMTMzMERGMUUwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRp
bGUubW0gKi87IH07CkBAIC0xNDA2Niw2ICsxNDA3NCwxNCBAQAogCQlFMUZGOEY2NjE4MDc0NjA4
MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3Jp
dGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5
cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8q
IE1vZHVsZUdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1v
ZHVsZUdyYXBoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzOUE1MjIxQkE2
QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1vZHVsZUdyYXBoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgz
ODkyMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUZldGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMzg4Mzg5MzFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVGZXRjaGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1
bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxl
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4OTUxQkFEMTQ1
RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4
OUExQkIwN0QyNTAwRDYyRUUzIC8qIFBlbmRpbmdNb2R1bGVHcmFwaC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZW5kaW5nTW9kdWxlR3JhcGguY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5QjFCQjA3RDI1MDBENjJFRTMgLyogUGVuZGlu
Z01vZHVsZUdyYXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmRpbmdN
b2R1bGVHcmFwaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDAxQzI3NDE3Q0U1
M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBDb2xvckRh
dGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JEYXRhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1
IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ1NTUHJvcGVydHlOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMTUwNiw2ICsyMTUyMiwxMCBAQAogCQkJCTQxMTg5RUY4MUFEODIzM0MwMEI5MEEwRCAvKiBK
U1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHAgKi8sCiAJCQkJRTFDMzZEMzIwRUIw
QTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJCQlFMUMz
NkQzMzBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCAqLywKKwkJ
CQlFMzg4Mzg5MjFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5jcHAgKi8sCisJCQkJ
RTM4ODM4OTMxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCAqLywKKwkJCQlFMzg4
Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmNwcCAqLywKKwkJCQlFMzg4Mzg5
NTFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggKi8sCiAJCQkJNDE5OEJERUUxQTgx
MTIzNjAwQjIyRkI1IC8qIFJlYWRhYmxlSlNTdHJlYW0uY3BwICovLAogCQkJCTQxOThCREVGMUE4
MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFtLmggKi8sCiAJCQkJQkNBMzc4QkEwRDE1
RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8sCkBAIC0yMzQ3Miw2ICsyMzQ5
Miw4IEBACiAJCQkJNDFCRjcwMEEwRkU4NkY0OTAwNUU4REVDIC8qIE1lc3NhZ2VQb3J0Q2hhbm5l
bC5oICovLAogCQkJCUNCOENGMDE1MUE5MzRCNDMwMDBENTEwQiAvKiBNaWNyb1Rhc2suY3BwICov
LAogCQkJCTUzQjg5NUFEMTlEQzdDMzcwMDlDQUE5MyAvKiBNaWNyb1Rhc2suaCAqLywKKwkJCQlF
MzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwICovLAorCQkJCUUzMzlB
NTIyMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oICovLAogCQkJCTg1MDMxQjJGMEE0
NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzMDBBNDRFRkM3
MDBGOTkyRTAgLyogTW91c2VFdmVudC5oICovLAogCQkJCTE0MUI5NEU1MDlFQzQyMjMwMDBFOTQx
MyAvKiBNb3VzZUV2ZW50LmlkbCAqLywKQEAgLTIzNTMxLDYgKzIzNTUzLDggQEAKIAkJCQlFMTI4
NEFFMDEwNDQ3RDQ1MDBFQUVCNTIgLyogUGFnZVRyYW5zaXRpb25FdmVudC5oICovLAogCQkJCUUx
Mjg0QUQ5MTA0NDdBRUIwMEVBRUI1MiAvKiBQYWdlVHJhbnNpdGlvbkV2ZW50LmlkbCAqLywKIAkJ
CQk4M0QyNkQzRDFBRkRDQzUwMDAxQjM4NzMgLyogUGFyZW50Tm9kZS5pZGwgKi8sCisJCQkJRTM4
ODM4OUExQkIwN0QyNTAwRDYyRUUzIC8qIFBlbmRpbmdNb2R1bGVHcmFwaC5jcHAgKi8sCisJCQkJ
RTM4ODM4OUIxQkIwN0QyNTAwRDYyRUUzIC8qIFBlbmRpbmdNb2R1bGVHcmFwaC5oICovLAogCQkJ
CThBN0NDOTZGMTIwNzZGOEEwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmNwcCAqLywKIAkJCQk4
QTdDQzk2QTEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oICovLAogCQkJCTQxQkY3
MDBEMEZFODZGNjEwMDVFOERFQyAvKiBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAgKi8s
CkBAIC0yNDU4Niw2ICsyNDYxMCw3IEBACiAJCQkJMzE2MDIzRjAxNTMyQzQwQzAwRDUwRkY0IC8q
IERpY3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEz
MSAvKiBEaWN0aW9uYXJ5TG9va3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNE
MTMxMDA4REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzM5
QTUyNDFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdFREFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVz
aE1vbml0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAv
KiBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxNjEs
NiArMjYxODYsNyBAQAogCQkJCUNFMTI1MjQxMUExNkIxQjYwMDg2NDQ4MCAvKiBNZWRpYVBsYXll
clNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1l
ZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZF
NSAvKiBNZWRpYVF1ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg4Mzg5OTFCQUQxNDVGMDBE
NjJFRTMgLyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlE
QUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NEUxOTU5MkUwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICov
LAogCQkJCUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjc4Myw2ICsyNjgwOSw3IEBACiAJCQkJMEZCODg5MEYxNjdEMzAxNjAw
MTBDREE1IC8qIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTMxQ0JEMTExNjFBNDRFOTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlVHJlZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFGNjJGMjYxNERBRkVBMTAwNDE1NTZDIC8qIFNjcm9sbGluZ1RocmVhZC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRTM4ODM4OUQxQkIwN0QyNTAwRDYyRUUzIC8qIFBlbmRpbmdN
b2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBQUREQTQxNERCNDA5RjAwQUY2NEIz
IC8qIFNjcm9sbGluZ1RyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzM4QzAzMTY0NDczREQw
MDA5MUVCMiAvKiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVBM0U4ODE5MUIzQkQ3MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzIwNSw2ICsyNzIzMiw3IEBACiAJCQkJMDgwRTQ5Mjgx
MjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwOEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBp
biBIZWFkZXJzICovLAogCQkJCTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0
cmljc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVF
MyAvKiBNb2R1bGVGZXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FDRTBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHVGV4dFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
N0FEMTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDg1NEIwMjUxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzk3Miw2ICsyODAwMCw3IEBACiAJCQkJQ0QwRUVFMEUxNDc0
M0YzOTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwQkMxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMDcxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdB
RSAvKiBNb2R1bGVHcmFwaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjA4MTEyQjAyNkY3
MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0Q1NTk2OTExNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGRDMxNjBCRTEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9GaWxlUmVh
ZGVyTWFjLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg1MzUsNiArMjg1NjQsNyBAQAogCQkJCUU0
QTAwNzg1MUI4MjBFRDMwMDJDNUE2RSAvKiBEYXRhVVJMRGVjb2Rlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0OTgzOTE1MTBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJOEFEMEE1OTcxNEM4ODM1ODAwMEQ4M0M1IC8qIERPTVdlYktp
dENTU1JlZ2lvblJ1bGUubW0gaW4gU291cmNlcyAqLywKKwkJCQlFMzg4Mzg5ODFCQUQxNDVGMDBE
NjJFRTMgLyogTW9kdWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjExRTYyMEUx
QzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9y
dFJ1bGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzkxQTM4RjFCNDk4QUJFMDAzRjlFRkEgLyog
SlNOb2RlT3JTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODU4OCw2ICsyODYxOCw3IEBA
CiAJCQkJOTc2NjUwNEYxNDRGQkZGRTAwRjZCQjUxIC8qIEV2ZW50RmFjdG9yeS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5M0MwOUE4MTBCMDY0RjAwMDA1QUJENEQgLyogRXZlbnRIYW5kbGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZFNjkzOEI2MTA0NUQ2N0UwMDhFQUJCNiAvKiBFdmVudEhh
bmRsZXJJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQlFMzg4Mzg5QzFCQjA3RDI1MDBENjJFRTMg
LyogUGVuZGluZ01vZHVsZUdyYXBoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQzA5QTdGMEIw
NjRFRUYwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlB
RDQ0OTVGMzE0MUZDMDg5MDA1NDFFREYgLyogRXZlbnRMaXN0ZW5lck1hcC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDNDAwRDEwOTE4RjFDOEY2MDA5MEQ4NjMgLyogRXZlbnRMb29wSW5wdXQuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yODg2Miw2ICsyODg5Myw3IEBACiAJCQkJQTg3MURCMkUwQTE1
MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4NzFEQjI5MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDb2xFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4NzFEQjI4MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzODgzODk2MUJBRDE0NUYwMEQ2MkVFMyAv
KiBNb2R1bGVGZXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjJEMEExNTBCRDYw
MEIxMkE2OCAvKiBIVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
ODcxREIzMDBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5MzQ0MkNBMDBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0Nv
bGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA3OWI3NDBiZTVlMWEyNjAwYzQxZDczMjEyNTE1
ZjhmZjExMmJlOTY2Li4zMmEwNWI2YzgwMjllYzI2ODZjOGY4YjlkNzhmZTUyODIxMDUwYTZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAg
LTMxLDExICszMSwxMyBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVk
ZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRl
ci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQuaD4KICNpbmNsdWRlIDxydW50aW1lL01pY3JvdGFzay5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTU2LDcgKzU4LDcgQEAgc3RhdGljIGJvb2wgc2hv
dWxkQWxsb3dBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0LCBFeGVj
U3RhdGUqIGUKIAogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93QmFzZTo6c19pbmZvID0geyAi
V2luZG93IiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNET01XaW5kb3dCYXNlKSB9OwogCi1jb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBK
U0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZzaG91bGRBbGxv
d0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8s
ICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVU
YXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Citjb25zdCBHbG9iYWxP
YmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUgPSB7ICZzaG91bGRBbGxvd0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBv
cnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVu
dGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRC
ZWZvcmVUaW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRlckZldGNoLCBu
dWxscHRyLCBudWxscHRyLCAmbW9kdWxlTG9hZGVyRXZhbHVhdGUgfTsKIAogSlNET01XaW5kb3dC
YXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1Jl
ZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNET01XaW5kb3dTaGVsbCogc2hlbGwpCiAgICAgOiBK
U0RPTUdsb2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCAmc2hlbGwtPndvcmxkKCksICZzX2dsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKQpAQCAtMjc5LDQgKzI4MSwzMSBAQCB2b2lkIEpTRE9NV2luZG93
QmFzZTo6ZmlyZUZyYW1lQ2xlYXJlZFdhdGNocG9pbnRzRm9yV2luZG93KERPTVdpbmRvdyogd2lu
ZG93KQogICAgIH0KIH0KIAorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jh
c2U6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNW
YWx1ZSByZWZlcnJlcikKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6
OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChEb2N1bWVu
dCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0
dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4ZWMs
IG1vZHVsZU5hbWUsIHJlZmVycmVyKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhl
YywgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1Vu
ZGVmaW5lZCgpKTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5KQoreworICAgIEpTRE9N
V2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGds
b2JhbE9iamVjdCk7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmlt
cGwoKS5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigp
LT5mZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUtleSk7CisgICAgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5y
ZWplY3QoZXhlYywganNVbmRlZmluZWQoKSk7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTVdpbmRv
d0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmQpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0
ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAo
RG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAg
ICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmV2YWx1YXRlKGdsb2JhbE9iamVj
dCwgZXhlYywgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQpOworICAgIHJldHVybiBKU0M6OmpzVW5k
ZWZpbmVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggNWVkMzg2MmMxNDExODdjMDA2YjY4
OGRiNzk3Nzk0YjM2OTgxMDU2NC4uMmQ0NGI4MDA5ZTU0ZGJiMDc0ZThmOTk3N2MxNmIyNWUxMjU3
ZWFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
QEAgLTc4LDYgKzc4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSlNDOjpXYXRj
aHBvaW50U2V0IG1fd2luZG93Q2xvc2VXYXRjaHBvaW50czsKIAogICAgIHByaXZhdGU6CisgICAg
ICAgIC8vIE1vZHVsZSBMb2FkZXIgaG9va3MuCisgICAgICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlKiBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGlj
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBK
U0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworCiAgICAgICAgIFJl
ZlB0cjxET01XaW5kb3c+IG1faW1wbDsKICAgICAgICAgSlNET01XaW5kb3dTaGVsbCogbV9zaGVs
bDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJl
YWRFeGVjU3RhdGUuaAppbmRleCAwOWU3ZTViNjAyNjg3OWI1MzM1YTFmZTFlZjcxYzQ0NzQzMGJm
Y2Q0Li40ZmQ2ODNlMTU5MTAyYjE1Mjg3ZDYzODk5YzAxNmVmZDM3NDgwM2U1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaApAQCAt
NzQsNiArNzQsMjQgQEAgY2xhc3MgSlNNYWluVGhyZWFkRXhlY1N0YXRlIHsKICAgICAgICAgdGFz
ay5ydW4oZXhlYyk7CiAgICAgfQogCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IGxvYWRNb2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFt
ZSkKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhl
Yyk7CisgICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSk7Cisg
ICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6U291cmNlQ29kZSYgc291cmNlQ29kZSkKKyAg
ICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7Cisg
ICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywgc291cmNlQ29kZSk7CisgICAgfQor
CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVs
ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBtb2R1bGVLZXkp
CisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMp
OworICAgICAgICByZXR1cm4gSlNDOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgbW9kdWxl
S2V5KTsKKyAgICB9CisKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
IGluc3RydW1lbnRGdW5jdGlvbkNhbGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEpTQzo6Q2Fs
bFR5cGUsIGNvbnN0IEpTQzo6Q2FsbERhdGEmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNmMWVhYTA4ODgw
ZDRhNjNiY2FkNGUzNDlmYzRhMDU5NGZlMTNlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwCkBAIC0wLDAgKzEsMTM1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoZXIu
aCIKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVk
U2NyaXB0LmgiCisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIK
KyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK01vZHVsZUZldGNoZXI6Ok1vZHVsZUZldGNoZXIoSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1l
bnQoZG9jdW1lbnQpCisgICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgLCBtX2dsb2Jh
bE9iamVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCkKKyAgICAsIG1fZGVmZXJy
ZWQoZ2xvYmFsT2JqZWN0LT52bSgpLCBkZWZlcnJlZCkKK3sKK30KKworTW9kdWxlRmV0Y2hlcjo6
fk1vZHVsZUZldGNoZXIoKQoreworICAgIGlmIChtX2NhY2hlZFNjcmlwdCkgeworICAgICAgICBt
X2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICBtX2NhY2hlZFNjcmlw
dCA9IG51bGxwdHI7CisgICAgfQorfQorCitSZWY8TW9kdWxlRmV0Y2hlcj4gTW9kdWxlRmV0Y2hl
cjo6Y3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291
cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9kdWxlRmV0Y2hlcihn
bG9iYWxPYmplY3QsIHNvdXJjZVVSTCwgZGVmZXJyZWQsIGRvY3VtZW50KSk7Cit9CisKK2Jvb2wg
TW9kdWxlRmV0Y2hlcjo6cnVuKCkKK3sKKyAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9u
cyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7
CisgICAgb3B0aW9ucy5zZXRDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uKENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOworCisgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fc291cmNlVVJMKSwgb3B0aW9u
cyk7CisKKyAgICAvLyBGSVhNRTogU2hvdWxkIGhhbmRsZSAiY3Jvc3NvcmlnaW4iIG9wdGlvbnMu
CisgICAgLy8gT25jZSB0aGUgc3BlYyBkZXNjcmliZXMgdGhlIGRldGFpbHMsIHdlIHdpbGwgZm9s
bG93IGl0LgorICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKEF0b21pY1N0cmluZyhtX3NvdXJjZVVS
TC5zdHJpbmcoKSkpOworCisgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2RvY3VtZW50LmNhY2hlZFJl
c291cmNlTG9hZGVyKCkucmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKKyAgICBpZiAoIW1fY2FjaGVk
U2NyaXB0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBOb3RlOiBJZiB0aGUgY29u
dGVudCBpcyBhbHJlYWR5IGNhY2hlZCwgdGhpcyBpbW1laWRhdGVseSBjYWxscyBub3RpZnlGaW5p
c2hlZC4KKyAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworICAgIHJldHVybiB0
cnVlOworfQorCit2b2lkIE1vZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJjZSA9
PSBtX2NhY2hlZFNjcmlwdCk7CisgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgQVNTRVJUKG1fY2FjaGVkU2NyaXB0KTsKKyAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCA9IG1fY2FjaGVkU2NyaXB0OworICAgIG1f
Y2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKworI2lmIEVOQUJMRShOT1NOSUZGKQorICAgIGlmIChj
YWNoZWRTY3JpcHQgJiYgIWNhY2hlZFNjcmlwdC0+bWltZVR5cGVBbGxvd2VkQnlOb3NuaWZmKCkp
IHsKKyAgICAgICAgbV9kb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpT
ZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIlJlZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQg
ZnJvbSAnIiArIGNhY2hlZFNjcmlwdC0+dXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVu
Z3RoKCkgKyAiJyBiZWNhdXNlIGl0cyBNSU1FIHR5cGUgKCciICsgY2FjaGVkU2NyaXB0LT5taW1l
VHlwZSgpICsgIicpIGlzIG5vdCBleGVjdXRhYmxlLCBhbmQgc3RyaWN0IE1JTUUgdHlwZSBjaGVj
a2luZyBpcyBlbmFibGVkLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIEpTQzo6
SlNMb2NrSG9sZGVyIGxvY2sobV9nbG9iYWxPYmplY3QtPnZtKCkpOworICAgICAgICBKU0M6OkV4
ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIGlm
IChjYWNoZWRTY3JpcHQtPmVycm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgLy8gVGhlIG1v
ZHVsZSBsb2FkZXIgcGlwZWxpbmUgaXMgY29uc3RydWN0ZWQgYXMgYSBjaGFpbiBvZiBwcm9taXNl
cy4KKyAgICAgICAgICAgIC8vIFJlamVjdGluZyBhIHByb21pc2UgaWYgc29tZSBlcnJvciBvY2N1
cnMgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlIGV4ZWN1dGlvbiBmbG93IG9mCisgICAgICAgICAg
ICAvLyB0aGUgcHJvbWlzZSBjaGFpbiBpcyBkcml2ZW4gYnkgInJlamVjdGVkIiBvciAiZnVsZmls
bGVkIiBldmVudHMuCisgICAgICAgICAgICAvLyBJZiB0aGUgcHJvbWlzZSBpcyBub3QgcmVqZWN0
ZWQgd2hpbGUgZXJyb3Igb2NjdXJzLCByZWplY3QgaGFuZGxlciB3b24ndCBiZSBleGVjdXRlZAor
ICAgICAgICAgICAgLy8gYW5kIGFsbCB0aGUgc3Vic2VxdWVudCBwcm9taXNlIGNoYWluIHdhaXQg
dGhlIHJlc3VsdCBmb3JldmVyLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFzIGEg
cmVzdWx0LCBldmVuIGlmIHRoZSBlcnJvciBpcyBhbHJlYWR5IHJlcG9ydGVkIHRvIHRoZSBpbnNw
ZWN0b3IgZWxzZXdoZXJlLAorICAgICAgICAgICAgLy8gaXQgc2hvdWxkIGJlIHByb3BhZ2F0ZWQg
aW4gdGhlIHBpcGVsaW5lLiBGb3IgZXhhbXBsZSwgdGhlIGVycm9yIG9mIGxvYWRpbmcKKyAgICAg
ICAgICAgIC8vIENhY2hlZFJlc291cmNlIGlzIHJlcG9ydGVkIGJ5IHRoZSBsb2FkZXIuIEJ1dCB3
ZSBuZWVkIHRvIHJlamVjdCB0aGUgcHJvbWlzZSBieSBzb21lCisgICAgICAgICAgICAvLyBlcnJv
ci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBOb3QgdG8gcmVwb3J0IHRoZSBlcnJv
ciB0d2ljZSwgd2hlbiB3ZSBwcm9wYWdhdGUgdGhlIGVycm9yIHRoYXQgaXMgYWxyZWFkeSByZXBv
cnRlZAorICAgICAgICAgICAgLy8gdG8gdGhlIGluc3BlY3Rvciwgd2UgdGhyb3cgbW9kdWxlTG9h
ZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgc3ltYm9sIGluc3RlYWQuCisgICAgICAgICAg
ICAvLyBCeSBjb21wYXJpbmcgdGhlIHRocm93biBlcnJvciB3aXRoIHRoaXMgc3ltYm9sLCB3ZSBj
YW4gZGlzdGluZ3Vpc2ggZXJyb3JzIHJhaXNlZAorICAgICAgICAgICAgLy8gd2hlbiBsaW5raW5n
IG9yIGV4ZWN1dGluZyBhIG1vZHVsZSBncmFwaCBmcm9tIGVycm9ycyByZXBvcnRlZCBhbHJlYWR5
LgorICAgICAgICAgICAgLy8gSW4gdGhlIHJlamVjdCBoYW5kbGVyIG9mIHRoZSBwcm9taXNlLCB3
ZSBvbmx5IHJlcG9ydCBhIGVycm9yIHRoYXQgaXMgbm90IHRoaXMgc3ltYm9sLgorICAgICAgICAg
ICAgbV9kZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0o
KSwgKihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1i
b2woKS51aWQoKSkpKTsKKyAgICAgICAgfSBlbHNlIGlmICghY2FjaGVkU2NyaXB0LT53YXNDYW5j
ZWxlZCgpKSB7CisgICAgICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUoY2FjaGVk
U2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIG1fZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgSlND
Ojpqc1N0cmluZyhleGVjLCBzb3VyY2VDb2RlLnNvdXJjZSgpKSk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICAvLyBBIENhY2hlZFJlc291cmNlSGFuZGxlIGFsb25lIGRvZXMgbm90IHByZXZlbnQg
dGhlIHVuZGVybHlpbmcgQ2FjaGVkUmVzb3VyY2UKKyAgICAvLyBmcm9tIHB1cmdpbmcgaXRzIGRh
dGEgYnVmZmVyLiBVbnRpbCB3ZSBmaW5pc2ggdXNpbmcgdGhlIGJhY2tpbmcgYnVmZmVyIG9mIHRo
ZQorICAgIC8vIGNhY2hlZCBzY3JpcHQsIHdlIGRvbid0IHJlbW92ZSB0aGUgY2xpZW50LgorICAg
IGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworCisgICAgbV9kb2N1bWVudC5tb2R1
bGVMb2FkZXIoKS0+bm90aWZ5RmluaXNoZWQodGhpcyk7CisgICAgLy8gQWZ0ZXIgTW9kdWxlTG9h
ZGVyOjpub3RpZnlGaW5pc2hlZCBjYWxsLCB8dGhpc3wgbWF5IGJlIGRlc3Ryb3llZC4KK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI5M2QzNmFlMzYwZjJmNzJiMGU5OWVmYmE0MzdmNzM1NDZiNDYyMGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmgKQEAgLTAsMCAr
MSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9kdWxlRmV0Y2hlcl9oCisjZGVmaW5lIE1v
ZHVsZUZldGNoZXJfaAorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKKyNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlVSTC5oIgorI2luY2x1ZGUg
PGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRTY3JpcHQ7Citj
bGFzcyBEb2N1bWVudDsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworCitjbGFzcyBNb2R1bGVG
ZXRjaGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlRmV0Y2hlcj4sIHByaXZhdGUgQ2FjaGVk
UmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUZldGNoZXIp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1vZHVs
ZUZldGNoZXI+IGNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IFVSTCYgc291cmNlVVJM
LCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqLCBEb2N1bWVudCYpOworCisgICAgfk1v
ZHVsZUZldGNoZXIoKTsKKworICAgIGJvb2wgcnVuKCk7CisKKyAgICBDYWNoZWRTY3JpcHQqIGNh
Y2hlZFNjcmlwdCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9CisKK3ByaXZhdGU6
CisgICAgTW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IFVSTCYgc291cmNl
VVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqLCBEb2N1bWVudCYpOworCisgICAg
Ly8gRm9yIENhY2hlZFJlc291cmNlQ2xpZW50LgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOworCisgICAgRG9jdW1lbnQmIG1fZG9jdW1l
bnQ7CisgICAgVVJMIG1fc291cmNlVVJMOworICAgIEpTQzo6U3Ryb25nPEpTRE9NR2xvYmFsT2Jq
ZWN0PiBtX2dsb2JhbE9iamVjdDsKKyAgICBKU0M6OlN0cm9uZzxKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQ+IG1fZGVmZXJyZWQ7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U2NyaXB0PiBtX2NhY2hlZFNjcmlwdCB7IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBNb2R1bGVGZXRjaGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Nb2R1bGVMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMDJiMTYyZDAxMjNmNWEwODhhZWY3YmYw
YjQzYzUzMjk1MjdlYzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Nb2R1bGVMb2FkZXIuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgorCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJNaWNyb1Rhc2suaCIKKyNp
bmNsdWRlICJNb2R1bGVHcmFwaC5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxl
dGlvbi5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgor
I2luY2x1ZGUgPHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pT
U3RyaW5nLmg+CisjaW5jbHVkZSA8cnVudGltZS9TeW1ib2wuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitNb2R1bGVMb2FkZXI6Ok1vZHVsZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCisg
ICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQoreworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWVWYWx1ZSwgSlND
OjpKU1ZhbHVlIHJlZmVycmVyVmFsdWUpCit7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRl
KGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgaWYgKG1vZHVsZU5hbWVWYWx1ZS5pc1N5bWJvbCgp
KQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgbW9kdWxlTmFtZVZhbHVl
KTsKKworICAgIC8vIEZJWE1FOiBXZSBub3cgYXNzdW1lIHRoYXQgbW9kdWxlIG5hbWUgaXMgZWl0
aGVyIHN5bWJvbCBvciBzdHJpbmcuCisgICAgLy8gV2hlbiBleHBvc2luZyB0aGUgcmVmbGVjdGlv
biB0byB0aGUgbW9kdWxlIGxvYWRlciBhbmQgbW9kdWxlcywgd2UgbmVlZCB0byByZWNhc3QgdGhp
cyBwYXJ0LgorICAgIEFTU0VSVChtb2R1bGVOYW1lVmFsdWUuaXNTdHJpbmcoKSk7CisgICAgU3Ry
aW5nIG1vZHVsZU5hbWUgPSBKU0M6OmpzQ2FzdDxKU0M6OkpTU3RyaW5nKj4obW9kdWxlTmFtZVZh
bHVlKS0+dmFsdWUoZXhlYyk7CisKKyAgICAvLyBOb3csIHdlIGNvbnNpZGVyIHRoZSBnaXZlbiBt
b2R1bGVOYW1lIGFzIHRoZSBzYW1lIHRvIHRoZSBzcmM9Ii4uLiIgaW4gdGhlIHNjcmlwdCB0YWcu
CisgICAgLy8gV2UgdXNlIHRoZSBjb21wbGV0ZWQgVVJMIGFzIHRoZSBtb2R1bGUga2V5LgorICAg
IC8vCisgICAgLy8gRklYTUU6IFdlIG5lZWQgc2l0ZSBwYWNrYWdpbmcgc3lzdGVtLiBCdXQgaXQn
cyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYyB5ZXQuCisgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0
aHViLmlvL2xvYWRlci8jYnJvd3Nlci1sb2FkZXItcHJvdG90eXBlLSU0MCU0MHJlc29sdmUKKyAg
ICBVUkwgY29tcGxldGVkVVJMOworCisgICAgLy8gRklYTUU6IENoZWNrIG1fZG9jdW1lbnQgbGlm
ZXRpbWUuCisgICAgaWYgKHJlZmVycmVyVmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgY29tcGxl
dGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVOYW1lKTsKKyAgICBlbHNlIHsK
KyAgICAgICAgaWYgKHJlZmVycmVyVmFsdWUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgICAgIGNv
bXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwobW9kdWxlTmFtZSk7CisgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKHJlZmVycmVyVmFsdWUuaXNTdHJpbmcoKSk7Cisg
ICAgICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBKU0M6OmpzQ2FzdDxKU0M6OkpTU3RyaW5nKj4o
cmVmZXJyZXJWYWx1ZSktPnZhbHVlKGV4ZWMpOworICAgICAgICAgICAgY29tcGxldGVkVVJMID0g
bV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVOYW1lLCBVUkwoUGFyc2VkVVJMU3RyaW5nLCBy
ZWZlcnJlcikpOworICAgICAgICB9CisgICAgfQorICAgIGlmICghY29tcGxldGVkVVJMLmlzVmFs
aWQoKSkKKyAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywgY3JlYXRlRE9NRXhj
ZXB0aW9uKGV4ZWMsIFNZTlRBWF9FUlIpKTsKKworICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2
ZShleGVjLCBqc1N0cmluZyhleGVjLCBjb21wbGV0ZWRVUkwuc3RyaW5nKCkpKTsKK30KKworSlND
OjpKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9k
dWxlS2V5VmFsdWUpCit7CisgICAgLy8gRklYTUU6IFdoZW4gaW1wbGVtZW50aW5nIHJlZmxlY3Rp
dmUgbW9kdWxlIGxvYWRlciBhbmQgbW9kdWxlcywgd2Ugc2hvdWxkIHJlY2FzdCB0aGlzIGltcGxl
bWVudGF0aW9uLgorICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQg
PSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmpl
Y3QpOworCisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbW9kdWxlS2V5VmFsdWUuaXNTeW1ib2wo
KSwgIlN5bWJvbGljIG1vZHVsZSBrZXkgc2hvdWxkIGJlIGFscmVhZHkgZnVsZmlsbGVkIHdpdGgg
dGhlIGlubGluZWQgcmVzb3VyY2UuIik7CisgICAgQVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3Ry
aW5nKCkpOworCisgICAgSlNDOjpJZGVudGlmaWVyIG1vZHVsZUtleSA9IEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyhleGVjLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKGV4ZWMp
KTsKKworICAgIFVSTCBjb21wbGV0ZWRVUkwoUGFyc2VkVVJMU3RyaW5nLCBtb2R1bGVLZXkuaW1w
bCgpKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGNvbXBsZXRlZFVSTC5pc1ZhbGlkKCksICJU
aGUgcmVzb2x2ZSBob29rIHNob3VsZCBwcm9kdWNlIHRoZSB2YWxpZCBVUkwgYXMgYSBzdHJpbmcu
Iik7CisKKyAgICBSZWY8TW9kdWxlRmV0Y2hlcj4gZmV0Y2hlciA9IE1vZHVsZUZldGNoZXI6OmNy
ZWF0ZShKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCksIGNvbXBs
ZXRlZFVSTCwgZGVmZXJyZWQsIG1fZG9jdW1lbnQpOworICAgIG1fZmV0Y2hpbmdTZXQuYWRkKCZm
ZXRjaGVyLmdldCgpKTsKKyAgICBpZiAoIWZldGNoZXItPnJ1bigpKSB7CisgICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gZGVm
ZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OlN5bWJvbDo6Y3JlYXRlKGV4ZWMtPnZtKCksICooZnJh
bWUtPnNjcmlwdCgpLm1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkudWlk
KCkpKSk7CisgICAgfQorCisgICAgcmV0dXJuIGRlZmVycmVkLT5wcm9taXNlKCk7Cit9CisKK0pT
Qzo6SlNWYWx1ZSBNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBKU0M6OkpT
VmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUpCit7CisgICAgLy8gRklYTUU6IEN1cnJlbnRseSwgd2Ug
b25seSBzdXBwb3J0IEpTTW9kdWxlUmVjb3JkLgorICAgIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1v
ZHVsZVJlY29yZCA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpTTW9kdWxlUmVjb3JkKj4obW9k
dWxlUmVjb3JkVmFsdWUpOworICAgIGlmICghbW9kdWxlUmVjb3JkKQorICAgICAgICByZXR1cm4g
SlNDOjpqc1VuZGVmaW5lZCgpOworCisgICAgVVJMIHNvdXJjZVVSTDsKKyAgICBpZiAobW9kdWxl
S2V5VmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgc291cmNlVVJMID0gbV9kb2N1bWVudC51cmwo
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkp
OworICAgICAgICBzb3VyY2VVUkwgPSBVUkwoUGFyc2VkVVJMU3RyaW5nLCBhc1N0cmluZyhtb2R1
bGVLZXlWYWx1ZSktPnZhbHVlKGV4ZWMpKTsKKyAgICB9CisKKyAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gbV9kb2N1bWVudC5mcmFtZSgpKQorICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLmV2
YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgbW9kdWxlUmVjb3JkKTsKKyAgICByZXR1cm4gSlNDOjpq
c1VuZGVmaW5lZCgpOworfQorCit2b2lkIE1vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoTW9k
dWxlRmV0Y2hlciogZmV0Y2hlcikKK3sKKyAgICBtX2ZldGNoaW5nU2V0LnJlbW92ZShmZXRjaGVy
KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNDkzNjk2ODE2NWVlZDg1ODEwMTc4MWNkMTg1NDcwYzhlYjVlMGQwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmgKQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9kdWxlTG9hZGVyX2gKKyNkZWZp
bmUgTW9kdWxlTG9hZGVyX2gKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJNb2R1
bGVGZXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKyNpbmNsdWRlICJUaW1lci5o
IgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKworY2xh
c3MgTW9kdWxlTG9hZGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNb2R1bGVMb2FkZXIp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBNb2R1bGVM
b2FkZXIoRG9jdW1lbnQmKTsKKworICAgIERvY3VtZW50JiBkb2N1bWVudCgpCisgICAgeworICAg
ICAgICByZXR1cm4gbV9kb2N1bWVudDsKKyAgICB9CisKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlKiByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcmVmZXJyZXIpOworICAgIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXkpOworICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgbW9kdWxl
S2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkKTsKKworICAgIHZvaWQgbm90aWZ5RmluaXNo
ZWQoTW9kdWxlRmV0Y2hlciopOworcHJpdmF0ZToKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsK
KyAgICBIYXNoU2V0PFJlZlB0cjxNb2R1bGVGZXRjaGVyPj4gbV9mZXRjaGluZ1NldDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUxvYWRlcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDRi
M2IwOTcyYmU3N2YzYzc2NTk1ZjE0MGUyNmE3NDhmZjhlYTQ1MGMuLjk5YjdmOGI2MmE0YjdmZWFl
ZjNmYzViNGE3Y2VkNzE4YTUzZWQzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNiwxMSArMzYsMTMgQEAKICNpbmNsdWRlICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRl
ICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgogI2lu
Y2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VD
b25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
Vmlld0Jhc2UuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0
U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01NCw3ICs1NiwxMSBAQAogI2luY2x1ZGUgPGluc3BlY3Rv
ci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8cnVudGltZS9K
U0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJlY29y
ZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KIApA
QCAtODYsNiArOTIsNyBAQCBTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250cm9sbGVyKEZyYW1l
JiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX3NvdXJjZVVSTCgwKQogICAg
ICwgbV9wYXVzZWQoZmFsc2UpCisgICAgLCBtX21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVy
cm9yU3ltYm9sKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1fd2lu
ZG93U2NyaXB0TlBPYmplY3QoMCkKICNlbmRpZgpAQCAtMTc1LDExICsxODIsMTI4IEBAIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25z
dCBTY3JpcHRTb3VyY2VDb2RlCiAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKGV4
ZWMtPnZtKCksIHJldHVyblZhbHVlKTsKIH0KIAotRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2Ny
aXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29k
ZSkgCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShj
b25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogewogICAgIHJldHVybiBldmFsdWF0
ZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwogfQogCitzdGF0
aWMgdm9pZCBoYW5kbGVNb2R1bGVMb2FkZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
ZXJyb3IsIGNvbnN0IFByaXZhdGVOYW1lJiBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJv
clN5bWJvbCkKK3sKKyAgICAvLyBPbmNlIHJlcG9ydGVkIGVycm9yIGlzIG1hcmtlZCBhcyBtb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbC4KKyAgICAvLyBEb24ndCByZXBvcnQg
aXQgaGVyZSBhZ2Fpbi4KKyAgICBpZiAoU3ltYm9sKiBzeW1ib2wgPSBqc0R5bmFtaWNDYXN0PFN5
bWJvbCo+KGVycm9yKSkgeworICAgICAgICBpZiAoc3ltYm9sLT5wcml2YXRlTmFtZSgpID09IG1v
ZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKQorICAgICAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIC8vIEZJWE1FOiBCZWNhdXNlIHdlIGhhdmUgbm90IHN1cHBvcnRlZCB0
aGUgImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUgaW4gdGhlIG1vZHVsZSB0YWcsCisgICAgLy8gd2Ug
cGFzcyB0aGUgbnVsbHB0ciB0byByZXBvcnRFeGNlcHRpb24ncyBDYWNoZWRTY3JpcHQqIHBhcmFt
ZXRlci4gV2hlbiBwYXNzaW5nIG51bGxwdHIKKyAgICAvLyB0byByZXBvcnRFeGNlcHRpb24sIFdl
YkNvcmUgZG9lcyBub3Qgc2hvdyB0aGUgZGV0YWlsIG9mIHRoZSBlcnJvciBpZiB0aGUgVVJMIG9m
IHRoZQorICAgIC8vIHNvdXJjZSBkb2VzIG5vdCBwYXNzIHRoZSBzYW1lIG9yaWdpbiBwb2xpY3ku
IFNvIHRoZSBjdXJyZW50IGJlaGF2aW9yIGlzIGNvbnNlcnZhdGl2ZTsKKyAgICAvLyBvbmx5IHRo
ZSBtb2R1bGUgY29kZSB0aGF0IFVSTCBpcyB3aXRoaW4gdGhlIHNhbWUgb3JpZ2luIGNhbiByZXBv
cnQgdGhlIGRldGFpbHMgb2YgdGhlCisgICAgLy8gZXJyb3IuIE9uY2UgdGhlIHNwZWMgZGVzY3Jp
YmVzIHRoZSBiZWhhdmlvciwgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgcmVwb3J0RXhjZXB0aW9u
KGV4ZWMsIGVycm9yLCBudWxscHRyKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2Fk
TW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFN0cmluZyYgbW9k
dWxlTmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9j
ayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hl
bGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFs
RXhlYygpOworCisgICAgaW5pdE1vZHVsZUdyYXBoKG1vZHVsZUdyYXBoLCBKU01haW5UaHJlYWRF
eGVjU3RhdGU6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSksIHdvcmxkKTsKK30KKwordm9p
ZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwg
Y29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQoreworICAgIGxvYWRNb2R1bGVJbldvcmxkKG1vZHVs
ZUdyYXBoLCBtb2R1bGVOYW1lLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKK3ZvaWQg
U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmIG1vZHVsZUdy
YXBoLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBET01XcmFwcGVyV29ybGQm
IHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNE
T01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRl
KiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0TW9kdWxl
R3JhcGgobW9kdWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVj
LCBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpKSwgd29ybGQpOworfQorCit2b2lkIFNjcmlwdENv
bnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIGxvYWRNb2R1bGVJbldvcmxkKG1vZHVs
ZUdyYXBoLCBzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKK3ZvaWQg
U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFw
aCYgbW9kdWxlR3JhcGgsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9s
ZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdp
bmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCkt
Pmdsb2JhbEV4ZWMoKTsKKworICAgIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNNYWlu
VGhyZWFkRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgSWRlbnRpZmllcjo6
ZnJvbVVpZCgmZXhlYy0+dm0oKSwgbW9kdWxlR3JhcGgubW9kdWxlS2V5KCkpKTsKKworICAgIFdl
YWtQdHI8RWxlbWVudD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0cigpKTsKKyAg
ICBKU0Z1bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0
ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhl
Y1N0YXRlKikgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFrUHRy
LmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50Lmdl
dCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXZhbHVhdGVkKCk7CisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFt
ZSBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVy
QWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxl
ciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93
KCksIDEsIFN0cmluZygpLCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2ws
IHdlYWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQgPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXZhbHVhdGVkKCk7
CisgICAgICAgIGhhbmRsZU1vZHVsZUxvYWRlckVycm9yKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDAp
LCBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCk7CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBwcm9taXNl
LT50aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCByZWplY3RIYW5kbGVyKTsKK30KKwordm9pZCBT
Y3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoTW9kdWxlR3JhcGgmIG1vZHVs
ZUdyYXBoKQoreworICAgIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZUluV29ybGQobW9kdWxlR3JhcGgs
IG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUg
U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpT
TW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7Cisg
ICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBjb25zdCBTb3VyY2VDb2Rl
JiBqc1NvdXJjZUNvZGUgPSBtb2R1bGVSZWNvcmQtPnNvdXJjZUNvZGUoKTsKKworICAgIEpTRE9N
V2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSog
ZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworICAgIGNvbnN0IFN0cmluZyog
c2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsKKyAgICBtX3NvdXJjZVVSTCA9ICZzb3VyY2VV
Ukwuc3RyaW5nKCk7CisKKyAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CisKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJMLCBqc1NvdXJjZUNv
ZGUuZmlyc3RMaW5lKCkpOworCisgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IG1vZHVsZVJlY29y
ZC0+ZXZhbHVhdGUoZXhlYyk7CisgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhj
ZXB0aW9uOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgZXZhbHVhdGlv
bkV4Y2VwdGlvbiA9IGV4ZWMtPnZtKCkuZXhjZXB0aW9uKCk7CisKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSwgbV9mcmFtZSk7CisKKyAgICBp
ZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikgeworICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywg
ZXZhbHVhdGlvbkV4Y2VwdGlvbiwgbnVsbHB0cik7CisgICAgICAgIG1fc291cmNlVVJMID0gc2F2
ZWRTb3VyY2VVUkw7CisgICAgICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSgpOwor
ICAgIH0KKworICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAgcmV0dXJuIERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJldHVyblZhbHVlKTsKK30KKworRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUoY29u
c3QgVVJMJiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQpCit7CisgICAg
cmV0dXJuIGV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgbW9kdWxlUmVjb3JkLCBtYWluVGhyZWFk
Tm9ybWFsV29ybGQoKSk7Cit9CisKIFJlZjxET01XcmFwcGVyV29ybGQ+IFNjcmlwdENvbnRyb2xs
ZXI6OmNyZWF0ZVdvcmxkKCkKIHsKICAgICByZXR1cm4gRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUo
SlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwpAQCAtMjcyLDYgKzM5Niw0MSBAQCBKU0RPTVdpbmRv
d1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQpCiAgICAgcmV0dXJuIHdpbmRvd1NoZWxsOwogfQogCitzdGF0aWMgSWRlbnRpZmllciBqc1Zh
bHVlVG9Nb2R1bGVLZXkoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlm
ICh2YWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChq
c0Nhc3Q8U3ltYm9sKj4odmFsdWUpLT5wcml2YXRlTmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUu
aXNTdHJpbmcoKSk7CisgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywganND
YXN0PEpTU3RyaW5nKj4odmFsdWUpLT52YWx1ZShleGVjKSk7Cit9CisKK3ZvaWQgU2NyaXB0Q29u
dHJvbGxlcjo6aW5pdE1vZHVsZUdyYXBoKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgSlNJbnRl
cm5hbFByb21pc2UqIHByb21pc2UsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNE
T01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRl
KiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBXZWFrUHRyPEVs
ZW1lbnQ+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha0VsZW1lbnRQdHIoKSk7CisgICAgSlNGdW5j
dGlvbiogZnVsZmlsbEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+
dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dlYWtQdHJdKEV4ZWNTdGF0ZSog
ZXhlYykgeworICAgICAgICAvLyBNb2R1bGVHcmFwaCwgc2NyaXB0IGVsZW1lbnQgYW5kIGRvY3Vt
ZW50IG1heSBiZSBkZXN0cm95ZWQgZHVyaW5nIGxvYWRpbmcgdGhlIG1vZHVsZS4KKyAgICAgICAg
Ly8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGQgbm90IGV4ZWN1dGUgbW9kdWxlIGJvZHkuCisgICAg
ICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpIHsKKyAgICAg
ICAgICAgIElkZW50aWZpZXIgbW9kdWxlS2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGV4ZWMsIGV4
ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUo
ZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUxvYWRlZChtb2R1bGVLZXkuaW1w
bCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgIH0pOworCisgICAgUHJpdmF0ZU5hbWUgbW9kdWxlTG9hZGVyQWxyZWFkeVJl
cG9ydGVkRXJyb3JTeW1ib2wgPSBtX21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3lt
Ym9sOworICAgIEpTRnVuY3Rpb24qIHJlamVjdEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9u
OjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW21vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLCB3ZWFrUHRyXShFeGVjU3RhdGUqIGV4
ZWMpIHsKKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQo
KSkKKyAgICAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSkt
Pm1vZHVsZUdyYXBoKCktPm5vdGlmeUVycm9yZWQoKTsKKyAgICAgICAgaGFuZGxlTW9kdWxlTG9h
ZGVyRXJyb3IoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIG1vZHVsZUxvYWRlckFscmVhZHlSZXBv
cnRlZEVycm9yU3ltYm9sKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICB9KTsKKworICAgIHByb21pc2UtPnRoZW4oZXhlYywgZnVsZmlsbEhhbmRs
ZXIsIHJlamVjdEhhbmRsZXIpOworfQorCiBUZXh0UG9zaXRpb24gU2NyaXB0Q29udHJvbGxlcjo6
ZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJZiB3ZSBhcmUg
bm90IGN1cnJlbnRseSBwYXJzaW5nLCB3ZSBzaG91bGQgdXNlIG91ciBjdXJyZW50IGxvY2F0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXgg
MDdjNTNiN2M4ZWRmYjRlMjhmNWNhMTNhYTJjNGUwNTU5NGVmNTEyMi4uOTAxYjUzZWJhZjU0YzQ3
OGY3ZDQxZWYxZGM1MTUwYzFiMDg1YTk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtNDQsNiArNDQsOSBAQCBjbGFzcyBTY3JpcHRWYWx1
ZTsKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7CisgICAgY2xh
c3MgSlNNb2R1bGVSZWNvcmQ7CisgICAgY2xhc3MgSlNJbnRlcm5hbFByb21pc2U7CisKICAgICBj
bGFzcyBFeGVjU3RhdGU7CiAKICAgICBuYW1lc3BhY2UgQmluZGluZ3MgewpAQCAtNTcsNiArNjAs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxEb2N1bWVu
dDsKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OworY2xhc3MgTW9kdWxlR3JhcGg7CiBjbGFzcyBT
Y3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXaWRnZXQ7CkBA
IC0xMTUsNiArMTE5LDE3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKICAgICBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNl
Q29kZSYsIERPTVdyYXBwZXJXb3JsZCYpOwogCisgICAgdm9pZCBsb2FkTW9kdWxlSW5Xb3JsZChN
b2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRE9NV3JhcHBlcldvcmxkJik7
CisgICAgdm9pZCBsb2FkTW9kdWxlKE1vZHVsZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVO
YW1lKTsKKyAgICB2b2lkIGxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiwgY29uc3QgU2Ny
aXB0U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgbG9hZE1vZHVsZShN
b2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAgIHZvaWQgbGlua0Fu
ZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgLCBET01XcmFwcGVyV29ybGQmKTsK
KyAgICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShNb2R1bGVHcmFwaCYpOworCisgICAgRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiwgSlNDOjpKU01v
ZHVsZVJlY29yZCosIERPTVdyYXBwZXJXb3JsZCYpOworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6SlNNb2R1bGVSZWNvcmQqKTsKKwog
ICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CiAKICAg
ICB2b2lkIGVuYWJsZUV2YWwoKTsKQEAgLTEzNSw2ICsxNTAsOCBAQCBjbGFzcyBTY3JpcHRDb250
cm9sbGVyIHsKIAogICAgIGNvbnN0IFN0cmluZyogc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4g
bV9zb3VyY2VVUkw7IH0gLy8gMCBpZiB3ZSBhcmUgbm90IGV2YWx1YXRpbmcgYW55IHNjcmlwdAog
CisgICAgY29uc3QgSlNDOjpQcml2YXRlTmFtZSYgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVk
RXJyb3JTeW1ib2woKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sOyB9CisKICAgICB2b2lkIGNsZWFyV2luZG93U2hlbGwoRE9NV2luZG93KiBu
ZXdET01XaW5kb3csIGJvb2wgZ29pbmdJbnRvUGFnZUNhY2hlKTsKICAgICB2b2lkIHVwZGF0ZURv
Y3VtZW50KCk7CiAKQEAgLTE3MCw2ICsxODcsNyBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsK
IAogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd1NoZWxsKiBpbml0U2Ny
aXB0KERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgaW5pdE1vZHVsZUdyYXBoKE1vZHVsZUdy
YXBoJiwgSlNDOjpKU0ludGVybmFsUHJvbWlzZSosIERPTVdyYXBwZXJXb3JsZCYpOwogCiAgICAg
dm9pZCBkaXNjb25uZWN0UGxhdGZvcm1TY3JpcHRPYmplY3RzKCk7CiAKQEAgLTE3OCw2ICsxOTYs
NyBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAgICBjb25zdCBTdHJpbmcqIG1fc291cmNl
VVJMOwogCiAgICAgYm9vbCBtX3BhdXNlZDsKKyAgICBKU0M6OlByaXZhdGVOYW1lIG1fbW9kdWxl
TG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7CiAKICAgICAvLyBUaGUgcm9vdCBvYmpl
Y3QgdXNlZCBmb3Igb2JqZWN0cyBib3VuZCBvdXRzaWRlIHRoZSBjb250ZXh0IG9mIGEgcGx1Z2lu
LCBzdWNoCiAgICAgLy8gYXMgTlBBUEkgcGx1Z2lucy4gVGhlIHBsdWdpbnMgdXNpbmcgdGhlc2Ug
b2JqZWN0cyBwcmV2ZW50IGEgcGFnZSBmcm9tIGJlaW5nIGNhY2hlZCBzbyB0aGV5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCAyMTc5M2MyMmYwNTNmYjdiMDY1NjgxN2NmYzdkYWIzMTg0YWU4
YmQ0Li4zODYxZmU4NTNiMGViOTI2YWQ1YzcwOWMzMzkzZDk2ZTY0NTVlYmRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTEwMiw2ICsxMDIsNyBAQAogI2luY2x1ZGUgIk1lZGlhUHJvZHVj
ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlN
YXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cy5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgogI2luY2x1
ZGUgIk5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCkBAIC00NjEsNiArNDYyLDcgQEAgRG9jdW1l
bnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIHVuc2lnbmVkIGRvY3Vt
ZW50Q2xhc3NlcywgdW5zaWcKICAgICAsIG1fc3RhcnRUaW1lKHN0ZDo6Y2hyb25vOjpzdGVhZHlf
Y2xvY2s6Om5vdygpKQogICAgICwgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZChmYWxzZSkK
ICAgICAsIG1fc2NyaXB0UnVubmVyKHN0ZDo6bWFrZV91bmlxdWU8U2NyaXB0UnVubmVyPigqdGhp
cykpCisgICAgLCBtX21vZHVsZUxvYWRlcihzdGQ6Om1ha2VfdW5pcXVlPE1vZHVsZUxvYWRlcj4o
KnRoaXMpKQogICAgICwgbV94bWxWZXJzaW9uKEFTQ0lJTGl0ZXJhbCgiMS4wIikpCiAgICAgLCBt
X3htbFN0YW5kYWxvbmUoU3RhbmRhbG9uZVVuc3BlY2lmaWVkKQogICAgICwgbV9oYXNYTUxEZWNs
YXJhdGlvbihmYWxzZSkKQEAgLTYwMiw2ICs2MDQsNyBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkK
ICAgICAgICAgbV9kb21XaW5kb3ctPnJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yUGFnZUNhY2hlKCk7
CiAKICAgICBtX3NjcmlwdFJ1bm5lciA9IG51bGxwdHI7CisgICAgbV9tb2R1bGVMb2FkZXIgPSBu
dWxscHRyOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAppbmRleCA3NGNlYWE5NmJjOTJmNDc4MTdjZWJiNWYzY2Y5MzkwYTE5YTc3ZDY5Li5mNTdj
NDEzMWZkY2U1NWNjY2Q0ZTYwODBkYmI1MTk1M2M0YjI3YzNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aApAQCAtMTI4LDYgKzEyOCw3IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBjbGFzcyBN
ZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBN
ZWRpYVF1ZXJ5TWF0Y2hlcjsKK2NsYXNzIE1vZHVsZUxvYWRlcjsKIGNsYXNzIE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9uOwogY2xhc3MgTm9k
ZUZpbHRlcjsKQEAgLTkyNyw2ICs5MjgsNyBAQCBjbGFzcyBEb2N1bWVudCA6IHB1YmxpYyBDb250
YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQwogICAg
IERvY3VtZW50JiB0b3BEb2N1bWVudCgpIGNvbnN0OwogICAgIAogICAgIFNjcmlwdFJ1bm5lciog
c2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9zY3JpcHRSdW5uZXIuZ2V0KCk7IH0KKyAgICBNb2R1
bGVMb2FkZXIqIG1vZHVsZUxvYWRlcigpIHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyLmdldCgpOyB9
CiAKICAgICBIVE1MU2NyaXB0RWxlbWVudCogY3VycmVudFNjcmlwdCgpIGNvbnN0IHsgcmV0dXJu
ICFtX2N1cnJlbnRTY3JpcHRTdGFjay5pc0VtcHR5KCkgPyBtX2N1cnJlbnRTY3JpcHRTdGFjay5s
YXN0KCkuZ2V0KCkgOiAwOyB9CiAgICAgdm9pZCBwdXNoQ3VycmVudFNjcmlwdChQYXNzUmVmUHRy
PEhUTUxTY3JpcHRFbGVtZW50Pik7CkBAIC0xNTEwLDYgKzE1MTIsNyBAQCBjbGFzcyBEb2N1bWVu
dCA6IHB1YmxpYyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0
RXhlY3V0aW9uQwogICAgIGJvb2wgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZDsKICAgICAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0UnVubmVyPiBtX3NjcmlwdFJ1bm5lcjsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKIAogICAgIFZlY3Rv
cjxSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+PiBtX2N1cnJlbnRTY3JpcHRTdGFjazsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb2R1bGVHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQxN2EyY2Q0ZThiMWU0NmIwNTAy
MTNiMzA1OTYxM2M3NzI2YWU4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb2R1bGVHcmFwaC5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorCisjaW5jbHVkZSAiRE9NV3Jh
cHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiTW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1
ZGUgIlNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKKyNpbmNsdWRl
ICJTY3JpcHRTb3VyY2VDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9kdWxlR3Jh
cGg6Ok1vZHVsZUdyYXBoKEVsZW1lbnQmIGVsZW1lbnQpCisgICAgOiBtX2VsZW1lbnQoZWxlbWVu
dCkKKyAgICAsIG1fd2Vha1B0ckZhY3RvcnkoJmVsZW1lbnQpCit7Cit9CisKK3ZvaWQgTW9kdWxl
R3JhcGg6Om5vdGlmeUxvYWRlZChVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KQoreworICAg
IG1fbW9kdWxlS2V5ID0gbW9kdWxlS2V5OworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlw
dFJ1bm5lcigpLT5ub3RpZnlNb2R1bGVHcmFwaFJlYWR5KHRvU2NyaXB0RWxlbWVudElmUG9zc2li
bGUoJm1fZWxlbWVudCkpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpub3RpZnlFcnJvcmVkKCkK
K3sKKyAgICBtX2Vycm9yZWQgPSB0cnVlOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlw
dFJ1bm5lcigpLT5ub3RpZnlNb2R1bGVHcmFwaFJlYWR5KHRvU2NyaXB0RWxlbWVudElmUG9zc2li
bGUoJm1fZWxlbWVudCkpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpldmFsdWF0ZSgpCit7Cisg
ICAgaWYgKG1fZXJyb3JlZCkKKyAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9l
bGVtZW50KS0+ZGlzcGF0Y2hFcnJvckV2ZW50KCk7CisgICAgZWxzZSBpZiAoRnJhbWUqIGZyYW1l
ID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUtPnNjcmlwdCgp
LmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSgqdGhpcyk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6Om5v
dGlmeUV2YWx1YXRlZCgpCit7CisgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVt
ZW50KS0+ZGlzcGF0Y2hMb2FkRXZlbnQoKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bG9hZChj
b25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1bWVu
dCgpLmZyYW1lKCkpOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgp
LmxvYWRNb2R1bGUoKnRoaXMsIG1vZHVsZU5hbWUpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjps
b2FkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgQVNTRVJUKG1f
ZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLmZy
YW1lKCktPnNjcmlwdCgpLmxvYWRNb2R1bGUoKnRoaXMsIHNvdXJjZUNvZGUpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlR3JhcGguaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb2R1bGVHcmFwaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxNmU4OTdjYmMwMjgxZTVlZjE1ODE4
MGRjYWU5YmY2MmI2NmEwZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TW9kdWxlR3JhcGguaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1
bGVHcmFwaF9oCisjZGVmaW5lIE1vZHVsZUdyYXBoX2gKKworI2luY2x1ZGUgIk1vZHVsZUZldGNo
ZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50OworY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKKwor
Ly8gS2VlcCBsaWZldGltZSBvZiBhIE1vZHVsZUdyYXBoIHRoZSBzYW1lIHRvIGEgU2NyaXB0RWxl
bWVudC4KK2NsYXNzIE1vZHVsZUdyYXBoIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNb2R1
bGVHcmFwaCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0
IE1vZHVsZUdyYXBoKEVsZW1lbnQmKTsKKworICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVy
biBtX2VsZW1lbnQ7IH0KKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgeyByZXR1
cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KKworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIG1v
ZHVsZU5hbWUpOworICAgIHZvaWQgbG9hZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisgICAg
dm9pZCBldmFsdWF0ZSgpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrRWxlbWVudFB0cigp
CisgICAgeworICAgICAgICByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
CisgICAgfQorCisgICAgdm9pZCBub3RpZnlMb2FkZWQoVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVs
ZUtleSk7CisgICAgdm9pZCBub3RpZnlFcnJvcmVkKCk7CisKKyAgICB2b2lkIG5vdGlmeUV2YWx1
YXRlZCgpOworCisgICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4gbV9lcnJv
cmVkOyB9CisgICAgYm9vbCBpc0xvYWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5OyB9
CisKK3ByaXZhdGU6CisKKyAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CisgICAgUmVmUHRyPFVuaXF1
ZWRTdHJpbmdJbXBsPiBtX21vZHVsZUtleTsKKyAgICBXZWFrUHRyRmFjdG9yeTxFbGVtZW50PiBt
X3dlYWtQdHJGYWN0b3J5OworICAgIGJvb2wgbV9lcnJvcmVkIHsgZmFsc2UgfTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUxvYWRlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ01vZHVsZUdyYXBoLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9QZW5kaW5nTW9kdWxlR3JhcGguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmOGVmMjNmYzk5
NTNkYTE5ZjM0ZjMyMTA0ZTcwMDcwZDcyMTRkMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUGVuZGluZ01vZHVsZUdyYXBoLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBlbmRpbmdNb2R1bGVHcmFw
aC5oIgorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bl
bmRpbmdNb2R1bGVHcmFwaDo6UGVuZGluZ01vZHVsZUdyYXBoKCkKK3sKK30KKworUGVuZGluZ01v
ZHVsZUdyYXBoOjpQZW5kaW5nTW9kdWxlR3JhcGgoRWxlbWVudCogZWxlbWVudCkKKyAgICA6IG1f
ZWxlbWVudChlbGVtZW50KQoreworfQorCitQZW5kaW5nTW9kdWxlR3JhcGg6On5QZW5kaW5nTW9k
dWxlR3JhcGgoKQoreworfQorCitSZWZQdHI8RWxlbWVudD4gUGVuZGluZ01vZHVsZUdyYXBoOjpy
ZWxlYXNlRWxlbWVudEFuZENsZWFyKCkKK3sKKyAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudDsK
KyAgICBzd2FwKGVsZW1lbnQsIG1fZWxlbWVudCk7CisgICAgcmV0dXJuIGVsZW1lbnQ7Cit9CisK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdNb2R1bGVHcmFwaC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdNb2R1bGVHcmFwaC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUx
NDIxZDhiOTNlNjg2NTBlNzNkZmFmYTdhMDgzYTZmODBhMTFkYzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ01vZHVsZUdyYXBoLmgKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgUGVuZGluZ01vZHVsZUdyYXBoX2gKKyNkZWZpbmUgUGVu
ZGluZ01vZHVsZUdyYXBoX2gKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50OworCitjbGFzcyBQZW5kaW5nTW9kdWxlR3JhcGgg
eworcHVibGljOgorICAgIFBlbmRpbmdNb2R1bGVHcmFwaCgpOworICAgIFBlbmRpbmdNb2R1bGVH
cmFwaChFbGVtZW50Kik7CisgICAgLy8gTm90IHRvIGluY2x1ZGUgRWxlbWVudC5oLCB3ZSBkZWNs
YXJlIHRoZSBkZXN0cnVjdG9yLCBidXQgdGhlIGltcGxlbWVudGF0aW9uIGJlY29tZXMgZW1wdHku
CisgICAgflBlbmRpbmdNb2R1bGVHcmFwaCgpOworCisgICAgUmVmUHRyPEVsZW1lbnQ+IHJlbGVh
c2VFbGVtZW50QW5kQ2xlYXIoKTsKK3ByaXZhdGU6CisgICAgLy8gT25seSBob2xkIGFuIGVsZW1l
bnQgc2luY2UgYW4gZWxlbWVudCBrZWVwcyBhIG1vZHVsZSBncmFwaC4KKyAgICBSZWZQdHI8RWxl
bWVudD4gbV9lbGVtZW50OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50LmNwcAppbmRleCA2NmJiZWNlMWQzNWUxYTQ3NjNiZjllYmViZjBmMGMxMmNkYmVmMWQ3
Li4yZWM2YmRlOWRiMmY3ZDcyNjUwMDM1YTliMTJkYmM2ODViNjczNjJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTFBh
cnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3Jl
bWVudGVyLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vZHVs
ZUdyYXBoLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5j
bHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgpAQCAtMTYxLDYgKzE2MiwxMCBAQCBib29sIFNjcmlw
dEVsZW1lbnQ6OmlzU2NyaXB0VHlwZVN1cHBvcnRlZChMZWdhY3lUeXBlU3VwcG9ydCBzdXBwb3J0
TGVnYWN5VHlwZXMpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IGVsc2UgaWYgKE1J
TUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKHR5cGUuc3RyaXBX
aGl0ZVNwYWNlKCkubG93ZXIoKSkgfHwgKHN1cHBvcnRMZWdhY3lUeXBlcyA9PSBBbGxvd0xlZ2Fj
eVR5cGVJblR5cGVBdHRyaWJ1dGUgJiYgaXNMZWdhY3lTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3Vh
Z2UodHlwZSkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoRVM2X01PRFVMRVMp
CisgICAgZWxzZSBpZiAodHlwZSA9PSAibW9kdWxlIikKKyAgICAgICAgcmV0dXJuIHRydWU7Cisj
ZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTIxNyw2ICsyMjIsOSBAQCBib29sIFNj
cmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFy
dFBvc2l0aW9uLCBMZWdhYwogICAgIGVsc2UKICAgICAgICAgbV9jaGFyYWN0ZXJFbmNvZGluZyA9
IGRvY3VtZW50LmNoYXJzZXQoKTsKIAorICAgIGlmIChpc01vZHVsZVR5cGUoKSkKKyAgICAgICAg
cmV0dXJuIGxvYWRNb2R1bGUoc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKICAgICBpZiAoaGFzU291
cmNlQXR0cmlidXRlKCkpCiAgICAgICAgIGlmICghcmVxdWVzdFNjcmlwdChzb3VyY2VBdHRyaWJ1
dGVWYWx1ZSgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMxNyw2ICszMjUsOSBA
QCB2b2lkIFNjcmlwdEVsZW1lbnQ6OnN0b3BMb2FkUmVxdWVzdCgpCiAgICAgICAgICAgICBtX2Nh
Y2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICBtX2NhY2hlZFNjcmlwdCA9
IDA7CiAgICAgfQorICAgIC8vIEZJWE1FOiBUaGUgbW9kdWxlIGxvYWRlciBzaG91bGQgaGF2ZSB0
aGUgbWVjaGFuaXNtIHRvIHN0b3AgbG9hZGluZy4KKyAgICAvLyBUaGUgY3VycmVudCBsb2FkZXIg
c3BlYyBkb2VzIG5vdCBoYXZlIHRoaXMuIE9uY2UgaXQgaXMgc3BlY2lmaWVkCisgICAgLy8gd2Ug
d2lsbCBpbnRyb2R1Y2UgdGhpcyBmZWF0dXJlLgogfQogCiB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4
ZWN1dGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCkBAIC0zMzIsNiArMzQzLDU3IEBAIHZv
aWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKICAg
ICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKIH0KIAorYm9vbCBTY3JpcHRFbGVt
ZW50Ojpsb2FkTW9kdWxlKGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikK
K3sKKyAgICAvLyBUaGUgYnJvd3NlciBtb2R1bGUgbG9hZGVyIGxvYWRzIHRoZSBtb2R1bGUgc291
cmNlcy4KKyAgICAvLyBTaW5jZSB0aGUgbW9kdWxlIGludm9sdmVzIGxvYWRpbmcgb2YgdGhlIGRl
cGVuZGVudCBtb2R1bGVzIGFuZCB0aGUgZGVwZW5kZW50IG1vZHVsZXMgZG9lcyBub3QgaGF2ZSBj
b3JyZXNwb25kaW5nIHNjcmlwdCBlbGVtZW50cywKKyAgICAvLyB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBsb2FkaW5nIG1vZHVsZXMgaXMgc2VwYXJhdGVkIGZyb20gdGhlIHNjcmlwdCBlbGVtZW50Lgor
ICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgeworICAgICAgICBTdHJpbmcgc291cmNlVXJs
ID0gc291cmNlQXR0cmlidXRlVmFsdWUoKTsKKyAgICAgICAgUmVmPERvY3VtZW50PiBvcmlnaW5h
bERvY3VtZW50KG1fZWxlbWVudC5kb2N1bWVudCgpKTsKKyAgICAgICAgaWYgKCFtX2VsZW1lbnQu
ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICAvLyBTY3JpcHQgZWxlbWVudCBtYXkgYmUgZGV0YWNoZWQgYW5kIGF0
dGFjaGVkIHRvIGEgZGlmZmVyZW50IGRvY3VtZW50IHdoaWxlIGV4ZWN1dGluZyB0aGUgZXZlbnQg
bGlzdGVuZXIuCisgICAgICAgIGlmICghbV9lbGVtZW50LmluRG9jdW1lbnQoKSB8fCAmbV9lbGVt
ZW50LmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5wdHIoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBpZiAoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3Bh
Y2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaEVycm9yRXZl
bnQoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgc3VwcG9ydCBjcm9zcy1vcmlnaW4gbW9kZSBpbiB0aGUgbW9kdWxlIHRh
Zy4KKyAgICAgICAgLy8gSG93ZXZlciB3ZSBkb24ndCBoYXZlIHRoZSBwb2xpY3kgdG8gYXBwbHkg
dGhpcyBtb2RlIHRvIHRoZSByZXNvdXJjZXMgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAg
ICAgICAvLyBQcm92aWRlZCBtdWx0aXBsZSBtb2R1bGUgdGFncywKKyAgICAgICAgLy8KKyAgICAg
ICAgLy8gICBBOiA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuLi4iIGNyb3Nzb3JpZ2luPSJh
bm9ueW1vdXMiPjwvc2NyaXB0PgorICAgICAgICAvLyAgIEI6IDxzY3JpcHQgdHlwZT0ibW9kdWxl
IiBzcmM9Ii4uLiI+PC9zY3JpcHQ+CisgICAgICAgIC8vCisgICAgICAgIC8vICdBJyBoYXMgdGhl
ICJjcm9zc29yaWdpbiIgYXR0cmlidXRlLiBCdXQgJ0InIGRvZXMgbm90IGhhdmUgaXQuCisgICAg
ICAgIC8vIEhvd2V2ZXIsIEVTNiBtb2R1bGVzIGFsbG93ICdBJyBhbmQgJ0InIHRvIGxvYWQgdGhl
IHNhbWUgbW9kdWxlIGFuZCBpdCB3aWxsIGJlIGNhY2hlZCBpbiB0aGUKKyAgICAgICAgLy8gbW9k
dWxlIGxvYWRlci4gSW4gdGhhdCBjYXNlLCBpdCBpcyBjb250cm92ZXJzaWFsIHRoYXQgd2hpY2gg
ImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUgd2lsbCBiZQorICAgICAgICAvLyBhcHBsaWVkIHRvIHRo
ZSBtb2R1bGUgbG9hZGVkIGJ5IHRoZSBib3RoLiBPbmNlIHRoZSBzcGVjIG9mIHRoZSBtb2R1bGUg
bG9hZGVyIGlzIGZpeGVkLCB3ZQorICAgICAgICAvLyBzaG91bGQgZm9sbG93IGl0LgorCisgICAg
ICAgIG1faXNFeHRlcm5hbFNjcmlwdCA9IHRydWU7CisgICAgICAgIG1fbW9kdWxlR3JhcGggPSBz
dGQ6Om1ha2VfdW5pcXVlPE1vZHVsZUdyYXBoPihtX2VsZW1lbnQpOworICAgICAgICBtX2VsZW1l
bnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlv
bih0aGlzLCAqbV9tb2R1bGVHcmFwaCk7CisgICAgICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoc291
cmNlQXR0cmlidXRlVmFsdWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IGlmICghbV9lbGVtZW50LmRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93
SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBtX3N0YXJ0TGluZU51bWJl
ciwgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIC8vIFJlc2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgor
ICAgIFRleHRQb3NpdGlvbiBwb3NpdGlvbiA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmlzSW5Eb2N1
bWVudFdyaXRlKCkgPyBUZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CisgICAg
bV9tb2R1bGVHcmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7
CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlTW9kdWxlR3Jh
cGhGb3JFeGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgpOworICAgIG1fbW9kdWxlR3JhcGgt
PmxvYWQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRDb250ZW50KCksIG1fZWxlbWVudC5kb2N1bWVu
dCgpLnVybCgpLCBwb3NpdGlvbikpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFNjcmlw
dEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAg
ICBBU1NFUlQoIW1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmgKaW5kZXggYjdlNzNkMGRlZTgzZDMyNGU4NzJmN2JjNGMxYjkzM2RjOTZjMTEyYS4uNmU1
YzIxNDI5NGQ4MTk2OGM4NmUwZDA3YTY5NzA3NDM5NGExYzliMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IENhY2hlZFNjcmlwdDsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBFbGVtZW50OworY2xh
c3MgTW9kdWxlR3JhcGg7CiBjbGFzcyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNl
Q29kZTsKIApAQCAtNTksNiArNjAsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCByZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQ7IH0KICAgICBib29sIHdp
bGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkgY29uc3QgeyByZXR1cm4gbV93
aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZzsgfQogICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRT
Y3JpcHQ7IH0KKyAgICBNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGgoKSB7IHJldHVybiBtX21vZHVs
ZUdyYXBoLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKICAgICBTY3JpcHRFbGVtZW50KEVsZW1lbnQm
LCBib29sIGNyZWF0ZWRCeVBhcnNlciwgYm9vbCBpc0V2YWx1YXRlZCk7CkBAIC04Miw2ICs4NCw4
IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsK
ICAgICBib29sIHJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOwogICAgIHZv
aWQgc3RvcExvYWRSZXF1ZXN0KCk7CiAKKyAgICBib29sIGxvYWRNb2R1bGUoY29uc3QgVGV4dFBv
c2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlG
aW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBTdHJpbmcg
c291cmNlQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CkBAIC05Myw2ICs5Nyw3IEBAIGNsYXNz
IFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICB2aXJ0
dWFsIGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFz
U291cmNlQXR0cmlidXRlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5
cGUoKSBjb25zdCA9IDA7CiAKICAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CiAgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKQEAgLTEwOSw2ICsxMTQs
NyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7
CiAgICAgYm9vbCBtX3JlcXVlc3RVc2VzQWNjZXNzQ29udHJvbCA6IDE7CiAgICAgU3RyaW5nIG1f
Y2hhcmFjdGVyRW5jb2Rpbmc7CiAgICAgU3RyaW5nIG1fZmFsbGJhY2tDaGFyYWN0ZXJFbmNvZGlu
ZzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kdWxlR3JhcGg+IG1fbW9kdWxlR3JhcGg7CiB9Owog
CiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggOTYzNjk4MDRhZDhmMDc0YmQ3MzZhZmJm
YjUwMmE0NWZjOTE1NzYwMS4uNDc1MTliZjAyNjI1NTRiMjNlNDM5Nzc4YTEyNjhlNmU0N2RiYTM1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNp
bmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAi
TWljcm9UYXNrLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKyNpbmNsdWRlICJQZW5kaW5n
TW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RWxlbWVudC5oIgogCkBAIC00OCw2ICs1MCwxMCBAQCBTY3JpcHRSdW5uZXI6On5TY3JpcHRS
dW5uZXIoKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQo
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nQXN5bmNTY3JpcHRzLnNp
emUoKTsgKytpKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291
bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbW9kdWxlR3JhcGhzVG9FeGVjdXRl
U29vbi5zaXplKCk7ICsraSkKKyAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnRE
ZWxheUNvdW50KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGVuZGluZ01vZHVs
ZVNjcmlwdEVsZW1lbnQuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50
TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogfQogCiB2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3Jp
cHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0
aW9uVHlwZSkKQEAgLTcxLDYgKzc3LDE4IEBAIHZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlw
dEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNoZWRSCiAgICAg
fQogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihT
Y3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBNb2R1bGVHcmFwaCYpCit7CisgICAgQVNTRVJU
KHNjcmlwdEVsZW1lbnQpOworCisgICAgRWxlbWVudCYgZWxlbWVudCA9IHNjcmlwdEVsZW1lbnQt
PmVsZW1lbnQoKTsKKyAgICBBU1NFUlQoZWxlbWVudC5pbkRvY3VtZW50KCkpOworCisgICAgbV9k
b2N1bWVudC5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisKKyAgICBtX3BlbmRpbmdN
b2R1bGVTY3JpcHRFbGVtZW50LmFkZCgmZWxlbWVudCk7Cit9CisKIHZvaWQgU2NyaXB0UnVubmVy
OjpzdXNwZW5kKCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKQEAgLTk3LDYgKzExNSwyNiBAQCB2
b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5U2NyaXB0UmVhZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0
RWxlbWVudCwgRXhlY3V0aW9uVHlwZQogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwogfQog
Cit2b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeShTY3JpcHRFbGVtZW50
KiBzY3JpcHRFbGVtZW50KQoreworICAgIEFTU0VSVF9VTlVTRUQoc2NyaXB0RWxlbWVudCwgbV9w
ZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudC5jb250YWlucygmc2NyaXB0RWxlbWVudC0+ZWxlbWVu
dCgpKSk7CisKKyAgICAvLyBMaXN0SGFzaFNldCBjb3JyZWN0bHkgcHJlc2VydmVzIHRoZSBpbnNl
cnRpb24gb3JkZXIuCisgICAgLy8gQW5kIGl0IGFsbG93IHVzIHRvIHJlbW92ZSBlbGVtZW50IGR1
cmluZyBpdGVyYXRpb24uCisgICAgYXV0byBpdGVyYXRvciA9IG1fcGVuZGluZ01vZHVsZVNjcmlw
dEVsZW1lbnQuYmVnaW4oKTsKKyAgICB3aGlsZSAoaXRlcmF0b3IgIT0gbV9wZW5kaW5nTW9kdWxl
U2NyaXB0RWxlbWVudC5lbmQoKSkgeworICAgICAgICBNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGgg
PSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGl0ZXJhdG9yLT5nZXQoKSktPm1vZHVsZUdyYXBo
KCk7CisgICAgICAgIGlmICghbW9kdWxlR3JhcGgtPmVycm9yT2NjdXJyZWQoKSAmJiAhbW9kdWxl
R3JhcGgtPmlzTG9hZGVkKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgYXV0byBwcmV2
aW91cyA9IGl0ZXJhdG9yOworICAgICAgICArK2l0ZXJhdG9yOworICAgICAgICBtX21vZHVsZUdy
YXBoc1RvRXhlY3V0ZVNvb24uYXBwZW5kKFBlbmRpbmdNb2R1bGVHcmFwaChwcmV2aW91cy0+Z2V0
KCkpKTsKKyAgICAgICAgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudC5yZW1vdmUocHJldmlv
dXMpOworICAgIH0KKyAgICBpZiAoIW1fbW9kdWxlR3JhcGhzVG9FeGVjdXRlU29vbi5pc0VtcHR5
KCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCiB2b2lkIFNjcmlwdFJ1
bm5lcjo6dGltZXJGaXJlZCgpCiB7CiAgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1l
bnQpOwpAQCAtMTIxLDYgKzE1OSwyMCBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCgp
CiAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPmV4ZWN1
dGUoY2FjaGVkU2NyaXB0KTsKICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnRE
ZWxheUNvdW50KCk7CiAgICAgfQorCisgICAgVmVjdG9yPFBlbmRpbmdNb2R1bGVHcmFwaD4gbW9k
dWxlR3JhcGhzOworICAgIG1vZHVsZUdyYXBocy5zd2FwKG1fbW9kdWxlR3JhcGhzVG9FeGVjdXRl
U29vbik7CisKKyAgICBmb3IgKFBlbmRpbmdNb2R1bGVHcmFwaCYgcGVuZGluZ01vZHVsZUdyYXBo
IDogbW9kdWxlR3JhcGhzKSB7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gcGVu
ZGluZ01vZHVsZUdyYXBoLnJlbGVhc2VFbGVtZW50QW5kQ2xlYXIoKTsKKyAgICAgICAgQVNTRVJU
KGVsZW1lbnQpOworICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKKyAgICAgICAgaWYgKCFlbGVtZW50KQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5n
ZXQoKSktPm1vZHVsZUdyYXBoKCktPmV2YWx1YXRlKCk7CisgICAgICAgIG1fZG9jdW1lbnQuZGVj
cmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIH0KKwogICAgIE1pY3JvVGFza1F1ZXVl
OjpzaW5nbGV0b24oKS5ydW5NaWNyb1Rhc2tzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuaAppbmRleCAyN2NkYmY4YjNhZjU2OTQ2MmU1YjlhZWIxNmNkNzY1MDUwODkxZTBkLi5iZDI0
MTQzNDJmMDhlZGNjNDdmMDBkNGI1Njc4MGI1NWRjNTgwNThmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dFJ1bm5lci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5k
bGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0z
Nyw2ICszOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0Owog
Y2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OworY2xhc3MgTW9kdWxlR3JhcGg7CitjbGFz
cyBQZW5kaW5nTW9kdWxlR3JhcGg7CiBjbGFzcyBQZW5kaW5nU2NyaXB0OwogY2xhc3MgU2NyaXB0
RWxlbWVudDsKIApAQCAtNDgsMTEgKzUyLDE0IEBAIGNsYXNzIFNjcmlwdFJ1bm5lciB7CiAKICAg
ICBlbnVtIEV4ZWN1dGlvblR5cGUgeyBBU1lOQ19FWEVDVVRJT04sIElOX09SREVSX0VYRUNVVElP
TiB9OwogICAgIHZvaWQgcXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCosIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4sIEV4ZWN1dGlvblR5cGUpOwotICAgIGJv
b2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRl
U29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8
ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0eSgpOyB9CisgICAgdm9pZCBxdWV1ZU1vZHVs
ZUdyYXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBNb2R1bGVHcmFwaCYpOworICAgIGJv
b2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRl
U29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8
ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0eSgpIHx8ICFtX21vZHVsZUdyYXBoc1RvRXhl
Y3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50LmlzRW1w
dHkoKTsgfQogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAgICAgdm9p
ZCBub3RpZnlTY3JpcHRSZWFkeShTY3JpcHRFbGVtZW50KiwgRXhlY3V0aW9uVHlwZSk7CiAKKyAg
ICB2b2lkIG5vdGlmeU1vZHVsZUdyYXBoUmVhZHkoU2NyaXB0RWxlbWVudCopOworCiBwcml2YXRl
OgogICAgIHZvaWQgdGltZXJGaXJlZCgpOwogCkBAIC02MCw2ICs2Nyw4IEBAIGNsYXNzIFNjcmlw
dFJ1bm5lciB7CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0ZUlu
T3JkZXI7CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb247
IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3Nl
dC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLWFzLXNvb24tYXMtcG9zc2libGUKICAgICBI
YXNoTWFwPFNjcmlwdEVsZW1lbnQqLCBQZW5kaW5nU2NyaXB0PiBtX3BlbmRpbmdBc3luY1Njcmlw
dHM7CisgICAgVmVjdG9yPFBlbmRpbmdNb2R1bGVHcmFwaD4gbV9tb2R1bGVHcmFwaHNUb0V4ZWN1
dGVTb29uOworICAgIExpc3RIYXNoU2V0PFJlZlB0cjxFbGVtZW50Pj4gbV9wZW5kaW5nTW9kdWxl
U2NyaXB0RWxlbWVudDsKICAgICBUaW1lciBtX3RpbWVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCBlMTNhNWNkZGNjYTJjYjNiNzU2YThkM2E1
N2UyM2Y4MGE5YjQzZTQ4Li5kMTVlYjcxYmUzZjZiY2ZiMTA3ODJmOTc0ODc1YjQwMGJjMGQ3MTZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtMTYxLDYg
KzE2MSwxNSBAQCBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1dGUoKSBj
b25zdAogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKHNyY0F0dHIpOwogfQogCitib29sIEhU
TUxTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworI2lmIEVOQUJMRShFUzZf
TU9EVUxFUykKKyAgICByZXR1cm4gZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikuc3RyaW5nKCkg
PT0gIm1vZHVsZSI7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lk
IEhUTUxTY3JpcHRFbGVtZW50OjpkaXNwYXRjaExvYWRFdmVudCgpCiB7CiAgICAgQVNTRVJUKCFo
YXZlRmlyZWRMb2FkRXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50
LmgKaW5kZXggMzEyYzY2MjZlOGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZlMzdiMi4uMWRmZDhj
OGI3M2U4NzJhYmNkNWViNGIzNDJlNzkyZDMzNTAzZTc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBIVE1MU2NyaXB0RWxl
bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIFNjcmlwdEVsZW1lbnQgewog
ICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA4YWRmY2ZhNDEwYWJlNDdlMzMyNGFlNWI4ZDkyNDNm
NTY2NjQ1ZDk1Li5iYTVmMDZmNDRiNmIxMTdmY2JiNjIzMzUzOGUyZTE0Y2Q3ZjhlNjlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNTEsNiArMTUxLDExIEBA
IGJvb2wgU1ZHU2NyaXB0RWxlbWVudDo6ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCitib29sIFNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFNWR1NjcmlwdEVsZW1lbnQ6
Omhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZShY
TGlua05hbWVzOjpocmVmQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApp
bmRleCA1MzVlNDJlNmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAxLi44YWZkZTMxMTI1
ZTVkZDQ5OGRiODJhNGUwOTgzYWIwNzRlMGRjYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgU1ZHU2NyaXB0RWxlbWVudCBmaW5h
bCA6IHB1YmxpYyBTVkdFbGVtZW50CiAgICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFs
dWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVWYWx1
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVUeXBlKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSBvdmVycmlk
ZSB7IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9hZEV2ZW50KHRoaXMp
OyB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAwZjRlOGM5MDE0YzkxNmY1YTM5MzQ5NzY3ZTAxNGViNTBkYTAxYTIxLi4w
MzkxOWU2MzMyZmQ0MjE2MTc3YzA2ZDQyNzI1ODEwNWU5Mjg3YTNjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMTUtMDktMjMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGludG8gV2ViQ29yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
bW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVs
ZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVs
ZS1zcmMtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWlubGluZS1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQu
Q29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToK
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpz
OiBBZGRlZC4KKyAgICAgICAgKENvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChDb2Nv
YSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qczog
QWRkZWQuCisKIDIwMTUtMDktMTggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIERvbid0IGNyZWF0ZSByZW5kZXJlcnMgZm9yIGNoaWxkcmVuIG9mIHNoYWRvdyBo
b3N0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzkzOWFhZjBhNTAxNWY0NzkzODZjZDMxOTVhYTU5ZGQx
NjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxp
bmUtc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IGlubGluZWQgbW9k
dWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVj
dXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52
aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBlb2Yg
ZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkgaXMg
ImF3ZXNvbWUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wOWE5NjIzNzhkMjA0ZGM1OTk3OThiODNjMTI3MGJjMWFjMTViOTJjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwK
QEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oJ1Rlc3QgaW5saW5lZCBtb2R1bGUuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1
dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQt
dGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMiOwordmFyIGNvY29hID0gbmV3IENvY29hKCk7
CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52
aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRl
ZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJhd2Vzb21lIik7CitmaW5pc2hKU1Rl
c3QoKTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q4YjAw
NjI0OTBlYzcyMjk1Y2ZmNTA2MWEwODM5ZTQwMDIwY2Q4YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNCBAQAorVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBl
eGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlw
ZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJv
YmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2EudGFzdGUoKSBpcyAibmljZSIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtc3JjLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMzUyMmZmNDNjYmE3ZTgxMGM0
MGVkZjc1ODU5ZDY0MWQ4NDI4OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBh
dHRyaWJ1dGUuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5
Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
Im1vZHVsZSIgc3JjPSIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDM2MGE3
YmZlN2UwNWEwY2IyNTM4NDEzNjdlNzFkYzFlOTNiNWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcwpAQCAt
MCwwICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsK
KyAgICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDc5NTkyZGM1MTNjZjI1OTg0MWZmOWQ0NjM5MDQ1MTJiMGVjYjc0NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNy
Yy1zaW1wbGUtY29jb2EuanMKQEAgLTAsMCArMSw3IEBACitjbGFzcyBDb2NvYSB7CisgICAgdGFz
dGUoKSB7CisgICAgICAgIHJldHVybiAibmljZSI7CisgICAgfQorfQorCitleHBvcnQgZGVmYXVs
dCBDb2NvYTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLXNyYy1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1zcmMtc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkOWM3NzRmZDllN2E1YzlkMTg1OTI0MDQ0ZTdh
Mjc4YWQ3MzM3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBDb2Nv
YSBmcm9tICIuL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBD
b2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9k
dWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2Ei
LCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAibmljZSIpOworZmluaXNo
SlNUZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261844</attachid>
            <date>2015-09-23 15:35:37 -0700</date>
            <delta_ts>2015-09-23 17:31:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150923153519.patch</filename>
            <type>text/plain</type>
            <size>104085</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTM4YzU2NDIxMDg1MmYxMDUxZTFhOGI0NzRkMmQyZGRjYWYxZWE1Li45YjVhOWQxN2YyYzU0ODk1
NmM3OGUxZmMzNTcwNGYwYmYzY2M3NTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRp
bWUvU3ltYm9sLmg6CisKIDIwMTUtMDktMTggIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNh
a0BnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIGluIHRoZSBXZWJB
c3NlbWJseSBwYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyM2EwNjIyNzYwY2I0NDA5YmY2MTI1ZDU1YTUw
YWQwOTdmOWI1ZWMwLi44ZDM3ZTVjZTM2OWRhODIxYWRkOTEyYzk3YjdjNmRiYWY1MWJkYjYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA3IEBACisyMDE1LTA5LTIzICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVncmF0ZSBFUzYgTW9k
dWxlcyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzOiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKKyAgICAg
ICAgICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAganMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1s
CisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRo
LXNyYy5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1l
dmVudC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMv
cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5n
SGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaDogQWRkZWQuCisgICAg
ICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU01vZHVsZVJlY29yZC5oOiBBZGRlZC4K
KyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1N5bWJvbC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9k
dWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bGlua0FuZEV2
YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6On5Nb2R1bGVGZXRjaGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
b2R1bGVGZXRjaGVyOjpydW4pOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6bm90
aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjYWNoZWRTY3JpcHQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TW9kdWxlTG9hZGVyOjpNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlTG9hZGVyOjpyZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZmV0
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9Nb2R1bGVMb2FkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVM
b2FkZXI6OmRvY3VtZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6aGFuZGxlTW9kdWxlTG9hZGVyRXJyb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29u
dHJvbGxlcjo6aW5pdE1vZHVsZUdyYXBoKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjptb2R1bGVM
b2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCk6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIGRv
bS9Nb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6
Ok1vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlMb2Fk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vZHVsZUdyYXBoOjpub3RpZnlFdmFsdWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxl
R3JhcGg6OmxvYWQpOgorICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
ZHVsZUdyYXBoOjptb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Ondl
YWtFbGVtZW50UHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjplcnJvck9jY3Vy
cmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAg
ICogZG9tL1BlbmRpbmdNb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGVuZGluZ01vZHVsZUdyYXBoOjpQZW5kaW5nTW9kdWxlR3JhcGgpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVuZGluZ01vZHVsZUdyYXBoOjp+UGVuZGluZ01vZHVsZUdyYXBoKToKKyAgICAgICAgKFdl
YkNvcmU6OlBlbmRpbmdNb2R1bGVHcmFwaDo6cmVsZWFzZUVsZW1lbnRBbmRDbGVhcik6CisgICAg
ICAgICogZG9tL1BlbmRpbmdNb2R1bGVHcmFwaC5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vU2Ny
aXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojppc1Njcmlw
dFR5cGVTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cHJlcGFy
ZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpzdG9wTG9hZFJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6bG9hZE1vZHVsZSk6CisgICAg
ICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1l
bnQ6Om1vZHVsZUdyYXBoKToKKyAgICAgICAgKiBkb20vU2NyaXB0UnVubmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcik6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpub3RpZnlNb2R1bGVHcmFwaFJlYWR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL1Nj
cmlwdFJ1bm5lci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5n
U2NyaXB0cyk6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToK
KyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorCiAyMDE1LTA5LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE1MDE4Nyk6
IHVwZGF0ZUlkRm9yVHJlZVNjb3BlIG1heSBub3QgYmUgY2FsbGVkIGluc2lkZSBzaGFkb3cgdHJl
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggODNmNWRlMjQ4NTJi
YzM3OGVlMGE3NzAzOWY0NjMxODI1ZmRkZGJiZS4uZGRiNjhjY2IzNjU0NDU5OTEwY2QzZjIzZjY2
ODc0ZDAwNTg4YTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3ltYm9sLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAg
LTg2LDcgKzg2LDcgQEAgY2xhc3MgU3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKICAg
ICBTeW1ib2woVk0mKTsKICAgICBTeW1ib2woVk0mLCBjb25zdCBTdHJpbmcmKTsKLSAgICBTeW1i
b2woVk0mLCBTeW1ib2xJbXBsJiB1aWQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN5bWJvbChW
TSYsIFN5bWJvbEltcGwmIHVpZCk7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSkK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGNhMWRlNGQxNTY5NDhiZjdlMTBkMGVlYjQ2
NmNjZmM1ZTM2NmIxMWEuLmRkNmFkYmZjYTk5Y2EzNTU2M2FkOTlkZDU2MDI5ZDU3ZTVjOGQzMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjIzLDYgKzEyMjMsOCBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNM
VFByb2Nlc3NvckN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcAor
ICAgIGJpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKICAgICBiaW5kaW5ncy9qcy9SZWFkYWJs
ZUpTU3RyZWFtLmNwcAogICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKICAgICBi
aW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCkBAIC0xNDQ3LDYgKzE0NDksNyBA
QCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL01lc3NhZ2VQb3J0LmNwcAogICAgIGRvbS9N
ZXNzYWdlUG9ydENoYW5uZWwuY3BwCiAgICAgZG9tL01pY3JvVGFzay5jcHAKKyAgICBkb20vTW9k
dWxlR3JhcGguY3BwCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01vdXNlUmVsYXRl
ZEV2ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oIGIv
U291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdmNTU3YTJmMjFlY2Y2YjJhZWNhZDY3ZTM1M2UxOTY2ZTQ3OTRlODAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50
aW1lL0pTSW50ZXJuYWxQcm9taXNlLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVf
RldEX0pTSW50ZXJuYWxQcm9taXNlX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFBy
b21pc2VfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRp
bWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzZjMDg2ZGQzOWFmZjllMTA0YmQ1YTZmZjdhZTc5MjU0NjM4Njk1NQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJk
aW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlOWVj
ZmZiY2Y1N2MyYTljNzk1Y2NiMWQ4MDM0MGY5MTRkN2Q0ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApA
QCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNvcmRfaAorI2Rl
ZmluZSBXZWJDb3JlX0ZXRF9KU01vZHVsZVJlY29yZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9XZWJDb3JlL0Zvcndh
cmRpbmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUwNDI3ZjA5MWE5ZWNh
Y2ZiZmEwOTlhZTBkMDMwZTBlOWJjNWViMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTAsMCArMSw0IEBACisj
aWZuZGVmIFdlYkNvcmVfRldEX1N5bWJvbF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1N5bWJvbF9o
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3ltYm9sLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ODhhN2Zj
ODg2MzBjZDg4NTU2MWVjNWQwNTE1MmYwZDY0YWMwNWY4Li44MjA0N2VkMzdiN2RmYWQ1MzFmZmFm
NTUyZjQ1ZGM3Mzc0YTY2YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzE3LDYgKzYzMTcsMTQgQEAKIAkJRTFGRjhGNjgx
ODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3
NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi87IH07CiAJCUUxRkY4RjZDMTgwREI1QkUw
MDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyog
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovOyB9OwogCQlFMUZGOEY2RDE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeS5oICovOyB9OworCQlFMzM5QTUyMzFCQTZCRDQ2MDBBM0E3QUUg
LyogTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCAqLzsg
fTsKKwkJRTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM5QTUyMjFCQTZCRDQ2MDBB
M0E3QUUgLyogTW9kdWxlR3JhcGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlFMzg4Mzg5NjFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4
Mzg5MjFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5jcHAgKi87IHNldHRpbmdzID0g
e0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTcxQkFEMTQ1RjAwRDYyRUUzIC8qIE1v
ZHVsZUZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmggKi87IHNldHRp
bmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTgxQkFEMTQ1RjAwRDYyRUUz
IC8qIE1vZHVsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmNwcCAq
Lzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OworCQlFMzg4Mzg5OTFCQUQxNDVG
MDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVy
LmggKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OUMxQkIw
N0QyNTAwRDYyRUUzIC8qIFBlbmRpbmdNb2R1bGVHcmFwaC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5QTFCQjA3RDI1MDBENjJFRTMgLyog
UGVuZGluZ01vZHVsZUdyYXBoLmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9
OyB9OworCQlFMzg4Mzg5RDFCQjA3RDI1MDBENjJFRTMgLyogUGVuZGluZ01vZHVsZUdyYXBoLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5QjFC
QjA3RDI1MDBENjJFRTMgLyogUGVuZGluZ01vZHVsZUdyYXBoLmggKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKIAkJRTQwMUMyNzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1l
bnRJdGVyYXRvckFzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JB
c3NlcnRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTQyNEEzOUUxMzMwREYwMTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyNEEzOUQxMzMw
REYwMTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oICovOyB9OwogCQlFNDI0QTNBMDEz
MzBERjFFMDBDRjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyNEEzOUYxMzMwREYxRTAwQ0Y2REM5IC8q
IExlZ2FjeVRpbGVHcmlkVGlsZS5tbSAqLzsgfTsKQEAgLTE0MDY2LDYgKzE0MDc0LDE0IEBACiAJ
CUUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N1YnRsZUNyeXB0b0N1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4RjZBMTgwREI1QkUwMDEzMjY3
NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxRkY4RjZCMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdv
cml0aG1SZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzM5QTUyMTFC
QTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9kdWxlR3JhcGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlR3JhcGguaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTM4ODM4OTIxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlRmV0Y2hlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAv
KiBNb2R1bGVGZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVs
ZUZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4OTQxQkFEMTQ1
RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNb2R1bGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMzg4Mzg5QTFCQjA3RDI1MDBENjJFRTMgLyogUGVuZGluZ01vZHVsZUdyYXBo
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlbmRpbmdNb2R1bGVH
cmFwaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgzODlCMUJCMDdEMjUw
MEQ2MkVFMyAvKiBQZW5kaW5nTW9kdWxlR3JhcGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGVuZGluZ01vZHVsZUdyYXBoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRJdGVyYXRvckFzc2Vy
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNkYzRkIxMTk4MzA3RDAw
OUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDFFQTAz
ODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0eU5hbWVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNTA2LDYgKzIxNTIyLDEwIEBACiAJCQkJNDExODlFRjgxQUQ4
MjMzQzAwQjkwQTBEIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcCAqLywK
IAkJCQlFMUMzNkQzMjBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2Uu
Y3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5oICovLAorCQkJCUUzODgzODkyMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRj
aGVyLmNwcCAqLywKKwkJCQlFMzg4Mzg5MzFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hl
ci5oICovLAorCQkJCUUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3Bw
ICovLAorCQkJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuaCAqLywK
IAkJCQk0MTk4QkRFRTFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0cmVhbS5jcHAgKi8s
CiAJCQkJNDE5OEJERUYxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRhYmxlSlNTdHJlYW0uaCAqLywK
IAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCAqLywK
QEAgLTIzNDcyLDYgKzIzNDkyLDggQEAKIAkJCQk0MUJGNzAwQTBGRTg2RjQ5MDA1RThERUMgLyog
TWVzc2FnZVBvcnRDaGFubmVsLmggKi8sCiAJCQkJQ0I4Q0YwMTUxQTkzNEI0MzAwMEQ1MTBCIC8q
IE1pY3JvVGFzay5jcHAgKi8sCiAJCQkJNTNCODk1QUQxOURDN0MzNzAwOUNBQTkzIC8qIE1pY3Jv
VGFzay5oICovLAorCQkJCUUzMzlBNTIxMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5j
cHAgKi8sCisJCQkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggKi8s
CiAJCQkJODUwMzFCMkYwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuY3BwICovLAogCQkJ
CTg1MDMxQjMwMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmggKi8sCiAJCQkJMTQxQjk0
RTUwOUVDNDIyMzAwMEU5NDEzIC8qIE1vdXNlRXZlbnQuaWRsICovLApAQCAtMjM1MzEsNiArMjM1
NTMsOCBAQAogCQkJCUUxMjg0QUUwMTA0NDdENDUwMEVBRUI1MiAvKiBQYWdlVHJhbnNpdGlvbkV2
ZW50LmggKi8sCiAJCQkJRTEyODRBRDkxMDQ0N0FFQjAwRUFFQjUyIC8qIFBhZ2VUcmFuc2l0aW9u
RXZlbnQuaWRsICovLAogCQkJCTgzRDI2RDNEMUFGRENDNTAwMDFCMzg3MyAvKiBQYXJlbnROb2Rl
LmlkbCAqLywKKwkJCQlFMzg4Mzg5QTFCQjA3RDI1MDBENjJFRTMgLyogUGVuZGluZ01vZHVsZUdy
YXBoLmNwcCAqLywKKwkJCQlFMzg4Mzg5QjFCQjA3RDI1MDBENjJFRTMgLyogUGVuZGluZ01vZHVs
ZUdyYXBoLmggKi8sCiAJCQkJOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3Jp
cHQuY3BwICovLAogCQkJCThBN0NDOTZBMTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0
LmggKi8sCiAJCQkJNDFCRjcwMEQwRkU4NkY2MTAwNUU4REVDIC8qIFBsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsLmNwcCAqLywKQEAgLTI0NTg2LDYgKzI0NjEwLDcgQEAKIAkJCQkzMTYwMjNGMDE1
MzJDNDBDMDBENTBGRjQgLyogRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM3RkYz
RDUxQTEwMTJENjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEQUYxOTk5MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RDb252b2x2ZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUUzMzlBNTI0MUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1v
bml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQzNUQwNTAwMTZBNzg0
IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQyOUVDQzYx
OTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjE2MSw2ICsyNjE4Niw3IEBACiAJCQkJQ0UxMjUyNDExQTE2QjFCNjAwODY0
NDgwIC8qIE1lZGlhUGxheWVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkUyQ0FGQzE5RkYw
MjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5
MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUz
ODgzODk5MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTRFMTk1OTJDMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0RTE5NTkyRTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV4
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNBOTRBMzkxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlh
UXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzgzLDYgKzI2ODA5LDcgQEAKIAkJCQkw
RkI4ODkwRjE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzFDQkQxMTE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3Rh
dGVUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY2MkYyNjE0REFGRUExMDA0MTU1NkMgLyog
U2Nyb2xsaW5nVGhyZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg4Mzg5RDFCQjA3RDI1MDBE
NjJFRTMgLyogUGVuZGluZ01vZHVsZUdyYXBoLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFBRERB
NDE0REI0MDlGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNDMzhDMDMxNjQ0NzNERDAwMDkxRUIyIC8qIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRUEzRTg4MTkxQjNCRDcwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjA1LDYgKzI3MjMyLDcg
QEAKIAkJCQkwODBFNDkyODEyNTVGM0JEMDBFRkNBMjcgLyogU1ZHVGV4dExheW91dEVuZ2luZVNw
YWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RjBCRkM2MTI1NUM1M0MwMDA3NTE4NSAvKiBT
VkdUZXh0TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzExNzQ0NTkxNEJDMzRFQzAwRUU1
RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4ODM4
OTcxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3QUNFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUZXh0UGF0aEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QUQxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAyNTEyNTVFNEU2MDBCOUNERDAg
LyogU1ZHVGV4dFF1ZXJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTI3OTcyLDYgKzI4MDAwLDcgQEAK
IAkJCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBCQzEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9EZXN0
aW5hdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAwNzEyQjAyNjc2MDBDMUEz
NTkgLyogQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTMzOUE1
MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZEMzE2MDgxMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDRDU1OTY5MTE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxl
UmVhZGVySU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEJFMTJCMDI3MkEwMEMxQTM1
OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODUzNSw2ICsy
ODU2NCw3IEBACiAJCQkJRTRBMDA3ODUxQjgyMEVEMzAwMkM1QTZFIC8qIERhdGFVUkxEZWNvZGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODM5MTUxMEYxRTc2QjQwMEMyMzc4MiAvKiBET01X
ZWJLaXRDU1NNYXRyaXgubW0gaW4gU291cmNlcyAqLywKIAkJCQk4QUQwQTU5NzE0Qzg4MzU4MDAw
RDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUz
ODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzE2MTFFNjIwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJM0YyQjMzRUMxNjVBRjE1NjAwRTM5ODdDIC8qIERP
TVdlYktpdENTU1ZpZXdwb3J0UnVsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDOTFBMzhGMUI0
OThBQkUwMDNGOUVGQSAvKiBKU05vZGVPclN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4
NTg4LDYgKzI4NjE4LDcgQEAKIAkJCQk5NzY2NTA0RjE0NEZCRkZFMDBGNkJCNTEgLyogRXZlbnRG
YWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQzA5QTgxMEIwNjRGMDAwMDVBQkQ0RCAv
KiBFdmVudEhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU2OTM4QjYxMDQ1RDY3RTAw
OEVBQkI2IC8qIEV2ZW50SGFuZGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUzODgzODlD
MUJCMDdEMjUwMEQ2MkVFMyAvKiBQZW5kaW5nTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNDMDlBN0YwQjA2NEVFRjAwNUFCRDREIC8qIEV2ZW50SGFuZGxlck1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUFENDQ5NUYzMTQxRkMwODkwMDU0MUVERiAvKiBFdmVudExpc3RlbmVy
TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM0MDBEMTA5MThGMUM4RjYwMDkwRDg2MyAvKiBF
dmVudExvb3BJbnB1dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4ODYyLDYgKzI4ODkzLDcgQEAK
IAkJCQlBODcxREIyRTBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMjkwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJs
ZUNvbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMjgwQTE1MEJENjAwQjEy
QTY4IC8qIEhUTUxUYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4ODM4OTYx
QkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTg3MURCMkQwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4NzFEQjMwMEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVSb3dF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNDQyQ0EwMEQyQjMzNjAwMDMzOEZGOSAv
KiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDc5Yjc0MGJlNWUx
YTI2MDBjNDFkNzMyMTI1MTVmOGZmMTEyYmU5NjYuLjMyYTA1YjZjODAyOWVjMjY4NmM4ZjhiOWQ3
OGZlNTI4MjEwNTBhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcApAQCAtMzEsMTEgKzMxLDEzIEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3dD
dXN0b20uaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgPHJ1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvTWlj
cm90YXNrLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtNTYsNyArNTgsNyBA
QCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20oY29uc3QgSlNHbG9iYWxPYmplY3Qq
IHRoaXNPYmplY3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dC
YXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2UpIH07CiAKLWNvbnN0IEdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3VwcG9y
dHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50
aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJl
Zm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIg
fTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBvcnRz
UHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlw
dCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3Vs
ZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9k
dWxlTG9hZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSB9
OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0RPTVdpbmRvd1NoZWxs
KiBzaGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsICZzaGVsbC0+
d29ybGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC0yNzksNCArMjgxLDMxIEBA
IHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5k
b3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAgfQogfQogCisKK0pTQzo6SlNJbnRlcm5hbFByb21p
c2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9k
dWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyKQoreworICAgIEpTRE9NV2luZG93QmFzZSog
dGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7
CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5kb2N1bWVu
dCgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5yZXNvbHZlKGds
b2JhbE9iamVjdCwgZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJyZXIpOworICAgIEpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBkZWZlcnJlZC0+
cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXkpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNE
T01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50
ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVu
dC0+bW9kdWxlTG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlS2V5KTsK
KyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBy
ZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5lZCgpKTsKK30KKworSlNDOjpK
U1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVl
IG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCkKK3sKKyAgICBKU0RPTVdpbmRv
d0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxP
YmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCku
ZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+ZXZh
bHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCk7CisgICAg
cmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA1ZWQz
ODYyYzE0MTE4N2MwMDZiNjg4ZGI3OTc3OTRiMzY5ODEwNTY0Li4yZDQ0YjgwMDllNTRkYmIwNzRl
OGY5OTc3YzE2YjI1ZTEyNTdlYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuaApAQCAtNzgsNiArNzgsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBKU0M6OldhdGNocG9pbnRTZXQgbV93aW5kb3dDbG9zZVdhdGNocG9pbnRzOwogCiAg
ICAgcHJpdmF0ZToKKyAgICAgICAgLy8gTW9kdWxlIExvYWRlciBob29rcy4KKyAgICAgICAgc3Rh
dGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUp
OworICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyRmV0
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsK
KyAgICAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1
ZSk7CisKICAgICAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV9pbXBsOwogICAgICAgICBKU0RPTVdp
bmRvd1NoZWxsKiBtX3NoZWxsOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCmluZGV4IDA5ZTdlNWI2MDI2ODc5YjUzMzVh
MWZlMWVmNzFjNDQ3NDMwYmZjZDQuLjRmZDY4M2UxNTkxMDJiMTUyODdkNjM4OTljMDE2ZWZkMzc0
ODAzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVh
ZEV4ZWNTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVh
ZEV4ZWNTdGF0ZS5oCkBAIC03NCw2ICs3NCwyNCBAQCBjbGFzcyBKU01haW5UaHJlYWRFeGVjU3Rh
dGUgewogICAgICAgICB0YXNrLnJ1bihleGVjKTsKICAgICB9CiAKKyAgICBzdGF0aWMgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U3RyaW5nJiBtb2R1bGVOYW1lKQorICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRl
IGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bG9hZE1vZHVsZShleGVj
LCBtb2R1bGVOYW1lKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlz
ZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpTb3VyY2VDb2Rl
JiBzb3VyY2VDb2RlKQorICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJl
bnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bG9hZE1vZHVsZShleGVjLCBzb3Vy
Y2VDb2RlKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbGlu
a0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIG1vZHVsZUtleSkKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBj
dXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxpbmtBbmRFdmFsdWF0ZU1v
ZHVsZShleGVjLCBtb2R1bGVLZXkpOworICAgIH0KKwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgaW5zdHJ1bWVudEZ1bmN0aW9uQ2FsbChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgSlNDOjpDYWxsVHlwZSwgY29uc3QgSlNDOjpDYWxsRGF0YSYpOwogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yM2YxZWFhMDg4ODBkNGE2M2JjYWQ0ZTM0OWZjNGEwNTk0ZmUxM2U0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5jcHAKQEAg
LTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTW9kdWxlRmV0Y2hlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
KyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUg
Ik1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgorI2lu
Y2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9kdWxlRmV0Y2hlcjo6TW9kdWxlRmV0Y2hlcihK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlND
OjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fc291cmNlVVJMKHNvdXJjZVVS
TCkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0
KQorICAgICwgbV9kZWZlcnJlZChnbG9iYWxPYmplY3QtPnZtKCksIGRlZmVycmVkKQoreworfQor
CitNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hlcigpCit7CisgICAgaWYgKG1fY2FjaGVkU2Ny
aXB0KSB7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAg
ICAgIG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKyAgICB9Cit9CisKK1JlZjxNb2R1bGVGZXRj
aGVyPiBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCog
ZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNb2R1bGVGZXRjaGVyKGdsb2JhbE9iamVjdCwgc291cmNlVVJMLCBkZWZlcnJlZCwgZG9jdW1l
bnQpKTsKK30KKworYm9vbCBNb2R1bGVGZXRjaGVyOjpydW4oKQoreworICAgIFJlc291cmNlTG9h
ZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRS
ZXNvdXJjZU9wdGlvbnMoKTsKKyAgICBvcHRpb25zLnNldENvbnRlbnRTZWN1cml0eVBvbGljeUlt
cG9zaXRpb24oQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7
CisKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobV9z
b3VyY2VVUkwpLCBvcHRpb25zKTsKKworICAgIC8vIEZJWE1FOiBTaG91bGQgaGFuZGxlICJjcm9z
c29yaWdpbiIgb3B0aW9ucy4KKyAgICAvLyBPbmNlIHRoZSBzcGVjIGRlc2NyaWJlcyB0aGUgZGV0
YWlscywgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoQXRvbWlj
U3RyaW5nKG1fc291cmNlVVJMLnN0cmluZygpKSk7CisKKyAgICBtX2NhY2hlZFNjcmlwdCA9IG1f
ZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOwor
ICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8v
IE5vdGU6IElmIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGltbWVpZGF0ZWx5
IGNhbGxzIG5vdGlmeUZpbmlzaGVkLgorICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhp
cyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTW9kdWxlRmV0Y2hlcjo6bm90aWZ5Rmlu
aXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIEFTU0VSVF9VTlVTRUQocmVz
b3VyY2UsIHJlc291cmNlID09IG1fY2FjaGVkU2NyaXB0KTsKKyAgICBpZiAoIW1fY2FjaGVkU2Ny
aXB0KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9jYWNoZWRTY3JpcHQpOworICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0ID0gbV9jYWNo
ZWRTY3JpcHQ7CisgICAgbV9jYWNoZWRTY3JpcHQgPSBudWxscHRyOworCisjaWYgRU5BQkxFKE5P
U05JRkYpCisgICAgaWYgKGNhY2hlZFNjcmlwdCAmJiAhY2FjaGVkU2NyaXB0LT5taW1lVHlwZUFs
bG93ZWRCeU5vc25pZmYoKSkgeworICAgICAgICBtX2RvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiUmVmdXNlZCB0
byBleGVjdXRlIHNjcmlwdCBmcm9tICciICsgY2FjaGVkU2NyaXB0LT51cmwoKS5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXRzIE1JTUUgdHlwZSAoJyIgKyBj
YWNoZWRTY3JpcHQtPm1pbWVUeXBlKCkgKyAiJykgaXMgbm90IGV4ZWN1dGFibGUsIGFuZCBzdHJp
Y3QgTUlNRSB0eXBlIGNoZWNraW5nIGlzIGVuYWJsZWQuIik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisjZW5kaWYKKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkp
IHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9iamVjdC0+dm0oKSk7
CisgICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4
ZWMoKTsKKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC0+ZXJyb3JPY2N1cnJlZCgpKSB7CisgICAg
ICAgICAgICAvLyBUaGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZSBpcyBjb25zdHJ1Y3RlZCBhcyBh
IGNoYWluIG9mIHByb21pc2VzLgorICAgICAgICAgICAgLy8gUmVqZWN0aW5nIGEgcHJvbWlzZSBp
ZiBzb21lIGVycm9yIG9jY3VycyBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgZXhlY3V0aW9uIGZs
b3cgb2YKKyAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGNoYWluIGlzIGRyaXZlbiBieSAicmVq
ZWN0ZWQiIG9yICJmdWxmaWxsZWQiIGV2ZW50cy4KKyAgICAgICAgICAgIC8vIElmIHRoZSBwcm9t
aXNlIGlzIG5vdCByZWplY3RlZCB3aGlsZSBlcnJvciBvY2N1cnMsIHJlamVjdCBoYW5kbGVyIHdv
bid0IGJlIGV4ZWN1dGVkCisgICAgICAgICAgICAvLyBhbmQgYWxsIHRoZSBzdWJzZXF1ZW50IHBy
b21pc2UgY2hhaW4gd2FpdCB0aGUgcmVzdWx0IGZvcmV2ZXIuCisgICAgICAgICAgICAvLworICAg
ICAgICAgICAgLy8gQXMgYSByZXN1bHQsIGV2ZW4gaWYgdGhlIGVycm9yIGlzIGFscmVhZHkgcmVw
b3J0ZWQgdG8gdGhlIGluc3BlY3RvciBlbHNld2hlcmUsCisgICAgICAgICAgICAvLyBpdCBzaG91
bGQgYmUgcHJvcGFnYXRlZCBpbiB0aGUgcGlwZWxpbmUuIEZvciBleGFtcGxlLCB0aGUgZXJyb3Ig
b2YgbG9hZGluZworICAgICAgICAgICAgLy8gQ2FjaGVkUmVzb3VyY2UgaXMgcmVwb3J0ZWQgYnkg
dGhlIGxvYWRlci4gQnV0IHdlIG5lZWQgdG8gcmVqZWN0IHRoZSBwcm9taXNlIGJ5IHNvbWUKKyAg
ICAgICAgICAgIC8vIGVycm9yLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdCB0
byByZXBvcnQgdGhlIGVycm9yIHR3aWNlLCB3aGVuIHdlIHByb3BhZ2F0ZSB0aGUgZXJyb3IgdGhh
dCBpcyBhbHJlYWR5IHJlcG9ydGVkCisgICAgICAgICAgICAvLyB0byB0aGUgaW5zcGVjdG9yLCB3
ZSB0aHJvdyBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCBzeW1ib2wgaW5z
dGVhZC4KKyAgICAgICAgICAgIC8vIEJ5IGNvbXBhcmluZyB0aGUgdGhyb3duIGVycm9yIHdpdGgg
dGhpcyBzeW1ib2wsIHdlIGNhbiBkaXN0aW5ndWlzaCBlcnJvcnMgcmFpc2VkCisgICAgICAgICAg
ICAvLyB3aGVuIGxpbmtpbmcgb3IgZXhlY3V0aW5nIGEgbW9kdWxlIGdyYXBoIGZyb20gZXJyb3Jz
IHJlcG9ydGVkIGFscmVhZHkuCisgICAgICAgICAgICAvLyBJbiB0aGUgcmVqZWN0IGhhbmRsZXIg
b2YgdGhlIHByb21pc2UsIHdlIG9ubHkgcmVwb3J0IGEgZXJyb3IgdGhhdCBpcyBub3QgdGhpcyBz
eW1ib2wuCisgICAgICAgICAgICBtX2RlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6
OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5
UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFjYWNo
ZWRTY3JpcHQtPndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUg
c291cmNlQ29kZShjYWNoZWRTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgbV9kZWZlcnJlZC0+
cmVzb2x2ZShleGVjLCBKU0M6OmpzU3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkpKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEEgQ2FjaGVkUmVzb3VyY2VIYW5kbGUgYWxvbmUg
ZG9lcyBub3QgcHJldmVudCB0aGUgdW5kZXJseWluZyBDYWNoZWRSZXNvdXJjZQorICAgIC8vIGZy
b20gcHVyZ2luZyBpdHMgZGF0YSBidWZmZXIuIFVudGlsIHdlIGZpbmlzaCB1c2luZyB0aGUgYmFj
a2luZyBidWZmZXIgb2YgdGhlCisgICAgLy8gY2FjaGVkIHNjcmlwdCwgd2UgZG9uJ3QgcmVtb3Zl
IHRoZSBjbGllbnQuCisgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisKKyAg
ICBtX2RvY3VtZW50Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAv
LyBBZnRlciBNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUg
ZGVzdHJveWVkLgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Nb2R1bGVGZXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRj
aGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjkzZDM2YWUzNjBmMmY3MmIwZTk5ZWZiYTQzN2Y3MzU0NmI0NjIw
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZl
dGNoZXIuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVGZXRj
aGVyX2gKKyNkZWZpbmUgTW9kdWxlRmV0Y2hlcl9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAi
VVJMLmgiCisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENhY2hlZFNjcmlwdDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7
CisKK2NsYXNzIE1vZHVsZUZldGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVGZXRjaGVy
PiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTW9kdWxlRmV0Y2hlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8TW9kdWxlRmV0Y2hlcj4gY3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29u
c3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3Vt
ZW50Jik7CisKKyAgICB+TW9kdWxlRmV0Y2hlcigpOworCisgICAgYm9vbCBydW4oKTsKKworICAg
IENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0
KCk7IH0KKworcHJpdmF0ZToKKyAgICBNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERv
Y3VtZW50Jik7CisKKyAgICAvLyBGb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBE
b2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJv
bmc8SlNET01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpT
Qzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwMmIxNjJk
MDEyM2Y1YTA4OGFlZjdiZjBiNDNjNTMyOTUyN2VjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxMzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVy
LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUg
Ik1pY3JvVGFzay5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL1N5bWJvbC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKERvY3Vt
ZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK0pTQzo6
SlNJbnRlcm5hbFByb21pc2UqIE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9k
dWxlTmFtZVZhbHVlLCBKU0M6OkpTVmFsdWUgcmVmZXJyZXJWYWx1ZSkKK3sKKyAgICBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAobW9kdWxlTmFt
ZVZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVj
LCBtb2R1bGVOYW1lVmFsdWUpOworCisgICAgLy8gRklYTUU6IFdlIG5vdyBhc3N1bWUgdGhhdCBt
b2R1bGUgbmFtZSBpcyBlaXRoZXIgc3ltYm9sIG9yIHN0cmluZy4KKyAgICAvLyBXaGVuIGV4cG9z
aW5nIHRoZSByZWZsZWN0aW9uIHRvIHRoZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBu
ZWVkIHRvIHJlY2FzdCB0aGlzIHBhcnQuCisgICAgQVNTRVJUKG1vZHVsZU5hbWVWYWx1ZS5pc1N0
cmluZygpKTsKKyAgICBTdHJpbmcgbW9kdWxlTmFtZSA9IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJp
bmcqPihtb2R1bGVOYW1lVmFsdWUpLT52YWx1ZShleGVjKTsKKworICAgIC8vIE5vdywgd2UgY29u
c2lkZXIgdGhlIGdpdmVuIG1vZHVsZU5hbWUgYXMgdGhlIHNhbWUgdG8gdGhlIHNyYz0iLi4uIiBp
biB0aGUgc2NyaXB0IHRhZy4KKyAgICAvLyBXZSB1c2UgdGhlIGNvbXBsZXRlZCBVUkwgYXMgdGhl
IG1vZHVsZSBrZXkuCisgICAgLy8KKyAgICAvLyBGSVhNRTogV2UgbmVlZCBzaXRlIHBhY2thZ2lu
ZyBzeXN0ZW0uIEJ1dCBpdCdzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjIHlldC4KKyAgICAvLyBo
dHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWxvYWRlci1wcm90b3R5cGUt
JTQwJTQwcmVzb2x2ZQorICAgIFVSTCBjb21wbGV0ZWRVUkw7CisKKyAgICAvLyBGSVhNRTogQ2hl
Y2sgbV9kb2N1bWVudCBsaWZldGltZS4KKyAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1N5bWJvbCgp
KQorICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5h
bWUpOworICAgIGVsc2UgeworICAgICAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1VuZGVmaW5lZCgp
KQorICAgICAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1
bGVOYW1lKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQocmVmZXJyZXJWYWx1
ZS5pc1N0cmluZygpKTsKKyAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IEpTQzo6anNDYXN0
PEpTQzo6SlNTdHJpbmcqPihyZWZlcnJlclZhbHVlKS0+dmFsdWUoZXhlYyk7CisgICAgICAgICAg
ICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUsIFVSTChQ
YXJzZWRVUkxTdHJpbmcsIHJlZmVycmVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFj
b21wbGV0ZWRVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChl
eGVjLCBjcmVhdGVET01FeGNlcHRpb24oZXhlYywgU1lOVEFYX0VSUikpOworCisgICAgcmV0dXJu
IGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIGpzU3RyaW5nKGV4ZWMsIGNvbXBsZXRlZFVSTC5zdHJp
bmcoKSkpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6OmZldGNo
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogV2hlbiBpbXBs
ZW1lbnRpbmcgcmVmbGVjdGl2ZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBzaG91bGQg
cmVjYXN0IHRoaXMgaW1wbGVtZW50YXRpb24uCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRl
KGV4ZWMsIGdsb2JhbE9iamVjdCk7CisKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtb2R1bGVL
ZXlWYWx1ZS5pc1N5bWJvbCgpLCAiU3ltYm9saWMgbW9kdWxlIGtleSBzaG91bGQgYmUgYWxyZWFk
eSBmdWxmaWxsZWQgd2l0aCB0aGUgaW5saW5lZCByZXNvdXJjZS4iKTsKKyAgICBBU1NFUlQobW9k
dWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisKKyAgICBKU0M6OklkZW50aWZpZXIgbW9kdWxlS2V5
ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGFzU3RyaW5nKG1vZHVsZUtleVZh
bHVlKS0+dmFsdWUoZXhlYykpOworCisgICAgVVJMIGNvbXBsZXRlZFVSTChQYXJzZWRVUkxTdHJp
bmcsIG1vZHVsZUtleS5pbXBsKCkpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoY29tcGxldGVk
VVJMLmlzVmFsaWQoKSwgIlRoZSByZXNvbHZlIGhvb2sgc2hvdWxkIHByb2R1Y2UgdGhlIHZhbGlk
IFVSTCBhcyBhIHN0cmluZy4iKTsKKworICAgIFJlZjxNb2R1bGVGZXRjaGVyPiBmZXRjaGVyID0g
TW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xv
YmFsT2JqZWN0KSwgY29tcGxldGVkVVJMLCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7CisgICAgbV9m
ZXRjaGluZ1NldC5hZGQoJmZldGNoZXIuZ2V0KCkpOworICAgIGlmICghZmV0Y2hlci0+cnVuKCkp
IHsKKyAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAg
ICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUo
ZXhlYy0+dm0oKSwgKihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVk
RXJyb3JTeW1ib2woKS51aWQoKSkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnBy
b21pc2UoKTsKK30KKworSlNDOjpKU1ZhbHVlIE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxl
S2V5VmFsdWUsIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSkKK3sKKyAgICAvLyBGSVhN
RTogQ3VycmVudGx5LCB3ZSBvbmx5IHN1cHBvcnQgSlNNb2R1bGVSZWNvcmQuCisgICAgSlNDOjpK
U01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNN
b2R1bGVSZWNvcmQqPihtb2R1bGVSZWNvcmRWYWx1ZSk7CisgICAgaWYgKCFtb2R1bGVSZWNvcmQp
CisgICAgICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CisKKyAgICBVUkwgc291cmNlVVJM
OworICAgIGlmIChtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBzb3VyY2VVUkwg
PSBtX2RvY3VtZW50LnVybCgpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobW9kdWxlS2V5
VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgICAgIHNvdXJjZVVSTCA9IFVSTChQYXJzZWRVUkxTdHJp
bmcsIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykpOworICAgIH0KKworICAg
IGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCisgICAgICAgIHJldHVybiBm
cmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQpOwor
ICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjpu
b3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKiBmZXRjaGVyKQoreworICAgIG1fZmV0Y2hpbmdT
ZXQucmVtb3ZlKGZldGNoZXIpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01v
ZHVsZUxvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0OTM2OTY4MTY1ZWVkODU4MTAxNzgxY2QxODU0NzBj
OGViNWUwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9N
b2R1bGVMb2FkZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1
bGVMb2FkZXJfaAorI2RlZmluZSBNb2R1bGVMb2FkZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIk1vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgor
I2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworCitjbGFzcyBNb2R1bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IGV4cGxpY2l0IE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJl
cik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNDOjpK
U1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCisgICAg
dm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKik7Citwcml2YXRlOgorICAgIERvY3Vt
ZW50JiBtX2RvY3VtZW50OworICAgIEhhc2hTZXQ8UmVmUHRyPE1vZHVsZUZldGNoZXI+PiBtX2Zl
dGNoaW5nU2V0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9k
dWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHAKaW5kZXggNGIzYjA5NzJiZTc3ZjNjNzY1OTVmMTQwZTI2YTc0OGZmOGVhNDUwYy4u
OTliN2Y4YjYyYTRiN2ZlYWVmM2ZjNWI0YTdjZWQ3MThhNTNlZDNjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM2LDExICszNiwx
MyBAQAogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIk1haW5G
cmFtZS5oIgogI2luY2x1ZGUgIk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIgorI2luY2x1ZGUgIk1v
ZHVsZUdyYXBoLmgiCiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIK
ICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTU0LDcgKzU2LDExIEBACiAj
aW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHByb2ZpbGVy
L1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNp
bmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50
aW1lL0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1Rl
eHRQb3NpdGlvbi5oPgogCkBAIC04Niw2ICs5Miw3IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlw
dENvbnRyb2xsZXIoRnJhbWUmIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1f
c291cmNlVVJMKDApCiAgICAgLCBtX3BhdXNlZChmYWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVy
QWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogICAgICwgbV93aW5kb3dTY3JpcHROUE9iamVjdCgwKQogI2VuZGlmCkBAIC0xNzUsMTEg
KzE4MiwxMjggQEAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZh
bHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUKICAgICByZXR1cm4gRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOwogfQogCi1EZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiBzb3VyY2VDb2RlKSAKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAg
ICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29y
bGQoKSk7CiB9CiAKK3N0YXRpYyB2b2lkIGhhbmRsZU1vZHVsZUxvYWRlckVycm9yKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBlcnJvciwgY29uc3QgUHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFs
cmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKQoreworICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3Ig
aXMgbWFya2VkIGFzIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAg
IC8vIERvbid0IHJlcG9ydCBpdCBoZXJlIGFnYWluLgorICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9
IGpzRHluYW1pY0Nhc3Q8U3ltYm9sKj4oZXJyb3IpKSB7CisgICAgICAgIGlmIChzeW1ib2wtPnBy
aXZhdGVOYW1lKCkgPT0gbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgaGF2
ZSBub3Qgc3VwcG9ydGVkIHRoZSAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSBpbiB0aGUgbW9kdWxl
IHRhZywKKyAgICAvLyB3ZSBwYXNzIHRoZSBudWxscHRyIHRvIHJlcG9ydEV4Y2VwdGlvbidzIENh
Y2hlZFNjcmlwdCogcGFyYW1ldGVyLiBXaGVuIHBhc3NpbmcgbnVsbHB0cgorICAgIC8vIHRvIHJl
cG9ydEV4Y2VwdGlvbiwgV2ViQ29yZSBkb2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVy
cm9yIGlmIHRoZSBVUkwgb2YgdGhlCisgICAgLy8gc291cmNlIGRvZXMgbm90IHBhc3MgdGhlIHNh
bWUgb3JpZ2luIHBvbGljeS4gU28gdGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgY29uc2VydmF0aXZl
OworICAgIC8vIG9ubHkgdGhlIG1vZHVsZSBjb2RlIHRoYXQgVVJMIGlzIHdpdGhpbiB0aGUgc2Ft
ZSBvcmlnaW4gY2FuIHJlcG9ydCB0aGUgZGV0YWlscyBvZiB0aGUKKyAgICAvLyBlcnJvci4gT25j
ZSB0aGUgc3BlYyBkZXNjcmliZXMgdGhlIGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAg
ICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXJyb3IsIG51bGxwdHIpOworfQorCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwg
Y29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAg
IEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCog
c2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwt
PndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0TW9kdWxlR3JhcGgobW9kdWxlR3Jh
cGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKSwg
d29ybGQpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3Jh
cGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgbG9hZE1v
ZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChNb2R1
bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUs
IERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQu
dm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxk
KTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsK
KworICAgIGluaXRNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0YXRl
Ojpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCkpLCB3b3JsZCk7Cit9
CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxl
R3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgbG9hZE1v
ZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJ
bldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkK
K3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93
U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2Uq
IHByb21pc2UgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShl
eGVjLCBJZGVudGlmaWVyOjpmcm9tVWlkKCZleGVjLT52bSgpLCBtb2R1bGVHcmFwaC5tb2R1bGVL
ZXkoKSkpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtF
bGVtZW50UHRyKCkpOworICAgIEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVT
dGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5n
KCksIFt3ZWFrUHRyXShFeGVjU3RhdGUqKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBv
c3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsK
KworICAgIFByaXZhdGVOYW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9s
ID0gbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICBKU0Z1bmN0
aW9uKiByZWplY3RIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZt
KCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVw
b3J0ZWRFcnJvclN5bWJvbCwgd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIGlm
IChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0
b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5u
b3RpZnlFdmFsdWF0ZWQoKTsKKyAgICAgICAgaGFuZGxlTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywg
ZXhlYy0+YXJndW1lbnQoMCksIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9s
KTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9
KTsKKworICAgIHByb21pc2UtPnRoZW4oZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRs
ZXIpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShN
b2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgpCit7CisgICAgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5X
b3JsZChtb2R1bGVHcmFwaCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCitEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBV
UkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAg
IGNvbnN0IFNvdXJjZUNvZGUmIGpzU291cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29k
ZSgpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7
CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7Cisg
ICAgY29uc3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291
cmNlVVJMID0gJnNvdXJjZVVSTC5zdHJpbmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdCht
X2ZyYW1lKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3Vy
Y2VVUkwsIGpzU291cmNlQ29kZS5maXJzdExpbmUoKSk7CisKKyAgICBKU1ZhbHVlIHJldHVyblZh
bHVlID0gbW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShleGVjKTsKKyAgICBOYWtlZFB0cjxFeGNlcHRp
b24+IGV2YWx1YXRpb25FeGNlcHRpb247CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQor
ICAgICAgICBldmFsdWF0aW9uRXhjZXB0aW9uID0gZXhlYy0+dm0oKS5leGNlcHRpb24oKTsKKwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llLCBt
X2ZyYW1lKTsKKworICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKSB7CisgICAgICAgIHJlcG9y
dEV4Y2VwdGlvbihleGVjLCBldmFsdWF0aW9uRXhjZXB0aW9uLCBudWxscHRyKTsKKyAgICAgICAg
bV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6
OlNjcmlwdFZhbHVlKCk7CisgICAgfQorCisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVS
TDsKKyAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJu
VmFsdWUpOworfQorCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpl
dmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVs
ZVJlY29yZCkKK3sKKyAgICByZXR1cm4gZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVS
ZWNvcmQsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwogUmVmPERPTVdyYXBwZXJXb3Js
ZD4gU2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlV29ybGQoKQogewogICAgIHJldHVybiBET01XcmFw
cGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0yNzIsNiArMzk2
LDQxIEBAIEpTRE9NV2luZG93U2hlbGwqIFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCkKICAgICByZXR1cm4gd2luZG93U2hlbGw7CiB9CiAKK3N0YXRp
YyBJZGVudGlmaWVyIGpzVmFsdWVUb01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
dmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVu
dGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOwor
ICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyhleGVjLCBqc0Nhc3Q8SlNTdHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30K
Kwordm9pZCBTY3JpcHRDb250cm9sbGVyOjppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1v
ZHVsZUdyYXBoLCBKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxk
KTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsK
KworICAgIFdlYWtQdHI8RWxlbWVudD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0
cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rp
b246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vh
a1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQg
ZWxlbWVudCBhbmQgZG9jdW1lbnQgbWF5IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUg
bW9kdWxlLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBt
b2R1bGUgYm9keS4KKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0
ci5nZXQoKSkgeworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9N
b2R1bGVLZXkoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgdG9TY3JpcHRF
bGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5TG9h
ZGVkKG1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBtb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2w7CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9IEpT
TmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEs
IFN0cmluZygpLCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQ
dHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1l
bnQgPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJs
ZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXJyb3JlZCgpOworICAgICAg
ICBoYW5kbGVNb2R1bGVMb2FkZXJFcnJvcihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgbW9kdWxl
TG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOworICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhlbihl
eGVjLCBmdWxmaWxsSGFuZGxlciwgcmVqZWN0SGFuZGxlcik7Cit9CisKIFRleHRQb3NpdGlvbiBT
Y3JpcHRDb250cm9sbGVyOjpldmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgLy8g
RklYTUU6IElmIHdlIGFyZSBub3QgY3VycmVudGx5IHBhcnNpbmcsIHdlIHNob3VsZCB1c2Ugb3Vy
IGN1cnJlbnQgbG9jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuaAppbmRleCAwN2M1M2I3YzhlZGZiNGUyOGY1Y2ExM2FhMmM0ZTA1NTk0ZWY1MTIy
Li45MDFiNTNlYmFmNTRjNDc4ZjdkNDFlZjFkYzUxNTBjMWIwODVhOTZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCw5IEBA
IGNsYXNzIFNjcmlwdFZhbHVlOwogCiBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2Jh
bE9iamVjdDsKKyAgICBjbGFzcyBKU01vZHVsZVJlY29yZDsKKyAgICBjbGFzcyBKU0ludGVybmFs
UHJvbWlzZTsKKwogICAgIGNsYXNzIEV4ZWNTdGF0ZTsKIAogICAgIG5hbWVzcGFjZSBCaW5kaW5n
cyB7CkBAIC01Nyw2ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lOwog
Y2xhc3MgSFRNTERvY3VtZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CitjbGFzcyBNb2R1
bGVHcmFwaDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsK
IGNsYXNzIFdpZGdldDsKQEAgLTExNSw2ICsxMTksMTcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxl
ciB7CiAgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291
cmNlQ29kZSYpOwogICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlSW5Xb3JsZChj
b25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CiAKKyAgICB2b2lkIGxv
YWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBE
T01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmLCBjb25z
dCBTdHJpbmcmIG1vZHVsZU5hbWUpOworICAgIHZvaWQgbG9hZE1vZHVsZUluV29ybGQoTW9kdWxl
R3JhcGgmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAg
dm9pZCBsb2FkTW9kdWxlKE1vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwor
CisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiAsIERP
TVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKE1vZHVsZUdy
YXBoJik7CisKKyAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25z
dCBVUkwmLCBKU0M6OkpTTW9kdWxlUmVjb3JkKiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiwgSlNDOjpKU01v
ZHVsZVJlY29yZCopOworCiAgICAgV1RGOjpUZXh0UG9zaXRpb24gZXZlbnRIYW5kbGVyUG9zaXRp
b24oKSBjb25zdDsKIAogICAgIHZvaWQgZW5hYmxlRXZhbCgpOwpAQCAtMTM1LDYgKzE1MCw4IEBA
IGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogCiAgICAgY29uc3QgU3RyaW5nKiBzb3VyY2VVUkwo
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfSAvLyAwIGlmIHdlIGFyZSBub3QgZXZhbHVh
dGluZyBhbnkgc2NyaXB0CiAKKyAgICBjb25zdCBKU0M6OlByaXZhdGVOYW1lJiBtb2R1bGVMb2Fk
ZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTG9h
ZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7IH0KKwogICAgIHZvaWQgY2xlYXJXaW5kb3dT
aGVsbChET01XaW5kb3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOwog
ICAgIHZvaWQgdXBkYXRlRG9jdW1lbnQoKTsKIApAQCAtMTcwLDYgKzE4Nyw3IEBAIGNsYXNzIFNj
cmlwdENvbnRyb2xsZXIgewogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2lu
ZG93U2hlbGwqIGluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBpbml0TW9k
dWxlR3JhcGgoTW9kdWxlR3JhcGgmLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiwgRE9NV3JhcHBl
cldvcmxkJik7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsK
IApAQCAtMTc4LDYgKzE5Niw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIGNvbnN0
IFN0cmluZyogbV9zb3VyY2VVUkw7CiAKICAgICBib29sIG1fcGF1c2VkOworICAgIEpTQzo6UHJp
dmF0ZU5hbWUgbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKIAogICAg
IC8vIFRoZSByb290IG9iamVjdCB1c2VkIGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhlIGNv
bnRleHQgb2YgYSBwbHVnaW4sIHN1Y2gKICAgICAvLyBhcyBOUEFQSSBwbHVnaW5zLiBUaGUgcGx1
Z2lucyB1c2luZyB0aGVzZSBvYmplY3RzIHByZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVk
IHNvIHRoZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDIxNzkzYzIyZjA1M2ZiN2IwNjU2
ODE3Y2ZjN2RhYjMxODRhZThiZDQuLjM4NjFmZTg1M2IwZWI5MjZhZDVjNzA5YzMzOTNkOTZlNjQ1
NWViZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTAyLDYgKzEwMiw3IEBACiAjaW5j
bHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCiAjaW5j
bHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKICNp
bmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW5jbHVkZSAiTmFtZU5v
ZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCIKQEAgLTQ2MSw2
ICs0NjIsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVy
bCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwogICAgICwgbV9zdGFydFRpbWUoc3Rk
OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpCiAgICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0
VGhyZXNob2xkKGZhbHNlKQogICAgICwgbV9zY3JpcHRSdW5uZXIoc3RkOjptYWtlX3VuaXF1ZTxT
Y3JpcHRSdW5uZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKHN0ZDo6bWFrZV91bmlx
dWU8TW9kdWxlTG9hZGVyPigqdGhpcykpCiAgICAgLCBtX3htbFZlcnNpb24oQVNDSUlMaXRlcmFs
KCIxLjAiKSkKICAgICAsIG1feG1sU3RhbmRhbG9uZShTdGFuZGFsb25lVW5zcGVjaWZpZWQpCiAg
ICAgLCBtX2hhc1hNTERlY2xhcmF0aW9uKGZhbHNlKQpAQCAtNjAyLDYgKzYwNCw3IEBAIERvY3Vt
ZW50Ojp+RG9jdW1lbnQoKQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRVbmxlc3NTdXNwZW5k
ZWRGb3JQYWdlQ2FjaGUoKTsKIAogICAgIG1fc2NyaXB0UnVubmVyID0gbnVsbHB0cjsKKyAgICBt
X21vZHVsZUxvYWRlciA9IG51bGxwdHI7CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc0Y2VhYTk2YmM5MmY0NzgxN2NlYmI1ZjNjZjkz
OTBhMTlhNzdkNjkuLmY1N2M0MTMxZmRjZTU1Y2NjZDRlNjA4MGRiYjUxOTUzYzRiMjdjM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjgsNiArMTI4LDcgQEAgY2xhc3MgTWVkaWFQbGF5YmFj
a1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1
ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworY2xhc3MgTW9kdWxlTG9hZGVyOwog
Y2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0NvbGxl
Y3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpAQCAtOTI3LDYgKzkyOCw3IEBAIGNsYXNzIERvY3Vt
ZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3Jp
cHRFeGVjdXRpb25DCiAgICAgRG9jdW1lbnQmIHRvcERvY3VtZW50KCkgY29uc3Q7CiAgICAgCiAg
ICAgU2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5n
ZXQoKTsgfQorICAgIE1vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gbV9tb2R1
bGVMb2FkZXIuZ2V0KCk7IH0KIAogICAgIEhUTUxTY3JpcHRFbGVtZW50KiBjdXJyZW50U2NyaXB0
KCkgY29uc3QgeyByZXR1cm4gIW1fY3VycmVudFNjcmlwdFN0YWNrLmlzRW1wdHkoKSA/IG1fY3Vy
cmVudFNjcmlwdFN0YWNrLmxhc3QoKS5nZXQoKSA6IDA7IH0KICAgICB2b2lkIHB1c2hDdXJyZW50
U2NyaXB0KFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+KTsKQEAgLTE1MTAsNiArMTUxMiw3
IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2Nv
cGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgYm9vbCBtX292ZXJNaW5pbXVtTGF5b3V0
VGhyZXNob2xkOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRSdW5uZXI+IG1fc2Ny
aXB0UnVubmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9h
ZGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4+IG1fY3VycmVudFNj
cmlwdFN0YWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlR3JhcGgu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDE3
YTJjZDRlOGIxZTQ2YjA1MDIxM2IzMDU5NjEzYzc3MjZhZTg3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisK
KyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1
bm5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitNb2R1bGVHcmFwaDo6TW9kdWxlR3JhcGgoRWxlbWVudCYgZWxlbWVudCkKKyAgICA6
IG1fZWxlbWVudChlbGVtZW50KQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSgmZWxlbWVudCkKK3sK
K30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBt
b2R1bGVLZXkpCit7CisgICAgbV9tb2R1bGVLZXkgPSBtb2R1bGVLZXk7CisgICAgbV9lbGVtZW50
LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVhZHkodG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6
Om5vdGlmeUVycm9yZWQoKQoreworICAgIG1fZXJyb3JlZCA9IHRydWU7CisgICAgbV9lbGVtZW50
LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVhZHkodG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6
OmV2YWx1YXRlKCkKK3sKKyAgICBpZiAobV9lcnJvcmVkKQorICAgICAgICB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICBlbHNl
IGlmIChGcmFtZSogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAg
ICBmcmFtZS0+c2NyaXB0KCkubGlua0FuZEV2YWx1YXRlTW9kdWxlKCp0aGlzKTsKK30KKwordm9p
ZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXZhbHVhdGVkKCkKK3sKKyAgICB0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaExvYWRFdmVudCgpOworfQorCit2b2lkIE1v
ZHVsZUdyYXBoOjpsb2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sKKyAgICBBU1NFUlQo
bV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCku
ZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgbW9kdWxlTmFtZSk7Cit9CisKK3Zv
aWQgTW9kdWxlR3JhcGg6OmxvYWQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkK
K3sKKyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVt
ZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgc291cmNl
Q29kZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFw
aC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE2ZTg5
N2NiYzAyODFlNWVmMTU4MTgwZGNhZTliZjYyYjY2YTBlOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIE1vZHVsZUdyYXBoX2gKKyNkZWZpbmUgTW9kdWxlR3JhcGhfaAorCisjaW5j
bHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21p
c2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBTY3Jp
cHRTb3VyY2VDb2RlOworCisvLyBLZWVwIGxpZmV0aW1lIG9mIGEgTW9kdWxlR3JhcGggdGhlIHNh
bWUgdG8gYSBTY3JpcHRFbGVtZW50LgorY2xhc3MgTW9kdWxlR3JhcGggeworICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE1vZHVsZUdyYXBoKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgTW9kdWxlR3JhcGgoRWxlbWVudCYpOworCisgICAgRWxlbWVudCYg
ZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsgfQorICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBt
b2R1bGVLZXkoKSB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQorCisgICAgdm9pZCBsb2Fk
KGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisgICAgdm9pZCBsb2FkKGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmKTsKKyAgICB2b2lkIGV2YWx1YXRlKCk7CisKKyAgICBXZWFrUHRyPEVsZW1lbnQ+
IHdlYWtFbGVtZW50UHRyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRlZChVbmlxdWVk
U3RyaW5nSW1wbCogbW9kdWxlS2V5KTsKKyAgICB2b2lkIG5vdGlmeUVycm9yZWQoKTsKKworICAg
IHZvaWQgbm90aWZ5RXZhbHVhdGVkKCk7CisKKyAgICBib29sIGVycm9yT2NjdXJyZWQoKSBjb25z
dCB7IHJldHVybiBtX2Vycm9yZWQ7IH0KKyAgICBib29sIGlzTG9hZGVkKCkgY29uc3QgeyByZXR1
cm4gbV9tb2R1bGVLZXk7IH0KKworcHJpdmF0ZToKKworICAgIEVsZW1lbnQmIG1fZWxlbWVudDsK
KyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1fbW9kdWxlS2V5OworICAgIFdlYWtQdHJG
YWN0b3J5PEVsZW1lbnQ+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAgYm9vbCBtX2Vycm9yZWQgeyBm
YWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9kdWxl
TG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nTW9kdWxlR3Jh
cGguY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdNb2R1bGVHcmFwaC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2Y4ZWYyM2ZjOTk1M2RhMTlmMzRmMzIxMDRlNzAwNzBkNzIxNGQyYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nTW9kdWxlR3JhcGguY3BwCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGVuZGluZ01vZHVsZUdyYXBoLmgiCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUGVuZGluZ01vZHVsZUdyYXBoOjpQZW5kaW5nTW9kdWxlR3JhcGgoKQor
eworfQorCitQZW5kaW5nTW9kdWxlR3JhcGg6OlBlbmRpbmdNb2R1bGVHcmFwaChFbGVtZW50KiBl
bGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCit7Cit9CisKK1BlbmRpbmdNb2R1bGVH
cmFwaDo6flBlbmRpbmdNb2R1bGVHcmFwaCgpCit7Cit9CisKK1JlZlB0cjxFbGVtZW50PiBQZW5k
aW5nTW9kdWxlR3JhcGg6OnJlbGVhc2VFbGVtZW50QW5kQ2xlYXIoKQoreworICAgIFJlZlB0cjxF
bGVtZW50PiBlbGVtZW50OworICAgIHN3YXAoZWxlbWVudCwgbV9lbGVtZW50KTsKKyAgICByZXR1
cm4gZWxlbWVudDsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVu
ZGluZ01vZHVsZUdyYXBoLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ01vZHVsZUdyYXBo
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTE0MjFkOGI5M2U2ODY1MGU3M2RmYWZhN2EwODNhNmY4MGExMWRjNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nTW9kdWxlR3JhcGgu
aApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQZW5kaW5nTW9kdWxlR3Jh
cGhfaAorI2RlZmluZSBQZW5kaW5nTW9kdWxlR3JhcGhfaAorCisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CisKK2NsYXNzIFBl
bmRpbmdNb2R1bGVHcmFwaCB7CitwdWJsaWM6CisgICAgUGVuZGluZ01vZHVsZUdyYXBoKCk7Cisg
ICAgUGVuZGluZ01vZHVsZUdyYXBoKEVsZW1lbnQqKTsKKyAgICAvLyBOb3QgdG8gaW5jbHVkZSBF
bGVtZW50LmgsIHdlIGRlY2xhcmUgdGhlIGRlc3RydWN0b3IsIGJ1dCB0aGUgaW1wbGVtZW50YXRp
b24gYmVjb21lcyBlbXB0eS4KKyAgICB+UGVuZGluZ01vZHVsZUdyYXBoKCk7CisKKyAgICBSZWZQ
dHI8RWxlbWVudD4gcmVsZWFzZUVsZW1lbnRBbmRDbGVhcigpOworcHJpdmF0ZToKKyAgICAvLyBP
bmx5IGhvbGQgYW4gZWxlbWVudCBzaW5jZSBhbiBlbGVtZW50IGtlZXBzIGEgbW9kdWxlIGdyYXBo
LgorICAgIFJlZlB0cjxFbGVtZW50PiBtX2VsZW1lbnQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY2YmJlY2UxZDM1ZTFhNDc2M2JmOWVi
ZWJmMGYwYzEyY2RiZWYxZDcuLjJlYzZiZGU5ZGIyZjdkNzI2NTAwMzVhOWIxMmRiYzY4NWI2NzM2
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWdub3JlRGVzdHJ1Y3Rp
dmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5Lmgi
CisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCkBAIC0xNjEsNiArMTYy
LDEwIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3VwcG9ydGVkKExlZ2FjeVR5
cGVTdXBwb3J0IHN1cHBvcnRMZWdhY3lUeXBlcykKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0gZWxzZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlN
RVR5cGUodHlwZS5zdHJpcFdoaXRlU3BhY2UoKS5sb3dlcigpKSB8fCAoc3VwcG9ydExlZ2FjeVR5
cGVzID09IEFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSAmJiBpc0xlZ2FjeVN1cHBvcnRl
ZEphdmFTY3JpcHRMYW5ndWFnZSh0eXBlKSkpCiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVO
QUJMRShFUzZfTU9EVUxFUykKKyAgICBlbHNlIGlmICh0eXBlID09ICJtb2R1bGUiKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjE3LDYg
KzIyMiw5IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9z
aXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgZWxzZQogICAgICAgICBtX2No
YXJhY3RlckVuY29kaW5nID0gZG9jdW1lbnQuY2hhcnNldCgpOwogCisgICAgaWYgKGlzTW9kdWxl
VHlwZSgpKQorICAgICAgICByZXR1cm4gbG9hZE1vZHVsZShzY3JpcHRTdGFydFBvc2l0aW9uKTsK
KwogICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkKICAgICAgICAgaWYgKCFyZXF1ZXN0U2Ny
aXB0KHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMzE3LDYgKzMyNSw5IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KCkK
ICAgICAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CiAgICAgICAg
IG1fY2FjaGVkU2NyaXB0ID0gMDsKICAgICB9CisgICAgLy8gRklYTUU6IFRoZSBtb2R1bGUgbG9h
ZGVyIHNob3VsZCBoYXZlIHRoZSBtZWNoYW5pc20gdG8gc3RvcCBsb2FkaW5nLgorICAgIC8vIFRo
ZSBjdXJyZW50IGxvYWRlciBzcGVjIGRvZXMgbm90IGhhdmUgdGhpcy4gT25jZSBpdCBpcyBzcGVj
aWZpZWQKKyAgICAvLyB3ZSB3aWxsIGludHJvZHVjZSB0aGlzIGZlYXR1cmUuCiB9CiAKIHZvaWQg
U2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKQEAgLTMz
Miw2ICszNDMsNTcgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCog
Y2FjaGVkU2NyaXB0KQogICAgIGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogfQog
Citib29sIFNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3Jp
cHRTdGFydFBvc2l0aW9uKQoreworICAgIC8vIFRoZSBicm93c2VyIG1vZHVsZSBsb2FkZXIgbG9h
ZHMgdGhlIG1vZHVsZSBzb3VyY2VzLgorICAgIC8vIFNpbmNlIHRoZSBtb2R1bGUgaW52b2x2ZXMg
bG9hZGluZyBvZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMgYW5kIHRoZSBkZXBlbmRlbnQgbW9kdWxl
cyBkb2VzIG5vdCBoYXZlIGNvcnJlc3BvbmRpbmcgc2NyaXB0IGVsZW1lbnRzLAorICAgIC8vIHRo
ZSBmdW5jdGlvbmFsaXR5IG9mIGxvYWRpbmcgbW9kdWxlcyBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUg
c2NyaXB0IGVsZW1lbnQuCisgICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKSB7CisgICAgICAg
IFN0cmluZyBzb3VyY2VVcmwgPSBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpOworICAgICAgICBSZWY8
RG9jdW1lbnQ+IG9yaWdpbmFsRG9jdW1lbnQobV9lbGVtZW50LmRvY3VtZW50KCkpOworICAgICAg
ICBpZiAoIW1fZWxlbWVudC5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVcmwpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIFNjcmlwdCBlbGVtZW50IG1heSBi
ZSBkZXRhY2hlZCBhbmQgYXR0YWNoZWQgdG8gYSBkaWZmZXJlbnQgZG9jdW1lbnQgd2hpbGUgZXhl
Y3V0aW5nIHRoZSBldmVudCBsaXN0ZW5lci4KKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuaW5Eb2N1
bWVudCgpIHx8ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChzdHJpcExlYWRpbmdB
bmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJsKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAg
IGRpc3BhdGNoRXJyb3JFdmVudCgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisKKyAgICAgICAgLy8gRklYTUU6IFNob3VsZCBzdXBwb3J0IGNyb3NzLW9yaWdpbiBtb2Rl
IGluIHRoZSBtb2R1bGUgdGFnLgorICAgICAgICAvLyBIb3dldmVyIHdlIGRvbid0IGhhdmUgdGhl
IHBvbGljeSB0byBhcHBseSB0aGlzIG1vZGUgdG8gdGhlIHJlc291cmNlcyBvZiB0aGUgZGVwZW5k
ZW50IG1vZHVsZXMuCisgICAgICAgIC8vIFByb3ZpZGVkIG11bHRpcGxlIG1vZHVsZSB0YWdzLAor
ICAgICAgICAvLworICAgICAgICAvLyAgIEE6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4u
LiIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CisgICAgICAgIC8vICAgQjogPHNj
cmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi4uIj48L3NjcmlwdD4KKyAgICAgICAgLy8KKyAgICAg
ICAgLy8gJ0EnIGhhcyB0aGUgImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUuIEJ1dCAnQicgZG9lcyBu
b3QgaGF2ZSBpdC4KKyAgICAgICAgLy8gSG93ZXZlciwgRVM2IG1vZHVsZXMgYWxsb3cgJ0EnIGFu
ZCAnQicgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUgYW5kIGl0IHdpbGwgYmUgY2FjaGVkIGluIHRo
ZQorICAgICAgICAvLyBtb2R1bGUgbG9hZGVyLiBJbiB0aGF0IGNhc2UsIGl0IGlzIGNvbnRyb3Zl
cnNpYWwgdGhhdCB3aGljaCAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSB3aWxsIGJlCisgICAgICAg
IC8vIGFwcGxpZWQgdG8gdGhlIG1vZHVsZSBsb2FkZWQgYnkgdGhlIGJvdGguIE9uY2UgdGhlIHNw
ZWMgb2YgdGhlIG1vZHVsZSBsb2FkZXIgaXMgZml4ZWQsIHdlCisgICAgICAgIC8vIHNob3VsZCBm
b2xsb3cgaXQuCisKKyAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAg
bV9tb2R1bGVHcmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7
CisgICAgICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZU1vZHVs
ZUdyYXBoRm9yRXhlY3V0aW9uKHRoaXMsICptX21vZHVsZUdyYXBoKTsKKyAgICAgICAgbV9tb2R1
bGVHcmFwaC0+bG9hZChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgaWYgKCFtX2VsZW1lbnQuZG9jdW1lbnQoKS5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+YWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCks
IG1fc3RhcnRMaW5lTnVtYmVyLCBtX2VsZW1lbnQuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSkp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gUmVzZXQgbGluZSBudW1iZXJpbmcgZm9y
IG5lc3RlZCB3cml0ZXMuCisgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gbV9lbGVtZW50LmRv
Y3VtZW50KCkuaXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlvbigpIDogc2NyaXB0U3Rh
cnRQb3NpdGlvbjsKKyAgICBtX21vZHVsZUdyYXBoID0gc3RkOjptYWtlX3VuaXF1ZTxNb2R1bGVH
cmFwaD4obV9lbGVtZW50KTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIo
KS0+cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbih0aGlzLCAqbV9tb2R1bGVHcmFwaCk7Cisg
ICAgbV9tb2R1bGVHcmFwaC0+bG9hZChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwg
bV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCksIHBvc2l0aW9uKSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlKQogewogICAgIEFTU0VSVCghbV93aWxsQmVQYXJzZXJFeGVjdXRlZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCBiN2U3M2QwZGVlODNkMzI0ZTg3MmY3YmM0YzFi
OTMzZGM5NmMxMTJhLi42ZTVjMjE0Mjk0ZDgxOTY4Yzg2ZTBkMDdhNjk3MDc0Mzk0YTFjOWIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNs
YXNzIEVsZW1lbnQ7CitjbGFzcyBNb2R1bGVHcmFwaDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiBj
bGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogCkBAIC01OSw2ICs2MCw3IEBAIGNsYXNzIFNjcmlwdEVs
ZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIHJlYWR5VG9C
ZVBhcnNlckV4ZWN1dGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVRvQmVQYXJzZXJFeGVjdXRl
ZDsgfQogICAgIGJvb2wgd2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcoKSBj
b25zdCB7IHJldHVybiBtX3dpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nOyB9
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQoKSB7
IHJldHVybiBtX2NhY2hlZFNjcmlwdDsgfQorICAgIE1vZHVsZUdyYXBoKiBtb2R1bGVHcmFwaCgp
IHsgcmV0dXJuIG1fbW9kdWxlR3JhcGguZ2V0KCk7IH0KIAogcHJvdGVjdGVkOgogICAgIFNjcmlw
dEVsZW1lbnQoRWxlbWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyLCBib29sIGlzRXZhbHVhdGVk
KTsKQEAgLTgyLDYgKzg0LDggQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVk
UmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgcmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNv
dXJjZVVybCk7CiAgICAgdm9pZCBzdG9wTG9hZFJlcXVlc3QoKTsKIAorICAgIGJvb2wgbG9hZE1v
ZHVsZShjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworCiAgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIFN0cmluZyBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKQEAgLTkz
LDYgKzk3LDcgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VD
bGllbnQgewogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0ID0gMDsKIAogICAgIEVsZW1lbnQmIG1fZWxlbWVu
dDsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0
OwpAQCAtMTA5LDYgKzExNCw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hl
ZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sIDog
MTsKICAgICBTdHJpbmcgbV9jaGFyYWN0ZXJFbmNvZGluZzsKICAgICBTdHJpbmcgbV9mYWxsYmFj
a0NoYXJhY3RlckVuY29kaW5nOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVHcmFwaD4gbV9t
b2R1bGVHcmFwaDsKIH07CiAKIFNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVudElmUG9zc2li
bGUoRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcAppbmRleCA5NjM2OTgw
NGFkOGYwNzRiZDczNmFmYmZiNTAyYTQ1ZmM5MTU3NjAxLi40NzUxOWJmMDI2MjU1NGIyM2U0Mzk3
NzhhMTI2OGU2ZTQ3ZGJhMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApAQCAt
MjksNiArMjksOCBAQAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKICNpbmNsdWRlICJNaWNyb1Rhc2suaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgor
I2luY2x1ZGUgIlBlbmRpbmdNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIlBlbmRpbmdTY3JpcHQu
aCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKQEAgLTQ4LDYgKzUwLDEwIEBAIFNjcmlw
dFJ1bm5lcjo6flNjcmlwdFJ1bm5lcigpCiAgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9h
ZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BlbmRp
bmdBc3luY1NjcmlwdHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50
TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9tb2R1
bGVHcmFwaHNUb0V4ZWN1dGVTb29uLnNpemUoKTsgKytpKQorICAgICAgICBtX2RvY3VtZW50LmRl
Y3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudC5zaXplKCk7ICsraSkKKyAgICAgICAgbV9k
b2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiB9CiAKIHZvaWQgU2NyaXB0
UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVt
ZW50LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCwgRXhl
Y3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQpAQCAtNzEsNiArNzcsMTggQEAgdm9pZCBTY3JpcHRS
dW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1l
bnQsIENhY2hlZFIKICAgICB9CiB9CiAKK3ZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdy
YXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIE1vZHVsZUdyYXBo
JikKK3sKKyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7CisKKyAgICBFbGVtZW50JiBlbGVtZW50
ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOworICAgIEFTU0VSVChlbGVtZW50LmluRG9jdW1l
bnQoKSk7CisKKyAgICBtX2RvY3VtZW50LmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsK
KworICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnQuYWRkKCZlbGVtZW50KTsKK30KKwog
dm9pZCBTY3JpcHRSdW5uZXI6OnN1c3BlbmQoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwpAQCAt
OTcsNiArMTE1LDI2IEBAIHZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlTY3JpcHRSZWFkeShTY3Jp
cHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBFeGVjdXRpb25UeXBlCiAgICAgbV90aW1lci5zdGFy
dE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlNb2R1bGVHcmFwaFJl
YWR5KFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQpCit7CisgICAgQVNTRVJUX1VOVVNFRChz
Y3JpcHRFbGVtZW50LCBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50LmNvbnRhaW5zKCZzY3Jp
cHRFbGVtZW50LT5lbGVtZW50KCkpKTsKKworICAgIC8vIExpc3RIYXNoU2V0IGNvcnJlY3RseSBw
cmVzZXJ2ZXMgdGhlIGluc2VydGlvbiBvcmRlci4KKyAgICAvLyBBbmQgaXQgYWxsb3cgdXMgdG8g
cmVtb3ZlIGVsZW1lbnQgZHVyaW5nIGl0ZXJhdGlvbi4KKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9w
ZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudC5iZWdpbigpOworICAgIHdoaWxlIChpdGVyYXRvciAh
PSBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50LmVuZCgpKSB7CisgICAgICAgIE1vZHVsZUdy
YXBoKiBtb2R1bGVHcmFwaCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoaXRlcmF0b3ItPmdl
dCgpKS0+bW9kdWxlR3JhcGgoKTsKKyAgICAgICAgaWYgKCFtb2R1bGVHcmFwaC0+ZXJyb3JPY2N1
cnJlZCgpICYmICFtb2R1bGVHcmFwaC0+aXNMb2FkZWQoKSkKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBhdXRvIHByZXZpb3VzID0gaXRlcmF0b3I7CisgICAgICAgICsraXRlcmF0b3I7Cisg
ICAgICAgIG1fbW9kdWxlR3JhcGhzVG9FeGVjdXRlU29vbi5hcHBlbmQoUGVuZGluZ01vZHVsZUdy
YXBoKHByZXZpb3VzLT5nZXQoKSkpOworICAgICAgICBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVt
ZW50LnJlbW92ZShwcmV2aW91cyk7CisgICAgfQorICAgIGlmICghbV9tb2R1bGVHcmFwaHNUb0V4
ZWN1dGVTb29uLmlzRW1wdHkoKSkKKyAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Cit9
CisKIHZvaWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKCkKIHsKICAgICBSZWY8RG9jdW1lbnQ+
IHByb3RlY3QobV9kb2N1bWVudCk7CkBAIC0xMjEsNiArMTU5LDIwIEBAIHZvaWQgU2NyaXB0UnVu
bmVyOjp0aW1lckZpcmVkKCkKICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVt
ZW50LmdldCgpKS0+ZXhlY3V0ZShjYWNoZWRTY3JpcHQpOwogICAgICAgICBtX2RvY3VtZW50LmRl
Y3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICB9CisKKyAgICBWZWN0b3I8UGVuZGlu
Z01vZHVsZUdyYXBoPiBtb2R1bGVHcmFwaHM7CisgICAgbW9kdWxlR3JhcGhzLnN3YXAobV9tb2R1
bGVHcmFwaHNUb0V4ZWN1dGVTb29uKTsKKworICAgIGZvciAoUGVuZGluZ01vZHVsZUdyYXBoJiBw
ZW5kaW5nTW9kdWxlR3JhcGggOiBtb2R1bGVHcmFwaHMpIHsKKyAgICAgICAgUmVmUHRyPEVsZW1l
bnQ+IGVsZW1lbnQgPSBwZW5kaW5nTW9kdWxlR3JhcGgucmVsZWFzZUVsZW1lbnRBbmRDbGVhcigp
OworICAgICAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgICAgIC8vIFBhcGVyIG92ZXIgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA1MAorICAgICAgICBpZiAoIWVs
ZW1lbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+ZXZhbHVhdGUoKTsKKyAgICAg
ICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgfQorCiAg
ICAgTWljcm9UYXNrUXVldWU6OnNpbmdsZXRvbigpLnJ1bk1pY3JvVGFza3MoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IDI3Y2RiZjhiM2FmNTY5NDYyZTViOWFlYjE2Y2Q3
NjUwNTA4OTFlMGQuLmJkMjQxNDM0MmYwOGVkY2M0N2YwMGQ0YjU2NzgwYjU1ZGM1ODA1OGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KQEAgLTM3LDYgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBN
b2R1bGVHcmFwaDsKK2NsYXNzIFBlbmRpbmdNb2R1bGVHcmFwaDsKIGNsYXNzIFBlbmRpbmdTY3Jp
cHQ7CiBjbGFzcyBTY3JpcHRFbGVtZW50OwogCkBAIC00OCwxMSArNTIsMTQgQEAgY2xhc3MgU2Ny
aXB0UnVubmVyIHsKIAogICAgIGVudW0gRXhlY3V0aW9uVHlwZSB7IEFTWU5DX0VYRUNVVElPTiwg
SU5fT1JERVJfRVhFQ1VUSU9OIH07CiAgICAgdm9pZCBxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihT
Y3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiwgRXhlY3V0
aW9uVHlwZSk7Ci0gICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFt
X3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5P
cmRlci5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5KCk7IH0KKyAg
ICB2b2lkIHF1ZXVlTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCosIE1vZHVs
ZUdyYXBoJik7CisgICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFt
X3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5P
cmRlci5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5KCkgfHwgIW1f
bW9kdWxlR3JhcGhzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ01vZHVsZVNj
cmlwdEVsZW1lbnQuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCBy
ZXN1bWUoKTsKICAgICB2b2lkIG5vdGlmeVNjcmlwdFJlYWR5KFNjcmlwdEVsZW1lbnQqLCBFeGVj
dXRpb25UeXBlKTsKIAorICAgIHZvaWQgbm90aWZ5TW9kdWxlR3JhcGhSZWFkeShTY3JpcHRFbGVt
ZW50Kik7CisKIHByaXZhdGU6CiAgICAgdm9pZCB0aW1lckZpcmVkKCk7CiAKQEAgLTYwLDYgKzY3
LDggQEAgY2xhc3MgU2NyaXB0UnVubmVyIHsKICAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9z
Y3JpcHRzVG9FeGVjdXRlSW5PcmRlcjsKICAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3Jp
cHRzVG9FeGVjdXRlU29vbjsgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay8jc2V0LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtYXMtc29vbi1h
cy1wb3NzaWJsZQogICAgIEhhc2hNYXA8U2NyaXB0RWxlbWVudCosIFBlbmRpbmdTY3JpcHQ+IG1f
cGVuZGluZ0FzeW5jU2NyaXB0czsKKyAgICBWZWN0b3I8UGVuZGluZ01vZHVsZUdyYXBoPiBtX21v
ZHVsZUdyYXBoc1RvRXhlY3V0ZVNvb247CisgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEVsZW1lbnQ+
PiBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50OwogICAgIFRpbWVyIG1fdGltZXI7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGUxM2E1Y2Rk
Y2NhMmNiM2I3NTZhOGQzYTU3ZTIzZjgwYTliNDNlNDguLmQxNWViNzFiZTNmNmJjZmIxMDc4MmY5
NzQ4NzViNDAwYmMwZDcxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwCkBAIC0xNjEsNiArMTYxLDE1IEBAIGJvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6Omhhc1Nv
dXJjZUF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoc3JjQXR0
cik7CiB9CiAKK2Jvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSgpIGNvbnN0Cit7
CisjaWYgRU5BQkxFKEVTNl9NT0RVTEVTKQorICAgIHJldHVybiBmYXN0R2V0QXR0cmlidXRlKHR5
cGVBdHRyKS5zdHJpbmcoKSA9PSAibW9kdWxlIjsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50KCkK
IHsKICAgICBBU1NFUlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCAzMTJjNjYyNmU4YjgzMTRlODVlMmRmNjg3ZGJmMDlm
MmIyZmUzN2IyLi4xZGZkOGM4YjczZTg3MmFiY2Q1ZWI0YjM0MmU3OTJkMzM1MDNlNzlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC02Miw2ICs2Miw3IEBAIGNs
YXNzIEhUTUxTY3JpcHRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMg
U2NyaXB0RWxlbWVudCB7CiAgICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFsdWUoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVUeXBlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDhhZGZjZmE0MTBhYmU0
N2UzMzI0YWU1YjhkOTI0M2Y1NjY2NDVkOTUuLmJhNWYwNmY0NGI2YjExN2ZjYmI2MjMzNTM4ZTJl
MTRjZDdmOGU2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKQEAg
LTE1MSw2ICsxNTEsMTEgQEAgYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZh
bHVlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgU1ZHU2NyaXB0RWxlbWVu
dDo6aXNNb2R1bGVUeXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wg
U1ZHU2NyaXB0RWxlbWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKIHsKICAgICByZXR1
cm4gaGFzQXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5oCmluZGV4IDUzNWU0MmU2ZjA2NDZkODAxMDQxOTA5M2M2MjI5MjRiMzgz
ZDcxMDEuLjhhZmRlMzExMjVlNWRkNDk4ZGI4MmE0ZTA5ODNhYjA3NGUwZGNjNjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBTVkdT
Y3JpcHRFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQKICAgICB2aXJ0dWFsIGJvb2wg
YXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBk
ZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGhh
c1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01v
ZHVsZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExv
YWRFdmVudCgpIG92ZXJyaWRlIHsgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlzcGF0
Y2hMb2FkRXZlbnQodGhpcyk7IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBmNGU4YzkwMTRjOTE2ZjVhMzkzNDk3Njdl
MDE0ZWI1MGRhMDFhMjEuLmZiZTQ5MzU3Yzk1NDc0Y2FlMGQ3MWI5ZDRlNDUxZTY3ODExZjA2MzAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxNS0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMg
aW50byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDg4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtaW5saW5l
LXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtaW5s
aW5lLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtZXZl
bnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtZXZl
bnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxl
LWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVs
ZS1sb2FkLWV2ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZv
dW5kLWVycm9yLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21v
ZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLTIuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanM6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1v
cmRlci1taXhlZC1tYXRjaGEuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qczogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qczogQWRkZWQuCisgICAgICAg
IChleHBvcnQuZGVmYXVsdC5Db2NvYS5wcm90b3R5cGUudGFzdGUpOgorICAgICAgICAoZXhwb3J0
LmRlZmF1bHQuQ29jb2EpOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxv
YWQtZXZlbnQtd2l0aC1zcmMuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNv
Y29hLmpzOiBBZGRlZC4KKyAgICAgICAgKENvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAg
IChDb2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBs
ZS5qczogQWRkZWQuCisKIDIwMTUtMDktMTggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIERvbid0IGNyZWF0ZSByZW5kZXJlcnMgZm9yIGNoaWxkcmVuIG9mIHNo
YWRvdyBob3N0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1l
eGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDI4ZjJiNTc5
NmY2YmU4OTJkN2MwNTcwMDQyOTVkMjQ1MjNmZTc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0YWdz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRl
ZCB5ZXQuCitQQVNTIGNvdW50KysgaXMgMAorUEFTUyBjb3VudCsrIGlzIDEKK1BBU1MgY291bnQr
KyBpcyAyCitQQVNTIGNvdW50KysgaXMgMworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1leGVjdXRpb24tb3JkZXItaW5saW5lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc1N2VlY2IxZjkwYjdm
N2Q2YzRhNTI4ZGI4NTEwZTBmNjc1ZWZhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sCkBAIC0wLDAgKzEsMjcg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1v
ZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0YWdzLicpOword2luZG93LmNvdW50ID0gMDsK
Ky8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOwor
c2hvdWxkQmUoImNvdW50KysiLCAiMCIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVs
ZSI+CitzaG91bGRCZSgiY291bnQrKyIsICIxIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
bW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjIiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiMyIpOworZmluaXNoSlNUZXN0KCk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMzdmNTI0ZjUzMTkwNWQ4YTUzZjQ0YTMzYWI2ZmZiNDAwMTIxMDMwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBv
cmRlciBiZXR3ZWVuIG1peGVkIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitXZSBrZWVwIHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLgorTW9kdWxlIGlz
IG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIGNvdW50KysgaXMgMAorUEFTUyBjb3VudCsrIGlzIDEK
K1BBU1MgY291bnQrKyBpcyAyCitQQVNTIGNvdW50KysgaXMgMworUEFTUyBjb3VudCsrIGlzIDQK
K1BBU1MgY291bnQrKyBpcyA1CitQQVNTIGNvdW50KysgaXMgNgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxOTFk
MzAzZWRkNzU3NzM4MTI4ZGQ5ZDE1YmI0MGM3ZTc2YzJjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCkBAIC0w
LDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtaXhlZCB0YWdzLicpOworZGVi
dWcoJ1dlIGtlZXAgdGhlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIG1vZHVsZXMuJyk7Cit3aW5k
b3cuY291bnQgPSAwOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNs
eS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2Ny
aXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiNCIpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC0yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3No
b3VsZEJlKCJjb3VudCsrIiwgIjYiKTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGlu
ZS1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUt
c2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzkzOWFhZjBhNTAxNWY0NzkzODZjZDMx
OTVhYTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IGlu
bGluZWQgbW9kdWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlz
IG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBt
b2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFT
UyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRh
c3RlKCkgaXMgImF3ZXNvbWUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxp
bmUtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43OGJjZjA2MGQxYmQ2OTQ1YjA4OTE2ZWJhMTUyOWE1NThmZTZiMmQx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2lt
cGxlLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oJ1Rlc3QgaW5saW5lZCBtb2R1bGUuJyk7CisKKy8vIE1vZHVsZSB3aWxs
IGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgQ29jb2EgZnJv
bSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMiOwordmFyIGNvY29hID0g
bmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRo
ZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBj
b2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJhd2Vzb21lIik7
CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTY4M2YwZTA3Njc5ZmU5OWY1NmQ4M2EyNWE5ZDNlZDQwMDU3ZGQzYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gdGFn
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0
ZWQgeWV0LgorRXhlY3V0aW5nIGFuIGlubGluZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWNiYWZlZWYzYzNlNTAzOTQ1M2NmYTRhNzExYzgzYjkyZDJjYTRjMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVy
IGJldHdlZW4gdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBp
cyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGEgbW9kdWxlIHdpdGggc3JjIGF0dHJpYnV0
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMu
aHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMxOWMwYjA3YjcwZTY1NDBlYWQ1MGY4YzQwZTQ0OTMzMmM2YzQ0YTIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0
aC1zcmMuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gdGFn
cy4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rl
c3QoKSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQt
ZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzI4ODFhOWJiMjgxMjhkN2Y4YTBkNzdmYTFlMTZkOTA3
YzliYTkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LWV2ZW50Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRh
Z3MuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNU
ZXN0KCkiPgorZGVidWcoJ0V4ZWN1dGluZyBhbiBpbmxpbmUgbW9kdWxlLicpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNj
NmIwOGFjMDIyYzczMjAzOTNkZmVlMDMxZTVjMjQ5MzA2M2UyZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogU3ludGF4RXJy
b3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgIm5vdC1mb3VuZC5qcyIuIEV4cGVjdGVkICdm
cm9tJyBiZWZvcmUgaW1wb3J0ZWQgbW9kdWxlIG5hbWUuCitUZXN0IG1vZHVsZSBleGVjdXRpb24g
b3JkZXIgYmV0d2VlbiB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNy
Yy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGYxZTgwZTY2NDcwOGNkN2Q4
OGQ5ZDU5NmUxYmQwZmQwY2UxMzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJl
dHdlZW4gdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBu
b3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZv
dW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lNTYwY2RmMTIyNmJlMjQzOWRiOTc2NWVjMjMwNTRmNDJjMDYyMmJmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJy
b3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVj
dXRpb24gb3JkZXIgYmV0d2VlbiB0YWdzLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQg
YXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sKKyAgICBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZv
dW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMiIG9uZXJyb3I9Im9uRXJyb3Io
KSI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNy
Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRmMWU4MGU2NjQ3MDhjZDdkODhkOWQ1OTZlMWJk
MGZkMGNlMTM0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0YWdzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1z
cmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LXdpdGgtc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ0OTlkNDI5MzUwZTVmZDI3YWVlODBjZGY2YTYy
MjJkYTllMzdlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIGV4
ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRl
ZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAg
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ibm90LWZvdW5kLmpzIiBvbmVycm9yPSJv
bkVycm9yKCkiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmE0NDk0MGJkNTczYWE4ZDA1MDUzYWU4NzkzNzRjNjQ4ZTgxOTZkNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwK
QEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oJ1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuJyk7CisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0
aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmlu
aXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9uZXJyb3I9
Im9uRXJyb3IoKSI+CitpbXBvcnQgZnJvbSAibm90LWZvdW5kLmpzIjsKK3Rlc3RGYWlsZWQoJ2V4
ZWN1dGVkJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkOGIw
MDYyNDkwZWM3MjI5NWNmZjUwNjFhMDgzOWU0MDAyMGNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTQgQEAKK1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUg
ZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5
cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAi
b2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkgaXMgIm5pY2UiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjczYjBjNTRhMjVhNGY3NmMx
NGEzYjVkYzMxNzNmZTg5M2NiM2NkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIHdpdGggInNyYyIg
YXR0cmlidXRlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNs
eS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Rl
YnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiIHNyYz0iLi9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMzNiOWQzNTJhZWM1N2IwNjFkZGJlMDBiN2NmOTRlYTU3NGFlYzQ5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMKQEAgLTAsMCArMSBAQAorc2hvdWxkQmUoImNvdW50
KysiLCAiNSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY2FwcHVjY2lu
by5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMzE0NmZkNzY2ZTU1YTAyYWU3OGJhZjlkZDYzMzk4ZWI4NWE4OTBl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMKQEAgLTAsMCArMSwzIEBACitp
bXBvcnQgIm1vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzIgorCitzaG91bGRC
ZSgiY291bnQrKyIsICIyIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanMgYi9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2Eu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTU4ZDczMjQzZmVmMzBhMGI0OTQ5ZGJhN2ZiZjg1MzRlZWJhOWY3Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcwpAQCAtMCwwICsxLDMgQEAKK2ltcG9ydCAi
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMiOworCitzaG91bGRCZSgiY291
bnQrKyIsICIxIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMmUxNWQ3Y2YwY2ZmNGVhYTFhMGI1YTFlZTgzZGNjZTMyNGEyNWU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcwpAQCAtMCwwICsxIEBACitzaG91bGRCZSgiY291
bnQrKyIsICIwIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQz
ODZmYmI4NjgxY2JmN2U1OWM0NzM3NjM3ZTg3YmUzOGNmZjc0NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC5qcwpAQCAtMCwwICsxLDQgQEAKK2ltcG9ydCAiLi9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLWNvY29hLmpzIgoraW1wb3J0ICIuL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQt
Y2FwcHVjY2luby5qcyIKKworc2hvdWxkQmUoImNvdW50KysiLCAiMyIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjQzNjBhN2JmZTdlMDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlu
bGluZS1zaW1wbGUuanMKQEAgLTAsMCArMSw1IEBACitleHBvcnQgZGVmYXVsdCBjbGFzcyBDb2Nv
YSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVybiAiYXdlc29tZSI7CisgICAgfQorfTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQt
ZXZlbnQtd2l0aC1zcmMuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiODcwMjkwZDNlYzdlMDgwYzA1
ZjlmNjY2ODQ0Y2QwNjc1MjlmZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzCkBAIC0wLDAgKzEg
QEAKK2RlYnVnKCdFeGVjdXRpbmcgYSBtb2R1bGUgd2l0aCBzcmMgYXR0cmlidXRlLicpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5k
LWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWlt
cG9ydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40YzFiNDcxNDgxMzhhMGVjNDUyMmMyMjcyMzNhM2M3NDEzMzcx
Mjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMKQEAgLTAs
MCArMSBAQAoraW1wb3J0ICJub3QtZm91bmQuanMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzIGIvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5ZDQ2MzkwNDUxMmIwZWNiNzQ1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBs
ZS1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAKK2NsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsK
KyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAgICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0IENvY29h
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3Jj
LXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1z
aW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ5Yzc3NGZkOWU3YTVjOWQxODU5MjQwNDRlN2EyNzhhZDcz
MzcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLXNyYy1zaW1wbGUuanMKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZyb20g
Ii4vbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMiOwordmFyIGNvY29hID0gbmV3IENvY29hKCk7
CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52
aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRl
ZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJuaWNlIik7CitmaW5pc2hKU1Rlc3Qo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261852</attachid>
            <date>2015-09-23 17:31:48 -0700</date>
            <delta_ts>2015-09-23 17:41:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150923173129.patch</filename>
            <type>text/plain</type>
            <size>131939</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTM4YzU2NDIxMDg1MmYxMDUxZTFhOGI0NzRkMmQyZGRjYWYxZWE1Li5jZDhiYTZjMGRlOGJmMDQ3
NjAwZDVkNzMzNjA2YmQ0M2EyNTFjMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW1ib2w6
OmNyZWF0ZSBpcyBub3cgdXNlZCBpbiBXZWJDb3JlLgorCisgICAgICAgICogcnVudGltZS9TeW1i
b2wuaDoKKwogMjAxNS0wOS0xOCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWls
LmNvbT4KIAogICAgICAgICBSZW1vdmUgZHVwbGljYXRlIGNvZGUgaW4gdGhlIFdlYkFzc2VtYmx5
IHBhcnNlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIzYTA2MjI3NjBjYjQ0MDliZjYxMjVkNTVhNTBhZDA5N2Y5
YjVlYzAuLjE4ODE4ZmMwN2E1YzRkYWI1MGJjN2M0NzI2YWViMWE0ZjBjODA1NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNTQgQEAKKzIwMTUtMDktMjMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGlu
dG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIDxzY3JpcHQgdHlwZT0ibW9kdWxlIj4gdGFnLiBUaGF0
IHRhZyBsb2FkcyB0aGUgRVM2IE1vZHVsZXMuCisgICAgICAgIFNpbmNlIHRoZSBkZXRhaWwgb2Yg
dGhlIHRhZyBpcyBub3QgZGVmaW5lZCB5ZXRbMV0sIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBoaWRk
ZW4KKyAgICAgICAgYmVoaW5kIHRoZSBjb21waWxlIHRpbWUgZmxhZyBFTkFCTEUoRVM2X01PRFVM
RVMpLgorCisgICAgICAgIEEgbW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkg
YW5kIGV4ZWN1dGVkIGluIGEgbW9kdWxlIGVudmlyb25tZW50CisgICAgICAgIHRoYXQgaXMgZGlm
ZmVyZW50IGZyb20gdGhlIGdsb2JhbCBlbnZpcm9ubWVudC4gSXQgaXMgYWx3YXlzIHN0cmljdCBt
b2RlIGFuZCBvbmx5CisgICAgICAgIGEgbW9kdWxlIGNhbiB1c2UgdGhlIG1vZHVsZSBzeW50YXgg
bGlrZSBgaW1wb3J0YCwgYGV4cG9ydGAgZXRjLiBTbyBzaW5jZSB0aGUKKyAgICAgICAgZXhlY3V0
aW9uIHNlbWFudGljcyBpcyBkaWZmZXJlbnQgZnJvbSBvbmUgb2YgZ2xvYmFsIHNjcmlwdHMsIG1v
ZHVsZXMgbmVlZCB0byBiZQorICAgICAgICBleGVjdXRlZCBieSB0aGUgc3BlY2lhbGl6ZWQgdGFn
LCA8c2NyaXB0PiB3aXRoIHR5cGU9Im1vZHVsZSIuCisKKyAgICAgICAgVGhlIG1vZHVsZSB0YWcg
d29ya3MgYXMgYW4gZW50cnkgcG9pbnQgdG8gbW9kdWxlcy4gVHlwaWNhbGx5LCB3ZSBzcGVjaWZ5
IGFuCisgICAgICAgIGVudHJ5IHBvaW50IG1vZHVsZSBieSBhIHRhZyBhbmQgYW4gZW50cnkgcG9p
bnQgbW9kdWxlIHdpbGwgbG9hZCBkZXBlbmRlbnQKKyAgICAgICAgbW9kdWxlcyBhbmQgcnVuIGEg
YXBwbGljYXRpb24uCisKKyAgICAgICAgT25jZSBtb2R1bGUgdGFnIHJlcXVlc3QgbG9hZGluZywg
V2ViQ29yZSByZXF1ZXN0IGxvYWRpbmcgdG8gdGhlIEpTQydzIG1vZHVsZQorICAgICAgICBsb2Fk
ZXIuIFdlYkNvcmUgYWRvcHRzIHRoZSBKU0MncyBnZW5lcmljIG1vZHVsZSBsb2FkZXIgYnkgaW1w
bGVtZW50aW5nIHRoZSBsb2FkZXIKKyAgICAgICAgaG9va3MuIEluIHRoZSBjdXJyZW50IGltcGxl
bWVudGF0aW9uLCBXZWJDb3JlIGltcGxlbWVudHMgMyBob29rcy4KKworICAgICAgICAxLiByZXNv
bHZlIGhvb2sKKworICAgICAgICAgICAgVGFrZXMgdGhlIG1vZHVsZSBuYW1lIGFuZCByZXNvbHZl
IGl0IHRvIHRoZSB1bmlxdWUgbW9kdWxlIGtleS4KKyAgICAgICAgICAgIEluIFdlYkNvcmUsIHdl
IHRha2UgdGhlIG1vZHVsZSBuYW1lIGxpa2UgIi4vaGVsbG8uanMiIGFuZCByZXNvbHZlIGl0IHRv
IFVSTC4KKworICAgICAgICAyLiBmZXRjaCBob29rCisKKyAgICAgICAgICAgIEZldGNoZXMgdGhl
IHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUgbW9kdWxlIGtleS4gSW4gV2ViQ29yZSwgdGhlIG1v
ZHVsZSBrZXkgaXMKKyAgICAgICAgICAgIFVSTC4gV2UgdXNlIENhY2hlZFJlc291cmNlIGxvYWRp
bmcgc3lzdGVtIHRvIGxvYWQgdGhlIHJlc291cmNlIG9mIHRoZSBtb2R1bGVzLgorCisgICAgICAg
IDMuIGV2YWx1YXRlIGhvb2sKKworICAgICAgICAgICAgVGhpcyBpcyBhZGRpdGlvbmFsIGhvb2sg
dG8gaW5zdHJ1bWVudCB0aGUgbW9kdWxlJ3MgZXhlY3V0aW9uIGZvciB0aGUgaW5zcGVjdG9yLgor
CisgICAgICAgIFRoZSBtb2R1bGUgbG9hZGVyIGludm9rZXMgdGhlc2UgaG9va3MsIGNvbnN0cnVj
dHMgdGhlIHBpcGVsaW5lIGFuZCBub3RpZmllcyBldmVudHMKKyAgICAgICAgdG8gYSBNb2R1bGVH
cmFwaCwgd2hpY2ggaXMgaGVsZCBieSBhIFNjcmlwdEVsZW1lbnQuIEEgU2NyaXB0RWxlbWVudCB3
aXRoIGEgTW9kdWxlR3JhcGgKKyAgICAgICAgd2lsbCBiZSBkcml2ZW4gYnkgdGhlc2UgZXZlbnRz
LgorCisgICAgICAgIE1vZHVsZSB0YWcgbG9hZHMgdGhlIHJlc291cmNlcyBhc3luY2hyb25vdXNs
eS4gU28gaXQgZG9lcyBub3QgYmxvY2sgdGhlIGRvY3VtZW50CisgICAgICAgIHBhcnNlci4gQnV0
IHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0aGUgbXVsdGlwbGUgbW9kdWxlIHRhZ3Mgc2hv
dWxkIGJlY29tZQorICAgICAgICB0aGUgb2NjdXJyZW5jZSBvcmRlclsxXS4gU28gU2NyaXB0UnVu
bmVyIG1hbmFnZXMgdGhlIG1vZHVsZSB0YWdzIGFuZCBmb3JjZSB0aGVtCisgICAgICAgIHRvIGJl
IGV4ZWN1dGVkIGluIHRoZSBvY2N1cnJlbmNlIG9yZGVyLgorCisgICAgICAgIFsxXTogaHR0cHM6
Ly9naXRodWIuY29tL2RoZXJtYW4vbW9kdWxlLXRhZy9ibG9iL21hc3Rlci9yZXF1aXJlbWVudHMu
bWQKKworICAgICAgICBUZXN0czoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRl
LWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCisg
ICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLWlubGluZS5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWlu
bGluZS1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtaW5saW5lLXNp
bXBsZS5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1z
cmMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwKKyAg
ICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQt
aW1wb3J0Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9y
LWV2ZW50LXdpdGgtc3JjLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtbm90LWZv
dW5kLWVycm9yLWV2ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtc3JjLWR5
bmFtaWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwK
KyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMv
cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5n
SGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaDogQWRkZWQuCisgICAg
ICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU01vZHVsZVJlY29yZC5oOiBBZGRlZC4K
KyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1N5bWJvbC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9h
ZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxv
YWRlckZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9h
ZGVyRXZhbHVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6SlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vZHVsZUZldGNoZXI6On5Nb2R1bGVGZXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVs
ZUZldGNoZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpydW4p
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNb2R1bGVGZXRjaGVyOjpjYWNoZWRTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L01vZHVsZUxvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVy
OjpNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpyZXNvbHZl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVM
b2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVMb2Fk
ZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OmRvY3VtZW50KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6aGFu
ZGxlTW9kdWxlTG9hZGVyRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bG9hZE1vZHVsZUluV29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bG9hZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5r
QW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRy
b2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRD
b250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9N
b2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6aW5pdE1vZHVs
ZUdyYXBoKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjptb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0
ZWRFcnJvclN5bWJvbCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
fkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlR3JhcGg6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3Rp
ZnlFdmFsdWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmxvYWQpOgorICAg
ICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVs
ZUdyYXBoOjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjptb2R1bGVL
ZXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OndlYWtFbGVtZW50UHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjplcnJvck9jY3VycmVkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3Vw
cG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAqIGRv
bS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojptb2R1
bGVHcmFwaCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5u
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6aGFzUGVuZGluZ1NjcmlwdHMp
OgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAgICAg
ICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDoKKwogMjAxNS0wOS0xOCAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNTAxODcpOiB1cGRhdGVJ
ZEZvclRyZWVTY29wZSBtYXkgbm90IGJlIGNhbGxlZCBpbnNpZGUgc2hhZG93IHRyZWVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IDgzZjVkZTI0ODUyYmMzNzhlZTBh
NzcwMzlmNDYzMTgyNWZkZGRiYmUuLmRkYjY4Y2NiMzY1NDQ1OTkxMGNkM2YyM2Y2Njg3NGQwMDU4
OGE5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC04Niw3ICs4
Niw3IEBAIGNsYXNzIFN5bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgU3ltYm9s
KFZNJik7CiAgICAgU3ltYm9sKFZNJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgU3ltYm9sKFZNJiwg
U3ltYm9sSW1wbCYgdWlkKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTeW1ib2woVk0mLCBTeW1i
b2xJbXBsJiB1aWQpOwogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjYTFkZTRkMTU2OTQ4YmY3ZTEwZDBlZWI0NjZjY2ZjNWUz
NjZiMTFhLi5kZDZhZGJmY2E5OWNhMzU1NjNhZDk5ZGQ1NjAyOWQ1N2U1YzhkMzJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTIyMyw2ICsxMjIzLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNz
b3JDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5jcHAKKyAgICBiaW5k
aW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwCiAgICAgYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVh
bS5jcHAKICAgICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCiAgICAgYmluZGluZ3Mv
anMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcApAQCAtMTQ0Nyw2ICsxNDQ5LDcgQEAgc2V0KFdl
YkNvcmVfU09VUkNFUwogICAgIGRvbS9NZXNzYWdlUG9ydC5jcHAKICAgICBkb20vTWVzc2FnZVBv
cnRDaGFubmVsLmNwcAogICAgIGRvbS9NaWNyb1Rhc2suY3BwCisgICAgZG9tL01vZHVsZUdyYXBo
LmNwcAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcAogICAgIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5j
cHAKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43ZjU1N2EyZjIxZWNmNmIyYWVjYWQ2N2UzNTNlMTk2NmU0Nzk0ZTgwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0lu
dGVybmFsUHJvbWlzZV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlX2gK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzA4NmRk
MzlhZmY5ZTEwNGJkNWE2ZmY3YWU3OTI1NDYzODY5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWRfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvcnVudGltZS9KU01vZHVsZVJlY29yZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9KU01vZHVsZVJlY29yZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZTllY2ZmYmNmNTdj
MmE5Yzc5NWNjYjFkODAzNDBmOTE0ZDdkNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKQEAgLTAsMCAr
MSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0pTTW9kdWxlUmVjb3JkX2gKKyNkZWZpbmUgV2Vi
Q29yZV9GV0RfSlNNb2R1bGVSZWNvcmRfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9k
dWxlUmVjb3JkLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL1N5bWJvbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MDQyN2YwOTFhOWVjYWNmYmZhMDk5
YWUwZDAzMGUwZTliYzVlYjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9ydW50aW1lL1N5bWJvbC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBX
ZWJDb3JlX0ZXRF9TeW1ib2xfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9TeW1ib2xfaAorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1N5bWJvbC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA3ZjM5MjQ1OGJiY2ZkNTJiYzRk
NWI2NzFkOGEzOGU0OTMzZGMzZDhlLi5hMTNmM2UxZjcwODg3N2U3YTk5YjliMjlmNDM4MzAxOTQ0
YzYyZjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKQEAgLTE0NDA4LDYgKzE0NDA4LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZG9tXE1vZHVsZUdyYXBoLmNwcCI+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTW91c2VFdmVudC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTg4NDcsNiArMTg4NjEsMzQgQEAK
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xN
b2R1bGVGZXRjaGVyLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xNb2R1bGVMb2FkZXIuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjaGVkdWxlZEFjdGlvbi5jcHAiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMjIwNTUsNiArMjIwOTcs
NyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE1lc3NhZ2VQb3J0LmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTWVzc2FnZVBvcnRDaGFubmVsLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTWljcm9UYXNrLmgiIC8+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxkb21cTW9kdWxlR3JhcGguaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxkb21cTW91c2VSZWxhdGVkRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGRvbVxNdXRhdGlvbkV2ZW50LmgiIC8+CkBAIC0yMjQ2Nyw2ICsyMjUxMCw4IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVPclN0cmluZy5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGlu
Z3NcanNcTW9kdWxlRmV0Y2hlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlTG9hZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxi
aW5kaW5nc1xqc1xTY2hlZHVsZWRBY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcU2NyaXB0Q29udHJvbGxlci5oIiAvPgpAQCAtMjI3
MDYsMTMgKzIyNzUxLDE3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdmdccHJvcGVy
dGllc1xTVkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEFyZ0xpc3QuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSWRlbnRp
Zmllci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNc
cnVudGltZVxKU0ludGVybmFsUHJvbWlzZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1l
XEpTTG9jay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZVxKU09iamVjdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZVxKU1N0cmluZy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU01vZHVsZVJlY29yZC5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxMb29r
dXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1
bnRpbWVcT3BlcmF0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2Fy
ZGluZ0hlYWRlcnNccnVudGltZVxQcm90ZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN0cmluZ09iamVjdC5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxTeW1ib2wuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcUmVn
dWxhckV4cHJlc3Npb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHlhcnJcWWFyci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNceWFyclxZYXJySW50ZXJwcmV0ZXIuaCIgLz4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRl
eCA2ZThjMjg0MGYyM2RlYTlmNDRmMmU4NGQwZjg5MzZlNzNhNWViYTU1Li5jZmQ5NjIzODNjMTgy
MWY2Yjg4MzQ2ZDg2MzZlNGQ1NGJkM2JkOGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0zMTk4LDYgKzMx
OTgsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE1pY3JvVGFzay5jcHAiPgog
ICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRvbVxNb2R1bGVHcmFwaC5jcHAiPgorICAgICAgPEZpbHRlcj5kb208
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRv
bVxNb3VzZUV2ZW50LmNwcCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgogICAgIDwvQ2xD
b21waWxlPgpAQCAtNDQ3Niw2ICs0NDc5LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIj4KICAgICAgIDxGaWx0ZXI+
YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUZldGNoZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+
YmluZGluZ3NcanM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUxvYWRlci5jcHAiPgorICAgICAgPEZpbHRlcj5i
aW5kaW5nc1xqczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cYmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVy
PmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMDMwNCw2ICsxMDMx
Myw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTWljcm9UYXNrLmgiPgogICAg
ICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNb2R1bGVHcmFwaC5oIj4KKyAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0
ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTW91
c2VFdmVudC5oIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkBAIC0xMTQ4Niw2ICsxMTQ5OCwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCI+CiAgICAgICA8RmlsdGVyPmJpbmRp
bmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVGZXRjaGVyLmgiPgorICAgICAgPEZpbHRlcj5iaW5kaW5n
c1xqczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcTW9kdWxlTG9hZGVyLmgiPgorICAgICAgPEZpbHRlcj5iaW5kaW5nc1xq
czwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmgiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xq
czwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTE2NTQsMTIgKzExNjcyLDIxIEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXElkZW50
aWZpZXIuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcSlNJbnRlcm5hbFByb21pc2UuaCI+CisgICAgICA8RmlsdGVyPkZv
cndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVu
dGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU0xvY2suaCI+CiAgICAgICA8RmlsdGVyPkZv
cndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNPYmplY3Qu
aCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWVcSlNNb2R1bGVSZWNvcmQuaCI+CisgICAgICA8RmlsdGVyPkZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNTdHJpbmcuaCI+CiAgICAg
ICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KQEAgLTExNjc4LDYgKzExNzA1LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3RyaW5nT2JqZWN0LmgiPgogICAgICAgPEZpbHRl
cj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5bWJv
bC5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgor
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNceWFyclxSZWd1bGFyRXhwcmVzc2lvbi5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGlu
Z0hlYWRlcnNceWFycjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU4OGE3ZmM4ODYz
MGNkODg1NTYxZWM1ZDA1MTUyZjBkNjRhYzA1ZjguLjIyYWQwN2FjODVhOWMyOWEzMGE3ZDY5N2Uw
NTM4OGU2NGExNTg3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTYzMTcsNiArNjMxNywxMiBAQAogCQlFMUZGOEY2ODE4MDc0
NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8q
IEpTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTFGRjhGNkMxODBEQjVCRTAwMTMy
Njc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgKi87IH07CiAJCUUxRkY4RjZEMTgwREI1QkUwMDEzMjY3
NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmggKi87IH07CisJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBN
b2R1bGVHcmFwaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwICovOyB9Owor
CQlFMzM5QTUyNDFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzlBNTIyMUJBNkJENDYwMEEzQTdB
RSAvKiBNb2R1bGVHcmFwaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUUzODgzODk2MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODgzODky
MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNT
RVRfVEFHUyA9ICgpOyB9OyB9OworCQlFMzg4Mzg5NzFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxl
RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM4ODM4OTMxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OworCQlFMzg4Mzg5ODFCQUQxNDVGMDBENjJFRTMgLyog
TW9kdWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwICovOyBz
ZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCUUzODgzODk5MUJBRDE0NUYwMEQ2
MkVFMyAvKiBNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OwogCQlFNDAxQzI3NTE3Q0U1M0VD
MDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8q
IEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDI0QTM5RTEzMzBERjAxMDBDRjZEQzkgLyogTGVnYWN5
VGlsZUdyaWRUaWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNDI0QTM5RDEzMzBERjAxMDBDRjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLmggKi87
IH07CiAJCUU0MjRBM0EwMTMzMERGMUUwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDI0QTM5RjEz
MzBERjFFMDBDRjZEQzkgLyogTGVnYWN5VGlsZUdyaWRUaWxlLm1tICovOyB9OwpAQCAtMTQwNjYs
NiArMTQwNzIsMTIgQEAKIAkJRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5
cHRvQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3Vi
dGxlQ3J5cHRvQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhG
NkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0
IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUzMzlBNTIxMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVHcmFwaC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMzlBNTIyMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVH
cmFwaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVHcmFwaC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5MjFCQUQxNDVGMDBENjJFRTMgLyog
TW9kdWxlRmV0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
b2R1bGVGZXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4OTMx
QkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTW9kdWxlRmV0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2Fk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlTG9hZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBF
bGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFNDFFQTAzODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlO
YW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0
eU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNTA2LDYgKzIxNTE4
LDEwIEBACiAJCQkJNDExODlFRjgxQUQ4MjMzQzAwQjkwQTBEIC8qIEpTUmVhZGFibGVTdHJlYW1D
b250cm9sbGVyQ3VzdG9tLmNwcCAqLywKIAkJCQlFMUMzNkQzMjBFQjBBMDk0MDA3NDEwQkMgLyog
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5oICovLAorCQkJCUUzODgzODkyMUJBRDE0
NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmNwcCAqLywKKwkJCQlFMzg4Mzg5MzFCQUQxNDVG
MDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5oICovLAorCQkJCUUzODgzODk0MUJBRDE0NUYwMEQ2
MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwICovLAorCQkJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVF
MyAvKiBNb2R1bGVMb2FkZXIuaCAqLywKIAkJCQk0MTk4QkRFRTFBODExMjM2MDBCMjJGQjUgLyog
UmVhZGFibGVKU1N0cmVhbS5jcHAgKi8sCiAJCQkJNDE5OEJERUYxQTgxMTIzNjAwQjIyRkI1IC8q
IFJlYWRhYmxlSlNTdHJlYW0uaCAqLywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyog
U2NoZWR1bGVkQWN0aW9uLmNwcCAqLywKQEAgLTIzNDcyLDYgKzIzNDg4LDggQEAKIAkJCQk0MUJG
NzAwQTBGRTg2RjQ5MDA1RThERUMgLyogTWVzc2FnZVBvcnRDaGFubmVsLmggKi8sCiAJCQkJQ0I4
Q0YwMTUxQTkzNEI0MzAwMEQ1MTBCIC8qIE1pY3JvVGFzay5jcHAgKi8sCiAJCQkJNTNCODk1QUQx
OURDN0MzNzAwOUNBQTkzIC8qIE1pY3JvVGFzay5oICovLAorCQkJCUUzMzlBNTIxMUJBNkJENDYw
MEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi8sCisJCQkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNB
N0FFIC8qIE1vZHVsZUdyYXBoLmggKi8sCiAJCQkJODUwMzFCMkYwQTQ0RUZDNzAwRjk5MkUwIC8q
IE1vdXNlRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjMwMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3Vz
ZUV2ZW50LmggKi8sCiAJCQkJMTQxQjk0RTUwOUVDNDIyMzAwMEU5NDEzIC8qIE1vdXNlRXZlbnQu
aWRsICovLApAQCAtMjQ1ODYsNiArMjQ2MDQsNyBAQAogCQkJCTMxNjAyM0YwMTUzMkM0MEMwMEQ1
MEZGNCAvKiBEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzdGRjNENTFBMTAxMkQ2
MDA4RUJBMzEgLyogRGljdGlvbmFyeUxvb2t1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBRjE5
OTkxNTEzRDEzMTAwOERCMEMzIC8qIERpcmVjdENvbnZvbHZlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29h
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUFGMkQ2OTE0NDM1RDA1MDAxNkE3ODQgLyogRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDNjE5MkVDQzgzMDA5
ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI2MTYxLDYgKzI2MTgwLDcgQEAKIAkJCQlDRTEyNTI0MTFBMTZCMUI2MDA4NjQ0ODAgLyogTWVk
aWFQbGF5ZXJTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0
RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUND
MDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4ODM4OTkxQkFE
MTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5
MkMwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTRFMTk1OTJFMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEM0E5NEEzOTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3Qu
aCBpbiBIZWFkZXJzICovLApAQCAtMjcyMDUsNiArMjcyMjUsNyBAQAogCQkJCTA4MEU0OTI4MTI1
NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0RW5naW5lU3BhY2luZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDhGMEJGQzYxMjU1QzUzQzAwMDc1MTg1IC8qIFNWR1RleHRNZXRyaWNzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MTE3NDQ1OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJp
Y3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg4Mzg5NzFCQUQxNDVGMDBENjJFRTMg
LyogTW9kdWxlRmV0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBQ0UwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1RleHRQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
RDEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4NTRCMDI1MTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdUZXh0UXVlcnkuaCBp
biBIZWFkZXJzICovLApAQCAtMjc5NzIsNiArMjc5OTMsNyBAQAogCQkJCUNEMEVFRTBFMTQ3NDNG
MzkwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZEMzE2MEJDMTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZEMzE2MDA3MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzM5QTUyMzFCQTZCRDQ2MDBBM0E3QUUg
LyogTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwODExMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNENTU5NjkxMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkQzMTYwQkUxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRl
ck1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4NTM1LDYgKzI4NTU3LDcgQEAKIAkJCQlFNEEw
MDc4NTFCODIwRUQzMDAyQzVBNkUgLyogRGF0YVVSTERlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDk4MzkxNTEwRjFFNzZCNDAwQzIzNzgyIC8qIERPTVdlYktpdENTU01hdHJpeC5tbSBp
biBTb3VyY2VzICovLAogCQkJCThBRDBBNTk3MTRDODgzNTgwMDBEODNDNSAvKiBET01XZWJLaXRD
U1NSZWdpb25SdWxlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4ODM4OTgxQkFEMTQ1RjAwRDYy
RUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTYxMUU2MjBFMUM0
RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW0gaW4gU291cmNlcyAq
LywKIAkJCQkzRjJCMzNFQzE2NUFGMTU2MDBFMzk4N0MgLyogRE9NV2ViS2l0Q1NTVmlld3BvcnRS
dWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M5MUEzOEYxQjQ5OEFCRTAwM0Y5RUZBIC8qIEpT
Tm9kZU9yU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg4NjIsNiArMjg4ODUsNyBAQAog
CQkJCUE4NzFEQjJFMEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDZWxsRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODcxREIyOTBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxl
Q29sRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREIyODBBMTUwQkQ2MDBCMTJB
NjggLyogSFRNTFRhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzg4Mzg5NjFC
QUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
ODcxREIyRDBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTg3MURCMzAwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVJvd0Vs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0NDJDQTAwRDJCMzM2MDAwMzM4RkY5IC8q
IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNzliNzQwYmU1ZTFh
MjYwMGM0MWQ3MzIxMjUxNWY4ZmYxMTJiZTk2Ni4uMzJhMDViNmM4MDI5ZWMyNjg2YzhmOGI5ZDc4
ZmU1MjgyMTA1MGE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCkBAIC0zMSwxMSArMzEsMTMgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1
c3RvbS5oIgogI2luY2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNs
dWRlICJNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8cnVu
dGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9NaWNy
b3Rhc2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC01Niw3ICs1OCw3IEBA
IHN0YXRpYyBib29sIHNob3VsZEFsbG93QWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9iamVjdCog
dGhpc09iamVjdCwgRXhlY1N0YXRlKiBlCiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd0Jh
c2U6OnNfaW5mbyA9IHsgIldpbmRvdyIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTRE9NV2luZG93QmFzZSkgfTsKIAotY29uc3QgR2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxl
ID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0
c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRp
bWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVm
b3JlVGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9
OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNQ
cm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0
LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxk
SW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1
bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwgbnVsbHB0ciwgJm1vZHVsZUxvYWRlckV2YWx1YXRlIH07
CiAKIEpTRE9NV2luZG93QmFzZTo6SlNET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIFBhc3NSZWZQdHI8RE9NV2luZG93PiB3aW5kb3csIEpTRE9NV2luZG93U2hlbGwq
IHNoZWxsKQogICAgIDogSlNET01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgJnNoZWxsLT53
b3JsZCgpLCAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKQEAgLTI3OSw0ICsyODEsMzEgQEAg
dm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRv
dyhET01XaW5kb3cqIHdpbmRvdykKICAgICB9CiB9CiAKKworSlNDOjpKU0ludGVybmFsUHJvbWlz
ZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1
bGVOYW1lLCBKU0M6OkpTVmFsdWUgcmVmZXJyZXIpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0
aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsK
KyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50
KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xv
YmFsT2JqZWN0LCBleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5y
ZWplY3QoZXhlYywganNVbmRlZmluZWQoKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eSkKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RP
TVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQg
PSB0aGlzT2JqZWN0LT5pbXBsKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50
LT5tb2R1bGVMb2FkZXIoKS0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXkpOwor
ICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJl
dHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpT
VmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUg
bW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkKQoreworICAgIEpTRE9NV2luZG93
QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9i
amVjdCk7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5k
b2N1bWVudCgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFs
dWF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkKTsKKyAgICBy
ZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDVlZDM4
NjJjMTQxMTg3YzAwNmI2ODhkYjc5Nzc5NGIzNjk4MTA1NjQuLjJkNDRiODAwOWU1NGRiYjA3NGU4
Zjk5NzdjMTZiMjVlMTI1N2VhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5oCkBAIC03OCw2ICs3OCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIEpTQzo6V2F0Y2hwb2ludFNldCBtX3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHM7CiAKICAg
ICBwcml2YXRlOgorICAgICAgICAvLyBNb2R1bGUgTG9hZGVyIGhvb2tzLgorICAgICAgICBzdGF0
aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7
CisgICAgICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOwor
ICAgICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVl
KTsKKwogICAgICAgICBSZWZQdHI8RE9NV2luZG93PiBtX2ltcGw7CiAgICAgICAgIEpTRE9NV2lu
ZG93U2hlbGwqIG1fc2hlbGw7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKaW5kZXggMDllN2U1YjYwMjY4NzliNTMzNWEx
ZmUxZWY3MWM0NDc0MzBiZmNkNC4uNGZkNjgzZTE1OTEwMmIxNTI4N2Q2Mzg5OWMwMTZlZmQzNzQ4
MDNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmgKQEAgLTc0LDYgKzc0LDI0IEBAIGNsYXNzIEpTTWFpblRocmVhZEV4ZWNTdGF0
ZSB7CiAgICAgICAgIHRhc2sucnVuKGV4ZWMpOwogICAgIH0KIAorICAgIHN0YXRpYyBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBT
dHJpbmcmIG1vZHVsZU5hbWUpCisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUg
Y3VycmVudFN0YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMs
IG1vZHVsZU5hbWUpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBsb2FkTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OlNvdXJjZUNvZGUm
IHNvdXJjZUNvZGUpCisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVu
dFN0YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJj
ZUNvZGUpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsaW5r
QW5kRXZhbHVhdGVNb2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgbW9kdWxlS2V5KQorICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1
cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bGlua0FuZEV2YWx1YXRlTW9k
dWxlKGV4ZWMsIG1vZHVsZUtleSk7CisgICAgfQorCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBpbnN0cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBKU0M6OkNhbGxUeXBlLCBjb25zdCBKU0M6OkNhbGxEYXRhJik7CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJjMDJmMDllMGVmMzRjZDE3OTBmMDNmNmVlMzMxYzIyMzBiYzJkZDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcApAQCAt
MCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNb2R1bGVGZXRjaGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgor
I2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAi
TW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5j
bHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJM
KQorICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3Qp
CisgICAgLCBtX2RlZmVycmVkKGdsb2JhbE9iamVjdC0+dm0oKSwgZGVmZXJyZWQpCit7Cit9CisK
K01vZHVsZUZldGNoZXI6On5Nb2R1bGVGZXRjaGVyKCkKK3sKKyAgICBpZiAobV9jYWNoZWRTY3Jp
cHQpIHsKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAg
ICAgbV9jYWNoZWRTY3JpcHQgPSBudWxscHRyOworICAgIH0KK30KKworUmVmPE1vZHVsZUZldGNo
ZXI+IE1vZHVsZUZldGNoZXI6OmNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBk
ZWZlcnJlZCwgRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IE1vZHVsZUZldGNoZXIoZ2xvYmFsT2JqZWN0LCBzb3VyY2VVUkwsIGRlZmVycmVkLCBkb2N1bWVu
dCkpOworfQorCitib29sIE1vZHVsZUZldGNoZXI6OnJ1bigpCit7CisgICAgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJl
c291cmNlT3B0aW9ucygpOworICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1w
b3NpdGlvbihDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrKTsK
KworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX3Nv
dXJjZVVSTCksIG9wdGlvbnMpOworCisgICAgLy8gRklYTUU6IFNob3VsZCBoYW5kbGUgImNyb3Nz
b3JpZ2luIiBvcHRpb25zLgorICAgIC8vIE9uY2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBkZXRh
aWxzLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcihBdG9taWNT
dHJpbmcobV9zb3VyY2VVUkwuc3RyaW5nKCkpKTsKKworICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9k
b2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7Cisg
ICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8g
Tm90ZTogSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMgaW1tZWlkYXRlbHkg
Y2FsbHMgbm90aWZ5RmluaXNoZWQuCisgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlz
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCit7CisgICAgQVNTRVJUX1VOVVNFRChyZXNv
dXJjZSwgcmVzb3VyY2UgPT0gbV9jYWNoZWRTY3JpcHQpOworICAgIGlmICghbV9jYWNoZWRTY3Jp
cHQpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX2NhY2hlZFNjcmlwdCk7CisgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQgPSBtX2NhY2hl
ZFNjcmlwdDsKKyAgICBtX2NhY2hlZFNjcmlwdCA9IG51bGxwdHI7CisKKyNpZiBFTkFCTEUoTk9T
TklGRikKKyAgICBpZiAoY2FjaGVkU2NyaXB0ICYmICFjYWNoZWRTY3JpcHQtPm1pbWVUeXBlQWxs
b3dlZEJ5Tm9zbmlmZigpKSB7CisgICAgICAgIG1fZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJSZWZ1c2VkIHRv
IGV4ZWN1dGUgc2NyaXB0IGZyb20gJyIgKyBjYWNoZWRTY3JpcHQtPnVybCgpLnN0cmluZ0NlbnRl
ckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicgYmVjYXVzZSBpdHMgTUlNRSB0eXBlICgnIiArIGNh
Y2hlZFNjcmlwdC0+bWltZVR5cGUoKSArICInKSBpcyBub3QgZXhlY3V0YWJsZSwgYW5kIHN0cmlj
dCBNSU1FIHR5cGUgY2hlY2tpbmcgaXMgZW5hYmxlZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgorCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkg
eworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKG1fZ2xvYmFsT2JqZWN0LT52bSgpKTsK
KyAgICAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhl
YygpOworICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LT5lcnJvck9jY3VycmVkKCkpIHsKKyAgICAg
ICAgICAgIC8vIFRoZSBtb2R1bGUgbG9hZGVyIHBpcGVsaW5lIGlzIGNvbnN0cnVjdGVkIGFzIGEg
Y2hhaW4gb2YgcHJvbWlzZXMuCisgICAgICAgICAgICAvLyBSZWplY3RpbmcgYSBwcm9taXNlIGlm
IHNvbWUgZXJyb3Igb2NjdXJzIGlzIGltcG9ydGFudCBiZWNhdXNlIHRoZSBleGVjdXRpb24gZmxv
dyBvZgorICAgICAgICAgICAgLy8gdGhlIHByb21pc2UgY2hhaW4gaXMgZHJpdmVuIGJ5ICJyZWpl
Y3RlZCIgb3IgImZ1bGZpbGxlZCIgZXZlbnRzLgorICAgICAgICAgICAgLy8gSWYgdGhlIHByb21p
c2UgaXMgbm90IHJlamVjdGVkIHdoaWxlIGVycm9yIG9jY3VycywgcmVqZWN0IGhhbmRsZXIgd29u
J3QgYmUgZXhlY3V0ZWQKKyAgICAgICAgICAgIC8vIGFuZCBhbGwgdGhlIHN1YnNlcXVlbnQgcHJv
bWlzZSBjaGFpbiB3aWxsIHdhaXQgdGhlIHJlc3VsdCBmb3JldmVyLgorICAgICAgICAgICAgLy8K
KyAgICAgICAgICAgIC8vIEFzIGEgcmVzdWx0LCBldmVuIGlmIHRoZSBlcnJvciBpcyBhbHJlYWR5
IHJlcG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgZWxzZXdoZXJlLAorICAgICAgICAgICAgLy8gaXQg
c2hvdWxkIGJlIHByb3BhZ2F0ZWQgaW4gdGhlIHBpcGVsaW5lLiBGb3IgZXhhbXBsZSwgdGhlIGVy
cm9yIG9mIGxvYWRpbmcKKyAgICAgICAgICAgIC8vIENhY2hlZFJlc291cmNlIGlzIGFscmVhZHkg
cmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBieSB0aGUgbG9hZGVyLiBCdXQgd2Ugc3RpbGwgbmVl
ZAorICAgICAgICAgICAgLy8gdG8gcmVqZWN0IHRoZSBwcm9taXNlIGJ5IHNvbWUgZXJyb3IuCisg
ICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTm90IHRvIHJlcG9ydCB0aGUgZXJyb3IgdHdp
Y2UsIHdoZW4gd2UgcHJvcGFnYXRlIHRoZSBlcnJvciB0aGF0IGlzIGFscmVhZHkgcmVwb3J0ZWQK
KyAgICAgICAgICAgIC8vIHRvIHRoZSBpbnNwZWN0b3IsIHdlIHRocm93IG1vZHVsZUxvYWRlckFs
cmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sIHN5bWJvbCBpbnN0ZWFkLgorICAgICAgICAgICAgLy8g
QnkgY29tcGFyaW5nIHRoZSB0aHJvd24gZXJyb3Igd2l0aCB0aGlzIHN5bWJvbCwgd2UgY2FuIGRp
c3Rpbmd1aXNoIGVycm9ycyByYWlzZWQKKyAgICAgICAgICAgIC8vIHdoZW4gbGlua2luZyBvciBl
eGVjdXRpbmcgYSBtb2R1bGUgZ3JhcGggZnJvbSBlcnJvcnMgcmVwb3J0ZWQgYWxyZWFkeS4KKyAg
ICAgICAgICAgIC8vIEluIHRoZSByZWplY3QgaGFuZGxlciBvZiB0aGUgcHJvbWlzZSwgd2Ugb25s
eSByZXBvcnQgYSBlcnJvciB0aGF0IGlzIG5vdCB0aGlzIHN5bWJvbC4KKyAgICAgICAgICAgIG1f
ZGVmZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OlN5bWJvbDo6Y3JlYXRlKGV4ZWMtPnZtKCksICoo
ZnJhbWUtPnNjcmlwdCgpLm1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCku
dWlkKCkpKSk7CisgICAgICAgIH0gZWxzZSBpZiAoIWNhY2hlZFNjcmlwdC0+d2FzQ2FuY2VsZWQo
KSkgeworICAgICAgICAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKGNhY2hlZFNjcmlw
dC5nZXQoKSk7CisgICAgICAgICAgICBtX2RlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIEpTQzo6anNT
dHJpbmcoZXhlYywgc291cmNlQ29kZS5zb3VyY2UoKSkpOworICAgICAgICB9CisgICAgfQorCisg
ICAgLy8gQSBDYWNoZWRSZXNvdXJjZUhhbmRsZSBhbG9uZSBkb2VzIG5vdCBwcmV2ZW50IHRoZSB1
bmRlcmx5aW5nIENhY2hlZFJlc291cmNlCisgICAgLy8gZnJvbSBwdXJnaW5nIGl0cyBkYXRhIGJ1
ZmZlci4gVW50aWwgd2UgZmluaXNoIHVzaW5nIHRoZSBiYWNraW5nIGJ1ZmZlciBvZiB0aGUKKyAg
ICAvLyBjYWNoZWQgc2NyaXB0LCB3ZSBkb24ndCByZW1vdmUgdGhlIGNsaWVudC4KKyAgICBjYWNo
ZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKworICAgIG1fZG9jdW1lbnQubW9kdWxlTG9h
ZGVyKCktPm5vdGlmeUZpbmlzaGVkKHRoaXMpOworICAgIC8vIEFmdGVyIE1vZHVsZUxvYWRlcjo6
bm90aWZ5RmluaXNoZWQgY2FsbCwgfHRoaXN8IG1heSBiZSBkZXN0cm95ZWQuCit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTNk
MzZhZTM2MGYyZjcyYjBlOTllZmJhNDM3ZjczNTQ2YjQ2MjBmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5oCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUZldGNoZXJfaAorI2RlZmluZSBNb2R1bGVG
ZXRjaGVyX2gKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCisjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJVUkwuaCIKKyNpbmNsdWRlIDxoZWFw
L1N0cm9uZ0lubGluZXMuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3Mg
RG9jdW1lbnQ7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKKworY2xhc3MgTW9kdWxlRmV0Y2hl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPE1vZHVsZUZldGNoZXI+LCBwcml2YXRlIENhY2hlZFJlc291
cmNlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNb2R1bGVGZXRjaGVyKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNb2R1bGVGZXRj
aGVyPiBjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlND
OjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQmKTsKKworICAgIH5Nb2R1bGVG
ZXRjaGVyKCk7CisKKyAgICBib29sIHJ1bigpOworCisgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRT
Y3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IE1vZHVsZUZldGNoZXIoSlNET01HbG9iYWxPYmplY3QqLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwg
SlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQmKTsKKworICAgIC8vIEZv
ciBDYWNoZWRSZXNvdXJjZUNsaWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQo
Q2FjaGVkUmVzb3VyY2UqKSBvdmVycmlkZTsKKworICAgIERvY3VtZW50JiBtX2RvY3VtZW50Owor
ICAgIFVSTCBtX3NvdXJjZVVSTDsKKyAgICBKU0M6OlN0cm9uZzxKU0RPTUdsb2JhbE9iamVjdD4g
bV9nbG9iYWxPYmplY3Q7CisgICAgSlNDOjpTdHJvbmc8SlNDOjpKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkPiBtX2RlZmVycmVkOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4gbV9jYWNoZWRTY3JpcHQgeyB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gTW9kdWxlRmV0Y2hlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9k
dWxlTG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDAyYjE2MmQwMTIzZjVhMDg4YWVmN2JmMGI0M2M1
MzI5NTI3ZWM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
TW9kdWxlTG9hZGVyLmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKKworI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiTWljcm9UYXNrLmgiCisjaW5jbHVk
ZSAiTW9kdWxlR3JhcGguaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0NvbXBsZXRpb24u
aD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KKyNpbmNs
dWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU1N0cmlu
Zy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvU3ltYm9sLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworTW9kdWxlTG9hZGVyOjpNb2R1bGVMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDog
bV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogTW9k
dWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lVmFsdWUsIEpTQzo6SlNW
YWx1ZSByZWZlcnJlclZhbHVlKQoreworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVj
LCBnbG9iYWxPYmplY3QpOworICAgIGlmIChtb2R1bGVOYW1lVmFsdWUuaXNTeW1ib2woKSkKKyAg
ICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIG1vZHVsZU5hbWVWYWx1ZSk7CisK
KyAgICAvLyBGSVhNRTogV2Ugbm93IGFzc3VtZSB0aGF0IG1vZHVsZSBuYW1lIGlzIGVpdGhlciBz
eW1ib2wgb3Igc3RyaW5nLgorICAgIC8vIFdoZW4gZXhwb3NpbmcgdGhlIHJlZmxlY3Rpb24gdG8g
dGhlIG1vZHVsZSBsb2FkZXIgYW5kIG1vZHVsZXMsIHdlIG5lZWQgdG8gcmVjYXN0IHRoaXMgcGFy
dC4KKyAgICBBU1NFUlQobW9kdWxlTmFtZVZhbHVlLmlzU3RyaW5nKCkpOworICAgIFN0cmluZyBt
b2R1bGVOYW1lID0gSlNDOjpqc0Nhc3Q8SlNDOjpKU1N0cmluZyo+KG1vZHVsZU5hbWVWYWx1ZSkt
PnZhbHVlKGV4ZWMpOworCisgICAgLy8gTm93LCB3ZSBjb25zaWRlciB0aGUgZ2l2ZW4gbW9kdWxl
TmFtZSBhcyB0aGUgc2FtZSB0byB0aGUgc3JjPSIuLi4iIGluIHRoZSBzY3JpcHQgdGFnLgorICAg
IC8vIFdlIHVzZSB0aGUgY29tcGxldGVkIFVSTCBhcyB0aGUgbW9kdWxlIGtleS4KKyAgICAvLwor
ICAgIC8vIEZJWE1FOiBXZSBuZWVkIHNpdGUgcGFja2FnaW5nIHN5c3RlbS4gQnV0IGl0J3Mgbm90
IGRlZmluZWQgaW4gdGhlIHNwZWMgeWV0LgorICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5p
by9sb2FkZXIvI2Jyb3dzZXItbG9hZGVyLXByb3RvdHlwZS0lNDAlNDByZXNvbHZlCisgICAgVVJM
IGNvbXBsZXRlZFVSTDsKKworICAgIC8vIEZJWE1FOiBDaGVjayBtX2RvY3VtZW50IGxpZmV0aW1l
LgorICAgIGlmIChyZWZlcnJlclZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIGNvbXBsZXRlZFVS
TCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwobW9kdWxlTmFtZSk7CisgICAgZWxzZSB7CisgICAg
ICAgIGlmIChyZWZlcnJlclZhbHVlLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICBjb21wbGV0
ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUpOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIEFTU0VSVChyZWZlcnJlclZhbHVlLmlzU3RyaW5nKCkpOworICAgICAg
ICAgICAgU3RyaW5nIHJlZmVycmVyID0gSlNDOjpqc0Nhc3Q8SlNDOjpKU1N0cmluZyo+KHJlZmVy
cmVyVmFsdWUpLT52YWx1ZShleGVjKTsKKyAgICAgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9j
dW1lbnQuY29tcGxldGVVUkwobW9kdWxlTmFtZSwgVVJMKFBhcnNlZFVSTFN0cmluZywgcmVmZXJy
ZXIpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWNvbXBsZXRlZFVSTC5pc1ZhbGlkKCkp
CisgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGNyZWF0ZURPTUV4Y2VwdGlv
bihleGVjLCBTWU5UQVhfRVJSKSk7CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhl
YywganNTdHJpbmcoZXhlYywgY29tcGxldGVkVVJMLnN0cmluZygpKSk7Cit9CisKK0pTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eVZhbHVlKQoreworICAgIC8vIEZJWE1FOiBXaGVuIGltcGxlbWVudGluZyByZWZsZWN0aXZlIG1v
ZHVsZSBsb2FkZXIgYW5kIG1vZHVsZXMsIHdlIHNob3VsZCByZWNhc3QgdGhpcyBpbXBsZW1lbnRh
dGlvbi4KKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlND
OjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsK
KworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCksICJT
eW1ib2xpYyBtb2R1bGUga2V5IHNob3VsZCBiZSBhbHJlYWR5IGZ1bGZpbGxlZCB3aXRoIHRoZSBp
bmxpbmVkIHJlc291cmNlLiIpOworICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygp
KTsKKworICAgIEpTQzo6SWRlbnRpZmllciBtb2R1bGVLZXkgPSBKU0M6OklkZW50aWZpZXI6OmZy
b21TdHJpbmcoZXhlYywgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7CisK
KyAgICBVUkwgY29tcGxldGVkVVJMKFBhcnNlZFVSTFN0cmluZywgbW9kdWxlS2V5LmltcGwoKSk7
CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShjb21wbGV0ZWRVUkwuaXNWYWxpZCgpLCAiVGhlIHJl
c29sdmUgaG9vayBzaG91bGQgcHJvZHVjZSB0aGUgdmFsaWQgVVJMIGFzIGEgc3RyaW5nLiIpOwor
CisgICAgUmVmPE1vZHVsZUZldGNoZXI+IGZldGNoZXIgPSBNb2R1bGVGZXRjaGVyOjpjcmVhdGUo
SlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBjb21wbGV0ZWRV
UkwsIGRlZmVycmVkLCBtX2RvY3VtZW50KTsKKyAgICBtX2ZldGNoaW5nU2V0LmFkZCgmZmV0Y2hl
ci5nZXQoKSk7CisgICAgaWYgKCFmZXRjaGVyLT5ydW4oKSkgeworICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVk
LT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5z
Y3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkp
OworICAgIH0KKworICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOworfQorCitKU0M6OkpT
VmFsdWUgTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVl
IG1vZHVsZVJlY29yZFZhbHVlKQoreworICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIHdlIG9ubHkg
c3VwcG9ydCBKU01vZHVsZVJlY29yZC4KKyAgICBKU0M6OkpTTW9kdWxlUmVjb3JkKiBtb2R1bGVS
ZWNvcmQgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU01vZHVsZVJlY29yZCo+KG1vZHVsZVJl
Y29yZFZhbHVlKTsKKyAgICBpZiAoIW1vZHVsZVJlY29yZCkKKyAgICAgICAgcmV0dXJuIEpTQzo6
anNVbmRlZmluZWQoKTsKKworICAgIFVSTCBzb3VyY2VVUkw7CisgICAgaWYgKG1vZHVsZUtleVZh
bHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHNvdXJjZVVSTCA9IG1fZG9jdW1lbnQudXJsKCk7Cisg
ICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKKyAg
ICAgICAgc291cmNlVVJMID0gVVJMKFBhcnNlZFVSTFN0cmluZywgYXNTdHJpbmcobW9kdWxlS2V5
VmFsdWUpLT52YWx1ZShleGVjKSk7CisgICAgfQorCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1f
ZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0
ZU1vZHVsZShzb3VyY2VVUkwsIG1vZHVsZVJlY29yZCk7CisgICAgcmV0dXJuIEpTQzo6anNVbmRl
ZmluZWQoKTsKK30KKwordm9pZCBNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZUZl
dGNoZXIqIGZldGNoZXIpCit7CisgICAgbV9mZXRjaGluZ1NldC5yZW1vdmUoZmV0Y2hlcik7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzQ5MzY5NjgxNjVlZWQ4NTgxMDE3ODFjZDE4NTQ3MGM4ZWI1ZTBkMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5oCkBAIC0wLDAg
KzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUxvYWRlcl9oCisjZGVmaW5lIE1v
ZHVsZUxvYWRlcl9oCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0
Y2hlci5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNp
bmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIE1v
ZHVsZUxvYWRlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxlTG9hZGVyKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTW9kdWxlTG9hZGVy
KERvY3VtZW50Jik7CisKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fZG9jdW1lbnQ7CisgICAgfQorCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyKTsKKyAgICBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlKiBmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUgbW9kdWxlS2V5KTsKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwg
SlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCk7CisKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKE1v
ZHVsZUZldGNoZXIqKTsKK3ByaXZhdGU6CisgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAg
SGFzaFNldDxSZWZQdHI8TW9kdWxlRmV0Y2hlcj4+IG1fZmV0Y2hpbmdTZXQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1bGVMb2FkZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA0YjNiMDk3
MmJlNzdmM2M3NjU5NWYxNDBlMjZhNzQ4ZmY4ZWE0NTBjLi45OWI3ZjhiNjJhNGI3ZmVhZWYzZmM1
YjRhN2NlZDcxOGE1M2VkM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzYsMTEgKzM2LDEzIEBACiAjaW5jbHVkZSAiSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRl
ICJOUF9qc29iamVjdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ29uc29s
ZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXdC
YXNlLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJj
ZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgpAQCAtNTQsNyArNTYsMTEgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvU2Ny
aXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNGdW5j
dGlvbi5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRl
IDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CiAKQEAgLTg2
LDYgKzkyLDcgQEAgU2NyaXB0Q29udHJvbGxlcjo6U2NyaXB0Q29udHJvbGxlcihGcmFtZSYgZnJh
bWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9zb3VyY2VVUkwoMCkKICAgICAsIG1f
cGF1c2VkKGZhbHNlKQorICAgICwgbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5
bWJvbCgpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgLCBtX3dpbmRvd1Nj
cmlwdE5QT2JqZWN0KDApCiAjZW5kaWYKQEAgLTE3NSwxMSArMTgyLDEyOCBAQCBEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2Ny
aXB0U291cmNlQ29kZQogICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVjLT52
bSgpLCByZXR1cm5WYWx1ZSk7CiB9CiAKLURlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENv
bnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpIAor
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKIHsKICAgICByZXR1cm4gZXZhbHVhdGVJbldv
cmxkKHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKIH0KIAorc3RhdGljIHZv
aWQgaGFuZGxlTW9kdWxlTG9hZGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGVycm9y
LCBjb25zdCBQcml2YXRlTmFtZSYgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1i
b2wpCit7CisgICAgLy8gT25jZSByZXBvcnRlZCBlcnJvciBpcyBtYXJrZWQgYXMgbW9kdWxlTG9h
ZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wuCisgICAgLy8gRG9uJ3QgcmVwb3J0IGl0IGhl
cmUgYWdhaW4uCisgICAgaWYgKFN5bWJvbCogc3ltYm9sID0ganNEeW5hbWljQ2FzdDxTeW1ib2wq
PihlcnJvcikpIHsKKyAgICAgICAgaWYgKHN5bWJvbC0+cHJpdmF0ZU5hbWUoKSA9PSBtb2R1bGVM
b2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAvLyBGSVhNRTogQmVjYXVzZSB3ZSBoYXZlIG5vdCBzdXBwb3J0ZWQgdGhlICJj
cm9zc29yaWdpbiIgYXR0cmlidXRlIGluIHRoZSBtb2R1bGUgdGFnLAorICAgIC8vIHdlIHBhc3Mg
dGhlIG51bGxwdHIgdG8gcmVwb3J0RXhjZXB0aW9uJ3MgQ2FjaGVkU2NyaXB0KiBwYXJhbWV0ZXIu
IFdoZW4gcGFzc2luZyBudWxscHRyCisgICAgLy8gdG8gcmVwb3J0RXhjZXB0aW9uLCBXZWJDb3Jl
IGRvZXMgbm90IHNob3cgdGhlIGRldGFpbCBvZiB0aGUgZXJyb3IgaWYgdGhlIFVSTCBvZiB0aGUK
KyAgICAvLyBzb3VyY2UgZG9lcyBub3QgcGFzcyB0aGUgc2FtZSBvcmlnaW4gcG9saWN5LiBTbyB0
aGUgY3VycmVudCBiZWhhdmlvciBpcyBjb25zZXJ2YXRpdmU7CisgICAgLy8gb25seSB0aGUgbW9k
dWxlIGNvZGUgdGhhdCBVUkwgaXMgd2l0aGluIHRoZSBzYW1lIG9yaWdpbiBjYW4gcmVwb3J0IHRo
ZSBkZXRhaWxzIG9mIHRoZQorICAgIC8vIGVycm9yLiBPbmNlIHRoZSBzcGVjIGRlc2NyaWJlcyB0
aGUgYmVoYXZpb3IsIHdlIHdpbGwgZm9sbG93IGl0LgorICAgIHJlcG9ydEV4Y2VwdGlvbihleGVj
LCBlcnJvciwgbnVsbHB0cik7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVs
ZUluV29ybGQoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5h
bWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29y
bGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdv
cmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMo
KTsKKworICAgIGluaXRNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0
YXRlOjpsb2FkTW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUpLCB3b3JsZCk7Cit9CisKK3ZvaWQgU2Ny
aXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0
IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sKKyAgICBsb2FkTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFw
aCwgbW9kdWxlTmFtZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwg
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2lu
ZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgaW5pdE1vZHVsZUdyYXBo
KG1vZHVsZUdyYXBoLCBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUoZXhlYywgc291
cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSksIHdvcmxkKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9s
bGVyOjpsb2FkTW9kdWxlKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU2NyaXB0U291
cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBsb2FkTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFw
aCwgc291cmNlQ29kZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmIG1v
ZHVsZUdyYXBoLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBs
b2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dT
aGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9i
YWxFeGVjKCk7CisKKyAgICBKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSA9IEpTTWFpblRocmVh
ZEV4ZWNTdGF0ZTo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKGV4ZWMsIElkZW50aWZpZXI6OmZyb21V
aWQoJmV4ZWMtPnZtKCksIG1vZHVsZUdyYXBoLm1vZHVsZUtleSgpKSk7CisKKyAgICBXZWFrUHRy
PEVsZW1lbnQ+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha0VsZW1lbnRQdHIoKSk7CisgICAgSlNG
dW5jdGlvbiogZnVsZmlsbEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhl
Yy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dlYWtQdHJdKEV4ZWNTdGF0
ZSopIHsKKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQo
KSkKKyAgICAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSkt
Pm1vZHVsZUdyYXBoKCktPm5vdGlmeUV2YWx1YXRlZCgpOworICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgUHJpdmF0ZU5hbWUgbW9k
dWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgPSBtX21vZHVsZUxvYWRlckFscmVh
ZHlSZXBvcnRlZEVycm9yU3ltYm9sOworICAgIEpTRnVuY3Rpb24qIHJlamVjdEhhbmRsZXIgPSBK
U05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAx
LCBTdHJpbmcoKSwgW21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLCB3ZWFr
UHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVt
ZW50ID0gd2Vha1B0ci5nZXQoKSkKKyAgICAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2li
bGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUV2YWx1YXRlZCgpOworICAg
ICAgICBoYW5kbGVNb2R1bGVMb2FkZXJFcnJvcihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgbW9k
dWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOworICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhl
bihleGVjLCBmdWxmaWxsSGFuZGxlciwgcmVqZWN0SGFuZGxlcik7Cit9CisKK3ZvaWQgU2NyaXB0
Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFw
aCkKK3sKKyAgICBsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKG1vZHVsZUdyYXBoLCBtYWlu
VGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlw
dENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVs
ZVJlY29yZCogbW9kdWxlUmVjb3JkLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpT
TG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgY29uc3QgU291cmNlQ29kZSYganNT
b3VyY2VDb2RlID0gbW9kdWxlUmVjb3JkLT5zb3VyY2VDb2RlKCk7CisKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKyAgICBjb25zdCBTdHJpbmcqIHNhdmVk
U291cmNlVVJMID0gbV9zb3VyY2VVUkw7CisgICAgbV9zb3VyY2VVUkwgPSAmc291cmNlVVJMLnN0
cmluZygpOworCisgICAgUmVmPEZyYW1lPiBwcm90ZWN0KG1fZnJhbWUpOworCisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTCwganNTb3VyY2VDb2RlLmZp
cnN0TGluZSgpKTsKKworICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBtb2R1bGVSZWNvcmQtPmV2
YWx1YXRlKGV4ZWMpOworICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlv
bjsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIGV2YWx1YXRpb25FeGNl
cHRpb24gPSBleGVjLT52bSgpLmV4Y2VwdGlvbigpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRFdmFsdWF0ZVNjcmlwdChjb29raWUsIG1fZnJhbWUpOworCisgICAgaWYgKGV2
YWx1YXRpb25FeGNlcHRpb24pIHsKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV2YWx1
YXRpb25FeGNlcHRpb24sIG51bGxwdHIpOworICAgICAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291
cmNlVVJMOworICAgICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoKTsKKyAgICB9
CisKKyAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOworICAgIHJldHVybiBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZShleGVjLT52bSgpLCByZXR1cm5WYWx1ZSk7Cit9CisKK0RlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKGNvbnN0IFVS
TCYgc291cmNlVVJMLCBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkKQoreworICAgIHJldHVy
biBldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsIG1vZHVsZVJlY29yZCwgbWFpblRocmVhZE5vcm1h
bFdvcmxkKCkpOworfQorCiBSZWY8RE9NV3JhcHBlcldvcmxkPiBTY3JpcHRDb250cm9sbGVyOjpj
cmVhdGVXb3JsZCgpCiB7CiAgICAgcmV0dXJuIERPTVdyYXBwZXJXb3JsZDo6Y3JlYXRlKEpTRE9N
V2luZG93Ojpjb21tb25WTSgpKTsKQEAgLTI3Miw2ICszOTYsNDEgQEAgSlNET01XaW5kb3dTaGVs
bCogU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdChET01XcmFwcGVyV29ybGQmIHdvcmxkKQog
ICAgIHJldHVybiB3aW5kb3dTaGVsbDsKIH0KIAorc3RhdGljIElkZW50aWZpZXIganNWYWx1ZVRv
TW9kdWxlS2V5KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFs
dWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21VaWQoanNDYXN0
PFN5bWJvbCo+KHZhbHVlKS0+cHJpdmF0ZU5hbWUoKSk7CisgICAgQVNTRVJUKHZhbHVlLmlzU3Ry
aW5nKCkpOworICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGpzQ2FzdDxK
U1N0cmluZyo+KHZhbHVlKS0+dmFsdWUoZXhlYykpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xs
ZXI6OmluaXRNb2R1bGVHcmFwaChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIEpTSW50ZXJuYWxQ
cm9taXNlKiBwcm9taXNlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTRE9NV2lu
ZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgV2Vha1B0cjxFbGVtZW50
PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtFbGVtZW50UHRyKCkpOworICAgIEpTRnVuY3Rpb24q
IGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCks
IHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFt3ZWFrUHRyXShFeGVjU3RhdGUqIGV4ZWMp
IHsKKyAgICAgICAgLy8gTW9kdWxlR3JhcGgsIHNjcmlwdCBlbGVtZW50IGFuZCBkb2N1bWVudCBt
YXkgYmUgZGVzdHJveWVkIGR1cmluZyBsb2FkaW5nIHRoZSBtb2R1bGUuCisgICAgICAgIC8vIElu
IHRoaXMgY2FzZSwgd2Ugc2hvdWxkIG5vdCBleGVjdXRlIG1vZHVsZSBib2R5LgorICAgICAgICBp
ZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFrUHRyLmdldCgpKSB7CisgICAgICAgICAg
ICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtleShleGVjLCBleGVjLT5h
cmd1bWVudCgwKSk7CisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1l
bnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlMb2FkZWQobW9kdWxlS2V5LmltcGwoKSk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKKyAgICB9KTsKKworICAgIFByaXZhdGVOYW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sID0gbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsK
KyAgICBKU0Z1bmN0aW9uKiByZWplY3RIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3Jl
YXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2Fk
ZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCwgd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7
CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisg
ICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1
bGVHcmFwaCgpLT5ub3RpZnlFcnJvcmVkKCk7CisgICAgICAgIGhhbmRsZU1vZHVsZUxvYWRlckVy
cm9yKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRF
cnJvclN5bWJvbCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgfSk7CisKKyAgICBwcm9taXNlLT50aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCBy
ZWplY3RIYW5kbGVyKTsKK30KKwogVGV4dFBvc2l0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2ZW50
SGFuZGxlclBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogSWYgd2UgYXJlIG5vdCBj
dXJyZW50bHkgcGFyc2luZywgd2Ugc2hvdWxkIHVzZSBvdXIgY3VycmVudCBsb2NhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDA3YzUz
YjdjOGVkZmI0ZTI4ZjVjYTEzYWEyYzRlMDU1OTRlZjUxMjIuLjkwMWI1M2ViYWY1NGM0NzhmN2Q0
MWVmMWRjNTE1MGMxYjA4NWE5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmgKQEAgLTQ0LDYgKzQ0LDkgQEAgY2xhc3MgU2NyaXB0VmFsdWU7CiAK
IG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0OworICAgIGNsYXNzIEpT
TW9kdWxlUmVjb3JkOworICAgIGNsYXNzIEpTSW50ZXJuYWxQcm9taXNlOworCiAgICAgY2xhc3Mg
RXhlY1N0YXRlOwogCiAgICAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKQEAgLTU3LDYgKzYwLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CiBj
bGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2NsYXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0
U291cmNlQ29kZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgV2lkZ2V0OwpAQCAtMTE1
LDYgKzExOSwxNyBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAgICBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CiAgICAgRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUm
LCBET01XcmFwcGVyV29ybGQmKTsKIAorICAgIHZvaWQgbG9hZE1vZHVsZUluV29ybGQoTW9kdWxl
R3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYpOworICAg
IHZvaWQgbG9hZE1vZHVsZShNb2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7
CisgICAgdm9pZCBsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGUoTW9kdWxl
R3JhcGgmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisKKyAgICB2b2lkIGxpbmtBbmRFdmFs
dWF0ZU1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmICwgRE9NV3JhcHBlcldvcmxkJik7CisgICAg
dm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoTW9kdWxlR3JhcGgmKTsKKworICAgIERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6SlNNb2R1bGVS
ZWNvcmQqLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBl
dmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpTTW9kdWxlUmVjb3JkKik7CisKICAgICBX
VEY6OlRleHRQb3NpdGlvbiBldmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0OwogCiAgICAgdm9p
ZCBlbmFibGVFdmFsKCk7CkBAIC0xMzUsNiArMTUwLDggQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxl
ciB7CiAKICAgICBjb25zdCBTdHJpbmcqIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlVVJMOyB9IC8vIDAgaWYgd2UgYXJlIG5vdCBldmFsdWF0aW5nIGFueSBzY3JpcHQKIAorICAg
IGNvbnN0IEpTQzo6UHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9y
U3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJv
clN5bWJvbDsgfQorCiAgICAgdm9pZCBjbGVhcldpbmRvd1NoZWxsKERPTVdpbmRvdyogbmV3RE9N
V2luZG93LCBib29sIGdvaW5nSW50b1BhZ2VDYWNoZSk7CiAgICAgdm9pZCB1cGRhdGVEb2N1bWVu
dCgpOwogCkBAIC0xNzAsNiArMTg3LDcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAKIHBy
aXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3dTaGVsbCogaW5pdFNjcmlwdChE
T01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGluaXRNb2R1bGVHcmFwaChNb2R1bGVHcmFwaCYs
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqLCBET01XcmFwcGVyV29ybGQmKTsKIAogICAgIHZvaWQg
ZGlzY29ubmVjdFBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwogCkBAIC0xNzgsNiArMTk2LDcgQEAg
Y2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAgICAgY29uc3QgU3RyaW5nKiBtX3NvdXJjZVVSTDsK
IAogICAgIGJvb2wgbV9wYXVzZWQ7CisgICAgSlNDOjpQcml2YXRlTmFtZSBtX21vZHVsZUxvYWRl
ckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOwogCiAgICAgLy8gVGhlIHJvb3Qgb2JqZWN0IHVz
ZWQgZm9yIG9iamVjdHMgYm91bmQgb3V0c2lkZSB0aGUgY29udGV4dCBvZiBhIHBsdWdpbiwgc3Vj
aAogICAgIC8vIGFzIE5QQVBJIHBsdWdpbnMuIFRoZSBwbHVnaW5zIHVzaW5nIHRoZXNlIG9iamVj
dHMgcHJldmVudCBhIHBhZ2UgZnJvbSBiZWluZyBjYWNoZWQgc28gdGhleQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggMjE3OTNjMjJmMDUzZmI3YjA2NTY4MTdjZmM3ZGFiMzE4NGFlOGJkNC4u
Mzg2MWZlODUzYjBlYjkyNmFkNWM3MDljMzM5M2Q5NmU2NDU1ZWJkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgi
CiAjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hl
ci5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHMuaCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKICNpbmNsdWRlICJO
ZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIgpAQCAtNDYxLDYgKzQ2Miw3IEBAIERvY3VtZW50OjpE
b2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1bnNpZ25lZCBkb2N1bWVudENs
YXNzZXMsIHVuc2lnCiAgICAgLCBtX3N0YXJ0VGltZShzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2Nr
Ojpub3coKSkKICAgICAsIG1fb3Zlck1pbmltdW1MYXlvdXRUaHJlc2hvbGQoZmFsc2UpCiAgICAg
LCBtX3NjcmlwdFJ1bm5lcihzdGQ6Om1ha2VfdW5pcXVlPFNjcmlwdFJ1bm5lcj4oKnRoaXMpKQor
ICAgICwgbV9tb2R1bGVMb2FkZXIoc3RkOjptYWtlX3VuaXF1ZTxNb2R1bGVMb2FkZXI+KCp0aGlz
KSkKICAgICAsIG1feG1sVmVyc2lvbihBU0NJSUxpdGVyYWwoIjEuMCIpKQogICAgICwgbV94bWxT
dGFuZGFsb25lKFN0YW5kYWxvbmVVbnNwZWNpZmllZCkKICAgICAsIG1faGFzWE1MRGVjbGFyYXRp
b24oZmFsc2UpCkBAIC02MDIsNiArNjA0LDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAg
ICAgIG1fZG9tV2luZG93LT5yZXNldFVubGVzc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSgpOwogCiAg
ICAgbV9zY3JpcHRSdW5uZXIgPSBudWxscHRyOworICAgIG1fbW9kdWxlTG9hZGVyID0gbnVsbHB0
cjsKIAogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggNzRjZWFhOTZiYzkyZjQ3ODE3Y2ViYjVmM2NmOTM5MGExOWE3N2Q2OS4uZjU3YzQxMzFm
ZGNlNTVjY2NkNGU2MDgwZGJiNTE5NTNjNGIyN2MzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTEyOCw2ICsxMjgsNyBAQCBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFQ
bGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3MgTWVkaWFR
dWVyeU1hdGNoZXI7CitjbGFzcyBNb2R1bGVMb2FkZXI7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRGbG93Q29sbGVjdGlvbjsKIGNsYXNzIE5vZGVGaWx0
ZXI7CkBAIC05MjcsNiArOTI4LDcgQEAgY2xhc3MgRG9jdW1lbnQgOiBwdWJsaWMgQ29udGFpbmVy
Tm9kZSwgcHVibGljIFRyZWVTY29wZSwgcHVibGljIFNjcmlwdEV4ZWN1dGlvbkMKICAgICBEb2N1
bWVudCYgdG9wRG9jdW1lbnQoKSBjb25zdDsKICAgICAKICAgICBTY3JpcHRSdW5uZXIqIHNjcmlw
dFJ1bm5lcigpIHsgcmV0dXJuIG1fc2NyaXB0UnVubmVyLmdldCgpOyB9CisgICAgTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIoKSB7IHJldHVybiBtX21vZHVsZUxvYWRlci5nZXQoKTsgfQogCiAg
ICAgSFRNTFNjcmlwdEVsZW1lbnQqIGN1cnJlbnRTY3JpcHQoKSBjb25zdCB7IHJldHVybiAhbV9j
dXJyZW50U2NyaXB0U3RhY2suaXNFbXB0eSgpID8gbV9jdXJyZW50U2NyaXB0U3RhY2subGFzdCgp
LmdldCgpIDogMDsgfQogICAgIHZvaWQgcHVzaEN1cnJlbnRTY3JpcHQoUGFzc1JlZlB0cjxIVE1M
U2NyaXB0RWxlbWVudD4pOwpAQCAtMTUxMCw2ICsxNTEyLDcgQEAgY2xhc3MgRG9jdW1lbnQgOiBw
dWJsaWMgQ29udGFpbmVyTm9kZSwgcHVibGljIFRyZWVTY29wZSwgcHVibGljIFNjcmlwdEV4ZWN1
dGlvbkMKICAgICBib29sIG1fb3Zlck1pbmltdW1MYXlvdXRUaHJlc2hvbGQ7CiAgICAgCiAgICAg
c3RkOjp1bmlxdWVfcHRyPFNjcmlwdFJ1bm5lcj4gbV9zY3JpcHRSdW5uZXI7CisgICAgc3RkOjp1
bmlxdWVfcHRyPE1vZHVsZUxvYWRlcj4gbV9tb2R1bGVMb2FkZXI7CiAKICAgICBWZWN0b3I8UmVm
UHRyPEhUTUxTY3JpcHRFbGVtZW50Pj4gbV9jdXJyZW50U2NyaXB0U3RhY2s7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTW9kdWxlR3JhcGguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0MTdhMmNkNGU4YjFlNDZiMDUwMjEzYjMw
NTk2MTNjNzcyNmFlODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9k
dWxlR3JhcGguY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKworI2luY2x1ZGUgIkRPTVdyYXBwZXJX
b3JsZC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk1v
ZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCisjaW5jbHVkZSAiU2Ny
aXB0U291cmNlQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUdyYXBoOjpN
b2R1bGVHcmFwaChFbGVtZW50JiBlbGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCisg
ICAgLCBtX3dlYWtQdHJGYWN0b3J5KCZlbGVtZW50KQoreworfQorCit2b2lkIE1vZHVsZUdyYXBo
Ojpub3RpZnlMb2FkZWQoVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSkKK3sKKyAgICBtX21v
ZHVsZUtleSA9IG1vZHVsZUtleTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5u
ZXIoKS0+bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSh0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZt
X2VsZW1lbnQpKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXJyb3JlZCgpCit7Cisg
ICAgbV9lcnJvcmVkID0gdHJ1ZTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5u
ZXIoKS0+bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSh0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZt
X2VsZW1lbnQpKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6ZXZhbHVhdGUoKQoreworICAgIGlm
IChtX2Vycm9yZWQpCisgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1fZWxlbWVu
dCktPmRpc3BhdGNoRXJyb3JFdmVudCgpOworICAgIGVsc2UgaWYgKEZyYW1lKiBmcmFtZSA9IG1f
ZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5saW5r
QW5kRXZhbHVhdGVNb2R1bGUoKnRoaXMpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpub3RpZnlF
dmFsdWF0ZWQoKQoreworICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1fZWxlbWVudCkt
PmRpc3BhdGNoTG9hZEV2ZW50KCk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6OmxvYWQoY29uc3Qg
U3RyaW5nJiBtb2R1bGVOYW1lKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQuZG9jdW1lbnQoKS5m
cmFtZSgpKTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQoKS5sb2Fk
TW9kdWxlKCp0aGlzLCBtb2R1bGVOYW1lKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bG9hZChj
b25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIEFTU0VSVChtX2VsZW1l
bnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgp
LT5zY3JpcHQoKS5sb2FkTW9kdWxlKCp0aGlzLCBzb3VyY2VDb2RlKTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTW9kdWxlR3JhcGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTZlODk3Y2JjMDI4MWU1ZWYxNTgxODBkY2Fl
OWJmNjJiNjZhMGU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVs
ZUdyYXBoLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9kdWxlR3Jh
cGhfaAorI2RlZmluZSBNb2R1bGVHcmFwaF9oCisKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgi
CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRWxlbWVudDsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CisKKy8vIEtl
ZXAgbGlmZXRpbWUgb2YgYSBNb2R1bGVHcmFwaCB0aGUgc2FtZSB0byBhIFNjcmlwdEVsZW1lbnQu
CitjbGFzcyBNb2R1bGVHcmFwaCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxlR3Jh
cGgpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBNb2R1
bGVHcmFwaChFbGVtZW50Jik7CisKKyAgICBFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9l
bGVtZW50OyB9CisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIHsgcmV0dXJuIG1f
bW9kdWxlS2V5LmdldCgpOyB9CisKKyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiBtb2R1bGVO
YW1lKTsKKyAgICB2b2lkIGxvYWQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworICAgIHZvaWQg
ZXZhbHVhdGUoKTsKKworICAgIFdlYWtQdHI8RWxlbWVudD4gd2Vha0VsZW1lbnRQdHIoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAg
IH0KKworICAgIHZvaWQgbm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkp
OworICAgIHZvaWQgbm90aWZ5RXJyb3JlZCgpOworCisgICAgdm9pZCBub3RpZnlFdmFsdWF0ZWQo
KTsKKworICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JlZDsg
fQorICAgIGJvb2wgaXNMb2FkZWQoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleTsgfQorCitw
cml2YXRlOgorCisgICAgRWxlbWVudCYgbV9lbGVtZW50OworICAgIFJlZlB0cjxVbmlxdWVkU3Ry
aW5nSW1wbD4gbV9tb2R1bGVLZXk7CisgICAgV2Vha1B0ckZhY3Rvcnk8RWxlbWVudD4gbV93ZWFr
UHRyRmFjdG9yeTsKKyAgICBib29sIG1fZXJyb3JlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1bGVMb2FkZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY2YmJlY2UxZDM1ZTFhNDc2M2JmOWViZWJmMGYwYzEy
Y2RiZWYxZDcuLjJlYzZiZGU5ZGIyZjdkNzI2NTAwMzVhOWIxMmRiYzY4NWI2NzM2MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNv
dW50SW5jcmVtZW50ZXIuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVk
ZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCkBAIC0xNjEsNiArMTYyLDEwIEBAIGJv
b2wgU2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3VwcG9ydGVkKExlZ2FjeVR5cGVTdXBwb3J0
IHN1cHBvcnRMZWdhY3lUeXBlcykKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0gZWxz
ZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUodHlw
ZS5zdHJpcFdoaXRlU3BhY2UoKS5sb3dlcigpKSB8fCAoc3VwcG9ydExlZ2FjeVR5cGVzID09IEFs
bG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSAmJiBpc0xlZ2FjeVN1cHBvcnRlZEphdmFTY3Jp
cHRMYW5ndWFnZSh0eXBlKSkpCiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVOQUJMRShFUzZf
TU9EVUxFUykKKyAgICBlbHNlIGlmICh0eXBlID09ICJtb2R1bGUiKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjE3LDYgKzIyMiw5IEBA
IGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNj
cmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgZWxzZQogICAgICAgICBtX2NoYXJhY3RlckVu
Y29kaW5nID0gZG9jdW1lbnQuY2hhcnNldCgpOwogCisgICAgaWYgKGlzTW9kdWxlVHlwZSgpKQor
ICAgICAgICByZXR1cm4gbG9hZE1vZHVsZShzY3JpcHRTdGFydFBvc2l0aW9uKTsKKwogICAgIGlm
IChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkKICAgICAgICAgaWYgKCFyZXF1ZXN0U2NyaXB0KHNvdXJj
ZUF0dHJpYnV0ZVZhbHVlKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzE3LDYg
KzMyNSw5IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KCkKICAgICAgICAg
ICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CiAgICAgICAgIG1fY2FjaGVk
U2NyaXB0ID0gMDsKICAgICB9CisgICAgLy8gRklYTUU6IFRoZSBtb2R1bGUgbG9hZGVyIHNob3Vs
ZCBoYXZlIHRoZSBtZWNoYW5pc20gdG8gc3RvcCBsb2FkaW5nLgorICAgIC8vIFRoZSBjdXJyZW50
IGxvYWRlciBzcGVjIGRvZXMgbm90IGhhdmUgdGhpcy4gT25jZSBpdCBpcyBzcGVjaWZpZWQKKyAg
ICAvLyB3ZSB3aWxsIGludHJvZHVjZSB0aGlzIGZlYXR1cmUuCiB9CiAKIHZvaWQgU2NyaXB0RWxl
bWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKQEAgLTMzMiw2ICszNDMs
NTcgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2Ny
aXB0KQogICAgIGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogfQogCitib29sIFNj
cmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBv
c2l0aW9uKQoreworICAgIC8vIFRoZSBicm93c2VyIG1vZHVsZSBsb2FkZXIgbG9hZHMgdGhlIG1v
ZHVsZSBzb3VyY2VzLgorICAgIC8vIFNpbmNlIHRoZSBtb2R1bGUgaW52b2x2ZXMgbG9hZGluZyBv
ZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMgYW5kIHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBkb2VzIG5v
dCBoYXZlIGNvcnJlc3BvbmRpbmcgc2NyaXB0IGVsZW1lbnRzLAorICAgIC8vIHRoZSBmdW5jdGlv
bmFsaXR5IG9mIGxvYWRpbmcgbW9kdWxlcyBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUgc2NyaXB0IGVs
ZW1lbnQuCisgICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKSB7CisgICAgICAgIFN0cmluZyBz
b3VyY2VVcmwgPSBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpOworICAgICAgICBSZWY8RG9jdW1lbnQ+
IG9yaWdpbmFsRG9jdW1lbnQobV9lbGVtZW50LmRvY3VtZW50KCkpOworICAgICAgICBpZiAoIW1f
ZWxlbWVudC5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVcmwpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIFNjcmlwdCBlbGVtZW50IG1heSBiZSBkZXRhY2hl
ZCBhbmQgYXR0YWNoZWQgdG8gYSBkaWZmZXJlbnQgZG9jdW1lbnQgd2hpbGUgZXhlY3V0aW5nIHRo
ZSBldmVudCBsaXN0ZW5lci4KKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuaW5Eb2N1bWVudCgpIHx8
ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChzdHJpcExlYWRpbmdBbmRUcmFpbGlu
Z0hUTUxTcGFjZXMoc291cmNlVXJsKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNo
RXJyb3JFdmVudCgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgLy8gRklYTUU6IFNob3VsZCBzdXBwb3J0IGNyb3NzLW9yaWdpbiBtb2RlIGluIHRoZSBt
b2R1bGUgdGFnLgorICAgICAgICAvLyBIb3dldmVyIHdlIGRvbid0IGhhdmUgdGhlIHBvbGljeSB0
byBhcHBseSB0aGlzIG1vZGUgdG8gdGhlIHJlc291cmNlcyBvZiB0aGUgZGVwZW5kZW50IG1vZHVs
ZXMuCisgICAgICAgIC8vIFByb3ZpZGVkIG11bHRpcGxlIG1vZHVsZSB0YWdzLAorICAgICAgICAv
LworICAgICAgICAvLyAgIEE6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiIgY3Jvc3Nv
cmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CisgICAgICAgIC8vICAgQjogPHNjcmlwdCB0eXBl
PSJtb2R1bGUiIHNyYz0iLi4uIj48L3NjcmlwdD4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gJ0En
IGhhcyB0aGUgImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUuIEJ1dCAnQicgZG9lcyBub3QgaGF2ZSBp
dC4KKyAgICAgICAgLy8gSG93ZXZlciwgRVM2IG1vZHVsZXMgYWxsb3cgJ0EnIGFuZCAnQicgdG8g
bG9hZCB0aGUgc2FtZSBtb2R1bGUgYW5kIGl0IHdpbGwgYmUgY2FjaGVkIGluIHRoZQorICAgICAg
ICAvLyBtb2R1bGUgbG9hZGVyLiBJbiB0aGF0IGNhc2UsIGl0IGlzIGNvbnRyb3ZlcnNpYWwgdGhh
dCB3aGljaCAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSB3aWxsIGJlCisgICAgICAgIC8vIGFwcGxp
ZWQgdG8gdGhlIG1vZHVsZSBsb2FkZWQgYnkgdGhlIGJvdGguIE9uY2UgdGhlIHNwZWMgb2YgdGhl
IG1vZHVsZSBsb2FkZXIgaXMgZml4ZWQsIHdlCisgICAgICAgIC8vIHNob3VsZCBmb2xsb3cgaXQu
CisKKyAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgbV9tb2R1bGVH
cmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7CisgICAgICAg
IG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZU1vZHVsZUdyYXBoRm9y
RXhlY3V0aW9uKHRoaXMsICptX21vZHVsZUdyYXBoKTsKKyAgICAgICAgbV9tb2R1bGVHcmFwaC0+
bG9hZChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgaWYgKCFtX2VsZW1lbnQuZG9jdW1lbnQoKS5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+YWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCksIG1fc3RhcnRM
aW5lTnVtYmVyLCBtX2VsZW1lbnQuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSkpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgLy8gUmVzZXQgbGluZSBudW1iZXJpbmcgZm9yIG5lc3RlZCB3
cml0ZXMuCisgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gbV9lbGVtZW50LmRvY3VtZW50KCku
aXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlvbigpIDogc2NyaXB0U3RhcnRQb3NpdGlv
bjsKKyAgICBtX21vZHVsZUdyYXBoID0gc3RkOjptYWtlX3VuaXF1ZTxNb2R1bGVHcmFwaD4obV9l
bGVtZW50KTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+cXVldWVN
b2R1bGVHcmFwaEZvckV4ZWN1dGlvbih0aGlzLCAqbV9tb2R1bGVHcmFwaCk7CisgICAgbV9tb2R1
bGVHcmFwaC0+bG9hZChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgbV9lbGVtZW50
LmRvY3VtZW50KCkudXJsKCksIHBvc2l0aW9uKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
KQogewogICAgIEFTU0VSVCghbV93aWxsQmVQYXJzZXJFeGVjdXRlZCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuaAppbmRleCBiN2U3M2QwZGVlODNkMzI0ZTg3MmY3YmM0YzFiOTMzZGM5NmMx
MTJhLi42ZTVjMjE0Mjk0ZDgxOTY4Yzg2ZTBkMDdhNjk3MDc0Mzk0YTFjOWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIEVsZW1l
bnQ7CitjbGFzcyBNb2R1bGVHcmFwaDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBTY3Jp
cHRTb3VyY2VDb2RlOwogCkBAIC01OSw2ICs2MCw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBw
cml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIHJlYWR5VG9CZVBhcnNlckV4
ZWN1dGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZDsgfQogICAg
IGJvb2wgd2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3dpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nOyB9CiAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQoKSB7IHJldHVybiBt
X2NhY2hlZFNjcmlwdDsgfQorICAgIE1vZHVsZUdyYXBoKiBtb2R1bGVHcmFwaCgpIHsgcmV0dXJu
IG1fbW9kdWxlR3JhcGguZ2V0KCk7IH0KIAogcHJvdGVjdGVkOgogICAgIFNjcmlwdEVsZW1lbnQo
RWxlbWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyLCBib29sIGlzRXZhbHVhdGVkKTsKQEAgLTgy
LDYgKzg0LDggQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VD
bGllbnQgewogICAgIGJvb2wgcmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7
CiAgICAgdm9pZCBzdG9wTG9hZFJlcXVlc3QoKTsKIAorICAgIGJvb2wgbG9hZE1vZHVsZShjb25z
dCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworCiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFs
IFN0cmluZyBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKQEAgLTkzLDYgKzk3LDcg
QEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewog
ICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlz
TW9kdWxlVHlwZSgpIGNvbnN0ID0gMDsKIAogICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0OwpAQCAtMTA5
LDYgKzExNCw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNl
Q2xpZW50IHsKICAgICBib29sIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sIDogMTsKICAgICBT
dHJpbmcgbV9jaGFyYWN0ZXJFbmNvZGluZzsKICAgICBTdHJpbmcgbV9mYWxsYmFja0NoYXJhY3Rl
ckVuY29kaW5nOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVHcmFwaD4gbV9tb2R1bGVHcmFw
aDsKIH07CiAKIFNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoRWxlbWVu
dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcAppbmRleCA5NjM2OTgwNGFkOGYwNzRi
ZDczNmFmYmZiNTAyYTQ1ZmM5MTU3NjAxLi5hYjFkODhlYWY3NTc1ZDM0NDZmMzQwYTMxNWVmYTAx
MjM0YTJmNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNp
bmNsdWRlICJNaWNyb1Rhc2suaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUg
IlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKQEAgLTQ4LDYg
KzQ5LDEwIEBAIFNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcigpCiAgICAgICAgIG1fZG9jdW1l
bnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX3BlbmRpbmdBc3luY1NjcmlwdHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZG9j
dW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kp
CisgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5z
aXplKCk7ICsraSkKKyAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNv
dW50KCk7CiB9CiAKIHZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihT
Y3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRT
Y3JpcHQ+IGNhY2hlZFNjcmlwdCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQpAQCAtNzEs
NiArNzYsMTggQEAgdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNj
cmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFIKICAgICB9CiB9CiAKK3ZvaWQgU2Ny
aXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNj
cmlwdEVsZW1lbnQsIE1vZHVsZUdyYXBoJikKK3sKKyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7
CisKKyAgICBFbGVtZW50JiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOworICAg
IEFTU0VSVChlbGVtZW50LmluRG9jdW1lbnQoKSk7CisKKyAgICBtX2RvY3VtZW50LmluY3JlbWVu
dExvYWRFdmVudERlbGF5Q291bnQoKTsKKworICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1l
bnRzLmFkZCgmZWxlbWVudCk7Cit9CisKIHZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKIHsK
ICAgICBtX3RpbWVyLnN0b3AoKTsKQEAgLTk3LDYgKzExNCwyNiBAQCB2b2lkIFNjcmlwdFJ1bm5l
cjo6bm90aWZ5U2NyaXB0UmVhZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgRXhlY3V0
aW9uVHlwZQogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIFNjcmlwdFJ1
bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeShTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50
KQoreworICAgIEFTU0VSVF9VTlVTRUQoc2NyaXB0RWxlbWVudCwgbV9wZW5kaW5nTW9kdWxlU2Ny
aXB0RWxlbWVudHMuY29udGFpbnMoJnNjcmlwdEVsZW1lbnQtPmVsZW1lbnQoKSkpOworCisgICAg
Ly8gTGlzdEhhc2hTZXQgY29ycmVjdGx5IHByZXNlcnZlcyB0aGUgaW5zZXJ0aW9uIG9yZGVyLgor
ICAgIC8vIEFuZCBpdCBhbGxvdyB1cyB0byByZW1vdmUgZWxlbWVudCBkdXJpbmcgaXRlcmF0aW9u
LgorICAgIGF1dG8gaXRlcmF0b3IgPSBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5iZWdp
bigpOworICAgIHdoaWxlIChpdGVyYXRvciAhPSBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50
cy5lbmQoKSkgeworICAgICAgICBNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGggPSB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKGl0ZXJhdG9yLT5nZXQoKSktPm1vZHVsZUdyYXBoKCk7CisgICAgICAg
IGlmICghbW9kdWxlR3JhcGgtPmVycm9yT2NjdXJyZWQoKSAmJiAhbW9kdWxlR3JhcGgtPmlzTG9h
ZGVkKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgYXV0byBwcmV2aW91cyA9IGl0ZXJh
dG9yOworICAgICAgICArK2l0ZXJhdG9yOworICAgICAgICBtX21vZHVsZVNjcmlwdEVsZW1lbnRz
VG9FeGVjdXRlU29vbi5hcHBlbmQoKnByZXZpb3VzKTsKKyAgICAgICAgbV9wZW5kaW5nTW9kdWxl
U2NyaXB0RWxlbWVudHMucmVtb3ZlKHByZXZpb3VzKTsKKyAgICB9CisgICAgaWYgKCFtX21vZHVs
ZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkpCisgICAgICAgIG1fdGltZXIu
c3RhcnRPbmVTaG90KDApOworfQorCiB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCgpCiB7
CiAgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwpAQCAtMTIxLDYgKzE1OCwy
MSBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCgpCiAgICAgICAgIHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPmV4ZWN1dGUoY2FjaGVkU2NyaXB0KTsKICAg
ICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgfQor
CisgICAgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4gbW9kdWxlU2NyaXB0RWxlbWVudHM7CisgICAg
bW9kdWxlU2NyaXB0RWxlbWVudHMuc3dhcChtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRl
U29vbik7CisKKyAgICBmb3IgKFJlZlB0cjxFbGVtZW50PiYgcGVuZGluZ01vZHVsZVNjcmlwdEVs
ZW1lbnQgOiBtb2R1bGVTY3JpcHRFbGVtZW50cykgeworICAgICAgICBSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudDsKKyAgICAgICAgcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnQuc3dhcChlbGVtZW50
KTsKKyAgICAgICAgQVNTRVJUKGVsZW1lbnQpOworICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKKyAgICAgICAgaWYgKCFl
bGVtZW50KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHRvU2NyaXB0RWxlbWVudElm
UG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPmV2YWx1YXRlKCk7CisgICAg
ICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIH0KKwog
ICAgIE1pY3JvVGFza1F1ZXVlOjpzaW5nbGV0b24oKS5ydW5NaWNyb1Rhc2tzKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRSdW5uZXIuaAppbmRleCAyN2NkYmY4YjNhZjU2OTQ2MmU1YjlhZWIxNmNk
NzY1MDUwODkxZTBkLi4xMjIxNDg1ZTBlNTdkZmE2M2U0NDRmNDgyOWFhYzcwNGUxYTE1OWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CkBAIC0zNyw2ICszOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OworY2xhc3Mg
TW9kdWxlR3JhcGg7CiBjbGFzcyBQZW5kaW5nU2NyaXB0OwogY2xhc3MgU2NyaXB0RWxlbWVudDsK
IApAQCAtNDgsMTEgKzUxLDE0IEBAIGNsYXNzIFNjcmlwdFJ1bm5lciB7CiAKICAgICBlbnVtIEV4
ZWN1dGlvblR5cGUgeyBBU1lOQ19FWEVDVVRJT04sIElOX09SREVSX0VYRUNVVElPTiB9OwogICAg
IHZvaWQgcXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4sIEV4ZWN1dGlvblR5cGUpOwotICAgIGJvb2wgaGFzUGVu
ZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0Vt
cHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRp
bmdBc3luY1NjcmlwdHMuaXNFbXB0eSgpOyB9CisgICAgdm9pZCBxdWV1ZU1vZHVsZUdyYXBoRm9y
RXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBNb2R1bGVHcmFwaCYpOworICAgIGJvb2wgaGFzUGVu
ZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0Vt
cHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRp
bmdBc3luY1NjcmlwdHMuaXNFbXB0eSgpIHx8ICFtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVj
dXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmlzRW1w
dHkoKTsgfQogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAgICAgdm9p
ZCBub3RpZnlTY3JpcHRSZWFkeShTY3JpcHRFbGVtZW50KiwgRXhlY3V0aW9uVHlwZSk7CiAKKyAg
ICB2b2lkIG5vdGlmeU1vZHVsZUdyYXBoUmVhZHkoU2NyaXB0RWxlbWVudCopOworCiBwcml2YXRl
OgogICAgIHZvaWQgdGltZXJGaXJlZCgpOwogCkBAIC02MCw2ICs2Niw4IEBAIGNsYXNzIFNjcmlw
dFJ1bm5lciB7CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0ZUlu
T3JkZXI7CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb247
IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3Nl
dC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLWFzLXNvb24tYXMtcG9zc2libGUKICAgICBI
YXNoTWFwPFNjcmlwdEVsZW1lbnQqLCBQZW5kaW5nU2NyaXB0PiBtX3BlbmRpbmdBc3luY1Njcmlw
dHM7CisgICAgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4gbV9tb2R1bGVTY3JpcHRFbGVtZW50c1Rv
RXhlY3V0ZVNvb247CisgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEVsZW1lbnQ+PiBtX3BlbmRpbmdN
b2R1bGVTY3JpcHRFbGVtZW50czsKICAgICBUaW1lciBtX3RpbWVyOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCBlMTNhNWNkZGNjYTJjYjNiNzU2
YThkM2E1N2UyM2Y4MGE5YjQzZTQ4Li5kMTVlYjcxYmUzZjZiY2ZiMTA3ODJmOTc0ODc1YjQwMGJj
MGQ3MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAt
MTYxLDYgKzE2MSwxNSBAQCBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1
dGUoKSBjb25zdAogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKHNyY0F0dHIpOwogfQogCiti
b29sIEhUTUxTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworI2lmIEVOQUJM
RShFUzZfTU9EVUxFUykKKyAgICByZXR1cm4gZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikuc3Ry
aW5nKCkgPT0gIm1vZHVsZSI7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQor
CiB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpkaXNwYXRjaExvYWRFdmVudCgpCiB7CiAgICAgQVNT
RVJUKCFoYXZlRmlyZWRMb2FkRXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmgKaW5kZXggMzEyYzY2MjZlOGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZlMzdiMi4u
MWRmZDhjOGI3M2U4NzJhYmNkNWViNGIzNDJlNzkyZDMzNTAzZTc5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBIVE1MU2Ny
aXB0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIFNjcmlwdEVsZW1l
bnQgewogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA4YWRmY2ZhNDEwYWJlNDdlMzMyNGFlNWI4
ZDkyNDNmNTY2NjQ1ZDk1Li5iYTVmMDZmNDRiNmIxMTdmY2JiNjIzMzUzOGUyZTE0Y2Q3ZjhlNjlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNTEsNiArMTUx
LDExIEBAIGJvb2wgU1ZHU2NyaXB0RWxlbWVudDo6ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxl
VHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFNWR1NjcmlwdEVs
ZW1lbnQ6Omhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F0dHJp
YnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaAppbmRleCA1MzVlNDJlNmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAxLi44YWZk
ZTMxMTI1ZTVkZDQ5OGRiODJhNGUwOTgzYWIwNzRlMGRjYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgU1ZHU2NyaXB0RWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50CiAgICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmli
dXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1
dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRy
aWJ1dGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSBv
dmVycmlkZSB7IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9hZEV2ZW50
KHRoaXMpOyB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAwZjRlOGM5MDE0YzkxNmY1YTM5MzQ5NzY3ZTAxNGViNTBkYTAx
YTIxLi41MDY4ZWIxYWRjNDBiYWMwNmU0ZmQxZTBhNjI2ZDdlYTZkODY0ZmU0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNzEgQEAKKzIwMTUtMDktMjMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGludG8gV2ViQ29y
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
dGVzdHMgZm9yIG1vZHVsZXMuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxl
LXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1v
ZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRv
LW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4
ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlu
bGluZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
aW5saW5lLWR5bmFtaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWlubGluZS1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
aW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtaW5saW5lLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxv
YWQtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxv
YWQtZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
bW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1sb2FkLWV2ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxl
LWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBv
aW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLXNh
bWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1z
cmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxl
LW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLXNyYy1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21v
ZHVsZS1zcmMtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNy
Yy1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNy
Yy1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS13aWxsLWZpcmUt
YmVmb3JlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
d2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanM6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQt
Mi5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qczogQWRkZWQu
CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1p
eGVkLW1hdGNoYS5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qczogQWRkZWQuCisgICAgICAgIChleHBv
cnQuZGVmYXVsdC5Db2NvYS5wcm90b3R5cGUudGFzdGUpOgorICAgICAgICAoZXhwb3J0LmRlZmF1
bHQuQ29jb2EpOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1z
aW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90eXBl
LnRhc3RlKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBqcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5q
czogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFt
aWMtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAoQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAg
ICAgICAgKENvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMt
ZHluYW1pYy5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
c3JjLXNpbXBsZS1jb2NvYS5qczogQWRkZWQuCisgICAgICAgIChDb2NvYS5wcm90b3R5cGUudGFz
dGUpOgorICAgICAgICAoQ29jb2EpOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLXNyYy1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzOiBBZGRlZC4KKwogMjAxNS0wOS0xOCAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgY3JlYXRlIHJl
bmRlcmVycyBmb3IgY2hpbGRyZW4gb2Ygc2hhZG93IGhvc3QKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDA5MmJiYzk1YjA3MTZlNTYwNzg5OWUxMjMzZWRkMTU2NzdlYmNiYmUuLjZkZDY3ZGNiNGZlZTFl
ZDI2OGUzNDg3ZTZhOGE0ZDMyMDQ5NDNlZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjY4LDMg
KzY2OCwyMSBAQCB3ZWJraXQub3JnL2IvMTQ4Njk1IGZhc3Qvc2hhZG93LWRvbSBbIEZhaWx1cmUg
XQogIyBNYXJrcyBhcyBmbGFreSAoc2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzMjM4OCkKIAogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQor
CisjIEVTNiBNb2R1bGVzIGFyZSBub3QgeWV0IGVuYWJsZWQgYnkgZGVmYXVsdDogRU5BQkxFKEVT
Nl9NT0RVTEVTKQoranMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVu
dC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIFsgU2tpcCBdCitq
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVy
cm9yLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5o
dG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sIFsg
U2tpcCBdCitqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0bWwgWyBTa2lwIF0KK2pzL2Rv
bS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWxvYWQt
ZXZlbnQtd2l0aC1zcmMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0
bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbG9hZC1z
YW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sIFsgU2tpcCBdCitqcy9k
b20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwg
WyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0
bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwgWyBT
a2lwIF0KK2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbCBbIFNraXAgXQoranMvZG9tL21v
ZHVsZS1zcmMtc2ltcGxlLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJl
Zm9yZWxvYWQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmRiMjc1YTJmYjgz
NDg5NjRmYmU4ZGViODI1NTNiNGI5ZGI5YTUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUt
c2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MSBAQAorVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGRlcGVuZGVu
dCBtb2R1bGUgdGhyb3cgYW4gZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyB0aGUgZGVwZW5kZW50IG1v
ZHVsZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWlu
c2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRt
bCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBl
bmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNzdiNWRkNzY0ZGJlMjQzNDIzZDFjMzhlMzc0Y2MwZmRkYzI0MzcxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRl
LWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCkBA
IC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgZGVwZW5kZW50
IG1vZHVsZSB0aHJvdyBhbiBlcnJvci4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFz
eW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVs
ZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxl
Ij4KK2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRl
cGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcyIKK3Rlc3RG
YWlsZWQoImV4ZWN1dGVkIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1w
cm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVkZjcwMjhmMzU0OTM2NjkyOTIyZWZlNjFhMmRmYmE1ZjFm
MDkzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0
aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTEgQEAKK1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRo
ZSBpbmxpbmVkIG1vZHVsZSB0aHJvd3MgYW4gZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyB0aGUgbW9k
dWxlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNDQ2MmYzN2VkODE3MzA2MWY3Zjk5NTM2YzQyZDI5OTVjMjUyNzI4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJy
b3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCkBAIC0wLDAgKzEsMjIgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHdpbmRv
dy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgaW5saW5lZCBtb2R1bGUgdGhyb3dzIGFu
IGVycm9yLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRl
ZCB5ZXQuJyk7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uICgpIHsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorZGVidWcoJ0V4ZWN1
dGluZyB0aGUgbW9kdWxlLicpOwordGhyb3cgbmV3IEVycm9yKCJtb2R1bGUgaXMgZXhlY3V0ZWQu
Iik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZmZmRmMzM5NzU3YTRhMzc5NjRlODg5YWVjNjlhZmNjNTk5YWI3OGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1pbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1
dGlvbiBvcmRlciBiZXR3ZWVuIGlubGluZWQgbW9kdWxlIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1MgY291bnQr
KyBpcyAwCitQQVNTIGNvdW50KysgaXMgMQorUEFTUyBjb3VudCsrIGlzIDIKK1BBU1MgY291bnQr
KyBpcyAzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
aW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1p
bmxpbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTI1ZTc2OTA4Y2ZiNmZlYTAxMDdmNGRhYWRkMWQyOTMx
YmYzY2U2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVj
dXRpb24tb3JkZXItaW5saW5lLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIGlubGluZWQgbW9kdWxlIHRhZ3MuJyk7Cit3aW5kb3cuY291bnQgPSAwOworLy8g
TW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitzaG91
bGRCZSgiY291bnQrKyIsICIwIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4K
K3Nob3VsZEJlKCJjb3VudCsrIiwgIjEiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1
bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiMiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIsICIzIik7CitmaW5pc2hKU1Rlc3QoKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYzN2Y1MjRmNTMxOTA1ZDhhNTNmNDRhMzNhYjZmZmI0MDAxMjEwMzAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVy
IGJldHdlZW4gbWl4ZWQgdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1dl
IGtlZXAgdGhlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIG1vZHVsZXMuCitNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4KK1BBU1MgY291bnQrKyBpcyAwCitQQVNTIGNvdW50KysgaXMgMQorUEFT
UyBjb3VudCsrIGlzIDIKK1BBU1MgY291bnQrKyBpcyAzCitQQVNTIGNvdW50KysgaXMgNAorUEFT
UyBjb3VudCsrIGlzIDUKK1BBU1MgY291bnQrKyBpcyA2CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE5MWQzMDNl
ZGQ3NTc3MzgxMjhkZDlkMTViYjQwYzdlNzZjMmNkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwKQEAgLTAsMCAr
MSwyNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rl
c3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIG1peGVkIHRhZ3MuJyk7CitkZWJ1Zygn
V2Uga2VlcCB0aGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbW9kdWxlcy4nKTsKK3dpbmRvdy5j
b3VudCA9IDA7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0
ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJzY3JpcHQt
dGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIsICI0Iik7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLTIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxk
QmUoImNvdW50KysiLCAiNiIpOworZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5
bmFtaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHlu
YW1pYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM5MzlhYWYwYTUwMTVmNDc5Mzg2Y2QzMTk1
YWE1OWRkMTY5MDk3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtaW5saW5lLWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgaW5s
aW5lZCBtb2R1bGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1v
ZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQQVNT
IHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2EudGFz
dGUoKSBpcyAiYXdlc29tZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGlu
ZS1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWlj
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYThjMGUyNTlhYjI5MWVmZmM0YmVlNzhhZTY1YzM0MTdjMTFkMDVl
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5
bmFtaWMuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbignVGVzdCBpbmxpbmVkIG1vZHVsZS4nKTsKKworLy8gTW9kdWxlIHdp
bGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuJyk7CisoZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic2NyaXB0Iik7CisgICAgZWxlbWVudC50ZXh0Q29udGVudCA9IGAKKyAgICAgICAg
aW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5q
cyI7CisgICAgICAgIHZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCisgICAgICAgIGRlYnVnKCJN
b2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5l
ZCIpOworCisgICAgICAgIHdpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIiwgImF3
ZXNvbWUiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgYDsKKyAgICBlbGVtZW50LnR5
cGUgPSAibW9kdWxlIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
fSAoKSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZj
OTM5YWFmMGE1MDE1ZjQ3OTM4NmNkMzE5NWFhNTlkZDE2OTA5NzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTQgQEAKK1Rlc3QgaW5saW5lZCBtb2R1bGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRp
b24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNv
Y29hIGlzICJ1bmRlZmluZWQiCitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3Qi
CitQQVNTIGV4cG9ydGVkQ29jb2EudGFzdGUoKSBpcyAiYXdlc29tZSIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4YmNmMDYwZDFiZDY5NDVi
MDg5MTZlYmExNTI5YTU1OGZlNmIyZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBpbmxpbmVkIG1vZHVs
ZS4nKTsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9k
dWxlIj4KK2ltcG9ydCBDb2NvYSBmcm9tICIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNp
bXBsZS5qcyI7Cit2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworZGVidWcoIk1vZHVsZSBleGVj
dXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5lZCIpOworCit3aW5kb3cuZXhw
b3J0ZWRDb2NvYSA9IGNvY29hOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0
ZWRDb2NvYSIsICJvYmplY3QiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2Nv
YS50YXN0ZSgpIiwgImF3ZXNvbWUiKTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQt
ZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODYyNjY4MDJkYTU3Yzc1OGNlM2U0YTJmMzFkNzg5
MGQwZTViN2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1s
b2FkLWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IG1vZHVsZSBleGVj
dXRpb24gb3JkZXIgYmV0d2VlbiB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgYW4gaW5saW5lZCBtb2R1
bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3Jj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRo
LXNyYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThhMmY5Yjk5NjE2ZmY0NzBhZWUyYTQ1ZTcy
YmJkYTZlZmFjZDQwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbG9hZC1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVz
dCBzY3JpcHQub25sb2FkIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNy
YyBsb2FkcyBhbmQgZXhlY3V0ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBhIG1vZHVsZSB3aXRoIHNyYyBh
dHRyaWJ1dGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdp
dGgtc3JjLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1z
cmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40OTRhNGEzMDcwYTk2ZTZkYWNiZDhiNzQ2YTc3YzA1N2E0MmM1
NmE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2
ZW50LXdpdGgtc3JjLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0Lm9ubG9hZCB3aWxsIGJlIGZpcmVk
IHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0aCBzcmMgbG9hZHMgYW5kIGV4ZWN1dGVzLicpOworLy8g
TW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgpIiBzcmM9
InNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxv
YWQtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFiYjhjODA5ZjJkNDVjZDNmMzE3ODlhZmUyZGY3YjMwZGNlMWY0NWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gdGFncy4nKTsKKy8v
IE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3QoKSI+Citk
ZWJ1ZygnRXhlY3V0aW5nIGFuIGlubGluZWQgbW9kdWxlLicpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2Ft
ZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJl
bnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFhYjQ5ZDE0
OTc2MjRkZjIyZTAzNDc5N2IzOWFhOGVjODY5NGVjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACisyIGRpZmZlcmVu
dCBtb2R1bGUgdGFnIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBmcm9tIGEg
ZHluYW1pY2FsbHkgZ2VuZXJhdGVkIHRhZworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworQ3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3Vl
IHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLgorTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuCitFeGVjdXRpbmcgbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQuanMuCitFeGVjdXRpbmcgdGhlIG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQt
ZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxl
LWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWQ1
MWUyYjZjZWE4NjE3YmFjZjBjNDBlMzM3ZTkwOWExZDMxYTM4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50
LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3
aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUgZnJvbSBhIGR5bmFtaWNhbGx5IGdl
bmVyYXRlZCB0YWcnKTsKK2RlYnVnKCdDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4g
dGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuJyk7Cisv
LyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9k
dWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMiCitkZWJ1
ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cit2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNjcmlwdCIpOworZWxlbWVudC50eXBlID0gIm1vZHVsZSI7CitlbGVtZW50Lmlu
bmVyVGV4dCA9ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZm
ZXJlbnQtZW50cnktcG9pbnQuanMiOworZWxlbWVudC5vbmVycm9yID0gZmluaXNoSlNUZXN0KCk7
Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2Ft
ZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGY5OGZjY2I2ZmFmYTA2NDQ3ZTMwMzJl
ZjA2ZDk4MjAyN2YyNTFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACisyIGRpZmZlcmVudCBtb2R1bGUgdGFnIHdpbGwgYXR0ZW1w
dCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworQ3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3Vl
IHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLgorTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuCitFeGVjdXRpbmcgbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQuanMuCitFeGVjdXRpbmcgdGhlIG1vZHVsZS4KK0V4ZWN1dGluZyB0aGUgbW9kdWxl
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1s
b2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjA2ZDRlMGI2M2NkYzAxMjc0MTMzYmVmZDkzODQ0MjU1NTU4YjE4NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRp
ZmZlcmVudC1lbnRyeS1wb2ludC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCcyIGRpZmZlcmVudCBtb2R1bGUgdGFnIHdp
bGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZScpOworZGVidWcoJ0N1cnJlbnRseSwg
dGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4
ZWQgaW4gdGhlIGZ1dHVyZS4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJv
bm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBu
b3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+Citp
bXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0KCkiPgoraW1w
b3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQt
ZW50cnktcG9pbnQuanMiCitkZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
MzhiYTNjMmU3OTk3N2UyYzlmNzkzNDgwOTczNmZkOTgzN2Q3MmY5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyOiBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAibm90LWZvdW5kLmpzIi4gRXhwZWN0ZWQg
J2Zyb20nIGJlZm9yZSBpbXBvcnRlZCBtb2R1bGUgbmFtZS4KK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Ig
d2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhlIGltcG9ydCBk
ZWNsYXJhdGlvbiBpbiB0aGUgaW5saW5lZCBtb2R1bGUgaXMgbm90IGZvdW5kLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1z
cmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5v
dC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43NDg3ODc1MDFhMTI5Mjc2ODEwOTE4NzkwN2FmYzQ3ZGZiNmQyODkzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZl
bnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVz
dCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmll
ZCBieSB0aGUgaW1wb3J0IGRlY2xhcmF0aW9uIGluIHRoZSBkZXBlbmRlbnQgbW9kdWxlIGlzIG5v
dCBmb3VuZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5k
LWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZWYzOTg2ODVhZTA1YTExY2U4YTFlMGIyMjA5OGU5ODUzMWQ2MjkxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3It
ZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmVycm9y
IHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQg
ZGVjbGFyYXRpb24gaW4gdGhlIGRlcGVuZGVudCBtb2R1bGUgaXMgbm90IGZvdW5kLicpOworLy8g
TW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5j
dGlvbiBvbkVycm9yKCkKK3sKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZp
bmlzaEpTVGVzdCgpCit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InNj
cmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBv
cnQuanMiIG9uZXJyb3I9Im9uRXJyb3IoKSI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgwZDE1
ZGZlNmQwOWJmYzZiODU4M2E0OGRlYzZkY2IxYjViMTQxNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUg
ZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5ICJzcmMiIGlzIG5vdCBmb3VuZC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQg
eWV0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2
ZW50LXdpdGgtc3JjLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YTQ3ZjYxMDY5YWZlY2JjYjM4
YjBhOTU3NTYyNWNlODJkZjQ4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1sCkBAIC0wLDAgKzEs
MjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0
IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVk
IGJ5ICJzcmMiIGlzIG5vdCBmb3VuZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFz
eW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVs
ZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJub3QtZm91bmQuanMiIG9uZXJyb3I9Im9uRXJy
b3IoKSI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2I1
OTRjNjQ2ODM4ZTRjMzVlMzc1NjFmNmRjZTNkODM3NzBiNzcxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbApAQCAt
MCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNw
ZWNpZmllZCBieSB0aGUgaW1wb3J0IGRlY2xhcmF0aW9uIGluIHRoZSBpbmxpbmVkIG1vZHVsZSBp
cyBub3QgZm91bmQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNs
eS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiIG9uZXJyb3I9Im9uRXJyb3IoKSI+CitpbXBvcnQgZnJvbSAibm90LWZvdW5k
LmpzIjsKK3Rlc3RGYWlsZWQoJ2V4ZWN1dGVkJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2Q4YjAwNjI0OTBlYzcyMjk1Y2ZmNTA2MWEwODM5ZTQwMDIwY2Q4
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFt
aWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9kdWxlIHdpdGggInNyYyIg
YXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5v
dCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1
bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0
eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3Rl
KCkgaXMgIm5pY2UiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1p
Yy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM4NGZmNDI2NGY5ODFmZTk2NDllZDNhNzIxYjFjZmE0ZmE1ZTkxY2UKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwKQEAg
LTAsMCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oJ1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLicpOworCisvLyBNb2R1bGUgd2ls
bCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4nKTsKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzY3JpcHQnKTsKKyAgICBlbGVtZW50LnR5cGUgPSAnbW9kdWxlJzsKKyAgICBlbGVt
ZW50LnNyYyA9ICcuL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMnOworICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit9KCkpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1z
aW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDhiMDA2MjQ5MGVjNzIyOTVjZmY1MDYxYTA4Mzll
NDAwMjBjZDhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1z
cmMtc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSB3aXRo
ICJzcmMiIGF0dHJpYnV0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVs
ZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0
aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIK
K1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2Nv
YS50YXN0ZSgpIGlzICJuaWNlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3Jj
LXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2Y3M2IwYzU0YTI1YTRmNzZjMTRhM2I1ZGMzMTczZmU4OTNjYjNjZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5odG1s
CkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUZXN0IG1vZHVsZSB3aXRoICJzcmMiIGF0dHJpYnV0ZS4nKTsKKworLy8gTW9kdWxl
IHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRl
ZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4vc2NyaXB0
LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxv
YWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVm
b3JlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4ZDk3MDhkYjNlMDVjNGIwMTAzYmU3
ZGNlYjBjMDA3MTE3NWM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3Qgc2NyaXB0LmJlZm9yZWxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFn
IHdpdGggc3JjIGlzIHByZXBhcmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYmZmMTY1M2QwNmMwNmUx
ZDc0MTc5ZDAxMTAwMzZlMTQ5ZDg2OTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0
LmJlZm9yZWxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGlz
IHByZXBhcmVkLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHku
Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVj
dXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmJlZm9yZWxv
YWQ9ImZpbmlzaEpTVGVzdCgpIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJl
Zm9yZWxvYWQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lk
ZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cu
anMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJy
b3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJv
ci10aHJvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmMxNWFmMjE0MmI0ODAyNjAyZWFkMDM3MDBmOGJiZTAx
YmMyYmVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1i
ZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanMKQEAgLTAsMCArMSwyIEBACitkZWJ1Zygi
RXhlY3V0aW5nIHRoZSBkZXBlbmRlbnQgbW9kdWxlIik7Cit0aHJvdyBuZXcgRXJyb3IoIm91dCIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhl
Y3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVk
LXRvLW9uZXJyb3IuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1l
eGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0
ZWQtdG8tb25lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmM3Y2E0NzliMjU4ODliMDBjYTI0Y2Q1YmJl
MzMxZGFhNjVmNzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMKQEAgLTAsMCArMSwyIEBACitpbXBvcnQg
Im1vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcyIKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQtMi5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzM2I5ZDM1MmFl
YzU3YjA2MWRkYmUwMGI3Y2Y5NGVhNTc0YWVjNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5q
cwpAQCAtMCwwICsxIEBACitzaG91bGRCZSgiY291bnQrKyIsICI1Iik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4
ZWQtY2FwcHVjY2luby5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMTQ2ZmQ3
NjZlNTVhMDJhZTc4YmFmOWRkNjMzOThlYjg1YTg5MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQt
Y2FwcHVjY2luby5qcwpAQCAtMCwwICsxLDMgQEAKK2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlvbi1v
cmRlci1taXhlZC1tYXRjaGEuanMiCisKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjIiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1v
cmRlci1taXhlZC1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNThkNzMyNDNm
ZWYzMGEwYjQ5NDlkYmE3ZmJmODUzNGVlYmE5ZjczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNv
Y29hLmpzCkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1p
eGVkLW1hdGNoYS5qcyI7CisKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjEiKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC1tYXRjaGEuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1l
eGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZTE1ZDdjZjBjZmY0
ZWFhMWEwYjVhMWVlODNkY2NlMzI0YTI1ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hh
LmpzCkBAIC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjAiKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDM4NmZiYjg2ODFjYmY3ZTU5YzQ3Mzc2Mzdl
ODdiZTM4Y2ZmNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzCkBAIC0wLDAgKzEsNCBAQAor
aW1wb3J0ICIuL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanMiCitpbXBvcnQg
Ii4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzIgorCitzaG91bGRC
ZSgiY291bnQrKyIsICIzIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MzYwYTdiZmU3
ZTA1YTBjYjI1Mzg0MTM2N2U3MWRjMWU5M2I1YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcwpAQCAtMCww
ICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAg
ICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjQzNjBhN2JmZTdlMDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1w
bGUuanMKQEAgLTAsMCArMSw1IEBACitleHBvcnQgZGVmYXVsdCBjbGFzcyBDb2NvYSB7CisgICAg
dGFzdGUoKSB7CisgICAgICAgIHJldHVybiAiYXdlc29tZSI7CisgICAgfQorfTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0
aC1zcmMuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2
ZW50LXdpdGgtc3JjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiODcwMjkwZDNlYzdlMDgwYzA1ZjlmNjY2ODQ0
Y2QwNjc1MjlmZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzCkBAIC0wLDAgKzEgQEAKK2RlYnVn
KCdFeGVjdXRpbmcgYSBtb2R1bGUgd2l0aCBzcmMgYXR0cmlidXRlLicpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1m
cm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDVhZDc3ZjgwMDgwNDM4MWJmNGYxZWFkYjUxN2Y1NjBmMGM0ZWI2Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMKQEAgLTAsMCAr
MSBAQAorZGVidWcoJ0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZl
cmVudC1lbnRyeS1wb2ludC5qcy4nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1w
b3J0LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5k
LWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGMxYjQ3MTQ4
MTM4YTBlYzQ1MjJjMjI3MjMzYTNjNzQxMzM3MTI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13
aXRoLXNyYy1hbmQtaW1wb3J0LmpzCkBAIC0wLDAgKzEgQEAKK2ltcG9ydCAibm90LWZvdW5kLmpz
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3Jj
LWR5bmFtaWMtY29jb2EuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5
ZDQ2MzkwNDUxMmIwZWNiNzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanMKQEAgLTAsMCArMSw3IEBA
CitjbGFzcyBDb2NvYSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVybiAibmljZSI7Cisg
ICAgfQorfQorCitleHBvcnQgZGVmYXVsdCBDb2NvYTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUx
YTdiZTZiNGYxMjkzYWY1OTY4NmZlM2U1NzgwMWQyZTA5NmMzNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzCkBA
IC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBDb2NvYSBmcm9tICIuL21vZHVsZS1zcmMtZHluYW1pYy1j
b2NvYS5qcyI7Cit2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworZGVidWcoIk1vZHVsZSBleGVj
dXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5lZCIpOworCit3aW5kb3cuZXhw
b3J0ZWRDb2NvYSA9IGNvY29hOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0
ZWRDb2NvYSIsICJvYmplY3QiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2Nv
YS50YXN0ZSgpIiwgIm5pY2UiKTsKK2ZpbmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDc5NTkyZGM1MTNjZjI1OTg0MWZmOWQ0NjM5MDQ1MTJiMGVjYjc0NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNy
Yy1zaW1wbGUtY29jb2EuanMKQEAgLTAsMCArMSw3IEBACitjbGFzcyBDb2NvYSB7CisgICAgdGFz
dGUoKSB7CisgICAgICAgIHJldHVybiAibmljZSI7CisgICAgfQorfQorCitleHBvcnQgZGVmYXVs
dCBDb2NvYTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLXNyYy1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1zcmMtc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkOWM3NzRmZDllN2E1YzlkMTg1OTI0MDQ0ZTdh
Mjc4YWQ3MzM3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBDb2Nv
YSBmcm9tICIuL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBD
b2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9k
dWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2Ei
LCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAibmljZSIpOworZmluaXNo
SlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYTM5Mzgz
NTYzM2FlYzU1ZTVlNTk1NzI5ZGE2OTE5ZTljMzIwM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5q
cwpAQCAtMCwwICsxIEBACit0ZXN0RmFpbGVkKCJleGVjdXRlZCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261854</attachid>
            <date>2015-09-23 17:41:52 -0700</date>
            <delta_ts>2015-09-23 22:01:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150923174134.patch</filename>
            <type>text/plain</type>
            <size>131995</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzdmZGYwNGRiNzhkMjk0MDUzMzZiOTk0NGVlNjgyYmM1MTUyMjM2Li41N2RiZmUwZTg4NzYzMWIx
YmIxYzI1MDdmYmNmNmYyNDZhMTkyMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW1ib2w6
OmNyZWF0ZSBpcyBub3cgdXNlZCBpbiBXZWJDb3JlLgorCisgICAgICAgICogcnVudGltZS9TeW1i
b2wuaDoKKwogMjAxNS0wOS0yMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBKU0MgYWxsb3dzIGludmFsaWQgdmFyIGRlY2xhcmF0aW9ucyB3aGVuIHRoZSBkZWNs
YXJlZCBuYW1lIGlzIHRoZSBzYW1lIGFzIGEgbGV0L2NvbnN0IHZhcmlhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNmZhZTUzNWI4ZDczMGYzOTgxYWE1MDBkNTljZjZiZGI4MmE1NjczYS4uNTg1MDJmYTAzMjE2
YTIzYzBiMzllYzliMDY3Nzc3MWVkN2RkYmNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NCBA
QAorMjAxNS0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPiB0YWcuIFRoYXQgdGFnIGxvYWRzIHRoZSBFUzYg
TW9kdWxlcy4KKyAgICAgICAgU2luY2UgdGhlIGRldGFpbCBvZiB0aGUgdGFnIGlzIG5vdCBkZWZp
bmVkIHlldFsxXSwgdGhlIGltcGxlbWVudGF0aW9uIGlzIGhpZGRlbgorICAgICAgICBiZWhpbmQg
dGhlIGNvbXBpbGUgdGltZSBmbGFnIEVOQUJMRShFUzZfTU9EVUxFUykuCisKKyAgICAgICAgQSBt
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseSBhbmQgZXhlY3V0ZWQgaW4gYSBt
b2R1bGUgZW52aXJvbm1lbnQKKyAgICAgICAgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZ2xv
YmFsIGVudmlyb25tZW50LiBJdCBpcyBhbHdheXMgc3RyaWN0IG1vZGUgYW5kIG9ubHkKKyAgICAg
ICAgYSBtb2R1bGUgY2FuIHVzZSB0aGUgbW9kdWxlIHN5bnRheCBsaWtlIGBpbXBvcnRgLCBgZXhw
b3J0YCBldGMuIFNvIHNpbmNlIHRoZQorICAgICAgICBleGVjdXRpb24gc2VtYW50aWNzIGlzIGRp
ZmZlcmVudCBmcm9tIG9uZSBvZiBnbG9iYWwgc2NyaXB0cywgbW9kdWxlcyBuZWVkIHRvIGJlCisg
ICAgICAgIGV4ZWN1dGVkIGJ5IHRoZSBzcGVjaWFsaXplZCB0YWcsIDxzY3JpcHQ+IHdpdGggdHlw
ZT0ibW9kdWxlIi4KKworICAgICAgICBUaGUgbW9kdWxlIHRhZyB3b3JrcyBhcyBhbiBlbnRyeSBw
b2ludCB0byBtb2R1bGVzLiBUeXBpY2FsbHksIHdlIHNwZWNpZnkgYW4KKyAgICAgICAgZW50cnkg
cG9pbnQgbW9kdWxlIGJ5IGEgdGFnIGFuZCBhbiBlbnRyeSBwb2ludCBtb2R1bGUgd2lsbCBsb2Fk
IGRlcGVuZGVudAorICAgICAgICBtb2R1bGVzIGFuZCBydW4gYSBhcHBsaWNhdGlvbi4KKworICAg
ICAgICBPbmNlIG1vZHVsZSB0YWcgcmVxdWVzdCBsb2FkaW5nLCBXZWJDb3JlIHJlcXVlc3QgbG9h
ZGluZyB0byB0aGUgSlNDJ3MgbW9kdWxlCisgICAgICAgIGxvYWRlci4gV2ViQ29yZSBhZG9wdHMg
dGhlIEpTQydzIGdlbmVyaWMgbW9kdWxlIGxvYWRlciBieSBpbXBsZW1lbnRpbmcgdGhlIGxvYWRl
cgorICAgICAgICBob29rcy4gSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIFdlYkNvcmUg
aW1wbGVtZW50cyAzIGhvb2tzLgorCisgICAgICAgIDEuIHJlc29sdmUgaG9vaworCisgICAgICAg
ICAgICBUYWtlcyB0aGUgbW9kdWxlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBt
b2R1bGUga2V5LgorICAgICAgICAgICAgSW4gV2ViQ29yZSwgd2UgdGFrZSB0aGUgbW9kdWxlIG5h
bWUgbGlrZSAiLi9oZWxsby5qcyIgYW5kIHJlc29sdmUgaXQgdG8gVVJMLgorCisgICAgICAgIDIu
IGZldGNoIGhvb2sKKworICAgICAgICAgICAgRmV0Y2hlcyB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVk
IGJ5IHRoZSBtb2R1bGUga2V5LiBJbiBXZWJDb3JlLCB0aGUgbW9kdWxlIGtleSBpcworICAgICAg
ICAgICAgVVJMLiBXZSB1c2UgQ2FjaGVkUmVzb3VyY2UgbG9hZGluZyBzeXN0ZW0gdG8gbG9hZCB0
aGUgcmVzb3VyY2Ugb2YgdGhlIG1vZHVsZXMuCisKKyAgICAgICAgMy4gZXZhbHVhdGUgaG9vawor
CisgICAgICAgICAgICBUaGlzIGlzIGFkZGl0aW9uYWwgaG9vayB0byBpbnN0cnVtZW50IHRoZSBt
b2R1bGUncyBleGVjdXRpb24gZm9yIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgVGhlIG1vZHVs
ZSBsb2FkZXIgaW52b2tlcyB0aGVzZSBob29rcywgY29uc3RydWN0cyB0aGUgcGlwZWxpbmUgYW5k
IG5vdGlmaWVzIGV2ZW50cworICAgICAgICB0byBhIE1vZHVsZUdyYXBoLCB3aGljaCBpcyBoZWxk
IGJ5IGEgU2NyaXB0RWxlbWVudC4gQSBTY3JpcHRFbGVtZW50IHdpdGggYSBNb2R1bGVHcmFwaAor
ICAgICAgICB3aWxsIGJlIGRyaXZlbiBieSB0aGVzZSBldmVudHMuCisKKyAgICAgICAgTW9kdWxl
IHRhZyBsb2FkcyB0aGUgcmVzb3VyY2VzIGFzeW5jaHJvbm91c2x5LiBTbyBpdCBkb2VzIG5vdCBi
bG9jayB0aGUgZG9jdW1lbnQKKyAgICAgICAgcGFyc2VyLiBCdXQgdGhlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIHRoZSBtdWx0aXBsZSBtb2R1bGUgdGFncyBzaG91bGQgYmVjb21lCisgICAgICAg
IHRoZSBvY2N1cnJlbmNlIG9yZGVyWzFdLiBTbyBTY3JpcHRSdW5uZXIgbWFuYWdlcyB0aGUgbW9k
dWxlIHRhZ3MgYW5kIGZvcmNlIHRoZW0KKyAgICAgICAgdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIG9j
Y3VycmVuY2Ugb3JkZXIuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGhlcm1h
bi9tb2R1bGUtdGFnL2Jsb2IvbWFzdGVyL3JlcXVpcmVtZW50cy5tZAorCisgICAgICAgIFRlc3Rz
OiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3Iu
aHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5l
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbAor
ICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9t
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFt
aWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbAorICAgICAg
ICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMv
ZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJl
YWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNYWluVGhyZWFk
RXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L01vZHVsZUZldGNoZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNo
ZXI6Ok1vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6fk1v
ZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6OnJ1bik6CisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMv
TW9kdWxlRmV0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6
OmNhY2hlZFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6Ok1vZHVsZUxvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6
OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNo
ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZG9jdW1lbnQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJv
bGxlcjo6U2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9s
bGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVNb2R1bGVMb2FkZXJFcnJv
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3Js
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUlu
V29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1
YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRl
TW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVmFsdWVUb01vZHVsZUtleSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0TW9kdWxlR3JhcGgpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENvbnRyb2xsZXI6Om1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1vZHVsZUxv
YWRlcik6CisgICAgICAgICogZG9tL01vZHVsZUdyYXBoLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVHcmFwaDo6TW9kdWxlR3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlR3JhcGg6Om5vdGlmeUxvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6
bm90aWZ5RXJyb3JlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUV2YWx1YXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6bG9hZCk6CisgICAgICAgICogZG9tL01vZHVsZUdy
YXBoLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om1vZHVsZUtleSk6CisgICAgICAgIChXZWJD
b3JlOjpNb2R1bGVHcmFwaDo6d2Vha0VsZW1lbnRQdHIpOgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlR3JhcGg6OmVycm9yT2NjdXJyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6
OmlzTG9hZGVkKToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojppc1NjcmlwdFR5cGVTdXBwb3J0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRFbGVtZW50OjpzdG9wTG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6bG9hZE1vZHVsZSk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om1vZHVsZUdyYXBoKToKKyAgICAgICAg
KiBkb20vU2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6
flNjcmlwdFJ1bm5lcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlTW9k
dWxlR3JhcGhGb3JFeGVjdXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpu
b3RpZnlNb2R1bGVHcmFwaFJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6
dGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVu
dDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxl
bWVudC5oOgorCiAyMDE1LTA5LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbCBvdXQgcjE5MDA4NSBhcyBpdCBzZWVtcyB0byBjYXVz
ZSBjcmFzaGVzIGluIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRl
eCA4M2Y1ZGUyNDg1MmJjMzc4ZWUwYTc3MDM5ZjQ2MzE4MjVmZGRkYmJlLi5kZGI2OGNjYjM2NTQ0
NTk5MTBjZDNmMjNmNjY4NzRkMDA1ODhhOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2wuaApAQCAtODYsNyArODYsNyBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMg
SlNDZWxsIHsKIAogICAgIFN5bWJvbChWTSYpOwogICAgIFN5bWJvbChWTSYsIGNvbnN0IFN0cmlu
ZyYpOwotICAgIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7CisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgU3ltYm9sKFZNJiwgU3ltYm9sSW1wbCYgdWlkKTsKIAogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjQ2MzBiYTBmMzI3
ZDBhNTYyZmYwZmY4ZmVhOTVjZTE3OTkyYmYxYy4uZDUwOWI1ZjZiNzdlNTFkZDRiYmY5ZGEyZmMw
OGRjYzc3NjMzZDBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMjUsNiArMTIyNSw4IEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL01vZHVs
ZUZldGNoZXIuY3BwCisgICAgYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcAogICAgIGJpbmRp
bmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uY3BwCiAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0
aW9uLmNwcAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKQEAgLTE0
NTAsNiArMTQ1Miw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vTWVzc2FnZVBvcnQu
Y3BwCiAgICAgZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKICAgICBkb20vTWljcm9UYXNrLmNw
cAorICAgIGRvbS9Nb2R1bGVHcmFwaC5jcHAKICAgICBkb20vTW91c2VFdmVudC5jcHAKICAgICBk
b20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCiAgICAgZG9tL011dGF0aW9uRXZlbnQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pT
SW50ZXJuYWxQcm9taXNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y1NTdhMmYyMWVjZjZiMmFlY2FkNjdlMzUz
ZTE5NjZlNDc5NGU4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaApAQCAtMCwwICsxLDQgQEAKKyNp
Zm5kZWYgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VfaAorI2RlZmluZSBXZWJDb3JlX0ZX
RF9KU0ludGVybmFsUHJvbWlzZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5h
bFByb21pc2UuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNmMwODZkZDM5YWZmOWUxMDRiZDVhNmZmN2FlNzkyNTQ2Mzg2OTU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdl
YkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWRfaAorI2RlZmluZSBXZWJDb3JlX0ZX
RF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42M2U5ZWNmZmJjZjU3YzJhOWM3OTVjY2IxZDgwMzQwZjkxNGQ3ZDRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU01v
ZHVsZVJlY29yZC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU01vZHVs
ZVJlY29yZF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pTTW9kdWxlUmVjb3JkX2gKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU01vZHVsZVJlY29yZC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9TeW1ib2wuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NTA0MjdmMDkxYTllY2FjZmJmYTA5OWFlMGQwMzBlMGU5YmM1ZWIzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9TeW1ib2wuaApAQCAt
MCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfU3ltYm9sX2gKKyNkZWZpbmUgV2ViQ29y
ZV9GV0RfU3ltYm9sX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TeW1ib2wuaD4KKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5k
ZXggMjFhOWQ0MjVkYWQ3MjQ4ZTg0NDIzOWM1OGNlODUwNmYyODA5ODhiMS4uYWMwMjJiMDY3MzU2
OTEzZGZjODcwYWVkYTFhY2FlNTViZTJhYmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xNDQzNiw2ICsxNDQzNiwyMCBAQAogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxNb2R1bGVHcmFwaC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlRXZl
bnQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAg
LTE4ODc1LDYgKzE4ODg5LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cYmluZGluZ3NcanNcTW9kdWxlRmV0Y2hlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcTW9kdWxlTG9hZGVyLmNwcCI+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xTY2hlZHVs
ZWRBY3Rpb24uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KQEAgLTIyMDcxLDYgKzIyMTEzLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRv
bVxNZXNzYWdlUG9ydC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE1lc3Nh
Z2VQb3J0Q2hhbm5lbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE1pY3Jv
VGFzay5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE1vZHVsZUdyYXBoLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTW91c2VFdmVudC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlUmVsYXRlZEV2ZW50LmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTXV0YXRpb25FdmVudC5oIiAvPgpAQCAtMjI0ODQs
NiArMjI1MjcsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNO
b2RlT3JTdHJpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUZldGNoZXIuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUxvYWRlci5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRDYWNoZWRGcmFtZURh
dGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdENv
bnRyb2xsZXIuaCIgLz4KQEAgLTIyNzIzLDEzICsyMjc2OCwxNyBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cc3ZnXHByb3BlcnRpZXNcU1ZHVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9m
Zi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVu
dGltZVxBcmdMaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXElkZW50aWZpZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNJbnRlcm5hbFByb21pc2UuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZVxKU0xvY2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNPYmplY3QuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNTdHJpbmcuaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVc
SlNNb2R1bGVSZWNvcmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcTG9va3VwLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXE9wZXJhdGlvbnMuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcUHJvdGVjdC5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxTdHJp
bmdPYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWVcU3ltYm9sLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1x5YXJyXFJlZ3VsYXJFeHByZXNzaW9uLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1x5YXJyXFlhcnIuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcWWFyckludGVycHJldGVy
LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggNmRkMzc5OWFkNWM2Mzk1NzNjZjdiNjg0M2NkOGRjZGIx
NTc4NjJlYS4uNDJlZDZiYTVlYzBjMzE3M2NiOTFjYjgzNmYzNzM5YjM3MjI3YzM4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMzE5OCw2ICszMTk4LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGRvbVxNaWNyb1Rhc2suY3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTW9kdWxlR3JhcGguY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTW91c2VFdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5k
b208L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTQ0NzYsNiArNDQ3OSwxMiBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNYU0xUUHJvY2Vzc29yQ3VzdG9t
LmNwcCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVGZXRjaGVy
LmNwcCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVMb2FkZXIu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjaGVkdWxlZEFjdGlv
bi5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtMTAzMDQsNiArMTAzMTMsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXE1pY3JvVGFzay5oIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTW9kdWxlR3JhcGguaCI+Cisg
ICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTE0ODksNiArMTE1MDEsMTIgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmgi
PgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcTW9kdWxlRmV0Y2hlci5oIj4K
KyAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUxvYWRlci5oIj4KKyAg
ICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjaGVkdWxlZEFjdGlvbi5oIj4KICAg
ICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEx
NjU3LDEyICsxMTY3NSwyMSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGlu
Z0hlYWRlcnNccnVudGltZVxJZGVudGlmaWVyLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTSW50ZXJuYWxQcm9taXNl
LmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVh
ZGVyc1xydW50aW1lXEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCI+CisgICAgICA8RmlsdGVy
PkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNMb2Nr
LmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVh
ZGVyc1xydW50aW1lXEpTT2JqZWN0LmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTTW9kdWxlUmVjb3JkLmgiPgorICAg
ICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50
aW1lXEpTU3RyaW5nLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1l
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMTY4MSw2ICsxMTcwOCw5IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN0cmluZ09i
amVjdC5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGlu
Z0hlYWRlcnNccnVudGltZVxTeW1ib2wuaCI+CisgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcUmVndWxhckV4cHJlc3Npb24uaCI+CiAg
ICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHlhcnI8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlYjU1ZmY5ZjEyYTgyZTJiMGFjNzMyODM0NTI3MTNlNGFkZTFiNjkwLi5hNjg3
NTU4MWIxYWNjMWY4ZjM1NmYzNzMwMGYzNzRhYTg0ZjM4YmFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzIzLDYgKzYzMjMs
MTIgQEAKIAkJRTFGRjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4
RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi87IH07CiAJ
CUUxRkY4RjZDMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QTE4
MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovOyB9OwogCQlF
MUZGOEY2RDE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgwREI1
QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovOyB9OworCQlFMzM5QTUy
MzFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1v
ZHVsZUdyYXBoLmNwcCAqLzsgfTsKKwkJRTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVs
ZUdyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzg4Mzg5NjFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzg4Mzg5MjFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5j
cHAgKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTcxQkFE
MTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVG
ZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4
OTgxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyog
TW9kdWxlTG9hZGVyLmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9Owor
CQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NTFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsg
fTsKIAkJRTQwMUMyNzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFD
Mjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQyNEEzOUUxMzMw
REYwMTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyNEEzOUQxMzMwREYwMTAwQ0Y2REM5IC8qIExl
Z2FjeVRpbGVHcmlkVGlsZS5oICovOyB9OwogCQlFNDI0QTNBMDEzMzBERjFFMDBDRjZEQzkgLyog
TGVnYWN5VGlsZUdyaWRUaWxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQyNEEzOUYxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGls
ZS5tbSAqLzsgfTsKQEAgLTE0MDgzLDYgKzE0MDg5LDEyIEBACiAJCUUxRkY4RjY2MTgwNzQ2MDgw
MDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
RkY4RjZCMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyog
TW9kdWxlR3JhcGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9k
dWxlR3JhcGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzM5QTUyMjFCQTZC
RDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTW9kdWxlR3JhcGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4
OTIxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlRmV0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUZldGNoZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5NTFCQUQxNDVG
MDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDAxQzI3
NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBD
b2xvckRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JE
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxRUEwMzgxMTk4MzZEQjAw
NzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ1NTUHJvcGVydHlOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMTUzNSw2ICsyMTU0NywxMCBAQAogCQkJCTQxMTg5RUY4MUFEODIzM0MwMEI5MEEw
RCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHAgKi8sCiAJCQkJRTFDMzZE
MzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJ
CQlFMUMzNkQzMzBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCAq
LywKKwkJCQlFMzg4Mzg5MjFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5jcHAgKi8s
CisJCQkJRTM4ODM4OTMxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCAqLywKKwkJ
CQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmNwcCAqLywKKwkJCQlF
Mzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggKi8sCiAJCQkJNDE5OEJE
RUUxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRhYmxlSlNTdHJlYW0uY3BwICovLAogCQkJCTQxOThC
REVGMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFtLmggKi8sCiAJCQkJQkNBMzc4
QkEwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8sCkBAIC0yMzUwMiw2
ICsyMzUxOCw4IEBACiAJCQkJNDFCRjcwMEEwRkU4NkY0OTAwNUU4REVDIC8qIE1lc3NhZ2VQb3J0
Q2hhbm5lbC5oICovLAogCQkJCUNCOENGMDE1MUE5MzRCNDMwMDBENTEwQiAvKiBNaWNyb1Rhc2su
Y3BwICovLAogCQkJCTUzQjg5NUFEMTlEQzdDMzcwMDlDQUE5MyAvKiBNaWNyb1Rhc2suaCAqLywK
KwkJCQlFMzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwICovLAorCQkJ
CUUzMzlBNTIyMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oICovLAogCQkJCTg1MDMx
QjJGMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzMDBB
NDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5oICovLAogCQkJCTE0MUI5NEU1MDlFQzQyMjMw
MDBFOTQxMyAvKiBNb3VzZUV2ZW50LmlkbCAqLywKQEAgLTI0NjE3LDYgKzI0NjM1LDcgQEAKIAkJ
CQkzMTYwMjNGMDE1MzJDNDBDMDBENTBGRjQgLyogRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM3RkYzRDUxQTEwMTJENjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEQUYxOTk5MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RDb252b2x2
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzMzlBNTI0MUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1
bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8q
IERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQz
NUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQyOUVDQzYxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjE5MSw2ICsyNjIxMCw3IEBACiAJCQkJQ0UxMjUyNDEx
QTE2QjFCNjAwODY0NDgwIC8qIE1lZGlhUGxheWVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUUzODgzODk5MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTRFMTk1OTJDMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZh
bHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyRTBBMzlEQUNDMDAyMjBGRTUgLyog
TWVkaWFRdWVyeUV4cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNBOTRBMzkxMjJEQUJBQzAwQTM3
QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjM5LDYgKzI3MjU5
LDcgQEAKIAkJCQkwODBFNDkyODEyNTVGM0JEMDBFRkNBMjcgLyogU1ZHVGV4dExheW91dEVuZ2lu
ZVNwYWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RjBCRkM2MTI1NUM1M0MwMDA3NTE4NSAv
KiBTVkdUZXh0TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzExNzQ0NTkxNEJDMzRFQzAw
RUU1RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4
ODM4OTcxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3QUNFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUZXh0UGF0aEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3QUQxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAyNTEyNTVFNEU2MDBCOUNE
RDAgLyogU1ZHVGV4dFF1ZXJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTI4MDA3LDYgKzI4MDI4LDcg
QEAKIAkJCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBCQzEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9E
ZXN0aW5hdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAwNzEyQjAyNjc2MDBD
MUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTMz
OUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZEMzE2MDgxMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU1OTY5MTE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9G
aWxlUmVhZGVySU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEJFMTJCMDI3MkEwMEMx
QTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODU3Miw2
ICsyODU5NCw3IEBACiAJCQkJRTRBMDA3ODUxQjgyMEVEMzAwMkM1QTZFIC8qIERhdGFVUkxEZWNv
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODM5MTUxMEYxRTc2QjQwMEMyMzc4MiAvKiBE
T01XZWJLaXRDU1NNYXRyaXgubW0gaW4gU291cmNlcyAqLywKIAkJCQk4QUQwQTU5NzE0Qzg4MzU4
MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzE2MTFFNjIwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9y
bVZhbHVlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJM0YyQjMzRUMxNjVBRjE1NjAwRTM5ODdDIC8q
IERPTVdlYktpdENTU1ZpZXdwb3J0UnVsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDOTFBMzhG
MUI0OThBQkUwMDNGOUVGQSAvKiBKU05vZGVPclN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTI4ODk5LDYgKzI4OTIyLDcgQEAKIAkJCQlBODcxREIyRTBBMTUwQkQ2MDBCMTJBNjggLyogSFRN
TFRhYmxlQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMjkwQTE1MEJE
NjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTg3MURCMjgwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMkQwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJs
ZVBhcnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjMwMEExNTBCRDYwMEIx
MkE2OCAvKiBIVE1MVGFibGVSb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNDQy
Q0EwMEQyQjMzNjAwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCmluZGV4IDgzNTAzMzMxM2VmZTE1MmYxZTM5ZjRjMTUxYmJkYzJmMGExYWQ3ZmIuLjlmOGRm
MGI1ZjJmZWRkMGI1ZmU2ZjFlZjFiMGNmZWJjNzdhM2ViOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMzEsMTEgKzMxLDEzIEBACiAj
aW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50
RGF0YS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvTWljcm90YXNrLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KIApAQCAtNTYsNyArNTgsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20o
Y29uc3QgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBD
bGFzc0luZm8gSlNET01XaW5kb3dCYXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9i
YWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2Up
IH07CiAKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19n
bG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBv
cnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNj
cmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNo
b3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpT
RE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93
QWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywg
JnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRh
c2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1
bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZt
b2R1bGVMb2FkZXJFdmFsdWF0ZSB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFz
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2lu
ZG93LCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZt
LCBzdHJ1Y3R1cmUsICZzaGVsbC0+d29ybGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUp
CkBAIC0yNzYsNCArMjc4LDMxIEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVh
cmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAgfQogfQogCisK
K0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVz
b2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyKQorewor
ICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93
QmFzZSo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNP
YmplY3QtPmltcGwoKS5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVs
ZUxvYWRlcigpLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJy
ZXIpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwor
ICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNo
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXkpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2Jq
ZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBp
ZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisg
ICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVj
dCwgZXhlYywgbW9kdWxlS2V5KTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQq
IGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywg
Z2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVm
aW5lZCgpKTsKK30KKworSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29y
ZCkKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RP
TVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQg
PSB0aGlzT2JqZWN0LT5pbXBsKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50
LT5tb2R1bGVMb2FkZXIoKS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXks
IG1vZHVsZVJlY29yZCk7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuaAppbmRleCA1ZWQzODYyYzE0MTE4N2MwMDZiNjg4ZGI3OTc3OTRiMzY5ODEwNTY0
Li4yZDQ0YjgwMDllNTRkYmIwNzRlOGY5OTc3YzE2YjI1ZTEyNTdlYWJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNzgsNiArNzgsMTEgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBKU0M6OldhdGNocG9pbnRTZXQgbV93aW5kb3dD
bG9zZVdhdGNocG9pbnRzOwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gTW9kdWxlIExvYWRl
ciBob29rcy4KKyAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxv
YWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVM
b2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisKICAgICAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV9p
bXBsOwogICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKiBtX3NoZWxsOwogICAgIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCmluZGV4
IDA5ZTdlNWI2MDI2ODc5YjUzMzVhMWZlMWVmNzFjNDQ3NDMwYmZjZDQuLjRmZDY4M2UxNTkxMDJi
MTUyODdkNjM4OTljMDE2ZWZkMzc0ODAzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCkBAIC03NCw2ICs3NCwyNCBAQCBjbGFz
cyBKU01haW5UaHJlYWRFeGVjU3RhdGUgewogICAgICAgICB0YXNrLnJ1bihleGVjKTsKICAgICB9
CiAKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQorICAgIHsKKyAgICAgICAg
SlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJu
IEpTQzo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKTsKKyAgICB9CisKKyAgICBzdGF0aWMg
SlNDOjpKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSlNDOjpTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQorICAgIHsKKyAgICAgICAgSlNNYWlu
VGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6
bG9hZE1vZHVsZShleGVjLCBzb3VyY2VDb2RlKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSkKKyAgICB7CisgICAgICAgIEpT
TWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBK
U0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBtb2R1bGVLZXkpOworICAgIH0KKwogICAg
IHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgaW5zdHJ1bWVudEZ1bmN0aW9u
Q2FsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpDYWxsVHlwZSwgY29uc3QgSlNDOjpD
YWxsRGF0YSYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvTW9kdWxlRmV0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1
bGVGZXRjaGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzAyZjA5ZTBlZjM0Y2QxNzkwZjAzZjZlZTMzMWMy
MjMwYmMyZGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
TW9kdWxlRmV0Y2hlci5jcHAKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRl
ICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlc291cmNl
TG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJTY3JpcHRTb3VyY2VDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9kdWxlRmV0
Y2hlcjo6TW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25z
dCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJl
ZCwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAs
IG1fc291cmNlVVJMKHNvdXJjZVVSTCkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0KQorICAgICwgbV9kZWZlcnJlZChnbG9iYWxPYmplY3QtPnZt
KCksIGRlZmVycmVkKQoreworfQorCitNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hlcigpCit7
CisgICAgaWYgKG1fY2FjaGVkU2NyaXB0KSB7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1v
dmVDbGllbnQodGhpcyk7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKyAgICB9
Cit9CisKK1JlZjxNb2R1bGVGZXRjaGVyPiBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2R1bGVGZXRjaGVyKGdsb2JhbE9iamVjdCwgc291cmNl
VVJMLCBkZWZlcnJlZCwgZG9jdW1lbnQpKTsKK30KKworYm9vbCBNb2R1bGVGZXRjaGVyOjpydW4o
KQoreworICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKKyAgICBvcHRpb25zLnNldENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24oQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3Np
dGlvbjo6RG9Qb2xpY3lDaGVjayk7CisKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QobV9zb3VyY2VVUkwpLCBvcHRpb25zKTsKKworICAgIC8vIEZJWE1F
OiBTaG91bGQgaGFuZGxlICJjcm9zc29yaWdpbiIgb3B0aW9ucy4KKyAgICAvLyBPbmNlIHRoZSBz
cGVjIGRlc2NyaWJlcyB0aGUgZGV0YWlscywgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgcmVxdWVz
dC5zZXRJbml0aWF0b3IoQXRvbWljU3RyaW5nKG1fc291cmNlVVJMLnN0cmluZygpKSk7CisKKyAg
ICBtX2NhY2hlZFNjcmlwdCA9IG1fZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1
ZXN0U2NyaXB0KHJlcXVlc3QpOworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIC8vIE5vdGU6IElmIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2Fj
aGVkLCB0aGlzIGltbWVpZGF0ZWx5IGNhbGxzIG5vdGlmeUZpbmlzaGVkLgorICAgIG1fY2FjaGVk
U2NyaXB0LT5hZGRDbGllbnQodGhpcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTW9k
dWxlRmV0Y2hlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQorewor
ICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fY2FjaGVkU2NyaXB0KTsK
KyAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQo
bV9jYWNoZWRTY3JpcHQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4g
Y2FjaGVkU2NyaXB0ID0gbV9jYWNoZWRTY3JpcHQ7CisgICAgbV9jYWNoZWRTY3JpcHQgPSBudWxs
cHRyOworCisjaWYgRU5BQkxFKE5PU05JRkYpCisgICAgaWYgKGNhY2hlZFNjcmlwdCAmJiAhY2Fj
aGVkU2NyaXB0LT5taW1lVHlwZUFsbG93ZWRCeU5vc25pZmYoKSkgeworICAgICAgICBtX2RvY3Vt
ZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCAiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBmcm9tICciICsgY2FjaGVkU2Ny
aXB0LT51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2Ug
aXRzIE1JTUUgdHlwZSAoJyIgKyBjYWNoZWRTY3JpcHQtPm1pbWVUeXBlKCkgKyAiJykgaXMgbm90
IGV4ZWN1dGFibGUsIGFuZCBzdHJpY3QgTUlNRSB0eXBlIGNoZWNraW5nIGlzIGVuYWJsZWQuIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChGcmFtZSogZnJhbWUg
PSBtX2RvY3VtZW50LmZyYW1lKCkpIHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayht
X2dsb2JhbE9iamVjdC0+dm0oKSk7CisgICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9n
bG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC0+ZXJy
b3JPY2N1cnJlZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgbW9kdWxlIGxvYWRlciBwaXBlbGlu
ZSBpcyBjb25zdHJ1Y3RlZCBhcyBhIGNoYWluIG9mIHByb21pc2VzLgorICAgICAgICAgICAgLy8g
UmVqZWN0aW5nIGEgcHJvbWlzZSBpZiBzb21lIGVycm9yIG9jY3VycyBpcyBpbXBvcnRhbnQgYmVj
YXVzZSB0aGUgZXhlY3V0aW9uIGZsb3cgb2YKKyAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGNo
YWluIGlzIGRyaXZlbiBieSAicmVqZWN0ZWQiIG9yICJmdWxmaWxsZWQiIGV2ZW50cy4KKyAgICAg
ICAgICAgIC8vIElmIHRoZSBwcm9taXNlIGlzIG5vdCByZWplY3RlZCB3aGlsZSBlcnJvciBvY2N1
cnMsIHJlamVjdCBoYW5kbGVyIHdvbid0IGJlIGV4ZWN1dGVkCisgICAgICAgICAgICAvLyBhbmQg
YWxsIHRoZSBzdWJzZXF1ZW50IHByb21pc2UgY2hhaW4gd2lsbCB3YWl0IHRoZSByZXN1bHQgZm9y
ZXZlci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBBcyBhIHJlc3VsdCwgZXZlbiBp
ZiB0aGUgZXJyb3IgaXMgYWxyZWFkeSByZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGVsc2V3aGVy
ZSwKKyAgICAgICAgICAgIC8vIGl0IHNob3VsZCBiZSBwcm9wYWdhdGVkIGluIHRoZSBwaXBlbGlu
ZS4gRm9yIGV4YW1wbGUsIHRoZSBlcnJvciBvZiBsb2FkaW5nCisgICAgICAgICAgICAvLyBDYWNo
ZWRSZXNvdXJjZSBpcyBhbHJlYWR5IHJlcG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgYnkgdGhlIGxv
YWRlci4gQnV0IHdlIHN0aWxsIG5lZWQKKyAgICAgICAgICAgIC8vIHRvIHJlamVjdCB0aGUgcHJv
bWlzZSBieSBzb21lIGVycm9yLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdCB0
byByZXBvcnQgdGhlIGVycm9yIHR3aWNlLCB3aGVuIHdlIHByb3BhZ2F0ZSB0aGUgZXJyb3IgdGhh
dCBpcyBhbHJlYWR5IHJlcG9ydGVkCisgICAgICAgICAgICAvLyB0byB0aGUgaW5zcGVjdG9yLCB3
ZSB0aHJvdyBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCBzeW1ib2wgaW5z
dGVhZC4KKyAgICAgICAgICAgIC8vIEJ5IGNvbXBhcmluZyB0aGUgdGhyb3duIGVycm9yIHdpdGgg
dGhpcyBzeW1ib2wsIHdlIGNhbiBkaXN0aW5ndWlzaCBlcnJvcnMgcmFpc2VkCisgICAgICAgICAg
ICAvLyB3aGVuIGxpbmtpbmcgb3IgZXhlY3V0aW5nIGEgbW9kdWxlIGdyYXBoIGZyb20gZXJyb3Jz
IHJlcG9ydGVkIGFscmVhZHkuCisgICAgICAgICAgICAvLyBJbiB0aGUgcmVqZWN0IGhhbmRsZXIg
b2YgdGhlIHByb21pc2UsIHdlIG9ubHkgcmVwb3J0IGEgZXJyb3IgdGhhdCBpcyBub3QgdGhpcyBz
eW1ib2wuCisgICAgICAgICAgICBtX2RlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6
OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5
UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFjYWNo
ZWRTY3JpcHQtPndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUg
c291cmNlQ29kZShjYWNoZWRTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgbV9kZWZlcnJlZC0+
cmVzb2x2ZShleGVjLCBKU0M6OmpzU3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkpKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEEgQ2FjaGVkUmVzb3VyY2VIYW5kbGUgYWxvbmUg
ZG9lcyBub3QgcHJldmVudCB0aGUgdW5kZXJseWluZyBDYWNoZWRSZXNvdXJjZQorICAgIC8vIGZy
b20gcHVyZ2luZyBpdHMgZGF0YSBidWZmZXIuIFVudGlsIHdlIGZpbmlzaCB1c2luZyB0aGUgYmFj
a2luZyBidWZmZXIgb2YgdGhlCisgICAgLy8gY2FjaGVkIHNjcmlwdCwgd2UgZG9uJ3QgcmVtb3Zl
IHRoZSBjbGllbnQuCisgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisKKyAg
ICBtX2RvY3VtZW50Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAv
LyBBZnRlciBNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUg
ZGVzdHJveWVkLgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Nb2R1bGVGZXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRj
aGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjkzZDM2YWUzNjBmMmY3MmIwZTk5ZWZiYTQzN2Y3MzU0NmI0NjIw
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZl
dGNoZXIuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVGZXRj
aGVyX2gKKyNkZWZpbmUgTW9kdWxlRmV0Y2hlcl9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAi
VVJMLmgiCisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENhY2hlZFNjcmlwdDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7
CisKK2NsYXNzIE1vZHVsZUZldGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVGZXRjaGVy
PiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTW9kdWxlRmV0Y2hlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8TW9kdWxlRmV0Y2hlcj4gY3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29u
c3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3Vt
ZW50Jik7CisKKyAgICB+TW9kdWxlRmV0Y2hlcigpOworCisgICAgYm9vbCBydW4oKTsKKworICAg
IENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0
KCk7IH0KKworcHJpdmF0ZToKKyAgICBNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERv
Y3VtZW50Jik7CisKKyAgICAvLyBGb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBE
b2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJv
bmc8SlNET01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpT
Qzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwMmIxNjJk
MDEyM2Y1YTA4OGFlZjdiZjBiNDNjNTMyOTUyN2VjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxMzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVy
LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUg
Ik1pY3JvVGFzay5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL1N5bWJvbC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKERvY3Vt
ZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK0pTQzo6
SlNJbnRlcm5hbFByb21pc2UqIE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9k
dWxlTmFtZVZhbHVlLCBKU0M6OkpTVmFsdWUgcmVmZXJyZXJWYWx1ZSkKK3sKKyAgICBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAobW9kdWxlTmFt
ZVZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVj
LCBtb2R1bGVOYW1lVmFsdWUpOworCisgICAgLy8gRklYTUU6IFdlIG5vdyBhc3N1bWUgdGhhdCBt
b2R1bGUgbmFtZSBpcyBlaXRoZXIgc3ltYm9sIG9yIHN0cmluZy4KKyAgICAvLyBXaGVuIGV4cG9z
aW5nIHRoZSByZWZsZWN0aW9uIHRvIHRoZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBu
ZWVkIHRvIHJlY2FzdCB0aGlzIHBhcnQuCisgICAgQVNTRVJUKG1vZHVsZU5hbWVWYWx1ZS5pc1N0
cmluZygpKTsKKyAgICBTdHJpbmcgbW9kdWxlTmFtZSA9IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJp
bmcqPihtb2R1bGVOYW1lVmFsdWUpLT52YWx1ZShleGVjKTsKKworICAgIC8vIE5vdywgd2UgY29u
c2lkZXIgdGhlIGdpdmVuIG1vZHVsZU5hbWUgYXMgdGhlIHNhbWUgdG8gdGhlIHNyYz0iLi4uIiBp
biB0aGUgc2NyaXB0IHRhZy4KKyAgICAvLyBXZSB1c2UgdGhlIGNvbXBsZXRlZCBVUkwgYXMgdGhl
IG1vZHVsZSBrZXkuCisgICAgLy8KKyAgICAvLyBGSVhNRTogV2UgbmVlZCBzaXRlIHBhY2thZ2lu
ZyBzeXN0ZW0uIEJ1dCBpdCdzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjIHlldC4KKyAgICAvLyBo
dHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWxvYWRlci1wcm90b3R5cGUt
JTQwJTQwcmVzb2x2ZQorICAgIFVSTCBjb21wbGV0ZWRVUkw7CisKKyAgICAvLyBGSVhNRTogQ2hl
Y2sgbV9kb2N1bWVudCBsaWZldGltZS4KKyAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1N5bWJvbCgp
KQorICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5h
bWUpOworICAgIGVsc2UgeworICAgICAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1VuZGVmaW5lZCgp
KQorICAgICAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1
bGVOYW1lKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQocmVmZXJyZXJWYWx1
ZS5pc1N0cmluZygpKTsKKyAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IEpTQzo6anNDYXN0
PEpTQzo6SlNTdHJpbmcqPihyZWZlcnJlclZhbHVlKS0+dmFsdWUoZXhlYyk7CisgICAgICAgICAg
ICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUsIFVSTChQ
YXJzZWRVUkxTdHJpbmcsIHJlZmVycmVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFj
b21wbGV0ZWRVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChl
eGVjLCBjcmVhdGVET01FeGNlcHRpb24oZXhlYywgU1lOVEFYX0VSUikpOworCisgICAgcmV0dXJu
IGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIGpzU3RyaW5nKGV4ZWMsIGNvbXBsZXRlZFVSTC5zdHJp
bmcoKSkpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6OmZldGNo
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogV2hlbiBpbXBs
ZW1lbnRpbmcgcmVmbGVjdGl2ZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBzaG91bGQg
cmVjYXN0IHRoaXMgaW1wbGVtZW50YXRpb24uCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRl
KGV4ZWMsIGdsb2JhbE9iamVjdCk7CisKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtb2R1bGVL
ZXlWYWx1ZS5pc1N5bWJvbCgpLCAiU3ltYm9saWMgbW9kdWxlIGtleSBzaG91bGQgYmUgYWxyZWFk
eSBmdWxmaWxsZWQgd2l0aCB0aGUgaW5saW5lZCByZXNvdXJjZS4iKTsKKyAgICBBU1NFUlQobW9k
dWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisKKyAgICBKU0M6OklkZW50aWZpZXIgbW9kdWxlS2V5
ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGFzU3RyaW5nKG1vZHVsZUtleVZh
bHVlKS0+dmFsdWUoZXhlYykpOworCisgICAgVVJMIGNvbXBsZXRlZFVSTChQYXJzZWRVUkxTdHJp
bmcsIG1vZHVsZUtleS5pbXBsKCkpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoY29tcGxldGVk
VVJMLmlzVmFsaWQoKSwgIlRoZSByZXNvbHZlIGhvb2sgc2hvdWxkIHByb2R1Y2UgdGhlIHZhbGlk
IFVSTCBhcyBhIHN0cmluZy4iKTsKKworICAgIFJlZjxNb2R1bGVGZXRjaGVyPiBmZXRjaGVyID0g
TW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xv
YmFsT2JqZWN0KSwgY29tcGxldGVkVVJMLCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7CisgICAgbV9m
ZXRjaGluZ1NldC5hZGQoJmZldGNoZXIuZ2V0KCkpOworICAgIGlmICghZmV0Y2hlci0+cnVuKCkp
IHsKKyAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAg
ICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUo
ZXhlYy0+dm0oKSwgKihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVk
RXJyb3JTeW1ib2woKS51aWQoKSkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnBy
b21pc2UoKTsKK30KKworSlNDOjpKU1ZhbHVlIE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxl
S2V5VmFsdWUsIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSkKK3sKKyAgICAvLyBGSVhN
RTogQ3VycmVudGx5LCB3ZSBvbmx5IHN1cHBvcnQgSlNNb2R1bGVSZWNvcmQuCisgICAgSlNDOjpK
U01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNN
b2R1bGVSZWNvcmQqPihtb2R1bGVSZWNvcmRWYWx1ZSk7CisgICAgaWYgKCFtb2R1bGVSZWNvcmQp
CisgICAgICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CisKKyAgICBVUkwgc291cmNlVVJM
OworICAgIGlmIChtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBzb3VyY2VVUkwg
PSBtX2RvY3VtZW50LnVybCgpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobW9kdWxlS2V5
VmFsdWUuaXNTdHJpbmcoKSk7CisgICAgICAgIHNvdXJjZVVSTCA9IFVSTChQYXJzZWRVUkxTdHJp
bmcsIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykpOworICAgIH0KKworICAg
IGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCisgICAgICAgIHJldHVybiBm
cmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQpOwor
ICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjpu
b3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKiBmZXRjaGVyKQoreworICAgIG1fZmV0Y2hpbmdT
ZXQucmVtb3ZlKGZldGNoZXIpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01v
ZHVsZUxvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0OTM2OTY4MTY1ZWVkODU4MTAxNzgxY2QxODU0NzBj
OGViNWUwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9N
b2R1bGVMb2FkZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1
bGVMb2FkZXJfaAorI2RlZmluZSBNb2R1bGVMb2FkZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIk1vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgor
I2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworCitjbGFzcyBNb2R1bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IGV4cGxpY2l0IE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJl
cik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNDOjpK
U1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCisgICAg
dm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKik7Citwcml2YXRlOgorICAgIERvY3Vt
ZW50JiBtX2RvY3VtZW50OworICAgIEhhc2hTZXQ8UmVmUHRyPE1vZHVsZUZldGNoZXI+PiBtX2Zl
dGNoaW5nU2V0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9k
dWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHAKaW5kZXggNGIzYjA5NzJiZTc3ZjNjNzY1OTVmMTQwZTI2YTc0OGZmOGVhNDUwYy4u
OTliN2Y4YjYyYTRiN2ZlYWVmM2ZjNWI0YTdjZWQ3MThhNTNlZDNjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM2LDExICszNiwx
MyBAQAogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIk1haW5G
cmFtZS5oIgogI2luY2x1ZGUgIk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIgorI2luY2x1ZGUgIk1v
ZHVsZUdyYXBoLmgiCiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIK
ICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTU0LDcgKzU2LDExIEBACiAj
aW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHByb2ZpbGVy
L1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNp
bmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50
aW1lL0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1Rl
eHRQb3NpdGlvbi5oPgogCkBAIC04Niw2ICs5Miw3IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlw
dENvbnRyb2xsZXIoRnJhbWUmIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1f
c291cmNlVVJMKDApCiAgICAgLCBtX3BhdXNlZChmYWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVy
QWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogICAgICwgbV93aW5kb3dTY3JpcHROUE9iamVjdCgwKQogI2VuZGlmCkBAIC0xNzUsMTEg
KzE4MiwxMjggQEAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZh
bHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUKICAgICByZXR1cm4gRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOwogfQogCi1EZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiBzb3VyY2VDb2RlKSAKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAg
ICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29y
bGQoKSk7CiB9CiAKK3N0YXRpYyB2b2lkIGhhbmRsZU1vZHVsZUxvYWRlckVycm9yKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBlcnJvciwgY29uc3QgUHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFs
cmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKQoreworICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3Ig
aXMgbWFya2VkIGFzIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAg
IC8vIERvbid0IHJlcG9ydCBpdCBoZXJlIGFnYWluLgorICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9
IGpzRHluYW1pY0Nhc3Q8U3ltYm9sKj4oZXJyb3IpKSB7CisgICAgICAgIGlmIChzeW1ib2wtPnBy
aXZhdGVOYW1lKCkgPT0gbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgaGF2
ZSBub3Qgc3VwcG9ydGVkIHRoZSAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSBpbiB0aGUgbW9kdWxl
IHRhZywKKyAgICAvLyB3ZSBwYXNzIHRoZSBudWxscHRyIHRvIHJlcG9ydEV4Y2VwdGlvbidzIENh
Y2hlZFNjcmlwdCogcGFyYW1ldGVyLiBXaGVuIHBhc3NpbmcgbnVsbHB0cgorICAgIC8vIHRvIHJl
cG9ydEV4Y2VwdGlvbiwgV2ViQ29yZSBkb2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVy
cm9yIGlmIHRoZSBVUkwgb2YgdGhlCisgICAgLy8gc291cmNlIGRvZXMgbm90IHBhc3MgdGhlIHNh
bWUgb3JpZ2luIHBvbGljeS4gU28gdGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgY29uc2VydmF0aXZl
OworICAgIC8vIG9ubHkgdGhlIG1vZHVsZSBjb2RlIHRoYXQgVVJMIGlzIHdpdGhpbiB0aGUgc2Ft
ZSBvcmlnaW4gY2FuIHJlcG9ydCB0aGUgZGV0YWlscyBvZiB0aGUKKyAgICAvLyBlcnJvci4gT25j
ZSB0aGUgc3BlYyBkZXNjcmliZXMgdGhlIGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAg
ICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXJyb3IsIG51bGxwdHIpOworfQorCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwg
Y29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAg
IEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCog
c2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwt
PndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0TW9kdWxlR3JhcGgobW9kdWxlR3Jh
cGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKSwg
d29ybGQpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3Jh
cGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgbG9hZE1v
ZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChNb2R1
bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUs
IERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQu
dm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxk
KTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsK
KworICAgIGluaXRNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0YXRl
Ojpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCkpLCB3b3JsZCk7Cit9
CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxl
R3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgbG9hZE1v
ZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJ
bldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkK
K3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93
U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2Uq
IHByb21pc2UgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShl
eGVjLCBJZGVudGlmaWVyOjpmcm9tVWlkKCZleGVjLT52bSgpLCBtb2R1bGVHcmFwaC5tb2R1bGVL
ZXkoKSkpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtF
bGVtZW50UHRyKCkpOworICAgIEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVT
dGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5n
KCksIFt3ZWFrUHRyXShFeGVjU3RhdGUqKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBv
c3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsK
KworICAgIFByaXZhdGVOYW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9s
ID0gbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICBKU0Z1bmN0
aW9uKiByZWplY3RIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZt
KCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVw
b3J0ZWRFcnJvclN5bWJvbCwgd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIGlm
IChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0
b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5u
b3RpZnlFdmFsdWF0ZWQoKTsKKyAgICAgICAgaGFuZGxlTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywg
ZXhlYy0+YXJndW1lbnQoMCksIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9s
KTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9
KTsKKworICAgIHByb21pc2UtPnRoZW4oZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRs
ZXIpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShN
b2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgpCit7CisgICAgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5X
b3JsZChtb2R1bGVHcmFwaCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCitEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBV
UkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAg
IGNvbnN0IFNvdXJjZUNvZGUmIGpzU291cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29k
ZSgpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7
CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7Cisg
ICAgY29uc3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291
cmNlVVJMID0gJnNvdXJjZVVSTC5zdHJpbmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdCht
X2ZyYW1lKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3Vy
Y2VVUkwsIGpzU291cmNlQ29kZS5maXJzdExpbmUoKSk7CisKKyAgICBKU1ZhbHVlIHJldHVyblZh
bHVlID0gbW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShleGVjKTsKKyAgICBOYWtlZFB0cjxFeGNlcHRp
b24+IGV2YWx1YXRpb25FeGNlcHRpb247CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQor
ICAgICAgICBldmFsdWF0aW9uRXhjZXB0aW9uID0gZXhlYy0+dm0oKS5leGNlcHRpb24oKTsKKwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llLCBt
X2ZyYW1lKTsKKworICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKSB7CisgICAgICAgIHJlcG9y
dEV4Y2VwdGlvbihleGVjLCBldmFsdWF0aW9uRXhjZXB0aW9uLCBudWxscHRyKTsKKyAgICAgICAg
bV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6
OlNjcmlwdFZhbHVlKCk7CisgICAgfQorCisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVS
TDsKKyAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJu
VmFsdWUpOworfQorCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpl
dmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVs
ZVJlY29yZCkKK3sKKyAgICByZXR1cm4gZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVS
ZWNvcmQsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwogUmVmPERPTVdyYXBwZXJXb3Js
ZD4gU2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlV29ybGQoKQogewogICAgIHJldHVybiBET01XcmFw
cGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0yNzIsNiArMzk2
LDQxIEBAIEpTRE9NV2luZG93U2hlbGwqIFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCkKICAgICByZXR1cm4gd2luZG93U2hlbGw7CiB9CiAKK3N0YXRp
YyBJZGVudGlmaWVyIGpzVmFsdWVUb01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
dmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVu
dGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOwor
ICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyhleGVjLCBqc0Nhc3Q8SlNTdHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30K
Kwordm9pZCBTY3JpcHRDb250cm9sbGVyOjppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1v
ZHVsZUdyYXBoLCBKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxk
KTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsK
KworICAgIFdlYWtQdHI8RWxlbWVudD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0
cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rp
b246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vh
a1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQg
ZWxlbWVudCBhbmQgZG9jdW1lbnQgbWF5IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUg
bW9kdWxlLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBt
b2R1bGUgYm9keS4KKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0
ci5nZXQoKSkgeworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9N
b2R1bGVLZXkoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgdG9TY3JpcHRF
bGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5TG9h
ZGVkKG1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBtb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2w7CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9IEpT
TmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEs
IFN0cmluZygpLCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQ
dHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1l
bnQgPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJs
ZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXJyb3JlZCgpOworICAgICAg
ICBoYW5kbGVNb2R1bGVMb2FkZXJFcnJvcihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgbW9kdWxl
TG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOworICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhlbihl
eGVjLCBmdWxmaWxsSGFuZGxlciwgcmVqZWN0SGFuZGxlcik7Cit9CisKIFRleHRQb3NpdGlvbiBT
Y3JpcHRDb250cm9sbGVyOjpldmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgLy8g
RklYTUU6IElmIHdlIGFyZSBub3QgY3VycmVudGx5IHBhcnNpbmcsIHdlIHNob3VsZCB1c2Ugb3Vy
IGN1cnJlbnQgbG9jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuaAppbmRleCAwN2M1M2I3YzhlZGZiNGUyOGY1Y2ExM2FhMmM0ZTA1NTk0ZWY1MTIy
Li45MDFiNTNlYmFmNTRjNDc4ZjdkNDFlZjFkYzUxNTBjMWIwODVhOTZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCw5IEBA
IGNsYXNzIFNjcmlwdFZhbHVlOwogCiBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2Jh
bE9iamVjdDsKKyAgICBjbGFzcyBKU01vZHVsZVJlY29yZDsKKyAgICBjbGFzcyBKU0ludGVybmFs
UHJvbWlzZTsKKwogICAgIGNsYXNzIEV4ZWNTdGF0ZTsKIAogICAgIG5hbWVzcGFjZSBCaW5kaW5n
cyB7CkBAIC01Nyw2ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lOwog
Y2xhc3MgSFRNTERvY3VtZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CitjbGFzcyBNb2R1
bGVHcmFwaDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsK
IGNsYXNzIFdpZGdldDsKQEAgLTExNSw2ICsxMTksMTcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxl
ciB7CiAgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291
cmNlQ29kZSYpOwogICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlSW5Xb3JsZChj
b25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CiAKKyAgICB2b2lkIGxv
YWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBE
T01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmLCBjb25z
dCBTdHJpbmcmIG1vZHVsZU5hbWUpOworICAgIHZvaWQgbG9hZE1vZHVsZUluV29ybGQoTW9kdWxl
R3JhcGgmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAg
dm9pZCBsb2FkTW9kdWxlKE1vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwor
CisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiAsIERP
TVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKE1vZHVsZUdy
YXBoJik7CisKKyAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25z
dCBVUkwmLCBKU0M6OkpTTW9kdWxlUmVjb3JkKiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiwgSlNDOjpKU01v
ZHVsZVJlY29yZCopOworCiAgICAgV1RGOjpUZXh0UG9zaXRpb24gZXZlbnRIYW5kbGVyUG9zaXRp
b24oKSBjb25zdDsKIAogICAgIHZvaWQgZW5hYmxlRXZhbCgpOwpAQCAtMTM1LDYgKzE1MCw4IEBA
IGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogCiAgICAgY29uc3QgU3RyaW5nKiBzb3VyY2VVUkwo
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfSAvLyAwIGlmIHdlIGFyZSBub3QgZXZhbHVh
dGluZyBhbnkgc2NyaXB0CiAKKyAgICBjb25zdCBKU0M6OlByaXZhdGVOYW1lJiBtb2R1bGVMb2Fk
ZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTG9h
ZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7IH0KKwogICAgIHZvaWQgY2xlYXJXaW5kb3dT
aGVsbChET01XaW5kb3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOwog
ICAgIHZvaWQgdXBkYXRlRG9jdW1lbnQoKTsKIApAQCAtMTcwLDYgKzE4Nyw3IEBAIGNsYXNzIFNj
cmlwdENvbnRyb2xsZXIgewogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2lu
ZG93U2hlbGwqIGluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBpbml0TW9k
dWxlR3JhcGgoTW9kdWxlR3JhcGgmLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiwgRE9NV3JhcHBl
cldvcmxkJik7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsK
IApAQCAtMTc4LDYgKzE5Niw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIGNvbnN0
IFN0cmluZyogbV9zb3VyY2VVUkw7CiAKICAgICBib29sIG1fcGF1c2VkOworICAgIEpTQzo6UHJp
dmF0ZU5hbWUgbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKIAogICAg
IC8vIFRoZSByb290IG9iamVjdCB1c2VkIGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhlIGNv
bnRleHQgb2YgYSBwbHVnaW4sIHN1Y2gKICAgICAvLyBhcyBOUEFQSSBwbHVnaW5zLiBUaGUgcGx1
Z2lucyB1c2luZyB0aGVzZSBvYmplY3RzIHByZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVk
IHNvIHRoZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDdiMTFlMzlhMWEzZDBiNGEwMzdk
ZTgzNWZiOTIxZjgxY2MwMjI3ZDEuLmFiNjU1Yjc5ZGI0ZDdlYTM3ODA3MDUzODg5YjI3ZmZmNjYy
OTA2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA0LDYgKzEwNCw3IEBACiAjaW5j
bHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCiAjaW5j
bHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKICNp
bmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW5jbHVkZSAiTmFtZU5v
ZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCIKQEAgLTQ2NCw2
ICs0NjUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVy
bCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwogICAgICwgbV9zdGFydFRpbWUoc3Rk
OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpCiAgICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0
VGhyZXNob2xkKGZhbHNlKQogICAgICwgbV9zY3JpcHRSdW5uZXIoc3RkOjptYWtlX3VuaXF1ZTxT
Y3JpcHRSdW5uZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKHN0ZDo6bWFrZV91bmlx
dWU8TW9kdWxlTG9hZGVyPigqdGhpcykpCiAgICAgLCBtX3htbFZlcnNpb24oQVNDSUlMaXRlcmFs
KCIxLjAiKSkKICAgICAsIG1feG1sU3RhbmRhbG9uZShTdGFuZGFsb25lVW5zcGVjaWZpZWQpCiAg
ICAgLCBtX2hhc1hNTERlY2xhcmF0aW9uKGZhbHNlKQpAQCAtNjA1LDYgKzYwNyw3IEBAIERvY3Vt
ZW50Ojp+RG9jdW1lbnQoKQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRVbmxlc3NTdXNwZW5k
ZWRGb3JQYWdlQ2FjaGUoKTsKIAogICAgIG1fc2NyaXB0UnVubmVyID0gbnVsbHB0cjsKKyAgICBt
X21vZHVsZUxvYWRlciA9IG51bGxwdHI7CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGY5MTgwODlmMjNiMmZiM2ExOGRmYmQyMWY1Zjcw
Mzk4MDUwNzViYTcuLjlhNzhiMjM1YTY1OGI2MWM4OGMxYzY3ZjY3Y2JlZGU0NDFiOWE1NDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMzAsNiArMTMwLDcgQEAgY2xhc3MgTWVkaWFQbGF5YmFj
a1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1
ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworY2xhc3MgTW9kdWxlTG9hZGVyOwog
Y2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0NvbGxl
Y3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpAQCAtOTM0LDYgKzkzNSw3IEBAIGNsYXNzIERvY3Vt
ZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3Jp
cHRFeGVjdXRpb25DCiAgICAgRG9jdW1lbnQmIHRvcERvY3VtZW50KCkgY29uc3Q7CiAgICAgCiAg
ICAgU2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5n
ZXQoKTsgfQorICAgIE1vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gbV9tb2R1
bGVMb2FkZXIuZ2V0KCk7IH0KIAogICAgIEhUTUxTY3JpcHRFbGVtZW50KiBjdXJyZW50U2NyaXB0
KCkgY29uc3QgeyByZXR1cm4gIW1fY3VycmVudFNjcmlwdFN0YWNrLmlzRW1wdHkoKSA/IG1fY3Vy
cmVudFNjcmlwdFN0YWNrLmxhc3QoKS5nZXQoKSA6IDA7IH0KICAgICB2b2lkIHB1c2hDdXJyZW50
U2NyaXB0KFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+KTsKQEAgLTE1MTgsNiArMTUyMCw3
IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2Nv
cGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgYm9vbCBtX292ZXJNaW5pbXVtTGF5b3V0
VGhyZXNob2xkOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRSdW5uZXI+IG1fc2Ny
aXB0UnVubmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9h
ZGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4+IG1fY3VycmVudFNj
cmlwdFN0YWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlR3JhcGgu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDE3
YTJjZDRlOGIxZTQ2YjA1MDIxM2IzMDU5NjEzYzc3MjZhZTg3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisK
KyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1
bm5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitNb2R1bGVHcmFwaDo6TW9kdWxlR3JhcGgoRWxlbWVudCYgZWxlbWVudCkKKyAgICA6
IG1fZWxlbWVudChlbGVtZW50KQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSgmZWxlbWVudCkKK3sK
K30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBt
b2R1bGVLZXkpCit7CisgICAgbV9tb2R1bGVLZXkgPSBtb2R1bGVLZXk7CisgICAgbV9lbGVtZW50
LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVhZHkodG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6
Om5vdGlmeUVycm9yZWQoKQoreworICAgIG1fZXJyb3JlZCA9IHRydWU7CisgICAgbV9lbGVtZW50
LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVhZHkodG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6
OmV2YWx1YXRlKCkKK3sKKyAgICBpZiAobV9lcnJvcmVkKQorICAgICAgICB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICBlbHNl
IGlmIChGcmFtZSogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAg
ICBmcmFtZS0+c2NyaXB0KCkubGlua0FuZEV2YWx1YXRlTW9kdWxlKCp0aGlzKTsKK30KKwordm9p
ZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXZhbHVhdGVkKCkKK3sKKyAgICB0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaExvYWRFdmVudCgpOworfQorCit2b2lkIE1v
ZHVsZUdyYXBoOjpsb2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sKKyAgICBBU1NFUlQo
bV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCku
ZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgbW9kdWxlTmFtZSk7Cit9CisKK3Zv
aWQgTW9kdWxlR3JhcGg6OmxvYWQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkK
K3sKKyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVt
ZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgc291cmNl
Q29kZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFw
aC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE2ZTg5
N2NiYzAyODFlNWVmMTU4MTgwZGNhZTliZjYyYjY2YTBlOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIE1vZHVsZUdyYXBoX2gKKyNkZWZpbmUgTW9kdWxlR3JhcGhfaAorCisjaW5j
bHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21p
c2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBTY3Jp
cHRTb3VyY2VDb2RlOworCisvLyBLZWVwIGxpZmV0aW1lIG9mIGEgTW9kdWxlR3JhcGggdGhlIHNh
bWUgdG8gYSBTY3JpcHRFbGVtZW50LgorY2xhc3MgTW9kdWxlR3JhcGggeworICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE1vZHVsZUdyYXBoKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgTW9kdWxlR3JhcGgoRWxlbWVudCYpOworCisgICAgRWxlbWVudCYg
ZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsgfQorICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBt
b2R1bGVLZXkoKSB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQorCisgICAgdm9pZCBsb2Fk
KGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisgICAgdm9pZCBsb2FkKGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmKTsKKyAgICB2b2lkIGV2YWx1YXRlKCk7CisKKyAgICBXZWFrUHRyPEVsZW1lbnQ+
IHdlYWtFbGVtZW50UHRyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRlZChVbmlxdWVk
U3RyaW5nSW1wbCogbW9kdWxlS2V5KTsKKyAgICB2b2lkIG5vdGlmeUVycm9yZWQoKTsKKworICAg
IHZvaWQgbm90aWZ5RXZhbHVhdGVkKCk7CisKKyAgICBib29sIGVycm9yT2NjdXJyZWQoKSBjb25z
dCB7IHJldHVybiBtX2Vycm9yZWQ7IH0KKyAgICBib29sIGlzTG9hZGVkKCkgY29uc3QgeyByZXR1
cm4gbV9tb2R1bGVLZXk7IH0KKworcHJpdmF0ZToKKworICAgIEVsZW1lbnQmIG1fZWxlbWVudDsK
KyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1fbW9kdWxlS2V5OworICAgIFdlYWtQdHJG
YWN0b3J5PEVsZW1lbnQ+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAgYm9vbCBtX2Vycm9yZWQgeyBm
YWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9kdWxl
TG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA2NmJiZWNlMWQz
NWUxYTQ3NjNiZjllYmViZjBmMGMxMmNkYmVmMWQ3Li4yZWM2YmRlOWRiMmY3ZDcyNjUwMDM1YTli
MTJkYmM2ODViNjczNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkln
bm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgpA
QCAtMTYxLDYgKzE2MiwxMCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OmlzU2NyaXB0VHlwZVN1cHBv
cnRlZChMZWdhY3lUeXBlU3VwcG9ydCBzdXBwb3J0TGVnYWN5VHlwZXMpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9IGVsc2UgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVk
SmF2YVNjcmlwdE1JTUVUeXBlKHR5cGUuc3RyaXBXaGl0ZVNwYWNlKCkubG93ZXIoKSkgfHwgKHN1
cHBvcnRMZWdhY3lUeXBlcyA9PSBBbGxvd0xlZ2FjeVR5cGVJblR5cGVBdHRyaWJ1dGUgJiYgaXNM
ZWdhY3lTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UodHlwZSkpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKKyNpZiBFTkFCTEUoRVM2X01PRFVMRVMpCisgICAgZWxzZSBpZiAodHlwZSA9PSAibW9k
dWxlIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKQEAgLTIxNyw2ICsyMjIsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQo
Y29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAgIGVsc2UK
ICAgICAgICAgbV9jaGFyYWN0ZXJFbmNvZGluZyA9IGRvY3VtZW50LmNoYXJzZXQoKTsKIAorICAg
IGlmIChpc01vZHVsZVR5cGUoKSkKKyAgICAgICAgcmV0dXJuIGxvYWRNb2R1bGUoc2NyaXB0U3Rh
cnRQb3NpdGlvbik7CisKICAgICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpCiAgICAgICAgIGlm
ICghcmVxdWVzdFNjcmlwdChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTMxNyw2ICszMjUsOSBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OnN0b3BM
b2FkUmVxdWVzdCgpCiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRo
aXMpOwogICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IDA7CiAgICAgfQorICAgIC8vIEZJWE1FOiBU
aGUgbW9kdWxlIGxvYWRlciBzaG91bGQgaGF2ZSB0aGUgbWVjaGFuaXNtIHRvIHN0b3AgbG9hZGlu
Zy4KKyAgICAvLyBUaGUgY3VycmVudCBsb2FkZXIgc3BlYyBkb2VzIG5vdCBoYXZlIHRoaXMuIE9u
Y2UgaXQgaXMgc3BlY2lmaWVkCisgICAgLy8gd2Ugd2lsbCBpbnRyb2R1Y2UgdGhpcyBmZWF0dXJl
LgogfQogCiB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRT
Y3JpcHQpCkBAIC0zMzIsNiArMzQzLDU3IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShD
YWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKICAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVu
dCh0aGlzKTsKIH0KIAorYm9vbCBTY3JpcHRFbGVtZW50Ojpsb2FkTW9kdWxlKGNvbnN0IFRleHRQ
b3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3sKKyAgICAvLyBUaGUgYnJvd3NlciBtb2R1
bGUgbG9hZGVyIGxvYWRzIHRoZSBtb2R1bGUgc291cmNlcy4KKyAgICAvLyBTaW5jZSB0aGUgbW9k
dWxlIGludm9sdmVzIGxvYWRpbmcgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzIGFuZCB0aGUgZGVw
ZW5kZW50IG1vZHVsZXMgZG9lcyBub3QgaGF2ZSBjb3JyZXNwb25kaW5nIHNjcmlwdCBlbGVtZW50
cywKKyAgICAvLyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBsb2FkaW5nIG1vZHVsZXMgaXMgc2VwYXJh
dGVkIGZyb20gdGhlIHNjcmlwdCBlbGVtZW50LgorICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUo
KSkgeworICAgICAgICBTdHJpbmcgc291cmNlVXJsID0gc291cmNlQXR0cmlidXRlVmFsdWUoKTsK
KyAgICAgICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50KG1fZWxlbWVudC5kb2N1bWVu
dCgpKTsKKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291
cmNlVXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBTY3JpcHQg
ZWxlbWVudCBtYXkgYmUgZGV0YWNoZWQgYW5kIGF0dGFjaGVkIHRvIGEgZGlmZmVyZW50IGRvY3Vt
ZW50IHdoaWxlIGV4ZWN1dGluZyB0aGUgZXZlbnQgbGlzdGVuZXIuCisgICAgICAgIGlmICghbV9l
bGVtZW50LmluRG9jdW1lbnQoKSB8fCAmbV9lbGVtZW50LmRvY3VtZW50KCkgIT0gb3JpZ2luYWxE
b2N1bWVudC5wdHIoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAo
c3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgc3VwcG9ydCBjcm9z
cy1vcmlnaW4gbW9kZSBpbiB0aGUgbW9kdWxlIHRhZy4KKyAgICAgICAgLy8gSG93ZXZlciB3ZSBk
b24ndCBoYXZlIHRoZSBwb2xpY3kgdG8gYXBwbHkgdGhpcyBtb2RlIHRvIHRoZSByZXNvdXJjZXMg
b2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAvLyBQcm92aWRlZCBtdWx0aXBsZSBt
b2R1bGUgdGFncywKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICBBOiA8c2NyaXB0IHR5cGU9Im1v
ZHVsZSIgc3JjPSIuLi4iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PgorICAgICAg
ICAvLyAgIEI6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiI+PC9zY3JpcHQ+CisgICAg
ICAgIC8vCisgICAgICAgIC8vICdBJyBoYXMgdGhlICJjcm9zc29yaWdpbiIgYXR0cmlidXRlLiBC
dXQgJ0InIGRvZXMgbm90IGhhdmUgaXQuCisgICAgICAgIC8vIEhvd2V2ZXIsIEVTNiBtb2R1bGVz
IGFsbG93ICdBJyBhbmQgJ0InIHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGFuZCBpdCB3aWxsIGJl
IGNhY2hlZCBpbiB0aGUKKyAgICAgICAgLy8gbW9kdWxlIGxvYWRlci4gSW4gdGhhdCBjYXNlLCBp
dCBpcyBjb250cm92ZXJzaWFsIHRoYXQgd2hpY2ggImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUgd2ls
bCBiZQorICAgICAgICAvLyBhcHBsaWVkIHRvIHRoZSBtb2R1bGUgbG9hZGVkIGJ5IHRoZSBib3Ro
LiBPbmNlIHRoZSBzcGVjIG9mIHRoZSBtb2R1bGUgbG9hZGVyIGlzIGZpeGVkLCB3ZQorICAgICAg
ICAvLyBzaG91bGQgZm9sbG93IGl0LgorCisgICAgICAgIG1faXNFeHRlcm5hbFNjcmlwdCA9IHRy
dWU7CisgICAgICAgIG1fbW9kdWxlR3JhcGggPSBzdGQ6Om1ha2VfdW5pcXVlPE1vZHVsZUdyYXBo
PihtX2VsZW1lbnQpOworICAgICAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIo
KS0+cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbih0aGlzLCAqbV9tb2R1bGVHcmFwaCk7Cisg
ICAgICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmICghbV9lbGVtZW50LmRvY3VtZW50KCku
Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1
bWVudCgpLnVybCgpLCBtX3N0YXJ0TGluZU51bWJlciwgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRT
aGFkb3dUcmVlKCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIFJlc2V0IGxpbmUg
bnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgorICAgIFRleHRQb3NpdGlvbiBwb3NpdGlvbiA9
IG1fZWxlbWVudC5kb2N1bWVudCgpLmlzSW5Eb2N1bWVudFdyaXRlKCkgPyBUZXh0UG9zaXRpb24o
KSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CisgICAgbV9tb2R1bGVHcmFwaCA9IHN0ZDo6bWFrZV91
bmlxdWU8TW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCku
c2NyaXB0UnVubmVyKCktPnF1ZXVlTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24odGhpcywgKm1fbW9k
dWxlR3JhcGgpOworICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoU2NyaXB0U291cmNlQ29kZShzY3Jp
cHRDb250ZW50KCksIG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBwb3NpdGlvbikpOworICAg
IHJldHVybiB0cnVlOworfQorCiB2b2lkIFNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQoIW1fd2lsbEJlUGFyc2VyRXhl
Y3V0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggYjdlNzNkMGRlZTgzZDMy
NGU4NzJmN2JjNGMxYjkzM2RjOTZjMTEyYS4uNmU1YzIxNDI5NGQ4MTk2OGM4NmUwZDA3YTY5NzA3
NDM5NGExYzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0zMSw2ICszMSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENvbnRh
aW5lck5vZGU7CiBjbGFzcyBFbGVtZW50OworY2xhc3MgTW9kdWxlR3JhcGg7CiBjbGFzcyBTY3Jp
cHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIApAQCAtNTksNiArNjAsNyBAQCBj
bGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAg
Ym9vbCByZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlUb0Jl
UGFyc2VyRXhlY3V0ZWQ7IH0KICAgICBib29sIHdpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNo
ZWRQYXJzaW5nKCkgY29uc3QgeyByZXR1cm4gbV93aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlz
aGVkUGFyc2luZzsgfQogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2Fj
aGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQ7IH0KKyAgICBNb2R1bGVHcmFwaCog
bW9kdWxlR3JhcGgoKSB7IHJldHVybiBtX21vZHVsZUdyYXBoLmdldCgpOyB9CiAKIHByb3RlY3Rl
ZDoKICAgICBTY3JpcHRFbGVtZW50KEVsZW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlciwgYm9v
bCBpc0V2YWx1YXRlZCk7CkBAIC04Miw2ICs4NCw4IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBw
cml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIHJlcXVlc3RTY3JpcHQoY29u
c3QgU3RyaW5nJiBzb3VyY2VVcmwpOwogICAgIHZvaWQgc3RvcExvYWRSZXF1ZXN0KCk7CiAKKyAg
ICBib29sIGxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9u
KTsKKwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBTdHJpbmcgc291cmNlQXR0cmlidXRlVmFsdWUoKSBjb25z
dCA9IDA7CkBAIC05Myw2ICs5Nyw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENh
Y2hlZFJlc291cmNlQ2xpZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1
ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBjb25zdCA9IDA7CiAKICAgICBFbGVt
ZW50JiBtX2VsZW1lbnQ7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBt
X2NhY2hlZFNjcmlwdDsKQEAgLTEwOSw2ICsxMTQsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDog
cHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCBtX3JlcXVlc3RVc2VzQWNj
ZXNzQ29udHJvbCA6IDE7CiAgICAgU3RyaW5nIG1fY2hhcmFjdGVyRW5jb2Rpbmc7CiAgICAgU3Ry
aW5nIG1fZmFsbGJhY2tDaGFyYWN0ZXJFbmNvZGluZzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9k
dWxlR3JhcGg+IG1fbW9kdWxlR3JhcGg7CiB9OwogCiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAK
aW5kZXggOTYzNjk4MDRhZDhmMDc0YmQ3MzZhZmJmYjUwMmE0NWZjOTE1NzYwMS4uYWIxZDg4ZWFm
NzU3NWQzNDQ2ZjM0MGEzMTVlZmEwMTIzNGEyZjUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1
bm5lci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWljcm9UYXNrLmgiCisjaW5jbHVkZSAiTW9k
dWxlR3JhcGguaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAiU2NyaXB0
RWxlbWVudC5oIgogCkBAIC00OCw2ICs0OSwxMCBAQCBTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5u
ZXIoKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nQXN5bmNTY3JpcHRzLnNpemUo
KTsgKytpKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQo
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4
ZWN1dGVTb29uLnNpemUoKTsgKytpKQorICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRF
dmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5n
TW9kdWxlU2NyaXB0RWxlbWVudHMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQuZGVj
cmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogfQogCiB2b2lkIFNjcmlwdFJ1bm5lcjo6cXVl
dWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQsIEV4ZWN1dGlvblR5cGUg
ZXhlY3V0aW9uVHlwZSkKQEAgLTcxLDYgKzc2LDE4IEBAIHZvaWQgU2NyaXB0UnVubmVyOjpxdWV1
ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNoZWRS
CiAgICAgfQogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1
dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBNb2R1bGVHcmFwaCYpCit7CisgICAg
QVNTRVJUKHNjcmlwdEVsZW1lbnQpOworCisgICAgRWxlbWVudCYgZWxlbWVudCA9IHNjcmlwdEVs
ZW1lbnQtPmVsZW1lbnQoKTsKKyAgICBBU1NFUlQoZWxlbWVudC5pbkRvY3VtZW50KCkpOworCisg
ICAgbV9kb2N1bWVudC5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisKKyAgICBtX3Bl
bmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5hZGQoJmVsZW1lbnQpOworfQorCiB2b2lkIFNjcmlw
dFJ1bm5lcjo6c3VzcGVuZCgpCiB7CiAgICAgbV90aW1lci5zdG9wKCk7CkBAIC05Nyw2ICsxMTQs
MjYgQEAgdm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeVNjcmlwdFJlYWR5KFNjcmlwdEVsZW1lbnQq
IHNjcmlwdEVsZW1lbnQsIEV4ZWN1dGlvblR5cGUKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKIH0KIAordm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeU1vZHVsZUdyYXBoUmVhZHkoU2NyaXB0
RWxlbWVudCogc2NyaXB0RWxlbWVudCkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHNjcmlwdEVsZW1l
bnQsIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmNvbnRhaW5zKCZzY3JpcHRFbGVtZW50
LT5lbGVtZW50KCkpKTsKKworICAgIC8vIExpc3RIYXNoU2V0IGNvcnJlY3RseSBwcmVzZXJ2ZXMg
dGhlIGluc2VydGlvbiBvcmRlci4KKyAgICAvLyBBbmQgaXQgYWxsb3cgdXMgdG8gcmVtb3ZlIGVs
ZW1lbnQgZHVyaW5nIGl0ZXJhdGlvbi4KKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9wZW5kaW5nTW9k
dWxlU2NyaXB0RWxlbWVudHMuYmVnaW4oKTsKKyAgICB3aGlsZSAoaXRlcmF0b3IgIT0gbV9wZW5k
aW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuZW5kKCkpIHsKKyAgICAgICAgTW9kdWxlR3JhcGgqIG1v
ZHVsZUdyYXBoID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShpdGVyYXRvci0+Z2V0KCkpLT5t
b2R1bGVHcmFwaCgpOworICAgICAgICBpZiAoIW1vZHVsZUdyYXBoLT5lcnJvck9jY3VycmVkKCkg
JiYgIW1vZHVsZUdyYXBoLT5pc0xvYWRlZCgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGF1dG8gcHJldmlvdXMgPSBpdGVyYXRvcjsKKyAgICAgICAgKytpdGVyYXRvcjsKKyAgICAgICAg
bV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uYXBwZW5kKCpwcmV2aW91cyk7Cisg
ICAgICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLnJlbW92ZShwcmV2aW91cyk7Cisg
ICAgfQorICAgIGlmICghbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0
eSgpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwogdm9pZCBTY3JpcHRS
dW5uZXI6OnRpbWVyRmlyZWQoKQogewogICAgIFJlZjxEb2N1bWVudD4gcHJvdGVjdChtX2RvY3Vt
ZW50KTsKQEAgLTEyMSw2ICsxNTgsMjEgQEAgdm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQo
KQogICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5leGVj
dXRlKGNhY2hlZFNjcmlwdCk7CiAgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50
RGVsYXlDb3VudCgpOwogICAgIH0KKworICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IG1vZHVs
ZVNjcmlwdEVsZW1lbnRzOworICAgIG1vZHVsZVNjcmlwdEVsZW1lbnRzLnN3YXAobV9tb2R1bGVT
Y3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24pOworCisgICAgZm9yIChSZWZQdHI8RWxlbWVudD4m
IHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50IDogbW9kdWxlU2NyaXB0RWxlbWVudHMpIHsKKyAg
ICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQ7CisgICAgICAgIHBlbmRpbmdNb2R1bGVTY3Jp
cHRFbGVtZW50LnN3YXAoZWxlbWVudCk7CisgICAgICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICAg
ICAgLy8gUGFwZXIgb3ZlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ0MDUwCisgICAgICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFw
aCgpLT5ldmFsdWF0ZSgpOworICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERl
bGF5Q291bnQoKTsKKyAgICB9CisKICAgICBNaWNyb1Rhc2tRdWV1ZTo6c2luZ2xldG9uKCkucnVu
TWljcm9UYXNrcygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKaW5kZXggMjdjZGJm
OGIzYWY1Njk0NjJlNWI5YWViMTZjZDc2NTA1MDg5MWUwZC4uMTIyMTQ4NWUwZTU3ZGZhNjNlNDQ0
ZjQ4MjlhYWM3MDRlMWExNTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzcsNiArMzgsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERvY3VtZW50Owor
Y2xhc3MgRWxlbWVudDsKK2NsYXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgUGVuZGluZ1NjcmlwdDsK
IGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiAKQEAgLTQ4LDExICs1MSwxNCBAQCBjbGFzcyBTY3JpcHRS
dW5uZXIgewogCiAgICAgZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhFQ1VUSU9OLCBJTl9P
UkRFUl9FWEVDVVRJT04gfTsKICAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlw
dEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+LCBFeGVjdXRpb25U
eXBlKTsKLSAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2Ny
aXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVy
LmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHkoKTsgfQorICAgIHZv
aWQgcXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgTW9kdWxlR3Jh
cGgmKTsKKyAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2Ny
aXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVy
LmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHkoKSB8fCAhbV9tb2R1
bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdNb2R1
bGVTY3JpcHRFbGVtZW50cy5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHN1c3BlbmQoKTsKICAgICB2
b2lkIHJlc3VtZSgpOwogICAgIHZvaWQgbm90aWZ5U2NyaXB0UmVhZHkoU2NyaXB0RWxlbWVudCos
IEV4ZWN1dGlvblR5cGUpOwogCisgICAgdm9pZCBub3RpZnlNb2R1bGVHcmFwaFJlYWR5KFNjcmlw
dEVsZW1lbnQqKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHRpbWVyRmlyZWQoKTsKIApAQCAtNjAs
NiArNjYsOCBAQCBjbGFzcyBTY3JpcHRSdW5uZXIgewogICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0
PiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyOwogICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBt
X3NjcmlwdHNUb0V4ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2Vi
LWFwcHMvY3VycmVudC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhlY3V0ZS1hcy1z
b29uLWFzLXBvc3NpYmxlCiAgICAgSGFzaE1hcDxTY3JpcHRFbGVtZW50KiwgUGVuZGluZ1Njcmlw
dD4gbV9wZW5kaW5nQXN5bmNTY3JpcHRzOworICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IG1f
bW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uOworICAgIExpc3RIYXNoU2V0PFJlZlB0
cjxFbGVtZW50Pj4gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHM7CiAgICAgVGltZXIgbV90
aW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5k
ZXggZTEzYTVjZGRjY2EyY2IzYjc1NmE4ZDNhNTdlMjNmODBhOWI0M2U0OC4uZDE1ZWI3MWJlM2Y2
YmNmYjEwNzgyZjk3NDg3NWI0MDBiYzBkNzE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5jcHAKQEAgLTE2MSw2ICsxNjEsMTUgQEAgYm9vbCBIVE1MU2NyaXB0RWxl
bWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gZmFzdEhhc0F0dHJp
YnV0ZShzcmNBdHRyKTsKIH0KIAorYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBl
KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoRVM2X01PRFVMRVMpCisgICAgcmV0dXJuIGZhc3RHZXRB
dHRyaWJ1dGUodHlwZUF0dHIpLnN0cmluZygpID09ICJtb2R1bGUiOworI2Vsc2UKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKwogdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hM
b2FkRXZlbnQoKQogewogICAgIEFTU0VSVCghaGF2ZUZpcmVkTG9hZEV2ZW50KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDMxMmM2NjI2ZThiODMxNGU4NWUy
ZGY2ODdkYmYwOWYyYjJmZTM3YjIuLjFkZmQ4YzhiNzNlODcyYWJjZDVlYjRiMzQyZTc5MmQzMzUw
M2U3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTYyLDYg
KzYyLDcgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1l
bnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNBdHRyaWJ1
dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0
ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGhhc1NvdXJjZUF0dHJp
YnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92
ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggOGFk
ZmNmYTQxMGFiZTQ3ZTMzMjRhZTViOGQ5MjQzZjU2NjY0NWQ5NS4uYmE1ZjA2ZjQ0YjZiMTE3ZmNi
YjYyMzM1MzhlMmUxNGNkN2Y4ZTY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmNwcApAQCAtMTUxLDYgKzE1MSwxMSBAQCBib29sIFNWR1NjcmlwdEVsZW1lbnQ6OmRlZmVy
QXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBTVkdT
Y3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsK
K30KKwogYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdAog
ewogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggNTM1ZTQyZTZmMDY0NmQ4MDEwNDE5MDkz
YzYyMjkyNGIzODNkNzEwMS4uOGFmZGUzMTEyNWU1ZGQ0OThkYjgyYTRlMDk4M2FiMDc0ZTBkY2M2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC02Miw2ICs2Miw3IEBA
IGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudAogICAgIHZp
cnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGUgeyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkOjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWU0YmRiYzY1YmZiMDE4
OTc0YzdkNTczNjRiOGJiOGU4M2QzZTNjZS4uNWQ2NDk2YzY0MWExYThhN2VlMjFhYWE2ZTc0Y2Q4
ZTVhMmMxZTIwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE1LTA5LTIzICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVncmF0ZSBF
UzYgTW9kdWxlcyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBtb2R1bGVzLgorCisgICAgICAgICogVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1p
bnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJy
b3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJv
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQt
dG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWlj
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1m
cm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2lu
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1l
dmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZv
dW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1h
bmQtaW1wb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5k
LWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbDogQWRkZWQuCisg
ICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNp
ZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRp
b24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8t
b25lcnJvci5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
bWl4ZWQtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanM6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qczogQWRkZWQu
CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanM6
IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90eXBlLnRhc3RlKToK
KyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGV4cG9ydC5k
ZWZhdWx0LkNvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChleHBvcnQuZGVmYXVsdC5D
b2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13
aXRoLXNyYy5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qczogQWRkZWQuCisg
ICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LXdpdGgtc3JjLWFuZC1pbXBvcnQuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzOiBBZGRlZC4KKyAgICAgICAgKENvY29h
LnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChDb2NvYSk6CisgICAgICAgICoganMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanM6IEFkZGVkLgorICAgICAg
ICAoQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKENvY29hKToKKyAgICAgICAgKiBq
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qczogQWRk
ZWQuCisKIDIwMTUtMDktMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsIG91dCByMTkwMDg1IGFzIGl0IHNlZW1zIHRvIGNhdXNlIGNy
YXNoZXMgaW4gSlNDCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MzZlNmMzNWM3OWM2YTRhYTY3MTg1
OTI3ODU1NTM5YjdjNWNlODA4Li40NWYwNzdmY2YzYThhZGRhY2E3YzEwZTUxYjNkYjRmYmI2ZDI1
MGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY3OCwzICs2NzgsMjEgQEAgd2Via2l0Lm9yZy9i
LzE0ODY5NSBmYXN0L3NoYWRvdy1kb20gWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3Zl
cnJpZGVzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMTQ5MjE4IGh0dHAv
dGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudHMuaHRtbCBbIFBhc3MgQ3Jhc2ggVGltZW91dCBdCisK
KyMgRVM2IE1vZHVsZXMgYXJlIG5vdCB5ZXQgZW5hYmxlZCBieSBkZWZhdWx0OiBFTkFCTEUoRVM2
X01PRFVMRVMpCitqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50
LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgWyBTa2lwIF0KK2pz
L2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJy
b3IuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLmh0
bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwgWyBT
a2lwIF0KK2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbCBbIFNraXAgXQoranMvZG9t
L21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbG9hZC1l
dmVudC13aXRoLXNyYy5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRt
bCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50
LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1sb2FkLXNh
bWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgWyBTa2lwIF0KK2pzL2Rv
bS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbCBb
IFNraXAgXQoranMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbCBbIFNr
aXAgXQoranMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9k
dWxlLXNyYy1zaW1wbGUuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVm
b3JlbG9hZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9w
YWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliZGIyNzVhMmZiODM0
ODk2NGZiZThkZWI4MjU1M2I0YjlkYjlhNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACitUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgZGVwZW5kZW50
IG1vZHVsZSB0aHJvdyBhbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIHRoZSBkZXBlbmRlbnQgbW9k
dWxlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5z
aWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1s
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVu
ZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE3N2I1ZGQ3NjRkYmUyNDM0MjNkMWMzOGUzNzRjYzBmZGRjMjQzNzEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUt
ZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKQEAg
LTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oJ1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBkZXBlbmRlbnQg
bW9kdWxlIHRocm93IGFuIGVycm9yLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5
bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uICgpIHsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUi
PgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVw
ZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzIgordGVzdEZh
aWxlZCgiZXhlY3V0ZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNWRmNzAyOGYzNTQ5MzY2OTI5MjJlZmU2MWEyZGZiYTVmMWYw
OTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRp
b24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhl
IGlubGluZWQgbW9kdWxlIHRocm93cyBhbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIHRoZSBtb2R1
bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hv
dWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM0NDYyZjM3ZWQ4MTczMDYxZjdmOTk1MzZjNDJkMjk5NWMyNTI3MjgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJv
ci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKQEAgLTAsMCArMSwyMiBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgd2luZG93
Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBpbmxpbmVkIG1vZHVsZSB0aHJvd3MgYW4g
ZXJyb3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitkZWJ1ZygnRXhlY3V0
aW5nIHRoZSBtb2R1bGUuJyk7Cit0aHJvdyBuZXcgRXJyb3IoIm1vZHVsZSBpcyBleGVjdXRlZC4i
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmZmZGYzMzk3NTdhNGEzNzk2NGU4ODlhZWM2OWFmY2M1OTlhYjc4ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LWlubGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgZXhlY3V0
aW9uIG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBjb3VudCsr
IGlzIDAKK1BBU1MgY291bnQrKyBpcyAxCitQQVNTIGNvdW50KysgaXMgMgorUEFTUyBjb3VudCsr
IGlzIDMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1p
bmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlu
bGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MjVlNzY5MDhjZmI2ZmVhMDEwN2Y0ZGFhZGQxZDI5MzFi
ZjNjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1
dGlvbi1vcmRlci1pbmxpbmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVy
IGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4nKTsKK3dpbmRvdy5jb3VudCA9IDA7CisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK3Nob3Vs
ZEJlKCJjb3VudCsrIiwgIjAiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgor
c2hvdWxkQmUoImNvdW50KysiLCAiMSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVs
ZSI+CitzaG91bGRCZSgiY291bnQrKyIsICIyIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
bW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKK2ZpbmlzaEpTVGVzdCgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjM3ZjUyNGY1MzE5MDVkOGE1M2Y0NGEzM2FiNmZmYjQwMDEyMTAzMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIg
YmV0d2VlbiBtaXhlZCB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworV2Ug
a2VlcCB0aGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbW9kdWxlcy4KK01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LgorUEFTUyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQrKyBpcyAxCitQQVNT
IGNvdW50KysgaXMgMgorUEFTUyBjb3VudCsrIGlzIDMKK1BBU1MgY291bnQrKyBpcyA0CitQQVNT
IGNvdW50KysgaXMgNQorUEFTUyBjb3VudCsrIGlzIDYKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTkxZDMwM2Vk
ZDc1NzczODEyOGRkOWQxNWJiNDBjN2U3NmMyY2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApAQCAtMCwwICsx
LDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVz
dCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbWl4ZWQgdGFncy4nKTsKK2RlYnVnKCdX
ZSBrZWVwIHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLicpOword2luZG93LmNv
dW50ID0gMDsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRl
ZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InNjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjQiKTsKKzwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItbWl4ZWQtMi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitzaG91bGRC
ZSgiY291bnQrKyIsICI2Iik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHlu
YW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5h
bWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzkzOWFhZjBhNTAxNWY0NzkzODZjZDMxOTVh
YTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1pbmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBpbmxp
bmVkIG1vZHVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBu
b3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9k
dWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1Mg
dHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0
ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5l
LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hOGMwZTI1OWFiMjkxZWZmYzRiZWU3OGFlNjVjMzQxN2MxMWQwNWVl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHlu
YW1pYy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlLicpOworCisvLyBNb2R1bGUgd2ls
bCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4nKTsKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzY3JpcHQiKTsKKyAgICBlbGVtZW50LnRleHRDb250ZW50ID0gYAorICAgICAgICBp
bXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpz
IjsKKyAgICAgICAgdmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKKyAgICAgICAgZGVidWcoIk1v
ZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4iKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVk
Iik7CisKKyAgICAgICAgd2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmplY3QiKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAiYXdl
c29tZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBgOworICAgIGVsZW1lbnQudHlw
ZSA9ICJtb2R1bGUiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit9
ICgpKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM5
MzlhYWYwYTUwMTVmNDc5Mzg2Y2QzMTk1YWE1OWRkMTY5MDk3NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNCBAQAorVGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlv
biBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29j
b2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIK
K1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhiY2YwNjBkMWJkNjk0NWIw
ODkxNmViYTE1MjlhNTU4ZmU2YjJkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9kdWxl
LicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1
bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1
bGUiPgoraW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2lt
cGxlLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1
dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBv
cnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRl
ZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29h
LnRhc3RlKCkiLCAiYXdlc29tZSIpOworZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1l
dmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NjI2NjgwMmRhNTdjNzU4Y2UzZTRhMmYzMWQ3ODkw
ZDBlNWI3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxv
YWQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1
dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBhbiBpbmxpbmVkIG1vZHVs
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgt
c3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGEyZjliOTk2MTZmZjQ3MGFlZTJhNDVlNzJi
YmRhNmVmYWNkNDA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0
IHNjcmlwdC5vbmxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3Jj
IGxvYWRzIGFuZCBleGVjdXRlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01v
ZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGEgbW9kdWxlIHdpdGggc3JjIGF0
dHJpYnV0ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0
aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNy
Yy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ5NGE0YTMwNzBhOTZlNmRhY2JkOGI3NDZhNzdjMDU3YTQyYzU2
YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZl
bnQtd2l0aC1zcmMuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25sb2FkIHdpbGwgYmUgZmlyZWQg
d2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBsb2FkcyBhbmQgZXhlY3V0ZXMuJyk7CisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0KCkiIHNyYz0i
c2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9h
ZC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWJiOGM4MDlmMmQ0NWNkM2YzMTc4OWFmZTJkZjdiMzBkY2UxZjQ1ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0YWdzLicpOworLy8g
TW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgpIj4KK2Rl
YnVnKCdFeGVjdXRpbmcgYW4gaW5saW5lZCBtb2R1bGUuJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1l
LW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MWFiNDlkMTQ5
NzYyNGRmMjJlMDM0Nzk3YjM5YWE4ZWM4Njk0ZWNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKzIgZGlmZmVyZW50
IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGZyb20gYSBk
eW5hbWljYWxseSBnZW5lcmF0ZWQgdGFnCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUg
c2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1k
eW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUt
ZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZDUx
ZTJiNmNlYTg2MTdiYWNmMGM0MGUzMzdlOTA5YTFkMzFhMzgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQt
ZW50cnktcG9pbnQtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCcyIGRpZmZlcmVudCBtb2R1bGUgdGFnIHdp
bGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBmcm9tIGEgZHluYW1pY2FsbHkgZ2Vu
ZXJhdGVkIHRhZycpOworZGVidWcoJ0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0
aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4nKTsKKy8v
IE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyIKK2RlYnVn
KCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic2NyaXB0Iik7CitlbGVtZW50LnR5cGUgPSAibW9kdWxlIjsKK2VsZW1lbnQuaW5u
ZXJUZXh0ID0gInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZl
cmVudC1lbnRyeS1wb2ludC5qcyI7CitlbGVtZW50Lm9uZXJyb3IgPSBmaW5pc2hKU1Rlc3QoKTsK
K2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1l
LW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnkt
cG9pbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZjk4ZmNjYjZmYWZhMDY0NDdlMzAzMmVm
MDZkOTgyMDI3ZjI1MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTQgQEAKKzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0
IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUg
c2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorRXhlY3V0aW5nIHRoZSBtb2R1bGUu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxv
YWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MDZkNGUwYjYzY2RjMDEyNzQxMzNiZWZkOTM4NDQyNTU1NThiMTg3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlm
ZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2ls
bCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlJyk7CitkZWJ1ZygnQ3VycmVudGx5LCB0
aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNob3VsZCBiZSBmaXhl
ZCBpbiB0aGUgZnV0dXJlLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9u
b3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5v
dCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2lt
cG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50
LWVudHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3QoKSI+CitpbXBv
cnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYz
OGJhM2MyZTc5OTc3ZTJjOWY3OTM0ODA5NzM2ZmQ5ODM3ZDcyZjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJub3QtZm91bmQuanMiLiBFeHBlY3RlZCAn
ZnJvbScgYmVmb3JlIGltcG9ydGVkIG1vZHVsZSBuYW1lLgorVGVzdCBzY3JpcHQub25lcnJvciB3
aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUgaW1wb3J0IGRl
Y2xhcmF0aW9uIGluIHRoZSBpbmxpbmVkIG1vZHVsZSBpcyBub3QgZm91bmQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNy
Yy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90
LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc0ODc4NzUwMWExMjkyNzY4MTA5MTg3OTA3YWZjNDdkZmI2ZDI4OTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0
IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVk
IGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGRlcGVuZGVudCBtb2R1bGUgaXMgbm90
IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQt
ZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRlZjM5ODY4NWFlMDVhMTFjZThhMWUwYjIyMDk4ZTk4NTMxZDYyOTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1l
dmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Ig
d2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhlIGltcG9ydCBk
ZWNsYXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVsZSBpcyBub3QgZm91bmQuJyk7CisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0
aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmlu
aXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2Ny
aXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9y
dC5qcyIgb25lcnJvcj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LXdpdGgtc3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZv
dW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODBkMTVk
ZmU2ZDA5YmZjNmI4NTgzYTQ4ZGVjNmRjYjFiNWIxNDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBm
aXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgInNyYyIgaXMgbm90IGZvdW5kLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZl
bnQtd2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhNDdmNjEwNjlhZmVjYmNiMzhi
MGE5NTc1NjI1Y2U4MmRmNDgxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKQEAgLTAsMCArMSwy
MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qg
c2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQg
YnkgInNyYyIgaXMgbm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5
bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sKKyAgICBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Im5vdC1mb3VuZC5qcyIgb25lcnJvcj0ib25FcnJv
cigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjYjU5
NGM2NDY4MzhlNGMzNWUzNzU2MWY2ZGNlM2Q4Mzc3MGI3NzEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCkBAIC0w
LDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCdUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3Bl
Y2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGlubGluZWQgbW9kdWxlIGlz
IG5vdCBmb3VuZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5
Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LicpOworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9Im1vZHVsZSIgb25lcnJvcj0ib25FcnJvcigpIj4KK2ltcG9ydCBmcm9tICJub3QtZm91bmQu
anMiOwordGVzdEZhaWxlZCgnZXhlY3V0ZWQnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zZDhiMDA2MjQ5MGVjNzIyOTVjZmY1MDYxYTA4MzllNDAwMjBjZDhh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1p
Yy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBh
dHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVs
ZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQQVNTIHR5
cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2EudGFzdGUo
KSBpcyAibmljZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWlj
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzg0ZmY0MjY0Zjk4MWZlOTY0OWVkM2E3MjFiMWNmYTRmYTVlOTFjZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbApAQCAt
MCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8vIE1vZHVsZSB3aWxs
IGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LicpOworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3NjcmlwdCcpOworICAgIGVsZW1lbnQudHlwZSA9ICdtb2R1bGUnOworICAgIGVsZW1l
bnQuc3JjID0gJy4vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcyc7CisgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK30oKSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNp
bXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkOGIwMDYyNDkwZWM3MjI5NWNmZjUwNjFhMDgzOWU0
MDAyMGNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNy
Yy1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9kdWxlIHdpdGgg
InNyYyIgYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRo
ZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgor
UEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29h
LnRhc3RlKCkgaXMgIm5pY2UiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMt
c2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZjczYjBjNTRhMjVhNGY3NmMxNGEzYjVkYzMxNzNmZTg5M2NiM2NkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwK
QEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oJ1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLicpOworCisvLyBNb2R1bGUg
d2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi9zY3JpcHQt
dGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9h
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZv
cmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYThkOTcwOGRiM2UwNWM0YjAxMDNiZTdk
Y2ViMGMwMDcxMTc1Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGVzdCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcg
d2l0aCBzcmMgaXMgcHJlcGFyZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZmYxNjUzZDA2YzA2ZTFk
NzQxNzlkMDExMDAzNmUxNDlkODY5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsxLDE2IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQu
YmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0aCBzcmMgaXMg
cHJlcGFyZWQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4K
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1
dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9uYmVmb3JlbG9h
ZD0iZmluaXNoSlNUZXN0KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVm
b3JlbG9hZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRl
LWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5q
cyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJv
ci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9y
LXRocm93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzE1YWYyMTQyYjQ4MDI2MDJlYWQwMzcwMGY4YmJlMDFi
YzJiZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcwpAQCAtMCwwICsxLDIgQEAKK2RlYnVnKCJF
eGVjdXRpbmcgdGhlIGRlcGVuZGVudCBtb2R1bGUiKTsKK3Rocm93IG5ldyBFcnJvcigib3V0Iik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQt
dG8tb25lcnJvci5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRl
ZC10by1vbmVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YzdjYTQ3OWIyNTg4OWIwMGNhMjRjZDViYmUz
MzFkYWE2NWY3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hv
dWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcwpAQCAtMCwwICsxLDIgQEAKK2ltcG9ydCAi
bW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUt
cHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzIgordGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1
dGlvbi1vcmRlci1taXhlZC0yLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMzYjlkMzUyYWVj
NTdiMDYxZGRiZTAwYjdjZjk0ZWE1NzRhZWM0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpz
CkBAIC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjUiKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC1jYXBwdWNjaW5vLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMxNDZmZDc2
NmU1NWEwMmFlNzhiYWY5ZGQ2MzM5OGViODVhODkwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1j
YXBwdWNjaW5vLmpzCkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLW1hdGNoYS5qcyIKKworc2hvdWxkQmUoImNvdW50KysiLCAiMiIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLWNvY29hLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OGQ3MzI0M2Zl
ZjMwYTBiNDk0OWRiYTdmYmY4NTM0ZWViYTlmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29j
b2EuanMKQEAgLTAsMCArMSwzIEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4
ZWQtbWF0Y2hhLmpzIjsKKworc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1p
eGVkLW1hdGNoYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJlMTVkN2NmMGNmZjRl
YWExYTBiNWExZWU4M2RjY2UzMjRhMjVlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEu
anMKQEAgLTAsMCArMSBAQAorc2hvdWxkQmUoImNvdW50KysiLCAiMCIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1p
eGVkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0Mzg2ZmJiODY4MWNiZjdlNTljNDczNzYzN2U4
N2JlMzhjZmY3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMKQEAgLTAsMCArMSw0IEBACitp
bXBvcnQgIi4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcyIKK2ltcG9ydCAi
Li9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMiCisKK3Nob3VsZEJl
KCJjb3VudCsrIiwgIjMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQzNjBhN2JmZTdl
MDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzCkBAIC0wLDAg
KzEsNSBAQAorZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29jb2EgeworICAgIHRhc3RlKCkgeworICAg
ICAgICByZXR1cm4gImF3ZXNvbWUiOworICAgIH0KK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzIGIvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNDM2MGE3YmZlN2UwNWEwY2IyNTM4NDEzNjdlNzFkYzFlOTNiNWM3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBs
ZS5qcwpAQCAtMCwwICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29hIHsKKyAgICB0
YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRo
LXNyYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZl
bnQtd2l0aC1zcmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I4NzAyOTBkM2VjN2UwODBjMDVmOWY2NjY4NDRj
ZDA2NzUyOWZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKQEAgLTAsMCArMSBAQAorZGVidWco
J0V4ZWN1dGluZyBhIG1vZHVsZSB3aXRoIHNyYyBhdHRyaWJ1dGUuJyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNWFkNzdmODAwODA0MzgxYmY0ZjFlYWRiNTE3ZjU2MGYwYzRlYjY2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcwpAQCAtMCwwICsx
IEBACitkZWJ1ZygnRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVy
ZW50LWVudHJ5LXBvaW50LmpzLicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBv
cnQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQt
ZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzFiNDcxNDgx
MzhhMGVjNDUyMmMyMjcyMzNhM2M3NDEzMzcxMjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdp
dGgtc3JjLWFuZC1pbXBvcnQuanMKQEAgLTAsMCArMSBAQAoraW1wb3J0ICJub3QtZm91bmQuanMi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMt
ZHluYW1pYy1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXNyYy1keW5hbWljLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3OTU5MmRjNTEzY2YyNTk4NDFmZjlk
NDYzOTA0NTEyYjBlY2I3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAK
K2NsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAg
ICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTFh
N2JlNmI0ZjEyOTNhZjU5Njg2ZmUzZTU3ODAxZDJlMDk2YzM1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMKQEAg
LTAsMCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNyYy1keW5hbWljLWNv
Y29hLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1
dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBv
cnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRl
ZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29h
LnRhc3RlKCkiLCAibmljZSIpOworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5ZDQ2MzkwNDUxMmIwZWNiNzQ1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3Jj
LXNpbXBsZS1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAKK2NsYXNzIENvY29hIHsKKyAgICB0YXN0
ZSgpIHsKKyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAgICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0
IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtc3JjLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXNyYy1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ5Yzc3NGZkOWU3YTVjOWQxODU5MjQwNDRlN2Ey
NzhhZDczMzcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IENvY29h
IGZyb20gIi4vbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMiOwordmFyIGNvY29hID0gbmV3IENv
Y29hKCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1
bGUgZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIs
ICJ1bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJuaWNlIik7CitmaW5pc2hK
U1Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBhMzkzODM1
NjMzYWVjNTVlNWU1OTU3MjlkYTY5MTllOWMzMjAzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpz
CkBAIC0wLDAgKzEgQEAKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261861</attachid>
            <date>2015-09-23 22:01:55 -0700</date>
            <delta_ts>2015-09-24 11:49:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150923220136.patch</filename>
            <type>text/plain</type>
            <size>132154</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzdmZGYwNGRiNzhkMjk0MDUzMzZiOTk0NGVlNjgyYmM1MTUyMjM2Li41N2RiZmUwZTg4NzYzMWIx
YmIxYzI1MDdmYmNmNmYyNDZhMTkyMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW1ib2w6
OmNyZWF0ZSBpcyBub3cgdXNlZCBpbiBXZWJDb3JlLgorCisgICAgICAgICogcnVudGltZS9TeW1i
b2wuaDoKKwogMjAxNS0wOS0yMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBKU0MgYWxsb3dzIGludmFsaWQgdmFyIGRlY2xhcmF0aW9ucyB3aGVuIHRoZSBkZWNs
YXJlZCBuYW1lIGlzIHRoZSBzYW1lIGFzIGEgbGV0L2NvbnN0IHZhcmlhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNmZhZTUzNWI4ZDczMGYzOTgxYWE1MDBkNTljZjZiZGI4MmE1NjczYS4uNTg1MDJmYTAzMjE2
YTIzYzBiMzllYzliMDY3Nzc3MWVkN2RkYmNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NCBA
QAorMjAxNS0wOS0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPiB0YWcuIFRoYXQgdGFnIGxvYWRzIHRoZSBFUzYg
TW9kdWxlcy4KKyAgICAgICAgU2luY2UgdGhlIGRldGFpbCBvZiB0aGUgdGFnIGlzIG5vdCBkZWZp
bmVkIHlldFsxXSwgdGhlIGltcGxlbWVudGF0aW9uIGlzIGhpZGRlbgorICAgICAgICBiZWhpbmQg
dGhlIGNvbXBpbGUgdGltZSBmbGFnIEVOQUJMRShFUzZfTU9EVUxFUykuCisKKyAgICAgICAgQSBt
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseSBhbmQgZXhlY3V0ZWQgaW4gYSBt
b2R1bGUgZW52aXJvbm1lbnQKKyAgICAgICAgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZ2xv
YmFsIGVudmlyb25tZW50LiBJdCBpcyBhbHdheXMgc3RyaWN0IG1vZGUgYW5kIG9ubHkKKyAgICAg
ICAgYSBtb2R1bGUgY2FuIHVzZSB0aGUgbW9kdWxlIHN5bnRheCBsaWtlIGBpbXBvcnRgLCBgZXhw
b3J0YCBldGMuIFNvIHNpbmNlIHRoZQorICAgICAgICBleGVjdXRpb24gc2VtYW50aWNzIGlzIGRp
ZmZlcmVudCBmcm9tIG9uZSBvZiBnbG9iYWwgc2NyaXB0cywgbW9kdWxlcyBuZWVkIHRvIGJlCisg
ICAgICAgIGV4ZWN1dGVkIGJ5IHRoZSBzcGVjaWFsaXplZCB0YWcsIDxzY3JpcHQ+IHdpdGggdHlw
ZT0ibW9kdWxlIi4KKworICAgICAgICBUaGUgbW9kdWxlIHRhZyB3b3JrcyBhcyBhbiBlbnRyeSBw
b2ludCB0byBtb2R1bGVzLiBUeXBpY2FsbHksIHdlIHNwZWNpZnkgYW4KKyAgICAgICAgZW50cnkg
cG9pbnQgbW9kdWxlIGJ5IGEgdGFnIGFuZCBhbiBlbnRyeSBwb2ludCBtb2R1bGUgd2lsbCBsb2Fk
IGRlcGVuZGVudAorICAgICAgICBtb2R1bGVzIGFuZCBydW4gYSBhcHBsaWNhdGlvbi4KKworICAg
ICAgICBPbmNlIG1vZHVsZSB0YWcgcmVxdWVzdCBsb2FkaW5nLCBXZWJDb3JlIHJlcXVlc3QgbG9h
ZGluZyB0byB0aGUgSlNDJ3MgbW9kdWxlCisgICAgICAgIGxvYWRlci4gV2ViQ29yZSBhZG9wdHMg
dGhlIEpTQydzIGdlbmVyaWMgbW9kdWxlIGxvYWRlciBieSBpbXBsZW1lbnRpbmcgdGhlIGxvYWRl
cgorICAgICAgICBob29rcy4gSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIFdlYkNvcmUg
aW1wbGVtZW50cyAzIGhvb2tzLgorCisgICAgICAgIDEuIHJlc29sdmUgaG9vaworCisgICAgICAg
ICAgICBUYWtlcyB0aGUgbW9kdWxlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBt
b2R1bGUga2V5LgorICAgICAgICAgICAgSW4gV2ViQ29yZSwgd2UgdGFrZSB0aGUgbW9kdWxlIG5h
bWUgbGlrZSAiLi9oZWxsby5qcyIgYW5kIHJlc29sdmUgaXQgdG8gVVJMLgorCisgICAgICAgIDIu
IGZldGNoIGhvb2sKKworICAgICAgICAgICAgRmV0Y2hlcyB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVk
IGJ5IHRoZSBtb2R1bGUga2V5LiBJbiBXZWJDb3JlLCB0aGUgbW9kdWxlIGtleSBpcworICAgICAg
ICAgICAgVVJMLiBXZSB1c2UgQ2FjaGVkUmVzb3VyY2UgbG9hZGluZyBzeXN0ZW0gdG8gbG9hZCB0
aGUgcmVzb3VyY2Ugb2YgdGhlIG1vZHVsZXMuCisKKyAgICAgICAgMy4gZXZhbHVhdGUgaG9vawor
CisgICAgICAgICAgICBUaGlzIGlzIGFkZGl0aW9uYWwgaG9vayB0byBpbnN0cnVtZW50IHRoZSBt
b2R1bGUncyBleGVjdXRpb24gZm9yIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgVGhlIG1vZHVs
ZSBsb2FkZXIgaW52b2tlcyB0aGVzZSBob29rcywgY29uc3RydWN0cyB0aGUgcGlwZWxpbmUgYW5k
IG5vdGlmaWVzIGV2ZW50cworICAgICAgICB0byBhIE1vZHVsZUdyYXBoLCB3aGljaCBpcyBoZWxk
IGJ5IGEgU2NyaXB0RWxlbWVudC4gQSBTY3JpcHRFbGVtZW50IHdpdGggYSBNb2R1bGVHcmFwaAor
ICAgICAgICB3aWxsIGJlIGRyaXZlbiBieSB0aGVzZSBldmVudHMuCisKKyAgICAgICAgTW9kdWxl
IHRhZyBsb2FkcyB0aGUgcmVzb3VyY2VzIGFzeW5jaHJvbm91c2x5LiBTbyBpdCBkb2VzIG5vdCBi
bG9jayB0aGUgZG9jdW1lbnQKKyAgICAgICAgcGFyc2VyLiBCdXQgdGhlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIHRoZSBtdWx0aXBsZSBtb2R1bGUgdGFncyBzaG91bGQgYmVjb21lCisgICAgICAg
IHRoZSBvY2N1cnJlbmNlIG9yZGVyWzFdLiBTbyBTY3JpcHRSdW5uZXIgbWFuYWdlcyB0aGUgbW9k
dWxlIHRhZ3MgYW5kIGZvcmNlIHRoZW0KKyAgICAgICAgdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIG9j
Y3VycmVuY2Ugb3JkZXIuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGhlcm1h
bi9tb2R1bGUtdGFnL2Jsb2IvbWFzdGVyL3JlcXVpcmVtZW50cy5tZAorCisgICAgICAgIFRlc3Rz
OiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3Iu
aHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5l
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbAor
ICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9t
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFt
aWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbAorICAgICAg
ICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMv
ZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJl
YWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNYWluVGhyZWFk
RXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L01vZHVsZUZldGNoZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNo
ZXI6Ok1vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6fk1v
ZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6OnJ1bik6CisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMv
TW9kdWxlRmV0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoZXI6
OmNhY2hlZFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6Ok1vZHVsZUxvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVMb2FkZXI6
OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNo
ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZG9jdW1lbnQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJv
bGxlcjo6U2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9s
bGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVNb2R1bGVMb2FkZXJFcnJv
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3Js
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUlu
V29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1
YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRl
TW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVmFsdWVUb01vZHVsZUtleSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0TW9kdWxlR3JhcGgpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENvbnRyb2xsZXI6Om1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om1vZHVsZUxv
YWRlcik6CisgICAgICAgICogZG9tL01vZHVsZUdyYXBoLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVHcmFwaDo6TW9kdWxlR3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlR3JhcGg6Om5vdGlmeUxvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6
bm90aWZ5RXJyb3JlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUV2YWx1YXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2R1bGVHcmFwaDo6bG9hZCk6CisgICAgICAgICogZG9tL01vZHVsZUdy
YXBoLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Om1vZHVsZUtleSk6CisgICAgICAgIChXZWJD
b3JlOjpNb2R1bGVHcmFwaDo6d2Vha0VsZW1lbnRQdHIpOgorICAgICAgICAoV2ViQ29yZTo6TW9k
dWxlR3JhcGg6OmVycm9yT2NjdXJyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6
OmlzTG9hZGVkKToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojppc1NjcmlwdFR5cGVTdXBwb3J0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRFbGVtZW50OjpzdG9wTG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6bG9hZE1vZHVsZSk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om1vZHVsZUdyYXBoKToKKyAgICAgICAg
KiBkb20vU2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6
flNjcmlwdFJ1bm5lcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlTW9k
dWxlR3JhcGhGb3JFeGVjdXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpu
b3RpZnlNb2R1bGVHcmFwaFJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6
dGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVu
dDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKToKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxl
bWVudC5oOgorCiAyMDE1LTA5LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbCBvdXQgcjE5MDA4NSBhcyBpdCBzZWVtcyB0byBjYXVz
ZSBjcmFzaGVzIGluIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRl
eCA4M2Y1ZGUyNDg1MmJjMzc4ZWUwYTc3MDM5ZjQ2MzE4MjVmZGRkYmJlLi5kZGI2OGNjYjM2NTQ0
NTk5MTBjZDNmMjNmNjY4NzRkMDA1ODhhOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2wuaApAQCAtODYsNyArODYsNyBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMg
SlNDZWxsIHsKIAogICAgIFN5bWJvbChWTSYpOwogICAgIFN5bWJvbChWTSYsIGNvbnN0IFN0cmlu
ZyYpOwotICAgIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7CisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgU3ltYm9sKFZNJiwgU3ltYm9sSW1wbCYgdWlkKTsKIAogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjQ2MzBiYTBmMzI3
ZDBhNTYyZmYwZmY4ZmVhOTVjZTE3OTkyYmYxYy4uZDUwOWI1ZjZiNzdlNTFkZDRiYmY5ZGEyZmMw
OGRjYzc3NjMzZDBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMjUsNiArMTIyNSw4IEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL01vZHVs
ZUZldGNoZXIuY3BwCisgICAgYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcAogICAgIGJpbmRp
bmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uY3BwCiAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0
aW9uLmNwcAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKQEAgLTE0
NTAsNiArMTQ1Miw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vTWVzc2FnZVBvcnQu
Y3BwCiAgICAgZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKICAgICBkb20vTWljcm9UYXNrLmNw
cAorICAgIGRvbS9Nb2R1bGVHcmFwaC5jcHAKICAgICBkb20vTW91c2VFdmVudC5jcHAKICAgICBk
b20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCiAgICAgZG9tL011dGF0aW9uRXZlbnQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pT
SW50ZXJuYWxQcm9taXNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y1NTdhMmYyMWVjZjZiMmFlY2FkNjdlMzUz
ZTE5NjZlNDc5NGU4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaApAQCAtMCwwICsxLDQgQEAKKyNp
Zm5kZWYgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VfaAorI2RlZmluZSBXZWJDb3JlX0ZX
RF9KU0ludGVybmFsUHJvbWlzZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5h
bFByb21pc2UuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNmMwODZkZDM5YWZmOWUxMDRiZDVhNmZmN2FlNzkyNTQ2Mzg2OTU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdl
YkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWRfaAorI2RlZmluZSBXZWJDb3JlX0ZX
RF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42M2U5ZWNmZmJjZjU3YzJhOWM3OTVjY2IxZDgwMzQwZjkxNGQ3ZDRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU01v
ZHVsZVJlY29yZC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU01vZHVs
ZVJlY29yZF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0pTTW9kdWxlUmVjb3JkX2gKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU01vZHVsZVJlY29yZC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9TeW1ib2wuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NTA0MjdmMDkxYTllY2FjZmJmYTA5OWFlMGQwMzBlMGU5YmM1ZWIzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9TeW1ib2wuaApAQCAt
MCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfU3ltYm9sX2gKKyNkZWZpbmUgV2ViQ29y
ZV9GV0RfU3ltYm9sX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TeW1ib2wuaD4KKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5k
ZXggMjFhOWQ0MjVkYWQ3MjQ4ZTg0NDIzOWM1OGNlODUwNmYyODA5ODhiMS4uYWMwMjJiMDY3MzU2
OTEzZGZjODcwYWVkYTFhY2FlNTViZTJhYmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xNDQzNiw2ICsxNDQzNiwyMCBAQAogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxNb2R1bGVHcmFwaC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlRXZl
bnQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAg
LTE4ODc1LDYgKzE4ODg5LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cYmluZGluZ3NcanNcTW9kdWxlRmV0Y2hlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcTW9kdWxlTG9hZGVyLmNwcCI+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xTY2hlZHVs
ZWRBY3Rpb24uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KQEAgLTIyMDcxLDYgKzIyMTEzLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRv
bVxNZXNzYWdlUG9ydC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE1lc3Nh
Z2VQb3J0Q2hhbm5lbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE1pY3Jv
VGFzay5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE1vZHVsZUdyYXBoLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTW91c2VFdmVudC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlUmVsYXRlZEV2ZW50LmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTXV0YXRpb25FdmVudC5oIiAvPgpAQCAtMjI0ODQs
NiArMjI1MjcsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNO
b2RlT3JTdHJpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUZldGNoZXIuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUxvYWRlci5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRDYWNoZWRGcmFtZURh
dGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdENv
bnRyb2xsZXIuaCIgLz4KQEAgLTIyNzIzLDEzICsyMjc2OCwxNyBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cc3ZnXHByb3BlcnRpZXNcU1ZHVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9m
Zi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVu
dGltZVxBcmdMaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXElkZW50aWZpZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNJbnRlcm5hbFByb21pc2UuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZVxKU0xvY2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNPYmplY3QuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNTdHJpbmcuaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVc
SlNNb2R1bGVSZWNvcmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcTG9va3VwLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXE9wZXJhdGlvbnMuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcUHJvdGVjdC5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxTdHJp
bmdPYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWVcU3ltYm9sLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1x5YXJyXFJlZ3VsYXJFeHByZXNzaW9uLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1x5YXJyXFlhcnIuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcWWFyckludGVycHJldGVy
LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggNmRkMzc5OWFkNWM2Mzk1NzNjZjdiNjg0M2NkOGRjZGIx
NTc4NjJlYS4uNDJlZDZiYTVlYzBjMzE3M2NiOTFjYjgzNmYzNzM5YjM3MjI3YzM4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMzE5OCw2ICszMTk4LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGRvbVxNaWNyb1Rhc2suY3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTW9kdWxlR3JhcGguY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTW91c2VFdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5k
b208L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTQ0NzYsNiArNDQ3OSwxMiBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNYU0xUUHJvY2Vzc29yQ3VzdG9t
LmNwcCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVGZXRjaGVy
LmNwcCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVMb2FkZXIu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjaGVkdWxlZEFjdGlv
bi5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtMTAzMDQsNiArMTAzMTMsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXE1pY3JvVGFzay5oIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTW9kdWxlR3JhcGguaCI+Cisg
ICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTE0ODksNiArMTE1MDEsMTIgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmgi
PgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcTW9kdWxlRmV0Y2hlci5oIj4K
KyAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUxvYWRlci5oIj4KKyAg
ICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjaGVkdWxlZEFjdGlvbi5oIj4KICAg
ICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEx
NjU3LDEyICsxMTY3NSwyMSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGlu
Z0hlYWRlcnNccnVudGltZVxJZGVudGlmaWVyLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTSW50ZXJuYWxQcm9taXNl
LmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVh
ZGVyc1xydW50aW1lXEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCI+CisgICAgICA8RmlsdGVy
PkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNMb2Nr
LmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVh
ZGVyc1xydW50aW1lXEpTT2JqZWN0LmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTTW9kdWxlUmVjb3JkLmgiPgorICAg
ICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50
aW1lXEpTU3RyaW5nLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1l
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMTY4MSw2ICsxMTcwOCw5IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN0cmluZ09i
amVjdC5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGlu
Z0hlYWRlcnNccnVudGltZVxTeW1ib2wuaCI+CisgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcUmVndWxhckV4cHJlc3Npb24uaCI+CiAg
ICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHlhcnI8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlYjU1ZmY5ZjEyYTgyZTJiMGFjNzMyODM0NTI3MTNlNGFkZTFiNjkwLi5hNjg3
NTU4MWIxYWNjMWY4ZjM1NmYzNzMwMGYzNzRhYTg0ZjM4YmFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzIzLDYgKzYzMjMs
MTIgQEAKIAkJRTFGRjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4
RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi87IH07CiAJ
CUUxRkY4RjZDMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QTE4
MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovOyB9OwogCQlF
MUZGOEY2RDE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgwREI1
QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovOyB9OworCQlFMzM5QTUy
MzFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1v
ZHVsZUdyYXBoLmNwcCAqLzsgfTsKKwkJRTMzOUE1MjQxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVs
ZUdyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzg4Mzg5NjFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzg4Mzg5MjFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5j
cHAgKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTcxQkFE
MTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVG
ZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4
OTgxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyog
TW9kdWxlTG9hZGVyLmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9Owor
CQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NTFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsg
fTsKIAkJRTQwMUMyNzUxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDFD
Mjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQyNEEzOUUxMzMw
REYwMTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyNEEzOUQxMzMwREYwMTAwQ0Y2REM5IC8qIExl
Z2FjeVRpbGVHcmlkVGlsZS5oICovOyB9OwogCQlFNDI0QTNBMDEzMzBERjFFMDBDRjZEQzkgLyog
TGVnYWN5VGlsZUdyaWRUaWxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQyNEEzOUYxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGls
ZS5tbSAqLzsgfTsKQEAgLTE0MDgzLDYgKzE0MDg5LDEyIEBACiAJCUUxRkY4RjY2MTgwNzQ2MDgw
MDEzMjY3NCAvKiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
RkY4RjZCMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyog
TW9kdWxlR3JhcGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9k
dWxlR3JhcGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzM5QTUyMjFCQTZC
RDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTW9kdWxlR3JhcGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4
OTIxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlRmV0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUZldGNoZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5NTFCQUQxNDVG
MDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDAxQzI3
NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNzZXJ0aW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBD
b2xvckRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JE
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxRUEwMzgxMTk4MzZEQjAw
NzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ1NTUHJvcGVydHlOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMTUzNSw2ICsyMTU0NywxMCBAQAogCQkJCTQxMTg5RUY4MUFEODIzM0MwMEI5MEEw
RCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHAgKi8sCiAJCQkJRTFDMzZE
MzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJ
CQlFMUMzNkQzMzBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCAq
LywKKwkJCQlFMzg4Mzg5MjFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5jcHAgKi8s
CisJCQkJRTM4ODM4OTMxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCAqLywKKwkJ
CQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmNwcCAqLywKKwkJCQlF
Mzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxlTG9hZGVyLmggKi8sCiAJCQkJNDE5OEJE
RUUxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRhYmxlSlNTdHJlYW0uY3BwICovLAogCQkJCTQxOThC
REVGMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFtLmggKi8sCiAJCQkJQkNBMzc4
QkEwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8sCkBAIC0yMzUwMiw2
ICsyMzUxOCw4IEBACiAJCQkJNDFCRjcwMEEwRkU4NkY0OTAwNUU4REVDIC8qIE1lc3NhZ2VQb3J0
Q2hhbm5lbC5oICovLAogCQkJCUNCOENGMDE1MUE5MzRCNDMwMDBENTEwQiAvKiBNaWNyb1Rhc2su
Y3BwICovLAogCQkJCTUzQjg5NUFEMTlEQzdDMzcwMDlDQUE5MyAvKiBNaWNyb1Rhc2suaCAqLywK
KwkJCQlFMzM5QTUyMTFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguY3BwICovLAorCQkJ
CUUzMzlBNTIyMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oICovLAogCQkJCTg1MDMx
QjJGMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzMDBB
NDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5oICovLAogCQkJCTE0MUI5NEU1MDlFQzQyMjMw
MDBFOTQxMyAvKiBNb3VzZUV2ZW50LmlkbCAqLywKQEAgLTI0NjE3LDYgKzI0NjM1LDcgQEAKIAkJ
CQkzMTYwMjNGMDE1MzJDNDBDMDBENTBGRjQgLyogRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM3RkYzRDUxQTEwMTJENjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEQUYxOTk5MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RDb252b2x2
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzMzlBNTI0MUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1
bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8q
IERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQz
NUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQyOUVDQzYxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjE5MSw2ICsyNjIxMCw3IEBACiAJCQkJQ0UxMjUyNDEx
QTE2QjFCNjAwODY0NDgwIC8qIE1lZGlhUGxheWVyU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUUzODgzODk5MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTRFMTk1OTJDMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZh
bHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyRTBBMzlEQUNDMDAyMjBGRTUgLyog
TWVkaWFRdWVyeUV4cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNBOTRBMzkxMjJEQUJBQzAwQTM3
QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjM5LDYgKzI3MjU5
LDcgQEAKIAkJCQkwODBFNDkyODEyNTVGM0JEMDBFRkNBMjcgLyogU1ZHVGV4dExheW91dEVuZ2lu
ZVNwYWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RjBCRkM2MTI1NUM1M0MwMDA3NTE4NSAv
KiBTVkdUZXh0TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzExNzQ0NTkxNEJDMzRFQzAw
RUU1RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4
ODM4OTcxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3QUNFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUZXh0UGF0aEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3QUQxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAyNTEyNTVFNEU2MDBCOUNE
RDAgLyogU1ZHVGV4dFF1ZXJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTI4MDA3LDYgKzI4MDI4LDcg
QEAKIAkJCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBCQzEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9E
ZXN0aW5hdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAwNzEyQjAyNjc2MDBD
MUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTMz
OUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZEMzE2MDgxMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU1OTY5MTE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9G
aWxlUmVhZGVySU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEJFMTJCMDI3MkEwMEMx
QTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODU3Miw2
ICsyODU5NCw3IEBACiAJCQkJRTRBMDA3ODUxQjgyMEVEMzAwMkM1QTZFIC8qIERhdGFVUkxEZWNv
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODM5MTUxMEYxRTc2QjQwMEMyMzc4MiAvKiBE
T01XZWJLaXRDU1NNYXRyaXgubW0gaW4gU291cmNlcyAqLywKIAkJCQk4QUQwQTU5NzE0Qzg4MzU4
MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzE2MTFFNjIwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9y
bVZhbHVlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJM0YyQjMzRUMxNjVBRjE1NjAwRTM5ODdDIC8q
IERPTVdlYktpdENTU1ZpZXdwb3J0UnVsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDOTFBMzhG
MUI0OThBQkUwMDNGOUVGQSAvKiBKU05vZGVPclN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTI4ODk5LDYgKzI4OTIyLDcgQEAKIAkJCQlBODcxREIyRTBBMTUwQkQ2MDBCMTJBNjggLyogSFRN
TFRhYmxlQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMjkwQTE1MEJE
NjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTg3MURCMjgwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMkQwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJs
ZVBhcnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjMwMEExNTBCRDYwMEIx
MkE2OCAvKiBIVE1MVGFibGVSb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNDQy
Q0EwMEQyQjMzNjAwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCmluZGV4IDgzNTAzMzMxM2VmZTE1MmYxZTM5ZjRjMTUxYmJkYzJmMGExYWQ3ZmIuLjlmOGRm
MGI1ZjJmZWRkMGI1ZmU2ZjFlZjFiMGNmZWJjNzdhM2ViOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMzEsMTEgKzMxLDEzIEBACiAj
aW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50
RGF0YS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvTWljcm90YXNrLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KIApAQCAtNTYsNyArNTgsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20o
Y29uc3QgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBD
bGFzc0luZm8gSlNET01XaW5kb3dCYXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9i
YWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2Up
IH07CiAKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19n
bG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBv
cnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNj
cmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNo
b3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpT
RE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93
QWNjZXNzRnJvbSwgJnN1cHBvcnRzUHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywg
JnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRh
c2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1
bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZt
b2R1bGVMb2FkZXJFdmFsdWF0ZSB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFz
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2lu
ZG93LCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZt
LCBzdHJ1Y3R1cmUsICZzaGVsbC0+d29ybGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUp
CkBAIC0yNzYsNCArMjc4LDMxIEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVh
cmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAgfQogfQogCisK
K0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVz
b2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyKQorewor
ICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93
QmFzZSo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNP
YmplY3QtPmltcGwoKS5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVs
ZUxvYWRlcigpLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJy
ZXIpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwor
ICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNo
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXkpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2Jq
ZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBp
ZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisg
ICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVj
dCwgZXhlYywgbW9kdWxlS2V5KTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQq
IGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywg
Z2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVm
aW5lZCgpKTsKK30KKworSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29y
ZCkKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RP
TVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQg
PSB0aGlzT2JqZWN0LT5pbXBsKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50
LT5tb2R1bGVMb2FkZXIoKS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXks
IG1vZHVsZVJlY29yZCk7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuaAppbmRleCA1ZWQzODYyYzE0MTE4N2MwMDZiNjg4ZGI3OTc3OTRiMzY5ODEwNTY0
Li4yZDQ0YjgwMDllNTRkYmIwNzRlOGY5OTc3YzE2YjI1ZTEyNTdlYWJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtNzgsNiArNzgsMTEgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBKU0M6OldhdGNocG9pbnRTZXQgbV93aW5kb3dD
bG9zZVdhdGNocG9pbnRzOwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gTW9kdWxlIExvYWRl
ciBob29rcy4KKyAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxv
YWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVM
b2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisKICAgICAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV9p
bXBsOwogICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKiBtX3NoZWxsOwogICAgIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCmluZGV4
IDA5ZTdlNWI2MDI2ODc5YjUzMzVhMWZlMWVmNzFjNDQ3NDMwYmZjZDQuLjRmZDY4M2UxNTkxMDJi
MTUyODdkNjM4OTljMDE2ZWZkMzc0ODAzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCkBAIC03NCw2ICs3NCwyNCBAQCBjbGFz
cyBKU01haW5UaHJlYWRFeGVjU3RhdGUgewogICAgICAgICB0YXNrLnJ1bihleGVjKTsKICAgICB9
CiAKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQorICAgIHsKKyAgICAgICAg
SlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJu
IEpTQzo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKTsKKyAgICB9CisKKyAgICBzdGF0aWMg
SlNDOjpKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSlNDOjpTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQorICAgIHsKKyAgICAgICAgSlNNYWlu
VGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6
bG9hZE1vZHVsZShleGVjLCBzb3VyY2VDb2RlKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSkKKyAgICB7CisgICAgICAgIEpT
TWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBK
U0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBtb2R1bGVLZXkpOworICAgIH0KKwogICAg
IHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgaW5zdHJ1bWVudEZ1bmN0aW9u
Q2FsbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpDYWxsVHlwZSwgY29uc3QgSlNDOjpD
YWxsRGF0YSYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvTW9kdWxlRmV0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1
bGVGZXRjaGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWNkYjhiODQ1MDEyN2Y2MjgyZTk1M2UxZWY1ZTM0
ZDZhYTllYmNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
TW9kdWxlRmV0Y2hlci5jcHAKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRl
ICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlc291cmNl
TG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJTY3JpcHRTb3VyY2VDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9kdWxlRmV0
Y2hlcjo6TW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25z
dCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJl
ZCwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAs
IG1fc291cmNlVVJMKHNvdXJjZVVSTCkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0KQorICAgICwgbV9kZWZlcnJlZChnbG9iYWxPYmplY3QtPnZt
KCksIGRlZmVycmVkKQoreworfQorCitNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hlcigpCit7
CisgICAgaWYgKG1fY2FjaGVkU2NyaXB0KSB7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1v
dmVDbGllbnQodGhpcyk7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKyAgICB9
Cit9CisKK1JlZjxNb2R1bGVGZXRjaGVyPiBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2R1bGVGZXRjaGVyKGdsb2JhbE9iamVjdCwgc291cmNl
VVJMLCBkZWZlcnJlZCwgZG9jdW1lbnQpKTsKK30KKworYm9vbCBNb2R1bGVGZXRjaGVyOjpydW4o
KQoreworICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKKyAgICBvcHRpb25zLnNldENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24oQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3Np
dGlvbjo6RG9Qb2xpY3lDaGVjayk7CisKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QobV9zb3VyY2VVUkwpLCBvcHRpb25zKTsKKyAgICAvLyBGSVhNRTog
U2hvdWxkIGhhbmRsZSAiY2hhcnNldCIgb3B0aW9ucy4KKyAgICAvLyBPbmNlIHRoZSBzcGVjIGRl
c2NyaWJlcyB0aGUgZGV0YWlscywgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgcmVxdWVzdC5zZXRD
aGFyc2V0KG1fZG9jdW1lbnQuY2hhcnNldCgpKTsKKworICAgIC8vIEZJWE1FOiBTaG91bGQgaGFu
ZGxlICJjcm9zc29yaWdpbiIgb3B0aW9ucy4KKyAgICAvLyBPbmNlIHRoZSBzcGVjIGRlc2NyaWJl
cyB0aGUgZGV0YWlscywgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgcmVxdWVzdC5zZXRJbml0aWF0
b3IoQXRvbWljU3RyaW5nKG1fc291cmNlVVJMLnN0cmluZygpKSk7CisKKyAgICBtX2NhY2hlZFNj
cmlwdCA9IG1fZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0U2NyaXB0KHJl
cXVlc3QpOworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIC8vIE5vdGU6IElmIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGlt
bWVpZGF0ZWx5IGNhbGxzIG5vdGlmeUZpbmlzaGVkLgorICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRD
bGllbnQodGhpcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTW9kdWxlRmV0Y2hlcjo6
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIEFTU0VSVF9V
TlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1fY2FjaGVkU2NyaXB0KTsKKyAgICBpZiAoIW1f
Y2FjaGVkU2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9jYWNoZWRTY3Jp
cHQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0
ID0gbV9jYWNoZWRTY3JpcHQ7CisgICAgbV9jYWNoZWRTY3JpcHQgPSBudWxscHRyOworCisjaWYg
RU5BQkxFKE5PU05JRkYpCisgICAgaWYgKGNhY2hlZFNjcmlwdCAmJiAhY2FjaGVkU2NyaXB0LT5t
aW1lVHlwZUFsbG93ZWRCeU5vc25pZmYoKSkgeworICAgICAgICBtX2RvY3VtZW50LmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAi
UmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBmcm9tICciICsgY2FjaGVkU2NyaXB0LT51cmwoKS5z
dHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXRzIE1JTUUgdHlw
ZSAoJyIgKyBjYWNoZWRTY3JpcHQtPm1pbWVUeXBlKCkgKyAiJykgaXMgbm90IGV4ZWN1dGFibGUs
IGFuZCBzdHJpY3QgTUlNRSB0eXBlIGNoZWNraW5nIGlzIGVuYWJsZWQuIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50
LmZyYW1lKCkpIHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9iamVj
dC0+dm0oKSk7CisgICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3Qt
Pmdsb2JhbEV4ZWMoKTsKKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC0+ZXJyb3JPY2N1cnJlZCgp
KSB7CisgICAgICAgICAgICAvLyBUaGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZSBpcyBjb25zdHJ1
Y3RlZCBhcyBhIGNoYWluIG9mIHByb21pc2VzLgorICAgICAgICAgICAgLy8gUmVqZWN0aW5nIGEg
cHJvbWlzZSBpZiBzb21lIGVycm9yIG9jY3VycyBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgZXhl
Y3V0aW9uIGZsb3cgb2YKKyAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGNoYWluIGlzIGRyaXZl
biBieSAicmVqZWN0ZWQiIG9yICJmdWxmaWxsZWQiIGV2ZW50cy4KKyAgICAgICAgICAgIC8vIElm
IHRoZSBwcm9taXNlIGlzIG5vdCByZWplY3RlZCB3aGlsZSBlcnJvciBvY2N1cnMsIHJlamVjdCBo
YW5kbGVyIHdvbid0IGJlIGV4ZWN1dGVkCisgICAgICAgICAgICAvLyBhbmQgYWxsIHRoZSBzdWJz
ZXF1ZW50IHByb21pc2UgY2hhaW4gd2lsbCB3YWl0IHRoZSByZXN1bHQgZm9yZXZlci4KKyAgICAg
ICAgICAgIC8vCisgICAgICAgICAgICAvLyBBcyBhIHJlc3VsdCwgZXZlbiBpZiB0aGUgZXJyb3Ig
aXMgYWxyZWFkeSByZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGVsc2V3aGVyZSwKKyAgICAgICAg
ICAgIC8vIGl0IHNob3VsZCBiZSBwcm9wYWdhdGVkIGluIHRoZSBwaXBlbGluZS4gRm9yIGV4YW1w
bGUsIHRoZSBlcnJvciBvZiBsb2FkaW5nCisgICAgICAgICAgICAvLyBDYWNoZWRSZXNvdXJjZSBp
cyBhbHJlYWR5IHJlcG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgYnkgdGhlIGxvYWRlci4gQnV0IHdl
IHN0aWxsIG5lZWQKKyAgICAgICAgICAgIC8vIHRvIHJlamVjdCB0aGUgcHJvbWlzZSBieSBzb21l
IGVycm9yLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdCB0byByZXBvcnQgdGhl
IGVycm9yIHR3aWNlLCB3aGVuIHdlIHByb3BhZ2F0ZSB0aGUgZXJyb3IgdGhhdCBpcyBhbHJlYWR5
IHJlcG9ydGVkCisgICAgICAgICAgICAvLyB0byB0aGUgaW5zcGVjdG9yLCB3ZSB0aHJvdyBtb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCBzeW1ib2wgaW5zdGVhZC4KKyAgICAg
ICAgICAgIC8vIEJ5IGNvbXBhcmluZyB0aGUgdGhyb3duIGVycm9yIHdpdGggdGhpcyBzeW1ib2ws
IHdlIGNhbiBkaXN0aW5ndWlzaCBlcnJvcnMgcmFpc2VkCisgICAgICAgICAgICAvLyB3aGVuIGxp
bmtpbmcgb3IgZXhlY3V0aW5nIGEgbW9kdWxlIGdyYXBoIGZyb20gZXJyb3JzIHJlcG9ydGVkIGFs
cmVhZHkuCisgICAgICAgICAgICAvLyBJbiB0aGUgcmVqZWN0IGhhbmRsZXIgb2YgdGhlIHByb21p
c2UsIHdlIG9ubHkgcmVwb3J0IGEgZXJyb3IgdGhhdCBpcyBub3QgdGhpcyBzeW1ib2wuCisgICAg
ICAgICAgICBtX2RlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6OmNyZWF0ZShleGVj
LT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJv
clN5bWJvbCgpLnVpZCgpKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZWRTY3JpcHQtPndh
c0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShj
YWNoZWRTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVzb2x2ZShleGVj
LCBKU0M6OmpzU3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkpKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIC8vIEEgQ2FjaGVkUmVzb3VyY2VIYW5kbGUgYWxvbmUgZG9lcyBub3QgcHJl
dmVudCB0aGUgdW5kZXJseWluZyBDYWNoZWRSZXNvdXJjZQorICAgIC8vIGZyb20gcHVyZ2luZyBp
dHMgZGF0YSBidWZmZXIuIFVudGlsIHdlIGZpbmlzaCB1c2luZyB0aGUgYmFja2luZyBidWZmZXIg
b2YgdGhlCisgICAgLy8gY2FjaGVkIHNjcmlwdCwgd2UgZG9uJ3QgcmVtb3ZlIHRoZSBjbGllbnQu
CisgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisKKyAgICBtX2RvY3VtZW50
Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAvLyBBZnRlciBNb2R1
bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUgZGVzdHJveWVkLgor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRj
aGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjkzZDM2YWUzNjBmMmY3MmIwZTk5ZWZiYTQzN2Y3MzU0NmI0NjIwZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuaApAQCAt
MCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVGZXRjaGVyX2gKKyNkZWZp
bmUgTW9kdWxlRmV0Y2hlcl9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgor
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5j
bHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFs
UHJvbWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNjcmlw
dDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CisKK2NsYXNzIE1v
ZHVsZUZldGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVGZXRjaGVyPiwgcHJpdmF0ZSBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxlRmV0
Y2hlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
TW9kdWxlRmV0Y2hlcj4gY3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBzb3Vy
Y2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisKKyAg
ICB+TW9kdWxlRmV0Y2hlcigpOworCisgICAgYm9vbCBydW4oKTsKKworICAgIENhY2hlZFNjcmlw
dCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0KKworcHJp
dmF0ZToKKyAgICBNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBz
b3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisK
KyAgICAvLyBGb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBEb2N1bWVudCYgbV9k
b2N1bWVudDsKKyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJvbmc8SlNET01HbG9i
YWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL01vZHVsZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwMmIxNjJkMDEyM2Y1YTA4OGFl
ZjdiZjBiNDNjNTMyOTUyN2VjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1pY3JvVGFzay5o
IgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgorI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9D
b21wbGV0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVk
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvSlNTdHJpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL1N5bWJvbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK01vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVu
dCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZVZhbHVl
LCBKU0M6OkpTVmFsdWUgcmVmZXJyZXJWYWx1ZSkKK3sKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAobW9kdWxlTmFtZVZhbHVlLmlzU3lt
Ym9sKCkpCisgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBtb2R1bGVOYW1l
VmFsdWUpOworCisgICAgLy8gRklYTUU6IFdlIG5vdyBhc3N1bWUgdGhhdCBtb2R1bGUgbmFtZSBp
cyBlaXRoZXIgc3ltYm9sIG9yIHN0cmluZy4KKyAgICAvLyBXaGVuIGV4cG9zaW5nIHRoZSByZWZs
ZWN0aW9uIHRvIHRoZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBuZWVkIHRvIHJlY2Fz
dCB0aGlzIHBhcnQuCisgICAgQVNTRVJUKG1vZHVsZU5hbWVWYWx1ZS5pc1N0cmluZygpKTsKKyAg
ICBTdHJpbmcgbW9kdWxlTmFtZSA9IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJpbmcqPihtb2R1bGVO
YW1lVmFsdWUpLT52YWx1ZShleGVjKTsKKworICAgIC8vIE5vdywgd2UgY29uc2lkZXIgdGhlIGdp
dmVuIG1vZHVsZU5hbWUgYXMgdGhlIHNhbWUgdG8gdGhlIHNyYz0iLi4uIiBpbiB0aGUgc2NyaXB0
IHRhZy4KKyAgICAvLyBXZSB1c2UgdGhlIGNvbXBsZXRlZCBVUkwgYXMgdGhlIG1vZHVsZSBrZXku
CisgICAgLy8KKyAgICAvLyBGSVhNRTogV2UgbmVlZCBzaXRlIHBhY2thZ2luZyBzeXN0ZW0uIEJ1
dCBpdCdzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjIHlldC4KKyAgICAvLyBodHRwczovL3doYXR3
Zy5naXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWxvYWRlci1wcm90b3R5cGUtJTQwJTQwcmVzb2x2
ZQorICAgIFVSTCBjb21wbGV0ZWRVUkw7CisKKyAgICAvLyBGSVhNRTogQ2hlY2sgbV9kb2N1bWVu
dCBsaWZldGltZS4KKyAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBj
b21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUpOworICAgIGVs
c2UgeworICAgICAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICAg
ICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVOYW1lKTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQocmVmZXJyZXJWYWx1ZS5pc1N0cmluZygp
KTsKKyAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJp
bmcqPihyZWZlcnJlclZhbHVlKS0+dmFsdWUoZXhlYyk7CisgICAgICAgICAgICBjb21wbGV0ZWRV
UkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUsIFVSTChQYXJzZWRVUkxTdHJp
bmcsIHJlZmVycmVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFjb21wbGV0ZWRVUkwu
aXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBjcmVhdGVE
T01FeGNlcHRpb24oZXhlYywgU1lOVEFYX0VSUikpOworCisgICAgcmV0dXJuIGRlZmVycmVkLT5y
ZXNvbHZlKGV4ZWMsIGpzU3RyaW5nKGV4ZWMsIGNvbXBsZXRlZFVSTC5zdHJpbmcoKSkpOworfQor
CitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1
ZSBtb2R1bGVLZXlWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogV2hlbiBpbXBsZW1lbnRpbmcgcmVm
bGVjdGl2ZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBzaG91bGQgcmVjYXN0IHRoaXMg
aW1wbGVtZW50YXRpb24uCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZl
cnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2Jh
bE9iamVjdCk7CisKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtb2R1bGVLZXlWYWx1ZS5pc1N5
bWJvbCgpLCAiU3ltYm9saWMgbW9kdWxlIGtleSBzaG91bGQgYmUgYWxyZWFkeSBmdWxmaWxsZWQg
d2l0aCB0aGUgaW5saW5lZCByZXNvdXJjZS4iKTsKKyAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUu
aXNTdHJpbmcoKSk7CisKKyAgICBKU0M6OklkZW50aWZpZXIgbW9kdWxlS2V5ID0gSlNDOjpJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUo
ZXhlYykpOworCisgICAgVVJMIGNvbXBsZXRlZFVSTChQYXJzZWRVUkxTdHJpbmcsIG1vZHVsZUtl
eS5pbXBsKCkpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoY29tcGxldGVkVVJMLmlzVmFsaWQo
KSwgIlRoZSByZXNvbHZlIGhvb2sgc2hvdWxkIHByb2R1Y2UgdGhlIHZhbGlkIFVSTCBhcyBhIHN0
cmluZy4iKTsKKworICAgIFJlZjxNb2R1bGVGZXRjaGVyPiBmZXRjaGVyID0gTW9kdWxlRmV0Y2hl
cjo6Y3JlYXRlKEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwg
Y29tcGxldGVkVVJMLCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7CisgICAgbV9mZXRjaGluZ1NldC5h
ZGQoJmZldGNoZXIuZ2V0KCkpOworICAgIGlmICghZmV0Y2hlci0+cnVuKCkpIHsKKyAgICAgICAg
aWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVy
biBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwg
KihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wo
KS51aWQoKSkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKK30K
KworSlNDOjpKU1ZhbHVlIE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUsIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5
LCB3ZSBvbmx5IHN1cHBvcnQgSlNNb2R1bGVSZWNvcmQuCisgICAgSlNDOjpKU01vZHVsZVJlY29y
ZCogbW9kdWxlUmVjb3JkID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNNb2R1bGVSZWNvcmQq
Pihtb2R1bGVSZWNvcmRWYWx1ZSk7CisgICAgaWYgKCFtb2R1bGVSZWNvcmQpCisgICAgICAgIHJl
dHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CisKKyAgICBVUkwgc291cmNlVVJMOworICAgIGlmICht
b2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBzb3VyY2VVUkwgPSBtX2RvY3VtZW50
LnVybCgpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJp
bmcoKSk7CisgICAgICAgIHNvdXJjZVVSTCA9IFVSTChQYXJzZWRVUkxTdHJpbmcsIGFzU3RyaW5n
KG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykpOworICAgIH0KKworICAgIGlmIChGcmFtZSog
ZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCisgICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0
KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQpOworICAgIHJldHVybiBK
U0M6OmpzVW5kZWZpbmVkKCk7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChNb2R1bGVGZXRjaGVyKiBmZXRjaGVyKQoreworICAgIG1fZmV0Y2hpbmdTZXQucmVtb3ZlKGZl
dGNoZXIpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9N
b2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM0OTM2OTY4MTY1ZWVkODU4MTAxNzgxY2QxODU0NzBjOGViNWUwZDAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIu
aApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVMb2FkZXJfaAor
I2RlZmluZSBNb2R1bGVMb2FkZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
Ik1vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorI2luY2x1ZGUgIlRp
bWVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50Owor
CitjbGFzcyBNb2R1bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUxv
YWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1v
ZHVsZUxvYWRlcihEb2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkKKyAgICB7
CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlcik7CisgICAgSlND
OjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSBt
b2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCisgICAgdm9pZCBub3RpZnlG
aW5pc2hlZChNb2R1bGVGZXRjaGVyKik7Citwcml2YXRlOgorICAgIERvY3VtZW50JiBtX2RvY3Vt
ZW50OworICAgIEhhc2hTZXQ8UmVmUHRyPE1vZHVsZUZldGNoZXI+PiBtX2ZldGNoaW5nU2V0Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9kdWxlTG9hZGVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5k
ZXggNGIzYjA5NzJiZTc3ZjNjNzY1OTVmMTQwZTI2YTc0OGZmOGVhNDUwYy4uOTliN2Y4YjYyYTRi
N2ZlYWVmM2ZjNWI0YTdjZWQ3MThhNTNlZDNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM2LDExICszNiwxMyBAQAogI2luY2x1
ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2lu
Y2x1ZGUgIk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgi
CiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UGFnZUNvbnNvbGVDbGllbnQuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQ
bHVnaW5WaWV3QmFzZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJT
Y3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTU0LDcgKzU2LDExIEBACiAjaW5jbHVkZSA8aW5z
cGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50
aW1lL0pTRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5o
PgogCkBAIC04Niw2ICs5Miw3IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xsZXIo
RnJhbWUmIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fc291cmNlVVJMKDAp
CiAgICAgLCBtX3BhdXNlZChmYWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9y
dGVkRXJyb3JTeW1ib2woKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwg
bV93aW5kb3dTY3JpcHROUE9iamVjdCgwKQogI2VuZGlmCkBAIC0xNzUsMTEgKzE4MiwxMjggQEAg
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxk
KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUKICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFs
dWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOwogfQogCi1EZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3Vy
Y2VDb2RlKSAKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAgICAgcmV0dXJuIGV2
YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiB9CiAK
K3N0YXRpYyB2b2lkIGhhbmRsZU1vZHVsZUxvYWRlckVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBlcnJvciwgY29uc3QgUHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKQoreworICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3IgaXMgbWFya2VkIGFz
IG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAgIC8vIERvbid0IHJl
cG9ydCBpdCBoZXJlIGFnYWluLgorICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9IGpzRHluYW1pY0Nh
c3Q8U3ltYm9sKj4oZXJyb3IpKSB7CisgICAgICAgIGlmIChzeW1ib2wtPnByaXZhdGVOYW1lKCkg
PT0gbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgaGF2ZSBub3Qgc3VwcG9y
dGVkIHRoZSAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSBpbiB0aGUgbW9kdWxlIHRhZywKKyAgICAv
LyB3ZSBwYXNzIHRoZSBudWxscHRyIHRvIHJlcG9ydEV4Y2VwdGlvbidzIENhY2hlZFNjcmlwdCog
cGFyYW1ldGVyLiBXaGVuIHBhc3NpbmcgbnVsbHB0cgorICAgIC8vIHRvIHJlcG9ydEV4Y2VwdGlv
biwgV2ViQ29yZSBkb2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVycm9yIGlmIHRoZSBV
Ukwgb2YgdGhlCisgICAgLy8gc291cmNlIGRvZXMgbm90IHBhc3MgdGhlIHNhbWUgb3JpZ2luIHBv
bGljeS4gU28gdGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgY29uc2VydmF0aXZlOworICAgIC8vIG9u
bHkgdGhlIG1vZHVsZSBjb2RlIHRoYXQgVVJMIGlzIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4gY2Fu
IHJlcG9ydCB0aGUgZGV0YWlscyBvZiB0aGUKKyAgICAvLyBlcnJvci4gT25jZSB0aGUgc3BlYyBk
ZXNjcmliZXMgdGhlIGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICByZXBvcnRFeGNl
cHRpb24oZXhlYywgZXJyb3IsIG51bGxwdHIpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6
OmxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU3RyaW5n
JiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRl
ciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5k
b3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5n
bG9iYWxFeGVjKCk7CisKKyAgICBpbml0TW9kdWxlR3JhcGgobW9kdWxlR3JhcGgsIEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKSwgd29ybGQpOworfQor
Cit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmIG1vZHVsZUdy
YXBoLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgbG9hZE1vZHVsZUluV29ybGQo
bW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwor
dm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgbW9k
dWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIERPTVdyYXBwZXJX
b3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAg
ICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVj
U3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIGluaXRN
b2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxl
KGV4ZWMsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCkpLCB3b3JsZCk7Cit9CisKK3ZvaWQgU2Ny
aXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0
IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgbG9hZE1vZHVsZUluV29ybGQo
bW9kdWxlR3JhcGgsIHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwor
dm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKE1vZHVs
ZUdyYXBoJiBtb2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xv
Y2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxs
ID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5k
b3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBJZGVudGlm
aWVyOjpmcm9tVWlkKCZleGVjLT52bSgpLCBtb2R1bGVHcmFwaC5tb2R1bGVLZXkoKSkpOworCisg
ICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtFbGVtZW50UHRyKCkp
OworICAgIEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6
Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFt3ZWFrUHRy
XShFeGVjU3RhdGUqKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdl
YWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1l
bnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIFByaXZh
dGVOYW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sID0gbV9tb2R1bGVM
b2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICBKU0Z1bmN0aW9uKiByZWplY3RI
YW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53
aW5kb3coKSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5
bWJvbCwgd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0
ZWQoKTsKKyAgICAgICAgaGFuZGxlTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywgZXhlYy0+YXJndW1l
bnQoMCksIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKTsKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIHBy
b21pc2UtPnRoZW4oZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRsZXIpOworfQorCit2
b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShNb2R1bGVHcmFwaCYg
bW9kdWxlR3JhcGgpCit7CisgICAgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChtb2R1bGVH
cmFwaCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCitEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVS
TCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkK
K3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIGNvbnN0IFNvdXJj
ZUNvZGUmIGpzU291cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29kZSgpOworCisgICAg
SlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0
YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisgICAgY29uc3QgU3Ry
aW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gJnNv
dXJjZVVSTC5zdHJpbmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKKwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwsIGpzU291
cmNlQ29kZS5maXJzdExpbmUoKSk7CisKKyAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gbW9kdWxl
UmVjb3JkLT5ldmFsdWF0ZShleGVjKTsKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRp
b25FeGNlcHRpb247CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICBldmFs
dWF0aW9uRXhjZXB0aW9uID0gZXhlYy0+dm0oKS5leGNlcHRpb24oKTsKKworICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llLCBtX2ZyYW1lKTsKKwor
ICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKSB7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihl
eGVjLCBldmFsdWF0aW9uRXhjZXB0aW9uLCBudWxscHRyKTsKKyAgICAgICAgbV9zb3VyY2VVUkwg
PSBzYXZlZFNvdXJjZVVSTDsKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVl
KCk7CisgICAgfQorCisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICByZXR1
cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOworfQor
CitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVs
ZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCkKK3sK
KyAgICByZXR1cm4gZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQsIG1haW5U
aHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwogUmVmPERPTVdyYXBwZXJXb3JsZD4gU2NyaXB0Q29u
dHJvbGxlcjo6Y3JlYXRlV29ybGQoKQogewogICAgIHJldHVybiBET01XcmFwcGVyV29ybGQ6OmNy
ZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0yNzIsNiArMzk2LDQxIEBAIEpTRE9N
V2luZG93U2hlbGwqIFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCkKICAgICByZXR1cm4gd2luZG93U2hlbGw7CiB9CiAKK3N0YXRpYyBJZGVudGlmaWVy
IGpzVmFsdWVUb01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7Cisg
ICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9t
VWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCh2
YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVj
LCBqc0Nhc3Q8SlNTdHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30KKwordm9pZCBTY3Jp
cHRDb250cm9sbGVyOjppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBK
U0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAg
ICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVj
U3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQ
dHI8RWxlbWVudD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0cigpKTsKKyAgICBK
U0Z1bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShl
eGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0
YXRlKiBleGVjKSB7CisgICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQgZWxlbWVudCBhbmQg
ZG9jdW1lbnQgbWF5IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUgbW9kdWxlLgorICAg
ICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBtb2R1bGUgYm9keS4K
KyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkgewor
ICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZXhl
YywgZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5TG9hZGVkKG1vZHVsZUtl
eS5pbXBsKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBtb2R1bGVMb2FkZXJBbHJl
YWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJy
b3JTeW1ib2w7CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9IEpTTmF0aXZlU3RkRnVu
Y3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBb
bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQdHJdKEV4ZWNTdGF0
ZSogZXhlYykgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFrUHRy
LmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50Lmdl
dCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXJyb3JlZCgpOworICAgICAgICBoYW5kbGVNb2R1
bGVMb2FkZXJFcnJvcihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgbW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2wpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxs
SGFuZGxlciwgcmVqZWN0SGFuZGxlcik7Cit9CisKIFRleHRQb3NpdGlvbiBTY3JpcHRDb250cm9s
bGVyOjpldmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IElmIHdl
IGFyZSBub3QgY3VycmVudGx5IHBhcnNpbmcsIHdlIHNob3VsZCB1c2Ugb3VyIGN1cnJlbnQgbG9j
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApp
bmRleCAwN2M1M2I3YzhlZGZiNGUyOGY1Y2ExM2FhMmM0ZTA1NTk0ZWY1MTIyLi45MDFiNTNlYmFm
NTRjNDc4ZjdkNDFlZjFkYzUxNTBjMWIwODVhOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCw5IEBAIGNsYXNzIFNjcmlw
dFZhbHVlOwogCiBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKKyAg
ICBjbGFzcyBKU01vZHVsZVJlY29yZDsKKyAgICBjbGFzcyBKU0ludGVybmFsUHJvbWlzZTsKKwog
ICAgIGNsYXNzIEV4ZWNTdGF0ZTsKIAogICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CkBAIC01Nyw2
ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTERv
Y3VtZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CitjbGFzcyBNb2R1bGVHcmFwaDsKIGNs
YXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdpZGdl
dDsKQEAgLTExNSw2ICsxMTksMTcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAgICAgRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwog
ICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CiAKKyAgICB2b2lkIGxvYWRNb2R1bGVJbldv
cmxkKE1vZHVsZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29y
bGQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1v
ZHVsZU5hbWUpOworICAgIHZvaWQgbG9hZE1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmLCBjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBsb2FkTW9k
dWxlKE1vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworCisgICAgdm9pZCBs
aW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiAsIERPTVdyYXBwZXJXb3Js
ZCYpOworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKE1vZHVsZUdyYXBoJik7CisKKyAg
ICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6
OkpTTW9kdWxlUmVjb3JkKiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiwgSlNDOjpKU01vZHVsZVJlY29yZCop
OworCiAgICAgV1RGOjpUZXh0UG9zaXRpb24gZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdDsK
IAogICAgIHZvaWQgZW5hYmxlRXZhbCgpOwpAQCAtMTM1LDYgKzE1MCw4IEBAIGNsYXNzIFNjcmlw
dENvbnRyb2xsZXIgewogCiAgICAgY29uc3QgU3RyaW5nKiBzb3VyY2VVUkwoKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZVVSTDsgfSAvLyAwIGlmIHdlIGFyZSBub3QgZXZhbHVhdGluZyBhbnkgc2Ny
aXB0CiAKKyAgICBjb25zdCBKU0M6OlByaXZhdGVOYW1lJiBtb2R1bGVMb2FkZXJBbHJlYWR5UmVw
b3J0ZWRFcnJvclN5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJl
cG9ydGVkRXJyb3JTeW1ib2w7IH0KKwogICAgIHZvaWQgY2xlYXJXaW5kb3dTaGVsbChET01XaW5k
b3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOwogICAgIHZvaWQgdXBk
YXRlRG9jdW1lbnQoKTsKIApAQCAtMTcwLDYgKzE4Nyw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xs
ZXIgewogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93U2hlbGwqIGlu
aXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBpbml0TW9kdWxlR3JhcGgoTW9k
dWxlR3JhcGgmLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiwgRE9NV3JhcHBlcldvcmxkJik7CiAK
ICAgICB2b2lkIGRpc2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKIApAQCAtMTc4LDYg
KzE5Niw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIGNvbnN0IFN0cmluZyogbV9z
b3VyY2VVUkw7CiAKICAgICBib29sIG1fcGF1c2VkOworICAgIEpTQzo6UHJpdmF0ZU5hbWUgbV9t
b2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKIAogICAgIC8vIFRoZSByb290
IG9iamVjdCB1c2VkIGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhlIGNvbnRleHQgb2YgYSBw
bHVnaW4sIHN1Y2gKICAgICAvLyBhcyBOUEFQSSBwbHVnaW5zLiBUaGUgcGx1Z2lucyB1c2luZyB0
aGVzZSBvYmplY3RzIHByZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVkIHNvIHRoZXkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDdiMTFlMzlhMWEzZDBiNGEwMzdkZTgzNWZiOTIxZjgx
Y2MwMjI3ZDEuLmFiNjU1Yjc5ZGI0ZDdlYTM3ODA3MDUzODg5YjI3ZmZmNjYyOTA2N2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA0LDYgKzEwNCw3IEBACiAjaW5jbHVkZSAiTWVkaWFQ
cm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFR
dWVyeU1hdGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCiAj
aW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCIKQEAgLTQ2NCw2ICs0NjUsNyBAQCBE
b2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgdW5zaWduZWQg
ZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwogICAgICwgbV9zdGFydFRpbWUoc3RkOjpjaHJvbm86OnN0
ZWFkeV9jbG9jazo6bm93KCkpCiAgICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkKGZh
bHNlKQogICAgICwgbV9zY3JpcHRSdW5uZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JpcHRSdW5uZXI+
KCp0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlTG9h
ZGVyPigqdGhpcykpCiAgICAgLCBtX3htbFZlcnNpb24oQVNDSUlMaXRlcmFsKCIxLjAiKSkKICAg
ICAsIG1feG1sU3RhbmRhbG9uZShTdGFuZGFsb25lVW5zcGVjaWZpZWQpCiAgICAgLCBtX2hhc1hN
TERlY2xhcmF0aW9uKGZhbHNlKQpAQCAtNjA1LDYgKzYwNyw3IEBAIERvY3VtZW50Ojp+RG9jdW1l
bnQoKQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JQYWdlQ2Fj
aGUoKTsKIAogICAgIG1fc2NyaXB0UnVubmVyID0gbnVsbHB0cjsKKyAgICBtX21vZHVsZUxvYWRl
ciA9IG51bGxwdHI7CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IGY5MTgwODlmMjNiMmZiM2ExOGRmYmQyMWY1ZjcwMzk4MDUwNzViYTcu
LjlhNzhiMjM1YTY1OGI2MWM4OGMxYzY3ZjY3Y2JlZGU0NDFiOWE1NDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xMzAsNiArMTMwLDcgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNs
YXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNs
YXNzIE1lZGlhUXVlcnlNYXRjaGVyOworY2xhc3MgTW9kdWxlTG9hZGVyOwogY2xhc3MgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0NvbGxlY3Rpb247CiBjbGFz
cyBOb2RlRmlsdGVyOwpAQCAtOTM0LDYgKzkzNSw3IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGlj
IENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25D
CiAgICAgRG9jdW1lbnQmIHRvcERvY3VtZW50KCkgY29uc3Q7CiAgICAgCiAgICAgU2NyaXB0UnVu
bmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5nZXQoKTsgfQorICAg
IE1vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gbV9tb2R1bGVMb2FkZXIuZ2V0
KCk7IH0KIAogICAgIEhUTUxTY3JpcHRFbGVtZW50KiBjdXJyZW50U2NyaXB0KCkgY29uc3QgeyBy
ZXR1cm4gIW1fY3VycmVudFNjcmlwdFN0YWNrLmlzRW1wdHkoKSA/IG1fY3VycmVudFNjcmlwdFN0
YWNrLmxhc3QoKS5nZXQoKSA6IDA7IH0KICAgICB2b2lkIHB1c2hDdXJyZW50U2NyaXB0KFBhc3NS
ZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+KTsKQEAgLTE1MTgsNiArMTUyMCw3IEBAIGNsYXNzIERv
Y3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBT
Y3JpcHRFeGVjdXRpb25DCiAgICAgYm9vbCBtX292ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkOwog
ICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVyOwogCiAgICAg
VmVjdG9yPFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4+IG1fY3VycmVudFNjcmlwdFN0YWNrOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlR3JhcGguY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDE3YTJjZDRlOGIxZTQ2
YjA1MDIxM2IzMDU5NjEzYzc3MjZhZTg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL01vZHVsZUdyYXBoLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisKKyNpbmNsdWRlICJE
T01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1l
bnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgorI2lu
Y2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1
bGVHcmFwaDo6TW9kdWxlR3JhcGgoRWxlbWVudCYgZWxlbWVudCkKKyAgICA6IG1fZWxlbWVudChl
bGVtZW50KQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSgmZWxlbWVudCkKK3sKK30KKwordm9pZCBN
b2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkpCit7
CisgICAgbV9tb2R1bGVLZXkgPSBtb2R1bGVLZXk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCku
c2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVhZHkodG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6Om5vdGlmeUVycm9y
ZWQoKQoreworICAgIG1fZXJyb3JlZCA9IHRydWU7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCku
c2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVhZHkodG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6OmV2YWx1YXRlKCkK
K3sKKyAgICBpZiAobV9lcnJvcmVkKQorICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KCZtX2VsZW1lbnQpLT5kaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICBlbHNlIGlmIChGcmFtZSog
ZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+c2Ny
aXB0KCkubGlua0FuZEV2YWx1YXRlTW9kdWxlKCp0aGlzKTsKK30KKwordm9pZCBNb2R1bGVHcmFw
aDo6bm90aWZ5RXZhbHVhdGVkKCkKK3sKKyAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZt
X2VsZW1lbnQpLT5kaXNwYXRjaExvYWRFdmVudCgpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjps
b2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50LmRv
Y3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2Ny
aXB0KCkubG9hZE1vZHVsZSgqdGhpcywgbW9kdWxlTmFtZSk7Cit9CisKK3ZvaWQgTW9kdWxlR3Jh
cGg6OmxvYWQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBBU1NF
UlQobV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50
KCkuZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgc291cmNlQ29kZSk7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE2ZTg5N2NiYzAyODFlNWVm
MTU4MTgwZGNhZTliZjYyYjY2YTBlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb2R1bGVHcmFwaC5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IE1vZHVsZUdyYXBoX2gKKyNkZWZpbmUgTW9kdWxlR3JhcGhfaAorCisjaW5jbHVkZSAiTW9kdWxl
RmV0Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBTY3JpcHRTb3VyY2VDb2Rl
OworCisvLyBLZWVwIGxpZmV0aW1lIG9mIGEgTW9kdWxlR3JhcGggdGhlIHNhbWUgdG8gYSBTY3Jp
cHRFbGVtZW50LgorY2xhc3MgTW9kdWxlR3JhcGggeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KE1vZHVsZUdyYXBoKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgTW9kdWxlR3JhcGgoRWxlbWVudCYpOworCisgICAgRWxlbWVudCYgZWxlbWVudCgpIHsg
cmV0dXJuIG1fZWxlbWVudDsgfQorICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkoKSB7
IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQorCisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmlu
ZyYgbW9kdWxlTmFtZSk7CisgICAgdm9pZCBsb2FkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsK
KyAgICB2b2lkIGV2YWx1YXRlKCk7CisKKyAgICBXZWFrUHRyPEVsZW1lbnQ+IHdlYWtFbGVtZW50
UHRyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRlZChVbmlxdWVkU3RyaW5nSW1wbCog
bW9kdWxlS2V5KTsKKyAgICB2b2lkIG5vdGlmeUVycm9yZWQoKTsKKworICAgIHZvaWQgbm90aWZ5
RXZhbHVhdGVkKCk7CisKKyAgICBib29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCB7IHJldHVybiBt
X2Vycm9yZWQ7IH0KKyAgICBib29sIGlzTG9hZGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVL
ZXk7IH0KKworcHJpdmF0ZToKKworICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKKyAgICBSZWZQdHI8
VW5pcXVlZFN0cmluZ0ltcGw+IG1fbW9kdWxlS2V5OworICAgIFdlYWtQdHJGYWN0b3J5PEVsZW1l
bnQ+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAgYm9vbCBtX2Vycm9yZWQgeyBmYWxzZSB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9kdWxlTG9hZGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA2NmJiZWNlMWQzNWUxYTQ3NjNiZjll
YmViZjBmMGMxMmNkYmVmMWQ3Li4yZWM2YmRlOWRiMmY3ZDcyNjUwMDM1YTliMTJkYmM2ODViNjcz
NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklnbm9yZURlc3RydWN0
aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5o
IgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgpAQCAtMTYxLDYgKzE2
MiwxMCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OmlzU2NyaXB0VHlwZVN1cHBvcnRlZChMZWdhY3lU
eXBlU3VwcG9ydCBzdXBwb3J0TGVnYWN5VHlwZXMpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9IGVsc2UgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1J
TUVUeXBlKHR5cGUuc3RyaXBXaGl0ZVNwYWNlKCkubG93ZXIoKSkgfHwgKHN1cHBvcnRMZWdhY3lU
eXBlcyA9PSBBbGxvd0xlZ2FjeVR5cGVJblR5cGVBdHRyaWJ1dGUgJiYgaXNMZWdhY3lTdXBwb3J0
ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UodHlwZSkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBF
TkFCTEUoRVM2X01PRFVMRVMpCisgICAgZWxzZSBpZiAodHlwZSA9PSAibW9kdWxlIikKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisjZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTIxNyw2
ICsyMjIsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBv
c2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAgIGVsc2UKICAgICAgICAgbV9j
aGFyYWN0ZXJFbmNvZGluZyA9IGRvY3VtZW50LmNoYXJzZXQoKTsKIAorICAgIGlmIChpc01vZHVs
ZVR5cGUoKSkKKyAgICAgICAgcmV0dXJuIGxvYWRNb2R1bGUoc2NyaXB0U3RhcnRQb3NpdGlvbik7
CisKICAgICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpCiAgICAgICAgIGlmICghcmVxdWVzdFNj
cmlwdChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTMxNyw2ICszMjUsOSBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OnN0b3BMb2FkUmVxdWVzdCgp
CiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAgICAg
ICBtX2NhY2hlZFNjcmlwdCA9IDA7CiAgICAgfQorICAgIC8vIEZJWE1FOiBUaGUgbW9kdWxlIGxv
YWRlciBzaG91bGQgaGF2ZSB0aGUgbWVjaGFuaXNtIHRvIHN0b3AgbG9hZGluZy4KKyAgICAvLyBU
aGUgY3VycmVudCBsb2FkZXIgc3BlYyBkb2VzIG5vdCBoYXZlIHRoaXMuIE9uY2UgaXQgaXMgc3Bl
Y2lmaWVkCisgICAgLy8gd2Ugd2lsbCBpbnRyb2R1Y2UgdGhpcyBmZWF0dXJlLgogfQogCiB2b2lk
IFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCkBAIC0z
MzIsNiArMzQzLDU3IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQq
IGNhY2hlZFNjcmlwdCkKICAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKIH0K
IAorYm9vbCBTY3JpcHRFbGVtZW50Ojpsb2FkTW9kdWxlKGNvbnN0IFRleHRQb3NpdGlvbiYgc2Ny
aXB0U3RhcnRQb3NpdGlvbikKK3sKKyAgICAvLyBUaGUgYnJvd3NlciBtb2R1bGUgbG9hZGVyIGxv
YWRzIHRoZSBtb2R1bGUgc291cmNlcy4KKyAgICAvLyBTaW5jZSB0aGUgbW9kdWxlIGludm9sdmVz
IGxvYWRpbmcgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzIGFuZCB0aGUgZGVwZW5kZW50IG1vZHVs
ZXMgZG9lcyBub3QgaGF2ZSBjb3JyZXNwb25kaW5nIHNjcmlwdCBlbGVtZW50cywKKyAgICAvLyB0
aGUgZnVuY3Rpb25hbGl0eSBvZiBsb2FkaW5nIG1vZHVsZXMgaXMgc2VwYXJhdGVkIGZyb20gdGhl
IHNjcmlwdCBlbGVtZW50LgorICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgeworICAgICAg
ICBTdHJpbmcgc291cmNlVXJsID0gc291cmNlQXR0cmlidXRlVmFsdWUoKTsKKyAgICAgICAgUmVm
PERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50KG1fZWxlbWVudC5kb2N1bWVudCgpKTsKKyAgICAg
ICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBTY3JpcHQgZWxlbWVudCBtYXkg
YmUgZGV0YWNoZWQgYW5kIGF0dGFjaGVkIHRvIGEgZGlmZmVyZW50IGRvY3VtZW50IHdoaWxlIGV4
ZWN1dGluZyB0aGUgZXZlbnQgbGlzdGVuZXIuCisgICAgICAgIGlmICghbV9lbGVtZW50LmluRG9j
dW1lbnQoKSB8fCAmbV9lbGVtZW50LmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5wdHIo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoc3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgc3VwcG9ydCBjcm9zcy1vcmlnaW4gbW9k
ZSBpbiB0aGUgbW9kdWxlIHRhZy4KKyAgICAgICAgLy8gSG93ZXZlciB3ZSBkb24ndCBoYXZlIHRo
ZSBwb2xpY3kgdG8gYXBwbHkgdGhpcyBtb2RlIHRvIHRoZSByZXNvdXJjZXMgb2YgdGhlIGRlcGVu
ZGVudCBtb2R1bGVzLgorICAgICAgICAvLyBQcm92aWRlZCBtdWx0aXBsZSBtb2R1bGUgdGFncywK
KyAgICAgICAgLy8KKyAgICAgICAgLy8gICBBOiA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIu
Li4iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PgorICAgICAgICAvLyAgIEI6IDxz
Y3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiI+PC9zY3JpcHQ+CisgICAgICAgIC8vCisgICAg
ICAgIC8vICdBJyBoYXMgdGhlICJjcm9zc29yaWdpbiIgYXR0cmlidXRlLiBCdXQgJ0InIGRvZXMg
bm90IGhhdmUgaXQuCisgICAgICAgIC8vIEhvd2V2ZXIsIEVTNiBtb2R1bGVzIGFsbG93ICdBJyBh
bmQgJ0InIHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGFuZCBpdCB3aWxsIGJlIGNhY2hlZCBpbiB0
aGUKKyAgICAgICAgLy8gbW9kdWxlIGxvYWRlci4gSW4gdGhhdCBjYXNlLCBpdCBpcyBjb250cm92
ZXJzaWFsIHRoYXQgd2hpY2ggImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUgd2lsbCBiZQorICAgICAg
ICAvLyBhcHBsaWVkIHRvIHRoZSBtb2R1bGUgbG9hZGVkIGJ5IHRoZSBib3RoLiBPbmNlIHRoZSBz
cGVjIG9mIHRoZSBtb2R1bGUgbG9hZGVyIGlzIGZpeGVkLCB3ZQorICAgICAgICAvLyBzaG91bGQg
Zm9sbG93IGl0LgorCisgICAgICAgIG1faXNFeHRlcm5hbFNjcmlwdCA9IHRydWU7CisgICAgICAg
IG1fbW9kdWxlR3JhcGggPSBzdGQ6Om1ha2VfdW5pcXVlPE1vZHVsZUdyYXBoPihtX2VsZW1lbnQp
OworICAgICAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+cXVldWVNb2R1
bGVHcmFwaEZvckV4ZWN1dGlvbih0aGlzLCAqbV9tb2R1bGVHcmFwaCk7CisgICAgICAgIG1fbW9k
dWxlR3JhcGgtPmxvYWQoc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIGlmICghbV9lbGVtZW50LmRvY3VtZW50KCkuY29udGVudFNlY3Vy
aXR5UG9saWN5KCktPmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgp
LCBtX3N0YXJ0TGluZU51bWJlciwgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIFJlc2V0IGxpbmUgbnVtYmVyaW5nIGZv
ciBuZXN0ZWQgd3JpdGVzLgorICAgIFRleHRQb3NpdGlvbiBwb3NpdGlvbiA9IG1fZWxlbWVudC5k
b2N1bWVudCgpLmlzSW5Eb2N1bWVudFdyaXRlKCkgPyBUZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0
YXJ0UG9zaXRpb247CisgICAgbV9tb2R1bGVHcmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxl
R3JhcGg+KG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVy
KCktPnF1ZXVlTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgpOwor
ICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRDb250ZW50KCks
IG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBwb3NpdGlvbikpOworICAgIHJldHVybiB0cnVl
OworfQorCiB2b2lkIFNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNl
KiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQoIW1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggYjdlNzNkMGRlZTgzZDMyNGU4NzJmN2JjNGMx
YjkzM2RjOTZjMTEyYS4uNmU1YzIxNDI5NGQ4MTk2OGM4NmUwZDA3YTY5NzA3NDM5NGExYzliMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBj
bGFzcyBFbGVtZW50OworY2xhc3MgTW9kdWxlR3JhcGg7CiBjbGFzcyBTY3JpcHRFbGVtZW50Owog
Y2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIApAQCAtNTksNiArNjAsNyBAQCBjbGFzcyBTY3JpcHRF
bGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCByZWFkeVRv
QmVQYXJzZXJFeGVjdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0
ZWQ7IH0KICAgICBib29sIHdpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkg
Y29uc3QgeyByZXR1cm4gbV93aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZzsg
fQogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KCkg
eyByZXR1cm4gbV9jYWNoZWRTY3JpcHQ7IH0KKyAgICBNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGgo
KSB7IHJldHVybiBtX21vZHVsZUdyYXBoLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKICAgICBTY3Jp
cHRFbGVtZW50KEVsZW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlciwgYm9vbCBpc0V2YWx1YXRl
ZCk7CkBAIC04Miw2ICs4NCw4IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hl
ZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIHJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBz
b3VyY2VVcmwpOwogICAgIHZvaWQgc3RvcExvYWRSZXF1ZXN0KCk7CiAKKyAgICBib29sIGxvYWRN
b2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKwogICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCBTdHJpbmcgc291cmNlQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CkBAIC05
Myw2ICs5Nyw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNl
Q2xpZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBjb25zdCA9IDA7CiAKICAgICBFbGVtZW50JiBtX2VsZW1l
bnQ7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlw
dDsKQEAgLTEwOSw2ICsxMTQsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNo
ZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCBtX3JlcXVlc3RVc2VzQWNjZXNzQ29udHJvbCA6
IDE7CiAgICAgU3RyaW5nIG1fY2hhcmFjdGVyRW5jb2Rpbmc7CiAgICAgU3RyaW5nIG1fZmFsbGJh
Y2tDaGFyYWN0ZXJFbmNvZGluZzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kdWxlR3JhcGg+IG1f
bW9kdWxlR3JhcGg7CiB9OwogCiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3Np
YmxlKEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggOTYzNjk4
MDRhZDhmMDc0YmQ3MzZhZmJmYjUwMmE0NWZjOTE1NzYwMS4uYWIxZDg4ZWFmNzU3NWQzNDQ2ZjM0
MGEzMTVlZmEwMTIzNGEyZjUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiTWljcm9UYXNrLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIK
ICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgog
CkBAIC00OCw2ICs0OSwxMCBAQCBTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIoKQogICAgICAg
ICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nQXN5bmNTY3JpcHRzLnNpemUoKTsgKytpKQogICAg
ICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uLnNp
emUoKTsgKytpKQorICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291
bnQoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nTW9kdWxlU2NyaXB0
RWxlbWVudHMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2
ZW50RGVsYXlDb3VudCgpOwogfQogCiB2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JF
eGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlw
ZSkKQEAgLTcxLDYgKzc2LDE4IEBAIHZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4
ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNoZWRSCiAgICAgfQogfQog
Cit2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRF
bGVtZW50KiBzY3JpcHRFbGVtZW50LCBNb2R1bGVHcmFwaCYpCit7CisgICAgQVNTRVJUKHNjcmlw
dEVsZW1lbnQpOworCisgICAgRWxlbWVudCYgZWxlbWVudCA9IHNjcmlwdEVsZW1lbnQtPmVsZW1l
bnQoKTsKKyAgICBBU1NFUlQoZWxlbWVudC5pbkRvY3VtZW50KCkpOworCisgICAgbV9kb2N1bWVu
dC5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisKKyAgICBtX3BlbmRpbmdNb2R1bGVT
Y3JpcHRFbGVtZW50cy5hZGQoJmVsZW1lbnQpOworfQorCiB2b2lkIFNjcmlwdFJ1bm5lcjo6c3Vz
cGVuZCgpCiB7CiAgICAgbV90aW1lci5zdG9wKCk7CkBAIC05Nyw2ICsxMTQsMjYgQEAgdm9pZCBT
Y3JpcHRSdW5uZXI6Om5vdGlmeVNjcmlwdFJlYWR5KFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1l
bnQsIEV4ZWN1dGlvblR5cGUKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9p
ZCBTY3JpcHRSdW5uZXI6Om5vdGlmeU1vZHVsZUdyYXBoUmVhZHkoU2NyaXB0RWxlbWVudCogc2Ny
aXB0RWxlbWVudCkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHNjcmlwdEVsZW1lbnQsIG1fcGVuZGlu
Z01vZHVsZVNjcmlwdEVsZW1lbnRzLmNvbnRhaW5zKCZzY3JpcHRFbGVtZW50LT5lbGVtZW50KCkp
KTsKKworICAgIC8vIExpc3RIYXNoU2V0IGNvcnJlY3RseSBwcmVzZXJ2ZXMgdGhlIGluc2VydGlv
biBvcmRlci4KKyAgICAvLyBBbmQgaXQgYWxsb3cgdXMgdG8gcmVtb3ZlIGVsZW1lbnQgZHVyaW5n
IGl0ZXJhdGlvbi4KKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxl
bWVudHMuYmVnaW4oKTsKKyAgICB3aGlsZSAoaXRlcmF0b3IgIT0gbV9wZW5kaW5nTW9kdWxlU2Ny
aXB0RWxlbWVudHMuZW5kKCkpIHsKKyAgICAgICAgTW9kdWxlR3JhcGgqIG1vZHVsZUdyYXBoID0g
dG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShpdGVyYXRvci0+Z2V0KCkpLT5tb2R1bGVHcmFwaCgp
OworICAgICAgICBpZiAoIW1vZHVsZUdyYXBoLT5lcnJvck9jY3VycmVkKCkgJiYgIW1vZHVsZUdy
YXBoLT5pc0xvYWRlZCgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGF1dG8gcHJldmlv
dXMgPSBpdGVyYXRvcjsKKyAgICAgICAgKytpdGVyYXRvcjsKKyAgICAgICAgbV9tb2R1bGVTY3Jp
cHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uYXBwZW5kKCpwcmV2aW91cyk7CisgICAgICAgIG1fcGVu
ZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLnJlbW92ZShwcmV2aW91cyk7CisgICAgfQorICAgIGlm
ICghbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpKQorICAgICAg
ICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwogdm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVy
RmlyZWQoKQogewogICAgIFJlZjxEb2N1bWVudD4gcHJvdGVjdChtX2RvY3VtZW50KTsKQEAgLTEy
MSw2ICsxNTgsMjEgQEAgdm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICB0
b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5leGVjdXRlKGNhY2hlZFNj
cmlwdCk7CiAgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgp
OwogICAgIH0KKworICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IG1vZHVsZVNjcmlwdEVsZW1l
bnRzOworICAgIG1vZHVsZVNjcmlwdEVsZW1lbnRzLnN3YXAobV9tb2R1bGVTY3JpcHRFbGVtZW50
c1RvRXhlY3V0ZVNvb24pOworCisgICAgZm9yIChSZWZQdHI8RWxlbWVudD4mIHBlbmRpbmdNb2R1
bGVTY3JpcHRFbGVtZW50IDogbW9kdWxlU2NyaXB0RWxlbWVudHMpIHsKKyAgICAgICAgUmVmUHRy
PEVsZW1lbnQ+IGVsZW1lbnQ7CisgICAgICAgIHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50LnN3
YXAoZWxlbWVudCk7CisgICAgICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICAgICAgLy8gUGFwZXIg
b3ZlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDUwCisgICAg
ICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ldmFsdWF0
ZSgpOworICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsK
KyAgICB9CisKICAgICBNaWNyb1Rhc2tRdWV1ZTo6c2luZ2xldG9uKCkucnVuTWljcm9UYXNrcygp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKaW5kZXggMjdjZGJmOGIzYWY1Njk0NjJl
NWI5YWViMTZjZDc2NTA1MDg5MWUwZC4uMTIyMTQ4NWUwZTU3ZGZhNjNlNDQ0ZjQ4MjlhYWM3MDRl
MWExNTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMjksNiArMjksNyBAQAog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzcsNiArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRWxlbWVu
dDsKK2NsYXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgUGVuZGluZ1NjcmlwdDsKIGNsYXNzIFNjcmlw
dEVsZW1lbnQ7CiAKQEAgLTQ4LDExICs1MSwxNCBAQCBjbGFzcyBTY3JpcHRSdW5uZXIgewogCiAg
ICAgZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhFQ1VUSU9OLCBJTl9PUkRFUl9FWEVDVVRJ
T04gfTsKICAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+LCBFeGVjdXRpb25UeXBlKTsKLSAgICBi
b29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0
ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSB8
fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHkoKTsgfQorICAgIHZvaWQgcXVldWVNb2R1
bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgTW9kdWxlR3JhcGgmKTsKKyAgICBi
b29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0
ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSB8
fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHkoKSB8fCAhbV9tb2R1bGVTY3JpcHRFbGVt
ZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVt
ZW50cy5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHN1c3BlbmQoKTsKICAgICB2b2lkIHJlc3VtZSgp
OwogICAgIHZvaWQgbm90aWZ5U2NyaXB0UmVhZHkoU2NyaXB0RWxlbWVudCosIEV4ZWN1dGlvblR5
cGUpOwogCisgICAgdm9pZCBub3RpZnlNb2R1bGVHcmFwaFJlYWR5KFNjcmlwdEVsZW1lbnQqKTsK
KwogcHJpdmF0ZToKICAgICB2b2lkIHRpbWVyRmlyZWQoKTsKIApAQCAtNjAsNiArNjYsOCBAQCBj
bGFzcyBTY3JpcHRSdW5uZXIgewogICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNU
b0V4ZWN1dGVJbk9yZGVyOwogICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4
ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhlY3V0ZS1hcy1zb29uLWFzLXBvc3Np
YmxlCiAgICAgSGFzaE1hcDxTY3JpcHRFbGVtZW50KiwgUGVuZGluZ1NjcmlwdD4gbV9wZW5kaW5n
QXN5bmNTY3JpcHRzOworICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IG1fbW9kdWxlU2NyaXB0
RWxlbWVudHNUb0V4ZWN1dGVTb29uOworICAgIExpc3RIYXNoU2V0PFJlZlB0cjxFbGVtZW50Pj4g
bV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHM7CiAgICAgVGltZXIgbV90aW1lcjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZTEzYTVjZGRj
Y2EyY2IzYjc1NmE4ZDNhNTdlMjNmODBhOWI0M2U0OC4uZDE1ZWI3MWJlM2Y2YmNmYjEwNzgyZjk3
NDg3NWI0MDBiYzBkNzE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5jcHAKQEAgLTE2MSw2ICsxNjEsMTUgQEAgYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6aGFzU291
cmNlQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gZmFzdEhhc0F0dHJpYnV0ZShzcmNBdHRy
KTsKIH0KIAorYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKCkgY29uc3QKK3sK
KyNpZiBFTkFCTEUoRVM2X01PRFVMRVMpCisgICAgcmV0dXJuIGZhc3RHZXRBdHRyaWJ1dGUodHlw
ZUF0dHIpLnN0cmluZygpID09ICJtb2R1bGUiOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKK30KKwogdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQog
ewogICAgIEFTU0VSVCghaGF2ZUZpcmVkTG9hZEV2ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDMxMmM2NjI2ZThiODMxNGU4NWUyZGY2ODdkYmYwOWYy
YjJmZTM3YjIuLjFkZmQ4YzhiNzNlODcyYWJjZDVlYjRiMzQyZTc5MmQzMzUwM2U3OWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xh
c3MgSFRNTFNjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBT
Y3JpcHRFbGVtZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggOGFkZmNmYTQxMGFiZTQ3
ZTMzMjRhZTViOGQ5MjQzZjU2NjY0NWQ5NS4uYmE1ZjA2ZjQ0YjZiMTE3ZmNiYjYyMzM1MzhlMmUx
NGNkN2Y4ZTY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAt
MTUxLDYgKzE1MSwxMSBAQCBib29sIFNWR1NjcmlwdEVsZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFs
dWUoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBTVkdTY3JpcHRFbGVtZW50
Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBT
VkdTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdAogewogICAgIHJldHVy
biBoYXNBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmgKaW5kZXggNTM1ZTQyZTZmMDY0NmQ4MDEwNDE5MDkzYzYyMjkyNGIzODNk
NzEwMS4uOGFmZGUzMTEyNWU1ZGQ0OThkYjgyYTRlMDk4M2FiMDc0ZTBkY2M2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFNWR1Nj
cmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudAogICAgIHZpcnR1YWwgYm9vbCBh
c3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGRl
ZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFz
U291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTW9k
dWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9h
ZEV2ZW50KCkgb3ZlcnJpZGUgeyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpkaXNwYXRj
aExvYWRFdmVudCh0aGlzKTsgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWU0YmRiYzY1YmZiMDE4OTc0YzdkNTczNjRi
OGJiOGU4M2QzZTNjZS4uNWQ2NDk2YzY0MWExYThhN2VlMjFhYWE2ZTc0Y2Q4ZTVhMmMxZTIwMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE1LTA5LTIzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVncmF0ZSBFUzYgTW9kdWxlcyBp
bnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIHRlc3RzIGZvciBtb2R1bGVzLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRl
cGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxp
bmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1pbmxpbmUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
anMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHlu
YW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1z
YW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2
ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICog
anMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1zcmMtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
d2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50
LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5z
aWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qczog
QWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLTIuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2Eu
anM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC1tYXRjaGEuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qczogQWRkZWQuCisgICAgICAgICog
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanM6IEFkZGVkLgorICAg
ICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKGV4
cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1pbmxpbmUtc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29h
LnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChleHBvcnQuZGVmYXVsdC5Db2NvYSk6CisgICAg
ICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5qczog
QWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qczogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFu
ZC1pbXBvcnQuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXNyYy1keW5hbWljLWNvY29hLmpzOiBBZGRlZC4KKyAgICAgICAgKENvY29hLnByb3RvdHlwZS50
YXN0ZSk6CisgICAgICAgIChDb2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtc3JjLWR5bmFtaWMuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAoQ29jb2EucHJv
dG90eXBlLnRhc3RlKToKKyAgICAgICAgKENvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qczogQWRkZWQuCisKIDIwMTUt
MDktMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsIG91dCByMTkwMDg1IGFzIGl0IHNlZW1zIHRvIGNhdXNlIGNyYXNoZXMgaW4gSlND
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MzZlNmMzNWM3OWM2YTRhYTY3MTg1OTI3ODU1NTM5Yjdj
NWNlODA4Li40NWYwNzdmY2YzYThhZGRhY2E3YzEwZTUxYjNkYjRmYmI2ZDI1MGU1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTY3OCwzICs2NzgsMjEgQEAgd2Via2l0Lm9yZy9iLzE0ODY5NSBmYXN0
L3NoYWRvdy1kb20gWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzLmh0bWwg
WyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMTQ5MjE4IGh0dHAvdGVzdHMvbm90aWZp
Y2F0aW9ucy9ldmVudHMuaHRtbCBbIFBhc3MgQ3Jhc2ggVGltZW91dCBdCisKKyMgRVM2IE1vZHVs
ZXMgYXJlIG5vdCB5ZXQgZW5hYmxlZCBieSBkZWZhdWx0OiBFTkFCTEUoRVM2X01PRFVMRVMpCitq
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91
bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbCBbIFNr
aXAgXQoranMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLmh0bWwgWyBTa2lwIF0K
K2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwgWyBTa2lwIF0KK2pzL2Rv
bS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1pbmxp
bmUtc2ltcGxlLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNy
Yy5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbCBbIFNraXAgXQor
anMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50
LWR5bmFtaWMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbm90
LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbCBbIFNraXAgXQoranMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbCBbIFNraXAgXQor
anMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbCBbIFNraXAgXQoranMvZG9t
L21vZHVsZS1zcmMtZHluYW1pYy5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLXNyYy1zaW1w
bGUuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1s
IFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1v
bmVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9u
ZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliZGIyNzVhMmZiODM0ODk2NGZiZThkZWI4
MjU1M2I0YjlkYjlhNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IHdp
bmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgZGVwZW5kZW50IG1vZHVsZSB0aHJv
dyBhbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBu
b3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIHRoZSBkZXBlbmRlbnQgbW9kdWxlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVu
dC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUt
c2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3N2I1ZGQ3
NjRkYmUyNDM0MjNkMWMzOGUzNzRjYzBmZGRjMjQzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1v
ZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKQEAgLTAsMCArMSwyMiBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgd2lu
ZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBkZXBlbmRlbnQgbW9kdWxlIHRocm93
IGFuIGVycm9yLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHku
Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVj
dXRlZCB5ZXQuJyk7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uICgpIHsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1wb3J0ICJz
Y3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVs
ZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzIgordGVzdEZhaWxlZCgiZXhlY3V0
ZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8t
b25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNWRmNzAyOGYzNTQ5MzY2OTI5MjJlZmU2MWEyZGZiYTVmMWYwOTM1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hv
dWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGlubGluZWQgbW9k
dWxlIHRocm93cyBhbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01v
ZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3Bh
Z2F0ZWQtdG8tb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRp
b24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM0NDYyZjM3ZWQ4MTczMDYxZjdmOTk1MzZjNDJkMjk5NWMyNTI3MjgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUt
cHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2ls
bCBiZSBmaXJlZCB3aGVuIHRoZSBpbmxpbmVkIG1vZHVsZSB0aHJvd3MgYW4gZXJyb3IuJyk7Cisv
LyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK3dp
bmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitkZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1
bGUuJyk7Cit0aHJvdyBuZXcgRXJyb3IoIm1vZHVsZSBpcyBleGVjdXRlZC4iKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmZmZGYzMzk3NTdhNGEzNzk2NGU4ODlhZWM2OWFmY2M1OTlhYjc4ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJl
dHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBjb3VudCsrIGlzIDAKK1BBU1Mg
Y291bnQrKyBpcyAxCitQQVNTIGNvdW50KysgaXMgMgorUEFTUyBjb3VudCsrIGlzIDMKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbCBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU1MjVlNzY5MDhjZmI2ZmVhMDEwN2Y0ZGFhZGQxZDI5MzFiZjNjZTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1p
bmxpbmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gaW5s
aW5lZCBtb2R1bGUgdGFncy4nKTsKK3dpbmRvdy5jb3VudCA9IDA7CisvLyBNb2R1bGUgd2lsbCBi
ZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
K2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK3Nob3VsZEJlKCJjb3VudCsr
IiwgIjAiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUoImNv
dW50KysiLCAiMSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitzaG91bGRC
ZSgiY291bnQrKyIsICIyIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3No
b3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1
dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM3ZjUyNGY1
MzE5MDVkOGE1M2Y0NGEzM2FiNmZmYjQwMDEyMTAzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE4IEBACitUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtaXhl
ZCB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworV2Uga2VlcCB0aGUgZXhl
Y3V0aW9uIG9yZGVyIGJldHdlZW4gbW9kdWxlcy4KK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LgorUEFTUyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQrKyBpcyAxCitQQVNTIGNvdW50KysgaXMg
MgorUEFTUyBjb3VudCsrIGlzIDMKK1BBU1MgY291bnQrKyBpcyA0CitQQVNTIGNvdW50KysgaXMg
NQorUEFTUyBjb3VudCsrIGlzIDYKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTkxZDMwM2VkZDc1NzczODEyOGRk
OWQxNWJiNDBjN2U3NmMyY2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhl
Y3V0aW9uIG9yZGVyIGJldHdlZW4gbWl4ZWQgdGFncy4nKTsKK2RlYnVnKCdXZSBrZWVwIHRoZSBl
eGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLicpOword2luZG93LmNvdW50ID0gMDsKKwor
Ly8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxl
Ij4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjQiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJt
b2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIs
ICI2Iik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42YzkzOWFhZjBhNTAxNWY0NzkzODZjZDMxOTVhYTU5ZGQxNjkwOTc1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHlu
YW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBpbmxpbmVkIG1vZHVsZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQg
eWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25t
ZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9y
dGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJhd2Vz
b21lIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRt
bCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hOGMwZTI1OWFiMjkxZWZmYzRiZWU3OGFlNjVjMzQxN2MxMWQwNWVlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sCkBA
IC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRl
ZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKyhmdW5j
dGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3Jp
cHQiKTsKKyAgICBlbGVtZW50LnRleHRDb250ZW50ID0gYAorICAgICAgICBpbXBvcnQgQ29jb2Eg
ZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzIjsKKyAgICAgICAg
dmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKKyAgICAgICAgZGVidWcoIk1vZHVsZSBleGVjdXRp
b24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKKyAgICAg
ICAgd2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmplY3QiKTsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAiYXdlc29tZSIpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBgOworICAgIGVsZW1lbnQudHlwZSA9ICJtb2R1bGUi
OworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit9ICgpKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM5MzlhYWYwYTUwMTVm
NDc5Mzg2Y2QzMTk1YWE1OWRkMTY5MDk3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBA
QAorVGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5l
ZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVm
aW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0
ZWRDb2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtaW5saW5lLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxp
bmUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhiY2YwNjBkMWJkNjk0NWIwODkxNmViYTE1Mjlh
NTU4ZmU2YjJkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
aW5saW5lLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlLicpOworCisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1wb3J0
IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzIjsKK3Zh
ciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25m
aW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRlZENvY29hID0g
Y29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9i
amVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAi
YXdlc29tZSIpOworZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU4NjI2NjgwMmRhNTdjNzU4Y2UzZTRhMmYzMWQ3ODkwZDBlNWI3ZDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBi
ZXR3ZWVuIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBhbiBpbmxpbmVkIG1vZHVsZS4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lOGEyZjliOTk2MTZmZjQ3MGFlZTJhNDVlNzJiYmRhNmVmYWNkNDA5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50
LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IHNjcmlwdC5vbmxv
YWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGxvYWRzIGFuZCBl
eGVjdXRlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGEgbW9kdWxlIHdpdGggc3JjIGF0dHJpYnV0ZS4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbCBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ5NGE0YTMwNzBhOTZlNmRhY2JkOGI3NDZhNzdjMDU3YTQyYzU2YTUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMu
aHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25sb2FkIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgbW9k
dWxlIHRhZyB3aXRoIHNyYyBsb2FkcyBhbmQgZXhlY3V0ZXMuJyk7CisvLyBNb2R1bGUgd2lsbCBi
ZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
K2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0KCkiIHNyYz0ic2NyaXB0LXRlc3Rz
L21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1s
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWJiOGM4MDlmMmQ0NWNkM2YzMTc4OWFmZTJkZjdiMzBkY2UxZjQ1ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sCkBAIC0wLDAgKzEs
MTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0
IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0YWdzLicpOworLy8gTW9kdWxlIHdpbGwg
YmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgpIj4KK2RlYnVnKCdFeGVjdXRp
bmcgYW4gaW5saW5lZCBtb2R1bGUuJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2lu
dC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MWFiNDlkMTQ5NzYyNGRmMjJlMDM0
Nzk3YjM5YWE4ZWM4Njk0ZWNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFt
aWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKzIgZGlmZmVyZW50IG1vZHVsZSB0YWcg
d2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGZyb20gYSBkeW5hbWljYWxseSBn
ZW5lcmF0ZWQgdGFnCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDdXJyZW50bHks
IHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZp
eGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGlu
ZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcy4K
K0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJl
bnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZDUxZTJiNmNlYTg2MTdi
YWNmMGM0MGUzMzdlOTA5YTFkMzFhMzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQt
ZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCcyIGRpZmZlcmVudCBtb2R1bGUgdGFnIHdpbGwgYXR0ZW1wdCB0
byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBmcm9tIGEgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIHRhZycp
OworZGVidWcoJ0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhp
cyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4nKTsKKy8vIE1vZHVsZSB3aWxs
IGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1l
LW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcg
dGhlIG1vZHVsZS4nKTsKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2Ny
aXB0Iik7CitlbGVtZW50LnR5cGUgPSAibW9kdWxlIjsKK2VsZW1lbnQuaW5uZXJUZXh0ID0gInNj
cmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1w
b2ludC5qcyI7CitlbGVtZW50Lm9uZXJyb3IgPSBmaW5pc2hKU1Rlc3QoKTsKK2RvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIwZjk4ZmNjYjZmYWZhMDY0NDdlMzAzMmVmMDZkOTgyMDI3ZjI1
MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2Ft
ZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTQgQEAKKzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhl
IHNhbWUgbW9kdWxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDdXJyZW50bHks
IHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZp
eGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGlu
ZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcy4K
K0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVu
dHJ5LXBvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1
bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDZkNGUwYjYz
Y2RjMDEyNzQxMzNiZWZkOTM4NDQyNTU1NThiMTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRv
IGxvYWQgdGhlIHNhbWUgbW9kdWxlJyk7CitkZWJ1ZygnQ3VycmVudGx5LCB0aGlzIGlzIG5vdCBk
ZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0
dXJlLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2ltcG9ydCAic2NyaXB0
LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50
LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3QoKSI+CitpbXBvcnQgInNjcmlwdC10
ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5q
cyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQt
ZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3Qt
Zm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzOGJhM2MyZTc5OTc3
ZTJjOWY3OTM0ODA5NzM2ZmQ5ODM3ZDcyZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6IFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHN0cmluZyBsaXRlcmFsICJub3QtZm91bmQuanMiLiBFeHBlY3RlZCAnZnJvbScgYmVmb3Jl
IGltcG9ydGVkIG1vZHVsZSBuYW1lLgorVGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVk
IHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUgaW1wb3J0IGRlY2xhcmF0aW9uIGlu
IHRoZSBpbmxpbmVkIG1vZHVsZSBpcyBub3QgZm91bmQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9y
LWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0ODc4
NzUwMWExMjkyNzY4MTA5MTg3OTA3YWZjNDdkZmI2ZDI4OTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1h
bmQtaW1wb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHNjcmlwdC5vbmVy
cm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBv
cnQgZGVjbGFyYXRpb24gaW4gdGhlIGRlcGVuZGVudCBtb2R1bGUgaXMgbm90IGZvdW5kLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMtYW5kLWltcG9ydC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3Qt
Zm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRl
ZjM5ODY4NWFlMDVhMTFjZThhMWUwYjIyMDk4ZTk4NTMxZDYyOTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNy
Yy1hbmQtaW1wb3J0Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJl
ZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhlIGltcG9ydCBkZWNsYXJhdGlvbiBp
biB0aGUgZGVwZW5kZW50IG1vZHVsZSBpcyBub3QgZm91bmQuJyk7CisvLyBNb2R1bGUgd2lsbCBi
ZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
K2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3Io
KQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCkK
K30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21v
ZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qcyIgb25lcnJv
cj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2
ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODBkMTVkZmU2ZDA5YmZjNmI4
NTgzYTQ4ZGVjNmRjYjFiNWIxNDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRo
ZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgInNyYyIgaXMgbm90IGZvdW5kLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMu
aHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdp
dGgtc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhNDdmNjEwNjlhZmVjYmNiMzhiMGE5NTc1NjI1Y2U4
MmRmNDgxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90
LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0Lm9uZXJy
b3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgInNyYyIgaXMg
bm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHku
Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVj
dXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sKKyAgICBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0ibW9kdWxlIiBzcmM9Im5vdC1mb3VuZC5qcyIgb25lcnJvcj0ib25FcnJvcigpIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjYjU5NGM2NDY4MzhlNGMz
NWUzNzU2MWY2ZGNlM2Q4Mzc3MGI3NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCkBAIC0wLDAgKzEsMjQgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlw
dC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRo
ZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGlubGluZWQgbW9kdWxlIGlzIG5vdCBmb3VuZC4n
KTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Licp
OworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
KyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIg
b25lcnJvcj0ib25FcnJvcigpIj4KK2ltcG9ydCBmcm9tICJub3QtZm91bmQuanMiOwordGVzdEZh
aWxlZCgnZXhlY3V0ZWQnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZDhiMDA2MjQ5MGVjNzIyOTVjZmY1MDYxYTA4MzllNDAwMjBjZDhhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVu
dC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQQVNTIHR5cGVvZiBleHBvcnRl
ZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2EudGFzdGUoKSBpcyAibmljZSIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg0ZmY0
MjY0Zjk4MWZlOTY0OWVkM2E3MjFiMWNmYTRmYTVlOTFjZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDI0IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1
bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVk
IGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworKGZ1bmN0
aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Njcmlw
dCcpOworICAgIGVsZW1lbnQudHlwZSA9ICdtb2R1bGUnOworICAgIGVsZW1lbnQuc3JjID0gJy4v
c2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcyc7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChlbGVtZW50KTsKK30oKSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNkOGIwMDYyNDkwZWM3MjI5NWNmZjUwNjFhMDgzOWU0MDAyMGNkOGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmli
dXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVj
dXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52
aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBlb2Yg
ZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkgaXMg
Im5pY2UiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
ZjczYjBjNTRhMjVhNGY3NmMxNGEzYjVkYzMxNzNmZTg5M2NiM2NkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwx
OSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qg
bW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVj
dXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi9zY3JpcHQtdGVzdHMvbW9kdWxl
LXNyYy1zaW1wbGUuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zYThkOTcwOGRiM2UwNWM0YjAxMDNiZTdkY2ViMGMwMDcxMTc1
Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZp
cmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBzY3JpcHQu
YmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0aCBzcmMgaXMg
cHJlcGFyZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmly
ZS1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1i
ZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZmYxNjUzZDA2YzA2ZTFkNzQxNzlkMDExMDAz
NmUxNDlkODY5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
d2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQuYmVmb3JlbG9hZCB3
aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0aCBzcmMgaXMgcHJlcGFyZWQuJyk7
CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9uYmVmb3JlbG9hZD0iZmluaXNoSlNU
ZXN0KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1t
b2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVw
ZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM2YzE1YWYyMTQyYjQ4MDI2MDJlYWQwMzcwMGY4YmJlMDFiYzJiZWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQt
dG8tb25lcnJvci10aHJvdy5qcwpAQCAtMCwwICsxLDIgQEAKK2RlYnVnKCJFeGVjdXRpbmcgdGhl
IGRlcGVuZGVudCBtb2R1bGUiKTsKK3Rocm93IG5ldyBFcnJvcigib3V0Iik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3It
aW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5q
cyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJv
ci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9y
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ2YzdjYTQ3OWIyNTg4OWIwMGNhMjRjZDViYmUzMzFkYWE2NWY3MTkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3Bh
Z2F0ZWQtdG8tb25lcnJvci5qcwpAQCAtMCwwICsxLDIgQEAKK2ltcG9ydCAibW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10
by1vbmVycm9yLXRocm93LmpzIgordGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC0yLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLW1peGVkLTIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMzYjlkMzUyYWVjNTdiMDYxZGRiZTAw
YjdjZjk0ZWE1NzRhZWM0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzCkBAIC0wLDAgKzEg
QEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5v
LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMxNDZmZDc2NmU1NWEwMmFlNzhi
YWY5ZGQ2MzM5OGViODVhODkwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpz
CkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1h
dGNoYS5qcyIKKworc2hvdWxkQmUoImNvdW50KysiLCAiMiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNv
Y29hLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OGQ3MzI0M2ZlZjMwYTBiNDk0OWRi
YTdmYmY4NTM0ZWViYTlmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanMKQEAgLTAs
MCArMSwzIEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpz
IjsKKworc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5q
cyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1tYXRjaGEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJlMTVkN2NmMGNmZjRlYWExYTBiNWExZWU4
M2RjY2UzMjRhMjVlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMKQEAgLTAsMCAr
MSBAQAorc2hvdWxkQmUoImNvdW50KysiLCAiMCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ0Mzg2ZmJiODY4MWNiZjdlNTljNDczNzYzN2U4N2JlMzhjZmY3NDQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMKQEAgLTAsMCArMSw0IEBACitpbXBvcnQgIi4vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcyIKK2ltcG9ydCAiLi9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMiCisKK3Nob3VsZEJlKCJjb3VudCsrIiwg
IjMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWlubGluZS1keW5hbWljLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtaW5saW5lLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQzNjBhN2JmZTdlMDVhMGNiMjUzODQx
MzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzCkBAIC0wLDAgKzEsNSBAQAorZXhw
b3J0IGRlZmF1bHQgY2xhc3MgQ29jb2EgeworICAgIHRhc3RlKCkgeworICAgICAgICByZXR1cm4g
ImF3ZXNvbWUiOworICAgIH0KK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDM2MGE3YmZl
N2UwNWEwY2IyNTM4NDEzNjdlNzFkYzFlOTNiNWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcwpAQCAtMCww
ICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAg
ICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5qcyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2I4NzAyOTBkM2VjN2UwODBjMDVmOWY2NjY4NDRjZDA2NzUyOWZkZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKQEAgLTAsMCArMSBAQAorZGVidWcoJ0V4ZWN1dGluZyBh
IG1vZHVsZSB3aXRoIHNyYyBhdHRyaWJ1dGUuJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50
LWVudHJ5LXBvaW50LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNWFkNzdmODAwODA0MzgxYmY0ZjFlYWRiNTE3ZjU2MGYwYzRlYjY2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcwpAQCAtMCwwICsxIEBACitkZWJ1Zygn
RXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBv
aW50LmpzLicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMtYW5kLWltcG9ydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzFiNDcxNDgxMzhhMGVjNDUyMmMy
MjcyMzNhM2M3NDEzMzcxMjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1p
bXBvcnQuanMKQEAgLTAsMCArMSBAQAoraW1wb3J0ICJub3QtZm91bmQuanMiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1jb2Nv
YS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWlj
LWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3OTU5MmRjNTEzY2YyNTk4NDFmZjlkNDYzOTA0NTEyYjBl
Y2I3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAKK2NsYXNzIENvY29h
IHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAgICB9Cit9CisKK2V4
cG9ydCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTFhN2JlNmI0ZjEyOTNh
ZjU5Njg2ZmUzZTU3ODAxZDJlMDk2YzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMKQEAgLTAsMCArMSwxMCBA
QAoraW1wb3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzIjsKK3Zh
ciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25m
aW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRlZENvY29hID0g
Y29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9i
amVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAi
bmljZSIpOworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
Nzk1OTJkYzUxM2NmMjU5ODQxZmY5ZDQ2MzkwNDUxMmIwZWNiNzQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2Nv
YS5qcwpAQCAtMCwwICsxLDcgQEAKK2NsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAg
ICAgcmV0dXJuICJuaWNlIjsKKyAgICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0IENvY29hOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBs
ZS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGQ5Yzc3NGZkOWU3YTVjOWQxODU5MjQwNDRlN2EyNzhhZDczMzcyOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXNyYy1zaW1wbGUuanMKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZyb20gIi4vbW9k
dWxlLXNyYy1zaW1wbGUtY29jb2EuanMiOwordmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKK2Rl
YnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1l
bnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQi
KTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJuaWNlIik7CitmaW5pc2hKU1Rlc3QoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmly
ZS1iZWZvcmVsb2FkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
d2lsbC1maXJlLWJlZm9yZWxvYWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBhMzkzODM1NjMzYWVjNTVlNWU1
OTU3MjlkYTY5MTllOWMzMjAzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzCkBAIC0wLDAgKzEg
QEAKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261880</attachid>
            <date>2015-09-24 11:49:43 -0700</date>
            <delta_ts>2015-09-24 13:22:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150924114926.patch</filename>
            <type>text/plain</type>
            <size>133340</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzdmZGYwNGRiNzhkMjk0MDUzMzZiOTk0NGVlNjgyYmM1MTUyMjM2Li5hM2ViNDA0NDVmZDUxNjQx
NWU0MjJmMWFkYzY3YTU2YzQwMmM0Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wOS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW1ib2w6
OmNyZWF0ZSBpcyBub3cgdXNlZCBpbiBXZWJDb3JlLgorCisgICAgICAgICogcnVudGltZS9TeW1i
b2wuaDoKKwogMjAxNS0wOS0yMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBKU0MgYWxsb3dzIGludmFsaWQgdmFyIGRlY2xhcmF0aW9ucyB3aGVuIHRoZSBkZWNs
YXJlZCBuYW1lIGlzIHRoZSBzYW1lIGFzIGEgbGV0L2NvbnN0IHZhcmlhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNmZhZTUzNWI4ZDczMGYzOTgxYWE1MDBkNTljZjZiZGI4MmE1NjczYS4uNzY0YTZjYzRiODQ4
M2FlMmQxMjZjM2NkZGYyMTJhMWMwZWQ2MDU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NiBA
QAorMjAxNS0wOS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPiB0YWcuIFRoYXQgdGFnIGxvYWRzIHRoZSBFUzYg
TW9kdWxlcy4KKyAgICAgICAgU2luY2UgdGhlIGRldGFpbCBvZiB0aGUgdGFnIGlzIG5vdCBkZWZp
bmVkIHlldFsxXSwgdGhlIGltcGxlbWVudGF0aW9uIGlzIGhpZGRlbgorICAgICAgICBiZWhpbmQg
dGhlIGNvbXBpbGUgdGltZSBmbGFnIEVOQUJMRShFUzZfTU9EVUxFUykuCisKKyAgICAgICAgQSBt
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseSBhbmQgZXhlY3V0ZWQgaW4gYSBt
b2R1bGUgZW52aXJvbm1lbnQKKyAgICAgICAgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZ2xv
YmFsIGVudmlyb25tZW50LiBJdCBpcyBhbHdheXMgc3RyaWN0IG1vZGUgYW5kIG9ubHkKKyAgICAg
ICAgYSBtb2R1bGUgY2FuIHVzZSB0aGUgbW9kdWxlIHN5bnRheCBsaWtlIGBpbXBvcnRgLCBgZXhw
b3J0YCBldGMuIFNvIHNpbmNlIHRoZQorICAgICAgICBleGVjdXRpb24gc2VtYW50aWNzIGlzIGRp
ZmZlcmVudCBmcm9tIG9uZSBvZiBnbG9iYWwgc2NyaXB0cywgbW9kdWxlcyBuZWVkIHRvIGJlCisg
ICAgICAgIGV4ZWN1dGVkIGJ5IHRoZSBzcGVjaWFsaXplZCB0YWcsIDxzY3JpcHQ+IHdpdGggdHlw
ZT0ibW9kdWxlIi4KKworICAgICAgICBUaGUgbW9kdWxlIHRhZyB3b3JrcyBhcyBhbiBlbnRyeSBw
b2ludCB0byBtb2R1bGVzLiBUeXBpY2FsbHksIHdlIHNwZWNpZnkgYW4KKyAgICAgICAgZW50cnkg
cG9pbnQgbW9kdWxlIGJ5IGEgdGFnIGFuZCBhbiBlbnRyeSBwb2ludCBtb2R1bGUgd2lsbCBsb2Fk
IGRlcGVuZGVudAorICAgICAgICBtb2R1bGVzIGFuZCBydW4gYSBhcHBsaWNhdGlvbi4KKworICAg
ICAgICBPbmNlIG1vZHVsZSB0YWcgcmVxdWVzdCBsb2FkaW5nLCBXZWJDb3JlIHJlcXVlc3QgbG9h
ZGluZyB0byB0aGUgSlNDJ3MgbW9kdWxlCisgICAgICAgIGxvYWRlci4gV2ViQ29yZSBhZG9wdHMg
dGhlIEpTQydzIGdlbmVyaWMgbW9kdWxlIGxvYWRlciBieSBpbXBsZW1lbnRpbmcgdGhlIGxvYWRl
cgorICAgICAgICBob29rcy4gSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIFdlYkNvcmUg
aW1wbGVtZW50cyAzIGhvb2tzLgorCisgICAgICAgIDEuIHJlc29sdmUgaG9vaworCisgICAgICAg
ICAgICBUYWtlcyB0aGUgbW9kdWxlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBt
b2R1bGUga2V5LgorICAgICAgICAgICAgSW4gV2ViQ29yZSwgd2UgdGFrZSB0aGUgbW9kdWxlIG5h
bWUgbGlrZSAiLi9oZWxsby5qcyIgYW5kIHJlc29sdmUgaXQgdG8gVVJMLgorCisgICAgICAgIDIu
IGZldGNoIGhvb2sKKworICAgICAgICAgICAgRmV0Y2hlcyB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVk
IGJ5IHRoZSBtb2R1bGUga2V5LiBJbiBXZWJDb3JlLCB0aGUgbW9kdWxlIGtleSBpcworICAgICAg
ICAgICAgVVJMLiBXZSB1c2UgQ2FjaGVkUmVzb3VyY2UgbG9hZGluZyBzeXN0ZW0gdG8gbG9hZCB0
aGUgcmVzb3VyY2Ugb2YgdGhlIG1vZHVsZXMuCisKKyAgICAgICAgMy4gZXZhbHVhdGUgaG9vawor
CisgICAgICAgICAgICBUaGlzIGlzIGFkZGl0aW9uYWwgaG9vayB0byBpbnN0cnVtZW50IHRoZSBt
b2R1bGUncyBleGVjdXRpb24gZm9yIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgVGhlIG1vZHVs
ZSBsb2FkZXIgaW52b2tlcyB0aGVzZSBob29rcywgY29uc3RydWN0cyB0aGUgcGlwZWxpbmUgYW5k
IG5vdGlmaWVzIGV2ZW50cworICAgICAgICB0byBhIE1vZHVsZUdyYXBoLCB3aGljaCBpcyBoZWxk
IGJ5IGEgU2NyaXB0RWxlbWVudC4gQSBTY3JpcHRFbGVtZW50IHdpdGggYSBNb2R1bGVHcmFwaAor
ICAgICAgICB3aWxsIGJlIGRyaXZlbiBieSB0aGVzZSBldmVudHMuCisKKyAgICAgICAgTW9kdWxl
IHRhZyBsb2FkcyB0aGUgcmVzb3VyY2VzIGFzeW5jaHJvbm91c2x5LiBTbyBpdCBkb2VzIG5vdCBi
bG9jayB0aGUgZG9jdW1lbnQKKyAgICAgICAgcGFyc2VyLiBCdXQgdGhlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIHRoZSBtdWx0aXBsZSBtb2R1bGUgdGFncyBzaG91bGQgYmVjb21lCisgICAgICAg
IHRoZSBvY2N1cnJlbmNlIG9yZGVyWzFdLiBTbyBTY3JpcHRSdW5uZXIgbWFuYWdlcyB0aGUgbW9k
dWxlIHRhZ3MgYW5kIGZvcmNlIHRoZW0KKyAgICAgICAgdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIG9j
Y3VycmVuY2Ugb3JkZXIuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGhlcm1h
bi9tb2R1bGUtdGFnL2Jsb2IvbWFzdGVyL3JlcXVpcmVtZW50cy5tZAorCisgICAgICAgIFRlc3Rz
OiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3Iu
aHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5l
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbAor
ICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9t
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFt
aWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbAorICAgICAg
ICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMv
ZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01haW5U
aHJlYWRFeGVjU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0
ZTo6bG9hZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlRmV0
Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6TW9kdWxl
RmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hl
cik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6cnVuKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZl
dGNoZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRj
aGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6Y2FjaGVkU2Ny
aXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUxvYWRlcjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVM
b2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3Jp
cHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZU1vZHVsZUxvYWRlckVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1bGVHcmFwaCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgorICAgICAgICAqIGRv
bS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6fkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TW9kdWxlR3JhcGg6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpu
b3RpZnlFdmFsdWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmxvYWQpOgor
ICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
ZHVsZUdyYXBoOjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjptb2R1
bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OndlYWtFbGVtZW50UHRyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjplcnJvck9jY3VycmVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBl
U3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpt
b2R1bGVHcmFwaCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9TY3JpcHRS
dW5uZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6aGFzUGVuZGluZ1Njcmlw
dHMpOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAg
ICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDoKKwogMjAxNS0wOS0yMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIxOTAw
ODUgYXMgaXQgc2VlbXMgdG8gY2F1c2UgY3Jhc2hlcyBpbiBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggODNmNWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1
ZmRkZGJiZS4uZGRiNjhjY2IzNjU0NDU5OTEwY2QzZjIzZjY2ODc0ZDAwNTg4YTk1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTg2LDcgKzg2LDcgQEAgY2xhc3Mg
U3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBTeW1ib2woVk0mKTsKICAgICBT
eW1ib2woVk0mLCBjb25zdCBTdHJpbmcmKTsKLSAgICBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1
aWQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDI0NjMwYmEwZjMyN2QwYTU2MmZmMGZmOGZlYTk1Y2UxNzk5MmJmMWMuLmQ1MDli
NWY2Yjc3ZTUxZGQ0YmJmOWRhMmZjMDhkY2M3NzYzM2QwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMjI1LDYgKzEyMjUsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAK
KyAgICBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcAorICAgIGJpbmRpbmdzL2pzL01vZHVs
ZUxvYWRlci5jcHAKICAgICBiaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAogICAgIGJp
bmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNo
ZWRGcmFtZURhdGEuY3BwCkBAIC0xNDUwLDYgKzE0NTIsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgZG9tL01lc3NhZ2VQb3J0LmNwcAogICAgIGRvbS9NZXNzYWdlUG9ydENoYW5uZWwuY3Bw
CiAgICAgZG9tL01pY3JvVGFzay5jcHAKKyAgICBkb20vTW9kdWxlR3JhcGguY3BwCiAgICAgZG9t
L01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9N
dXRhdGlvbkV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNTU3
YTJmMjFlY2Y2YjJhZWNhZDY3ZTM1M2UxOTY2ZTQ3OTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNl
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VfaAorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZjMDg2ZGQzOWFmZjllMTA0YmQ1
YTZmZjdhZTc5MjU0NjM4Njk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCkBAIC0w
LDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVk
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L0pTTW9kdWxlUmVjb3JkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlOWVjZmZiY2Y1N2MyYTljNzk1Y2NiMWQ4
MDM0MGY5MTRkN2Q0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5k
ZWYgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNvcmRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KU01v
ZHVsZVJlY29yZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVu
dGltZS9TeW1ib2wuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUv
U3ltYm9sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUwNDI3ZjA5MWE5ZWNhY2ZiZmEwOTlhZTBkMDMwZTBlOWJj
NWViMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvU3ltYm9sLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1N5
bWJvbF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1N5bWJvbF9oCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvU3ltYm9sLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDIxYTlkNDI1ZGFkNzI0OGU4NDQyMzljNThjZTg1MDZm
MjgwOTg4YjEuLmFjMDIyYjA2NzM1NjkxM2RmYzg3MGFlZGExYWNhZTU1YmUyYWJmMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQ0
MzYsNiArMTQ0MzYsMjAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkb21cTW9kdWxlR3JhcGguY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xODg3NSw2ICsxODg4OSwzNCBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUZldGNoZXIu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XE1vZHVsZUxvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMjA3MSw2ICsyMjExMyw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTWVzc2FnZVBvcnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNZXNzYWdlUG9ydENoYW5uZWwuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRvbVxNb2R1bGVHcmFwaC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9t
XE1vdXNlRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZVJl
bGF0ZWRFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE11dGF0aW9u
RXZlbnQuaCIgLz4KQEAgLTIyNDg0LDYgKzIyNTI3LDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZU9yU3RyaW5nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVG
ZXRjaGVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1
bGVMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNj
aGVkdWxlZEFjdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xTY3JpcHRDb250cm9sbGVyLmgiIC8+CkBAIC0yMjcyMywxMyArMjI3Njgs
MTcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN2Z1xwcm9wZXJ0aWVzXFNWR1RyYW5z
Zm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcQXJnTGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxJZGVudGlmaWVyLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTSW50
ZXJuYWxQcm9taXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNMb2NrLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpT
T2JqZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXEpTU3RyaW5nLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTTW9kdWxlUmVjb3JkLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXExvb2t1cC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxPcGVyYXRp
b25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xy
dW50aW1lXFByb3RlY3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcU3RyaW5nT2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5bWJvbC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFyclxSZWd1bGFyRXhwcmVzc2lv
bi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFy
clxZYXJyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1x5YXJyXFlhcnJJbnRlcnByZXRlci5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDZkZDM3OTlhZDVj
NjM5NTczY2Y3YjY4NDNjZDhkY2RiMTU3ODYyZWEuLjQyZWQ2YmE1ZWMwYzMxNzNjYjkxY2I4MzZm
MzczOWIzNzIyN2MzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTMxOTgsNiArMzE5OCw5IEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTWljcm9UYXNrLmNwcCI+CiAgICAgICA8RmlsdGVy
PmRvbTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZG9tXE1vZHVsZUdyYXBoLmNwcCI+CisgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlRXZlbnQu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC00
NDc2LDYgKzQ0NzksMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlRmV0Y2hlci5jcHAiPgorICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlTG9hZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xTY2hlZHVsZWRBY3Rpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwMzA0LDYgKzEwMzEzLDkgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCI+CiAgICAgICA8RmlsdGVyPmRv
bTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXE1vZHVsZUdyYXBoLmgiPgorICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmgiPgog
ICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTExNDg5LDYg
KzExNTAxLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5oIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXE1vZHVsZUZldGNoZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xNb2R1bGVMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xT
Y2hlZHVsZWRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xMTY1NywxMiArMTE2NzUsMjEgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSWRlbnRpZmllci5oIj4KICAg
ICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVu
dGltZVxKU0ludGVybmFsUHJvbWlzZS5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTTG9jay5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU09iamVjdC5oIj4KICAgICAgIDxG
aWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxK
U01vZHVsZVJlY29yZC5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGlt
ZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU1N0cmluZy5oIj4KICAgICAgIDxGaWx0ZXI+Rm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTE2
ODEsNiArMTE3MDgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxTdHJpbmdPYmplY3QuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sLmgiPgorICAgICAg
PEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1
ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1x5YXJyXFJl
Z3VsYXJFeHByZXNzaW9uLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1x5YXJy
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWI1NWZmOWYxMmE4MmUyYjBhYzczMjgz
NDUyNzEzZTRhZGUxYjY5MC4uYTY4NzU1ODFiMWFjYzFmOGYzNTZmMzczMDBmMzc0YWE4NGYzOGJh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjMyMyw2ICs2MzIzLDEyIEBACiAJCUUxRkY4RjY4MTgwNzQ2MDgwMDEzMjY3NCAv
KiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlw
dG9DdXN0b20uY3BwICovOyB9OwogCQlFMUZGOEY2QzE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5LmNwcCAqLzsgfTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuaCAqLzsgfTsKKwkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzlBNTIx
MUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi87IH07CisJCUUzMzlBNTI0MUJB
NkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdy
YXBoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4OTIxQkFEMTQ1RjAwRDYy
RUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7
IH07IH07CisJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5MzFCQUQx
NDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdT
ID0gKCk7IH07IH07CisJCUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4
OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9
IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CiAJCUU0MDFDMjc1MTdDRTUzRUMwMEM0MUEzNSAvKiBF
bGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDAxQzI3NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJh
dG9yQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0MjRBMzlFMTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlE
MTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCAqLzsgfTsKIAkJRTQyNEEz
QTAxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlGMTMzMERGMUUwMENGNkRD
OSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gKi87IH07CkBAIC0xNDA4Myw2ICsxNDA4OSwxMiBA
QAogCQlFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG9DdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzOUE1
MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUdyYXBoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUdyYXBoLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzODgzODkyMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUZldGNoZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5MzFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlRmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
b2R1bGVGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgzODk0MUJB
RDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudEl0
ZXJhdG9yQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA2RjNG
QjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbG9yRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE1MzUsNiArMjE1NDcsMTAgQEAKIAkJCQk0
MTE4OUVGODFBRDgyMzNDMDBCOTBBMEQgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0
b20uY3BwICovLAogCQkJCUUxQzM2RDMyMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5jcHAgKi8sCiAJCQkJRTFDMzZEMzMwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlLmggKi8sCisJCQkJRTM4ODM4OTIxQkFEMTQ1RjAwRDYyRUUzIC8q
IE1vZHVsZUZldGNoZXIuY3BwICovLAorCQkJCUUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBN
b2R1bGVGZXRjaGVyLmggKi8sCisJCQkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5jcHAgKi8sCisJCQkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxv
YWRlci5oICovLAogCQkJCTQxOThCREVFMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3Ry
ZWFtLmNwcCAqLywKIAkJCQk0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0
cmVhbS5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rp
b24uY3BwICovLApAQCAtMjM1MDIsNiArMjM1MTgsOCBAQAogCQkJCTQxQkY3MDBBMEZFODZGNDkw
MDVFOERFQyAvKiBNZXNzYWdlUG9ydENoYW5uZWwuaCAqLywKIAkJCQlDQjhDRjAxNTFBOTM0QjQz
MDAwRDUxMEIgLyogTWljcm9UYXNrLmNwcCAqLywKIAkJCQk1M0I4OTVBRDE5REM3QzM3MDA5Q0FB
OTMgLyogTWljcm9UYXNrLmggKi8sCisJCQkJRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1v
ZHVsZUdyYXBoLmNwcCAqLywKKwkJCQlFMzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxl
R3JhcGguaCAqLywKIAkJCQk4NTAzMUIyRjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5j
cHAgKi8sCiAJCQkJODUwMzFCMzAwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuaCAqLywK
IAkJCQkxNDFCOTRFNTA5RUM0MjIzMDAwRTk0MTMgLyogTW91c2VFdmVudC5pZGwgKi8sCkBAIC0y
NDYxNyw2ICsyNDYzNSw3IEBACiAJCQkJMzE2MDIzRjAxNTMyQzQwQzAwRDUwRkY0IC8qIERpY3Rp
b25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEzMSAvKiBE
aWN0aW9uYXJ5TG9va3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNEMTMxMDA4
REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzM5QTUyNDFC
QTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTdFREFB
RkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxOTEsNiArMjYy
MTAsNyBAQAogCQkJCUNFMTI1MjQxMUExNkIxQjYwMDg2NDQ4MCAvKiBNZWRpYVBsYXllclNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJv
ZHVjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBN
ZWRpYVF1ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJFRTMg
LyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAy
MjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5
MkUwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzIzOSw2ICsyNzI1OSw3IEBACiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZDQTI3
IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYw
QkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FDRTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
VGV4dFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FEMTBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg1NEIwMjUxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yODAwNyw2ICsyODAyOCw3IEBACiAJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8q
IEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQkMxMkIw
MjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwMDcxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFw
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjA4MTEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NTk2OTExNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDMxNjBCRTEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyTWFjLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjg1NzIsNiArMjg1OTQsNyBAQAogCQkJCUU0QTAwNzg1MUI4MjBFRDMw
MDJDNUE2RSAvKiBEYXRhVVJMRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1
MTBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOEFEMEE1OTcxNEM4ODM1ODAwMEQ4M0M1IC8qIERPTVdlYktpdENTU1JlZ2lvblJ1bGUu
bW0gaW4gU291cmNlcyAqLywKKwkJCQlFMzg4Mzg5ODFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxl
TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjExRTYyMEUxQzRFMTQwMEY2QTU3OSAv
KiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTNGMkIz
M0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzkxQTM4RjFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg5OSw2ICsyODkyMiw3IEBACiAJCQkJQTg3MURCMkUw
QTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4NzFEQjI5MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDb2xFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjI4MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFi
bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzODgzODk2MUJBRDE0NUYwMEQ2MkVF
MyAvKiBNb2R1bGVGZXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjJEMEExNTBC
RDYwMEIxMkE2OCAvKiBIVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODcxREIzMDBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzQ0MkNBMDBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93
c0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCBmZjQxNWVkMjg0MDg4ZTI4OTU1
YTY0YzBlNjEyYTg1NmRlZWRkOTdmLi5kZTliMThhNGU2MTUwMDZjZDIxMTQ0NmY2ZDZlMWY1NTY3
Yzk0ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHAKQEAgLTE0Nyw2ICsxNDcsOCBAQAogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5j
cHAiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmNwcCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rp
b24uY3BwIgogI2luY2x1ZGUgIlNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAiCiAjaW5jbHVkZSAi
U2NyaXB0Q29udHJvbGxlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcAppbmRleCA4MzUwMzMzMTNlZmUxNTJmMWUzOWY0YzE1MWJiZGMyZjBh
MWFkN2ZiLi45ZjhkZjBiNWYyZmVkZDBiNWZlNmYxZWYxYjBjZmViYzc3YTNlYjk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMxLDEx
ICszMSwxMyBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNO
b2RlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldl
YkNvcmVKU0NsaWVudERhdGEuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQuaD4KICNpbmNsdWRlIDxydW50aW1lL01pY3JvdGFzay5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTU2LDcgKzU4LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkQWxs
b3dBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0LCBFeGVjU3RhdGUq
IGUKIAogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93QmFzZTo6c19pbmZvID0geyAiV2luZG93
IiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNE
T01XaW5kb3dCYXNlKSB9OwogCi1jb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdp
bmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZzaG91bGRBbGxvd0FjY2Vz
c0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91
bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9F
dmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Citjb25zdCBHbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7
ICZzaG91bGRBbGxvd0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmlj
aFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZs
YWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVU
aW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRlckZldGNoLCBudWxscHRy
LCBudWxscHRyLCAmbW9kdWxlTG9hZGVyRXZhbHVhdGUgfTsKIAogSlNET01XaW5kb3dCYXNlOjpK
U0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxE
T01XaW5kb3c+IHdpbmRvdywgSlNET01XaW5kb3dTaGVsbCogc2hlbGwpCiAgICAgOiBKU0RPTUds
b2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCAmc2hlbGwtPndvcmxkKCksICZzX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKQpAQCAtMjc2LDQgKzI3OCwzMSBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6
ZmlyZUZyYW1lQ2xlYXJlZFdhdGNocG9pbnRzRm9yV2luZG93KERPTVdpbmRvdyogd2luZG93KQog
ICAgIH0KIH0KIAorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1v
ZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBy
ZWZlcnJlcikKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2Fz
dDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9j
dW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBsKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRv
Y3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVs
ZU5hbWUsIHJlZmVycmVyKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRl
ZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xv
YmFsT2JqZWN0KTsKKyAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5l
ZCgpKTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1
bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5KQoreworICAgIEpTRE9NV2luZG93
QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9i
amVjdCk7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5k
b2N1bWVudCgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5mZXRj
aChnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUtleSk7CisgICAgSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3Qo
ZXhlYywganNVbmRlZmluZWQoKSk7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTVdpbmRvd0Jhc2U6
Om1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1
ZSBtb2R1bGVSZWNvcmQpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1l
bnQqIGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJl
dHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgZXhl
YywgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQpOworICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVk
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggNWVkMzg2MmMxNDExODdjMDA2YjY4OGRiNzk3
Nzk0YjM2OTgxMDU2NC4uMmQ0NGI4MDA5ZTU0ZGJiMDc0ZThmOTk3N2MxNmIyNWUxMjU3ZWFiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTc4
LDYgKzc4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSlNDOjpXYXRjaHBvaW50
U2V0IG1fd2luZG93Q2xvc2VXYXRjaHBvaW50czsKIAogICAgIHByaXZhdGU6CisgICAgICAgIC8v
IE1vZHVsZSBMb2FkZXIgaG9va3MuCisgICAgICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlKiBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworCiAgICAgICAgIFJlZlB0cjxE
T01XaW5kb3c+IG1faW1wbDsKICAgICAgICAgSlNET01XaW5kb3dTaGVsbCogbV9zaGVsbDsKICAg
ICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVj
U3RhdGUuaAppbmRleCAwOWU3ZTViNjAyNjg3OWI1MzM1YTFmZTFlZjcxYzQ0NzQzMGJmY2Q0Li40
ZmQ2ODNlMTU5MTAyYjE1Mjg3ZDYzODk5YzAxNmVmZDM3NDgwM2U1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaApAQCAtNzQsNiAr
NzQsMjQgQEAgY2xhc3MgSlNNYWluVGhyZWFkRXhlY1N0YXRlIHsKICAgICAgICAgdGFzay5ydW4o
ZXhlYyk7CiAgICAgfQogCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxvYWRN
b2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKKyAg
ICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7Cisg
ICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSk7CisgICAgfQor
CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6U291cmNlQ29kZSYgc291cmNlQ29kZSkKKyAgICB7Cisg
ICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAg
IHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywgc291cmNlQ29kZSk7CisgICAgfQorCisgICAg
c3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBtb2R1bGVLZXkpCisgICAg
eworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMpOworICAg
ICAgICByZXR1cm4gSlNDOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgbW9kdWxlS2V5KTsK
KyAgICB9CisKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGluc3Ry
dW1lbnRGdW5jdGlvbkNhbGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEpTQzo6Q2FsbFR5cGUs
IGNvbnN0IEpTQzo6Q2FsbERhdGEmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODljZGI4Yjg0NTAxMjdmNjI4
MmU5NTNlMWVmNWUzNGQ2YWE5ZWJjYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoZXIuaCIKKwor
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0
LmgiCisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK01vZHVsZUZldGNoZXI6Ok1vZHVsZUZldGNoZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9j
dW1lbnQpCisgICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgLCBtX2dsb2JhbE9iamVj
dChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCkKKyAgICAsIG1fZGVmZXJyZWQoZ2xv
YmFsT2JqZWN0LT52bSgpLCBkZWZlcnJlZCkKK3sKK30KKworTW9kdWxlRmV0Y2hlcjo6fk1vZHVs
ZUZldGNoZXIoKQoreworICAgIGlmIChtX2NhY2hlZFNjcmlwdCkgeworICAgICAgICBtX2NhY2hl
ZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG51
bGxwdHI7CisgICAgfQorfQorCitSZWY8TW9kdWxlRmV0Y2hlcj4gTW9kdWxlRmV0Y2hlcjo6Y3Jl
YXRlKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJM
LCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9j
dW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9kdWxlRmV0Y2hlcihnbG9iYWxP
YmplY3QsIHNvdXJjZVVSTCwgZGVmZXJyZWQsIGRvY3VtZW50KSk7Cit9CisKK2Jvb2wgTW9kdWxl
RmV0Y2hlcjo6cnVuKCkKK3sKKyAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CisgICAg
b3B0aW9ucy5zZXRDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uKENvbnRlbnRTZWN1cml0
eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOworCisgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fc291cmNlVVJMKSwgb3B0aW9ucyk7Cisg
ICAgLy8gRklYTUU6IFNob3VsZCBoYW5kbGUgImNoYXJzZXQiIG9wdGlvbnMuCisgICAgLy8gT25j
ZSB0aGUgc3BlYyBkZXNjcmliZXMgdGhlIGRldGFpbHMsIHdlIHdpbGwgZm9sbG93IGl0LgorICAg
IHJlcXVlc3Quc2V0Q2hhcnNldChtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisKKyAgICAvLyBGSVhN
RTogU2hvdWxkIGhhbmRsZSAiY3Jvc3NvcmlnaW4iIG9wdGlvbnMuCisgICAgLy8gT25jZSB0aGUg
c3BlYyBkZXNjcmliZXMgdGhlIGRldGFpbHMsIHdlIHdpbGwgZm9sbG93IGl0LgorICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9yKEF0b21pY1N0cmluZyhtX3NvdXJjZVVSTC5zdHJpbmcoKSkpOworCisg
ICAgbV9jYWNoZWRTY3JpcHQgPSBtX2RvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVx
dWVzdFNjcmlwdChyZXF1ZXN0KTsKKyAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAvLyBOb3RlOiBJZiB0aGUgY29udGVudCBpcyBhbHJlYWR5IGNh
Y2hlZCwgdGhpcyBpbW1laWRhdGVseSBjYWxscyBub3RpZnlGaW5pc2hlZC4KKyAgICBtX2NhY2hl
ZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIE1v
ZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKK3sK
KyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJjZSA9PSBtX2NhY2hlZFNjcmlwdCk7
CisgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJU
KG1fY2FjaGVkU2NyaXB0KTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+
IGNhY2hlZFNjcmlwdCA9IG1fY2FjaGVkU2NyaXB0OworICAgIG1fY2FjaGVkU2NyaXB0ID0gbnVs
bHB0cjsKKworI2lmIEVOQUJMRShOT1NOSUZGKQorICAgIGlmIChjYWNoZWRTY3JpcHQgJiYgIWNh
Y2hlZFNjcmlwdC0+bWltZVR5cGVBbGxvd2VkQnlOb3NuaWZmKCkpIHsKKyAgICAgICAgbV9kb2N1
bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxl
dmVsOjpFcnJvciwgIlJlZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQgZnJvbSAnIiArIGNhY2hlZFNj
cmlwdC0+dXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkgKyAiJyBiZWNhdXNl
IGl0cyBNSU1FIHR5cGUgKCciICsgY2FjaGVkU2NyaXB0LT5taW1lVHlwZSgpICsgIicpIGlzIG5v
dCBleGVjdXRhYmxlLCBhbmQgc3RyaWN0IE1JTUUgdHlwZSBjaGVja2luZyBpcyBlbmFibGVkLiIp
OworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gbV9kb2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2so
bV9nbG9iYWxPYmplY3QtPnZtKCkpOworICAgICAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IG1f
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQtPmVy
cm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgLy8gVGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxp
bmUgaXMgY29uc3RydWN0ZWQgYXMgYSBjaGFpbiBvZiBwcm9taXNlcy4KKyAgICAgICAgICAgIC8v
IFJlamVjdGluZyBhIHByb21pc2UgaWYgc29tZSBlcnJvciBvY2N1cnMgaXMgaW1wb3J0YW50IGJl
Y2F1c2UgdGhlIGV4ZWN1dGlvbiBmbG93IG9mCisgICAgICAgICAgICAvLyB0aGUgcHJvbWlzZSBj
aGFpbiBpcyBkcml2ZW4gYnkgInJlamVjdGVkIiBvciAiZnVsZmlsbGVkIiBldmVudHMuCisgICAg
ICAgICAgICAvLyBJZiB0aGUgcHJvbWlzZSBpcyBub3QgcmVqZWN0ZWQgd2hpbGUgZXJyb3Igb2Nj
dXJzLCByZWplY3QgaGFuZGxlciB3b24ndCBiZSBleGVjdXRlZAorICAgICAgICAgICAgLy8gYW5k
IGFsbCB0aGUgc3Vic2VxdWVudCBwcm9taXNlIGNoYWluIHdpbGwgd2FpdCB0aGUgcmVzdWx0IGZv
cmV2ZXIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQXMgYSByZXN1bHQsIGV2ZW4g
aWYgdGhlIGVycm9yIGlzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBlbHNld2hl
cmUsCisgICAgICAgICAgICAvLyBpdCBzaG91bGQgYmUgcHJvcGFnYXRlZCBpbiB0aGUgcGlwZWxp
bmUuIEZvciBleGFtcGxlLCB0aGUgZXJyb3Igb2YgbG9hZGluZworICAgICAgICAgICAgLy8gQ2Fj
aGVkUmVzb3VyY2UgaXMgYWxyZWFkeSByZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGJ5IHRoZSBs
b2FkZXIuIEJ1dCB3ZSBzdGlsbCBuZWVkCisgICAgICAgICAgICAvLyB0byByZWplY3QgdGhlIHBy
b21pc2UgYnkgc29tZSBlcnJvci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBOb3Qg
dG8gcmVwb3J0IHRoZSBlcnJvciB0d2ljZSwgd2hlbiB3ZSBwcm9wYWdhdGUgdGhlIGVycm9yIHRo
YXQgaXMgYWxyZWFkeSByZXBvcnRlZAorICAgICAgICAgICAgLy8gdG8gdGhlIGluc3BlY3Rvciwg
d2UgdGhyb3cgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgc3ltYm9sIGlu
c3RlYWQuCisgICAgICAgICAgICAvLyBCeSBjb21wYXJpbmcgdGhlIHRocm93biBlcnJvciB3aXRo
IHRoaXMgc3ltYm9sLCB3ZSBjYW4gZGlzdGluZ3Vpc2ggZXJyb3JzIHJhaXNlZAorICAgICAgICAg
ICAgLy8gd2hlbiBsaW5raW5nIG9yIGV4ZWN1dGluZyBhIG1vZHVsZSBncmFwaCBmcm9tIGVycm9y
cyByZXBvcnRlZCBhbHJlYWR5LgorICAgICAgICAgICAgLy8gSW4gdGhlIHJlamVjdCBoYW5kbGVy
IG9mIHRoZSBwcm9taXNlLCB3ZSBvbmx5IHJlcG9ydCBhIGVycm9yIHRoYXQgaXMgbm90IHRoaXMg
c3ltYm9sLgorICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9s
OjpjcmVhdGUoZXhlYy0+dm0oKSwgKihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2woKS51aWQoKSkpKTsKKyAgICAgICAgfSBlbHNlIGlmICghY2Fj
aGVkU2NyaXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICBTY3JpcHRTb3VyY2VDb2Rl
IHNvdXJjZUNvZGUoY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIG1fZGVmZXJyZWQt
PnJlc29sdmUoZXhlYywgSlNDOjpqc1N0cmluZyhleGVjLCBzb3VyY2VDb2RlLnNvdXJjZSgpKSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBBIENhY2hlZFJlc291cmNlSGFuZGxlIGFsb25l
IGRvZXMgbm90IHByZXZlbnQgdGhlIHVuZGVybHlpbmcgQ2FjaGVkUmVzb3VyY2UKKyAgICAvLyBm
cm9tIHB1cmdpbmcgaXRzIGRhdGEgYnVmZmVyLiBVbnRpbCB3ZSBmaW5pc2ggdXNpbmcgdGhlIGJh
Y2tpbmcgYnVmZmVyIG9mIHRoZQorICAgIC8vIGNhY2hlZCBzY3JpcHQsIHdlIGRvbid0IHJlbW92
ZSB0aGUgY2xpZW50LgorICAgIGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworCisg
ICAgbV9kb2N1bWVudC5tb2R1bGVMb2FkZXIoKS0+bm90aWZ5RmluaXNoZWQodGhpcyk7CisgICAg
Ly8gQWZ0ZXIgTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCBjYWxsLCB8dGhpc3wgbWF5IGJl
IGRlc3Ryb3llZC4KK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvTW9kdWxlRmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0
Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI5M2QzNmFlMzYwZjJmNzJiMGU5OWVmYmE0MzdmNzM1NDZiNDYy
MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVG
ZXRjaGVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9kdWxlRmV0
Y2hlcl9oCisjZGVmaW5lIE1vZHVsZUZldGNoZXJfaAorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUg
IlVSTC5oIgorI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBDYWNoZWRTY3JpcHQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0
OworCitjbGFzcyBNb2R1bGVGZXRjaGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlRmV0Y2hl
cj4sIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1vZHVsZUZldGNoZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPE1vZHVsZUZldGNoZXI+IGNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCosIGNv
bnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqLCBEb2N1
bWVudCYpOworCisgICAgfk1vZHVsZUZldGNoZXIoKTsKKworICAgIGJvb2wgcnVuKCk7CisKKyAg
ICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0Lmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgTW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCos
IGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqLCBE
b2N1bWVudCYpOworCisgICAgLy8gRm9yIENhY2hlZFJlc291cmNlQ2xpZW50LgorICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOworCisgICAg
RG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgVVJMIG1fc291cmNlVVJMOworICAgIEpTQzo6U3Ry
b25nPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKKyAgICBKU0M6OlN0cm9uZzxK
U0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ+IG1fZGVmZXJyZWQ7CisgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdCB7IH07Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1bGVGZXRjaGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMDJiMTYy
ZDAxMjNmNWEwODhhZWY3YmYwYjQzYzUzMjk1MjdlYzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwCkBAIC0wLDAgKzEsMTM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRl
ci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRl
ICJNaWNyb1Rhc2suaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaD4KKyNp
bmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CisjaW5jbHVkZSA8cnVudGltZS9TeW1ib2wuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVMb2FkZXI6Ok1vZHVsZUxvYWRlcihEb2N1
bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQoreworfQorCitKU0M6
OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1v
ZHVsZU5hbWVWYWx1ZSwgSlNDOjpKU1ZhbHVlIHJlZmVycmVyVmFsdWUpCit7CisgICAgSlNDOjpK
U0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgaWYgKG1vZHVsZU5h
bWVWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhl
YywgbW9kdWxlTmFtZVZhbHVlKTsKKworICAgIC8vIEZJWE1FOiBXZSBub3cgYXNzdW1lIHRoYXQg
bW9kdWxlIG5hbWUgaXMgZWl0aGVyIHN5bWJvbCBvciBzdHJpbmcuCisgICAgLy8gV2hlbiBleHBv
c2luZyB0aGUgcmVmbGVjdGlvbiB0byB0aGUgbW9kdWxlIGxvYWRlciBhbmQgbW9kdWxlcywgd2Ug
bmVlZCB0byByZWNhc3QgdGhpcyBwYXJ0LgorICAgIEFTU0VSVChtb2R1bGVOYW1lVmFsdWUuaXNT
dHJpbmcoKSk7CisgICAgU3RyaW5nIG1vZHVsZU5hbWUgPSBKU0M6OmpzQ2FzdDxKU0M6OkpTU3Ry
aW5nKj4obW9kdWxlTmFtZVZhbHVlKS0+dmFsdWUoZXhlYyk7CisKKyAgICAvLyBOb3csIHdlIGNv
bnNpZGVyIHRoZSBnaXZlbiBtb2R1bGVOYW1lIGFzIHRoZSBzYW1lIHRvIHRoZSBzcmM9Ii4uLiIg
aW4gdGhlIHNjcmlwdCB0YWcuCisgICAgLy8gV2UgdXNlIHRoZSBjb21wbGV0ZWQgVVJMIGFzIHRo
ZSBtb2R1bGUga2V5LgorICAgIC8vCisgICAgLy8gRklYTUU6IFdlIG5lZWQgc2l0ZSBwYWNrYWdp
bmcgc3lzdGVtLiBCdXQgaXQncyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYyB5ZXQuCisgICAgLy8g
aHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jYnJvd3Nlci1sb2FkZXItcHJvdG90eXBl
LSU0MCU0MHJlc29sdmUKKyAgICBVUkwgY29tcGxldGVkVVJMOworCisgICAgLy8gRklYTUU6IENo
ZWNrIG1fZG9jdW1lbnQgbGlmZXRpbWUuCisgICAgaWYgKHJlZmVycmVyVmFsdWUuaXNTeW1ib2wo
KSkKKyAgICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVO
YW1lKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHJlZmVycmVyVmFsdWUuaXNVbmRlZmluZWQo
KSkKKyAgICAgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwobW9k
dWxlTmFtZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKHJlZmVycmVyVmFs
dWUuaXNTdHJpbmcoKSk7CisgICAgICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBKU0M6OmpzQ2Fz
dDxKU0M6OkpTU3RyaW5nKj4ocmVmZXJyZXJWYWx1ZSktPnZhbHVlKGV4ZWMpOworICAgICAgICAg
ICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVOYW1lLCBVUkwo
UGFyc2VkVVJMU3RyaW5nLCByZWZlcnJlcikpOworICAgICAgICB9CisgICAgfQorICAgIGlmICgh
Y29tcGxldGVkVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3Qo
ZXhlYywgY3JlYXRlRE9NRXhjZXB0aW9uKGV4ZWMsIFNZTlRBWF9FUlIpKTsKKworICAgIHJldHVy
biBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBqc1N0cmluZyhleGVjLCBjb21wbGV0ZWRVUkwuc3Ry
aW5nKCkpKTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogTW9kdWxlTG9hZGVyOjpmZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUpCit7CisgICAgLy8gRklYTUU6IFdoZW4gaW1w
bGVtZW50aW5nIHJlZmxlY3RpdmUgbW9kdWxlIGxvYWRlciBhbmQgbW9kdWxlcywgd2Ugc2hvdWxk
IHJlY2FzdCB0aGlzIGltcGxlbWVudGF0aW9uLgorICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0
ZShleGVjLCBnbG9iYWxPYmplY3QpOworCisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbW9kdWxl
S2V5VmFsdWUuaXNTeW1ib2woKSwgIlN5bWJvbGljIG1vZHVsZSBrZXkgc2hvdWxkIGJlIGFscmVh
ZHkgZnVsZmlsbGVkIHdpdGggdGhlIGlubGluZWQgcmVzb3VyY2UuIik7CisgICAgQVNTRVJUKG1v
ZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOworCisgICAgSlNDOjpJZGVudGlmaWVyIG1vZHVsZUtl
eSA9IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBhc1N0cmluZyhtb2R1bGVLZXlW
YWx1ZSktPnZhbHVlKGV4ZWMpKTsKKworICAgIFVSTCBjb21wbGV0ZWRVUkwoUGFyc2VkVVJMU3Ry
aW5nLCBtb2R1bGVLZXkuaW1wbCgpKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGNvbXBsZXRl
ZFVSTC5pc1ZhbGlkKCksICJUaGUgcmVzb2x2ZSBob29rIHNob3VsZCBwcm9kdWNlIHRoZSB2YWxp
ZCBVUkwgYXMgYSBzdHJpbmcuIik7CisKKyAgICBSZWY8TW9kdWxlRmV0Y2hlcj4gZmV0Y2hlciA9
IE1vZHVsZUZldGNoZXI6OmNyZWF0ZShKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGds
b2JhbE9iamVjdCksIGNvbXBsZXRlZFVSTCwgZGVmZXJyZWQsIG1fZG9jdW1lbnQpOworICAgIG1f
ZmV0Y2hpbmdTZXQuYWRkKCZmZXRjaGVyLmdldCgpKTsKKyAgICBpZiAoIWZldGNoZXItPnJ1bigp
KSB7CisgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCisgICAg
ICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OlN5bWJvbDo6Y3JlYXRl
KGV4ZWMtPnZtKCksICooZnJhbWUtPnNjcmlwdCgpLm1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKCkudWlkKCkpKSk7CisgICAgfQorCisgICAgcmV0dXJuIGRlZmVycmVkLT5w
cm9taXNlKCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVs
ZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUpCit7CisgICAgLy8gRklY
TUU6IEN1cnJlbnRseSwgd2Ugb25seSBzdXBwb3J0IEpTTW9kdWxlUmVjb3JkLgorICAgIEpTQzo6
SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpT
TW9kdWxlUmVjb3JkKj4obW9kdWxlUmVjb3JkVmFsdWUpOworICAgIGlmICghbW9kdWxlUmVjb3Jk
KQorICAgICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworCisgICAgVVJMIHNvdXJjZVVS
TDsKKyAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgc291cmNlVVJM
ID0gbV9kb2N1bWVudC51cmwoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1vZHVsZUtl
eVZhbHVlLmlzU3RyaW5nKCkpOworICAgICAgICBzb3VyY2VVUkwgPSBVUkwoUGFyc2VkVVJMU3Ry
aW5nLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKGV4ZWMpKTsKKyAgICB9CisKKyAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKQorICAgICAgICByZXR1cm4g
ZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgbW9kdWxlUmVjb3JkKTsK
KyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworfQorCit2b2lkIE1vZHVsZUxvYWRlcjo6
bm90aWZ5RmluaXNoZWQoTW9kdWxlRmV0Y2hlciogZmV0Y2hlcikKK3sKKyAgICBtX2ZldGNoaW5n
U2V0LnJlbW92ZShmZXRjaGVyKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9N
b2R1bGVMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDkzNjk2ODE2NWVlZDg1ODEwMTc4MWNkMTg1NDcw
YzhlYjVlMGQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
TW9kdWxlTG9hZGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9k
dWxlTG9hZGVyX2gKKyNkZWZpbmUgTW9kdWxlTG9hZGVyX2gKKworI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIK
KyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2Uu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBEb2N1bWVudDsKKworY2xhc3MgTW9kdWxlTG9hZGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShNb2R1bGVMb2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBNb2R1bGVMb2FkZXIoRG9jdW1lbnQmKTsKKworICAgIERvY3VtZW50JiBkb2N1
bWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9kb2N1bWVudDsKKyAgICB9CisKKyAgICBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcmVmZXJy
ZXIpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXkpOworICAgIEpTQzo6
SlNWYWx1ZSBldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkKTsKKworICAg
IHZvaWQgbm90aWZ5RmluaXNoZWQoTW9kdWxlRmV0Y2hlciopOworcHJpdmF0ZToKKyAgICBEb2N1
bWVudCYgbV9kb2N1bWVudDsKKyAgICBIYXNoU2V0PFJlZlB0cjxNb2R1bGVGZXRjaGVyPj4gbV9m
ZXRjaGluZ1NldDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1v
ZHVsZUxvYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IDRiM2IwOTcyYmU3N2YzYzc2NTk1ZjE0MGUyNmE3NDhmZjhlYTQ1MGMu
Ljk5YjdmOGI2MmE0YjdmZWFlZjNmYzViNGE3Y2VkNzE4YTUzZWQzY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNiwxMSArMzYs
MTMgQEAKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJNYWlu
RnJhbWUuaCIKICNpbmNsdWRlICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJN
b2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgi
CiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1
bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01NCw3ICs1NiwxMSBAQAog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxwcm9maWxl
ci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+Cisj
aW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVy
bmFsUHJvbWlzZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNOYXRpdmVTdGRGdW5j
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9U
ZXh0UG9zaXRpb24uaD4KIApAQCAtODYsNiArOTIsNyBAQCBTY3JpcHRDb250cm9sbGVyOjpTY3Jp
cHRDb250cm9sbGVyKEZyYW1lJiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBt
X3NvdXJjZVVSTCgwKQogICAgICwgbV9wYXVzZWQoZmFsc2UpCisgICAgLCBtX21vZHVsZUxvYWRl
ckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKICAgICAsIG1fd2luZG93U2NyaXB0TlBPYmplY3QoMCkKICNlbmRpZgpAQCAtMTc1LDEx
ICsxODIsMTI4IEBAIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2
YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlCiAgICAgcmV0dXJuIERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJldHVyblZhbHVlKTsKIH0KIAotRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291
cmNlQ29kZSYgc291cmNlQ29kZSkgCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogewog
ICAgIHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFpblRocmVhZE5vcm1hbFdv
cmxkKCkpOwogfQogCitzdGF0aWMgdm9pZCBoYW5kbGVNb2R1bGVMb2FkZXJFcnJvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgZXJyb3IsIGNvbnN0IFByaXZhdGVOYW1lJiBtb2R1bGVMb2FkZXJB
bHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCkKK3sKKyAgICAvLyBPbmNlIHJlcG9ydGVkIGVycm9y
IGlzIG1hcmtlZCBhcyBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbC4KKyAg
ICAvLyBEb24ndCByZXBvcnQgaXQgaGVyZSBhZ2Fpbi4KKyAgICBpZiAoU3ltYm9sKiBzeW1ib2wg
PSBqc0R5bmFtaWNDYXN0PFN5bWJvbCo+KGVycm9yKSkgeworICAgICAgICBpZiAoc3ltYm9sLT5w
cml2YXRlTmFtZSgpID09IG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJWE1FOiBCZWNhdXNlIHdlIGhh
dmUgbm90IHN1cHBvcnRlZCB0aGUgImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUgaW4gdGhlIG1vZHVs
ZSB0YWcsCisgICAgLy8gd2UgcGFzcyB0aGUgbnVsbHB0ciB0byByZXBvcnRFeGNlcHRpb24ncyBD
YWNoZWRTY3JpcHQqIHBhcmFtZXRlci4gV2hlbiBwYXNzaW5nIG51bGxwdHIKKyAgICAvLyB0byBy
ZXBvcnRFeGNlcHRpb24sIFdlYkNvcmUgZG9lcyBub3Qgc2hvdyB0aGUgZGV0YWlsIG9mIHRoZSBl
cnJvciBpZiB0aGUgVVJMIG9mIHRoZQorICAgIC8vIHNvdXJjZSBkb2VzIG5vdCBwYXNzIHRoZSBz
YW1lIG9yaWdpbiBwb2xpY3kuIFNvIHRoZSBjdXJyZW50IGJlaGF2aW9yIGlzIGNvbnNlcnZhdGl2
ZTsKKyAgICAvLyBvbmx5IHRoZSBtb2R1bGUgY29kZSB0aGF0IFVSTCBpcyB3aXRoaW4gdGhlIHNh
bWUgb3JpZ2luIGNhbiByZXBvcnQgdGhlIGRldGFpbHMgb2YgdGhlCisgICAgLy8gZXJyb3IuIE9u
Y2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBiZWhhdmlvciwgd2Ugd2lsbCBmb2xsb3cgaXQuCisg
ICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGVycm9yLCBudWxscHRyKTsKK30KKwordm9pZCBTY3Jp
cHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgs
IGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAg
ICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwq
IHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxs
LT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgaW5pdE1vZHVsZUdyYXBoKG1vZHVsZUdy
YXBoLCBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSks
IHdvcmxkKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlKE1vZHVsZUdy
YXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQoreworICAgIGxvYWRN
b2R1bGVJbldvcmxkKG1vZHVsZUdyYXBoLCBtb2R1bGVOYW1lLCBtYWluVGhyZWFkTm9ybWFsV29y
bGQoKSk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQoTW9k
dWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2Rl
LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxk
LnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3Js
ZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7
CisKKyAgICBpbml0TW9kdWxlR3JhcGgobW9kdWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0
ZTo6bG9hZE1vZHVsZShleGVjLCBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpKSwgd29ybGQpOwor
fQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmIG1vZHVs
ZUdyYXBoLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIGxvYWRN
b2R1bGVJbldvcmxkKG1vZHVsZUdyYXBoLCBzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29y
bGQoKSk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxl
SW5Xb3JsZChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQp
Cit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIEpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUo
ZXhlYywgSWRlbnRpZmllcjo6ZnJvbVVpZCgmZXhlYy0+dm0oKSwgbW9kdWxlR3JhcGgubW9kdWxl
S2V5KCkpKTsKKworICAgIFdlYWtQdHI8RWxlbWVudD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFr
RWxlbWVudFB0cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZl
U3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmlu
ZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRlKikgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQgPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXZhbHVhdGVkKCk7
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7
CisKKyAgICBQcml2YXRlTmFtZSBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJv
bCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7CisgICAgSlNGdW5j
dGlvbiogcmVqZWN0SGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52
bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJl
cG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICBp
ZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAg
dG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+
bm90aWZ5RXZhbHVhdGVkKCk7CisgICAgICAgIGhhbmRsZU1vZHVsZUxvYWRlckVycm9yKGV4ZWMs
IGV4ZWMtPmFyZ3VtZW50KDApLCBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJv
bCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAg
fSk7CisKKyAgICBwcm9taXNlLT50aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCByZWplY3RIYW5k
bGVyKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUo
TW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoKQoreworICAgIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZUlu
V29ybGQobW9kdWxlR3JhcGgsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKworRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUoY29uc3Qg
VVJMJiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIERPTVdyYXBwZXJX
b3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAg
ICBjb25zdCBTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUgPSBtb2R1bGVSZWNvcmQtPnNvdXJjZUNv
ZGUoKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQp
OworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOwor
ICAgIGNvbnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsKKyAgICBtX3Nv
dXJjZVVSTCA9ICZzb3VyY2VVUkwuc3RyaW5nKCk7CisKKyAgICBSZWY8RnJhbWU+IHByb3RlY3Qo
bV9mcmFtZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0g
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9mcmFtZSwgc291
cmNlVVJMLCBqc1NvdXJjZUNvZGUuZmlyc3RMaW5lKCkpOworCisgICAgSlNWYWx1ZSByZXR1cm5W
YWx1ZSA9IG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUoZXhlYyk7CisgICAgTmFrZWRQdHI8RXhjZXB0
aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
KyAgICAgICAgZXZhbHVhdGlvbkV4Y2VwdGlvbiA9IGV4ZWMtPnZtKCkuZXhjZXB0aW9uKCk7CisK
KyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSwg
bV9mcmFtZSk7CisKKyAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikgeworICAgICAgICByZXBv
cnRFeGNlcHRpb24oZXhlYywgZXZhbHVhdGlvbkV4Y2VwdGlvbiwgbnVsbHB0cik7CisgICAgICAg
IG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAgICAgIHJldHVybiBEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSgpOworICAgIH0KKworICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VV
Ukw7CisgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKGV4ZWMtPnZtKCksIHJldHVy
blZhbHVlKTsKK30KKworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6
ZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1
bGVSZWNvcmQpCit7CisgICAgcmV0dXJuIGV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgbW9kdWxl
UmVjb3JkLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKIFJlZjxET01XcmFwcGVyV29y
bGQ+IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdvcmxkKCkKIHsKICAgICByZXR1cm4gRE9NV3Jh
cHBlcldvcmxkOjpjcmVhdGUoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwpAQCAtMjcyLDYgKzM5
Niw0MSBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KERP
TVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgcmV0dXJuIHdpbmRvd1NoZWxsOwogfQogCitzdGF0
aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gSWRl
bnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3ltYm9sKj4odmFsdWUpLT5wcml2YXRlTmFtZSgpKTsK
KyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmcoKSk7CisgICAgcmV0dXJuIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoZXhlYywganNDYXN0PEpTU3RyaW5nKj4odmFsdWUpLT52YWx1ZShleGVjKSk7Cit9
CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6aW5pdE1vZHVsZUdyYXBoKE1vZHVsZUdyYXBoJiBt
b2R1bGVHcmFwaCwgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UsIERPTVdyYXBwZXJXb3JsZCYg
d29ybGQpCit7CisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3Js
ZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7
CisKKyAgICBXZWFrUHRyPEVsZW1lbnQ+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha0VsZW1lbnRQ
dHIoKSk7CisgICAgSlNGdW5jdGlvbiogZnVsZmlsbEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0
aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dl
YWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICAvLyBNb2R1bGVHcmFwaCwgc2NyaXB0
IGVsZW1lbnQgYW5kIGRvY3VtZW50IG1heSBiZSBkZXN0cm95ZWQgZHVyaW5nIGxvYWRpbmcgdGhl
IG1vZHVsZS4KKyAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91bGQgbm90IGV4ZWN1dGUg
bW9kdWxlIGJvZHkuCisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQ
dHIuZ2V0KCkpIHsKKyAgICAgICAgICAgIElkZW50aWZpZXIgbW9kdWxlS2V5ID0ganNWYWx1ZVRv
TW9kdWxlS2V5KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIHRvU2NyaXB0
RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUxv
YWRlZChtb2R1bGVLZXkuaW1wbCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgUHJpdmF0ZU5hbWUgbW9k
dWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgPSBtX21vZHVsZUxvYWRlckFscmVh
ZHlSZXBvcnRlZEVycm9yU3ltYm9sOworICAgIEpTRnVuY3Rpb24qIHJlamVjdEhhbmRsZXIgPSBK
U05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAx
LCBTdHJpbmcoKSwgW21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLCB3ZWFr
UHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVt
ZW50ID0gd2Vha1B0ci5nZXQoKSkKKyAgICAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2li
bGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUVycm9yZWQoKTsKKyAgICAg
ICAgaGFuZGxlTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIG1vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKTsKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIHByb21pc2UtPnRoZW4o
ZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRsZXIpOworfQorCiBUZXh0UG9zaXRpb24g
U2NyaXB0Q29udHJvbGxlcjo6ZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdAogewogICAgIC8v
IEZJWE1FOiBJZiB3ZSBhcmUgbm90IGN1cnJlbnRseSBwYXJzaW5nLCB3ZSBzaG91bGQgdXNlIG91
ciBjdXJyZW50IGxvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmgKaW5kZXggMDdjNTNiN2M4ZWRmYjRlMjhmNWNhMTNhYTJjNGUwNTU5NGVmNTEy
Mi4uOTAxYjUzZWJhZjU0YzQ3OGY3ZDQxZWYxZGM1MTUwYzFiMDg1YTk2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtNDQsNiArNDQsOSBA
QCBjbGFzcyBTY3JpcHRWYWx1ZTsKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNHbG9i
YWxPYmplY3Q7CisgICAgY2xhc3MgSlNNb2R1bGVSZWNvcmQ7CisgICAgY2xhc3MgSlNJbnRlcm5h
bFByb21pc2U7CisKICAgICBjbGFzcyBFeGVjU3RhdGU7CiAKICAgICBuYW1lc3BhY2UgQmluZGlu
Z3MgewpAQCAtNTcsNiArNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEhUTUxEb2N1bWVudDsKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OworY2xhc3MgTW9k
dWxlR3JhcGg7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47
CiBjbGFzcyBXaWRnZXQ7CkBAIC0xMTUsNiArMTE5LDE3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xs
ZXIgewogICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmKTsKICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZUluV29ybGQo
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYpOwogCisgICAgdm9pZCBs
b2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwg
RE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBsb2FkTW9kdWxlKE1vZHVsZUdyYXBoJiwgY29u
c3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKKyAgICB2b2lkIGxvYWRNb2R1bGVJbldvcmxkKE1vZHVs
ZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYpOworICAg
IHZvaWQgbG9hZE1vZHVsZShNb2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsK
KworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgLCBE
T01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShNb2R1bGVH
cmFwaCYpOworCisgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVNb2R1bGUoY29u
c3QgVVJMJiwgSlNDOjpKU01vZHVsZVJlY29yZCosIERPTVdyYXBwZXJXb3JsZCYpOworICAgIERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6SlNN
b2R1bGVSZWNvcmQqKTsKKwogICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0
aW9uKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuYWJsZUV2YWwoKTsKQEAgLTEzNSw2ICsxNTAsOCBA
QCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKIAogICAgIGNvbnN0IFN0cmluZyogc291cmNlVVJM
KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0gLy8gMCBpZiB3ZSBhcmUgbm90IGV2YWx1
YXRpbmcgYW55IHNjcmlwdAogCisgICAgY29uc3QgSlNDOjpQcml2YXRlTmFtZSYgbW9kdWxlTG9h
ZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUxv
YWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOyB9CisKICAgICB2b2lkIGNsZWFyV2luZG93
U2hlbGwoRE9NV2luZG93KiBuZXdET01XaW5kb3csIGJvb2wgZ29pbmdJbnRvUGFnZUNhY2hlKTsK
ICAgICB2b2lkIHVwZGF0ZURvY3VtZW50KCk7CiAKQEAgLTE3MCw2ICsxODcsNyBAQCBjbGFzcyBT
Y3JpcHRDb250cm9sbGVyIHsKIAogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBKU0RPTVdp
bmRvd1NoZWxsKiBpbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgaW5pdE1v
ZHVsZUdyYXBoKE1vZHVsZUdyYXBoJiwgSlNDOjpKU0ludGVybmFsUHJvbWlzZSosIERPTVdyYXBw
ZXJXb3JsZCYpOwogCiAgICAgdm9pZCBkaXNjb25uZWN0UGxhdGZvcm1TY3JpcHRPYmplY3RzKCk7
CiAKQEAgLTE3OCw2ICsxOTYsNyBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAgICBjb25z
dCBTdHJpbmcqIG1fc291cmNlVVJMOwogCiAgICAgYm9vbCBtX3BhdXNlZDsKKyAgICBKU0M6OlBy
aXZhdGVOYW1lIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7CiAKICAg
ICAvLyBUaGUgcm9vdCBvYmplY3QgdXNlZCBmb3Igb2JqZWN0cyBib3VuZCBvdXRzaWRlIHRoZSBj
b250ZXh0IG9mIGEgcGx1Z2luLCBzdWNoCiAgICAgLy8gYXMgTlBBUEkgcGx1Z2lucy4gVGhlIHBs
dWdpbnMgdXNpbmcgdGhlc2Ugb2JqZWN0cyBwcmV2ZW50IGEgcGFnZSBmcm9tIGJlaW5nIGNhY2hl
ZCBzbyB0aGV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCBkOTFiNjNhNjI0YjRl
MDI2YmIyOGU2ZTRlMzU2NjcxMTE3ZDNjNThlLi43Njk4MmUwYTZmYjUzMTE3MjhlZTZkY2NjYjE0
MTRjY2IzNDZhOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTk4LDYgKzk4
LDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5jcHAiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnRD
aGFubmVsLmNwcCIKICNpbmNsdWRlICJNaWNyb1Rhc2suY3BwIgorI2luY2x1ZGUgIk1vZHVsZUdy
YXBoLmNwcCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmNwcCIKICNpbmNsdWRlICJNb3VzZVJlbGF0
ZWRFdmVudC5jcHAiCiAjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCA3YjExZTM5YTFhM2QwYjRhMDM3ZGU4MzVmYjkyMWY4MWNjMDIyN2QxLi5h
YjY1NWI3OWRiNGQ3ZWEzNzgwNzA1Mzg4OWIyN2ZmZjY2MjkwNjdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTEwNCw2ICsxMDQsNyBAQAogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
ICNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVy
LmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cy5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5l
c3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCkBAIC00NjQsNiArNDY1LDcgQEAgRG9jdW1lbnQ6OkRv
Y3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIHVuc2lnbmVkIGRvY3VtZW50Q2xh
c3NlcywgdW5zaWcKICAgICAsIG1fc3RhcnRUaW1lKHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6
Om5vdygpKQogICAgICwgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZChmYWxzZSkKICAgICAs
IG1fc2NyaXB0UnVubmVyKHN0ZDo6bWFrZV91bmlxdWU8U2NyaXB0UnVubmVyPigqdGhpcykpCisg
ICAgLCBtX21vZHVsZUxvYWRlcihzdGQ6Om1ha2VfdW5pcXVlPE1vZHVsZUxvYWRlcj4oKnRoaXMp
KQogICAgICwgbV94bWxWZXJzaW9uKEFTQ0lJTGl0ZXJhbCgiMS4wIikpCiAgICAgLCBtX3htbFN0
YW5kYWxvbmUoU3RhbmRhbG9uZVVuc3BlY2lmaWVkKQogICAgICwgbV9oYXNYTUxEZWNsYXJhdGlv
bihmYWxzZSkKQEAgLTYwNSw2ICs2MDcsNyBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICAg
ICAgbV9kb21XaW5kb3ctPnJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yUGFnZUNhY2hlKCk7CiAKICAg
ICBtX3NjcmlwdFJ1bm5lciA9IG51bGxwdHI7CisgICAgbV9tb2R1bGVMb2FkZXIgPSBudWxscHRy
OwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCBmOTE4MDg5ZjIzYjJmYjNhMThkZmJkMjFmNWY3MDM5ODA1MDc1YmE3Li45YTc4YjIzNWE2
NThiNjFjODhjMWM2N2Y2N2NiZWRlNDQxYjlhNTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
MTMwLDYgKzEzMCw3IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBs
YXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1
ZXJ5TWF0Y2hlcjsKK2NsYXNzIE1vZHVsZUxvYWRlcjsKIGNsYXNzIE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9uOwogY2xhc3MgTm9kZUZpbHRl
cjsKQEAgLTkzNCw2ICs5MzUsNyBAQCBjbGFzcyBEb2N1bWVudCA6IHB1YmxpYyBDb250YWluZXJO
b2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQwogICAgIERvY3Vt
ZW50JiB0b3BEb2N1bWVudCgpIGNvbnN0OwogICAgIAogICAgIFNjcmlwdFJ1bm5lciogc2NyaXB0
UnVubmVyKCkgeyByZXR1cm4gbV9zY3JpcHRSdW5uZXIuZ2V0KCk7IH0KKyAgICBNb2R1bGVMb2Fk
ZXIqIG1vZHVsZUxvYWRlcigpIHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyLmdldCgpOyB9CiAKICAg
ICBIVE1MU2NyaXB0RWxlbWVudCogY3VycmVudFNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuICFtX2N1
cnJlbnRTY3JpcHRTdGFjay5pc0VtcHR5KCkgPyBtX2N1cnJlbnRTY3JpcHRTdGFjay5sYXN0KCku
Z2V0KCkgOiAwOyB9CiAgICAgdm9pZCBwdXNoQ3VycmVudFNjcmlwdChQYXNzUmVmUHRyPEhUTUxT
Y3JpcHRFbGVtZW50Pik7CkBAIC0xNTE4LDYgKzE1MjAsNyBAQCBjbGFzcyBEb2N1bWVudCA6IHB1
YmxpYyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhlY3V0
aW9uQwogICAgIGJvb2wgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZDsKICAgICAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8U2NyaXB0UnVubmVyPiBtX3NjcmlwdFJ1bm5lcjsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKIAogICAgIFZlY3RvcjxSZWZQ
dHI8SFRNTFNjcmlwdEVsZW1lbnQ+PiBtX2N1cnJlbnRTY3JpcHRTdGFjazsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb2R1bGVHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQxN2EyY2Q0ZThiMWU0NmIwNTAyMTNiMzA1
OTYxM2M3NzI2YWU4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1
bGVHcmFwaC5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorCisjaW5jbHVkZSAiRE9NV3JhcHBlcldv
cmxkLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTW9k
dWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNj
cmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKKyNpbmNsdWRlICJTY3Jp
cHRTb3VyY2VDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9kdWxlR3JhcGg6Ok1v
ZHVsZUdyYXBoKEVsZW1lbnQmIGVsZW1lbnQpCisgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKKyAg
ICAsIG1fd2Vha1B0ckZhY3RvcnkoJmVsZW1lbnQpCit7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6
Om5vdGlmeUxvYWRlZChVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KQoreworICAgIG1fbW9k
dWxlS2V5ID0gbW9kdWxlS2V5OworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5l
cigpLT5ub3RpZnlNb2R1bGVHcmFwaFJlYWR5KHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1f
ZWxlbWVudCkpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpub3RpZnlFcnJvcmVkKCkKK3sKKyAg
ICBtX2Vycm9yZWQgPSB0cnVlOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5l
cigpLT5ub3RpZnlNb2R1bGVHcmFwaFJlYWR5KHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1f
ZWxlbWVudCkpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpldmFsdWF0ZSgpCit7CisgICAgaWYg
KG1fZXJyb3JlZCkKKyAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50
KS0+ZGlzcGF0Y2hFcnJvckV2ZW50KCk7CisgICAgZWxzZSBpZiAoRnJhbWUqIGZyYW1lID0gbV9l
bGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxpbmtB
bmRFdmFsdWF0ZU1vZHVsZSgqdGhpcyk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6Om5vdGlmeUV2
YWx1YXRlZCgpCit7CisgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KS0+
ZGlzcGF0Y2hMb2FkRXZlbnQoKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bG9hZChjb25zdCBT
dHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1bWVudCgpLmZy
YW1lKCkpOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgpLmxvYWRN
b2R1bGUoKnRoaXMsIG1vZHVsZU5hbWUpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpsb2FkKGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgQVNTRVJUKG1fZWxlbWVu
dC5kb2N1bWVudCgpLmZyYW1lKCkpOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkt
PnNjcmlwdCgpLmxvYWRNb2R1bGUoKnRoaXMsIHNvdXJjZUNvZGUpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlR3JhcGguaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb2R1bGVHcmFwaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxNmU4OTdjYmMwMjgxZTVlZjE1ODE4MGRjYWU5
YmY2MmI2NmEwZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxl
R3JhcGguaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVHcmFw
aF9oCisjZGVmaW5lIE1vZHVsZUdyYXBoX2gKKworI2luY2x1ZGUgIk1vZHVsZUZldGNoZXIuaCIK
KyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBFbGVtZW50OworY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKKworLy8gS2Vl
cCBsaWZldGltZSBvZiBhIE1vZHVsZUdyYXBoIHRoZSBzYW1lIHRvIGEgU2NyaXB0RWxlbWVudC4K
K2NsYXNzIE1vZHVsZUdyYXBoIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNb2R1bGVHcmFw
aCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1vZHVs
ZUdyYXBoKEVsZW1lbnQmKTsKKworICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2Vs
ZW1lbnQ7IH0KKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgeyByZXR1cm4gbV9t
b2R1bGVLZXkuZ2V0KCk7IH0KKworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIG1vZHVsZU5h
bWUpOworICAgIHZvaWQgbG9hZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisgICAgdm9pZCBl
dmFsdWF0ZSgpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrRWxlbWVudFB0cigpCisgICAg
eworICAgICAgICByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAg
fQorCisgICAgdm9pZCBub3RpZnlMb2FkZWQoVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSk7
CisgICAgdm9pZCBub3RpZnlFcnJvcmVkKCk7CisKKyAgICB2b2lkIG5vdGlmeUV2YWx1YXRlZCgp
OworCisgICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcmVkOyB9
CisgICAgYm9vbCBpc0xvYWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5OyB9CisKK3By
aXZhdGU6CisKKyAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CisgICAgUmVmUHRyPFVuaXF1ZWRTdHJp
bmdJbXBsPiBtX21vZHVsZUtleTsKKyAgICBXZWFrUHRyRmFjdG9yeTxFbGVtZW50PiBtX3dlYWtQ
dHJGYWN0b3J5OworICAgIGJvb2wgbV9lcnJvcmVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUxvYWRlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNjZiYmVjZTFkMzVlMWE0NzYzYmY5ZWJlYmYwZjBjMTJj
ZGJlZjFkNy4uMmVjNmJkZTlkYjJmN2Q3MjY1MDAzNWE5YjEyZGJjNjg1YjY3MzYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291
bnRJbmNyZW1lbnRlci5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRl
ICJNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5o
IgogI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIKQEAgLTE2MSw2ICsxNjIsMTAgQEAgYm9v
bCBTY3JpcHRFbGVtZW50Ojppc1NjcmlwdFR5cGVTdXBwb3J0ZWQoTGVnYWN5VHlwZVN1cHBvcnQg
c3VwcG9ydExlZ2FjeVR5cGVzKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNl
IGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh0eXBl
LnN0cmlwV2hpdGVTcGFjZSgpLmxvd2VyKCkpIHx8IChzdXBwb3J0TGVnYWN5VHlwZXMgPT0gQWxs
b3dMZWdhY3lUeXBlSW5UeXBlQXR0cmlidXRlICYmIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlw
dExhbmd1YWdlKHR5cGUpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CisjaWYgRU5BQkxFKEVTNl9N
T0RVTEVTKQorICAgIGVsc2UgaWYgKHR5cGUgPT0gIm1vZHVsZSIpCisgICAgICAgIHJldHVybiB0
cnVlOworI2VuZGlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0yMTcsNiArMjIyLDkgQEAg
Ym9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2Ny
aXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBlbHNlCiAgICAgICAgIG1fY2hhcmFjdGVyRW5j
b2RpbmcgPSBkb2N1bWVudC5jaGFyc2V0KCk7CiAKKyAgICBpZiAoaXNNb2R1bGVUeXBlKCkpCisg
ICAgICAgIHJldHVybiBsb2FkTW9kdWxlKHNjcmlwdFN0YXJ0UG9zaXRpb24pOworCiAgICAgaWYg
KGhhc1NvdXJjZUF0dHJpYnV0ZSgpKQogICAgICAgICBpZiAoIXJlcXVlc3RTY3JpcHQoc291cmNl
QXR0cmlidXRlVmFsdWUoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMTcsNiAr
MzI1LDkgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpzdG9wTG9hZFJlcXVlc3QoKQogICAgICAgICAg
ICAgbV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKICAgICAgICAgbV9jYWNoZWRT
Y3JpcHQgPSAwOwogICAgIH0KKyAgICAvLyBGSVhNRTogVGhlIG1vZHVsZSBsb2FkZXIgc2hvdWxk
IGhhdmUgdGhlIG1lY2hhbmlzbSB0byBzdG9wIGxvYWRpbmcuCisgICAgLy8gVGhlIGN1cnJlbnQg
bG9hZGVyIHNwZWMgZG9lcyBub3QgaGF2ZSB0aGlzLiBPbmNlIGl0IGlzIHNwZWNpZmllZAorICAg
IC8vIHdlIHdpbGwgaW50cm9kdWNlIHRoaXMgZmVhdHVyZS4KIH0KIAogdm9pZCBTY3JpcHRFbGVt
ZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQpAQCAtMzMyLDYgKzM0Myw1
NyBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3Jp
cHQpCiAgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CiB9CiAKK2Jvb2wgU2Ny
aXB0RWxlbWVudDo6bG9hZE1vZHVsZShjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9z
aXRpb24pCit7CisgICAgLy8gVGhlIGJyb3dzZXIgbW9kdWxlIGxvYWRlciBsb2FkcyB0aGUgbW9k
dWxlIHNvdXJjZXMuCisgICAgLy8gU2luY2UgdGhlIG1vZHVsZSBpbnZvbHZlcyBsb2FkaW5nIG9m
IHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBhbmQgdGhlIGRlcGVuZGVudCBtb2R1bGVzIGRvZXMgbm90
IGhhdmUgY29ycmVzcG9uZGluZyBzY3JpcHQgZWxlbWVudHMsCisgICAgLy8gdGhlIGZ1bmN0aW9u
YWxpdHkgb2YgbG9hZGluZyBtb2R1bGVzIGlzIHNlcGFyYXRlZCBmcm9tIHRoZSBzY3JpcHQgZWxl
bWVudC4KKyAgICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpIHsKKyAgICAgICAgU3RyaW5nIHNv
dXJjZVVybCA9IHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCk7CisgICAgICAgIFJlZjxEb2N1bWVudD4g
b3JpZ2luYWxEb2N1bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7CisgICAgICAgIGlmICghbV9l
bGVtZW50LmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KHNvdXJjZVVybCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gU2NyaXB0IGVsZW1lbnQgbWF5IGJlIGRldGFjaGVk
IGFuZCBhdHRhY2hlZCB0byBhIGRpZmZlcmVudCBkb2N1bWVudCB3aGlsZSBleGVjdXRpbmcgdGhl
IGV2ZW50IGxpc3RlbmVyLgorICAgICAgICBpZiAoIW1fZWxlbWVudC5pbkRvY3VtZW50KCkgfHwg
Jm1fZWxlbWVudC5kb2N1bWVudCgpICE9IG9yaWdpbmFsRG9jdW1lbnQucHRyKCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5n
SFRNTFNwYWNlcyhzb3VyY2VVcmwpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hF
cnJvckV2ZW50KCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAg
ICAgICAvLyBGSVhNRTogU2hvdWxkIHN1cHBvcnQgY3Jvc3Mtb3JpZ2luIG1vZGUgaW4gdGhlIG1v
ZHVsZSB0YWcuCisgICAgICAgIC8vIEhvd2V2ZXIgd2UgZG9uJ3QgaGF2ZSB0aGUgcG9saWN5IHRv
IGFwcGx5IHRoaXMgbW9kZSB0byB0aGUgcmVzb3VyY2VzIG9mIHRoZSBkZXBlbmRlbnQgbW9kdWxl
cy4KKyAgICAgICAgLy8gUHJvdmlkZWQgbXVsdGlwbGUgbW9kdWxlIHRhZ3MsCisgICAgICAgIC8v
CisgICAgICAgIC8vICAgQTogPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi4uIiBjcm9zc29y
aWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KKyAgICAgICAgLy8gICBCOiA8c2NyaXB0IHR5cGU9
Im1vZHVsZSIgc3JjPSIuLi4iPjwvc2NyaXB0PgorICAgICAgICAvLworICAgICAgICAvLyAnQScg
aGFzIHRoZSAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZS4gQnV0ICdCJyBkb2VzIG5vdCBoYXZlIGl0
LgorICAgICAgICAvLyBIb3dldmVyLCBFUzYgbW9kdWxlcyBhbGxvdyAnQScgYW5kICdCJyB0byBs
b2FkIHRoZSBzYW1lIG1vZHVsZSBhbmQgaXQgd2lsbCBiZSBjYWNoZWQgaW4gdGhlCisgICAgICAg
IC8vIG1vZHVsZSBsb2FkZXIuIEluIHRoYXQgY2FzZSwgaXQgaXMgY29udHJvdmVyc2lhbCB0aGF0
IHdoaWNoICJjcm9zc29yaWdpbiIgYXR0cmlidXRlIHdpbGwgYmUKKyAgICAgICAgLy8gYXBwbGll
ZCB0byB0aGUgbW9kdWxlIGxvYWRlZCBieSB0aGUgYm90aC4gT25jZSB0aGUgc3BlYyBvZiB0aGUg
bW9kdWxlIGxvYWRlciBpcyBmaXhlZCwgd2UKKyAgICAgICAgLy8gc2hvdWxkIGZvbGxvdyBpdC4K
KworICAgICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVlOworICAgICAgICBtX21vZHVsZUdy
YXBoID0gc3RkOjptYWtlX3VuaXF1ZTxNb2R1bGVHcmFwaD4obV9lbGVtZW50KTsKKyAgICAgICAg
bV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlTW9kdWxlR3JhcGhGb3JF
eGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgpOworICAgICAgICBtX21vZHVsZUdyYXBoLT5s
b2FkKHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBpZiAoIW1fZWxlbWVudC5kb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5hbGxvd0lubGluZVNjcmlwdChtX2VsZW1lbnQuZG9jdW1lbnQoKS51cmwoKSwgbV9zdGFydExp
bmVOdW1iZXIsIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICAvLyBSZXNldCBsaW5lIG51bWJlcmluZyBmb3IgbmVzdGVkIHdy
aXRlcy4KKyAgICBUZXh0UG9zaXRpb24gcG9zaXRpb24gPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5p
c0luRG9jdW1lbnRXcml0ZSgpID8gVGV4dFBvc2l0aW9uKCkgOiBzY3JpcHRTdGFydFBvc2l0aW9u
OworICAgIG1fbW9kdWxlR3JhcGggPSBzdGQ6Om1ha2VfdW5pcXVlPE1vZHVsZUdyYXBoPihtX2Vs
ZW1lbnQpOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZU1v
ZHVsZUdyYXBoRm9yRXhlY3V0aW9uKHRoaXMsICptX21vZHVsZUdyYXBoKTsKKyAgICBtX21vZHVs
ZUdyYXBoLT5sb2FkKFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0Q29udGVudCgpLCBtX2VsZW1lbnQu
ZG9jdW1lbnQoKS51cmwoKSwgcG9zaXRpb24pKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9p
ZCBTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Up
CiB7CiAgICAgQVNTRVJUKCFtX3dpbGxCZVBhcnNlckV4ZWN1dGVkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5oCmluZGV4IGI3ZTczZDBkZWU4M2QzMjRlODcyZjdiYzRjMWI5MzNkYzk2YzEx
MmEuLjZlNWMyMTQyOTRkODE5NjhjODZlMGQwN2E2OTcwNzQzOTRhMWM5YjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRWxlbWVu
dDsKK2NsYXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlw
dFNvdXJjZUNvZGU7CiAKQEAgLTU5LDYgKzYwLDcgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHBy
aXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgcmVhZHlUb0JlUGFyc2VyRXhl
Y3V0ZWQoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5VG9CZVBhcnNlckV4ZWN1dGVkOyB9CiAgICAg
Ym9vbCB3aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZygpIGNvbnN0IHsgcmV0
dXJuIG1fd2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmc7IH0KICAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCgpIHsgcmV0dXJuIG1f
Y2FjaGVkU2NyaXB0OyB9CisgICAgTW9kdWxlR3JhcGgqIG1vZHVsZUdyYXBoKCkgeyByZXR1cm4g
bV9tb2R1bGVHcmFwaC5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChF
bGVtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQpOwpAQCAtODIs
NiArODQsOCBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CiAgICAgYm9vbCByZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKTsK
ICAgICB2b2lkIHN0b3BMb2FkUmVxdWVzdCgpOwogCisgICAgYm9vbCBsb2FkTW9kdWxlKGNvbnN0
IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwg
U3RyaW5nIHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwpAQCAtOTMsNiArOTcsNyBA
QCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAg
ICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNN
b2R1bGVUeXBlKCkgY29uc3QgPSAwOwogCiAgICAgRWxlbWVudCYgbV9lbGVtZW50OwogICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9jYWNoZWRTY3JpcHQ7CkBAIC0xMDks
NiArMTE0LDcgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VD
bGllbnQgewogICAgIGJvb2wgbV9yZXF1ZXN0VXNlc0FjY2Vzc0NvbnRyb2wgOiAxOwogICAgIFN0
cmluZyBtX2NoYXJhY3RlckVuY29kaW5nOwogICAgIFN0cmluZyBtX2ZhbGxiYWNrQ2hhcmFjdGVy
RW5jb2Rpbmc7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1vZHVsZUdyYXBoPiBtX21vZHVsZUdyYXBo
OwogfTsKIAogU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShFbGVtZW50
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCmluZGV4IDk2MzY5ODA0YWQ4ZjA3NGJk
NzM2YWZiZmI1MDJhNDVmYzkxNTc2MDEuLmFiMWQ4OGVhZjc1NzVkMzQ0NmYzNDBhMzE1ZWZhMDEy
MzRhMmY1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIk1pY3JvVGFzay5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCiAjaW5jbHVkZSAi
UGVuZGluZ1NjcmlwdC5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIApAQCAtNDgsNiAr
NDksMTAgQEAgU2NyaXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKCkKICAgICAgICAgbV9kb2N1bWVu
dC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fcGVuZGluZ0FzeW5jU2NyaXB0cy5zaXplKCk7ICsraSkKICAgICAgICAgbV9kb2N1
bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbi5zaXplKCk7ICsraSkK
KyAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLnNp
emUoKTsgKytpKQorICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291
bnQoKTsKIH0KIAogdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNj
cmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNj
cmlwdD4gY2FjaGVkU2NyaXB0LCBFeGVjdXRpb25UeXBlIGV4ZWN1dGlvblR5cGUpCkBAIC03MSw2
ICs3NiwxOCBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2Ny
aXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUgogICAgIH0KIH0KIAordm9pZCBTY3Jp
cHRSdW5uZXI6OnF1ZXVlTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2Ny
aXB0RWxlbWVudCwgTW9kdWxlR3JhcGgmKQoreworICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsK
KworICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVtZW50KCk7CisgICAg
QVNTRVJUKGVsZW1lbnQuaW5Eb2N1bWVudCgpKTsKKworICAgIG1fZG9jdW1lbnQuaW5jcmVtZW50
TG9hZEV2ZW50RGVsYXlDb3VudCgpOworCisgICAgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVu
dHMuYWRkKCZlbGVtZW50KTsKK30KKwogdm9pZCBTY3JpcHRSdW5uZXI6OnN1c3BlbmQoKQogewog
ICAgIG1fdGltZXIuc3RvcCgpOwpAQCAtOTcsNiArMTE0LDI2IEBAIHZvaWQgU2NyaXB0UnVubmVy
Ojpub3RpZnlTY3JpcHRSZWFkeShTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBFeGVjdXRp
b25UeXBlCiAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgU2NyaXB0UnVu
bmVyOjpub3RpZnlNb2R1bGVHcmFwaFJlYWR5KFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQp
Cit7CisgICAgQVNTRVJUX1VOVVNFRChzY3JpcHRFbGVtZW50LCBtX3BlbmRpbmdNb2R1bGVTY3Jp
cHRFbGVtZW50cy5jb250YWlucygmc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpKSk7CisKKyAgICAv
LyBMaXN0SGFzaFNldCBjb3JyZWN0bHkgcHJlc2VydmVzIHRoZSBpbnNlcnRpb24gb3JkZXIuCisg
ICAgLy8gQW5kIGl0IGFsbG93IHVzIHRvIHJlbW92ZSBlbGVtZW50IGR1cmluZyBpdGVyYXRpb24u
CisgICAgYXV0byBpdGVyYXRvciA9IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmJlZ2lu
KCk7CisgICAgd2hpbGUgKGl0ZXJhdG9yICE9IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRz
LmVuZCgpKSB7CisgICAgICAgIE1vZHVsZUdyYXBoKiBtb2R1bGVHcmFwaCA9IHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoaXRlcmF0b3ItPmdldCgpKS0+bW9kdWxlR3JhcGgoKTsKKyAgICAgICAg
aWYgKCFtb2R1bGVHcmFwaC0+ZXJyb3JPY2N1cnJlZCgpICYmICFtb2R1bGVHcmFwaC0+aXNMb2Fk
ZWQoKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBhdXRvIHByZXZpb3VzID0gaXRlcmF0
b3I7CisgICAgICAgICsraXRlcmF0b3I7CisgICAgICAgIG1fbW9kdWxlU2NyaXB0RWxlbWVudHNU
b0V4ZWN1dGVTb29uLmFwcGVuZCgqcHJldmlvdXMpOworICAgICAgICBtX3BlbmRpbmdNb2R1bGVT
Y3JpcHRFbGVtZW50cy5yZW1vdmUocHJldmlvdXMpOworICAgIH0KKyAgICBpZiAoIW1fbW9kdWxl
U2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSkKKyAgICAgICAgbV90aW1lci5z
dGFydE9uZVNob3QoMCk7Cit9CisKIHZvaWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKCkKIHsK
ICAgICBSZWY8RG9jdW1lbnQ+IHByb3RlY3QobV9kb2N1bWVudCk7CkBAIC0xMjEsNiArMTU4LDIx
IEBAIHZvaWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKCkKICAgICAgICAgdG9TY3JpcHRFbGVt
ZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+ZXhlY3V0ZShjYWNoZWRTY3JpcHQpOwogICAg
ICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICB9CisK
KyAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBtb2R1bGVTY3JpcHRFbGVtZW50czsKKyAgICBt
b2R1bGVTY3JpcHRFbGVtZW50cy5zd2FwKG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVT
b29uKTsKKworICAgIGZvciAoUmVmUHRyPEVsZW1lbnQ+JiBwZW5kaW5nTW9kdWxlU2NyaXB0RWxl
bWVudCA6IG1vZHVsZVNjcmlwdEVsZW1lbnRzKSB7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBl
bGVtZW50OworICAgICAgICBwZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudC5zd2FwKGVsZW1lbnQp
OworICAgICAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgICAgIC8vIFBhcGVyIG92ZXIgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA1MAorICAgICAgICBpZiAoIWVs
ZW1lbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+ZXZhbHVhdGUoKTsKKyAgICAg
ICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgfQorCiAg
ICAgTWljcm9UYXNrUXVldWU6OnNpbmdsZXRvbigpLnJ1bk1pY3JvVGFza3MoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IDI3Y2RiZjhiM2FmNTY5NDYyZTViOWFlYjE2Y2Q3
NjUwNTA4OTFlMGQuLjEyMjE0ODVlMGU1N2RmYTYzZTQ0NGY0ODI5YWFjNzA0ZTFhMTU5ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KQEAgLTM3LDYgKzM4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBN
b2R1bGVHcmFwaDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBjbGFzcyBTY3JpcHRFbGVtZW50Owog
CkBAIC00OCwxMSArNTEsMTQgQEAgY2xhc3MgU2NyaXB0UnVubmVyIHsKIAogICAgIGVudW0gRXhl
Y3V0aW9uVHlwZSB7IEFTWU5DX0VYRUNVVElPTiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07CiAgICAg
dm9pZCBxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiwgRXhlY3V0aW9uVHlwZSk7Ci0gICAgYm9vbCBoYXNQZW5k
aW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1w
dHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5KCkgfHwgIW1fcGVuZGlu
Z0FzeW5jU2NyaXB0cy5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIHF1ZXVlTW9kdWxlR3JhcGhGb3JF
eGVjdXRpb24oU2NyaXB0RWxlbWVudCosIE1vZHVsZUdyYXBoJik7CisgICAgYm9vbCBoYXNQZW5k
aW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1w
dHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5KCkgfHwgIW1fcGVuZGlu
Z0FzeW5jU2NyaXB0cy5pc0VtcHR5KCkgfHwgIW1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1
dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuaXNFbXB0
eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsKICAgICB2b2lk
IG5vdGlmeVNjcmlwdFJlYWR5KFNjcmlwdEVsZW1lbnQqLCBFeGVjdXRpb25UeXBlKTsKIAorICAg
IHZvaWQgbm90aWZ5TW9kdWxlR3JhcGhSZWFkeShTY3JpcHRFbGVtZW50Kik7CisKIHByaXZhdGU6
CiAgICAgdm9pZCB0aW1lckZpcmVkKCk7CiAKQEAgLTYwLDYgKzY2LDggQEAgY2xhc3MgU2NyaXB0
UnVubmVyIHsKICAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9FeGVjdXRlSW5P
cmRlcjsKICAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9FeGVjdXRlU29vbjsg
Ly8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jc2V0
LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtYXMtc29vbi1hcy1wb3NzaWJsZQogICAgIEhh
c2hNYXA8U2NyaXB0RWxlbWVudCosIFBlbmRpbmdTY3JpcHQ+IG1fcGVuZGluZ0FzeW5jU2NyaXB0
czsKKyAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9F
eGVjdXRlU29vbjsKKyAgICBMaXN0SGFzaFNldDxSZWZQdHI8RWxlbWVudD4+IG1fcGVuZGluZ01v
ZHVsZVNjcmlwdEVsZW1lbnRzOwogICAgIFRpbWVyIG1fdGltZXI7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IGUxM2E1Y2RkY2NhMmNiM2I3NTZh
OGQzYTU3ZTIzZjgwYTliNDNlNDguLmQxNWViNzFiZTNmNmJjZmIxMDc4MmY5NzQ4NzViNDAwYmMw
ZDcxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0x
NjEsNiArMTYxLDE1IEBAIGJvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6Omhhc1NvdXJjZUF0dHJpYnV0
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoc3JjQXR0cik7CiB9CiAKK2Jv
b2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxF
KEVTNl9NT0RVTEVTKQorICAgIHJldHVybiBmYXN0R2V0QXR0cmlidXRlKHR5cGVBdHRyKS5zdHJp
bmcoKSA9PSAibW9kdWxlIjsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisK
IHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKICAgICBBU1NF
UlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaAppbmRleCAzMTJjNjYyNmU4YjgzMTRlODVlMmRmNjg3ZGJmMDlmMmIyZmUzN2IyLi4x
ZGZkOGM4YjczZTg3MmFiY2Q1ZWI0YjM0MmU3OTJkMzM1MDNlNzlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIEhUTUxTY3Jp
cHRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgU2NyaXB0RWxlbWVu
dCB7CiAgICAgdmlydHVhbCBib29sIGFzeW5jQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDhhZGZjZmE0MTBhYmU0N2UzMzI0YWU1Yjhk
OTI0M2Y1NjY2NDVkOTUuLmJhNWYwNmY0NGI2YjExN2ZjYmI2MjMzNTM4ZTJlMTRjZDdmOGU2OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE1MSw2ICsxNTEs
MTEgQEAgYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgU1ZHU2NyaXB0RWxlbWVudDo6aXNNb2R1bGVU
eXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgU1ZHU2NyaXB0RWxl
bWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzQXR0cmli
dXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5oCmluZGV4IDUzNWU0MmU2ZjA2NDZkODAxMDQxOTA5M2M2MjI5MjRiMzgzZDcxMDEuLjhhZmRl
MzExMjVlNWRkNDk4ZGI4MmE0ZTA5ODNhYjA3NGUwZGNjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBTVkdTY3JpcHRFbGVtZW50
IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNBdHRyaWJ1
dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0
ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGhhc1NvdXJjZUF0dHJp
YnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92
ZXJyaWRlIHsgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlzcGF0Y2hMb2FkRXZlbnQo
dGhpcyk7IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDFlNGJkYmM2NWJmYjAxODk3NGM3ZDU3MzY0YjhiYjhlODNkM2Uz
Y2UuLjIyZmRjMGQ2Zjc4YTljNmJjMDc0ZThlZmFkZTg4MDI5ZmQ4NTcxODEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MSBAQAorMjAxNS0wOS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0
ZXN0cyBmb3IgbW9kdWxlcy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUt
c2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9k
dWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8t
b25lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5s
aW5lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1p
bmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtaW5saW5lLWR5bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1p
bmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVs
ZS1pbmxpbmUtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9h
ZC1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9h
ZC1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
bW9kdWxlLWxvYWQtZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1s
b2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUt
ZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9p
bnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtc2Ft
ZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNy
Yy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtc3JjLWR5bmFtaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLXNyYy1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtc3Jj
LXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtc3Jj
LXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1i
ZWZvcmVsb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS13
aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hv
dWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qczogQWRkZWQuCisgICAgICAgICog
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRl
bnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0y
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRp
b24tb3JkZXItbWl4ZWQtY2FwcHVjY2luby5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4
ZWQtbWF0Y2hhLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzOiBBZGRlZC4KKyAgICAgICAgKGV4cG9y
dC5kZWZhdWx0LkNvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChleHBvcnQuZGVmYXVs
dC5Db2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNp
bXBsZS5qczogQWRkZWQuCisgICAgICAgIChleHBvcnQuZGVmYXVsdC5Db2NvYS5wcm90b3R5cGUu
dGFzdGUpOgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EpOgorICAgICAgICAqIGpzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1p
Yy1jb2NvYS5qczogQWRkZWQuCisgICAgICAgIChDb2NvYS5wcm90b3R5cGUudGFzdGUpOgorICAg
ICAgICAoQ29jb2EpOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1k
eW5hbWljLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1z
cmMtc2ltcGxlLWNvY29hLmpzOiBBZGRlZC4KKyAgICAgICAgKENvY29hLnByb3RvdHlwZS50YXN0
ZSk6CisgICAgICAgIChDb2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtc3JjLXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuanM6IEFkZGVkLgorCiAyMDE1LTA5LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbCBv
dXQgcjE5MDA4NSBhcyBpdCBzZWVtcyB0byBjYXVzZSBjcmFzaGVzIGluIEpTQwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNDM2ZTZjMzVjNzljNmE0YWE2NzE4NTkyNzg1NTUzOWI3YzVjZTgwOC4uNDVm
MDc3ZmNmM2E4YWRkYWNhN2MxMGU1MWIzZGI0ZmJiNmQyNTBlNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CkBAIC02NzgsMyArNjc4LDIxIEBAIHdlYmtpdC5vcmcvYi8xNDg2OTUgZmFzdC9zaGFkb3ctZG9t
IFsgRmFpbHVyZSBJbWFnZU9ubHlGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dGltZW91dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlcy5odG1sIFsgRmFpbHVyZSBQ
YXNzIF0KIAogd2Via2l0Lm9yZy9iLzE0OTIxOCBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvZXZl
bnRzLmh0bWwgWyBQYXNzIENyYXNoIFRpbWVvdXQgXQorCisjIEVTNiBNb2R1bGVzIGFyZSBub3Qg
eWV0IGVuYWJsZWQgYnkgZGVmYXVsdDogRU5BQkxFKEVTNl9NT0RVTEVTKQoranMvZG9tL21vZHVs
ZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3Bh
Z2F0ZWQtdG8tb25lcnJvci5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1l
cnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgWyBTa2lwIF0KK2pzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWlu
bGluZS1keW5hbWljLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5o
dG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbCBbIFNr
aXAgXQoranMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0
bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJv
ci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtc3Jj
LWR5bmFtaWMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwgWyBT
a2lwIF0KK2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbCBbIFNraXAgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5z
aWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNp
ZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45YmRiMjc1YTJmYjgzNDg5NjRmYmU4ZGViODI1NTNiNGI5ZGI5
YTUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRp
b24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8t
b25lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB3aW5kb3cub25lcnJv
ciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGRlcGVuZGVudCBtb2R1bGUgdGhyb3cgYW4gZXJyb3Iu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4KK0V4ZWN1dGluZyB0aGUgZGVwZW5kZW50IG1vZHVsZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1w
cm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzdiNWRkNzY0ZGJlMjQzNDIz
ZDFjMzhlMzc0Y2MwZmRkYzI0MzcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxk
LWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHdpbmRvdy5vbmVycm9y
IHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgZGVwZW5kZW50IG1vZHVsZSB0aHJvdyBhbiBlcnJvci4n
KTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Licp
Oword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2ltcG9ydCAic2NyaXB0LXRlc3Rz
L21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcyIKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hv
dWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVk
ZjcwMjhmMzU0OTM2NjkyOTIyZWZlNjFhMmRmYmE1ZjFmMDkzNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9w
YWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qgd2lu
ZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBpbmxpbmVkIG1vZHVsZSB0aHJvd3Mg
YW4gZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9u
ZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDQ2MmYzN2Vk
ODE3MzA2MWY3Zjk5NTM2YzQyZDI5OTVjMjUyNzI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQt
dG8tb25lcnJvci5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQg
d2hlbiB0aGUgaW5saW5lZCBtb2R1bGUgdGhyb3dzIGFuIGVycm9yLicpOworLy8gTW9kdWxlIHdp
bGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cit3aW5kb3cub25lcnJv
ciA9IGZ1bmN0aW9uICgpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJtb2R1bGUiPgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOwordGhy
b3cgbmV3IEVycm9yKCJtb2R1bGUgaXMgZXhlY3V0ZWQuIik7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmZmRmMzM5NzU3
YTRhMzc5NjRlODg5YWVjNjlhZmNjNTk5YWI3OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIGlubGlu
ZWQgbW9kdWxlIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUg
aXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1MgY291bnQrKyBpcyAwCitQQVNTIGNvdW50KysgaXMg
MQorUEFTUyBjb3VudCsrIGlzIDIKK1BBU1MgY291bnQrKyBpcyAzCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NTI1ZTc2OTA4Y2ZiNmZlYTAxMDdmNGRhYWRkMWQyOTMxYmYzY2U2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLmh0bWwK
QEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oJ1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIGlubGluZWQgbW9kdWxl
IHRhZ3MuJyk7Cit3aW5kb3cuY291bnQgPSAwOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQg
YXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitzaG91bGRCZSgiY291bnQrKyIsICIwIik7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjEi
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUoImNvdW50Kysi
LCAiMiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291
bnQrKyIsICIzIik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
bWl4ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24t
b3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzN2Y1MjRmNTMxOTA1ZDhhNTNm
NDRhMzNhYjZmZmI0MDAxMjEwMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
OCBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbWl4ZWQgdGFncy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1dlIGtlZXAgdGhlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIG1vZHVsZXMuCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1MgY291
bnQrKyBpcyAwCitQQVNTIGNvdW50KysgaXMgMQorUEFTUyBjb3VudCsrIGlzIDIKK1BBU1MgY291
bnQrKyBpcyAzCitQQVNTIGNvdW50KysgaXMgNAorUEFTUyBjb3VudCsrIGlzIDUKK1BBU1MgY291
bnQrKyBpcyA2CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItbWl4ZWQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE5MWQzMDNlZGQ3NTc3MzgxMjhkZDlkMTViYjQwYzdl
NzZjMmNkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIG1peGVkIHRhZ3MuJyk7CitkZWJ1ZygnV2Uga2VlcCB0aGUgZXhlY3V0aW9uIG9y
ZGVyIGJldHdlZW4gbW9kdWxlcy4nKTsKK3dpbmRvdy5jb3VudCA9IDA7CisKKy8vIE1vZHVsZSB3
aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1v
cmRlci1taXhlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitzaG91bGRC
ZSgiY291bnQrKyIsICI0Iik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9
InNjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiNiIpOworZmlu
aXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmM5MzlhYWYwYTUwMTVmNDc5Mzg2Y2QzMTk1YWE1OWRkMTY5MDk3NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgaW5saW5lZCBtb2R1bGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVs
ZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1Mg
dHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlz
ICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2EudGFzdGUoKSBpcyAiYXdlc29tZSIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThjMGUy
NTlhYjI5MWVmZmM0YmVlNzhhZTY1YzM0MTdjMTFkMDVlZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDM1
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBp
bmxpbmVkIG1vZHVsZS4nKTsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9u
b3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CisoZnVuY3Rpb24gKCkgewor
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgICAg
ZWxlbWVudC50ZXh0Q29udGVudCA9IGAKKyAgICAgICAgaW1wb3J0IENvY29hIGZyb20gIi4vc2Ny
aXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcyI7CisgICAgICAgIHZhciBjb2NvYSA9
IG5ldyBDb2NvYSgpOworCisgICAgICAgIGRlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZp
bmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5lZCIpOworCisgICAgICAgIHdpbmRvdy5l
eHBvcnRlZENvY29hID0gY29jb2E7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlw
ZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIiwgImF3ZXNvbWUiKTsKKyAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgYDsKKyAgICBlbGVtZW50LnR5cGUgPSAibW9kdWxlIjsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworfSAoKSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5l
LXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1z
aW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjOTM5YWFmMGE1MDE1ZjQ3OTM4NmNkMzE5
NWFhNTlkZDE2OTA5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgaW5s
aW5lZCBtb2R1bGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1v
ZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQQVNT
IHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2EudGFz
dGUoKSBpcyAiYXdlc29tZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGlu
ZS1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc4YmNmMDYwZDFiZDY5NDViMDg5MTZlYmExNTI5YTU1OGZlNmIyZDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1w
bGUuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGVzdCBpbmxpbmVkIG1vZHVsZS4nKTsKKworLy8gTW9kdWxlIHdpbGwg
YmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
Jyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2ltcG9ydCBDb2NvYSBmcm9t
ICIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcyI7Cit2YXIgY29jb2EgPSBu
ZXcgQ29jb2EoKTsKKworZGVidWcoIk1vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhl
IG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGNv
Y29hIiwgInVuZGVmaW5lZCIpOworCit3aW5kb3cuZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmplY3QiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIiwgImF3ZXNvbWUiKTsK
K2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ODYyNjY4MDJkYTU3Yzc1OGNlM2U0YTJmMzFkNzg5MGQwZTViN2Q1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0YWdz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRl
ZCB5ZXQuCitFeGVjdXRpbmcgYW4gaW5saW5lZCBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZThhMmY5Yjk5NjE2ZmY0NzBhZWUyYTQ1ZTcyYmJkYTZlZmFjZDQwOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBzY3JpcHQub25sb2FkIHdpbGwgYmUg
ZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBsb2FkcyBhbmQgZXhlY3V0ZXMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4KK0V4ZWN1dGluZyBhIG1vZHVsZSB3aXRoIHNyYyBhdHRyaWJ1dGUuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTRh
NGEzMDcwYTk2ZTZkYWNiZDhiNzQ2YTc3YzA1N2E0MmM1NmE1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWwKQEAgLTAs
MCArMSwxNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
J1Rlc3Qgc2NyaXB0Lm9ubG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0
aCBzcmMgbG9hZHMgYW5kIGV4ZWN1dGVzLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQg
YXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9k
dWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgpIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtbG9h
ZC1ldmVudC13aXRoLXNyYy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYjhjODA5ZjJk
NDVjZDNmMzE3ODlhZmUyZGY3YjMwZGNlMWY0NWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhl
Y3V0aW9uIG9yZGVyIGJldHdlZW4gdGFncy4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVk
IGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01v
ZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1v
ZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3QoKSI+CitkZWJ1ZygnRXhlY3V0aW5nIGFuIGlubGlu
ZWQgbW9kdWxlLicpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQt
ZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFhYjQ5ZDE0OTc2MjRkZjIyZTAzNDc5N2IzOWFhOGVj
ODY5NGVjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9h
ZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzIEBACisyIGRpZmZlcmVudCBtb2R1bGUgdGFnIHdpbGwgYXR0ZW1w
dCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBmcm9tIGEgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIHRh
ZworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ3VycmVudGx5LCB0aGlzIGlzIG5v
dCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUg
ZnV0dXJlLgorTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgbW9kdWxlLWxv
YWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMuCitFeGVjdXRpbmcg
dGhlIG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1t
b2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBv
aW50LWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWQ1MWUyYjZjZWE4NjE3YmFjZjBjNDBlMzM3
ZTkwOWExZDMxYTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRt
bApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUg
c2FtZSBtb2R1bGUgZnJvbSBhIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCB0YWcnKTsKK2RlYnVnKCdD
dXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hv
dWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRl
ZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJt
b2R1bGUiPgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJv
bS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMiCitkZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUu
Jyk7Cit2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworZWxl
bWVudC50eXBlID0gIm1vZHVsZSI7CitlbGVtZW50LmlubmVyVGV4dCA9ICJzY3JpcHQtdGVzdHMv
bW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMiOwor
ZWxlbWVudC5vbmVycm9yID0gZmluaXNoSlNUZXN0KCk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGVsZW1lbnQpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQt
ZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMGY5OGZjY2I2ZmFmYTA2NDQ3ZTMwMzJlZjA2ZDk4MjAyN2YyNTFkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisy
IGRpZmZlcmVudCBtb2R1bGUgdGFnIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVs
ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ3VycmVudGx5LCB0aGlzIGlzIG5v
dCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUg
ZnV0dXJlLgorTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgbW9kdWxlLWxv
YWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMuCitFeGVjdXRpbmcg
dGhlIG1vZHVsZS4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlm
ZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjA2ZDRlMGI2M2NkYzAxMjc0MTMz
YmVmZDkzODQ0MjU1NTU4YjE4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1s
CkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCcyIGRpZmZlcmVudCBtb2R1bGUgdGFnIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBz
YW1lIG1vZHVsZScpOworZGVidWcoJ0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0
aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4nKTsKKy8v
IE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyIKK2RlYnVn
KCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1
bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0KCkiPgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxl
LWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMiCitkZWJ1Zygn
RXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9y
LWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzhiYTNjMmU3OTk3N2UyYzlmNzkzNDgw
OTczNmZkOTgzN2Q3MmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAyOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcg
bGl0ZXJhbCAibm90LWZvdW5kLmpzIi4gRXhwZWN0ZWQgJ2Zyb20nIGJlZm9yZSBpbXBvcnRlZCBt
b2R1bGUgbmFtZS4KK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBy
ZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhlIGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgaW5saW5l
ZCBtb2R1bGUgaXMgbm90IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRo
LXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDg3ODc1MDFhMTI5Mjc2
ODEwOTE4NzkwN2FmYzQ3ZGZiNmQyODkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJl
IGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUgaW1wb3J0IGRlY2xhcmF0
aW9uIGluIHRoZSBkZXBlbmRlbnQgbW9kdWxlIGlzIG5vdCBmb3VuZC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFu
ZC1pbXBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9y
LWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWYzOTg2ODVhZTA1
YTExY2U4YTFlMGIyMjA5OGU5ODUzMWQ2MjkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9y
dC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUg
cmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGRlcGVu
ZGVudCBtb2R1bGUgaXMgbm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQg
YXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sKKyAgICBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZv
dW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMiIG9uZXJyb3I9Im9uRXJyb3Io
KSI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNy
Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgwZDE1ZGZlNmQwOWJmYzZiODU4M2E0OGRlYzZk
Y2IxYjViMTQxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ug
c3BlY2lmaWVkIGJ5ICJzcmMiIGlzIG5vdCBmb3VuZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI2YTQ3ZjYxMDY5YWZlY2JjYjM4YjBhOTU3NTYyNWNlODJkZjQ4MTgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJv
ci1ldmVudC13aXRoLXNyYy5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUg
ZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5ICJzcmMiIGlzIG5vdCBmb3VuZC4n
KTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Licp
OworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
KyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIg
c3JjPSJub3QtZm91bmQuanMiIG9uZXJyb3I9Im9uRXJyb3IoKSI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQt
ZXJyb3ItZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2I1OTRjNjQ2ODM4ZTRjMzVlMzc1NjFmNmRj
ZTNkODM3NzBiNzcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25lcnJvciB3
aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUgaW1wb3J0IGRl
Y2xhcmF0aW9uIGluIHRoZSBpbmxpbmVkIG1vZHVsZSBpcyBub3QgZm91bmQuJyk7CisvLyBNb2R1
bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0aW9u
IG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNo
SlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9uZXJyb3I9Im9u
RXJyb3IoKSI+CitpbXBvcnQgZnJvbSAibm90LWZvdW5kLmpzIjsKK3Rlc3RGYWlsZWQoJ2V4ZWN1
dGVkJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q4YjAw
NjI0OTBlYzcyMjk1Y2ZmNTA2MWEwODM5ZTQwMDIwY2Q4YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTQgQEAKK1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUg
ZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5
cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAi
b2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkgaXMgIm5pY2UiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NGZmNDI2NGY5ODFmZTk2
NDllZDNhNzIxYjFjZmE0ZmE1ZTkxY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIHdpdGggInNy
YyIgYXR0cmlidXRlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25v
dXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKyhmdW5jdGlvbiAoKSB7Cisg
ICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgICBl
bGVtZW50LnR5cGUgPSAnbW9kdWxlJzsKKyAgICBlbGVtZW50LnNyYyA9ICcuL3NjcmlwdC10ZXN0
cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMnOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7Cit9KCkpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZDhiMDA2MjQ5MGVjNzIyOTVjZmY1MDYxYTA4MzllNDAwMjBjZDhhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSB3aXRoICJzcmMiIGF0dHJpYnV0ZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Lgor
TW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50Lgor
UEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29j
b2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJuaWNlIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y3M2IwYzU0YTI1
YTRmNzZjMTRhM2I1ZGMzMTczZmU4OTNjYjNjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSB3aXRo
ICJzcmMiIGF0dHJpYnV0ZS4nKTsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNo
cm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxl
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2E4ZDk3MDhkYjNlMDVjNGIwMTAzYmU3ZGNlYjBjMDA3MTE3NWM3NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxv
YWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2NyaXB0LmJlZm9yZWxvYWQg
d2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGlzIHByZXBhcmVkLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9h
ZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJmYmZmMTY1M2QwNmMwNmUxZDc0MTc5ZDAxMTAwMzZlMTQ5ZDg2OTAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1i
ZWZvcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0LmJlZm9yZWxvYWQgd2lsbCBiZSBmaXJl
ZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGlzIHByZXBhcmVkLicpOworLy8gTW9kdWxl
IHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmJlZm9yZWxvYWQ9ImZpbmlzaEpTVGVzdCgpIiBzcmM9
InNjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3Vs
ZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1
bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NmMxNWFmMjE0MmI0ODAyNjAyZWFkMDM3MDBmOGJiZTAxYmMyYmVjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9y
LWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3It
dGhyb3cuanMKQEAgLTAsMCArMSwyIEBACitkZWJ1ZygiRXhlY3V0aW5nIHRoZSBkZXBlbmRlbnQg
bW9kdWxlIik7Cit0aHJvdyBuZXcgRXJyb3IoIm91dCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBl
bmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRl
cGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNmM3Y2E0NzliMjU4ODliMDBjYTI0Y2Q1YmJlMzMxZGFhNjVmNzE5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9u
ZXJyb3IuanMKQEAgLTAsMCArMSwyIEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRpb24tZXJyb3It
aW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10
aHJvdy5qcyIKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qcyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC0yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzM2I5ZDM1MmFlYzU3YjA2MWRkYmUwMGI3Y2Y5NGVhNTc0
YWVjNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qcwpAQCAtMCwwICsxIEBACitzaG91bGRC
ZSgiY291bnQrKyIsICI1Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY2FwcHVjY2luby5qcyBiL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1j
YXBwdWNjaW5vLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMTQ2ZmQ3NjZlNTVhMDJhZTc4YmFmOWRkNjMzOThl
Yjg1YTg5MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY2FwcHVjY2luby5qcwpAQCAtMCwwICsx
LDMgQEAKK2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMiCisK
K3Nob3VsZEJlKCJjb3VudCsrIiwgIjIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNThkNzMyNDNmZWYzMGEwYjQ5NDlkYmE3ZmJmODUzNGVl
YmE5ZjczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzCkBAIC0wLDAgKzEsMyBAQAor
aW1wb3J0ICJtb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcyI7CisKK3Nob3Vs
ZEJlKCJjb3VudCsrIiwgIjEiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0
Y2hhLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMyZTE1ZDdjZjBjZmY0ZWFhMWEwYjVhMWVlODNkY2NlMzI0YTI1
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzCkBAIC0wLDAgKzEgQEAKK3Nob3Vs
ZEJlKCJjb3VudCsrIiwgIjAiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qcyBiL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NDM4NmZiYjg2ODFjYmY3ZTU5YzQ3Mzc2MzdlODdiZTM4Y2ZmNzQ0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLmpzCkBAIC0wLDAgKzEsNCBAQAoraW1wb3J0ICIuL21vZHVsZS1leGVjdXRp
b24tb3JkZXItbWl4ZWQtY29jb2EuanMiCitpbXBvcnQgIi4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1jYXBwdWNjaW5vLmpzIgorCitzaG91bGRCZSgiY291bnQrKyIsICIzIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHlu
YW1pYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1k
eW5hbWljLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MzYwYTdiZmU3ZTA1YTBjYjI1Mzg0MTM2N2U3MWRjMWU5
M2I1YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcwpAQCAtMCwwICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0
IGNsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJhd2Vzb21lIjsK
KyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtaW5saW5lLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWlubGluZS1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQzNjBhN2JmZTdlMDVhMGNiMjUz
ODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMKQEAgLTAsMCArMSw1IEBACitl
eHBvcnQgZGVmYXVsdCBjbGFzcyBDb2NvYSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVy
biAiYXdlc29tZSI7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNiODcwMjkwZDNlYzdlMDgwYzA1ZjlmNjY2ODQ0Y2QwNjc1MjlmZGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50
LXdpdGgtc3JjLmpzCkBAIC0wLDAgKzEgQEAKK2RlYnVnKCdFeGVjdXRpbmcgYSBtb2R1bGUgd2l0
aCBzcmMgYXR0cmlidXRlLicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2lu
dC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1t
b2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVhZDc3Zjgw
MDgwNDM4MWJmNGYxZWFkYjUxN2Y1NjBmMGM0ZWI2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQuanMKQEAgLTAsMCArMSBAQAorZGVidWcoJ0V4ZWN1dGluZyBt
b2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcy4nKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFu
ZC1pbXBvcnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGMxYjQ3MTQ4MTM4YTBlYzQ1MjJjMjI3MjMzYTNjNzQx
MzM3MTI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LmpzCkBA
IC0wLDAgKzEgQEAKK2ltcG9ydCAibm90LWZvdW5kLmpzIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanMgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5ZDQ2MzkwNDUxMmIwZWNiNzQ1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3Jj
LWR5bmFtaWMtY29jb2EuanMKQEAgLTAsMCArMSw3IEBACitjbGFzcyBDb2NvYSB7CisgICAgdGFz
dGUoKSB7CisgICAgICAgIHJldHVybiAibmljZSI7CisgICAgfQorfQorCitleHBvcnQgZGVmYXVs
dCBDb2NvYTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLXNyYy1keW5hbWljLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtc3JjLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUxYTdiZTZiNGYxMjkzYWY1OTY4NmZlM2U1
NzgwMWQyZTA5NmMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzCkBAIC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBD
b2NvYSBmcm9tICIuL21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcyI7Cit2YXIgY29jb2EgPSBu
ZXcgQ29jb2EoKTsKKworZGVidWcoIk1vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhl
IG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGNv
Y29hIiwgInVuZGVmaW5lZCIpOworCit3aW5kb3cuZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmplY3QiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIiwgIm5pY2UiKTsKK2Zp
bmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc5NTkyZGM1MTNj
ZjI1OTg0MWZmOWQ0NjM5MDQ1MTJiMGVjYjc0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMKQEAgLTAs
MCArMSw3IEBACitjbGFzcyBDb2NvYSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVybiAi
bmljZSI7CisgICAgfQorfQorCitleHBvcnQgZGVmYXVsdCBDb2NvYTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRkOWM3NzRmZDllN2E1YzlkMTg1OTI0MDQ0ZTdhMjc4YWQ3MzM3MjgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxl
LmpzCkBAIC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBDb2NvYSBmcm9tICIuL21vZHVsZS1zcmMtc2lt
cGxlLWNvY29hLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9kdWxl
IGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dpbmRv
dy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBl
eHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRl
ZENvY29hLnRhc3RlKCkiLCAibmljZSIpOworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9h
ZC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1i
ZWZvcmVsb2FkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYTM5MzgzNTYzM2FlYzU1ZTVlNTk1NzI5ZGE2OTE5
ZTljMzIwM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qcwpAQCAtMCwwICsxIEBACit0ZXN0RmFp
bGVkKCJleGVjdXRlZCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261889</attachid>
            <date>2015-09-24 13:22:49 -0700</date>
            <delta_ts>2015-09-24 13:46:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150924132230.patch</filename>
            <type>text/plain</type>
            <size>135667</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzdmZGYwNGRiNzhkMjk0MDUzMzZiOTk0NGVlNjgyYmM1MTUyMjM2Li5hM2ViNDA0NDVmZDUxNjQx
NWU0MjJmMWFkYzY3YTU2YzQwMmM0Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wOS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW1ib2w6
OmNyZWF0ZSBpcyBub3cgdXNlZCBpbiBXZWJDb3JlLgorCisgICAgICAgICogcnVudGltZS9TeW1i
b2wuaDoKKwogMjAxNS0wOS0yMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBKU0MgYWxsb3dzIGludmFsaWQgdmFyIGRlY2xhcmF0aW9ucyB3aGVuIHRoZSBkZWNs
YXJlZCBuYW1lIGlzIHRoZSBzYW1lIGFzIGEgbGV0L2NvbnN0IHZhcmlhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNmZhZTUzNWI4ZDczMGYzOTgxYWE1MDBkNTljZjZiZGI4MmE1NjczYS4uNzY0YTZjYzRiODQ4
M2FlMmQxMjZjM2NkZGYyMTJhMWMwZWQ2MDU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NiBA
QAorMjAxNS0wOS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPiB0YWcuIFRoYXQgdGFnIGxvYWRzIHRoZSBFUzYg
TW9kdWxlcy4KKyAgICAgICAgU2luY2UgdGhlIGRldGFpbCBvZiB0aGUgdGFnIGlzIG5vdCBkZWZp
bmVkIHlldFsxXSwgdGhlIGltcGxlbWVudGF0aW9uIGlzIGhpZGRlbgorICAgICAgICBiZWhpbmQg
dGhlIGNvbXBpbGUgdGltZSBmbGFnIEVOQUJMRShFUzZfTU9EVUxFUykuCisKKyAgICAgICAgQSBt
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseSBhbmQgZXhlY3V0ZWQgaW4gYSBt
b2R1bGUgZW52aXJvbm1lbnQKKyAgICAgICAgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZ2xv
YmFsIGVudmlyb25tZW50LiBJdCBpcyBhbHdheXMgc3RyaWN0IG1vZGUgYW5kIG9ubHkKKyAgICAg
ICAgYSBtb2R1bGUgY2FuIHVzZSB0aGUgbW9kdWxlIHN5bnRheCBsaWtlIGBpbXBvcnRgLCBgZXhw
b3J0YCBldGMuIFNvIHNpbmNlIHRoZQorICAgICAgICBleGVjdXRpb24gc2VtYW50aWNzIGlzIGRp
ZmZlcmVudCBmcm9tIG9uZSBvZiBnbG9iYWwgc2NyaXB0cywgbW9kdWxlcyBuZWVkIHRvIGJlCisg
ICAgICAgIGV4ZWN1dGVkIGJ5IHRoZSBzcGVjaWFsaXplZCB0YWcsIDxzY3JpcHQ+IHdpdGggdHlw
ZT0ibW9kdWxlIi4KKworICAgICAgICBUaGUgbW9kdWxlIHRhZyB3b3JrcyBhcyBhbiBlbnRyeSBw
b2ludCB0byBtb2R1bGVzLiBUeXBpY2FsbHksIHdlIHNwZWNpZnkgYW4KKyAgICAgICAgZW50cnkg
cG9pbnQgbW9kdWxlIGJ5IGEgdGFnIGFuZCBhbiBlbnRyeSBwb2ludCBtb2R1bGUgd2lsbCBsb2Fk
IGRlcGVuZGVudAorICAgICAgICBtb2R1bGVzIGFuZCBydW4gYSBhcHBsaWNhdGlvbi4KKworICAg
ICAgICBPbmNlIG1vZHVsZSB0YWcgcmVxdWVzdCBsb2FkaW5nLCBXZWJDb3JlIHJlcXVlc3QgbG9h
ZGluZyB0byB0aGUgSlNDJ3MgbW9kdWxlCisgICAgICAgIGxvYWRlci4gV2ViQ29yZSBhZG9wdHMg
dGhlIEpTQydzIGdlbmVyaWMgbW9kdWxlIGxvYWRlciBieSBpbXBsZW1lbnRpbmcgdGhlIGxvYWRl
cgorICAgICAgICBob29rcy4gSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIFdlYkNvcmUg
aW1wbGVtZW50cyAzIGhvb2tzLgorCisgICAgICAgIDEuIHJlc29sdmUgaG9vaworCisgICAgICAg
ICAgICBUYWtlcyB0aGUgbW9kdWxlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBt
b2R1bGUga2V5LgorICAgICAgICAgICAgSW4gV2ViQ29yZSwgd2UgdGFrZSB0aGUgbW9kdWxlIG5h
bWUgbGlrZSAiLi9oZWxsby5qcyIgYW5kIHJlc29sdmUgaXQgdG8gVVJMLgorCisgICAgICAgIDIu
IGZldGNoIGhvb2sKKworICAgICAgICAgICAgRmV0Y2hlcyB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVk
IGJ5IHRoZSBtb2R1bGUga2V5LiBJbiBXZWJDb3JlLCB0aGUgbW9kdWxlIGtleSBpcworICAgICAg
ICAgICAgVVJMLiBXZSB1c2UgQ2FjaGVkUmVzb3VyY2UgbG9hZGluZyBzeXN0ZW0gdG8gbG9hZCB0
aGUgcmVzb3VyY2Ugb2YgdGhlIG1vZHVsZXMuCisKKyAgICAgICAgMy4gZXZhbHVhdGUgaG9vawor
CisgICAgICAgICAgICBUaGlzIGlzIGFkZGl0aW9uYWwgaG9vayB0byBpbnN0cnVtZW50IHRoZSBt
b2R1bGUncyBleGVjdXRpb24gZm9yIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgVGhlIG1vZHVs
ZSBsb2FkZXIgaW52b2tlcyB0aGVzZSBob29rcywgY29uc3RydWN0cyB0aGUgcGlwZWxpbmUgYW5k
IG5vdGlmaWVzIGV2ZW50cworICAgICAgICB0byBhIE1vZHVsZUdyYXBoLCB3aGljaCBpcyBoZWxk
IGJ5IGEgU2NyaXB0RWxlbWVudC4gQSBTY3JpcHRFbGVtZW50IHdpdGggYSBNb2R1bGVHcmFwaAor
ICAgICAgICB3aWxsIGJlIGRyaXZlbiBieSB0aGVzZSBldmVudHMuCisKKyAgICAgICAgTW9kdWxl
IHRhZyBsb2FkcyB0aGUgcmVzb3VyY2VzIGFzeW5jaHJvbm91c2x5LiBTbyBpdCBkb2VzIG5vdCBi
bG9jayB0aGUgZG9jdW1lbnQKKyAgICAgICAgcGFyc2VyLiBCdXQgdGhlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIHRoZSBtdWx0aXBsZSBtb2R1bGUgdGFncyBzaG91bGQgYmVjb21lCisgICAgICAg
IHRoZSBvY2N1cnJlbmNlIG9yZGVyWzFdLiBTbyBTY3JpcHRSdW5uZXIgbWFuYWdlcyB0aGUgbW9k
dWxlIHRhZ3MgYW5kIGZvcmNlIHRoZW0KKyAgICAgICAgdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIG9j
Y3VycmVuY2Ugb3JkZXIuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGhlcm1h
bi9tb2R1bGUtdGFnL2Jsb2IvbWFzdGVyL3JlcXVpcmVtZW50cy5tZAorCisgICAgICAgIFRlc3Rz
OiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3Iu
aHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5l
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbAor
ICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9t
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFt
aWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbAorICAgICAg
ICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMv
ZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01haW5U
aHJlYWRFeGVjU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0
ZTo6bG9hZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlRmV0
Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6TW9kdWxl
RmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hl
cik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6cnVuKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZl
dGNoZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRj
aGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6Y2FjaGVkU2Ny
aXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUxvYWRlcjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVM
b2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3Jp
cHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZU1vZHVsZUxvYWRlckVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1bGVHcmFwaCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgorICAgICAgICAqIGRv
bS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6fkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TW9kdWxlR3JhcGg6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpu
b3RpZnlFdmFsdWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmxvYWQpOgor
ICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
ZHVsZUdyYXBoOjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjptb2R1
bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OndlYWtFbGVtZW50UHRyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjplcnJvck9jY3VycmVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBl
U3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpt
b2R1bGVHcmFwaCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9TY3JpcHRS
dW5uZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6aGFzUGVuZGluZ1Njcmlw
dHMpOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAg
ICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDoKKwogMjAxNS0wOS0yMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIxOTAw
ODUgYXMgaXQgc2VlbXMgdG8gY2F1c2UgY3Jhc2hlcyBpbiBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggODNmNWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1
ZmRkZGJiZS4uZGRiNjhjY2IzNjU0NDU5OTEwY2QzZjIzZjY2ODc0ZDAwNTg4YTk1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTg2LDcgKzg2LDcgQEAgY2xhc3Mg
U3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBTeW1ib2woVk0mKTsKICAgICBT
eW1ib2woVk0mLCBjb25zdCBTdHJpbmcmKTsKLSAgICBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1
aWQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDI0NjMwYmEwZjMyN2QwYTU2MmZmMGZmOGZlYTk1Y2UxNzk5MmJmMWMuLmQ1MDli
NWY2Yjc3ZTUxZGQ0YmJmOWRhMmZjMDhkY2M3NzYzM2QwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMjI1LDYgKzEyMjUsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAK
KyAgICBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcAorICAgIGJpbmRpbmdzL2pzL01vZHVs
ZUxvYWRlci5jcHAKICAgICBiaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAogICAgIGJp
bmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNo
ZWRGcmFtZURhdGEuY3BwCkBAIC0xNDUwLDYgKzE0NTIsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgZG9tL01lc3NhZ2VQb3J0LmNwcAogICAgIGRvbS9NZXNzYWdlUG9ydENoYW5uZWwuY3Bw
CiAgICAgZG9tL01pY3JvVGFzay5jcHAKKyAgICBkb20vTW9kdWxlR3JhcGguY3BwCiAgICAgZG9t
L01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9N
dXRhdGlvbkV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNTU3
YTJmMjFlY2Y2YjJhZWNhZDY3ZTM1M2UxOTY2ZTQ3OTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNl
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VfaAorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZjMDg2ZGQzOWFmZjllMTA0YmQ1
YTZmZjdhZTc5MjU0NjM4Njk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCkBAIC0w
LDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVk
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L0pTTW9kdWxlUmVjb3JkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlOWVjZmZiY2Y1N2MyYTljNzk1Y2NiMWQ4
MDM0MGY5MTRkN2Q0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5k
ZWYgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNvcmRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KU01v
ZHVsZVJlY29yZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVu
dGltZS9TeW1ib2wuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUv
U3ltYm9sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUwNDI3ZjA5MWE5ZWNhY2ZiZmEwOTlhZTBkMDMwZTBlOWJj
NWViMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvU3ltYm9sLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1N5
bWJvbF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1N5bWJvbF9oCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvU3ltYm9sLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDIxYTlkNDI1ZGFkNzI0OGU4NDQyMzljNThjZTg1MDZm
MjgwOTg4YjEuLmFjMDIyYjA2NzM1NjkxM2RmYzg3MGFlZGExYWNhZTU1YmUyYWJmMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQ0
MzYsNiArMTQ0MzYsMjAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkb21cTW9kdWxlR3JhcGguY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xODg3NSw2ICsxODg4OSwzNCBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUZldGNoZXIu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XE1vZHVsZUxvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMjA3MSw2ICsyMjExMyw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTWVzc2FnZVBvcnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNZXNzYWdlUG9ydENoYW5uZWwuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRvbVxNb2R1bGVHcmFwaC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9t
XE1vdXNlRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZVJl
bGF0ZWRFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE11dGF0aW9u
RXZlbnQuaCIgLz4KQEAgLTIyNDg0LDYgKzIyNTI3LDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZU9yU3RyaW5nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVG
ZXRjaGVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1
bGVMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNj
aGVkdWxlZEFjdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xTY3JpcHRDb250cm9sbGVyLmgiIC8+CkBAIC0yMjcyMywxMyArMjI3Njgs
MTcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN2Z1xwcm9wZXJ0aWVzXFNWR1RyYW5z
Zm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcQXJnTGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxJZGVudGlmaWVyLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTSW50
ZXJuYWxQcm9taXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNMb2NrLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpT
T2JqZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXEpTU3RyaW5nLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTTW9kdWxlUmVjb3JkLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXExvb2t1cC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxPcGVyYXRp
b25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xy
dW50aW1lXFByb3RlY3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcU3RyaW5nT2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5bWJvbC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFyclxSZWd1bGFyRXhwcmVzc2lv
bi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFy
clxZYXJyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1x5YXJyXFlhcnJJbnRlcnByZXRlci5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDZkZDM3OTlhZDVj
NjM5NTczY2Y3YjY4NDNjZDhkY2RiMTU3ODYyZWEuLjQyZWQ2YmE1ZWMwYzMxNzNjYjkxY2I4MzZm
MzczOWIzNzIyN2MzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTMxOTgsNiArMzE5OCw5IEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTWljcm9UYXNrLmNwcCI+CiAgICAgICA8RmlsdGVy
PmRvbTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZG9tXE1vZHVsZUdyYXBoLmNwcCI+CisgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlRXZlbnQu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC00
NDc2LDYgKzQ0NzksMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlRmV0Y2hlci5jcHAiPgorICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlTG9hZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xTY2hlZHVsZWRBY3Rpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwMzA0LDYgKzEwMzEzLDkgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCI+CiAgICAgICA8RmlsdGVyPmRv
bTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXE1vZHVsZUdyYXBoLmgiPgorICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmgiPgog
ICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTExNDg5LDYg
KzExNTAxLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5oIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXE1vZHVsZUZldGNoZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xNb2R1bGVMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xT
Y2hlZHVsZWRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xMTY1NywxMiArMTE2NzUsMjEgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSWRlbnRpZmllci5oIj4KICAg
ICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVu
dGltZVxKU0ludGVybmFsUHJvbWlzZS5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTTG9jay5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU09iamVjdC5oIj4KICAgICAgIDxG
aWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxK
U01vZHVsZVJlY29yZC5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGlt
ZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU1N0cmluZy5oIj4KICAgICAgIDxGaWx0ZXI+Rm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTE2
ODEsNiArMTE3MDgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxTdHJpbmdPYmplY3QuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sLmgiPgorICAgICAg
PEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1
ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1x5YXJyXFJl
Z3VsYXJFeHByZXNzaW9uLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1x5YXJy
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWI1NWZmOWYxMmE4MmUyYjBhYzczMjgz
NDUyNzEzZTRhZGUxYjY5MC4uMzc4YjMxNDlmOTM4MGQ0ZjkxY2M5NzdkMmJkY2U3ODZkNjRlOWM1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjMyMyw2ICs2MzIzLDEyIEBACiAJCUUxRkY4RjY4MTgwNzQ2MDgwMDEzMjY3NCAv
KiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlw
dG9DdXN0b20uY3BwICovOyB9OwogCQlFMUZGOEY2QzE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5LmNwcCAqLzsgfTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuaCAqLzsgfTsKKwkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzlBNTIx
MUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi87IH07CisJCUUzMzlBNTI0MUJB
NkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdy
YXBoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4OTIxQkFEMTQ1RjAwRDYy
RUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7
IH07IH07CisJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5MzFCQUQx
NDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdT
ID0gKCk7IH07IH07CisJCUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4
OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9
IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CiAJCUU0MDFDMjc1MTdDRTUzRUMwMEM0MUEzNSAvKiBF
bGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDAxQzI3NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJh
dG9yQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0MjRBMzlFMTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlE
MTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCAqLzsgfTsKIAkJRTQyNEEz
QTAxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlGMTMzMERGMUUwMENGNkRD
OSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gKi87IH07CkBAIC0xNDA4Myw2ICsxNDA4OSwxMiBA
QAogCQlFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG9DdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzOUE1
MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUdyYXBoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUdyYXBoLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzODgzODkyMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUZldGNoZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5MzFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlRmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
b2R1bGVGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgzODk0MUJB
RDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudEl0
ZXJhdG9yQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA2RjNG
QjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbG9yRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE1MzUsNiArMjE1NDcsMTAgQEAKIAkJCQk0
MTE4OUVGODFBRDgyMzNDMDBCOTBBMEQgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0
b20uY3BwICovLAogCQkJCUUxQzM2RDMyMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5jcHAgKi8sCiAJCQkJRTFDMzZEMzMwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlLmggKi8sCisJCQkJRTM4ODM4OTIxQkFEMTQ1RjAwRDYyRUUzIC8q
IE1vZHVsZUZldGNoZXIuY3BwICovLAorCQkJCUUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBN
b2R1bGVGZXRjaGVyLmggKi8sCisJCQkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5jcHAgKi8sCisJCQkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxv
YWRlci5oICovLAogCQkJCTQxOThCREVFMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3Ry
ZWFtLmNwcCAqLywKIAkJCQk0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0
cmVhbS5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rp
b24uY3BwICovLApAQCAtMjM1MDIsNiArMjM1MTgsOCBAQAogCQkJCTQxQkY3MDBBMEZFODZGNDkw
MDVFOERFQyAvKiBNZXNzYWdlUG9ydENoYW5uZWwuaCAqLywKIAkJCQlDQjhDRjAxNTFBOTM0QjQz
MDAwRDUxMEIgLyogTWljcm9UYXNrLmNwcCAqLywKIAkJCQk1M0I4OTVBRDE5REM3QzM3MDA5Q0FB
OTMgLyogTWljcm9UYXNrLmggKi8sCisJCQkJRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1v
ZHVsZUdyYXBoLmNwcCAqLywKKwkJCQlFMzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxl
R3JhcGguaCAqLywKIAkJCQk4NTAzMUIyRjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5j
cHAgKi8sCiAJCQkJODUwMzFCMzAwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuaCAqLywK
IAkJCQkxNDFCOTRFNTA5RUM0MjIzMDAwRTk0MTMgLyogTW91c2VFdmVudC5pZGwgKi8sCkBAIC0y
NDYxNyw2ICsyNDYzNSw3IEBACiAJCQkJMzE2MDIzRjAxNTMyQzQwQzAwRDUwRkY0IC8qIERpY3Rp
b25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEzMSAvKiBE
aWN0aW9uYXJ5TG9va3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNEMTMxMDA4
REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzM5QTUyNDFC
QTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTdFREFB
RkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxOTEsNiArMjYy
MTAsNyBAQAogCQkJCUNFMTI1MjQxMUExNkIxQjYwMDg2NDQ4MCAvKiBNZWRpYVBsYXllclNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJv
ZHVjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBN
ZWRpYVF1ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJFRTMg
LyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAy
MjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5
MkUwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzIzOSw2ICsyNzI1OSw3IEBACiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZDQTI3
IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYw
QkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FDRTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
VGV4dFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FEMTBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg1NEIwMjUxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yODAwNyw2ICsyODAyOCw3IEBACiAJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8q
IEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQkMxMkIw
MjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwMDcxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFw
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjA4MTEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NTk2OTExNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDMxNjBCRTEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyTWFjLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjg1NzIsNiArMjg1OTQsNyBAQAogCQkJCUU0QTAwNzg1MUI4MjBFRDMw
MDJDNUE2RSAvKiBEYXRhVVJMRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1
MTBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOEFEMEE1OTcxNEM4ODM1ODAwMEQ4M0M1IC8qIERPTVdlYktpdENTU1JlZ2lvblJ1bGUu
bW0gaW4gU291cmNlcyAqLywKKwkJCQlFMzg4Mzg5ODFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxl
TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjExRTYyMEUxQzRFMTQwMEY2QTU3OSAv
KiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTNGMkIz
M0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzkxQTM4RjFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg5OSw2ICsyODkyMiw3IEBACiAJCQkJQTg3MURCMkUw
QTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4NzFEQjI5MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDb2xFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjI4MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFi
bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzODgzODk2MUJBRDE0NUYwMEQ2MkVF
MyAvKiBNb2R1bGVGZXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjJEMEExNTBC
RDYwMEIxMkE2OCAvKiBIVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODcxREIzMDBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzQ0MkNBMDBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93
c0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTA3Miw2ICszMTA5Niw3IEBACiAJ
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJl
bmNlID0gMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJ
CQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZf
TU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7CiAJCX07CkBAIC0zMTA3OSw2ICszMTEw
NCw3IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25m
aWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVO
QUJMRV9FUzZfTU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKIAkJfTsKQEAgLTMx
MDg3LDYgKzMxMTEzLDcgQEAKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1
RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRp
bmdzID0gewogCQkJCUJVSUxEX1ZBUklBTlRTID0gbm9ybWFsOworCQkJCUVOQUJMRV9FUzZfTU9E
VUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsK
IAkJfTsKQEAgLTMxMTIwLDYgKzMxMTQ3LDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MTgxNzA3RDEzODZFREYyMDA1
N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCQlFTkFCTEVfRVM2X01PRFVMRVMgPSBFTkFCTEVfRVM2X01PRFVMRVM7CiAJCQl9
OwogCQkJbmFtZSA9IERlYnVnOwogCQl9OwpAQCAtMzExMjcsNiArMzExNTUsNyBAQAogCQkJaXNh
ID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9
IDQxODE3MDdEMTM4NkVERjIwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQueGNjb25maWcg
Ki87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJM
RV9FUzZfTU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKIAkJfTsKQEAgLTMxMTM0
LDYgKzMxMTYzLDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2ViQ29y
ZVRlc3RTdXBwb3J0LnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlFTkFC
TEVfRVM2X01PRFVMRVMgPSBFTkFCTEVfRVM2X01PRFVMRVM7CiAJCQl9OwogCQkJbmFtZSA9IFBy
b2R1Y3Rpb247CiAJCX07CkBAIC0zMTE2Miw2ICszMTE5Miw3IEBACiAJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUw
QkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdz
ID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCQlQ
Uk9EVUNUX05BTUUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7
CkBAIC0zMTE3MCw2ICszMTIwMSw3IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
IAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3
IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJM
RV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCQlQUk9EVUNUX05BTUUgPSAi
RGVyaXZlZCBTb3VyY2VzIjsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKQEAgLTMxMTc4LDYg
KzMxMjEwLDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSAxQ0RENDVFNTBCQTlDODQ2MDBGOTAxNDcgLyogV2ViQ29yZS54
Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJRU5BQkxFX0VTNl9NT0RVTEVT
ID0gRU5BQkxFX0VTNl9NT0RVTEVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICJEZXJpdmVkIFNvdXJj
ZXMiOwogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggZmY0MTVlZDI4NDA4OGUy
ODk1NWE2NGMwZTYxMmE4NTZkZWVkZDk3Zi4uZGU5YjE4YTRlNjE1MDA2Y2QyMTE0NDZmNmQ2ZTFm
NTU2N2M5NGVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRp
bmdzQWxsSW5PbmUuY3BwCkBAIC0xNDcsNiArMTQ3LDggQEAKICNpbmNsdWRlICJKU1hNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCIKICNp
bmNsdWRlICJKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
ZXIuY3BwIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5jcHAiCiAjaW5jbHVkZSAiU2NoZWR1bGVk
QWN0aW9uLmNwcCIKICNpbmNsdWRlICJTY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggODM1MDMzMzEzZWZlMTUyZjFlMzlmNGMxNTFiYmRj
MmYwYTFhZDdmYi4uOWY4ZGYwYjVmMmZlZGQwYjVmZTZmMWVmMWIwY2ZlYmM3N2EzZWI5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0z
MSwxMSArMzEsMTMgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUg
IkpTTm9kZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9NaWNyb3Rhc2suaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC01Niw3ICs1OCw3IEBAIHN0YXRpYyBib29sIHNob3Vs
ZEFsbG93QWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCwgRXhlY1N0
YXRlKiBlCiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd0Jhc2U6OnNfaW5mbyA9IHsgIldp
bmRvdyIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTRE9NV2luZG93QmFzZSkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNE
T01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dB
Y2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAm
c2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFz
a1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxl
ID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0
c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRp
bWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVm
b3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVs
bHB0ciwgbnVsbHB0ciwgJm1vZHVsZUxvYWRlckV2YWx1YXRlIH07CiAKIEpTRE9NV2luZG93QmFz
ZTo6SlNET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQ
dHI8RE9NV2luZG93PiB3aW5kb3csIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKQogICAgIDogSlNE
T01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgJnNoZWxsLT53b3JsZCgpLCAmc19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZSkKQEAgLTI3Niw0ICsyNzgsMzEgQEAgdm9pZCBKU0RPTVdpbmRvd0Jh
c2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRv
dykKICAgICB9CiB9CiAKKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFs
dWUgcmVmZXJyZXIpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpq
c0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1lbnQq
IGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVy
biBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBleGVjLCBt
b2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
KiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMs
IGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRl
ZmluZWQoKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSkKK3sKKyAgICBKU0RPTVdp
bmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9i
YWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBs
KCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+
ZmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXkpOworICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBkZWZlcnJlZC0+cmVq
ZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTVmFsdWUgSlNET01XaW5kb3dC
YXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpT
VmFsdWUgbW9kdWxlUmVjb3JkKQoreworICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9
IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKERv
Y3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5kb2N1bWVudCgpKQorICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFsdWF0ZShnbG9iYWxPYmplY3Qs
IGV4ZWMsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVm
aW5lZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDVlZDM4NjJjMTQxMTg3YzAwNmI2ODhk
Yjc5Nzc5NGIzNjk4MTA1NjQuLjJkNDRiODAwOWU1NGRiYjA3NGU4Zjk5NzdjMTZiMjVlMTI1N2Vh
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBA
IC03OCw2ICs3OCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTQzo6V2F0Y2hw
b2ludFNldCBtX3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHM7CiAKICAgICBwcml2YXRlOgorICAgICAg
ICAvLyBNb2R1bGUgTG9hZGVyIGhvb2tzLgorICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFs
UHJvbWlzZSogbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlND
OjpKU1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKwogICAgICAgICBSZWZQ
dHI8RE9NV2luZG93PiBtX2ltcGw7CiAgICAgICAgIEpTRE9NV2luZG93U2hlbGwqIG1fc2hlbGw7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmgKaW5kZXggMDllN2U1YjYwMjY4NzliNTMzNWExZmUxZWY3MWM0NDc0MzBiZmNk
NC4uNGZkNjgzZTE1OTEwMmIxNTI4N2Q2Mzg5OWMwMTZlZmQzNzQ4MDNlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKQEAgLTc0
LDYgKzc0LDI0IEBAIGNsYXNzIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSB7CiAgICAgICAgIHRhc2su
cnVuKGV4ZWMpOwogICAgIH0KIAorICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUp
CisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMp
OworICAgICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUpOworICAg
IH0KKworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCisgICAg
eworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMpOworICAg
ICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUpOworICAgIH0KKwor
ICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5KQor
ICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsK
KyAgICAgICAgcmV0dXJuIEpTQzo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKGV4ZWMsIG1vZHVsZUtl
eSk7CisgICAgfQorCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBp
bnN0cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBKU0M6OkNhbGxU
eXBlLCBjb25zdCBKU0M6OkNhbGxEYXRhJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1M2VmOTVmMjIzOGI5
ZTFmZTBlOWZmYTFlYjdjNjQ4MDU1ZjA1ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgi
CisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFNj
cmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50
KGRvY3VtZW50KQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQorICAgICwgbV9nbG9iYWxP
YmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QpCisgICAgLCBtX2RlZmVycmVk
KGdsb2JhbE9iamVjdC0+dm0oKSwgZGVmZXJyZWQpCit7Cit9CisKK01vZHVsZUZldGNoZXI6On5N
b2R1bGVGZXRjaGVyKCkKK3sKKyAgICBpZiAobV9jYWNoZWRTY3JpcHQpIHsKKyAgICAgICAgbV9j
YWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQg
PSBudWxscHRyOworICAgIH0KK30KKworUmVmPE1vZHVsZUZldGNoZXI+IE1vZHVsZUZldGNoZXI6
OmNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwmIHNvdXJj
ZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1lbnQm
IGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vZHVsZUZldGNoZXIoZ2xv
YmFsT2JqZWN0LCBzb3VyY2VVUkwsIGRlZmVycmVkLCBkb2N1bWVudCkpOworfQorCitib29sIE1v
ZHVsZUZldGNoZXI6OnJ1bigpCit7CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMg
PSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwor
ICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihDb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrKTsKKworICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX3NvdXJjZVVSTCksIG9wdGlvbnMp
OworICAgIC8vIEZJWE1FOiBTaG91bGQgaGFuZGxlICJjaGFyc2V0IiBvcHRpb25zLgorICAgIC8v
IE9uY2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBkZXRhaWxzLCB3ZSB3aWxsIGZvbGxvdyBpdC4K
KyAgICByZXF1ZXN0LnNldENoYXJzZXQobV9kb2N1bWVudC5jaGFyc2V0KCkpOworCisgICAgLy8g
RklYTUU6IFNob3VsZCBoYW5kbGUgImNyb3Nzb3JpZ2luIiBvcHRpb25zLgorICAgIC8vIE9uY2Ug
dGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBkZXRhaWxzLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICBy
ZXF1ZXN0LnNldEluaXRpYXRvcihBdG9taWNTdHJpbmcobV9zb3VyY2VVUkwuc3RyaW5nKCkpKTsK
KworICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9kb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CisgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gTm90ZTogSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFk
eSBjYWNoZWQsIHRoaXMgaW1tZWlkYXRlbHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCisgICAgbV9j
YWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Up
Cit7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9jYWNoZWRTY3Jp
cHQpOworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJldHVybjsKKworICAgIEFT
U0VSVChtX2NhY2hlZFNjcmlwdCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2Ny
aXB0PiBjYWNoZWRTY3JpcHQgPSBtX2NhY2hlZFNjcmlwdDsKKyAgICBtX2NhY2hlZFNjcmlwdCA9
IG51bGxwdHI7CisKKyNpZiBFTkFCTEUoTk9TTklGRikKKyAgICBpZiAoY2FjaGVkU2NyaXB0ICYm
ICFjYWNoZWRTY3JpcHQtPm1pbWVUeXBlQWxsb3dlZEJ5Tm9zbmlmZigpKSB7CisgICAgICAgIG1f
ZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsICJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGZyb20gJyIgKyBjYWNo
ZWRTY3JpcHQtPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicgYmVj
YXVzZSBpdHMgTUlNRSB0eXBlICgnIiArIGNhY2hlZFNjcmlwdC0+bWltZVR5cGUoKSArICInKSBp
cyBub3QgZXhlY3V0YWJsZSwgYW5kIHN0cmljdCBNSU1FIHR5cGUgY2hlY2tpbmcgaXMgZW5hYmxl
ZC4iKTsKKyAgICAgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3Vt
ZW50LmZyYW1lKCkpIHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9i
amVjdC0+dm0oKSk7CisgICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKTsKKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC0+ZXJyb3JPY2N1cnJl
ZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZSBpcyBjb25z
dHJ1Y3RlZCBhcyBhIGNoYWluIG9mIHByb21pc2VzLgorICAgICAgICAgICAgLy8gUmVqZWN0aW5n
IGEgcHJvbWlzZSBpZiBzb21lIGVycm9yIG9jY3VycyBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUg
ZXhlY3V0aW9uIGZsb3cgb2YKKyAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGNoYWluIGlzIGRy
aXZlbiBieSAicmVqZWN0ZWQiIG9yICJmdWxmaWxsZWQiIGV2ZW50cy4KKyAgICAgICAgICAgIC8v
IElmIHRoZSBwcm9taXNlIGlzIG5vdCByZWplY3RlZCB3aGlsZSBlcnJvciBvY2N1cnMsIHJlamVj
dCBoYW5kbGVyIHdvbid0IGJlIGV4ZWN1dGVkCisgICAgICAgICAgICAvLyBhbmQgYWxsIHRoZSBz
dWJzZXF1ZW50IHByb21pc2UgY2hhaW4gd2lsbCB3YWl0IHRoZSByZXN1bHQgZm9yZXZlci4KKyAg
ICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBBcyBhIHJlc3VsdCwgZXZlbiBpZiB0aGUgZXJy
b3IgaXMgYWxyZWFkeSByZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGVsc2V3aGVyZSwKKyAgICAg
ICAgICAgIC8vIGl0IHNob3VsZCBiZSBwcm9wYWdhdGVkIGluIHRoZSBwaXBlbGluZS4gRm9yIGV4
YW1wbGUsIHRoZSBlcnJvciBvZiBsb2FkaW5nCisgICAgICAgICAgICAvLyBDYWNoZWRSZXNvdXJj
ZSBpcyBhbHJlYWR5IHJlcG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgYnkgdGhlIGxvYWRlci4gQnV0
IHdlIHN0aWxsIG5lZWQKKyAgICAgICAgICAgIC8vIHRvIHJlamVjdCB0aGUgcHJvbWlzZSBieSBz
b21lIGVycm9yLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdCB0byByZXBvcnQg
dGhlIGVycm9yIHR3aWNlLCB3aGVuIHdlIHByb3BhZ2F0ZSB0aGUgZXJyb3IgdGhhdCBpcyBhbHJl
YWR5IHJlcG9ydGVkCisgICAgICAgICAgICAvLyB0byB0aGUgaW5zcGVjdG9yLCB3ZSB0aHJvdyBt
b2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCBzeW1ib2wgaW5zdGVhZC4KKyAg
ICAgICAgICAgIC8vIEJ5IGNvbXBhcmluZyB0aGUgdGhyb3duIGVycm9yIHdpdGggdGhpcyBzeW1i
b2wsIHdlIGNhbiBkaXN0aW5ndWlzaCBlcnJvcnMgcmFpc2VkCisgICAgICAgICAgICAvLyB3aGVu
IGxpbmtpbmcgb3IgZXhlY3V0aW5nIGEgbW9kdWxlIGdyYXBoIGZyb20gZXJyb3JzIHJlcG9ydGVk
IGFscmVhZHkuCisgICAgICAgICAgICAvLyBJbiB0aGUgcmVqZWN0IGhhbmRsZXIgb2YgdGhlIHBy
b21pc2UsIHdlIG9ubHkgcmVwb3J0IGEgZXJyb3IgdGhhdCBpcyBub3QgdGhpcyBzeW1ib2wuCisg
ICAgICAgICAgICBtX2RlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6OmNyZWF0ZShl
eGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRF
cnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZWRTY3JpcHQt
Pndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29k
ZShjYWNoZWRTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVzb2x2ZShl
eGVjLCBKU0M6OmpzU3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkpKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIC8vIEEgQ2FjaGVkUmVzb3VyY2VIYW5kbGUgYWxvbmUgZG9lcyBub3Qg
cHJldmVudCB0aGUgdW5kZXJseWluZyBDYWNoZWRSZXNvdXJjZQorICAgIC8vIGZyb20gcHVyZ2lu
ZyBpdHMgZGF0YSBidWZmZXIuIFVudGlsIHdlIGZpbmlzaCB1c2luZyB0aGUgYmFja2luZyBidWZm
ZXIgb2YgdGhlCisgICAgLy8gY2FjaGVkIHNjcmlwdCwgd2UgZG9uJ3QgcmVtb3ZlIHRoZSBjbGll
bnQuCisgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisKKyAgICBtX2RvY3Vt
ZW50Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAvLyBBZnRlciBN
b2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUgZGVzdHJveWVk
LgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVG
ZXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjkzZDM2YWUzNjBmMmY3MmIwZTk5ZWZiYTQzN2Y3MzU0NmI0NjIwZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuaApA
QCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVGZXRjaGVyX2gKKyNk
ZWZpbmUgTW9kdWxlRmV0Y2hlcl9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5o
IgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiVVJMLmgiCisj
aW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNj
cmlwdDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CisKK2NsYXNz
IE1vZHVsZUZldGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVGZXRjaGVyPiwgcHJpdmF0
ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxl
RmV0Y2hlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8TW9kdWxlRmV0Y2hlcj4gY3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBz
b3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisK
KyAgICB+TW9kdWxlRmV0Y2hlcigpOworCisgICAgYm9vbCBydW4oKTsKKworICAgIENhY2hlZFNj
cmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0KKwor
cHJpdmF0ZToKKyAgICBNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJM
JiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7
CisKKyAgICAvLyBGb3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBEb2N1bWVudCYg
bV9kb2N1bWVudDsKKyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJvbmc8SlNET01H
bG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIE1vZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwMmIxNjJkMDEyM2Y1YTA4
OGFlZjdiZjBiNDNjNTMyOTUyN2VjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1pY3JvVGFz
ay5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxl
ci5oIgorI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9Db21wbGV0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPHJ1
bnRpbWUvSlNTdHJpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL1N5bWJvbC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK01vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKERvY3VtZW50JiBkb2N1
bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK0pTQzo6SlNJbnRlcm5h
bFByb21pc2UqIE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZVZh
bHVlLCBKU0M6OkpTVmFsdWUgcmVmZXJyZXJWYWx1ZSkKK3sKKyAgICBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
OjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAobW9kdWxlTmFtZVZhbHVlLmlz
U3ltYm9sKCkpCisgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBtb2R1bGVO
YW1lVmFsdWUpOworCisgICAgLy8gRklYTUU6IFdlIG5vdyBhc3N1bWUgdGhhdCBtb2R1bGUgbmFt
ZSBpcyBlaXRoZXIgc3ltYm9sIG9yIHN0cmluZy4KKyAgICAvLyBXaGVuIGV4cG9zaW5nIHRoZSBy
ZWZsZWN0aW9uIHRvIHRoZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBuZWVkIHRvIHJl
Y2FzdCB0aGlzIHBhcnQuCisgICAgQVNTRVJUKG1vZHVsZU5hbWVWYWx1ZS5pc1N0cmluZygpKTsK
KyAgICBTdHJpbmcgbW9kdWxlTmFtZSA9IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJpbmcqPihtb2R1
bGVOYW1lVmFsdWUpLT52YWx1ZShleGVjKTsKKworICAgIC8vIE5vdywgd2UgY29uc2lkZXIgdGhl
IGdpdmVuIG1vZHVsZU5hbWUgYXMgdGhlIHNhbWUgdG8gdGhlIHNyYz0iLi4uIiBpbiB0aGUgc2Ny
aXB0IHRhZy4KKyAgICAvLyBXZSB1c2UgdGhlIGNvbXBsZXRlZCBVUkwgYXMgdGhlIG1vZHVsZSBr
ZXkuCisgICAgLy8KKyAgICAvLyBGSVhNRTogV2UgbmVlZCBzaXRlIHBhY2thZ2luZyBzeXN0ZW0u
IEJ1dCBpdCdzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjIHlldC4KKyAgICAvLyBodHRwczovL3do
YXR3Zy5naXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWxvYWRlci1wcm90b3R5cGUtJTQwJTQwcmVz
b2x2ZQorICAgIFVSTCBjb21wbGV0ZWRVUkw7CisKKyAgICAvLyBGSVhNRTogQ2hlY2sgbV9kb2N1
bWVudCBsaWZldGltZS4KKyAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAg
ICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUpOworICAg
IGVsc2UgeworICAgICAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAg
ICAgICAgY29tcGxldGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVOYW1lKTsK
KyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQocmVmZXJyZXJWYWx1ZS5pc1N0cmlu
ZygpKTsKKyAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IEpTQzo6anNDYXN0PEpTQzo6SlNT
dHJpbmcqPihyZWZlcnJlclZhbHVlKS0+dmFsdWUoZXhlYyk7CisgICAgICAgICAgICBjb21wbGV0
ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUsIFVSTChQYXJzZWRVUkxT
dHJpbmcsIHJlZmVycmVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFjb21wbGV0ZWRV
UkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBjcmVh
dGVET01FeGNlcHRpb24oZXhlYywgU1lOVEFYX0VSUikpOworCisgICAgcmV0dXJuIGRlZmVycmVk
LT5yZXNvbHZlKGV4ZWMsIGpzU3RyaW5nKGV4ZWMsIGNvbXBsZXRlZFVSTC5zdHJpbmcoKSkpOwor
fQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNW
YWx1ZSBtb2R1bGVLZXlWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogV2hlbiBpbXBsZW1lbnRpbmcg
cmVmbGVjdGl2ZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBzaG91bGQgcmVjYXN0IHRo
aXMgaW1wbGVtZW50YXRpb24uCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBk
ZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGds
b2JhbE9iamVjdCk7CisKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtb2R1bGVLZXlWYWx1ZS5p
c1N5bWJvbCgpLCAiU3ltYm9saWMgbW9kdWxlIGtleSBzaG91bGQgYmUgYWxyZWFkeSBmdWxmaWxs
ZWQgd2l0aCB0aGUgaW5saW5lZCByZXNvdXJjZS4iKTsKKyAgICBBU1NFUlQobW9kdWxlS2V5VmFs
dWUuaXNTdHJpbmcoKSk7CisKKyAgICBKU0M6OklkZW50aWZpZXIgbW9kdWxlS2V5ID0gSlNDOjpJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFs
dWUoZXhlYykpOworCisgICAgVVJMIGNvbXBsZXRlZFVSTChQYXJzZWRVUkxTdHJpbmcsIG1vZHVs
ZUtleS5pbXBsKCkpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoY29tcGxldGVkVVJMLmlzVmFs
aWQoKSwgIlRoZSByZXNvbHZlIGhvb2sgc2hvdWxkIHByb2R1Y2UgdGhlIHZhbGlkIFVSTCBhcyBh
IHN0cmluZy4iKTsKKworICAgIFJlZjxNb2R1bGVGZXRjaGVyPiBmZXRjaGVyID0gTW9kdWxlRmV0
Y2hlcjo6Y3JlYXRlKEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0
KSwgY29tcGxldGVkVVJMLCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7CisgICAgbV9mZXRjaGluZ1Nl
dC5hZGQoJmZldGNoZXIuZ2V0KCkpOworICAgIGlmICghZmV0Y2hlci0+cnVuKCkpIHsKKyAgICAg
ICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgICAgIHJl
dHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0o
KSwgKihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1i
b2woKS51aWQoKSkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsK
K30KKworSlNDOjpKU1ZhbHVlIE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogQ3VycmVu
dGx5LCB3ZSBvbmx5IHN1cHBvcnQgSlNNb2R1bGVSZWNvcmQuCisgICAgSlNDOjpKU01vZHVsZVJl
Y29yZCogbW9kdWxlUmVjb3JkID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNNb2R1bGVSZWNv
cmQqPihtb2R1bGVSZWNvcmRWYWx1ZSk7CisgICAgaWYgKCFtb2R1bGVSZWNvcmQpCisgICAgICAg
IHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CisKKyAgICBVUkwgc291cmNlVVJMOworICAgIGlm
IChtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBzb3VyY2VVUkwgPSBtX2RvY3Vt
ZW50LnVybCgpOworICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNT
dHJpbmcoKSk7CisgICAgICAgIHNvdXJjZVVSTCA9IFVSTChQYXJzZWRVUkxTdHJpbmcsIGFzU3Ry
aW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykpOworICAgIH0KKworICAgIGlmIChGcmFt
ZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCisgICAgICAgIHJldHVybiBmcmFtZS0+c2Ny
aXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQpOworICAgIHJldHVy
biBKU0M6OmpzVW5kZWZpbmVkKCk7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5p
c2hlZChNb2R1bGVGZXRjaGVyKiBmZXRjaGVyKQoreworICAgIG1fZmV0Y2hpbmdTZXQucmVtb3Zl
KGZldGNoZXIpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Nb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM0OTM2OTY4MTY1ZWVkODU4MTAxNzgxY2QxODU0NzBjOGViNWUwZDAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2Fk
ZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVMb2FkZXJf
aAorI2RlZmluZSBNb2R1bGVMb2FkZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1
ZGUgIk1vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorI2luY2x1ZGUg
IlRpbWVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50
OworCitjbGFzcyBNb2R1bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVs
ZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0
IE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpTQzo6SlNJbnRl
cm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlcik7CisgICAg
SlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNDOjpKU1ZhbHVlIGV2
YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCisgICAgdm9pZCBub3Rp
ZnlGaW5pc2hlZChNb2R1bGVGZXRjaGVyKik7Citwcml2YXRlOgorICAgIERvY3VtZW50JiBtX2Rv
Y3VtZW50OworICAgIEhhc2hTZXQ8UmVmUHRyPE1vZHVsZUZldGNoZXI+PiBtX2ZldGNoaW5nU2V0
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9kdWxlTG9hZGVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAK
aW5kZXggNGIzYjA5NzJiZTc3ZjNjNzY1OTVmMTQwZTI2YTc0OGZmOGVhNDUwYy4uOTliN2Y4YjYy
YTRiN2ZlYWVmM2ZjNWI0YTdjZWQ3MThhNTNlZDNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM2LDExICszNiwxMyBAQAogI2lu
Y2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgog
I2luY2x1ZGUgIk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBo
LmgiCiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRl
ICJQbHVnaW5WaWV3QmFzZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2Vy
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTU0LDcgKzU2LDExIEBACiAjaW5jbHVkZSA8
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUu
aD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxy
dW50aW1lL0pTRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9k
dWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlv
bi5oPgogCkBAIC04Niw2ICs5Miw3IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xs
ZXIoRnJhbWUmIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fc291cmNlVVJM
KDApCiAgICAgLCBtX3BhdXNlZChmYWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJl
cG9ydGVkRXJyb3JTeW1ib2woKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAg
ICwgbV93aW5kb3dTY3JpcHROUE9iamVjdCgwKQogI2VuZGlmCkBAIC0xNzUsMTEgKzE4MiwxMjgg
QEAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldv
cmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUKICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOwogfQogCi1EZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlKSAKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2
YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAgICAgcmV0dXJu
IGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiB9
CiAKK3N0YXRpYyB2b2lkIGhhbmRsZU1vZHVsZUxvYWRlckVycm9yKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBlcnJvciwgY29uc3QgUHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFscmVhZHlSZXBv
cnRlZEVycm9yU3ltYm9sKQoreworICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3IgaXMgbWFya2Vk
IGFzIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAgIC8vIERvbid0
IHJlcG9ydCBpdCBoZXJlIGFnYWluLgorICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9IGpzRHluYW1p
Y0Nhc3Q8U3ltYm9sKj4oZXJyb3IpKSB7CisgICAgICAgIGlmIChzeW1ib2wtPnByaXZhdGVOYW1l
KCkgPT0gbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgaGF2ZSBub3Qgc3Vw
cG9ydGVkIHRoZSAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSBpbiB0aGUgbW9kdWxlIHRhZywKKyAg
ICAvLyB3ZSBwYXNzIHRoZSBudWxscHRyIHRvIHJlcG9ydEV4Y2VwdGlvbidzIENhY2hlZFNjcmlw
dCogcGFyYW1ldGVyLiBXaGVuIHBhc3NpbmcgbnVsbHB0cgorICAgIC8vIHRvIHJlcG9ydEV4Y2Vw
dGlvbiwgV2ViQ29yZSBkb2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVycm9yIGlmIHRo
ZSBVUkwgb2YgdGhlCisgICAgLy8gc291cmNlIGRvZXMgbm90IHBhc3MgdGhlIHNhbWUgb3JpZ2lu
IHBvbGljeS4gU28gdGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgY29uc2VydmF0aXZlOworICAgIC8v
IG9ubHkgdGhlIG1vZHVsZSBjb2RlIHRoYXQgVVJMIGlzIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4g
Y2FuIHJlcG9ydCB0aGUgZGV0YWlscyBvZiB0aGUKKyAgICAvLyBlcnJvci4gT25jZSB0aGUgc3Bl
YyBkZXNjcmliZXMgdGhlIGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICByZXBvcnRF
eGNlcHRpb24oZXhlYywgZXJyb3IsIG51bGxwdHIpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xs
ZXI6OmxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU3Ry
aW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hv
bGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3
aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygp
LT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0TW9kdWxlR3JhcGgobW9kdWxlR3JhcGgsIEpTTWFp
blRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKSwgd29ybGQpOwor
fQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmIG1vZHVs
ZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgbG9hZE1vZHVsZUluV29y
bGQobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30K
Kwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYg
bW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisK
KyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBF
eGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIGlu
aXRNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9k
dWxlKGV4ZWMsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCkpLCB3b3JsZCk7Cit9CisKK3ZvaWQg
U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgbG9hZE1vZHVsZUluV29y
bGQobW9kdWxlR3JhcGgsIHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30K
Kwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKE1v
ZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBK
U0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNo
ZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53
aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2Ug
PSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBJZGVu
dGlmaWVyOjpmcm9tVWlkKCZleGVjLT52bSgpLCBtb2R1bGVHcmFwaC5tb2R1bGVLZXkoKSkpOwor
CisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtFbGVtZW50UHRy
KCkpOworICAgIEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlv
bjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFt3ZWFr
UHRyXShFeGVjU3RhdGUqKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9
IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVs
ZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIFBy
aXZhdGVOYW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sID0gbV9tb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICBKU0Z1bmN0aW9uKiByZWpl
Y3RIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxs
LT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJv
clN5bWJvbCwgd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIGlmIChSZWZQdHI8
RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFs
dWF0ZWQoKTsKKyAgICAgICAgaGFuZGxlTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywgZXhlYy0+YXJn
dW1lbnQoMCksIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKTsKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAg
IHByb21pc2UtPnRoZW4oZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRsZXIpOworfQor
Cit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShNb2R1bGVHcmFw
aCYgbW9kdWxlR3JhcGgpCit7CisgICAgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChtb2R1
bGVHcmFwaCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCitEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJj
ZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIGNvbnN0IFNv
dXJjZUNvZGUmIGpzU291cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29kZSgpOworCisg
ICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhl
Y1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisgICAgY29uc3Qg
U3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0g
JnNvdXJjZVVSTC5zdHJpbmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsK
KworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwsIGpz
U291cmNlQ29kZS5maXJzdExpbmUoKSk7CisKKyAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gbW9k
dWxlUmVjb3JkLT5ldmFsdWF0ZShleGVjKTsKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1
YXRpb25FeGNlcHRpb247CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICBl
dmFsdWF0aW9uRXhjZXB0aW9uID0gZXhlYy0+dm0oKS5leGNlcHRpb24oKTsKKworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llLCBtX2ZyYW1lKTsK
KworICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKSB7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlv
bihleGVjLCBldmFsdWF0aW9uRXhjZXB0aW9uLCBudWxscHRyKTsKKyAgICAgICAgbV9zb3VyY2VV
UkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlKCk7CisgICAgfQorCisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICBy
ZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOwor
fQorCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1v
ZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCkK
K3sKKyAgICByZXR1cm4gZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQsIG1h
aW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwogUmVmPERPTVdyYXBwZXJXb3JsZD4gU2NyaXB0
Q29udHJvbGxlcjo6Y3JlYXRlV29ybGQoKQogewogICAgIHJldHVybiBET01XcmFwcGVyV29ybGQ6
OmNyZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0yNzIsNiArMzk2LDQxIEBAIEpT
RE9NV2luZG93U2hlbGwqIFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCkKICAgICByZXR1cm4gd2luZG93U2hlbGw7CiB9CiAKK3N0YXRpYyBJZGVudGlm
aWVyIGpzVmFsdWVUb01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7
CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpm
cm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VS
VCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhl
eGVjLCBqc0Nhc3Q8SlNTdHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30KKwordm9pZCBT
Y3JpcHRDb250cm9sbGVyOjppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBo
LCBKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sK
KyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBF
eGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdl
YWtQdHI8RWxlbWVudD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0cigpKTsKKyAg
ICBKU0Z1bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0
ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhl
Y1N0YXRlKiBleGVjKSB7CisgICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQgZWxlbWVudCBh
bmQgZG9jdW1lbnQgbWF5IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUgbW9kdWxlLgor
ICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBtb2R1bGUgYm9k
eS4KKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkg
eworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXko
ZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5TG9hZGVkKG1vZHVs
ZUtleS5pbXBsKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBtb2R1bGVMb2FkZXJB
bHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVk
RXJyb3JTeW1ib2w7CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9IEpTTmF0aXZlU3Rk
RnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygp
LCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQdHJdKEV4ZWNT
dGF0ZSogZXhlYykgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFr
UHRyLmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50
LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXJyb3JlZCgpOworICAgICAgICBoYW5kbGVN
b2R1bGVMb2FkZXJFcnJvcihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgbW9kdWxlTG9hZGVyQWxy
ZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhlbihleGVjLCBmdWxm
aWxsSGFuZGxlciwgcmVqZWN0SGFuZGxlcik7Cit9CisKIFRleHRQb3NpdGlvbiBTY3JpcHRDb250
cm9sbGVyOjpldmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IElm
IHdlIGFyZSBub3QgY3VycmVudGx5IHBhcnNpbmcsIHdlIHNob3VsZCB1c2Ugb3VyIGN1cnJlbnQg
bG9jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
aAppbmRleCAwN2M1M2I3YzhlZGZiNGUyOGY1Y2ExM2FhMmM0ZTA1NTk0ZWY1MTIyLi45MDFiNTNl
YmFmNTRjNDc4ZjdkNDFlZjFkYzUxNTBjMWIwODVhOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCw5IEBAIGNsYXNzIFNj
cmlwdFZhbHVlOwogCiBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsK
KyAgICBjbGFzcyBKU01vZHVsZVJlY29yZDsKKyAgICBjbGFzcyBKU0ludGVybmFsUHJvbWlzZTsK
KwogICAgIGNsYXNzIEV4ZWNTdGF0ZTsKIAogICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CkBAIC01
Nyw2ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRN
TERvY3VtZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CitjbGFzcyBNb2R1bGVHcmFwaDsK
IGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdp
ZGdldDsKQEAgLTExNSw2ICsxMTksMTcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAgICAg
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYp
OwogICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CiAKKyAgICB2b2lkIGxvYWRNb2R1bGVJ
bldvcmxkKE1vZHVsZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVy
V29ybGQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcm
IG1vZHVsZU5hbWUpOworICAgIHZvaWQgbG9hZE1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmLCBj
b25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBsb2Fk
TW9kdWxlKE1vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworCisgICAgdm9p
ZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiAsIERPTVdyYXBwZXJX
b3JsZCYpOworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKE1vZHVsZUdyYXBoJik7CisK
KyAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBK
U0M6OkpTTW9kdWxlUmVjb3JkKiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiwgSlNDOjpKU01vZHVsZVJlY29y
ZCopOworCiAgICAgV1RGOjpUZXh0UG9zaXRpb24gZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25z
dDsKIAogICAgIHZvaWQgZW5hYmxlRXZhbCgpOwpAQCAtMTM1LDYgKzE1MCw4IEBAIGNsYXNzIFNj
cmlwdENvbnRyb2xsZXIgewogCiAgICAgY29uc3QgU3RyaW5nKiBzb3VyY2VVUkwoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZVVSTDsgfSAvLyAwIGlmIHdlIGFyZSBub3QgZXZhbHVhdGluZyBhbnkg
c2NyaXB0CiAKKyAgICBjb25zdCBKU0M6OlByaXZhdGVOYW1lJiBtb2R1bGVMb2FkZXJBbHJlYWR5
UmVwb3J0ZWRFcnJvclN5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2w7IH0KKwogICAgIHZvaWQgY2xlYXJXaW5kb3dTaGVsbChET01X
aW5kb3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOwogICAgIHZvaWQg
dXBkYXRlRG9jdW1lbnQoKTsKIApAQCAtMTcwLDYgKzE4Nyw3IEBAIGNsYXNzIFNjcmlwdENvbnRy
b2xsZXIgewogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93U2hlbGwq
IGluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBpbml0TW9kdWxlR3JhcGgo
TW9kdWxlR3JhcGgmLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiwgRE9NV3JhcHBlcldvcmxkJik7
CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKIApAQCAtMTc4
LDYgKzE5Niw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIGNvbnN0IFN0cmluZyog
bV9zb3VyY2VVUkw7CiAKICAgICBib29sIG1fcGF1c2VkOworICAgIEpTQzo6UHJpdmF0ZU5hbWUg
bV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKIAogICAgIC8vIFRoZSBy
b290IG9iamVjdCB1c2VkIGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhlIGNvbnRleHQgb2Yg
YSBwbHVnaW4sIHN1Y2gKICAgICAvLyBhcyBOUEFQSSBwbHVnaW5zLiBUaGUgcGx1Z2lucyB1c2lu
ZyB0aGVzZSBvYmplY3RzIHByZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVkIHNvIHRoZXkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IGQ5MWI2M2E2MjRiNGUwMjZiYjI4ZTZl
NGUzNTY2NzExMTdkM2M1OGUuLjc2OTgyZTBhNmZiNTMxMTcyOGVlNmRjY2NiMTQxNGNjYjM0NmE5
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtOTgsNiArOTgsNyBAQAogI2lu
Y2x1ZGUgIk1lc3NhZ2VQb3J0LmNwcCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5uZWwuY3Bw
IgogI2luY2x1ZGUgIk1pY3JvVGFzay5jcHAiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguY3BwIgog
I2luY2x1ZGUgIk1vdXNlRXZlbnQuY3BwIgogI2luY2x1ZGUgIk1vdXNlUmVsYXRlZEV2ZW50LmNw
cCIKICNpbmNsdWRlICJNdXRhdGlvbkV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDdiMTFlMzlhMWEzZDBiNGEwMzdkZTgzNWZiOTIxZjgxY2MwMjI3ZDEuLmFiNjU1Yjc5ZGI0
ZDdlYTM3ODA3MDUzODg5YjI3ZmZmNjYyOTA2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTA0LDYgKzEwNCw3IEBACiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUg
Ik1lZGlhUXVlcnlMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKyNpbmNs
dWRlICJNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzLmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmVzdGluZ0xldmVs
SW5jcmVtZW50ZXIuaCIKQEAgLTQ2NCw2ICs0NjUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNp
ZwogICAgICwgbV9zdGFydFRpbWUoc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpCiAg
ICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkKGZhbHNlKQogICAgICwgbV9zY3JpcHRS
dW5uZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9k
dWxlTG9hZGVyKHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlTG9hZGVyPigqdGhpcykpCiAgICAgLCBt
X3htbFZlcnNpb24oQVNDSUlMaXRlcmFsKCIxLjAiKSkKICAgICAsIG1feG1sU3RhbmRhbG9uZShT
dGFuZGFsb25lVW5zcGVjaWZpZWQpCiAgICAgLCBtX2hhc1hNTERlY2xhcmF0aW9uKGZhbHNlKQpA
QCAtNjA1LDYgKzYwNyw3IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAgICAgICBtX2RvbVdp
bmRvdy0+cmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JQYWdlQ2FjaGUoKTsKIAogICAgIG1fc2NyaXB0
UnVubmVyID0gbnVsbHB0cjsKKyAgICBtX21vZHVsZUxvYWRlciA9IG51bGxwdHI7CiAKICAgICBy
ZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGY5MTgw
ODlmMjNiMmZiM2ExOGRmYmQyMWY1ZjcwMzk4MDUwNzViYTcuLjlhNzhiMjM1YTY1OGI2MWM4OGMx
YzY3ZjY3Y2JlZGU0NDFiOWE1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMzAsNiArMTMw
LDcgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJn
ZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVy
OworY2xhc3MgTW9kdWxlTG9hZGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
czsKIGNsYXNzIE5hbWVkRmxvd0NvbGxlY3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpAQCAtOTM0
LDYgKzkzNSw3IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1Ymxp
YyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgRG9jdW1lbnQmIHRvcERv
Y3VtZW50KCkgY29uc3Q7CiAgICAgCiAgICAgU2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7
IHJldHVybiBtX3NjcmlwdFJ1bm5lci5nZXQoKTsgfQorICAgIE1vZHVsZUxvYWRlciogbW9kdWxl
TG9hZGVyKCkgeyByZXR1cm4gbV9tb2R1bGVMb2FkZXIuZ2V0KCk7IH0KIAogICAgIEhUTUxTY3Jp
cHRFbGVtZW50KiBjdXJyZW50U2NyaXB0KCkgY29uc3QgeyByZXR1cm4gIW1fY3VycmVudFNjcmlw
dFN0YWNrLmlzRW1wdHkoKSA/IG1fY3VycmVudFNjcmlwdFN0YWNrLmxhc3QoKS5nZXQoKSA6IDA7
IH0KICAgICB2b2lkIHB1c2hDdXJyZW50U2NyaXB0KFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1l
bnQ+KTsKQEAgLTE1MTgsNiArMTUyMCw3IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRh
aW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAg
Ym9vbCBtX292ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkOwogICAgIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxN
b2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxIVE1MU2Ny
aXB0RWxlbWVudD4+IG1fY3VycmVudFNjcmlwdFN0YWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW9kdWxlR3JhcGguY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdy
YXBoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NDE3YTJjZDRlOGIxZTQ2YjA1MDIxM2IzMDU5NjEzYzc3MjZh
ZTg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNw
cApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk1vZHVsZUdyYXBoLmgiCisKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIu
aCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNv
ZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVHcmFwaDo6TW9kdWxlR3JhcGgo
RWxlbWVudCYgZWxlbWVudCkKKyAgICA6IG1fZWxlbWVudChlbGVtZW50KQorICAgICwgbV93ZWFr
UHRyRmFjdG9yeSgmZWxlbWVudCkKK3sKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5TG9h
ZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkpCit7CisgICAgbV9tb2R1bGVLZXkgPSBt
b2R1bGVLZXk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlm
eU1vZHVsZUdyYXBoUmVhZHkodG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7
Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQoKQoreworICAgIG1fZXJyb3Jl
ZCA9IHRydWU7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlm
eU1vZHVsZUdyYXBoUmVhZHkodG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7
Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6OmV2YWx1YXRlKCkKK3sKKyAgICBpZiAobV9lcnJvcmVk
KQorICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRj
aEVycm9yRXZlbnQoKTsKKyAgICBlbHNlIGlmIChGcmFtZSogZnJhbWUgPSBtX2VsZW1lbnQuZG9j
dW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+c2NyaXB0KCkubGlua0FuZEV2YWx1YXRl
TW9kdWxlKCp0aGlzKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXZhbHVhdGVkKCkK
K3sKKyAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaExv
YWRFdmVudCgpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpsb2FkKGNvbnN0IFN0cmluZyYgbW9k
dWxlTmFtZSkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7Cisg
ICAgbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhp
cywgbW9kdWxlTmFtZSk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6OmxvYWQoY29uc3QgU2NyaXB0
U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50
KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCku
bG9hZE1vZHVsZSgqdGhpcywgc291cmNlQ29kZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdy
YXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzE2ZTg5N2NiYzAyODFlNWVmMTU4MTgwZGNhZTliZjYyYjY2YTBl
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oCkBA
IC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUdyYXBoX2gKKyNkZWZp
bmUgTW9kdWxlR3JhcGhfaAorCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUg
PHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEVsZW1lbnQ7CitjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOworCisvLyBLZWVwIGxpZmV0aW1l
IG9mIGEgTW9kdWxlR3JhcGggdGhlIHNhbWUgdG8gYSBTY3JpcHRFbGVtZW50LgorY2xhc3MgTW9k
dWxlR3JhcGggeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUdyYXBoKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTW9kdWxlR3JhcGgoRWxl
bWVudCYpOworCisgICAgRWxlbWVudCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsgfQor
ICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkoKSB7IHJldHVybiBtX21vZHVsZUtleS5n
ZXQoKTsgfQorCisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisgICAg
dm9pZCBsb2FkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKyAgICB2b2lkIGV2YWx1YXRlKCk7
CisKKyAgICBXZWFrUHRyPEVsZW1lbnQ+IHdlYWtFbGVtZW50UHRyKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICB9CisKKyAgICB2
b2lkIG5vdGlmeUxvYWRlZChVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KTsKKyAgICB2b2lk
IG5vdGlmeUVycm9yZWQoKTsKKworICAgIHZvaWQgbm90aWZ5RXZhbHVhdGVkKCk7CisKKyAgICBi
b29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yZWQ7IH0KKyAgICBib29s
IGlzTG9hZGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXk7IH0KKworcHJpdmF0ZToKKwor
ICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKKyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1f
bW9kdWxlS2V5OworICAgIFdlYWtQdHJGYWN0b3J5PEVsZW1lbnQ+IG1fd2Vha1B0ckZhY3Rvcnk7
CisgICAgYm9vbCBtX2Vycm9yZWQgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcAppbmRleCA2NmJiZWNlMWQzNWUxYTQ3NjNiZjllYmViZjBmMGMxMmNkYmVmMWQ3Li4y
ZWM2YmRlOWRiMmY3ZDcyNjUwMDM1YTliMTJkYmM2ODViNjczNjJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNl
cklkaW9tcy5oIgogI2luY2x1ZGUgIklnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVu
dGVyLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vZHVsZUdy
YXBoLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVk
ZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgpAQCAtMTYxLDYgKzE2MiwxMCBAQCBib29sIFNjcmlwdEVs
ZW1lbnQ6OmlzU2NyaXB0VHlwZVN1cHBvcnRlZChMZWdhY3lUeXBlU3VwcG9ydCBzdXBwb3J0TGVn
YWN5VHlwZXMpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IGVsc2UgaWYgKE1JTUVU
eXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKHR5cGUuc3RyaXBXaGl0
ZVNwYWNlKCkubG93ZXIoKSkgfHwgKHN1cHBvcnRMZWdhY3lUeXBlcyA9PSBBbGxvd0xlZ2FjeVR5
cGVJblR5cGVBdHRyaWJ1dGUgJiYgaXNMZWdhY3lTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2Uo
dHlwZSkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoRVM2X01PRFVMRVMpCisg
ICAgZWxzZSBpZiAodHlwZSA9PSAibW9kdWxlIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5k
aWYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTIxNyw2ICsyMjIsOSBAQCBib29sIFNjcmlw
dEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBv
c2l0aW9uLCBMZWdhYwogICAgIGVsc2UKICAgICAgICAgbV9jaGFyYWN0ZXJFbmNvZGluZyA9IGRv
Y3VtZW50LmNoYXJzZXQoKTsKIAorICAgIGlmIChpc01vZHVsZVR5cGUoKSkKKyAgICAgICAgcmV0
dXJuIGxvYWRNb2R1bGUoc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKICAgICBpZiAoaGFzU291cmNl
QXR0cmlidXRlKCkpCiAgICAgICAgIGlmICghcmVxdWVzdFNjcmlwdChzb3VyY2VBdHRyaWJ1dGVW
YWx1ZSgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMxNyw2ICszMjUsOSBAQCB2
b2lkIFNjcmlwdEVsZW1lbnQ6OnN0b3BMb2FkUmVxdWVzdCgpCiAgICAgICAgICAgICBtX2NhY2hl
ZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IDA7
CiAgICAgfQorICAgIC8vIEZJWE1FOiBUaGUgbW9kdWxlIGxvYWRlciBzaG91bGQgaGF2ZSB0aGUg
bWVjaGFuaXNtIHRvIHN0b3AgbG9hZGluZy4KKyAgICAvLyBUaGUgY3VycmVudCBsb2FkZXIgc3Bl
YyBkb2VzIG5vdCBoYXZlIHRoaXMuIE9uY2UgaXQgaXMgc3BlY2lmaWVkCisgICAgLy8gd2Ugd2ls
bCBpbnRyb2R1Y2UgdGhpcyBmZWF0dXJlLgogfQogCiB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1
dGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCkBAIC0zMzIsNiArMzQzLDU3IEBAIHZvaWQg
U2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKICAgICBj
YWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKIH0KIAorYm9vbCBTY3JpcHRFbGVtZW50
Ojpsb2FkTW9kdWxlKGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3sK
KyAgICAvLyBUaGUgYnJvd3NlciBtb2R1bGUgbG9hZGVyIGxvYWRzIHRoZSBtb2R1bGUgc291cmNl
cy4KKyAgICAvLyBTaW5jZSB0aGUgbW9kdWxlIGludm9sdmVzIGxvYWRpbmcgb2YgdGhlIGRlcGVu
ZGVudCBtb2R1bGVzIGFuZCB0aGUgZGVwZW5kZW50IG1vZHVsZXMgZG9lcyBub3QgaGF2ZSBjb3Jy
ZXNwb25kaW5nIHNjcmlwdCBlbGVtZW50cywKKyAgICAvLyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBs
b2FkaW5nIG1vZHVsZXMgaXMgc2VwYXJhdGVkIGZyb20gdGhlIHNjcmlwdCBlbGVtZW50LgorICAg
IGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgeworICAgICAgICBTdHJpbmcgc291cmNlVXJsID0g
c291cmNlQXR0cmlidXRlVmFsdWUoKTsKKyAgICAgICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERv
Y3VtZW50KG1fZWxlbWVudC5kb2N1bWVudCgpKTsKKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuZGlz
cGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICAvLyBTY3JpcHQgZWxlbWVudCBtYXkgYmUgZGV0YWNoZWQgYW5kIGF0dGFj
aGVkIHRvIGEgZGlmZmVyZW50IGRvY3VtZW50IHdoaWxlIGV4ZWN1dGluZyB0aGUgZXZlbnQgbGlz
dGVuZXIuCisgICAgICAgIGlmICghbV9lbGVtZW50LmluRG9jdW1lbnQoKSB8fCAmbV9lbGVtZW50
LmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5wdHIoKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICBpZiAoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2Vz
KHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQo
KTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJ
WE1FOiBTaG91bGQgc3VwcG9ydCBjcm9zcy1vcmlnaW4gbW9kZSBpbiB0aGUgbW9kdWxlIHRhZy4K
KyAgICAgICAgLy8gSG93ZXZlciB3ZSBkb24ndCBoYXZlIHRoZSBwb2xpY3kgdG8gYXBwbHkgdGhp
cyBtb2RlIHRvIHRoZSByZXNvdXJjZXMgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAg
ICAvLyBQcm92aWRlZCBtdWx0aXBsZSBtb2R1bGUgdGFncywKKyAgICAgICAgLy8KKyAgICAgICAg
Ly8gICBBOiA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuLi4iIGNyb3Nzb3JpZ2luPSJhbm9u
eW1vdXMiPjwvc2NyaXB0PgorICAgICAgICAvLyAgIEI6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBz
cmM9Ii4uLiI+PC9zY3JpcHQ+CisgICAgICAgIC8vCisgICAgICAgIC8vICdBJyBoYXMgdGhlICJj
cm9zc29yaWdpbiIgYXR0cmlidXRlLiBCdXQgJ0InIGRvZXMgbm90IGhhdmUgaXQuCisgICAgICAg
IC8vIEhvd2V2ZXIsIEVTNiBtb2R1bGVzIGFsbG93ICdBJyBhbmQgJ0InIHRvIGxvYWQgdGhlIHNh
bWUgbW9kdWxlIGFuZCBpdCB3aWxsIGJlIGNhY2hlZCBpbiB0aGUKKyAgICAgICAgLy8gbW9kdWxl
IGxvYWRlci4gSW4gdGhhdCBjYXNlLCBpdCBpcyBjb250cm92ZXJzaWFsIHRoYXQgd2hpY2ggImNy
b3Nzb3JpZ2luIiBhdHRyaWJ1dGUgd2lsbCBiZQorICAgICAgICAvLyBhcHBsaWVkIHRvIHRoZSBt
b2R1bGUgbG9hZGVkIGJ5IHRoZSBib3RoLiBPbmNlIHRoZSBzcGVjIG9mIHRoZSBtb2R1bGUgbG9h
ZGVyIGlzIGZpeGVkLCB3ZQorICAgICAgICAvLyBzaG91bGQgZm9sbG93IGl0LgorCisgICAgICAg
IG1faXNFeHRlcm5hbFNjcmlwdCA9IHRydWU7CisgICAgICAgIG1fbW9kdWxlR3JhcGggPSBzdGQ6
Om1ha2VfdW5pcXVlPE1vZHVsZUdyYXBoPihtX2VsZW1lbnQpOworICAgICAgICBtX2VsZW1lbnQu
ZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbih0
aGlzLCAqbV9tb2R1bGVHcmFwaCk7CisgICAgICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoc291cmNl
QXR0cmlidXRlVmFsdWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlm
ICghbV9lbGVtZW50LmRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5s
aW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBtX3N0YXJ0TGluZU51bWJlciwg
bV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIC8vIFJlc2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgorICAg
IFRleHRQb3NpdGlvbiBwb3NpdGlvbiA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmlzSW5Eb2N1bWVu
dFdyaXRlKCkgPyBUZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CisgICAgbV9t
b2R1bGVHcmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7Cisg
ICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlTW9kdWxlR3JhcGhG
b3JFeGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgpOworICAgIG1fbW9kdWxlR3JhcGgtPmxv
YWQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRDb250ZW50KCksIG1fZWxlbWVudC5kb2N1bWVudCgp
LnVybCgpLCBwb3NpdGlvbikpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFNjcmlwdEVs
ZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBB
U1NFUlQoIW1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmgKaW5kZXggYjdlNzNkMGRlZTgzZDMyNGU4NzJmN2JjNGMxYjkzM2RjOTZjMTEyYS4uNmU1YzIx
NDI5NGQ4MTk2OGM4NmUwZDA3YTY5NzA3NDM5NGExYzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENh
Y2hlZFNjcmlwdDsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBFbGVtZW50OworY2xhc3Mg
TW9kdWxlR3JhcGg7CiBjbGFzcyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29k
ZTsKIApAQCAtNTksNiArNjAsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNo
ZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCByZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQ7IH0KICAgICBib29sIHdpbGxF
eGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkgY29uc3QgeyByZXR1cm4gbV93aWxs
RXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZzsgfQogICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3Jp
cHQ7IH0KKyAgICBNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGgoKSB7IHJldHVybiBtX21vZHVsZUdy
YXBoLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKICAgICBTY3JpcHRFbGVtZW50KEVsZW1lbnQmLCBi
b29sIGNyZWF0ZWRCeVBhcnNlciwgYm9vbCBpc0V2YWx1YXRlZCk7CkBAIC04Miw2ICs4NCw4IEBA
IGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAg
ICBib29sIHJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOwogICAgIHZvaWQg
c3RvcExvYWRSZXF1ZXN0KCk7CiAKKyAgICBib29sIGxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0
aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBTdHJpbmcgc291
cmNlQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7CkBAIC05Myw2ICs5Nyw3IEBAIGNsYXNzIFNj
cmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICB2aXJ0dWFs
IGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291
cmNlQXR0cmlidXRlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUo
KSBjb25zdCA9IDA7CiAKICAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CiAgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKQEAgLTEwOSw2ICsxMTQsNyBA
QCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAg
ICAgYm9vbCBtX3JlcXVlc3RVc2VzQWNjZXNzQ29udHJvbCA6IDE7CiAgICAgU3RyaW5nIG1fY2hh
cmFjdGVyRW5jb2Rpbmc7CiAgICAgU3RyaW5nIG1fZmFsbGJhY2tDaGFyYWN0ZXJFbmNvZGluZzsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8TW9kdWxlR3JhcGg+IG1fbW9kdWxlR3JhcGg7CiB9OwogCiBT
Y3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggOTYzNjk4MDRhZDhmMDc0YmQ3MzZhZmJmYjUw
MmE0NWZjOTE1NzYwMS4uYWIxZDg4ZWFmNzU3NWQzNDQ2ZjM0MGEzMTVlZmEwMTIzNGEyZjUzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWlj
cm9UYXNrLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQZW5kaW5nU2Ny
aXB0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCkBAIC00OCw2ICs0OSwxMCBAQCBT
Y3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIoKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVu
dExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9w
ZW5kaW5nQXN5bmNTY3JpcHRzLnNpemUoKTsgKytpKQogICAgICAgICBtX2RvY3VtZW50LmRlY3Jl
bWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
bW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uLnNpemUoKTsgKytpKQorICAgICAgICBt
X2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuc2l6ZSgpOyArK2kp
CisgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogfQog
CiB2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVu
dCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNo
ZWRTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKQEAgLTcxLDYgKzc2LDE4IEBA
IHZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50
KiBzY3JpcHRFbGVtZW50LCBDYWNoZWRSCiAgICAgfQogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6
cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50
LCBNb2R1bGVHcmFwaCYpCit7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOworCisgICAgRWxl
bWVudCYgZWxlbWVudCA9IHNjcmlwdEVsZW1lbnQtPmVsZW1lbnQoKTsKKyAgICBBU1NFUlQoZWxl
bWVudC5pbkRvY3VtZW50KCkpOworCisgICAgbV9kb2N1bWVudC5pbmNyZW1lbnRMb2FkRXZlbnRE
ZWxheUNvdW50KCk7CisKKyAgICBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5hZGQoJmVs
ZW1lbnQpOworfQorCiB2b2lkIFNjcmlwdFJ1bm5lcjo6c3VzcGVuZCgpCiB7CiAgICAgbV90aW1l
ci5zdG9wKCk7CkBAIC05Nyw2ICsxMTQsMjYgQEAgdm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeVNj
cmlwdFJlYWR5KFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIEV4ZWN1dGlvblR5cGUKICAg
ICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlm
eU1vZHVsZUdyYXBoUmVhZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCkKK3sKKyAgICBB
U1NFUlRfVU5VU0VEKHNjcmlwdEVsZW1lbnQsIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRz
LmNvbnRhaW5zKCZzY3JpcHRFbGVtZW50LT5lbGVtZW50KCkpKTsKKworICAgIC8vIExpc3RIYXNo
U2V0IGNvcnJlY3RseSBwcmVzZXJ2ZXMgdGhlIGluc2VydGlvbiBvcmRlci4KKyAgICAvLyBBbmQg
aXQgYWxsb3cgdXMgdG8gcmVtb3ZlIGVsZW1lbnQgZHVyaW5nIGl0ZXJhdGlvbi4KKyAgICBhdXRv
IGl0ZXJhdG9yID0gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuYmVnaW4oKTsKKyAgICB3
aGlsZSAoaXRlcmF0b3IgIT0gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuZW5kKCkpIHsK
KyAgICAgICAgTW9kdWxlR3JhcGgqIG1vZHVsZUdyYXBoID0gdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZShpdGVyYXRvci0+Z2V0KCkpLT5tb2R1bGVHcmFwaCgpOworICAgICAgICBpZiAoIW1vZHVs
ZUdyYXBoLT5lcnJvck9jY3VycmVkKCkgJiYgIW1vZHVsZUdyYXBoLT5pc0xvYWRlZCgpKQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGF1dG8gcHJldmlvdXMgPSBpdGVyYXRvcjsKKyAgICAg
ICAgKytpdGVyYXRvcjsKKyAgICAgICAgbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNv
b24uYXBwZW5kKCpwcmV2aW91cyk7CisgICAgICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1l
bnRzLnJlbW92ZShwcmV2aW91cyk7CisgICAgfQorICAgIGlmICghbV9tb2R1bGVTY3JpcHRFbGVt
ZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKK30KKwogdm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogewogICAgIFJlZjxE
b2N1bWVudD4gcHJvdGVjdChtX2RvY3VtZW50KTsKQEAgLTEyMSw2ICsxNTgsMjEgQEAgdm9pZCBT
Y3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3Np
YmxlKGVsZW1lbnQuZ2V0KCkpLT5leGVjdXRlKGNhY2hlZFNjcmlwdCk7CiAgICAgICAgIG1fZG9j
dW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIH0KKworICAgIFZlY3Rv
cjxSZWZQdHI8RWxlbWVudD4+IG1vZHVsZVNjcmlwdEVsZW1lbnRzOworICAgIG1vZHVsZVNjcmlw
dEVsZW1lbnRzLnN3YXAobV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24pOworCisg
ICAgZm9yIChSZWZQdHI8RWxlbWVudD4mIHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50IDogbW9k
dWxlU2NyaXB0RWxlbWVudHMpIHsKKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQ7Cisg
ICAgICAgIHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50LnN3YXAoZWxlbWVudCk7CisgICAgICAg
IEFTU0VSVChlbGVtZW50KTsKKyAgICAgICAgLy8gUGFwZXIgb3ZlciBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDUwCisgICAgICAgIGlmICghZWxlbWVudCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVs
ZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ldmFsdWF0ZSgpOworICAgICAgICBtX2RvY3Vt
ZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICB9CisKICAgICBNaWNyb1Rh
c2tRdWV1ZTo6c2luZ2xldG9uKCkucnVuTWljcm9UYXNrcygpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0UnVubmVyLmgKaW5kZXggMjdjZGJmOGIzYWY1Njk0NjJlNWI5YWViMTZjZDc2NTA1MDg5MWUw
ZC4uMTIyMTQ4NWUwZTU3ZGZhNjNlNDQ0ZjQ4MjlhYWM3MDRlMWExNTlkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRSdW5uZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtMzcsNiArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNj
cmlwdDsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRWxlbWVudDsKK2NsYXNzIE1vZHVsZUdyYXBo
OwogY2xhc3MgUGVuZGluZ1NjcmlwdDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiAKQEAgLTQ4LDEx
ICs1MSwxNCBAQCBjbGFzcyBTY3JpcHRSdW5uZXIgewogCiAgICAgZW51bSBFeGVjdXRpb25UeXBl
IHsgQVNZTkNfRVhFQ1VUSU9OLCBJTl9PUkRFUl9FWEVDVVRJT04gfTsKICAgICB2b2lkIHF1ZXVl
U2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+LCBFeGVjdXRpb25UeXBlKTsKLSAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRz
KCkgY29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFt
X3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3Jp
cHRzLmlzRW1wdHkoKTsgfQorICAgIHZvaWQgcXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihT
Y3JpcHRFbGVtZW50KiwgTW9kdWxlR3JhcGgmKTsKKyAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRz
KCkgY29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFt
X3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3Jp
cHRzLmlzRW1wdHkoKSB8fCAhbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uaXNF
bXB0eSgpIHx8ICFtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5pc0VtcHR5KCk7IH0KICAg
ICB2b2lkIHN1c3BlbmQoKTsKICAgICB2b2lkIHJlc3VtZSgpOwogICAgIHZvaWQgbm90aWZ5U2Ny
aXB0UmVhZHkoU2NyaXB0RWxlbWVudCosIEV4ZWN1dGlvblR5cGUpOwogCisgICAgdm9pZCBub3Rp
ZnlNb2R1bGVHcmFwaFJlYWR5KFNjcmlwdEVsZW1lbnQqKTsKKwogcHJpdmF0ZToKICAgICB2b2lk
IHRpbWVyRmlyZWQoKTsKIApAQCAtNjAsNiArNjYsOCBAQCBjbGFzcyBTY3JpcHRSdW5uZXIgewog
ICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyOwogICAg
IFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOyAvLyBodHRwOi8v
d3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNzZXQtb2Ytc2NyaXB0
cy10aGF0LXdpbGwtZXhlY3V0ZS1hcy1zb29uLWFzLXBvc3NpYmxlCiAgICAgSGFzaE1hcDxTY3Jp
cHRFbGVtZW50KiwgUGVuZGluZ1NjcmlwdD4gbV9wZW5kaW5nQXN5bmNTY3JpcHRzOworICAgIFZl
Y3RvcjxSZWZQdHI8RWxlbWVudD4+IG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29u
OworICAgIExpc3RIYXNoU2V0PFJlZlB0cjxFbGVtZW50Pj4gbV9wZW5kaW5nTW9kdWxlU2NyaXB0
RWxlbWVudHM7CiAgICAgVGltZXIgbV90aW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZTEzYTVjZGRjY2EyY2IzYjc1NmE4ZDNhNTdlMjNm
ODBhOWI0M2U0OC4uZDE1ZWI3MWJlM2Y2YmNmYjEwNzgyZjk3NDg3NWI0MDBiYzBkNzE2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE2MSw2ICsxNjEs
MTUgQEAgYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QK
ICAgICByZXR1cm4gZmFzdEhhc0F0dHJpYnV0ZShzcmNBdHRyKTsKIH0KIAorYm9vbCBIVE1MU2Ny
aXB0RWxlbWVudDo6aXNNb2R1bGVUeXBlKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoRVM2X01PRFVM
RVMpCisgICAgcmV0dXJuIGZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpLnN0cmluZygpID09ICJt
b2R1bGUiOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogdm9pZCBIVE1M
U2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogewogICAgIEFTU0VSVCghaGF2ZUZp
cmVkTG9hZEV2ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmlu
ZGV4IDMxMmM2NjI2ZThiODMxNGU4NWUyZGY2ODdkYmYwOWYyYjJmZTM3YjIuLjFkZmQ4YzhiNzNl
ODcyYWJjZDVlYjRiMzQyZTc5MmQzMzUwM2U3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKICAgICB2
aXJ0dWFsIGJvb2wgYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5jcHAKaW5kZXggOGFkZmNmYTQxMGFiZTQ3ZTMzMjRhZTViOGQ5MjQzZjU2NjY0
NWQ5NS4uYmE1ZjA2ZjQ0YjZiMTE3ZmNiYjYyMzM1MzhlMmUxNGNkN2Y4ZTY5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtMTUxLDYgKzE1MSwxMSBAQCBib29s
IFNWR1NjcmlwdEVsZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAorYm9vbCBTVkdTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25z
dAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNT
b3VyY2VBdHRyaWJ1dGUoKSBjb25zdAogewogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtO
YW1lczo6aHJlZkF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXgg
NTM1ZTQyZTZmMDY0NmQ4MDEwNDE5MDkzYzYyMjkyNGIzODNkNzEwMS4uOGFmZGUzMTEyNWU1ZGQ0
OThkYjgyYTRlMDk4M2FiMDc0ZTBkY2M2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgU1ZHRWxlbWVudAogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGUgeyBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsgfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMWU0YmRiYzY1YmZiMDE4OTc0YzdkNTczNjRiOGJiOGU4M2QzZTNjZS4uMjJmZGMw
ZDZmNzhhOWM2YmMwNzRlOGVmYWRlODgwMjlmZDg1NzE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBA
CisyMDE1LTA5LTI0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisg
ICAgICAgIFtFUzZdIEludGVncmF0ZSBFUzYgTW9kdWxlcyBpbnRvIFdlYkNvcmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODg5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBt
b2R1bGVzLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBqcy9kb20v
bW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUt
cHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxk
LWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
bW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJy
b3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1keW5h
bWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1pbmxpbmUt
ZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1w
bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1z
aW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdp
dGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2Fk
LWV2ZW50LXdpdGgtc3JjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9h
ZC1ldmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1t
b2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZl
cmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1m
cm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBv
cnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQt
ZXJyb3ItZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtZHlu
YW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtc3JjLWR5
bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1i
ZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUt
c2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qczogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanM6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC1jYXBwdWNjaW5vLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEu
anM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtaW5saW5lLWR5bmFtaWMuanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQu
Q29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToK
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hLnByb3RvdHlwZS50YXN0ZSk6Cisg
ICAgICAgIChleHBvcnQuZGVmYXVsdC5Db2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5qczogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanM6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpz
OiBBZGRlZC4KKyAgICAgICAgKENvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChDb2Nv
YSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanM6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUt
Y29jb2EuanM6IEFkZGVkLgorICAgICAgICAoQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAg
ICAgKENvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2lt
cGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxs
LWZpcmUtYmVmb3JlbG9hZC5qczogQWRkZWQuCisKIDIwMTUtMDktMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsIG91dCByMTkwMDg1
IGFzIGl0IHNlZW1zIHRvIGNhdXNlIGNyYXNoZXMgaW4gSlNDCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA0MzZlNmMzNWM3OWM2YTRhYTY3MTg1OTI3ODU1NTM5YjdjNWNlODA4Li40NWYwNzdmY2YzYThh
ZGRhY2E3YzEwZTUxYjNkYjRmYmI2ZDI1MGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY3OCwz
ICs2NzgsMjEgQEAgd2Via2l0Lm9yZy9iLzE0ODY5NSBmYXN0L3NoYWRvdy1kb20gWyBGYWlsdXJl
IEltYWdlT25seUZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3ht
bGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3
ZWJraXQub3JnL2IvMTQ5MjE4IGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudHMuaHRtbCBb
IFBhc3MgQ3Jhc2ggVGltZW91dCBdCisKKyMgRVM2IE1vZHVsZXMgYXJlIG5vdCB5ZXQgZW5hYmxl
ZCBieSBkZWZhdWx0OiBFTkFCTEUoRVM2X01PRFVMRVMpCitqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1v
bmVycm9yLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3Vs
ZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1l
eGVjdXRpb24tb3JkZXItaW5saW5lLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLW1peGVkLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFt
aWMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwgWyBTa2lw
IF0KK2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sIFsgU2tpcCBdCitqcy9k
b20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1sb2FkLXNh
bWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbCBbIFNraXAg
XQoranMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBv
aW50Lmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdp
dGgtc3JjLWFuZC1pbXBvcnQuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1ub3QtZm91bmQt
ZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1ub3QtZm91
bmQtZXJyb3ItZXZlbnQuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5o
dG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbCBbIFNraXAgXQoranMv
ZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRl
bnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjliZGIyNzVhMmZiODM0ODk2NGZiZThkZWI4MjU1M2I0YjlkYjlhNTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1p
bnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUg
ZmlyZWQgd2hlbiB0aGUgZGVwZW5kZW50IG1vZHVsZSB0aHJvdyBhbiBlcnJvci4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhl
Y3V0aW5nIHRoZSBkZXBlbmRlbnQgbW9kdWxlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVj
dXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQt
dG8tb25lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3N2I1ZGQ3NjRkYmUyNDM0MjNkMWMzOGUzNzRj
YzBmZGRjMjQzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFn
YXRlZC10by1vbmVycm9yLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBm
aXJlZCB3aGVuIHRoZSBkZXBlbmRlbnQgbW9kdWxlIHRocm93IGFuIGVycm9yLicpOworLy8gTW9k
dWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cit3aW5kb3cu
b25lcnJvciA9IGZ1bmN0aW9uICgpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRl
ZC10by1vbmVycm9yLmpzIgordGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVj
dXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWRmNzAyOGYzNTQ5
MzY2OTI5MjJlZmU2MWEyZGZiYTVmMWYwOTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8t
b25lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB3aW5kb3cub25lcnJv
ciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGlubGluZWQgbW9kdWxlIHRocm93cyBhbiBlcnJvci4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQg
eWV0LgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1s
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NDYyZjM3ZWQ4MTczMDYxZjdm
OTk1MzZjNDJkMjk5NWMyNTI3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9y
Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBp
bmxpbmVkIG1vZHVsZSB0aHJvd3MgYW4gZXJyb3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVj
dXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVn
KCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rp
b24gKCkgeworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
Im1vZHVsZSI+CitkZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cit0aHJvdyBuZXcgRXJy
b3IoIm1vZHVsZSBpcyBleGVjdXRlZC4iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5s
aW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLWlubGluZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZmZGYzMzk3NTdhNGEzNzk2NGU4
ODlhZWM2OWFmY2M1OTlhYjc4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NCBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUg
dGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LgorUEFTUyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQrKyBpcyAxCitQQVNTIGNv
dW50KysgaXMgMgorUEFTUyBjb3VudCsrIGlzIDMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MjVlNzY5MDhj
ZmI2ZmVhMDEwN2Y0ZGFhZGQxZDI5MzFiZjNjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbApAQCAtMCwwICsx
LDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVz
dCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4nKTsK
K3dpbmRvdy5jb3VudCA9IDA7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25v
dXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4nKTsKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjAiKTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIsICIyIik7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjMi
KTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM3ZjUyNGY1MzE5MDVkOGE1M2Y0NGEzM2FiNmZm
YjQwMDEyMTAzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0
IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtaXhlZCB0YWdzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworV2Uga2VlcCB0aGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4g
bW9kdWxlcy4KK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBjb3VudCsrIGlzIDAK
K1BBU1MgY291bnQrKyBpcyAxCitQQVNTIGNvdW50KysgaXMgMgorUEFTUyBjb3VudCsrIGlzIDMK
K1BBU1MgY291bnQrKyBpcyA0CitQQVNTIGNvdW50KysgaXMgNQorUEFTUyBjb3VudCsrIGlzIDYK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MTkxZDMwM2VkZDc1NzczODEyOGRkOWQxNWJiNDBjN2U3NmMyY2Q3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItbWl4ZWQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4g
bWl4ZWQgdGFncy4nKTsKK2RlYnVnKCdXZSBrZWVwIHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2Vl
biBtb2R1bGVzLicpOword2luZG93LmNvdW50ID0gMDsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhl
Y3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1
ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0ibW9kdWxlIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsr
IiwgIjQiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRl
c3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIsICI2Iik7CitmaW5pc2hKU1Rlc3Qo
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Yzkz
OWFhZjBhNTAxNWY0NzkzODZjZDMxOTVhYTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNCBAQAorVGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlv
biBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29j
b2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIK
K1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGMwZTI1OWFiMjkxZWZm
YzRiZWU3OGFlNjVjMzQxN2MxMWQwNWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9k
dWxlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgICBlbGVtZW50LnRl
eHRDb250ZW50ID0gYAorICAgICAgICBpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMv
bW9kdWxlLWlubGluZS1keW5hbWljLmpzIjsKKyAgICAgICAgdmFyIGNvY29hID0gbmV3IENvY29h
KCk7CisKKyAgICAgICAgZGVidWcoIk1vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhl
IG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0
eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKKyAgICAgICAgd2luZG93LmV4cG9ydGVkQ29j
b2EgPSBjb2NvYTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0
ZWRDb2NvYSIsICJvYmplY3QiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBv
cnRlZENvY29hLnRhc3RlKCkiLCAiYXdlc29tZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICBgOworICAgIGVsZW1lbnQudHlwZSA9ICJtb2R1bGUiOworICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit9ICgpKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM5MzlhYWYwYTUwMTVmNDc5Mzg2Y2QzMTk1YWE1OWRkMTY5
MDk3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5l
LXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBpbmxpbmVkIG1vZHVs
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0
ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmly
b25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4
cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJh
d2Vzb21lIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzhiY2YwNjBkMWJkNjk0NWIwODkxNmViYTE1MjlhNTU4ZmU2YjJkMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sCkBA
IC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRl
ZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0
LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgp
OworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVu
dmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5k
ZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAiYXdlc29tZSIpOworZmluaXNoSlNU
ZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NjI2Njgw
MmRhNTdjNzU4Y2UzZTRhMmYzMWQ3ODkwZDBlNWI3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTEgQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4
ZWN1dGluZyBhbiBpbmxpbmVkIG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGEy
ZjliOTk2MTZmZjQ3MGFlZTJhNDVlNzJiYmRhNmVmYWNkNDA5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitUZXN0IHNjcmlwdC5vbmxvYWQgd2lsbCBiZSBmaXJlZCB3aGVu
IHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGxvYWRzIGFuZCBleGVjdXRlcy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0
aW5nIGEgbW9kdWxlIHdpdGggc3JjIGF0dHJpYnV0ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NGE0YTMwNzBhOTZl
NmRhY2JkOGI3NDZhNzdjMDU3YTQyYzU2YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbApAQCAtMCwwICsxLDE2IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3Jp
cHQub25sb2FkIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBsb2Fk
cyBhbmQgZXhlY3V0ZXMuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25v
dXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9h
ZD0iZmluaXNoSlNUZXN0KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdp
dGgtc3JjLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJiOGM4MDlmMmQ0NWNkM2YzMTc4
OWFmZTJkZjdiMzBkY2UxZjQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbG9hZC1ldmVudC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3Jk
ZXIgYmV0d2VlbiB0YWdzLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9u
b3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5v
dCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxv
YWQ9ImZpbmlzaEpTVGVzdCgpIj4KK2RlYnVnKCdFeGVjdXRpbmcgYW4gaW5saW5lZCBtb2R1bGUu
Jyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2lu
dC1keW5hbWljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1z
YW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MWFiNDlkMTQ5NzYyNGRmMjJlMDM0Nzk3YjM5YWE4ZWM4Njk0ZWNjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9k
dWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTMgQEAKKzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQg
dGhlIHNhbWUgbW9kdWxlIGZyb20gYSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgdGFnCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQg
aW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxl
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1p
Yy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI1ZDUxZTJiNmNlYTg2MTdiYWNmMGM0MGUzMzdlOTA5YTFkMzFh
MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2Ft
ZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCkBAIC0wLDAg
KzEsMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCcy
IGRpZmZlcmVudCBtb2R1bGUgdGFnIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVs
ZSBmcm9tIGEgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIHRhZycpOworZGVidWcoJ0N1cnJlbnRseSwg
dGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4
ZWQgaW4gdGhlIGZ1dHVyZS4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJv
bm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBu
b3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+Citp
bXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKK3ZhciBl
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitlbGVtZW50LnR5cGUg
PSAibW9kdWxlIjsKK2VsZW1lbnQuaW5uZXJUZXh0ID0gInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9h
ZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyI7CitlbGVtZW50Lm9u
ZXJyb3IgPSBmaW5pc2hKU1Rlc3QoKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVu
dCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2lu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1
bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIw
Zjk4ZmNjYjZmYWZhMDY0NDdlMzAzMmVmMDZkOTgyMDI3ZjI1MWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJl
bnQtZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKzIgZGlmZmVyZW50
IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQg
aW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxl
LgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDZkNGUwYjYzY2RjMDEyNzQxMzNiZWZkOTM4NDQy
NTU1NThiMTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1s
b2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKQEAgLTAsMCAr
MSwyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJzIg
ZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxl
Jyk7CitkZWJ1ZygnQ3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBU
aGlzIGlzc3VlIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLicpOworLy8gTW9kdWxlIHdp
bGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0ibW9kdWxlIj4KK2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNh
bWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGlu
ZyB0aGUgbW9kdWxlLicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2Fk
PSJmaW5pc2hKU1Rlc3QoKSI+CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1l
LW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcg
dGhlIG1vZHVsZS4nKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzOGJhM2MyZTc5OTc3ZTJjOWY3OTM0ODA5NzM2ZmQ5ODM3
ZDcyZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDI6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJu
b3QtZm91bmQuanMiLiBFeHBlY3RlZCAnZnJvbScgYmVmb3JlIGltcG9ydGVkIG1vZHVsZSBuYW1l
LgorVGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNw
ZWNpZmllZCBieSB0aGUgaW1wb3J0IGRlY2xhcmF0aW9uIGluIHRoZSBpbmxpbmVkIG1vZHVsZSBp
cyBub3QgZm91bmQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1p
bXBvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0ODc4NzUwMWExMjkyNzY4MTA5MTg3OTA3
YWZjNDdkZmI2ZDI4OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hl
biB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhl
IGRlcGVuZGVudCBtb2R1bGUgaXMgbm90IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0
aC1zcmMtYW5kLWltcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZjM5ODY4NWFlMDVhMTFjZThhMWUw
YjIyMDk4ZTk4NTMxZDYyOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwKQEAg
LTAsMCArMSwyMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBz
cGVjaWZpZWQgYnkgdGhlIGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVs
ZSBpcyBub3QgZm91bmQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25v
dXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3It
ZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qcyIgb25lcnJvcj0ib25FcnJvcigpIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iODBkMTVkZmU2ZDA5YmZjNmI4NTgzYTQ4ZGVjNmRjYjFiNWIxNDE0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQt
ZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qg
c2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQg
YnkgInNyYyIgaXMgbm90IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjZhNDdmNjEwNjlhZmVjYmNiMzhiMGE5NTc1NjI1Y2U4MmRmNDgxOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdp
dGgtc3JjLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVu
IHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgInNyYyIgaXMgbm90IGZvdW5kLicpOworLy8gTW9k
dWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlv
biBvbkVycm9yKCkKK3sKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlz
aEpTVGVzdCgpCit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Im5vdC1m
b3VuZC5qcyIgb25lcnJvcj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZjYjU5NGM2NDY4MzhlNGMzNWUzNzU2MWY2ZGNlM2Q4Mzc3MGI3
NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmly
ZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24g
aW4gdGhlIGlubGluZWQgbW9kdWxlIGlzIG5vdCBmb3VuZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJl
IGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
ZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworZnVuY3Rpb24gb25FcnJvcigp
Cit7CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKQor
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25lcnJvcj0ib25FcnJvcigpIj4K
K2ltcG9ydCBmcm9tICJub3QtZm91bmQuanMiOwordGVzdEZhaWxlZCgnZXhlY3V0ZWQnKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLXNyYy1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDhiMDA2MjQ5MGVjNzIy
OTVjZmY1MDYxYTA4MzllNDAwMjBjZDhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
VGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24g
aXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29h
IGlzICJ1bmRlZmluZWQiCitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQ
QVNTIGV4cG9ydGVkQ29jb2EudGFzdGUoKSBpcyAibmljZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LXNyYy1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg0ZmY0MjY0Zjk4MWZlOTY0OWVkM2E3MjFi
MWNmYTRmYTVlOTFjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtc3JjLWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1
dGUuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01v
ZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgIGVsZW1lbnQudHlw
ZSA9ICdtb2R1bGUnOworICAgIGVsZW1lbnQuc3JjID0gJy4vc2NyaXB0LXRlc3RzL21vZHVsZS1z
cmMtZHluYW1pYy5qcyc7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsK
K30oKSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkOGIwMDYy
NDkwZWM3MjI5NWNmZjUwNjFhMDgzOWU0MDAyMGNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTQgQEAKK1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhl
Y3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVv
ZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2Jq
ZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkgaXMgIm5pY2UiCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLXNyYy1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjczYjBjNTRhMjVhNGY3NmMxNGEz
YjVkYzMxNzNmZTg5M2NiM2NkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1zcmMtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0
cmlidXRlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4K
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVn
KCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJtb2R1bGUiIHNyYz0iLi9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YThkOTcwOGRiM2UwNWM0YjAxMDNiZTdkY2ViMGMwMDcxMTc1Yzc1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZp
cmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0aCBzcmMgaXMgcHJlcGFyZWQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmZiZmYxNjUzZDA2YzA2ZTFkNzQxNzlkMDExMDAzNmUxNDlkODY5MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQu
aHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbignVGVzdCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhl
IG1vZHVsZSB0YWcgd2l0aCBzcmMgaXMgcHJlcGFyZWQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBl
eGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2Rl
YnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiIG9uYmVmb3JlbG9hZD0iZmluaXNoSlNUZXN0KCkiIHNyYz0ic2NyaXB0LXRl
c3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3Bh
Z2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQt
YmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzE1YWYyMTQy
YjQ4MDI2MDJlYWQwMzcwMGY4YmJlMDFiYzJiZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRl
cGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcwpA
QCAtMCwwICsxLDIgQEAKK2RlYnVnKCJFeGVjdXRpbmcgdGhlIGRlcGVuZGVudCBtb2R1bGUiKTsK
K3Rocm93IG5ldyBFcnJvcigib3V0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1
bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1v
ZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2Yzdj
YTQ3OWIyNTg4OWIwMGNhMjRjZDViYmUzMzFkYWE2NWY3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5z
aWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcwpA
QCAtMCwwICsxLDIgQEAKK2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVw
ZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzIgor
dGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzIGIvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTMzYjlkMzUyYWVjNTdiMDYxZGRiZTAwYjdjZjk0ZWE1NzRhZWM0OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzCkBAIC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsr
IiwgIjUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8u
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjMxNDZmZDc2NmU1NWEwMmFlNzhiYWY5ZGQ2MzM5OGViODVhODkwZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzCkBAIC0wLDAgKzEsMyBAQAoraW1w
b3J0ICJtb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcyIKKworc2hvdWxkQmUo
ImNvdW50KysiLCAiMiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE1OGQ3MzI0M2ZlZjMwYTBiNDk0OWRiYTdmYmY4NTM0ZWViYTlmNzMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1l
eGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanMKQEAgLTAsMCArMSwzIEBACitpbXBvcnQgIm1v
ZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzIjsKKworc2hvdWxkQmUoImNvdW50
KysiLCAiMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzJlMTVkN2NmMGNmZjRlYWExYTBiNWExZWU4M2RjY2UzMjRhMjVlOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1
dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMKQEAgLTAsMCArMSBAQAorc2hvdWxkQmUoImNvdW50
KysiLCAiMCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0Mzg2
ZmJiODY4MWNiZjdlNTljNDczNzYzN2U4N2JlMzhjZmY3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4
ZWQuanMKQEAgLTAsMCArMSw0IEBACitpbXBvcnQgIi4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC1jb2NvYS5qcyIKK2ltcG9ydCAiLi9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNh
cHB1Y2Npbm8uanMiCisKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjQzNjBhN2JmZTdlMDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlu
bGluZS1keW5hbWljLmpzCkBAIC0wLDAgKzEsNSBAQAorZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29j
b2EgeworICAgIHRhc3RlKCkgeworICAgICAgICByZXR1cm4gImF3ZXNvbWUiOworICAgIH0KK307
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxp
bmUtc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5s
aW5lLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDM2MGE3YmZlN2UwNWEwY2IyNTM4NDEzNjdlNzFk
YzFlOTNiNWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcwpAQCAtMCwwICsxLDUgQEAKK2V4cG9ydCBkZWZh
dWx0IGNsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJhd2Vzb21l
IjsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I4NzAy
OTBkM2VjN2UwODBjMDVmOWY2NjY4NDRjZDA2NzUyOWZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMu
anMKQEAgLTAsMCArMSBAQAorZGVidWcoJ0V4ZWN1dGluZyBhIG1vZHVsZSB3aXRoIHNyYyBhdHRy
aWJ1dGUuJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWFkNzdmODAwODA0MzgxYmY0
ZjFlYWRiNTE3ZjU2MGYwYzRlYjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC5qcwpAQCAtMCwwICsxIEBACitkZWJ1ZygnRXhlY3V0aW5nIG1vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzLicpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9y
LWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YzFiNDcxNDgxMzhhMGVjNDUyMmMyMjcyMzNhM2M3NDEzMzcxMjk5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMKQEAgLTAsMCArMSBA
QAoraW1wb3J0ICJub3QtZm91bmQuanMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ3OTU5MmRjNTEzY2YyNTk4NDFmZjlkNDYzOTA0NTEyYjBlY2I3NDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1j
b2NvYS5qcwpAQCAtMCwwICsxLDcgQEAKK2NsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAg
ICAgICAgcmV0dXJuICJuaWNlIjsKKyAgICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0IENvY29hOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5
bmFtaWMuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHlu
YW1pYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNTFhN2JlNmI0ZjEyOTNhZjU5Njg2ZmUzZTU3ODAxZDJlMDk2
YzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtc3JjLWR5bmFtaWMuanMKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZyb20g
Ii4vbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgp
OworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVu
dmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5k
ZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAibmljZSIpOworZmluaXNoSlNUZXN0
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1z
cmMtc2ltcGxlLWNvY29hLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtc3JjLXNpbXBsZS1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5
ZDQ2MzkwNDUxMmIwZWNiNzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAK
K2NsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAg
ICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ5Yzc3
NGZkOWU3YTVjOWQxODU5MjQwNDRlN2EyNzhhZDczMzcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKQEAgLTAs
MCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNyYy1zaW1wbGUtY29jb2Eu
anMiOwordmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9u
IGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVk
Q29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29j
b2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFz
dGUoKSIsICJuaWNlIik7CitmaW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjBhMzkzODM1NjMzYWVjNTVlNWU1OTU3MjlkYTY5MTllOWMzMjAzYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzCkBAIC0wLDAgKzEgQEAKK3Rlc3RGYWlsZWQoImV4ZWN1
dGVkIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261892</attachid>
            <date>2015-09-24 13:46:41 -0700</date>
            <delta_ts>2015-09-24 13:49:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150924134622.patch</filename>
            <type>text/plain</type>
            <size>135712</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzdmZGYwNGRiNzhkMjk0MDUzMzZiOTk0NGVlNjgyYmM1MTUyMjM2Li5hM2ViNDA0NDVmZDUxNjQx
NWU0MjJmMWFkYzY3YTU2YzQwMmM0Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wOS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW1ib2w6
OmNyZWF0ZSBpcyBub3cgdXNlZCBpbiBXZWJDb3JlLgorCisgICAgICAgICogcnVudGltZS9TeW1i
b2wuaDoKKwogMjAxNS0wOS0yMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBKU0MgYWxsb3dzIGludmFsaWQgdmFyIGRlY2xhcmF0aW9ucyB3aGVuIHRoZSBkZWNs
YXJlZCBuYW1lIGlzIHRoZSBzYW1lIGFzIGEgbGV0L2NvbnN0IHZhcmlhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNmZhZTUzNWI4ZDczMGYzOTgxYWE1MDBkNTljZjZiZGI4MmE1NjczYS4uNzY0YTZjYzRiODQ4
M2FlMmQxMjZjM2NkZGYyMTJhMWMwZWQ2MDU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NiBA
QAorMjAxNS0wOS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPiB0YWcuIFRoYXQgdGFnIGxvYWRzIHRoZSBFUzYg
TW9kdWxlcy4KKyAgICAgICAgU2luY2UgdGhlIGRldGFpbCBvZiB0aGUgdGFnIGlzIG5vdCBkZWZp
bmVkIHlldFsxXSwgdGhlIGltcGxlbWVudGF0aW9uIGlzIGhpZGRlbgorICAgICAgICBiZWhpbmQg
dGhlIGNvbXBpbGUgdGltZSBmbGFnIEVOQUJMRShFUzZfTU9EVUxFUykuCisKKyAgICAgICAgQSBt
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseSBhbmQgZXhlY3V0ZWQgaW4gYSBt
b2R1bGUgZW52aXJvbm1lbnQKKyAgICAgICAgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZ2xv
YmFsIGVudmlyb25tZW50LiBJdCBpcyBhbHdheXMgc3RyaWN0IG1vZGUgYW5kIG9ubHkKKyAgICAg
ICAgYSBtb2R1bGUgY2FuIHVzZSB0aGUgbW9kdWxlIHN5bnRheCBsaWtlIGBpbXBvcnRgLCBgZXhw
b3J0YCBldGMuIFNvIHNpbmNlIHRoZQorICAgICAgICBleGVjdXRpb24gc2VtYW50aWNzIGlzIGRp
ZmZlcmVudCBmcm9tIG9uZSBvZiBnbG9iYWwgc2NyaXB0cywgbW9kdWxlcyBuZWVkIHRvIGJlCisg
ICAgICAgIGV4ZWN1dGVkIGJ5IHRoZSBzcGVjaWFsaXplZCB0YWcsIDxzY3JpcHQ+IHdpdGggdHlw
ZT0ibW9kdWxlIi4KKworICAgICAgICBUaGUgbW9kdWxlIHRhZyB3b3JrcyBhcyBhbiBlbnRyeSBw
b2ludCB0byBtb2R1bGVzLiBUeXBpY2FsbHksIHdlIHNwZWNpZnkgYW4KKyAgICAgICAgZW50cnkg
cG9pbnQgbW9kdWxlIGJ5IGEgdGFnIGFuZCBhbiBlbnRyeSBwb2ludCBtb2R1bGUgd2lsbCBsb2Fk
IGRlcGVuZGVudAorICAgICAgICBtb2R1bGVzIGFuZCBydW4gYSBhcHBsaWNhdGlvbi4KKworICAg
ICAgICBPbmNlIG1vZHVsZSB0YWcgcmVxdWVzdCBsb2FkaW5nLCBXZWJDb3JlIHJlcXVlc3QgbG9h
ZGluZyB0byB0aGUgSlNDJ3MgbW9kdWxlCisgICAgICAgIGxvYWRlci4gV2ViQ29yZSBhZG9wdHMg
dGhlIEpTQydzIGdlbmVyaWMgbW9kdWxlIGxvYWRlciBieSBpbXBsZW1lbnRpbmcgdGhlIGxvYWRl
cgorICAgICAgICBob29rcy4gSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIFdlYkNvcmUg
aW1wbGVtZW50cyAzIGhvb2tzLgorCisgICAgICAgIDEuIHJlc29sdmUgaG9vaworCisgICAgICAg
ICAgICBUYWtlcyB0aGUgbW9kdWxlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBt
b2R1bGUga2V5LgorICAgICAgICAgICAgSW4gV2ViQ29yZSwgd2UgdGFrZSB0aGUgbW9kdWxlIG5h
bWUgbGlrZSAiLi9oZWxsby5qcyIgYW5kIHJlc29sdmUgaXQgdG8gVVJMLgorCisgICAgICAgIDIu
IGZldGNoIGhvb2sKKworICAgICAgICAgICAgRmV0Y2hlcyB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVk
IGJ5IHRoZSBtb2R1bGUga2V5LiBJbiBXZWJDb3JlLCB0aGUgbW9kdWxlIGtleSBpcworICAgICAg
ICAgICAgVVJMLiBXZSB1c2UgQ2FjaGVkUmVzb3VyY2UgbG9hZGluZyBzeXN0ZW0gdG8gbG9hZCB0
aGUgcmVzb3VyY2Ugb2YgdGhlIG1vZHVsZXMuCisKKyAgICAgICAgMy4gZXZhbHVhdGUgaG9vawor
CisgICAgICAgICAgICBUaGlzIGlzIGFkZGl0aW9uYWwgaG9vayB0byBpbnN0cnVtZW50IHRoZSBt
b2R1bGUncyBleGVjdXRpb24gZm9yIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgVGhlIG1vZHVs
ZSBsb2FkZXIgaW52b2tlcyB0aGVzZSBob29rcywgY29uc3RydWN0cyB0aGUgcGlwZWxpbmUgYW5k
IG5vdGlmaWVzIGV2ZW50cworICAgICAgICB0byBhIE1vZHVsZUdyYXBoLCB3aGljaCBpcyBoZWxk
IGJ5IGEgU2NyaXB0RWxlbWVudC4gQSBTY3JpcHRFbGVtZW50IHdpdGggYSBNb2R1bGVHcmFwaAor
ICAgICAgICB3aWxsIGJlIGRyaXZlbiBieSB0aGVzZSBldmVudHMuCisKKyAgICAgICAgTW9kdWxl
IHRhZyBsb2FkcyB0aGUgcmVzb3VyY2VzIGFzeW5jaHJvbm91c2x5LiBTbyBpdCBkb2VzIG5vdCBi
bG9jayB0aGUgZG9jdW1lbnQKKyAgICAgICAgcGFyc2VyLiBCdXQgdGhlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIHRoZSBtdWx0aXBsZSBtb2R1bGUgdGFncyBzaG91bGQgYmVjb21lCisgICAgICAg
IHRoZSBvY2N1cnJlbmNlIG9yZGVyWzFdLiBTbyBTY3JpcHRSdW5uZXIgbWFuYWdlcyB0aGUgbW9k
dWxlIHRhZ3MgYW5kIGZvcmNlIHRoZW0KKyAgICAgICAgdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIG9j
Y3VycmVuY2Ugb3JkZXIuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGhlcm1h
bi9tb2R1bGUtdGFnL2Jsb2IvbWFzdGVyL3JlcXVpcmVtZW50cy5tZAorCisgICAgICAgIFRlc3Rz
OiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3Iu
aHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5l
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbAor
ICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9t
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFt
aWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbAorICAgICAg
ICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMv
ZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01haW5U
aHJlYWRFeGVjU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0
ZTo6bG9hZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlRmV0
Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6TW9kdWxl
RmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hl
cik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6cnVuKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZl
dGNoZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRj
aGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6Y2FjaGVkU2Ny
aXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUxvYWRlcjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVM
b2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3Jp
cHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZU1vZHVsZUxvYWRlckVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1bGVHcmFwaCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgorICAgICAgICAqIGRv
bS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6fkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TW9kdWxlR3JhcGg6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpu
b3RpZnlFdmFsdWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmxvYWQpOgor
ICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
ZHVsZUdyYXBoOjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjptb2R1
bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OndlYWtFbGVtZW50UHRyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjplcnJvck9jY3VycmVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBl
U3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpt
b2R1bGVHcmFwaCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9TY3JpcHRS
dW5uZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6aGFzUGVuZGluZ1Njcmlw
dHMpOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAg
ICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDoKKwogMjAxNS0wOS0yMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIxOTAw
ODUgYXMgaXQgc2VlbXMgdG8gY2F1c2UgY3Jhc2hlcyBpbiBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggODNmNWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1
ZmRkZGJiZS4uZGRiNjhjY2IzNjU0NDU5OTEwY2QzZjIzZjY2ODc0ZDAwNTg4YTk1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTg2LDcgKzg2LDcgQEAgY2xhc3Mg
U3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBTeW1ib2woVk0mKTsKICAgICBT
eW1ib2woVk0mLCBjb25zdCBTdHJpbmcmKTsKLSAgICBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1
aWQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDI0NjMwYmEwZjMyN2QwYTU2MmZmMGZmOGZlYTk1Y2UxNzk5MmJmMWMuLmQ1MDli
NWY2Yjc3ZTUxZGQ0YmJmOWRhMmZjMDhkY2M3NzYzM2QwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMjI1LDYgKzEyMjUsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAK
KyAgICBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcAorICAgIGJpbmRpbmdzL2pzL01vZHVs
ZUxvYWRlci5jcHAKICAgICBiaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAogICAgIGJp
bmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNo
ZWRGcmFtZURhdGEuY3BwCkBAIC0xNDUwLDYgKzE0NTIsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgZG9tL01lc3NhZ2VQb3J0LmNwcAogICAgIGRvbS9NZXNzYWdlUG9ydENoYW5uZWwuY3Bw
CiAgICAgZG9tL01pY3JvVGFzay5jcHAKKyAgICBkb20vTW9kdWxlR3JhcGguY3BwCiAgICAgZG9t
L01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9N
dXRhdGlvbkV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNTU3
YTJmMjFlY2Y2YjJhZWNhZDY3ZTM1M2UxOTY2ZTQ3OTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNl
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VfaAorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZjMDg2ZGQzOWFmZjllMTA0YmQ1
YTZmZjdhZTc5MjU0NjM4Njk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCkBAIC0w
LDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVk
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L0pTTW9kdWxlUmVjb3JkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlOWVjZmZiY2Y1N2MyYTljNzk1Y2NiMWQ4
MDM0MGY5MTRkN2Q0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5k
ZWYgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNvcmRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KU01v
ZHVsZVJlY29yZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVu
dGltZS9TeW1ib2wuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUv
U3ltYm9sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUwNDI3ZjA5MWE5ZWNhY2ZiZmEwOTlhZTBkMDMwZTBlOWJj
NWViMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvU3ltYm9sLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1N5
bWJvbF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1N5bWJvbF9oCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvU3ltYm9sLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDIxYTlkNDI1ZGFkNzI0OGU4NDQyMzljNThjZTg1MDZm
MjgwOTg4YjEuLmFjMDIyYjA2NzM1NjkxM2RmYzg3MGFlZGExYWNhZTU1YmUyYWJmMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQ0
MzYsNiArMTQ0MzYsMjAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkb21cTW9kdWxlR3JhcGguY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xODg3NSw2ICsxODg4OSwzNCBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUZldGNoZXIu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XE1vZHVsZUxvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMjA3MSw2ICsyMjExMyw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTWVzc2FnZVBvcnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNZXNzYWdlUG9ydENoYW5uZWwuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRvbVxNb2R1bGVHcmFwaC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9t
XE1vdXNlRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZVJl
bGF0ZWRFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE11dGF0aW9u
RXZlbnQuaCIgLz4KQEAgLTIyNDg0LDYgKzIyNTI3LDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZU9yU3RyaW5nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVG
ZXRjaGVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1
bGVMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNj
aGVkdWxlZEFjdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xTY3JpcHRDb250cm9sbGVyLmgiIC8+CkBAIC0yMjcyMywxMyArMjI3Njgs
MTcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN2Z1xwcm9wZXJ0aWVzXFNWR1RyYW5z
Zm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcQXJnTGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxJZGVudGlmaWVyLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTSW50
ZXJuYWxQcm9taXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNMb2NrLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpT
T2JqZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXEpTU3RyaW5nLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTTW9kdWxlUmVjb3JkLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXExvb2t1cC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxPcGVyYXRp
b25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xy
dW50aW1lXFByb3RlY3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcU3RyaW5nT2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5bWJvbC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFyclxSZWd1bGFyRXhwcmVzc2lv
bi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFy
clxZYXJyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1x5YXJyXFlhcnJJbnRlcnByZXRlci5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDZkZDM3OTlhZDVj
NjM5NTczY2Y3YjY4NDNjZDhkY2RiMTU3ODYyZWEuLjQyZWQ2YmE1ZWMwYzMxNzNjYjkxY2I4MzZm
MzczOWIzNzIyN2MzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTMxOTgsNiArMzE5OCw5IEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTWljcm9UYXNrLmNwcCI+CiAgICAgICA8RmlsdGVy
PmRvbTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZG9tXE1vZHVsZUdyYXBoLmNwcCI+CisgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlRXZlbnQu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC00
NDc2LDYgKzQ0NzksMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlRmV0Y2hlci5jcHAiPgorICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlTG9hZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xTY2hlZHVsZWRBY3Rpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwMzA0LDYgKzEwMzEzLDkgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCI+CiAgICAgICA8RmlsdGVyPmRv
bTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXE1vZHVsZUdyYXBoLmgiPgorICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmgiPgog
ICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTExNDg5LDYg
KzExNTAxLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5oIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXE1vZHVsZUZldGNoZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xNb2R1bGVMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xT
Y2hlZHVsZWRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xMTY1NywxMiArMTE2NzUsMjEgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSWRlbnRpZmllci5oIj4KICAg
ICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVu
dGltZVxKU0ludGVybmFsUHJvbWlzZS5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTTG9jay5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU09iamVjdC5oIj4KICAgICAgIDxG
aWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxK
U01vZHVsZVJlY29yZC5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGlt
ZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU1N0cmluZy5oIj4KICAgICAgIDxGaWx0ZXI+Rm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTE2
ODEsNiArMTE3MDgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxTdHJpbmdPYmplY3QuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sLmgiPgorICAgICAg
PEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1
ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1x5YXJyXFJl
Z3VsYXJFeHByZXNzaW9uLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1x5YXJy
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWI1NWZmOWYxMmE4MmUyYjBhYzczMjgz
NDUyNzEzZTRhZGUxYjY5MC4uMzc4YjMxNDlmOTM4MGQ0ZjkxY2M5NzdkMmJkY2U3ODZkNjRlOWM1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjMyMyw2ICs2MzIzLDEyIEBACiAJCUUxRkY4RjY4MTgwNzQ2MDgwMDEzMjY3NCAv
KiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlw
dG9DdXN0b20uY3BwICovOyB9OwogCQlFMUZGOEY2QzE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5LmNwcCAqLzsgfTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuaCAqLzsgfTsKKwkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzlBNTIx
MUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi87IH07CisJCUUzMzlBNTI0MUJB
NkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdy
YXBoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4OTIxQkFEMTQ1RjAwRDYy
RUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7
IH07IH07CisJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5MzFCQUQx
NDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdT
ID0gKCk7IH07IH07CisJCUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4
OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9
IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CiAJCUU0MDFDMjc1MTdDRTUzRUMwMEM0MUEzNSAvKiBF
bGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDAxQzI3NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJh
dG9yQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0MjRBMzlFMTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlE
MTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCAqLzsgfTsKIAkJRTQyNEEz
QTAxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlGMTMzMERGMUUwMENGNkRD
OSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gKi87IH07CkBAIC0xNDA4Myw2ICsxNDA4OSwxMiBA
QAogCQlFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG9DdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzOUE1
MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUdyYXBoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUdyYXBoLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzODgzODkyMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUZldGNoZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5MzFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlRmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
b2R1bGVGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgzODk0MUJB
RDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudEl0
ZXJhdG9yQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA2RjNG
QjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbG9yRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE1MzUsNiArMjE1NDcsMTAgQEAKIAkJCQk0
MTE4OUVGODFBRDgyMzNDMDBCOTBBMEQgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0
b20uY3BwICovLAogCQkJCUUxQzM2RDMyMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5jcHAgKi8sCiAJCQkJRTFDMzZEMzMwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlLmggKi8sCisJCQkJRTM4ODM4OTIxQkFEMTQ1RjAwRDYyRUUzIC8q
IE1vZHVsZUZldGNoZXIuY3BwICovLAorCQkJCUUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBN
b2R1bGVGZXRjaGVyLmggKi8sCisJCQkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5jcHAgKi8sCisJCQkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxv
YWRlci5oICovLAogCQkJCTQxOThCREVFMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3Ry
ZWFtLmNwcCAqLywKIAkJCQk0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0
cmVhbS5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rp
b24uY3BwICovLApAQCAtMjM1MDIsNiArMjM1MTgsOCBAQAogCQkJCTQxQkY3MDBBMEZFODZGNDkw
MDVFOERFQyAvKiBNZXNzYWdlUG9ydENoYW5uZWwuaCAqLywKIAkJCQlDQjhDRjAxNTFBOTM0QjQz
MDAwRDUxMEIgLyogTWljcm9UYXNrLmNwcCAqLywKIAkJCQk1M0I4OTVBRDE5REM3QzM3MDA5Q0FB
OTMgLyogTWljcm9UYXNrLmggKi8sCisJCQkJRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1v
ZHVsZUdyYXBoLmNwcCAqLywKKwkJCQlFMzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxl
R3JhcGguaCAqLywKIAkJCQk4NTAzMUIyRjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5j
cHAgKi8sCiAJCQkJODUwMzFCMzAwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuaCAqLywK
IAkJCQkxNDFCOTRFNTA5RUM0MjIzMDAwRTk0MTMgLyogTW91c2VFdmVudC5pZGwgKi8sCkBAIC0y
NDYxNyw2ICsyNDYzNSw3IEBACiAJCQkJMzE2MDIzRjAxNTMyQzQwQzAwRDUwRkY0IC8qIERpY3Rp
b25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEzMSAvKiBE
aWN0aW9uYXJ5TG9va3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNEMTMxMDA4
REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzM5QTUyNDFC
QTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTdFREFB
RkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxOTEsNiArMjYy
MTAsNyBAQAogCQkJCUNFMTI1MjQxMUExNkIxQjYwMDg2NDQ4MCAvKiBNZWRpYVBsYXllclNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJv
ZHVjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBN
ZWRpYVF1ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJFRTMg
LyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAy
MjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5
MkUwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzIzOSw2ICsyNzI1OSw3IEBACiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZDQTI3
IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYw
QkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FDRTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
VGV4dFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FEMTBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg1NEIwMjUxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yODAwNyw2ICsyODAyOCw3IEBACiAJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8q
IEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQkMxMkIw
MjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwMDcxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFw
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjA4MTEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NTk2OTExNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDMxNjBCRTEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyTWFjLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjg1NzIsNiArMjg1OTQsNyBAQAogCQkJCUU0QTAwNzg1MUI4MjBFRDMw
MDJDNUE2RSAvKiBEYXRhVVJMRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1
MTBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOEFEMEE1OTcxNEM4ODM1ODAwMEQ4M0M1IC8qIERPTVdlYktpdENTU1JlZ2lvblJ1bGUu
bW0gaW4gU291cmNlcyAqLywKKwkJCQlFMzg4Mzg5ODFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxl
TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjExRTYyMEUxQzRFMTQwMEY2QTU3OSAv
KiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTNGMkIz
M0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzkxQTM4RjFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg5OSw2ICsyODkyMiw3IEBACiAJCQkJQTg3MURCMkUw
QTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4NzFEQjI5MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDb2xFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjI4MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFi
bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzODgzODk2MUJBRDE0NUYwMEQ2MkVF
MyAvKiBNb2R1bGVGZXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjJEMEExNTBC
RDYwMEIxMkE2OCAvKiBIVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODcxREIzMDBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzQ0MkNBMDBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93
c0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTA3Miw2ICszMTA5Niw3IEBACiAJ
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJl
bmNlID0gMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJ
CQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZf
TU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7CiAJCX07CkBAIC0zMTA3OSw2ICszMTEw
NCw3IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25m
aWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVO
QUJMRV9FUzZfTU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKIAkJfTsKQEAgLTMx
MDg3LDYgKzMxMTEzLDcgQEAKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1
RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRp
bmdzID0gewogCQkJCUJVSUxEX1ZBUklBTlRTID0gbm9ybWFsOworCQkJCUVOQUJMRV9FUzZfTU9E
VUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsK
IAkJfTsKQEAgLTMxMTIwLDYgKzMxMTQ3LDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MTgxNzA3RDEzODZFREYyMDA1
N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCQlFTkFCTEVfRVM2X01PRFVMRVMgPSBFTkFCTEVfRVM2X01PRFVMRVM7CiAJCQl9
OwogCQkJbmFtZSA9IERlYnVnOwogCQl9OwpAQCAtMzExMjcsNiArMzExNTUsNyBAQAogCQkJaXNh
ID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9
IDQxODE3MDdEMTM4NkVERjIwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQueGNjb25maWcg
Ki87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJM
RV9FUzZfTU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKIAkJfTsKQEAgLTMxMTM0
LDYgKzMxMTYzLDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2ViQ29y
ZVRlc3RTdXBwb3J0LnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlFTkFC
TEVfRVM2X01PRFVMRVMgPSBFTkFCTEVfRVM2X01PRFVMRVM7CiAJCQl9OwogCQkJbmFtZSA9IFBy
b2R1Y3Rpb247CiAJCX07CkBAIC0zMTE2Miw2ICszMTE5Miw3IEBACiAJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUw
QkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdz
ID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCQlQ
Uk9EVUNUX05BTUUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7
CkBAIC0zMTE3MCw2ICszMTIwMSw3IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
IAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3
IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJM
RV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCQlQUk9EVUNUX05BTUUgPSAi
RGVyaXZlZCBTb3VyY2VzIjsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKQEAgLTMxMTc4LDYg
KzMxMjEwLDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSAxQ0RENDVFNTBCQTlDODQ2MDBGOTAxNDcgLyogV2ViQ29yZS54
Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJRU5BQkxFX0VTNl9NT0RVTEVT
ID0gRU5BQkxFX0VTNl9NT0RVTEVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICJEZXJpdmVkIFNvdXJj
ZXMiOwogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggZmY0MTVlZDI4NDA4OGUy
ODk1NWE2NGMwZTYxMmE4NTZkZWVkZDk3Zi4uZGU5YjE4YTRlNjE1MDA2Y2QyMTE0NDZmNmQ2ZTFm
NTU2N2M5NGVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRp
bmdzQWxsSW5PbmUuY3BwCkBAIC0xNDcsNiArMTQ3LDggQEAKICNpbmNsdWRlICJKU1hNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCIKICNp
bmNsdWRlICJKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
ZXIuY3BwIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5jcHAiCiAjaW5jbHVkZSAiU2NoZWR1bGVk
QWN0aW9uLmNwcCIKICNpbmNsdWRlICJTY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggODM1MDMzMzEzZWZlMTUyZjFlMzlmNGMxNTFiYmRj
MmYwYTFhZDdmYi4uOWY4ZGYwYjVmMmZlZGQwYjVmZTZmMWVmMWIwY2ZlYmM3N2EzZWI5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0z
MSwxMSArMzEsMTMgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUg
IkpTTm9kZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9NaWNyb3Rhc2suaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC01Niw3ICs1OCw3IEBAIHN0YXRpYyBib29sIHNob3Vs
ZEFsbG93QWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCwgRXhlY1N0
YXRlKiBlCiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd0Jhc2U6OnNfaW5mbyA9IHsgIldp
bmRvdyIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTRE9NV2luZG93QmFzZSkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNE
T01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dB
Y2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAm
c2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFz
a1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxl
ID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0
c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRp
bWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVm
b3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVs
bHB0ciwgbnVsbHB0ciwgJm1vZHVsZUxvYWRlckV2YWx1YXRlIH07CiAKIEpTRE9NV2luZG93QmFz
ZTo6SlNET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQ
dHI8RE9NV2luZG93PiB3aW5kb3csIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKQogICAgIDogSlNE
T01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgJnNoZWxsLT53b3JsZCgpLCAmc19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZSkKQEAgLTI3Niw0ICsyNzgsMzEgQEAgdm9pZCBKU0RPTVdpbmRvd0Jh
c2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRv
dykKICAgICB9CiB9CiAKKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFs
dWUgcmVmZXJyZXIpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpq
c0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1lbnQq
IGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVy
biBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBleGVjLCBt
b2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
KiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMs
IGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRl
ZmluZWQoKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSkKK3sKKyAgICBKU0RPTVdp
bmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9i
YWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBs
KCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+
ZmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXkpOworICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBkZWZlcnJlZC0+cmVq
ZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTVmFsdWUgSlNET01XaW5kb3dC
YXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpT
VmFsdWUgbW9kdWxlUmVjb3JkKQoreworICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9
IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKERv
Y3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5kb2N1bWVudCgpKQorICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFsdWF0ZShnbG9iYWxPYmplY3Qs
IGV4ZWMsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVm
aW5lZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDVlZDM4NjJjMTQxMTg3YzAwNmI2ODhk
Yjc5Nzc5NGIzNjk4MTA1NjQuLjJkNDRiODAwOWU1NGRiYjA3NGU4Zjk5NzdjMTZiMjVlMTI1N2Vh
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBA
IC03OCw2ICs3OCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTQzo6V2F0Y2hw
b2ludFNldCBtX3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHM7CiAKICAgICBwcml2YXRlOgorICAgICAg
ICAvLyBNb2R1bGUgTG9hZGVyIGhvb2tzLgorICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFs
UHJvbWlzZSogbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlND
OjpKU1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKwogICAgICAgICBSZWZQ
dHI8RE9NV2luZG93PiBtX2ltcGw7CiAgICAgICAgIEpTRE9NV2luZG93U2hlbGwqIG1fc2hlbGw7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmgKaW5kZXggMDllN2U1YjYwMjY4NzliNTMzNWExZmUxZWY3MWM0NDc0MzBiZmNk
NC4uNGZkNjgzZTE1OTEwMmIxNTI4N2Q2Mzg5OWMwMTZlZmQzNzQ4MDNlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKQEAgLTc0
LDYgKzc0LDI0IEBAIGNsYXNzIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSB7CiAgICAgICAgIHRhc2su
cnVuKGV4ZWMpOwogICAgIH0KIAorICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUp
CisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMp
OworICAgICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUpOworICAg
IH0KKworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCisgICAg
eworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMpOworICAg
ICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUpOworICAgIH0KKwor
ICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5KQor
ICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsK
KyAgICAgICAgcmV0dXJuIEpTQzo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKGV4ZWMsIG1vZHVsZUtl
eSk7CisgICAgfQorCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBp
bnN0cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBKU0M6OkNhbGxU
eXBlLCBjb25zdCBKU0M6OkNhbGxEYXRhJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyMGExMDIyOGU0MWFk
NDIzZGY5YmZjNmQ3OGE2ZGE1NjA2YmM1Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcApAQCAtMCwwICsxLDE0MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgi
CisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFNj
cmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50
KGRvY3VtZW50KQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQorICAgICwgbV9nbG9iYWxP
YmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QpCisgICAgLCBtX2RlZmVycmVk
KGdsb2JhbE9iamVjdC0+dm0oKSwgZGVmZXJyZWQpCit7Cit9CisKK01vZHVsZUZldGNoZXI6On5N
b2R1bGVGZXRjaGVyKCkKK3sKKyAgICBpZiAobV9jYWNoZWRTY3JpcHQpIHsKKyAgICAgICAgbV9j
YWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQg
PSBudWxscHRyOworICAgIH0KK30KKworUmVmPE1vZHVsZUZldGNoZXI+IE1vZHVsZUZldGNoZXI6
OmNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwmIHNvdXJj
ZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1lbnQm
IGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vZHVsZUZldGNoZXIoZ2xv
YmFsT2JqZWN0LCBzb3VyY2VVUkwsIGRlZmVycmVkLCBkb2N1bWVudCkpOworfQorCitib29sIE1v
ZHVsZUZldGNoZXI6OnJ1bigpCit7CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMg
PSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwor
ICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihDb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrKTsKKworICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX3NvdXJjZVVSTCksIG9wdGlvbnMp
OworICAgIC8vIEZJWE1FOiBTaG91bGQgaGFuZGxlICJjaGFyc2V0IiBvcHRpb25zLgorICAgIC8v
IE9uY2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBkZXRhaWxzLCB3ZSB3aWxsIGZvbGxvdyBpdC4K
KyAgICByZXF1ZXN0LnNldENoYXJzZXQobV9kb2N1bWVudC5jaGFyc2V0KCkpOworCisgICAgLy8g
RklYTUU6IFNob3VsZCBoYW5kbGUgImNyb3Nzb3JpZ2luIiBvcHRpb25zLgorICAgIC8vIE9uY2Ug
dGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBkZXRhaWxzLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICBy
ZXF1ZXN0LnNldEluaXRpYXRvcihBdG9taWNTdHJpbmcobV9zb3VyY2VVUkwuc3RyaW5nKCkpKTsK
KworICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9kb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CisgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gTm90ZTogSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFk
eSBjYWNoZWQsIHRoaXMgaW1tZWlkYXRlbHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCisgICAgbV9j
YWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Up
Cit7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9jYWNoZWRTY3Jp
cHQpOworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJldHVybjsKKworICAgIEFT
U0VSVChtX2NhY2hlZFNjcmlwdCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2Ny
aXB0PiBjYWNoZWRTY3JpcHQgPSBtX2NhY2hlZFNjcmlwdDsKKyAgICBtX2NhY2hlZFNjcmlwdCA9
IG51bGxwdHI7CisKKyNpZiBFTkFCTEUoTk9TTklGRikKKyAgICBpZiAoY2FjaGVkU2NyaXB0ICYm
ICFjYWNoZWRTY3JpcHQtPm1pbWVUeXBlQWxsb3dlZEJ5Tm9zbmlmZigpKSB7CisgICAgICAgIG1f
ZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsICJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGZyb20gJyIgKyBjYWNo
ZWRTY3JpcHQtPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicgYmVj
YXVzZSBpdHMgTUlNRSB0eXBlICgnIiArIGNhY2hlZFNjcmlwdC0+bWltZVR5cGUoKSArICInKSBp
cyBub3QgZXhlY3V0YWJsZSwgYW5kIHN0cmljdCBNSU1FIHR5cGUgY2hlY2tpbmcgaXMgZW5hYmxl
ZC4iKTsKKyAgICAgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIFJlZlB0cjxEb2N1bWVudD4gcHJvdGVjdCht
X2RvY3VtZW50KTsKKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkp
IHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9iamVjdC0+dm0oKSk7
CisgICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4
ZWMoKTsKKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC0+ZXJyb3JPY2N1cnJlZCgpKSB7CisgICAg
ICAgICAgICAvLyBUaGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZSBpcyBjb25zdHJ1Y3RlZCBhcyBh
IGNoYWluIG9mIHByb21pc2VzLgorICAgICAgICAgICAgLy8gUmVqZWN0aW5nIGEgcHJvbWlzZSBp
ZiBzb21lIGVycm9yIG9jY3VycyBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgZXhlY3V0aW9uIGZs
b3cgb2YKKyAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGNoYWluIGlzIGRyaXZlbiBieSAicmVq
ZWN0ZWQiIG9yICJmdWxmaWxsZWQiIGV2ZW50cy4KKyAgICAgICAgICAgIC8vIElmIHRoZSBwcm9t
aXNlIGlzIG5vdCByZWplY3RlZCB3aGlsZSBlcnJvciBvY2N1cnMsIHJlamVjdCBoYW5kbGVyIHdv
bid0IGJlIGV4ZWN1dGVkCisgICAgICAgICAgICAvLyBhbmQgYWxsIHRoZSBzdWJzZXF1ZW50IHBy
b21pc2UgY2hhaW4gd2lsbCB3YWl0IHRoZSByZXN1bHQgZm9yZXZlci4KKyAgICAgICAgICAgIC8v
CisgICAgICAgICAgICAvLyBBcyBhIHJlc3VsdCwgZXZlbiBpZiB0aGUgZXJyb3IgaXMgYWxyZWFk
eSByZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGVsc2V3aGVyZSwKKyAgICAgICAgICAgIC8vIGl0
IHNob3VsZCBiZSBwcm9wYWdhdGVkIGluIHRoZSBwaXBlbGluZS4gRm9yIGV4YW1wbGUsIHRoZSBl
cnJvciBvZiBsb2FkaW5nCisgICAgICAgICAgICAvLyBDYWNoZWRSZXNvdXJjZSBpcyBhbHJlYWR5
IHJlcG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgYnkgdGhlIGxvYWRlci4gQnV0IHdlIHN0aWxsIG5l
ZWQKKyAgICAgICAgICAgIC8vIHRvIHJlamVjdCB0aGUgcHJvbWlzZSBieSBzb21lIGVycm9yLgor
ICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdCB0byByZXBvcnQgdGhlIGVycm9yIHR3
aWNlLCB3aGVuIHdlIHByb3BhZ2F0ZSB0aGUgZXJyb3IgdGhhdCBpcyBhbHJlYWR5IHJlcG9ydGVk
CisgICAgICAgICAgICAvLyB0byB0aGUgaW5zcGVjdG9yLCB3ZSB0aHJvdyBtb2R1bGVMb2FkZXJB
bHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCBzeW1ib2wgaW5zdGVhZC4KKyAgICAgICAgICAgIC8v
IEJ5IGNvbXBhcmluZyB0aGUgdGhyb3duIGVycm9yIHdpdGggdGhpcyBzeW1ib2wsIHdlIGNhbiBk
aXN0aW5ndWlzaCBlcnJvcnMgcmFpc2VkCisgICAgICAgICAgICAvLyB3aGVuIGxpbmtpbmcgb3Ig
ZXhlY3V0aW5nIGEgbW9kdWxlIGdyYXBoIGZyb20gZXJyb3JzIHJlcG9ydGVkIGFscmVhZHkuCisg
ICAgICAgICAgICAvLyBJbiB0aGUgcmVqZWN0IGhhbmRsZXIgb2YgdGhlIHByb21pc2UsIHdlIG9u
bHkgcmVwb3J0IGEgZXJyb3IgdGhhdCBpcyBub3QgdGhpcyBzeW1ib2wuCisgICAgICAgICAgICBt
X2RlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAq
KGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgp
LnVpZCgpKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZWRTY3JpcHQtPndhc0NhbmNlbGVk
KCkpIHsKKyAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShjYWNoZWRTY3Jp
cHQuZ2V0KCkpOworICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBKU0M6Ompz
U3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkpKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIC8vIEEgQ2FjaGVkUmVzb3VyY2VIYW5kbGUgYWxvbmUgZG9lcyBub3QgcHJldmVudCB0aGUg
dW5kZXJseWluZyBDYWNoZWRSZXNvdXJjZQorICAgIC8vIGZyb20gcHVyZ2luZyBpdHMgZGF0YSBi
dWZmZXIuIFVudGlsIHdlIGZpbmlzaCB1c2luZyB0aGUgYmFja2luZyBidWZmZXIgb2YgdGhlCisg
ICAgLy8gY2FjaGVkIHNjcmlwdCwgd2UgZG9uJ3QgcmVtb3ZlIHRoZSBjbGllbnQuCisgICAgY2Fj
aGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisKKyAgICBtX2RvY3VtZW50Lm1vZHVsZUxv
YWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAvLyBBZnRlciBNb2R1bGVMb2FkZXI6
Om5vdGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUgZGVzdHJveWVkLgorfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkz
ZDM2YWUzNjBmMmY3MmIwZTk5ZWZiYTQzN2Y3MzU0NmI0NjIwZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuaApAQCAtMCwwICsxLDY5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVGZXRjaGVyX2gKKyNkZWZpbmUgTW9kdWxl
RmV0Y2hlcl9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8aGVh
cC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNz
IERvY3VtZW50OworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CisKK2NsYXNzIE1vZHVsZUZldGNo
ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVGZXRjaGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNv
dXJjZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxlRmV0Y2hlcik7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TW9kdWxlRmV0
Y2hlcj4gY3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisKKyAgICB+TW9kdWxl
RmV0Y2hlcigpOworCisgICAgYm9vbCBydW4oKTsKKworICAgIENhY2hlZFNjcmlwdCogY2FjaGVk
U2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAg
ICBNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkws
IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisKKyAgICAvLyBG
b3IgQ2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVk
KENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsK
KyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJvbmc8SlNET01HbG9iYWxPYmplY3Q+
IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3Jp
cHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIE1vZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01v
ZHVsZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwMmIxNjJkMDEyM2Y1YTA4OGFlZjdiZjBiNDNj
NTMyOTUyN2VjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L01vZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1pY3JvVGFzay5oIgorI2luY2x1
ZGUgIk1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1
ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9Db21wbGV0aW9u
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5j
bHVkZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJp
bmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL1N5bWJvbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK01vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6
IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIE1v
ZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZVZhbHVlLCBKU0M6OkpT
VmFsdWUgcmVmZXJyZXJWYWx1ZSkKK3sKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhl
YywgZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAobW9kdWxlTmFtZVZhbHVlLmlzU3ltYm9sKCkpCisg
ICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBtb2R1bGVOYW1lVmFsdWUpOwor
CisgICAgLy8gRklYTUU6IFdlIG5vdyBhc3N1bWUgdGhhdCBtb2R1bGUgbmFtZSBpcyBlaXRoZXIg
c3ltYm9sIG9yIHN0cmluZy4KKyAgICAvLyBXaGVuIGV4cG9zaW5nIHRoZSByZWZsZWN0aW9uIHRv
IHRoZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBuZWVkIHRvIHJlY2FzdCB0aGlzIHBh
cnQuCisgICAgQVNTRVJUKG1vZHVsZU5hbWVWYWx1ZS5pc1N0cmluZygpKTsKKyAgICBTdHJpbmcg
bW9kdWxlTmFtZSA9IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJpbmcqPihtb2R1bGVOYW1lVmFsdWUp
LT52YWx1ZShleGVjKTsKKworICAgIC8vIE5vdywgd2UgY29uc2lkZXIgdGhlIGdpdmVuIG1vZHVs
ZU5hbWUgYXMgdGhlIHNhbWUgdG8gdGhlIHNyYz0iLi4uIiBpbiB0aGUgc2NyaXB0IHRhZy4KKyAg
ICAvLyBXZSB1c2UgdGhlIGNvbXBsZXRlZCBVUkwgYXMgdGhlIG1vZHVsZSBrZXkuCisgICAgLy8K
KyAgICAvLyBGSVhNRTogV2UgbmVlZCBzaXRlIHBhY2thZ2luZyBzeXN0ZW0uIEJ1dCBpdCdzIG5v
dCBkZWZpbmVkIGluIHRoZSBzcGVjIHlldC4KKyAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIu
aW8vbG9hZGVyLyNicm93c2VyLWxvYWRlci1wcm90b3R5cGUtJTQwJTQwcmVzb2x2ZQorICAgIFVS
TCBjb21wbGV0ZWRVUkw7CisKKyAgICAvLyBGSVhNRTogQ2hlY2sgbV9kb2N1bWVudCBsaWZldGlt
ZS4KKyAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBjb21wbGV0ZWRV
UkwgPSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUpOworICAgIGVsc2UgeworICAg
ICAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgY29tcGxl
dGVkVVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVOYW1lKTsKKyAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlQocmVmZXJyZXJWYWx1ZS5pc1N0cmluZygpKTsKKyAgICAg
ICAgICAgIFN0cmluZyByZWZlcnJlciA9IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJpbmcqPihyZWZl
cnJlclZhbHVlKS0+dmFsdWUoZXhlYyk7CisgICAgICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2Rv
Y3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUsIFVSTChQYXJzZWRVUkxTdHJpbmcsIHJlZmVy
cmVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNWYWxpZCgp
KQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBjcmVhdGVET01FeGNlcHRp
b24oZXhlYywgU1lOVEFYX0VSUikpOworCisgICAgcmV0dXJuIGRlZmVycmVkLT5yZXNvbHZlKGV4
ZWMsIGpzU3RyaW5nKGV4ZWMsIGNvbXBsZXRlZFVSTC5zdHJpbmcoKSkpOworfQorCitKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXlWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogV2hlbiBpbXBsZW1lbnRpbmcgcmVmbGVjdGl2ZSBt
b2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBzaG91bGQgcmVjYXN0IHRoaXMgaW1wbGVtZW50
YXRpb24uCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpT
Qzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
CisKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpLCAi
U3ltYm9saWMgbW9kdWxlIGtleSBzaG91bGQgYmUgYWxyZWFkeSBmdWxmaWxsZWQgd2l0aCB0aGUg
aW5saW5lZCByZXNvdXJjZS4iKTsKKyAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmco
KSk7CisKKyAgICBKU0M6OklkZW50aWZpZXIgbW9kdWxlS2V5ID0gSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykpOwor
CisgICAgVVJMIGNvbXBsZXRlZFVSTChQYXJzZWRVUkxTdHJpbmcsIG1vZHVsZUtleS5pbXBsKCkp
OworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoY29tcGxldGVkVVJMLmlzVmFsaWQoKSwgIlRoZSBy
ZXNvbHZlIGhvb2sgc2hvdWxkIHByb2R1Y2UgdGhlIHZhbGlkIFVSTCBhcyBhIHN0cmluZy4iKTsK
KworICAgIFJlZjxNb2R1bGVGZXRjaGVyPiBmZXRjaGVyID0gTW9kdWxlRmV0Y2hlcjo6Y3JlYXRl
KEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgY29tcGxldGVk
VVJMLCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7CisgICAgbV9mZXRjaGluZ1NldC5hZGQoJmZldGNo
ZXIuZ2V0KCkpOworICAgIGlmICghZmV0Y2hlci0+cnVuKCkpIHsKKyAgICAgICAgaWYgKEZyYW1l
KiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBkZWZlcnJl
ZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgKihmcmFtZS0+
c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKS51aWQoKSkp
KTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworSlNDOjpK
U1ZhbHVlIE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUsIEpTQzo6SlNWYWx1
ZSBtb2R1bGVSZWNvcmRWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCB3ZSBvbmx5
IHN1cHBvcnQgSlNNb2R1bGVSZWNvcmQuCisgICAgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxl
UmVjb3JkID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNNb2R1bGVSZWNvcmQqPihtb2R1bGVS
ZWNvcmRWYWx1ZSk7CisgICAgaWYgKCFtb2R1bGVSZWNvcmQpCisgICAgICAgIHJldHVybiBKU0M6
OmpzVW5kZWZpbmVkKCk7CisKKyAgICBVUkwgc291cmNlVVJMOworICAgIGlmIChtb2R1bGVLZXlW
YWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBzb3VyY2VVUkwgPSBtX2RvY3VtZW50LnVybCgpOwor
ICAgIGVsc2UgeworICAgICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7Cisg
ICAgICAgIHNvdXJjZVVSTCA9IFVSTChQYXJzZWRVUkxTdHJpbmcsIGFzU3RyaW5nKG1vZHVsZUtl
eVZhbHVlKS0+dmFsdWUoZXhlYykpOworICAgIH0KKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBt
X2RvY3VtZW50LmZyYW1lKCkpCisgICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVh
dGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQpOworICAgIHJldHVybiBKU0M6OmpzVW5k
ZWZpbmVkKCk7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVG
ZXRjaGVyKiBmZXRjaGVyKQoreworICAgIG1fZmV0Y2hpbmdTZXQucmVtb3ZlKGZldGNoZXIpOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM0OTM2OTY4MTY1ZWVkODU4MTAxNzgxY2QxODU0NzBjOGViNWUwZDAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuaApAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVMb2FkZXJfaAorI2RlZmluZSBN
b2R1bGVMb2FkZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIk1vZHVsZUZl
dGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisj
aW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFzcyBN
b2R1bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUxvYWRlcik7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1vZHVsZUxvYWRl
cihEb2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXks
IEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCisgICAgdm9pZCBub3RpZnlGaW5pc2hlZChN
b2R1bGVGZXRjaGVyKik7Citwcml2YXRlOgorICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAg
IEhhc2hTZXQ8UmVmUHRyPE1vZHVsZUZldGNoZXI+PiBtX2ZldGNoaW5nU2V0OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNGIzYjA5
NzJiZTc3ZjNjNzY1OTVmMTQwZTI2YTc0OGZmOGVhNDUwYy4uOTliN2Y4YjYyYTRiN2ZlYWVmM2Zj
NWI0YTdjZWQ3MThhNTNlZDNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM2LDExICszNiwxMyBAQAogI2luY2x1ZGUgIkpTTWFp
blRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk1l
bW9yeVByZXNzdXJlSGFuZGxlci5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCiAjaW5jbHVk
ZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNv
bGVDbGllbnQuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3
QmFzZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3Vy
Y2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKQEAgLTU0LDcgKzU2LDExIEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1Nj
cmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRl
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTRnVu
Y3Rpb24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+
CisjaW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogCkBAIC04
Niw2ICs5Miw3IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xsZXIoRnJhbWUmIGZy
YW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fc291cmNlVVJMKDApCiAgICAgLCBt
X3BhdXNlZChmYWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JT
eW1ib2woKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV93aW5kb3dT
Y3JpcHROUE9iamVjdCgwKQogI2VuZGlmCkBAIC0xNzUsMTEgKzE4MiwxMjggQEAgRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUKICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+
dm0oKSwgcmV0dXJuVmFsdWUpOwogfQogCi1EZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRD
b250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKSAK
K0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0
IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAgICAgcmV0dXJuIGV2YWx1YXRlSW5X
b3JsZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiB9CiAKK3N0YXRpYyB2
b2lkIGhhbmRsZU1vZHVsZUxvYWRlckVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBlcnJv
ciwgY29uc3QgUHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3lt
Ym9sKQoreworICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3IgaXMgbWFya2VkIGFzIG1vZHVsZUxv
YWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAgIC8vIERvbid0IHJlcG9ydCBpdCBo
ZXJlIGFnYWluLgorICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9IGpzRHluYW1pY0Nhc3Q8U3ltYm9s
Kj4oZXJyb3IpKSB7CisgICAgICAgIGlmIChzeW1ib2wtPnByaXZhdGVOYW1lKCkgPT0gbW9kdWxl
TG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgaGF2ZSBub3Qgc3VwcG9ydGVkIHRoZSAi
Y3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSBpbiB0aGUgbW9kdWxlIHRhZywKKyAgICAvLyB3ZSBwYXNz
IHRoZSBudWxscHRyIHRvIHJlcG9ydEV4Y2VwdGlvbidzIENhY2hlZFNjcmlwdCogcGFyYW1ldGVy
LiBXaGVuIHBhc3NpbmcgbnVsbHB0cgorICAgIC8vIHRvIHJlcG9ydEV4Y2VwdGlvbiwgV2ViQ29y
ZSBkb2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVycm9yIGlmIHRoZSBVUkwgb2YgdGhl
CisgICAgLy8gc291cmNlIGRvZXMgbm90IHBhc3MgdGhlIHNhbWUgb3JpZ2luIHBvbGljeS4gU28g
dGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgY29uc2VydmF0aXZlOworICAgIC8vIG9ubHkgdGhlIG1v
ZHVsZSBjb2RlIHRoYXQgVVJMIGlzIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4gY2FuIHJlcG9ydCB0
aGUgZGV0YWlscyBvZiB0aGUKKyAgICAvLyBlcnJvci4gT25jZSB0aGUgc3BlYyBkZXNjcmliZXMg
dGhlIGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICByZXBvcnRFeGNlcHRpb24oZXhl
YywgZXJyb3IsIG51bGxwdHIpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1
bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU3RyaW5nJiBtb2R1bGVO
YW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdv
cmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3
b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVj
KCk7CisKKyAgICBpbml0TW9kdWxlR3JhcGgobW9kdWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNT
dGF0ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKSwgd29ybGQpOworfQorCit2b2lkIFNj
cmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25z
dCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgbG9hZE1vZHVsZUluV29ybGQobW9kdWxlR3Jh
cGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwordm9pZCBTY3Jp
cHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgs
IGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIERPTVdyYXBwZXJXb3JsZCYgd29y
bGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdp
bmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4
ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIGluaXRNb2R1bGVHcmFw
aChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGV4ZWMsIHNv
dXJjZUNvZGUuanNTb3VyY2VDb2RlKCkpLCB3b3JsZCk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJv
bGxlcjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgbG9hZE1vZHVsZUluV29ybGQobW9kdWxlR3Jh
cGgsIHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwordm9pZCBTY3Jp
cHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBt
b2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIg
bG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93
U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xv
YmFsRXhlYygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU01haW5UaHJl
YWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBJZGVudGlmaWVyOjpmcm9t
VWlkKCZleGVjLT52bSgpLCBtb2R1bGVHcmFwaC5tb2R1bGVLZXkoKSkpOworCisgICAgV2Vha1B0
cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtFbGVtZW50UHRyKCkpOworICAgIEpT
RnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4
ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFt3ZWFrUHRyXShFeGVjU3Rh
dGUqKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0
KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkp
LT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIFByaXZhdGVOYW1lIG1v
ZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sID0gbV9tb2R1bGVMb2FkZXJBbHJl
YWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICBKU0Z1bmN0aW9uKiByZWplY3RIYW5kbGVyID0g
SlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwg
MSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCwgd2Vh
a1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxl
bWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3Np
YmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsKKyAg
ICAgICAgaGFuZGxlTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIG1v
ZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKTsKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIHByb21pc2UtPnRo
ZW4oZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRsZXIpOworfQorCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3Jh
cGgpCit7CisgICAgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFwaCwgbWFp
blRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3Jp
cHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1
bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBK
U0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIGNvbnN0IFNvdXJjZUNvZGUmIGpz
U291cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29kZSgpOworCisgICAgSlNET01XaW5k
b3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVj
ID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisgICAgY29uc3QgU3RyaW5nKiBzYXZl
ZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTC5z
dHJpbmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKKworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwsIGpzU291cmNlQ29kZS5m
aXJzdExpbmUoKSk7CisKKyAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gbW9kdWxlUmVjb3JkLT5l
dmFsdWF0ZShleGVjKTsKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRp
b247CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICBldmFsdWF0aW9uRXhj
ZXB0aW9uID0gZXhlYy0+dm0oKS5leGNlcHRpb24oKTsKKworICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llLCBtX2ZyYW1lKTsKKworICAgIGlmIChl
dmFsdWF0aW9uRXhjZXB0aW9uKSB7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBldmFs
dWF0aW9uRXhjZXB0aW9uLCBudWxscHRyKTsKKyAgICAgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNv
dXJjZVVSTDsKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKCk7CisgICAg
fQorCisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICByZXR1cm4gRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOworfQorCitEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBV
UkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCkKK3sKKyAgICByZXR1
cm4gZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQsIG1haW5UaHJlYWROb3Jt
YWxXb3JsZCgpKTsKK30KKwogUmVmPERPTVdyYXBwZXJXb3JsZD4gU2NyaXB0Q29udHJvbGxlcjo6
Y3JlYXRlV29ybGQoKQogewogICAgIHJldHVybiBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RP
TVdpbmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0yNzIsNiArMzk2LDQxIEBAIEpTRE9NV2luZG93U2hl
bGwqIFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkK
ICAgICByZXR1cm4gd2luZG93U2hlbGw7CiB9CiAKK3N0YXRpYyBJZGVudGlmaWVyIGpzVmFsdWVU
b01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZh
bHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tVWlkKGpzQ2Fz
dDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCh2YWx1ZS5pc1N0
cmluZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBqc0Nhc3Q8
SlNTdHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9s
bGVyOjppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBKU0ludGVybmFs
UHJvbWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdp
bmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4
ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8RWxlbWVu
dD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0cigpKTsKKyAgICBKU0Z1bmN0aW9u
KiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgp
LCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVj
KSB7CisgICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQgZWxlbWVudCBhbmQgZG9jdW1lbnQg
bWF5IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUgbW9kdWxlLgorICAgICAgICAvLyBJ
biB0aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBtb2R1bGUgYm9keS4KKyAgICAgICAg
aWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkgeworICAgICAgICAg
ICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZXhlYywgZXhlYy0+
YXJndW1lbnQoMCkpOworICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVt
ZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5TG9hZGVkKG1vZHVsZUtleS5pbXBsKCkp
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0
ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7
CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNy
ZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbbW9kdWxlTG9h
ZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykg
eworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFrUHRyLmdldCgpKQor
ICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9k
dWxlR3JhcGgoKS0+bm90aWZ5RXJyb3JlZCgpOworICAgICAgICBoYW5kbGVNb2R1bGVMb2FkZXJF
cnJvcihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVk
RXJyb3JTeW1ib2wpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxsSGFuZGxlciwg
cmVqZWN0SGFuZGxlcik7Cit9CisKIFRleHRQb3NpdGlvbiBTY3JpcHRDb250cm9sbGVyOjpldmVu
dEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IElmIHdlIGFyZSBub3Qg
Y3VycmVudGx5IHBhcnNpbmcsIHdlIHNob3VsZCB1c2Ugb3VyIGN1cnJlbnQgbG9jYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCAwN2M1
M2I3YzhlZGZiNGUyOGY1Y2ExM2FhMmM0ZTA1NTk0ZWY1MTIyLi45MDFiNTNlYmFmNTRjNDc4Zjdk
NDFlZjFkYzUxNTBjMWIwODVhOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCw5IEBAIGNsYXNzIFNjcmlwdFZhbHVlOwog
CiBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKKyAgICBjbGFzcyBK
U01vZHVsZVJlY29yZDsKKyAgICBjbGFzcyBKU0ludGVybmFsUHJvbWlzZTsKKwogICAgIGNsYXNz
IEV4ZWNTdGF0ZTsKIAogICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CkBAIC01Nyw2ICs2MCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTERvY3VtZW50Owog
Y2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CitjbGFzcyBNb2R1bGVHcmFwaDsKIGNsYXNzIFNjcmlw
dFNvdXJjZUNvZGU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdpZGdldDsKQEAgLTEx
NSw2ICsxMTksMTcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAgICAgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwogICAgIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
JiwgRE9NV3JhcHBlcldvcmxkJik7CiAKKyAgICB2b2lkIGxvYWRNb2R1bGVJbldvcmxkKE1vZHVs
ZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmKTsKKyAg
ICB2b2lkIGxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUp
OworICAgIHZvaWQgbG9hZE1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmLCBjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBsb2FkTW9kdWxlKE1vZHVs
ZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworCisgICAgdm9pZCBsaW5rQW5kRXZh
bHVhdGVNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiAsIERPTVdyYXBwZXJXb3JsZCYpOworICAg
IHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKE1vZHVsZUdyYXBoJik7CisKKyAgICBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpTTW9kdWxl
UmVjb3JkKiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUg
ZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiwgSlNDOjpKU01vZHVsZVJlY29yZCopOworCiAgICAg
V1RGOjpUZXh0UG9zaXRpb24gZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdDsKIAogICAgIHZv
aWQgZW5hYmxlRXZhbCgpOwpAQCAtMTM1LDYgKzE1MCw4IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xs
ZXIgewogCiAgICAgY29uc3QgU3RyaW5nKiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3Nv
dXJjZVVSTDsgfSAvLyAwIGlmIHdlIGFyZSBub3QgZXZhbHVhdGluZyBhbnkgc2NyaXB0CiAKKyAg
ICBjb25zdCBKU0M6OlByaXZhdGVOYW1lJiBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJv
clN5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJy
b3JTeW1ib2w7IH0KKwogICAgIHZvaWQgY2xlYXJXaW5kb3dTaGVsbChET01XaW5kb3cqIG5ld0RP
TVdpbmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOwogICAgIHZvaWQgdXBkYXRlRG9jdW1l
bnQoKTsKIApAQCAtMTcwLDYgKzE4Nyw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogCiBw
cml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93U2hlbGwqIGluaXRTY3JpcHQo
RE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBpbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgm
LCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiwgRE9NV3JhcHBlcldvcmxkJik7CiAKICAgICB2b2lk
IGRpc2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKIApAQCAtMTc4LDYgKzE5Niw3IEBA
IGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIGNvbnN0IFN0cmluZyogbV9zb3VyY2VVUkw7
CiAKICAgICBib29sIG1fcGF1c2VkOworICAgIEpTQzo6UHJpdmF0ZU5hbWUgbV9tb2R1bGVMb2Fk
ZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKIAogICAgIC8vIFRoZSByb290IG9iamVjdCB1
c2VkIGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhlIGNvbnRleHQgb2YgYSBwbHVnaW4sIHN1
Y2gKICAgICAvLyBhcyBOUEFQSSBwbHVnaW5zLiBUaGUgcGx1Z2lucyB1c2luZyB0aGVzZSBvYmpl
Y3RzIHByZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVkIHNvIHRoZXkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwCmluZGV4IGQ5MWI2M2E2MjRiNGUwMjZiYjI4ZTZlNGUzNTY2NzExMTdk
M2M1OGUuLjc2OTgyZTBhNmZiNTMxMTcyOGVlNmRjY2NiMTQxNGNjYjM0NmE5NjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtOTgsNiArOTgsNyBAQAogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0LmNwcCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5uZWwuY3BwIgogI2luY2x1ZGUg
Ik1pY3JvVGFzay5jcHAiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguY3BwIgogI2luY2x1ZGUgIk1v
dXNlRXZlbnQuY3BwIgogI2luY2x1ZGUgIk1vdXNlUmVsYXRlZEV2ZW50LmNwcCIKICNpbmNsdWRl
ICJNdXRhdGlvbkV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDdiMTFlMzlh
MWEzZDBiNGEwMzdkZTgzNWZiOTIxZjgxY2MwMjI3ZDEuLmFiNjU1Yjc5ZGI0ZDdlYTM3ODA3MDUz
ODg5YjI3ZmZmNjYyOTA2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA0LDYgKzEw
NCw3IEBACiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlM
aXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVM
b2FkZXIuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW5j
bHVkZSAiTmFtZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIu
aCIKQEAgLTQ2NCw2ICs0NjUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwogICAgICwgbV9z
dGFydFRpbWUoc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpCiAgICAgLCBtX292ZXJN
aW5pbXVtTGF5b3V0VGhyZXNob2xkKGZhbHNlKQogICAgICwgbV9zY3JpcHRSdW5uZXIoc3RkOjpt
YWtlX3VuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKHN0
ZDo6bWFrZV91bmlxdWU8TW9kdWxlTG9hZGVyPigqdGhpcykpCiAgICAgLCBtX3htbFZlcnNpb24o
QVNDSUlMaXRlcmFsKCIxLjAiKSkKICAgICAsIG1feG1sU3RhbmRhbG9uZShTdGFuZGFsb25lVW5z
cGVjaWZpZWQpCiAgICAgLCBtX2hhc1hNTERlY2xhcmF0aW9uKGZhbHNlKQpAQCAtNjA1LDYgKzYw
Nyw3IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRV
bmxlc3NTdXNwZW5kZWRGb3JQYWdlQ2FjaGUoKTsKIAogICAgIG1fc2NyaXB0UnVubmVyID0gbnVs
bHB0cjsKKyAgICBtX21vZHVsZUxvYWRlciA9IG51bGxwdHI7CiAKICAgICByZW1vdmVBbGxFdmVu
dExpc3RlbmVycygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGY5MTgwODlmMjNiMmZiM2Ex
OGRmYmQyMWY1ZjcwMzk4MDUwNzViYTcuLjlhNzhiMjM1YTY1OGI2MWM4OGMxYzY3ZjY3Y2JlZGU0
NDFiOWE1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMzAsNiArMTMwLDcgQEAgY2xhc3Mg
TWVkaWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CiBj
bGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworY2xhc3MgTW9k
dWxlTG9hZGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5h
bWVkRmxvd0NvbGxlY3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpAQCAtOTM0LDYgKzkzNSw3IEBA
IGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUs
IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgRG9jdW1lbnQmIHRvcERvY3VtZW50KCkgY29u
c3Q7CiAgICAgCiAgICAgU2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX3Nj
cmlwdFJ1bm5lci5nZXQoKTsgfQorICAgIE1vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyKCkgeyBy
ZXR1cm4gbV9tb2R1bGVMb2FkZXIuZ2V0KCk7IH0KIAogICAgIEhUTUxTY3JpcHRFbGVtZW50KiBj
dXJyZW50U2NyaXB0KCkgY29uc3QgeyByZXR1cm4gIW1fY3VycmVudFNjcmlwdFN0YWNrLmlzRW1w
dHkoKSA/IG1fY3VycmVudFNjcmlwdFN0YWNrLmxhc3QoKS5nZXQoKSA6IDA7IH0KICAgICB2b2lk
IHB1c2hDdXJyZW50U2NyaXB0KFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+KTsKQEAgLTE1
MTgsNiArMTUyMCw3IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1
YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgYm9vbCBtX292ZXJN
aW5pbXVtTGF5b3V0VGhyZXNob2xkOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRS
dW5uZXI+IG1fc2NyaXB0UnVubmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVMb2FkZXI+
IG1fbW9kdWxlTG9hZGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4+
IG1fY3VycmVudFNjcmlwdFN0YWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TW9kdWxlR3JhcGguY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NDE3YTJjZDRlOGIxZTQ2YjA1MDIxM2IzMDU5NjEzYzc3MjZhZTg3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcApAQCAtMCwwICsx
LDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVs
ZUdyYXBoLmgiCisKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1
ZGUgIlNjcmlwdFJ1bm5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitNb2R1bGVHcmFwaDo6TW9kdWxlR3JhcGgoRWxlbWVudCYgZWxl
bWVudCkKKyAgICA6IG1fZWxlbWVudChlbGVtZW50KQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSgm
ZWxlbWVudCkKK3sKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKFVuaXF1ZWRT
dHJpbmdJbXBsKiBtb2R1bGVLZXkpCit7CisgICAgbV9tb2R1bGVLZXkgPSBtb2R1bGVLZXk7Cisg
ICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBo
UmVhZHkodG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQg
TW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQoKQoreworICAgIG1fZXJyb3JlZCA9IHRydWU7Cisg
ICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBo
UmVhZHkodG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQg
TW9kdWxlR3JhcGg6OmV2YWx1YXRlKCkKK3sKKyAgICBpZiAobV9lcnJvcmVkKQorICAgICAgICB0
b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaEVycm9yRXZlbnQo
KTsKKyAgICBlbHNlIGlmIChGcmFtZSogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFt
ZSgpKQorICAgICAgICBmcmFtZS0+c2NyaXB0KCkubGlua0FuZEV2YWx1YXRlTW9kdWxlKCp0aGlz
KTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXZhbHVhdGVkKCkKK3sKKyAgICB0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaExvYWRFdmVudCgpOwor
fQorCit2b2lkIE1vZHVsZUdyYXBoOjpsb2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sK
KyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50
LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgbW9kdWxlTmFt
ZSk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6OmxvYWQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYg
c291cmNlQ29kZSkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7
CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgq
dGhpcywgc291cmNlQ29kZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb2R1bGVHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzE2ZTg5N2NiYzAyODFlNWVmMTU4MTgwZGNhZTliZjYyYjY2YTBlOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oCkBAIC0wLDAgKzEsNzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUdyYXBoX2gKKyNkZWZpbmUgTW9kdWxlR3Jh
cGhfaAorCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7
CitjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOworCisvLyBLZWVwIGxpZmV0aW1lIG9mIGEgTW9kdWxl
R3JhcGggdGhlIHNhbWUgdG8gYSBTY3JpcHRFbGVtZW50LgorY2xhc3MgTW9kdWxlR3JhcGggewor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUdyYXBoKTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTW9kdWxlR3JhcGgoRWxlbWVudCYpOworCisg
ICAgRWxlbWVudCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsgfQorICAgIFVuaXF1ZWRT
dHJpbmdJbXBsKiBtb2R1bGVLZXkoKSB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQorCisg
ICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisgICAgdm9pZCBsb2FkKGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKyAgICB2b2lkIGV2YWx1YXRlKCk7CisKKyAgICBXZWFr
UHRyPEVsZW1lbnQ+IHdlYWtFbGVtZW50UHRyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlmeUxv
YWRlZChVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KTsKKyAgICB2b2lkIG5vdGlmeUVycm9y
ZWQoKTsKKworICAgIHZvaWQgbm90aWZ5RXZhbHVhdGVkKCk7CisKKyAgICBib29sIGVycm9yT2Nj
dXJyZWQoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yZWQ7IH0KKyAgICBib29sIGlzTG9hZGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXk7IH0KKworcHJpdmF0ZToKKworICAgIEVsZW1lbnQm
IG1fZWxlbWVudDsKKyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1fbW9kdWxlS2V5Owor
ICAgIFdlYWtQdHJGYWN0b3J5PEVsZW1lbnQ+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAgYm9vbCBt
X2Vycm9yZWQgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRl
eCA2NmJiZWNlMWQzNWUxYTQ3NjNiZjllYmViZjBmMGMxMmNkYmVmMWQ3Li4yZWM2YmRlOWRiMmY3
ZDcyNjUwMDM1YTliMTJkYmM2ODViNjczNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIklnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgiCiAjaW5j
bHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0
RWxlbWVudC5oIgpAQCAtMTYxLDYgKzE2MiwxMCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OmlzU2Ny
aXB0VHlwZVN1cHBvcnRlZChMZWdhY3lUeXBlU3VwcG9ydCBzdXBwb3J0TGVnYWN5VHlwZXMpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IGVsc2UgaWYgKE1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKHR5cGUuc3RyaXBXaGl0ZVNwYWNlKCkubG93
ZXIoKSkgfHwgKHN1cHBvcnRMZWdhY3lUeXBlcyA9PSBBbGxvd0xlZ2FjeVR5cGVJblR5cGVBdHRy
aWJ1dGUgJiYgaXNMZWdhY3lTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UodHlwZSkpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoRVM2X01PRFVMRVMpCisgICAgZWxzZSBpZiAo
dHlwZSA9PSAibW9kdWxlIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKQEAgLTIxNyw2ICsyMjIsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnBy
ZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdh
YwogICAgIGVsc2UKICAgICAgICAgbV9jaGFyYWN0ZXJFbmNvZGluZyA9IGRvY3VtZW50LmNoYXJz
ZXQoKTsKIAorICAgIGlmIChpc01vZHVsZVR5cGUoKSkKKyAgICAgICAgcmV0dXJuIGxvYWRNb2R1
bGUoc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKICAgICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkp
CiAgICAgICAgIGlmICghcmVxdWVzdFNjcmlwdChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMxNyw2ICszMjUsOSBAQCB2b2lkIFNjcmlwdEVs
ZW1lbnQ6OnN0b3BMb2FkUmVxdWVzdCgpCiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVt
b3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IDA7CiAgICAgfQorICAg
IC8vIEZJWE1FOiBUaGUgbW9kdWxlIGxvYWRlciBzaG91bGQgaGF2ZSB0aGUgbWVjaGFuaXNtIHRv
IHN0b3AgbG9hZGluZy4KKyAgICAvLyBUaGUgY3VycmVudCBsb2FkZXIgc3BlYyBkb2VzIG5vdCBo
YXZlIHRoaXMuIE9uY2UgaXQgaXMgc3BlY2lmaWVkCisgICAgLy8gd2Ugd2lsbCBpbnRyb2R1Y2Ug
dGhpcyBmZWF0dXJlLgogfQogCiB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGUoQ2FjaGVkU2Ny
aXB0KiBjYWNoZWRTY3JpcHQpCkBAIC0zMzIsNiArMzQzLDU3IEBAIHZvaWQgU2NyaXB0RWxlbWVu
dDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKICAgICBjYWNoZWRTY3JpcHQt
PnJlbW92ZUNsaWVudCh0aGlzKTsKIH0KIAorYm9vbCBTY3JpcHRFbGVtZW50Ojpsb2FkTW9kdWxl
KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3sKKyAgICAvLyBUaGUg
YnJvd3NlciBtb2R1bGUgbG9hZGVyIGxvYWRzIHRoZSBtb2R1bGUgc291cmNlcy4KKyAgICAvLyBT
aW5jZSB0aGUgbW9kdWxlIGludm9sdmVzIGxvYWRpbmcgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVz
IGFuZCB0aGUgZGVwZW5kZW50IG1vZHVsZXMgZG9lcyBub3QgaGF2ZSBjb3JyZXNwb25kaW5nIHNj
cmlwdCBlbGVtZW50cywKKyAgICAvLyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBsb2FkaW5nIG1vZHVs
ZXMgaXMgc2VwYXJhdGVkIGZyb20gdGhlIHNjcmlwdCBlbGVtZW50LgorICAgIGlmIChoYXNTb3Vy
Y2VBdHRyaWJ1dGUoKSkgeworICAgICAgICBTdHJpbmcgc291cmNlVXJsID0gc291cmNlQXR0cmli
dXRlVmFsdWUoKTsKKyAgICAgICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50KG1fZWxl
bWVudC5kb2N1bWVudCgpKTsKKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVM
b2FkRXZlbnQoc291cmNlVXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICAvLyBTY3JpcHQgZWxlbWVudCBtYXkgYmUgZGV0YWNoZWQgYW5kIGF0dGFjaGVkIHRvIGEgZGlm
ZmVyZW50IGRvY3VtZW50IHdoaWxlIGV4ZWN1dGluZyB0aGUgZXZlbnQgbGlzdGVuZXIuCisgICAg
ICAgIGlmICghbV9lbGVtZW50LmluRG9jdW1lbnQoKSB8fCAmbV9lbGVtZW50LmRvY3VtZW50KCkg
IT0gb3JpZ2luYWxEb2N1bWVudC5wdHIoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICBpZiAoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCku
aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQg
c3VwcG9ydCBjcm9zcy1vcmlnaW4gbW9kZSBpbiB0aGUgbW9kdWxlIHRhZy4KKyAgICAgICAgLy8g
SG93ZXZlciB3ZSBkb24ndCBoYXZlIHRoZSBwb2xpY3kgdG8gYXBwbHkgdGhpcyBtb2RlIHRvIHRo
ZSByZXNvdXJjZXMgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAvLyBQcm92aWRl
ZCBtdWx0aXBsZSBtb2R1bGUgdGFncywKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICBBOiA8c2Ny
aXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuLi4iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2Ny
aXB0PgorICAgICAgICAvLyAgIEI6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiI+PC9z
Y3JpcHQ+CisgICAgICAgIC8vCisgICAgICAgIC8vICdBJyBoYXMgdGhlICJjcm9zc29yaWdpbiIg
YXR0cmlidXRlLiBCdXQgJ0InIGRvZXMgbm90IGhhdmUgaXQuCisgICAgICAgIC8vIEhvd2V2ZXIs
IEVTNiBtb2R1bGVzIGFsbG93ICdBJyBhbmQgJ0InIHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGFu
ZCBpdCB3aWxsIGJlIGNhY2hlZCBpbiB0aGUKKyAgICAgICAgLy8gbW9kdWxlIGxvYWRlci4gSW4g
dGhhdCBjYXNlLCBpdCBpcyBjb250cm92ZXJzaWFsIHRoYXQgd2hpY2ggImNyb3Nzb3JpZ2luIiBh
dHRyaWJ1dGUgd2lsbCBiZQorICAgICAgICAvLyBhcHBsaWVkIHRvIHRoZSBtb2R1bGUgbG9hZGVk
IGJ5IHRoZSBib3RoLiBPbmNlIHRoZSBzcGVjIG9mIHRoZSBtb2R1bGUgbG9hZGVyIGlzIGZpeGVk
LCB3ZQorICAgICAgICAvLyBzaG91bGQgZm9sbG93IGl0LgorCisgICAgICAgIG1faXNFeHRlcm5h
bFNjcmlwdCA9IHRydWU7CisgICAgICAgIG1fbW9kdWxlR3JhcGggPSBzdGQ6Om1ha2VfdW5pcXVl
PE1vZHVsZUdyYXBoPihtX2VsZW1lbnQpOworICAgICAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5z
Y3JpcHRSdW5uZXIoKS0+cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbih0aGlzLCAqbV9tb2R1
bGVHcmFwaCk7CisgICAgICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoc291cmNlQXR0cmlidXRlVmFs
dWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmICghbV9lbGVtZW50
LmRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lU2NyaXB0KG1f
ZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBtX3N0YXJ0TGluZU51bWJlciwgbV9lbGVtZW50Lmlz
SW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8v
IFJlc2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgorICAgIFRleHRQb3NpdGlv
biBwb3NpdGlvbiA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmlzSW5Eb2N1bWVudFdyaXRlKCkgPyBU
ZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CisgICAgbV9tb2R1bGVHcmFwaCA9
IHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50
LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24o
dGhpcywgKm1fbW9kdWxlR3JhcGgpOworICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoU2NyaXB0U291
cmNlQ29kZShzY3JpcHRDb250ZW50KCksIG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBwb3Np
dGlvbikpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFNjcmlwdEVsZW1lbnQ6Om5vdGlm
eUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQoIW1fd2ls
bEJlUGFyc2VyRXhlY3V0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggYjdl
NzNkMGRlZTgzZDMyNGU4NzJmN2JjNGMxYjkzM2RjOTZjMTEyYS4uNmU1YzIxNDI5NGQ4MTk2OGM4
NmUwZDA3YTY5NzA3NDM5NGExYzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBA
IC0zMSw2ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFNjcmlwdDsK
IGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBFbGVtZW50OworY2xhc3MgTW9kdWxlR3JhcGg7
CiBjbGFzcyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIApAQCAtNTks
NiArNjAsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CiAgICAgYm9vbCByZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQ7IH0KICAgICBib29sIHdpbGxFeGVjdXRlV2hlbkRv
Y3VtZW50RmluaXNoZWRQYXJzaW5nKCkgY29uc3QgeyByZXR1cm4gbV93aWxsRXhlY3V0ZVdoZW5E
b2N1bWVudEZpbmlzaGVkUGFyc2luZzsgfQogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNjcmlwdD4gY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQ7IH0KKyAgICBN
b2R1bGVHcmFwaCogbW9kdWxlR3JhcGgoKSB7IHJldHVybiBtX21vZHVsZUdyYXBoLmdldCgpOyB9
CiAKIHByb3RlY3RlZDoKICAgICBTY3JpcHRFbGVtZW50KEVsZW1lbnQmLCBib29sIGNyZWF0ZWRC
eVBhcnNlciwgYm9vbCBpc0V2YWx1YXRlZCk7CkBAIC04Miw2ICs4NCw4IEBAIGNsYXNzIFNjcmlw
dEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIHJlcXVl
c3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOwogICAgIHZvaWQgc3RvcExvYWRSZXF1
ZXN0KCk7CiAKKyAgICBib29sIGxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRT
dGFydFBvc2l0aW9uKTsKKwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRS
ZXNvdXJjZSopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBTdHJpbmcgc291cmNlQXR0cmlidXRl
VmFsdWUoKSBjb25zdCA9IDA7CkBAIC05Myw2ICs5Nyw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQg
OiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNB
dHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1
dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRl
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBjb25zdCA9IDA7
CiAKICAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKQEAgLTEwOSw2ICsxMTQsNyBAQCBjbGFzcyBTY3Jp
cHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCBtX3Jl
cXVlc3RVc2VzQWNjZXNzQ29udHJvbCA6IDE7CiAgICAgU3RyaW5nIG1fY2hhcmFjdGVyRW5jb2Rp
bmc7CiAgICAgU3RyaW5nIG1fZmFsbGJhY2tDaGFyYWN0ZXJFbmNvZGluZzsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8TW9kdWxlR3JhcGg+IG1fbW9kdWxlR3JhcGg7CiB9OwogCiBTY3JpcHRFbGVtZW50
KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dFJ1bm5lci5jcHAKaW5kZXggOTYzNjk4MDRhZDhmMDc0YmQ3MzZhZmJmYjUwMmE0NWZjOTE1NzYw
MS4uYWIxZDg4ZWFmNzU3NWQzNDQ2ZjM0MGEzMTVlZmEwMTIzNGEyZjUzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRT
Y3JpcHQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWljcm9UYXNrLmgiCisj
aW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5j
bHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCkBAIC00OCw2ICs0OSwxMCBAQCBTY3JpcHRSdW5uZXI6
On5TY3JpcHRSdW5uZXIoKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERl
bGF5Q291bnQoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nQXN5bmNT
Y3JpcHRzLnNpemUoKTsgKytpKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVu
dERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbW9kdWxlU2NyaXB0
RWxlbWVudHNUb0V4ZWN1dGVTb29uLnNpemUoKTsgKytpKQorICAgICAgICBtX2RvY3VtZW50LmRl
Y3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1f
ZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogfQogCiB2b2lkIFNjcmlw
dFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxl
bWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQsIEV4
ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKQEAgLTcxLDYgKzc2LDE4IEBAIHZvaWQgU2NyaXB0
UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVt
ZW50LCBDYWNoZWRSCiAgICAgfQogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVNb2R1bGVH
cmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBNb2R1bGVHcmFw
aCYpCit7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOworCisgICAgRWxlbWVudCYgZWxlbWVu
dCA9IHNjcmlwdEVsZW1lbnQtPmVsZW1lbnQoKTsKKyAgICBBU1NFUlQoZWxlbWVudC5pbkRvY3Vt
ZW50KCkpOworCisgICAgbV9kb2N1bWVudC5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7
CisKKyAgICBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5hZGQoJmVsZW1lbnQpOworfQor
CiB2b2lkIFNjcmlwdFJ1bm5lcjo6c3VzcGVuZCgpCiB7CiAgICAgbV90aW1lci5zdG9wKCk7CkBA
IC05Nyw2ICsxMTQsMjYgQEAgdm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeVNjcmlwdFJlYWR5KFNj
cmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIEV4ZWN1dGlvblR5cGUKICAgICBtX3RpbWVyLnN0
YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeU1vZHVsZUdyYXBo
UmVhZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCkKK3sKKyAgICBBU1NFUlRfVU5VU0VE
KHNjcmlwdEVsZW1lbnQsIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmNvbnRhaW5zKCZz
Y3JpcHRFbGVtZW50LT5lbGVtZW50KCkpKTsKKworICAgIC8vIExpc3RIYXNoU2V0IGNvcnJlY3Rs
eSBwcmVzZXJ2ZXMgdGhlIGluc2VydGlvbiBvcmRlci4KKyAgICAvLyBBbmQgaXQgYWxsb3cgdXMg
dG8gcmVtb3ZlIGVsZW1lbnQgZHVyaW5nIGl0ZXJhdGlvbi4KKyAgICBhdXRvIGl0ZXJhdG9yID0g
bV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuYmVnaW4oKTsKKyAgICB3aGlsZSAoaXRlcmF0
b3IgIT0gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuZW5kKCkpIHsKKyAgICAgICAgTW9k
dWxlR3JhcGgqIG1vZHVsZUdyYXBoID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShpdGVyYXRv
ci0+Z2V0KCkpLT5tb2R1bGVHcmFwaCgpOworICAgICAgICBpZiAoIW1vZHVsZUdyYXBoLT5lcnJv
ck9jY3VycmVkKCkgJiYgIW1vZHVsZUdyYXBoLT5pc0xvYWRlZCgpKQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGF1dG8gcHJldmlvdXMgPSBpdGVyYXRvcjsKKyAgICAgICAgKytpdGVyYXRv
cjsKKyAgICAgICAgbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uYXBwZW5kKCpw
cmV2aW91cyk7CisgICAgICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLnJlbW92ZShw
cmV2aW91cyk7CisgICAgfQorICAgIGlmICghbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0
ZVNvb24uaXNFbXB0eSgpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwog
dm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogewogICAgIFJlZjxEb2N1bWVudD4gcHJv
dGVjdChtX2RvY3VtZW50KTsKQEAgLTEyMSw2ICsxNTgsMjEgQEAgdm9pZCBTY3JpcHRSdW5uZXI6
OnRpbWVyRmlyZWQoKQogICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQu
Z2V0KCkpLT5leGVjdXRlKGNhY2hlZFNjcmlwdCk7CiAgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVt
ZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIH0KKworICAgIFZlY3RvcjxSZWZQdHI8RWxl
bWVudD4+IG1vZHVsZVNjcmlwdEVsZW1lbnRzOworICAgIG1vZHVsZVNjcmlwdEVsZW1lbnRzLnN3
YXAobV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24pOworCisgICAgZm9yIChSZWZQ
dHI8RWxlbWVudD4mIHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50IDogbW9kdWxlU2NyaXB0RWxl
bWVudHMpIHsKKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQ7CisgICAgICAgIHBlbmRp
bmdNb2R1bGVTY3JpcHRFbGVtZW50LnN3YXAoZWxlbWVudCk7CisgICAgICAgIEFTU0VSVChlbGVt
ZW50KTsKKyAgICAgICAgLy8gUGFwZXIgb3ZlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ0MDUwCisgICAgICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkp
LT5tb2R1bGVHcmFwaCgpLT5ldmFsdWF0ZSgpOworICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVu
dExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICB9CisKICAgICBNaWNyb1Rhc2tRdWV1ZTo6c2lu
Z2xldG9uKCkucnVuTWljcm9UYXNrcygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgK
aW5kZXggMjdjZGJmOGIzYWY1Njk0NjJlNWI5YWViMTZjZDc2NTA1MDg5MWUwZC4uMTIyMTQ4NWUw
ZTU3ZGZhNjNlNDQ0ZjQ4MjlhYWM3MDRlMWExNTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzcsNiAr
MzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNz
IERvY3VtZW50OworY2xhc3MgRWxlbWVudDsKK2NsYXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgUGVu
ZGluZ1NjcmlwdDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiAKQEAgLTQ4LDExICs1MSwxNCBAQCBj
bGFzcyBTY3JpcHRSdW5uZXIgewogCiAgICAgZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhF
Q1VUSU9OLCBJTl9PUkRFUl9FWEVDVVRJT04gfTsKICAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhl
Y3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+
LCBFeGVjdXRpb25UeXBlKTsKLSAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyBy
ZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4
ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHko
KTsgfQorICAgIHZvaWQgcXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50
KiwgTW9kdWxlR3JhcGgmKTsKKyAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyBy
ZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4
ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHko
KSB8fCAhbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFt
X3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHN1c3Bl
bmQoKTsKICAgICB2b2lkIHJlc3VtZSgpOwogICAgIHZvaWQgbm90aWZ5U2NyaXB0UmVhZHkoU2Ny
aXB0RWxlbWVudCosIEV4ZWN1dGlvblR5cGUpOwogCisgICAgdm9pZCBub3RpZnlNb2R1bGVHcmFw
aFJlYWR5KFNjcmlwdEVsZW1lbnQqKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHRpbWVyRmlyZWQo
KTsKIApAQCAtNjAsNiArNjYsOCBAQCBjbGFzcyBTY3JpcHRSdW5uZXIgewogICAgIFZlY3RvcjxQ
ZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyOwogICAgIFZlY3RvcjxQZW5k
aW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5v
cmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwt
ZXhlY3V0ZS1hcy1zb29uLWFzLXBvc3NpYmxlCiAgICAgSGFzaE1hcDxTY3JpcHRFbGVtZW50Kiwg
UGVuZGluZ1NjcmlwdD4gbV9wZW5kaW5nQXN5bmNTY3JpcHRzOworICAgIFZlY3RvcjxSZWZQdHI8
RWxlbWVudD4+IG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uOworICAgIExpc3RI
YXNoU2V0PFJlZlB0cjxFbGVtZW50Pj4gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHM7CiAg
ICAgVGltZXIgbV90aW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAKaW5kZXggZTEzYTVjZGRjY2EyY2IzYjc1NmE4ZDNhNTdlMjNmODBhOWI0M2U0OC4u
ZDE1ZWI3MWJlM2Y2YmNmYjEwNzgyZjk3NDg3NWI0MDBiYzBkNzE2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE2MSw2ICsxNjEsMTUgQEAgYm9vbCBI
VE1MU2NyaXB0RWxlbWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4g
ZmFzdEhhc0F0dHJpYnV0ZShzcmNBdHRyKTsKIH0KIAorYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6
aXNNb2R1bGVUeXBlKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoRVM2X01PRFVMRVMpCisgICAgcmV0
dXJuIGZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpLnN0cmluZygpID09ICJtb2R1bGUiOworI2Vs
c2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogdm9pZCBIVE1MU2NyaXB0RWxlbWVu
dDo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogewogICAgIEFTU0VSVCghaGF2ZUZpcmVkTG9hZEV2ZW50
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDMxMmM2NjI2
ZThiODMxNGU4NWUyZGY2ODdkYmYwOWYyYjJmZTM3YjIuLjFkZmQ4YzhiNzNlODcyYWJjZDVlYjRi
MzQyZTc5MmQzMzUwM2U3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50
LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKICAgICB2aXJ0dWFsIGJvb2wg
YXN5bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBk
ZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGhh
c1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01v
ZHVsZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExv
YWRFdmVudCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5j
cHAKaW5kZXggOGFkZmNmYTQxMGFiZTQ3ZTMzMjRhZTViOGQ5MjQzZjU2NjY0NWQ5NS4uYmE1ZjA2
ZjQ0YjZiMTE3ZmNiYjYyMzM1MzhlMmUxNGNkN2Y4ZTY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmNwcApAQCAtMTUxLDYgKzE1MSwxMSBAQCBib29sIFNWR1NjcmlwdEVs
ZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorYm9vbCBTVkdTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1
dGUoKSBjb25zdAogewogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0
dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggNTM1ZTQyZTZmMDY0
NmQ4MDEwNDE5MDkzYzYyMjkyNGIzODNkNzEwMS4uOGFmZGUzMTEyNWU1ZGQ0OThkYjgyYTRlMDk4
M2FiMDc0ZTBkY2M2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC02
Miw2ICs2Miw3IEBAIGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxl
bWVudAogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGUgeyBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsgfQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWU0
YmRiYzY1YmZiMDE4OTc0YzdkNTczNjRiOGJiOGU4M2QzZTNjZS4uMjJmZGMwZDZmNzhhOWM2YmMw
NzRlOGVmYWRlODgwMjlmZDg1NzE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE1LTA5LTI0
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZd
IEludGVncmF0ZSBFUzYgTW9kdWxlcyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBtb2R1bGVzLgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10
by1vbmVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1l
eGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0
ZWQtdG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgt
c3JjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1w
b2ludC1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1z
YW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQu
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1v
bmVycm9yLXRocm93LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanM6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNj
aW5vLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanM6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5l
LWR5bmFtaWMuanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90
eXBlLnRhc3RlKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBq
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChleHBv
cnQuZGVmYXVsdC5Db2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
bG9hZC1ldmVudC13aXRoLXNyYy5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5q
czogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5k
LWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanM6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzOiBBZGRlZC4KKyAg
ICAgICAgKENvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChDb2NvYSk6CisgICAgICAg
ICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanM6IEFk
ZGVkLgorICAgICAgICAoQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKENvY29hKToK
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3Jl
bG9hZC5qczogQWRkZWQuCisKIDIwMTUtMDktMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsIG91dCByMTkwMDg1IGFzIGl0IHNlZW1z
IHRvIGNhdXNlIGNyYXNoZXMgaW4gSlNDCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MzZlNmMzNWM3
OWM2YTRhYTY3MTg1OTI3ODU1NTM5YjdjNWNlODA4Li40NWYwNzdmY2YzYThhZGRhY2E3YzEwZTUx
YjNkYjRmYmI2ZDI1MGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY3OCwzICs2NzgsMjEgQEAg
d2Via2l0Lm9yZy9iLzE0ODY5NSBmYXN0L3NoYWRvdy1kb20gWyBGYWlsdXJlIEltYWdlT25seUZh
aWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtb3ZlcnJpZGVzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2Iv
MTQ5MjE4IGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudHMuaHRtbCBbIFBhc3MgQ3Jhc2gg
VGltZW91dCBdCisKKyMgRVM2IE1vZHVsZXMgYXJlIG5vdCB5ZXQgZW5hYmxlZCBieSBkZWZhdWx0
OiBFTkFCTEUoRVM2X01PRFVMRVMpCitqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNp
ZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwg
WyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3IuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItaW5saW5lLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1p
eGVkLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbCBbIFNr
aXAgXQoranMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9t
b2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWxv
YWQtZXZlbnQuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbCBbIFNraXAgXQoranMvZG9tL21v
ZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgWyBT
a2lwIF0KK2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1p
bXBvcnQuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZl
bnQuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sIFsgU2tpcCBd
Citqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS13
aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjli
ZGIyNzVhMmZiODM0ODk2NGZiZThkZWI4MjU1M2I0YjlkYjlhNTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0
aGUgZGVwZW5kZW50IG1vZHVsZSB0aHJvdyBhbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIHRoZSBk
ZXBlbmRlbnQgbW9kdWxlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRp
b24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8t
b25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3It
aW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE3N2I1ZGQ3NjRkYmUyNDM0MjNkMWMzOGUzNzRjYzBmZGRjMjQzNzEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1l
cnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVy
cm9yLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oJ1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRo
ZSBkZXBlbmRlbnQgbW9kdWxlIHRocm93IGFuIGVycm9yLicpOworLy8gTW9kdWxlIHdpbGwgYmUg
ZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Citk
ZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cit3aW5kb3cub25lcnJvciA9IGZ1
bmN0aW9uICgpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiPgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJv
ci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9y
LmpzIgordGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3It
c2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1v
bmVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWRmNzAyOGYzNTQ5MzY2OTI5MjJlZmU2
MWEyZGZiYTVmMWYwOTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZp
cmVkIHdoZW4gdGhlIGlubGluZWQgbW9kdWxlIHRocm93cyBhbiBlcnJvci4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0
aW5nIHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRp
b24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8t
b25lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NDYyZjM3ZWQ4MTczMDYxZjdmOTk1MzZjNDJkMjk5
NWMyNTI3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4
ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKQEAgLTAs
MCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
J1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBpbmxpbmVkIG1vZHVs
ZSB0aHJvd3MgYW4gZXJyb3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hy
b25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAg
IGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+Citk
ZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cit0aHJvdyBuZXcgRXJyb3IoIm1vZHVsZSBp
cyBleGVjdXRlZC4iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZmZGYzMzk3NTdhNGEzNzk2NGU4ODlhZWM2OWFmY2M1
OTlhYjc4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBt
b2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Lgor
UEFTUyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQrKyBpcyAxCitQQVNTIGNvdW50KysgaXMgMgor
UEFTUyBjb3VudCsrIGlzIDMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1
dGlvbi1vcmRlci1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLWlubGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MjVlNzY5MDhjZmI2ZmVhMDEwN2Y0
ZGFhZGQxZDI5MzFiZjNjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhl
Y3V0aW9uIG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4nKTsKK3dpbmRvdy5jb3Vu
dCA9IDA7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4nKTsKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjAiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJtb2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIsICIyIik7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKK2ZpbmlzaEpT
VGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjM3ZjUyNGY1MzE5MDVkOGE1M2Y0NGEzM2FiNmZmYjQwMDEyMTAzMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IG1vZHVsZSBleGVj
dXRpb24gb3JkZXIgYmV0d2VlbiBtaXhlZCB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworV2Uga2VlcCB0aGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbW9kdWxlcy4KK01v
ZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQr
KyBpcyAxCitQQVNTIGNvdW50KysgaXMgMgorUEFTUyBjb3VudCsrIGlzIDMKK1BBU1MgY291bnQr
KyBpcyA0CitQQVNTIGNvdW50KysgaXMgNQorUEFTUyBjb3VudCsrIGlzIDYKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41MTkxZDMwM2VkZDc1NzczODEyOGRkOWQxNWJiNDBjN2U3NmMyY2Q3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRt
bApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbWl4ZWQgdGFncy4n
KTsKK2RlYnVnKCdXZSBrZWVwIHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLicp
Oword2luZG93LmNvdW50ID0gMDsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNo
cm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlz
IG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBz
cmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjQiKTsKKzwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1l
eGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVs
ZSI+CitzaG91bGRCZSgiY291bnQrKyIsICI2Iik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1pbmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzkzOWFhZjBhNTAxNWY0
NzkzODZjZDMxOTVhYTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBA
QAorVGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5l
ZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVm
aW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0
ZWRDb2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5s
aW5lLWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGMwZTI1OWFiMjkxZWZmYzRiZWU3OGFlNjVj
MzQxN2MxMWQwNWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1pbmxpbmUtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlLicpOworCisv
LyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4nKTsKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgICBlbGVtZW50LnRleHRDb250ZW50ID0g
YAorICAgICAgICBpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGlu
ZS1keW5hbWljLmpzIjsKKyAgICAgICAgdmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKKyAgICAg
ICAgZGVidWcoIk1vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZp
cm9ubWVudC4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2Ei
LCAidW5kZWZpbmVkIik7CisKKyAgICAgICAgd2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJv
YmplY3QiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRh
c3RlKCkiLCAiYXdlc29tZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBgOworICAg
IGVsZW1lbnQudHlwZSA9ICJtb2R1bGUiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7Cit9ICgpKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmM5MzlhYWYwYTUwMTVmNDc5Mzg2Y2QzMTk1YWE1OWRkMTY5MDk3NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9k
dWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFT
UyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2Eg
aXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhiY2Yw
NjBkMWJkNjk0NWIwODkxNmViYTE1MjlhNTU4ZmU2YjJkMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMzAg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlu
bGluZWQgbW9kdWxlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25v
dXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4K
K2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJtb2R1bGUiPgoraW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVs
ZS1pbmxpbmUtc2ltcGxlLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1Zygi
TW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisK
K3dpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5
cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
eHBvcnRlZENvY29hLnRhc3RlKCkiLCAiYXdlc29tZSIpOworZmluaXNoSlNUZXN0KCk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NjI2NjgwMmRhNTdjNzU4Y2Uz
ZTRhMmYzMWQ3ODkwZDBlNWI3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qg
bW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBhbiBp
bmxpbmVkIG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZl
bnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGEyZjliOTk2MTZmZjQ3
MGFlZTJhNDVlNzJiYmRhNmVmYWNkNDA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0IHNjcmlwdC5vbmxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUg
dGFnIHdpdGggc3JjIGxvYWRzIGFuZCBleGVjdXRlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGEgbW9kdWxl
IHdpdGggc3JjIGF0dHJpYnV0ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxv
YWQtZXZlbnQtd2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1l
dmVudC13aXRoLXNyYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NGE0YTMwNzBhOTZlNmRhY2JkOGI3NDZh
NzdjMDU3YTQyYzU2YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25sb2FkIHdp
bGwgYmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBsb2FkcyBhbmQgZXhlY3V0
ZXMuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNU
ZXN0KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbG9hZC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJiOGM4MDlmMmQ0NWNkM2YzMTc4OWFmZTJkZjdiMzBk
Y2UxZjQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9h
ZC1ldmVudC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0
YWdzLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpT
VGVzdCgpIj4KK2RlYnVnKCdFeGVjdXRpbmcgYW4gaW5saW5lZCBtb2R1bGUuJyk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1m
cm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MWFiNDlkMTQ5NzYyNGRmMjJlMDM0Nzk3YjM5YWE4ZWM4Njk0ZWNjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlm
ZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
KzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9k
dWxlIGZyb20gYSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgdGFnCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMu
IFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRp
ZmZlcmVudC1lbnRyeS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQt
c2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI1ZDUxZTJiNmNlYTg2MTdiYWNmMGM0MGUzMzdlOTA5YTFkMzFhMzgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJv
bS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCcyIGRpZmZlcmVudCBt
b2R1bGUgdGFnIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBmcm9tIGEgZHlu
YW1pY2FsbHkgZ2VuZXJhdGVkIHRhZycpOworZGVidWcoJ0N1cnJlbnRseSwgdGhpcyBpcyBub3Qg
ZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1
dHVyZS4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQg
eWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgInNjcmlw
dC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2lu
dC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKK3ZhciBlbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitlbGVtZW50LnR5cGUgPSAibW9kdWxlIjsK
K2VsZW1lbnQuaW5uZXJUZXh0ID0gInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVs
ZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyI7CitlbGVtZW50Lm9uZXJyb3IgPSBmaW5p
c2hKU1Rlc3QoKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZm
ZXJlbnQtZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZjk4ZmNjYjZmYWZh
MDY0NDdlMzAzMmVmMDZkOTgyMDI3ZjI1MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9p
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKzIgZGlmZmVyZW50IG1vZHVsZSB0YWcg
d2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMu
IFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRp
ZmZlcmVudC1lbnRyeS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorRXhlY3V0aW5n
IHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUt
bW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MDZkNGUwYjYzY2RjMDEyNzQxMzNiZWZkOTM4NDQyNTU1NThiMTg3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9k
dWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1v
ZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlJyk7CitkZWJ1Zygn
Q3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNo
b3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0
ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1Zygn
TW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
bW9kdWxlIj4KK2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxl
LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rl
c3QoKSI+CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4n
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYzOGJhM2MyZTc5OTc3ZTJjOWY3OTM0ODA5NzM2ZmQ5ODM3ZDcyZjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1l
dmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDI6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJub3QtZm91bmQuanMi
LiBFeHBlY3RlZCAnZnJvbScgYmVmb3JlIGltcG9ydGVkIG1vZHVsZSBuYW1lLgorVGVzdCBzY3Jp
cHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0
aGUgaW1wb3J0IGRlY2xhcmF0aW9uIGluIHRoZSBpbmxpbmVkIG1vZHVsZSBpcyBub3QgZm91bmQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1l
dmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc0ODc4NzUwMWExMjkyNzY4MTA5MTg3OTA3YWZjNDdkZmI2ZDI4
OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACitUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3Vy
Y2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGRlcGVuZGVudCBt
b2R1bGUgaXMgbm90IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWlt
cG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZjM5ODY4NWFlMDVhMTFjZThhMWUwYjIyMDk4ZTk4NTMx
ZDYyOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwKQEAgLTAsMCArMSwyMSBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2Ny
aXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkg
dGhlIGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVsZSBpcyBub3QgZm91
bmQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1
bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1z
cmMtYW5kLWltcG9ydC5qcyIgb25lcnJvcj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5k
LWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iODBkMTVkZmU2ZDA5YmZjNmI4NTgzYTQ4ZGVjNmRjYjFiNWIxNDE0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2NyaXB0Lm9uZXJy
b3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgInNyYyIgaXMg
bm90IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5v
dCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91
bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhNDdmNjEw
NjlhZmVjYmNiMzhiMGE5NTc1NjI1Y2U4MmRmNDgxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwK
QEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJj
ZSBzcGVjaWZpZWQgYnkgInNyYyIgaXMgbm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUg
ZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Citk
ZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkK
K3sKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Im5vdC1mb3VuZC5qcyIgb25l
cnJvcj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZjYjU5NGM2NDY4MzhlNGMzNWUzNzU2MWY2ZGNlM2Q4Mzc3MGI3NzEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUg
cmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGlubGlu
ZWQgbW9kdWxlIGlzIG5vdCBmb3VuZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFz
eW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVs
ZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25lcnJvcj0ib25FcnJvcigpIj4KK2ltcG9ydCBmcm9t
ICJub3QtZm91bmQuanMiOwordGVzdEZhaWxlZCgnZXhlY3V0ZWQnKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMt
ZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5h
bWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDhiMDA2MjQ5MGVjNzIyOTVjZmY1MDYxYTA4
MzllNDAwMjBjZDhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1zcmMtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUg
d2l0aCAic3JjIiBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQg
aW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmlu
ZWQiCitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVk
Q29jb2EudGFzdGUoKSBpcyAibmljZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LXNyYy1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWlj
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzg0ZmY0MjY0Zjk4MWZlOTY0OWVkM2E3MjFiMWNmYTRmYTVlOTFj
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFt
aWMuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8v
IE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LicpOworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgIGVsZW1lbnQudHlwZSA9ICdtb2R1bGUn
OworICAgIGVsZW1lbnQuc3JjID0gJy4vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5q
cyc7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK30oKSk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkOGIwMDYyNDkwZWM3MjI5NWNm
ZjUwNjFhMDgzOWU0MDAyMGNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3Qg
bW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNv
bmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAi
dW5kZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBl
eHBvcnRlZENvY29hLnRhc3RlKCkgaXMgIm5pY2UiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1zcmMtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1z
aW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjczYjBjNTRhMjVhNGY3NmMxNGEzYjVkYzMxNzNmZTg5
M2NiM2NkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMt
c2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLicpOwor
CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNy
Yz0iLi9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZp
cmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdp
bGwtZmlyZS1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYThkOTcwOGRiM2Uw
NWM0YjAxMDNiZTdkY2ViMGMwMDcxMTc1Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorVGVzdCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhl
IG1vZHVsZSB0YWcgd2l0aCBzcmMgaXMgcHJlcGFyZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZmYx
NjUzZDA2YzA2ZTFkNzQxNzlkMDExMDAzNmUxNDlkODY5MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbApAQCAtMCww
ICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcg
d2l0aCBzcmMgaXMgcHJlcGFyZWQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3lu
Y2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUg
aXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUi
IG9uYmVmb3JlbG9hZD0iZmluaXNoSlNUZXN0KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS13
aWxsLWZpcmUtYmVmb3JlbG9hZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24t
ZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25l
cnJvci10aHJvdy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRl
ZC10by1vbmVycm9yLXRocm93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzE1YWYyMTQyYjQ4MDI2MDJlYWQw
MzcwMGY4YmJlMDFiYzJiZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1
bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcwpAQCAtMCwwICsxLDIg
QEAKK2RlYnVnKCJFeGVjdXRpbmcgdGhlIGRlcGVuZGVudCBtb2R1bGUiKTsKK3Rocm93IG5ldyBF
cnJvcigib3V0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQt
YmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YzdjYTQ3OWIyNTg4OWIw
MGNhMjRjZDViYmUzMzFkYWE2NWY3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVu
dC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcwpAQCAtMCwwICsxLDIg
QEAKK2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVs
ZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzIgordGVzdEZhaWxlZCgi
ZXhlY3V0ZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTMzYjlkMzUyYWVjNTdiMDYxZGRiZTAwYjdjZjk0ZWE1NzRhZWM0OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC0yLmpzCkBAIC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjUiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjMxNDZmZDc2NmU1NWEwMmFlNzhiYWY5ZGQ2MzM5OGViODVhODkwZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1v
cmRlci1taXhlZC1jYXBwdWNjaW5vLmpzCkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcyIKKworc2hvdWxkQmUoImNvdW50KysiLCAi
MiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE1OGQ3MzI0M2ZlZjMwYTBiNDk0OWRiYTdmYmY4NTM0ZWViYTlmNzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItbWl4ZWQtY29jb2EuanMKQEAgLTAsMCArMSwzIEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRp
b24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzIjsKKworc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJl
MTVkN2NmMGNmZjRlYWExYTBiNWExZWU4M2RjY2UzMjRhMjVlOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC1tYXRjaGEuanMKQEAgLTAsMCArMSBAQAorc2hvdWxkQmUoImNvdW50KysiLCAiMCIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLW1peGVkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0Mzg2ZmJiODY4MWNiZjdl
NTljNDczNzYzN2U4N2JlMzhjZmY3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMKQEAgLTAs
MCArMSw0IEBACitpbXBvcnQgIi4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5q
cyIKK2ltcG9ydCAiLi9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMi
CisKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjQzNjBhN2JmZTdlMDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWlj
LmpzCkBAIC0wLDAgKzEsNSBAQAorZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29jb2EgeworICAgIHRh
c3RlKCkgeworICAgICAgICByZXR1cm4gImF3ZXNvbWUiOworICAgIH0KK307CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpz
IGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNDM2MGE3YmZlN2UwNWEwY2IyNTM4NDEzNjdlNzFkYzFlOTNiNWM3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
aW5saW5lLXNpbXBsZS5qcwpAQCAtMCwwICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENv
Y29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9h
ZC1ldmVudC13aXRoLXNyYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I4NzAyOTBkM2VjN2UwODBj
MDVmOWY2NjY4NDRjZDA2NzUyOWZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKQEAgLTAsMCAr
MSBAQAorZGVidWcoJ0V4ZWN1dGluZyBhIG1vZHVsZSB3aXRoIHNyYyBhdHRyaWJ1dGUuJyk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNh
bWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWFkNzdmODAwODA0MzgxYmY0ZjFlYWRiNTE3ZjU2
MGYwYzRlYjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5q
cwpAQCAtMCwwICsxIEBACitkZWJ1ZygnRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxl
LWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzLicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgt
c3JjLWFuZC1pbXBvcnQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YzFiNDcxNDgxMzhhMGVjNDUyMmMyMjcyMzNhM2M3NDEzMzcxMjk5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMKQEAgLTAsMCArMSBAQAoraW1wb3J0ICJu
b3QtZm91bmQuanMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3OTU5MmRjNTEz
Y2YyNTk4NDFmZjlkNDYzOTA0NTEyYjBlY2I3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpAQCAt
MCwwICsxLDcgQEAKK2NsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJu
ICJuaWNlIjsKKyAgICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMgYi9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNTFhN2JlNmI0ZjEyOTNhZjU5Njg2ZmUzZTU3ODAxZDJlMDk2YzM1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5
bmFtaWMuanMKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNy
Yy1keW5hbWljLWNvY29hLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1Zygi
TW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisK
K3dpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5
cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
eHBvcnRlZENvY29hLnRhc3RlKCkiLCAibmljZSIpOworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNv
Y29hLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBs
ZS1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5ZDQ2MzkwNDUxMmIw
ZWNiNzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAKK2NsYXNzIENvY29h
IHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAgICB9Cit9CisKK2V4
cG9ydCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ5Yzc3NGZkOWU3YTVjOWQx
ODU5MjQwNDRlN2EyNzhhZDczMzcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKQEAgLTAsMCArMSwxMCBAQAor
aW1wb3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMiOwordmFyIGNv
Y29hID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVk
IGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5
cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2Nv
YTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJuaWNl
Iik7CitmaW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjBhMzkzODM1NjMzYWVjNTVlNWU1OTU3MjlkYTY5MTllOWMzMjAzYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1i
ZWZvcmVsb2FkLmpzCkBAIC0wLDAgKzEgQEAKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261893</attachid>
            <date>2015-09-24 13:49:32 -0700</date>
            <delta_ts>2015-09-25 15:06:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150924134913.patch</filename>
            <type>text/plain</type>
            <size>135709</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzdmZGYwNGRiNzhkMjk0MDUzMzZiOTk0NGVlNjgyYmM1MTUyMjM2Li5hM2ViNDA0NDVmZDUxNjQx
NWU0MjJmMWFkYzY3YTU2YzQwMmM0Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wOS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW1ib2w6
OmNyZWF0ZSBpcyBub3cgdXNlZCBpbiBXZWJDb3JlLgorCisgICAgICAgICogcnVudGltZS9TeW1i
b2wuaDoKKwogMjAxNS0wOS0yMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBKU0MgYWxsb3dzIGludmFsaWQgdmFyIGRlY2xhcmF0aW9ucyB3aGVuIHRoZSBkZWNs
YXJlZCBuYW1lIGlzIHRoZSBzYW1lIGFzIGEgbGV0L2NvbnN0IHZhcmlhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNmZhZTUzNWI4ZDczMGYzOTgxYWE1MDBkNTljZjZiZGI4MmE1NjczYS4uNzY0YTZjYzRiODQ4
M2FlMmQxMjZjM2NkZGYyMTJhMWMwZWQ2MDU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NiBA
QAorMjAxNS0wOS0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPiB0YWcuIFRoYXQgdGFnIGxvYWRzIHRoZSBFUzYg
TW9kdWxlcy4KKyAgICAgICAgU2luY2UgdGhlIGRldGFpbCBvZiB0aGUgdGFnIGlzIG5vdCBkZWZp
bmVkIHlldFsxXSwgdGhlIGltcGxlbWVudGF0aW9uIGlzIGhpZGRlbgorICAgICAgICBiZWhpbmQg
dGhlIGNvbXBpbGUgdGltZSBmbGFnIEVOQUJMRShFUzZfTU9EVUxFUykuCisKKyAgICAgICAgQSBt
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseSBhbmQgZXhlY3V0ZWQgaW4gYSBt
b2R1bGUgZW52aXJvbm1lbnQKKyAgICAgICAgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZ2xv
YmFsIGVudmlyb25tZW50LiBJdCBpcyBhbHdheXMgc3RyaWN0IG1vZGUgYW5kIG9ubHkKKyAgICAg
ICAgYSBtb2R1bGUgY2FuIHVzZSB0aGUgbW9kdWxlIHN5bnRheCBsaWtlIGBpbXBvcnRgLCBgZXhw
b3J0YCBldGMuIFNvIHNpbmNlIHRoZQorICAgICAgICBleGVjdXRpb24gc2VtYW50aWNzIGlzIGRp
ZmZlcmVudCBmcm9tIG9uZSBvZiBnbG9iYWwgc2NyaXB0cywgbW9kdWxlcyBuZWVkIHRvIGJlCisg
ICAgICAgIGV4ZWN1dGVkIGJ5IHRoZSBzcGVjaWFsaXplZCB0YWcsIDxzY3JpcHQ+IHdpdGggdHlw
ZT0ibW9kdWxlIi4KKworICAgICAgICBUaGUgbW9kdWxlIHRhZyB3b3JrcyBhcyBhbiBlbnRyeSBw
b2ludCB0byBtb2R1bGVzLiBUeXBpY2FsbHksIHdlIHNwZWNpZnkgYW4KKyAgICAgICAgZW50cnkg
cG9pbnQgbW9kdWxlIGJ5IGEgdGFnIGFuZCBhbiBlbnRyeSBwb2ludCBtb2R1bGUgd2lsbCBsb2Fk
IGRlcGVuZGVudAorICAgICAgICBtb2R1bGVzIGFuZCBydW4gYSBhcHBsaWNhdGlvbi4KKworICAg
ICAgICBPbmNlIG1vZHVsZSB0YWcgcmVxdWVzdCBsb2FkaW5nLCBXZWJDb3JlIHJlcXVlc3QgbG9h
ZGluZyB0byB0aGUgSlNDJ3MgbW9kdWxlCisgICAgICAgIGxvYWRlci4gV2ViQ29yZSBhZG9wdHMg
dGhlIEpTQydzIGdlbmVyaWMgbW9kdWxlIGxvYWRlciBieSBpbXBsZW1lbnRpbmcgdGhlIGxvYWRl
cgorICAgICAgICBob29rcy4gSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIFdlYkNvcmUg
aW1wbGVtZW50cyAzIGhvb2tzLgorCisgICAgICAgIDEuIHJlc29sdmUgaG9vaworCisgICAgICAg
ICAgICBUYWtlcyB0aGUgbW9kdWxlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBt
b2R1bGUga2V5LgorICAgICAgICAgICAgSW4gV2ViQ29yZSwgd2UgdGFrZSB0aGUgbW9kdWxlIG5h
bWUgbGlrZSAiLi9oZWxsby5qcyIgYW5kIHJlc29sdmUgaXQgdG8gVVJMLgorCisgICAgICAgIDIu
IGZldGNoIGhvb2sKKworICAgICAgICAgICAgRmV0Y2hlcyB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVk
IGJ5IHRoZSBtb2R1bGUga2V5LiBJbiBXZWJDb3JlLCB0aGUgbW9kdWxlIGtleSBpcworICAgICAg
ICAgICAgVVJMLiBXZSB1c2UgQ2FjaGVkUmVzb3VyY2UgbG9hZGluZyBzeXN0ZW0gdG8gbG9hZCB0
aGUgcmVzb3VyY2Ugb2YgdGhlIG1vZHVsZXMuCisKKyAgICAgICAgMy4gZXZhbHVhdGUgaG9vawor
CisgICAgICAgICAgICBUaGlzIGlzIGFkZGl0aW9uYWwgaG9vayB0byBpbnN0cnVtZW50IHRoZSBt
b2R1bGUncyBleGVjdXRpb24gZm9yIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgVGhlIG1vZHVs
ZSBsb2FkZXIgaW52b2tlcyB0aGVzZSBob29rcywgY29uc3RydWN0cyB0aGUgcGlwZWxpbmUgYW5k
IG5vdGlmaWVzIGV2ZW50cworICAgICAgICB0byBhIE1vZHVsZUdyYXBoLCB3aGljaCBpcyBoZWxk
IGJ5IGEgU2NyaXB0RWxlbWVudC4gQSBTY3JpcHRFbGVtZW50IHdpdGggYSBNb2R1bGVHcmFwaAor
ICAgICAgICB3aWxsIGJlIGRyaXZlbiBieSB0aGVzZSBldmVudHMuCisKKyAgICAgICAgTW9kdWxl
IHRhZyBsb2FkcyB0aGUgcmVzb3VyY2VzIGFzeW5jaHJvbm91c2x5LiBTbyBpdCBkb2VzIG5vdCBi
bG9jayB0aGUgZG9jdW1lbnQKKyAgICAgICAgcGFyc2VyLiBCdXQgdGhlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIHRoZSBtdWx0aXBsZSBtb2R1bGUgdGFncyBzaG91bGQgYmVjb21lCisgICAgICAg
IHRoZSBvY2N1cnJlbmNlIG9yZGVyWzFdLiBTbyBTY3JpcHRSdW5uZXIgbWFuYWdlcyB0aGUgbW9k
dWxlIHRhZ3MgYW5kIGZvcmNlIHRoZW0KKyAgICAgICAgdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIG9j
Y3VycmVuY2Ugb3JkZXIuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGhlcm1h
bi9tb2R1bGUtdGFnL2Jsb2IvbWFzdGVyL3JlcXVpcmVtZW50cy5tZAorCisgICAgICAgIFRlc3Rz
OiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3Iu
aHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5l
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbAor
ICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9t
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFt
aWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbAorICAgICAg
ICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMv
ZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01haW5U
aHJlYWRFeGVjU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0
ZTo6bG9hZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlRmV0
Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6TW9kdWxl
RmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hl
cik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6cnVuKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZl
dGNoZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRj
aGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6Y2FjaGVkU2Ny
aXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUxvYWRlcjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVM
b2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3Jp
cHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZU1vZHVsZUxvYWRlckVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1bGVHcmFwaCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgorICAgICAgICAqIGRv
bS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6fkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TW9kdWxlR3JhcGg6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpu
b3RpZnlFdmFsdWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmxvYWQpOgor
ICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
ZHVsZUdyYXBoOjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjptb2R1
bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OndlYWtFbGVtZW50UHRyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjplcnJvck9jY3VycmVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBl
U3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpt
b2R1bGVHcmFwaCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9TY3JpcHRS
dW5uZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6aGFzUGVuZGluZ1Njcmlw
dHMpOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAg
ICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDoKKwogMjAxNS0wOS0yMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIxOTAw
ODUgYXMgaXQgc2VlbXMgdG8gY2F1c2UgY3Jhc2hlcyBpbiBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggODNmNWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1
ZmRkZGJiZS4uZGRiNjhjY2IzNjU0NDU5OTEwY2QzZjIzZjY2ODc0ZDAwNTg4YTk1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTg2LDcgKzg2LDcgQEAgY2xhc3Mg
U3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBTeW1ib2woVk0mKTsKICAgICBT
eW1ib2woVk0mLCBjb25zdCBTdHJpbmcmKTsKLSAgICBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1
aWQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDI0NjMwYmEwZjMyN2QwYTU2MmZmMGZmOGZlYTk1Y2UxNzk5MmJmMWMuLmQ1MDli
NWY2Yjc3ZTUxZGQ0YmJmOWRhMmZjMDhkY2M3NzYzM2QwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMjI1LDYgKzEyMjUsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAK
KyAgICBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcAorICAgIGJpbmRpbmdzL2pzL01vZHVs
ZUxvYWRlci5jcHAKICAgICBiaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAogICAgIGJp
bmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNo
ZWRGcmFtZURhdGEuY3BwCkBAIC0xNDUwLDYgKzE0NTIsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgZG9tL01lc3NhZ2VQb3J0LmNwcAogICAgIGRvbS9NZXNzYWdlUG9ydENoYW5uZWwuY3Bw
CiAgICAgZG9tL01pY3JvVGFzay5jcHAKKyAgICBkb20vTW9kdWxlR3JhcGguY3BwCiAgICAgZG9t
L01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9N
dXRhdGlvbkV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNTU3
YTJmMjFlY2Y2YjJhZWNhZDY3ZTM1M2UxOTY2ZTQ3OTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNl
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VfaAorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZjMDg2ZGQzOWFmZjllMTA0YmQ1
YTZmZjdhZTc5MjU0NjM4Njk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCkBAIC0w
LDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVk
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L0pTTW9kdWxlUmVjb3JkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlOWVjZmZiY2Y1N2MyYTljNzk1Y2NiMWQ4
MDM0MGY5MTRkN2Q0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5k
ZWYgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNvcmRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KU01v
ZHVsZVJlY29yZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVu
dGltZS9TeW1ib2wuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUv
U3ltYm9sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUwNDI3ZjA5MWE5ZWNhY2ZiZmEwOTlhZTBkMDMwZTBlOWJj
NWViMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvU3ltYm9sLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1N5
bWJvbF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1N5bWJvbF9oCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvU3ltYm9sLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDIxYTlkNDI1ZGFkNzI0OGU4NDQyMzljNThjZTg1MDZm
MjgwOTg4YjEuLmFjMDIyYjA2NzM1NjkxM2RmYzg3MGFlZGExYWNhZTU1YmUyYWJmMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQ0
MzYsNiArMTQ0MzYsMjAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkb21cTW9kdWxlR3JhcGguY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xODg3NSw2ICsxODg4OSwzNCBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUZldGNoZXIu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XE1vZHVsZUxvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMjA3MSw2ICsyMjExMyw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTWVzc2FnZVBvcnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNZXNzYWdlUG9ydENoYW5uZWwuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRvbVxNb2R1bGVHcmFwaC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9t
XE1vdXNlRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZVJl
bGF0ZWRFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE11dGF0aW9u
RXZlbnQuaCIgLz4KQEAgLTIyNDg0LDYgKzIyNTI3LDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZU9yU3RyaW5nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVG
ZXRjaGVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1
bGVMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNj
aGVkdWxlZEFjdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xTY3JpcHRDb250cm9sbGVyLmgiIC8+CkBAIC0yMjcyMywxMyArMjI3Njgs
MTcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN2Z1xwcm9wZXJ0aWVzXFNWR1RyYW5z
Zm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcQXJnTGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxJZGVudGlmaWVyLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTSW50
ZXJuYWxQcm9taXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNMb2NrLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpT
T2JqZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXEpTU3RyaW5nLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTTW9kdWxlUmVjb3JkLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXExvb2t1cC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxPcGVyYXRp
b25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xy
dW50aW1lXFByb3RlY3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcU3RyaW5nT2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5bWJvbC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFyclxSZWd1bGFyRXhwcmVzc2lv
bi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFy
clxZYXJyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1x5YXJyXFlhcnJJbnRlcnByZXRlci5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDZkZDM3OTlhZDVj
NjM5NTczY2Y3YjY4NDNjZDhkY2RiMTU3ODYyZWEuLjQyZWQ2YmE1ZWMwYzMxNzNjYjkxY2I4MzZm
MzczOWIzNzIyN2MzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTMxOTgsNiArMzE5OCw5IEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTWljcm9UYXNrLmNwcCI+CiAgICAgICA8RmlsdGVy
PmRvbTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZG9tXE1vZHVsZUdyYXBoLmNwcCI+CisgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlRXZlbnQu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC00
NDc2LDYgKzQ0NzksMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlRmV0Y2hlci5jcHAiPgorICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlTG9hZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xTY2hlZHVsZWRBY3Rpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwMzA0LDYgKzEwMzEzLDkgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCI+CiAgICAgICA8RmlsdGVyPmRv
bTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXE1vZHVsZUdyYXBoLmgiPgorICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmgiPgog
ICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTExNDg5LDYg
KzExNTAxLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5oIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXE1vZHVsZUZldGNoZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xNb2R1bGVMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xT
Y2hlZHVsZWRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xMTY1NywxMiArMTE2NzUsMjEgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSWRlbnRpZmllci5oIj4KICAg
ICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVu
dGltZVxKU0ludGVybmFsUHJvbWlzZS5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTTG9jay5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU09iamVjdC5oIj4KICAgICAgIDxG
aWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxK
U01vZHVsZVJlY29yZC5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGlt
ZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU1N0cmluZy5oIj4KICAgICAgIDxGaWx0ZXI+Rm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTE2
ODEsNiArMTE3MDgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxTdHJpbmdPYmplY3QuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sLmgiPgorICAgICAg
PEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1
ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1x5YXJyXFJl
Z3VsYXJFeHByZXNzaW9uLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1x5YXJy
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWI1NWZmOWYxMmE4MmUyYjBhYzczMjgz
NDUyNzEzZTRhZGUxYjY5MC4uMzc4YjMxNDlmOTM4MGQ0ZjkxY2M5NzdkMmJkY2U3ODZkNjRlOWM1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjMyMyw2ICs2MzIzLDEyIEBACiAJCUUxRkY4RjY4MTgwNzQ2MDgwMDEzMjY3NCAv
KiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlw
dG9DdXN0b20uY3BwICovOyB9OwogCQlFMUZGOEY2QzE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5LmNwcCAqLzsgfTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuaCAqLzsgfTsKKwkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzlBNTIx
MUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi87IH07CisJCUUzMzlBNTI0MUJB
NkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdy
YXBoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4OTIxQkFEMTQ1RjAwRDYy
RUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7
IH07IH07CisJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5MzFCQUQx
NDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdT
ID0gKCk7IH07IH07CisJCUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4
OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9
IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CiAJCUU0MDFDMjc1MTdDRTUzRUMwMEM0MUEzNSAvKiBF
bGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDAxQzI3NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJh
dG9yQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0MjRBMzlFMTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlE
MTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCAqLzsgfTsKIAkJRTQyNEEz
QTAxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlGMTMzMERGMUUwMENGNkRD
OSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gKi87IH07CkBAIC0xNDA4Myw2ICsxNDA4OSwxMiBA
QAogCQlFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG9DdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzOUE1
MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUdyYXBoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUdyYXBoLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzODgzODkyMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUZldGNoZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5MzFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlRmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
b2R1bGVGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgzODk0MUJB
RDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudEl0
ZXJhdG9yQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA2RjNG
QjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbG9yRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE1MzUsNiArMjE1NDcsMTAgQEAKIAkJCQk0
MTE4OUVGODFBRDgyMzNDMDBCOTBBMEQgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0
b20uY3BwICovLAogCQkJCUUxQzM2RDMyMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5jcHAgKi8sCiAJCQkJRTFDMzZEMzMwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlLmggKi8sCisJCQkJRTM4ODM4OTIxQkFEMTQ1RjAwRDYyRUUzIC8q
IE1vZHVsZUZldGNoZXIuY3BwICovLAorCQkJCUUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBN
b2R1bGVGZXRjaGVyLmggKi8sCisJCQkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5jcHAgKi8sCisJCQkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxv
YWRlci5oICovLAogCQkJCTQxOThCREVFMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3Ry
ZWFtLmNwcCAqLywKIAkJCQk0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0
cmVhbS5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rp
b24uY3BwICovLApAQCAtMjM1MDIsNiArMjM1MTgsOCBAQAogCQkJCTQxQkY3MDBBMEZFODZGNDkw
MDVFOERFQyAvKiBNZXNzYWdlUG9ydENoYW5uZWwuaCAqLywKIAkJCQlDQjhDRjAxNTFBOTM0QjQz
MDAwRDUxMEIgLyogTWljcm9UYXNrLmNwcCAqLywKIAkJCQk1M0I4OTVBRDE5REM3QzM3MDA5Q0FB
OTMgLyogTWljcm9UYXNrLmggKi8sCisJCQkJRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1v
ZHVsZUdyYXBoLmNwcCAqLywKKwkJCQlFMzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxl
R3JhcGguaCAqLywKIAkJCQk4NTAzMUIyRjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5j
cHAgKi8sCiAJCQkJODUwMzFCMzAwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuaCAqLywK
IAkJCQkxNDFCOTRFNTA5RUM0MjIzMDAwRTk0MTMgLyogTW91c2VFdmVudC5pZGwgKi8sCkBAIC0y
NDYxNyw2ICsyNDYzNSw3IEBACiAJCQkJMzE2MDIzRjAxNTMyQzQwQzAwRDUwRkY0IC8qIERpY3Rp
b25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEzMSAvKiBE
aWN0aW9uYXJ5TG9va3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNEMTMxMDA4
REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzM5QTUyNDFC
QTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTdFREFB
RkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxOTEsNiArMjYy
MTAsNyBAQAogCQkJCUNFMTI1MjQxMUExNkIxQjYwMDg2NDQ4MCAvKiBNZWRpYVBsYXllclNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJv
ZHVjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBN
ZWRpYVF1ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJFRTMg
LyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAy
MjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5
MkUwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzIzOSw2ICsyNzI1OSw3IEBACiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZDQTI3
IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYw
QkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FDRTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
VGV4dFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FEMTBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg1NEIwMjUxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yODAwNyw2ICsyODAyOCw3IEBACiAJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8q
IEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQkMxMkIw
MjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwMDcxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFw
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjA4MTEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NTk2OTExNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDMxNjBCRTEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyTWFjLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjg1NzIsNiArMjg1OTQsNyBAQAogCQkJCUU0QTAwNzg1MUI4MjBFRDMw
MDJDNUE2RSAvKiBEYXRhVVJMRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1
MTBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOEFEMEE1OTcxNEM4ODM1ODAwMEQ4M0M1IC8qIERPTVdlYktpdENTU1JlZ2lvblJ1bGUu
bW0gaW4gU291cmNlcyAqLywKKwkJCQlFMzg4Mzg5ODFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxl
TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjExRTYyMEUxQzRFMTQwMEY2QTU3OSAv
KiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTNGMkIz
M0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzkxQTM4RjFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg5OSw2ICsyODkyMiw3IEBACiAJCQkJQTg3MURCMkUw
QTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4NzFEQjI5MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDb2xFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjI4MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFi
bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzODgzODk2MUJBRDE0NUYwMEQ2MkVF
MyAvKiBNb2R1bGVGZXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjJEMEExNTBC
RDYwMEIxMkE2OCAvKiBIVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODcxREIzMDBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzQ0MkNBMDBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93
c0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTA3Miw2ICszMTA5Niw3IEBACiAJ
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJl
bmNlID0gMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJ
CQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZf
TU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7CiAJCX07CkBAIC0zMTA3OSw2ICszMTEw
NCw3IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25m
aWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVO
QUJMRV9FUzZfTU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKIAkJfTsKQEAgLTMx
MDg3LDYgKzMxMTEzLDcgQEAKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1
RTUwQkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRp
bmdzID0gewogCQkJCUJVSUxEX1ZBUklBTlRTID0gbm9ybWFsOworCQkJCUVOQUJMRV9FUzZfTU9E
VUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsK
IAkJfTsKQEAgLTMxMTIwLDYgKzMxMTQ3LDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MTgxNzA3RDEzODZFREYyMDA1
N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCQlFTkFCTEVfRVM2X01PRFVMRVMgPSBFTkFCTEVfRVM2X01PRFVMRVM7CiAJCQl9
OwogCQkJbmFtZSA9IERlYnVnOwogCQl9OwpAQCAtMzExMjcsNiArMzExNTUsNyBAQAogCQkJaXNh
ID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9
IDQxODE3MDdEMTM4NkVERjIwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQueGNjb25maWcg
Ki87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJM
RV9FUzZfTU9EVUxFUzsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKIAkJfTsKQEAgLTMxMTM0
LDYgKzMxMTYzLDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2ViQ29y
ZVRlc3RTdXBwb3J0LnhjY29uZmlnICovOwogCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlFTkFC
TEVfRVM2X01PRFVMRVMgPSBFTkFCTEVfRVM2X01PRFVMRVM7CiAJCQl9OwogCQkJbmFtZSA9IFBy
b2R1Y3Rpb247CiAJCX07CkBAIC0zMTE2Miw2ICszMTE5Miw3IEBACiAJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUw
QkE5Qzg0NjAwRjkwMTQ3IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdz
ID0geworCQkJCUVOQUJMRV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCQlQ
Uk9EVUNUX05BTUUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7
CkBAIC0zMTE3MCw2ICszMTIwMSw3IEBACiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
IAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUNERDQ1RTUwQkE5Qzg0NjAwRjkwMTQ3
IC8qIFdlYkNvcmUueGNjb25maWcgKi87CiAJCQlidWlsZFNldHRpbmdzID0geworCQkJCUVOQUJM
RV9FUzZfTU9EVUxFUyA9IEVOQUJMRV9FUzZfTU9EVUxFUzsKIAkJCQlQUk9EVUNUX05BTUUgPSAi
RGVyaXZlZCBTb3VyY2VzIjsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKQEAgLTMxMTc4LDYg
KzMxMjEwLDcgQEAKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSAxQ0RENDVFNTBCQTlDODQ2MDBGOTAxNDcgLyogV2ViQ29yZS54
Y2NvbmZpZyAqLzsKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJRU5BQkxFX0VTNl9NT0RVTEVT
ID0gRU5BQkxFX0VTNl9NT0RVTEVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICJEZXJpdmVkIFNvdXJj
ZXMiOwogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggZmY0MTVlZDI4NDA4OGUy
ODk1NWE2NGMwZTYxMmE4NTZkZWVkZDk3Zi4uZGU5YjE4YTRlNjE1MDA2Y2QyMTE0NDZmNmQ2ZTFm
NTU2N2M5NGVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRp
bmdzQWxsSW5PbmUuY3BwCkBAIC0xNDcsNiArMTQ3LDggQEAKICNpbmNsdWRlICJKU1hNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCIKICNp
bmNsdWRlICJKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
ZXIuY3BwIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5jcHAiCiAjaW5jbHVkZSAiU2NoZWR1bGVk
QWN0aW9uLmNwcCIKICNpbmNsdWRlICJTY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggODM1MDMzMzEzZWZlMTUyZjFlMzlmNGMxNTFiYmRj
MmYwYTFhZDdmYi4uOWY4ZGYwYjVmMmZlZGQwYjVmZTZmMWVmMWIwY2ZlYmM3N2EzZWI5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0z
MSwxMSArMzEsMTMgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUg
IkpTTm9kZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9NaWNyb3Rhc2suaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC01Niw3ICs1OCw3IEBAIHN0YXRpYyBib29sIHNob3Vs
ZEFsbG93QWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCwgRXhlY1N0
YXRlKiBlCiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd0Jhc2U6OnNfaW5mbyA9IHsgIldp
bmRvdyIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTRE9NV2luZG93QmFzZSkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNE
T01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dB
Y2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAm
c2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFz
a1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxl
ID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0
c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRp
bWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVm
b3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVs
bHB0ciwgbnVsbHB0ciwgJm1vZHVsZUxvYWRlckV2YWx1YXRlIH07CiAKIEpTRE9NV2luZG93QmFz
ZTo6SlNET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQ
dHI8RE9NV2luZG93PiB3aW5kb3csIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKQogICAgIDogSlNE
T01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgJnNoZWxsLT53b3JsZCgpLCAmc19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZSkKQEAgLTI3Niw0ICsyNzgsMzEgQEAgdm9pZCBKU0RPTVdpbmRvd0Jh
c2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRv
dykKICAgICB9CiB9CiAKKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFs
dWUgcmVmZXJyZXIpCit7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpq
c0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoRG9jdW1lbnQq
IGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVy
biBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBleGVjLCBt
b2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
KiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMs
IGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRl
ZmluZWQoKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSkKK3sKKyAgICBKU0RPTVdp
bmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9i
YWxPYmplY3QpOworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT5pbXBs
KCkuZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+
ZmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVLZXkpOworICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBkZWZlcnJlZC0+cmVq
ZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOworfQorCitKU0M6OkpTVmFsdWUgSlNET01XaW5kb3dC
YXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpT
VmFsdWUgbW9kdWxlUmVjb3JkKQoreworICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9
IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKERv
Y3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPmltcGwoKS5kb2N1bWVudCgpKQorICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFsdWF0ZShnbG9iYWxPYmplY3Qs
IGV4ZWMsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVm
aW5lZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDVlZDM4NjJjMTQxMTg3YzAwNmI2ODhk
Yjc5Nzc5NGIzNjk4MTA1NjQuLjJkNDRiODAwOWU1NGRiYjA3NGU4Zjk5NzdjMTZiMjVlMTI1N2Vh
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBA
IC03OCw2ICs3OCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTQzo6V2F0Y2hw
b2ludFNldCBtX3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHM7CiAKICAgICBwcml2YXRlOgorICAgICAg
ICAvLyBNb2R1bGUgTG9hZGVyIGhvb2tzLgorICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFs
UHJvbWlzZSogbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlND
OjpKU1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKwogICAgICAgICBSZWZQ
dHI8RE9NV2luZG93PiBtX2ltcGw7CiAgICAgICAgIEpTRE9NV2luZG93U2hlbGwqIG1fc2hlbGw7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmgKaW5kZXggMDllN2U1YjYwMjY4NzliNTMzNWExZmUxZWY3MWM0NDc0MzBiZmNk
NC4uNGZkNjgzZTE1OTEwMmIxNTI4N2Q2Mzg5OWMwMTZlZmQzNzQ4MDNlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKQEAgLTc0
LDYgKzc0LDI0IEBAIGNsYXNzIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSB7CiAgICAgICAgIHRhc2su
cnVuKGV4ZWMpOwogICAgIH0KIAorICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUp
CisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMp
OworICAgICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUpOworICAg
IH0KKworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCisgICAg
eworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMpOworICAg
ICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUpOworICAgIH0KKwor
ICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5KQor
ICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsK
KyAgICAgICAgcmV0dXJuIEpTQzo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKGV4ZWMsIG1vZHVsZUtl
eSk7CisgICAgfQorCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBp
bnN0cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBKU0M6OkNhbGxU
eXBlLCBjb25zdCBKU0M6OkNhbGxEYXRhJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3ZDM1NDU5ZjJlODEy
M2NmZjA4NjdmNDllNmY1MGE3Mzg3NGFmZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcApAQCAtMCwwICsxLDE0MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaGVyLmgi
CisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFNj
cmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitNb2R1bGVGZXRjaGVyOjpNb2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50
KGRvY3VtZW50KQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQorICAgICwgbV9nbG9iYWxP
YmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QpCisgICAgLCBtX2RlZmVycmVk
KGdsb2JhbE9iamVjdC0+dm0oKSwgZGVmZXJyZWQpCit7Cit9CisKK01vZHVsZUZldGNoZXI6On5N
b2R1bGVGZXRjaGVyKCkKK3sKKyAgICBpZiAobV9jYWNoZWRTY3JpcHQpIHsKKyAgICAgICAgbV9j
YWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQg
PSBudWxscHRyOworICAgIH0KK30KKworUmVmPE1vZHVsZUZldGNoZXI+IE1vZHVsZUZldGNoZXI6
OmNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwmIHNvdXJj
ZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1lbnQm
IGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vZHVsZUZldGNoZXIoZ2xv
YmFsT2JqZWN0LCBzb3VyY2VVUkwsIGRlZmVycmVkLCBkb2N1bWVudCkpOworfQorCitib29sIE1v
ZHVsZUZldGNoZXI6OnJ1bigpCit7CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMg
PSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwor
ICAgIG9wdGlvbnMuc2V0Q29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihDb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrKTsKKworICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX3NvdXJjZVVSTCksIG9wdGlvbnMp
OworICAgIC8vIEZJWE1FOiBTaG91bGQgaGFuZGxlICJjaGFyc2V0IiBvcHRpb25zLgorICAgIC8v
IE9uY2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBkZXRhaWxzLCB3ZSB3aWxsIGZvbGxvdyBpdC4K
KyAgICByZXF1ZXN0LnNldENoYXJzZXQobV9kb2N1bWVudC5jaGFyc2V0KCkpOworCisgICAgLy8g
RklYTUU6IFNob3VsZCBoYW5kbGUgImNyb3Nzb3JpZ2luIiBvcHRpb25zLgorICAgIC8vIE9uY2Ug
dGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBkZXRhaWxzLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICBy
ZXF1ZXN0LnNldEluaXRpYXRvcihBdG9taWNTdHJpbmcobV9zb3VyY2VVUkwuc3RyaW5nKCkpKTsK
KworICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9kb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CisgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gTm90ZTogSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFk
eSBjYWNoZWQsIHRoaXMgaW1tZWlkYXRlbHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCisgICAgbV9j
YWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Up
Cit7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9jYWNoZWRTY3Jp
cHQpOworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJldHVybjsKKworICAgIEFT
U0VSVChtX2NhY2hlZFNjcmlwdCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2Ny
aXB0PiBjYWNoZWRTY3JpcHQgPSBtX2NhY2hlZFNjcmlwdDsKKyAgICBtX2NhY2hlZFNjcmlwdCA9
IG51bGxwdHI7CisKKyNpZiBFTkFCTEUoTk9TTklGRikKKyAgICBpZiAoY2FjaGVkU2NyaXB0ICYm
ICFjYWNoZWRTY3JpcHQtPm1pbWVUeXBlQWxsb3dlZEJ5Tm9zbmlmZigpKSB7CisgICAgICAgIG1f
ZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsICJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGZyb20gJyIgKyBjYWNo
ZWRTY3JpcHQtPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicgYmVj
YXVzZSBpdHMgTUlNRSB0eXBlICgnIiArIGNhY2hlZFNjcmlwdC0+bWltZVR5cGUoKSArICInKSBp
cyBub3QgZXhlY3V0YWJsZSwgYW5kIHN0cmljdCBNSU1FIHR5cGUgY2hlY2tpbmcgaXMgZW5hYmxl
ZC4iKTsKKyAgICAgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIFJlZjxEb2N1bWVudD4gcHJvdGVjdChtX2Rv
Y3VtZW50KTsKKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpIHsK
KyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9iamVjdC0+dm0oKSk7Cisg
ICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMo
KTsKKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC0+ZXJyb3JPY2N1cnJlZCgpKSB7CisgICAgICAg
ICAgICAvLyBUaGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZSBpcyBjb25zdHJ1Y3RlZCBhcyBhIGNo
YWluIG9mIHByb21pc2VzLgorICAgICAgICAgICAgLy8gUmVqZWN0aW5nIGEgcHJvbWlzZSBpZiBz
b21lIGVycm9yIG9jY3VycyBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgZXhlY3V0aW9uIGZsb3cg
b2YKKyAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGNoYWluIGlzIGRyaXZlbiBieSAicmVqZWN0
ZWQiIG9yICJmdWxmaWxsZWQiIGV2ZW50cy4KKyAgICAgICAgICAgIC8vIElmIHRoZSBwcm9taXNl
IGlzIG5vdCByZWplY3RlZCB3aGlsZSBlcnJvciBvY2N1cnMsIHJlamVjdCBoYW5kbGVyIHdvbid0
IGJlIGV4ZWN1dGVkCisgICAgICAgICAgICAvLyBhbmQgYWxsIHRoZSBzdWJzZXF1ZW50IHByb21p
c2UgY2hhaW4gd2lsbCB3YWl0IHRoZSByZXN1bHQgZm9yZXZlci4KKyAgICAgICAgICAgIC8vCisg
ICAgICAgICAgICAvLyBBcyBhIHJlc3VsdCwgZXZlbiBpZiB0aGUgZXJyb3IgaXMgYWxyZWFkeSBy
ZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGVsc2V3aGVyZSwKKyAgICAgICAgICAgIC8vIGl0IHNo
b3VsZCBiZSBwcm9wYWdhdGVkIGluIHRoZSBwaXBlbGluZS4gRm9yIGV4YW1wbGUsIHRoZSBlcnJv
ciBvZiBsb2FkaW5nCisgICAgICAgICAgICAvLyBDYWNoZWRSZXNvdXJjZSBpcyBhbHJlYWR5IHJl
cG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgYnkgdGhlIGxvYWRlci4gQnV0IHdlIHN0aWxsIG5lZWQK
KyAgICAgICAgICAgIC8vIHRvIHJlamVjdCB0aGUgcHJvbWlzZSBieSBzb21lIGVycm9yLgorICAg
ICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdCB0byByZXBvcnQgdGhlIGVycm9yIHR3aWNl
LCB3aGVuIHdlIHByb3BhZ2F0ZSB0aGUgZXJyb3IgdGhhdCBpcyBhbHJlYWR5IHJlcG9ydGVkCisg
ICAgICAgICAgICAvLyB0byB0aGUgaW5zcGVjdG9yLCB3ZSB0aHJvdyBtb2R1bGVMb2FkZXJBbHJl
YWR5UmVwb3J0ZWRFcnJvclN5bWJvbCBzeW1ib2wgaW5zdGVhZC4KKyAgICAgICAgICAgIC8vIEJ5
IGNvbXBhcmluZyB0aGUgdGhyb3duIGVycm9yIHdpdGggdGhpcyBzeW1ib2wsIHdlIGNhbiBkaXN0
aW5ndWlzaCBlcnJvcnMgcmFpc2VkCisgICAgICAgICAgICAvLyB3aGVuIGxpbmtpbmcgb3IgZXhl
Y3V0aW5nIGEgbW9kdWxlIGdyYXBoIGZyb20gZXJyb3JzIHJlcG9ydGVkIGFscmVhZHkuCisgICAg
ICAgICAgICAvLyBJbiB0aGUgcmVqZWN0IGhhbmRsZXIgb2YgdGhlIHByb21pc2UsIHdlIG9ubHkg
cmVwb3J0IGEgZXJyb3IgdGhhdCBpcyBub3QgdGhpcyBzeW1ib2wuCisgICAgICAgICAgICBtX2Rl
ZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqKGZy
YW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVp
ZCgpKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZWRTY3JpcHQtPndhc0NhbmNlbGVkKCkp
IHsKKyAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShjYWNoZWRTY3JpcHQu
Z2V0KCkpOworICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBKU0M6OmpzU3Ry
aW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IC8vIEEgQ2FjaGVkUmVzb3VyY2VIYW5kbGUgYWxvbmUgZG9lcyBub3QgcHJldmVudCB0aGUgdW5k
ZXJseWluZyBDYWNoZWRSZXNvdXJjZQorICAgIC8vIGZyb20gcHVyZ2luZyBpdHMgZGF0YSBidWZm
ZXIuIFVudGlsIHdlIGZpbmlzaCB1c2luZyB0aGUgYmFja2luZyBidWZmZXIgb2YgdGhlCisgICAg
Ly8gY2FjaGVkIHNjcmlwdCwgd2UgZG9uJ3QgcmVtb3ZlIHRoZSBjbGllbnQuCisgICAgY2FjaGVk
U2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisKKyAgICBtX2RvY3VtZW50Lm1vZHVsZUxvYWRl
cigpLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICAvLyBBZnRlciBNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUgZGVzdHJveWVkLgorfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkzZDM2
YWUzNjBmMmY3MmIwZTk5ZWZiYTQzN2Y3MzU0NmI0NjIwZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuaApAQCAtMCwwICsxLDY5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVGZXRjaGVyX2gKKyNkZWZpbmUgTW9kdWxlRmV0
Y2hlcl9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8aGVhcC9T
dHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIERv
Y3VtZW50OworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CisKK2NsYXNzIE1vZHVsZUZldGNoZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVGZXRjaGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJj
ZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9kdWxlRmV0Y2hlcik7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TW9kdWxlRmV0Y2hl
cj4gY3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisKKyAgICB+TW9kdWxlRmV0
Y2hlcigpOworCisgICAgYm9vbCBydW4oKTsKKworICAgIENhY2hlZFNjcmlwdCogY2FjaGVkU2Ny
aXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBN
b2R1bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisKKyAgICAvLyBGb3Ig
Q2FjaGVkUmVzb3VyY2VDbGllbnQuCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAg
ICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJvbmc8SlNET01HbG9iYWxPYmplY3Q+IG1f
Z2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+
IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIE1vZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVs
ZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwMmIxNjJkMDEyM2Y1YTA4OGFlZjdiZjBiNDNjNTMy
OTUyN2VjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01v
ZHVsZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmgiCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1pY3JvVGFzay5oIgorI2luY2x1ZGUg
Ik1vZHVsZUdyYXBoLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUg
PGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9Db21wbGV0aW9uLmg+
CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcu
aD4KKyNpbmNsdWRlIDxydW50aW1lL1N5bWJvbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K01vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIE1vZHVs
ZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZVZhbHVlLCBKU0M6OkpTVmFs
dWUgcmVmZXJyZXJWYWx1ZSkKK3sKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQq
IGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywg
Z2xvYmFsT2JqZWN0KTsKKyAgICBpZiAobW9kdWxlTmFtZVZhbHVlLmlzU3ltYm9sKCkpCisgICAg
ICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBtb2R1bGVOYW1lVmFsdWUpOworCisg
ICAgLy8gRklYTUU6IFdlIG5vdyBhc3N1bWUgdGhhdCBtb2R1bGUgbmFtZSBpcyBlaXRoZXIgc3lt
Ym9sIG9yIHN0cmluZy4KKyAgICAvLyBXaGVuIGV4cG9zaW5nIHRoZSByZWZsZWN0aW9uIHRvIHRo
ZSBtb2R1bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBuZWVkIHRvIHJlY2FzdCB0aGlzIHBhcnQu
CisgICAgQVNTRVJUKG1vZHVsZU5hbWVWYWx1ZS5pc1N0cmluZygpKTsKKyAgICBTdHJpbmcgbW9k
dWxlTmFtZSA9IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJpbmcqPihtb2R1bGVOYW1lVmFsdWUpLT52
YWx1ZShleGVjKTsKKworICAgIC8vIE5vdywgd2UgY29uc2lkZXIgdGhlIGdpdmVuIG1vZHVsZU5h
bWUgYXMgdGhlIHNhbWUgdG8gdGhlIHNyYz0iLi4uIiBpbiB0aGUgc2NyaXB0IHRhZy4KKyAgICAv
LyBXZSB1c2UgdGhlIGNvbXBsZXRlZCBVUkwgYXMgdGhlIG1vZHVsZSBrZXkuCisgICAgLy8KKyAg
ICAvLyBGSVhNRTogV2UgbmVlZCBzaXRlIHBhY2thZ2luZyBzeXN0ZW0uIEJ1dCBpdCdzIG5vdCBk
ZWZpbmVkIGluIHRoZSBzcGVjIHlldC4KKyAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8v
bG9hZGVyLyNicm93c2VyLWxvYWRlci1wcm90b3R5cGUtJTQwJTQwcmVzb2x2ZQorICAgIFVSTCBj
b21wbGV0ZWRVUkw7CisKKyAgICAvLyBGSVhNRTogQ2hlY2sgbV9kb2N1bWVudCBsaWZldGltZS4K
KyAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBjb21wbGV0ZWRVUkwg
PSBtX2RvY3VtZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUpOworICAgIGVsc2UgeworICAgICAg
ICBpZiAocmVmZXJyZXJWYWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgY29tcGxldGVk
VVJMID0gbV9kb2N1bWVudC5jb21wbGV0ZVVSTChtb2R1bGVOYW1lKTsKKyAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICBBU1NFUlQocmVmZXJyZXJWYWx1ZS5pc1N0cmluZygpKTsKKyAgICAgICAg
ICAgIFN0cmluZyByZWZlcnJlciA9IEpTQzo6anNDYXN0PEpTQzo6SlNTdHJpbmcqPihyZWZlcnJl
clZhbHVlKS0+dmFsdWUoZXhlYyk7CisgICAgICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3Vt
ZW50LmNvbXBsZXRlVVJMKG1vZHVsZU5hbWUsIFVSTChQYXJzZWRVUkxTdHJpbmcsIHJlZmVycmVy
KSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFjb21wbGV0ZWRVUkwuaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBjcmVhdGVET01FeGNlcHRpb24o
ZXhlYywgU1lOVEFYX0VSUikpOworCisgICAgcmV0dXJuIGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMs
IGpzU3RyaW5nKGV4ZWMsIGNvbXBsZXRlZFVSTC5zdHJpbmcoKSkpOworfQorCitKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlW
YWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogV2hlbiBpbXBsZW1lbnRpbmcgcmVmbGVjdGl2ZSBtb2R1
bGUgbG9hZGVyIGFuZCBtb2R1bGVzLCB3ZSBzaG91bGQgcmVjYXN0IHRoaXMgaW1wbGVtZW50YXRp
b24uCisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisK
KyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpLCAiU3lt
Ym9saWMgbW9kdWxlIGtleSBzaG91bGQgYmUgYWxyZWFkeSBmdWxmaWxsZWQgd2l0aCB0aGUgaW5s
aW5lZCByZXNvdXJjZS4iKTsKKyAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7
CisKKyAgICBKU0M6OklkZW50aWZpZXIgbW9kdWxlS2V5ID0gSlNDOjpJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKGV4ZWMsIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykpOworCisg
ICAgVVJMIGNvbXBsZXRlZFVSTChQYXJzZWRVUkxTdHJpbmcsIG1vZHVsZUtleS5pbXBsKCkpOwor
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoY29tcGxldGVkVVJMLmlzVmFsaWQoKSwgIlRoZSByZXNv
bHZlIGhvb2sgc2hvdWxkIHByb2R1Y2UgdGhlIHZhbGlkIFVSTCBhcyBhIHN0cmluZy4iKTsKKwor
ICAgIFJlZjxNb2R1bGVGZXRjaGVyPiBmZXRjaGVyID0gTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpT
Qzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgY29tcGxldGVkVVJM
LCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7CisgICAgbV9mZXRjaGluZ1NldC5hZGQoJmZldGNoZXIu
Z2V0KCkpOworICAgIGlmICghZmV0Y2hlci0+cnVuKCkpIHsKKyAgICAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBkZWZlcnJlZC0+
cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgKihmcmFtZS0+c2Ny
aXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKS51aWQoKSkpKTsK
KyAgICB9CisKKyAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKK30KKworSlNDOjpKU1Zh
bHVlIE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUsIEpTQzo6SlNWYWx1ZSBt
b2R1bGVSZWNvcmRWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCB3ZSBvbmx5IHN1
cHBvcnQgSlNNb2R1bGVSZWNvcmQuCisgICAgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxlUmVj
b3JkID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNNb2R1bGVSZWNvcmQqPihtb2R1bGVSZWNv
cmRWYWx1ZSk7CisgICAgaWYgKCFtb2R1bGVSZWNvcmQpCisgICAgICAgIHJldHVybiBKU0M6Ompz
VW5kZWZpbmVkKCk7CisKKyAgICBVUkwgc291cmNlVVJMOworICAgIGlmIChtb2R1bGVLZXlWYWx1
ZS5pc1N5bWJvbCgpKQorICAgICAgICBzb3VyY2VVUkwgPSBtX2RvY3VtZW50LnVybCgpOworICAg
IGVsc2UgeworICAgICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CisgICAg
ICAgIHNvdXJjZVVSTCA9IFVSTChQYXJzZWRVUkxTdHJpbmcsIGFzU3RyaW5nKG1vZHVsZUtleVZh
bHVlKS0+dmFsdWUoZXhlYykpOworICAgIH0KKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2Rv
Y3VtZW50LmZyYW1lKCkpCisgICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVN
b2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQpOworICAgIHJldHVybiBKU0M6OmpzVW5kZWZp
bmVkKCk7Cit9CisKK3ZvaWQgTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVGZXRj
aGVyKiBmZXRjaGVyKQoreworICAgIG1fZmV0Y2hpbmdTZXQucmVtb3ZlKGZldGNoZXIpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM0OTM2OTY4MTY1ZWVkODU4MTAxNzgxY2QxODU0NzBjOGViNWUwZDAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuaApAQCAtMCwwICsx
LDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2R1bGVMb2FkZXJfaAorI2RlZmluZSBNb2R1
bGVMb2FkZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
ZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5j
bHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFzcyBNb2R1
bGVMb2FkZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUxvYWRlcik7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1vZHVsZUxvYWRlcihE
b2N1bWVudCYpOworCisgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX2RvY3VtZW50OworICAgIH0KKworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHJl
c29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
IG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFs
UHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworCisgICAgdm9pZCBub3RpZnlGaW5pc2hlZChNb2R1
bGVGZXRjaGVyKik7Citwcml2YXRlOgorICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIEhh
c2hTZXQ8UmVmUHRyPE1vZHVsZUZldGNoZXI+PiBtX2ZldGNoaW5nU2V0OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNGIzYjA5NzJi
ZTc3ZjNjNzY1OTVmMTQwZTI2YTc0OGZmOGVhNDUwYy4uOTliN2Y4YjYyYTRiN2ZlYWVmM2ZjNWI0
YTdjZWQ3MThhNTNlZDNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAKQEAgLTM2LDExICszNiwxMyBAQAogI2luY2x1ZGUgIkpTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk1lbW9y
eVByZXNzdXJlSGFuZGxlci5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCiAjaW5jbHVkZSAi
TlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVD
bGllbnQuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFz
ZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKQEAgLTU0LDcgKzU2LDExIEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1Njcmlw
dENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rp
b24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+Cisj
aW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogCkBAIC04Niw2
ICs5Miw3IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xsZXIoRnJhbWUmIGZyYW1l
KQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fc291cmNlVVJMKDApCiAgICAgLCBtX3Bh
dXNlZChmYWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1i
b2woKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV93aW5kb3dTY3Jp
cHROUE9iamVjdCgwKQogI2VuZGlmCkBAIC0xNzUsMTEgKzE4MiwxMjggQEAgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUKICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0o
KSwgcmV0dXJuVmFsdWUpOwogfQogCi1EZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKSAKK0Rl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3Js
ZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiB9CiAKK3N0YXRpYyB2b2lk
IGhhbmRsZU1vZHVsZUxvYWRlckVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBlcnJvciwg
Y29uc3QgUHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9s
KQoreworICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3IgaXMgbWFya2VkIGFzIG1vZHVsZUxvYWRl
ckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAgIC8vIERvbid0IHJlcG9ydCBpdCBoZXJl
IGFnYWluLgorICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9IGpzRHluYW1pY0Nhc3Q8U3ltYm9sKj4o
ZXJyb3IpKSB7CisgICAgICAgIGlmIChzeW1ib2wtPnByaXZhdGVOYW1lKCkgPT0gbW9kdWxlTG9h
ZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisgICAgICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgaGF2ZSBub3Qgc3VwcG9ydGVkIHRoZSAiY3Jv
c3NvcmlnaW4iIGF0dHJpYnV0ZSBpbiB0aGUgbW9kdWxlIHRhZywKKyAgICAvLyB3ZSBwYXNzIHRo
ZSBudWxscHRyIHRvIHJlcG9ydEV4Y2VwdGlvbidzIENhY2hlZFNjcmlwdCogcGFyYW1ldGVyLiBX
aGVuIHBhc3NpbmcgbnVsbHB0cgorICAgIC8vIHRvIHJlcG9ydEV4Y2VwdGlvbiwgV2ViQ29yZSBk
b2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVycm9yIGlmIHRoZSBVUkwgb2YgdGhlCisg
ICAgLy8gc291cmNlIGRvZXMgbm90IHBhc3MgdGhlIHNhbWUgb3JpZ2luIHBvbGljeS4gU28gdGhl
IGN1cnJlbnQgYmVoYXZpb3IgaXMgY29uc2VydmF0aXZlOworICAgIC8vIG9ubHkgdGhlIG1vZHVs
ZSBjb2RlIHRoYXQgVVJMIGlzIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4gY2FuIHJlcG9ydCB0aGUg
ZGV0YWlscyBvZiB0aGUKKyAgICAvLyBlcnJvci4gT25jZSB0aGUgc3BlYyBkZXNjcmliZXMgdGhl
IGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICByZXBvcnRFeGNlcHRpb24oZXhlYywg
ZXJyb3IsIG51bGxwdHIpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJ
bldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1l
LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxk
LnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3Js
ZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7
CisKKyAgICBpbml0TW9kdWxlR3JhcGgobW9kdWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0
ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lKSwgd29ybGQpOworfQorCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBT
dHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAgbG9hZE1vZHVsZUluV29ybGQobW9kdWxlR3JhcGgs
IG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwordm9pZCBTY3JpcHRD
b250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQp
Cit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIGluaXRNb2R1bGVHcmFwaCht
b2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJj
ZUNvZGUuanNTb3VyY2VDb2RlKCkpLCB3b3JsZCk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxl
cjo6bG9hZE1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgbG9hZE1vZHVsZUluV29ybGQobW9kdWxlR3JhcGgs
IHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwordm9pZCBTY3JpcHRD
b250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiBtb2R1
bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9j
ayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hl
bGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFs
RXhlYygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU01haW5UaHJlYWRF
eGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBJZGVudGlmaWVyOjpmcm9tVWlk
KCZleGVjLT52bSgpLCBtb2R1bGVHcmFwaC5tb2R1bGVLZXkoKSkpOworCisgICAgV2Vha1B0cjxF
bGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtFbGVtZW50UHRyKCkpOworICAgIEpTRnVu
Y3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMt
PnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFt3ZWFrUHRyXShFeGVjU3RhdGUq
KSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkp
CisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5t
b2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIFByaXZhdGVOYW1lIG1vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sID0gbV9tb2R1bGVMb2FkZXJBbHJlYWR5
UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICBKU0Z1bmN0aW9uKiByZWplY3RIYW5kbGVyID0gSlNO
YXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwg
U3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCwgd2Vha1B0
cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVu
dCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsKKyAgICAg
ICAgaGFuZGxlTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIG1vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKTsKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIHByb21pc2UtPnRoZW4o
ZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRsZXIpOworfQorCit2b2lkIFNjcmlwdENv
bnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgp
Cit7CisgICAgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFwaCwgbWFpblRo
cmVhZE5vcm1hbFdvcmxkKCkpOworfQorCitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRD
b250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVS
ZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xv
Y2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIGNvbnN0IFNvdXJjZUNvZGUmIGpzU291
cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29kZSgpOworCisgICAgSlNET01XaW5kb3dT
aGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0g
c2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisgICAgY29uc3QgU3RyaW5nKiBzYXZlZFNv
dXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTC5zdHJp
bmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKKworICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwsIGpzU291cmNlQ29kZS5maXJz
dExpbmUoKSk7CisKKyAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gbW9kdWxlUmVjb3JkLT5ldmFs
dWF0ZShleGVjKTsKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247
CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICBldmFsdWF0aW9uRXhjZXB0
aW9uID0gZXhlYy0+dm0oKS5leGNlcHRpb24oKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRXZhbHVhdGVTY3JpcHQoY29va2llLCBtX2ZyYW1lKTsKKworICAgIGlmIChldmFs
dWF0aW9uRXhjZXB0aW9uKSB7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBldmFsdWF0
aW9uRXhjZXB0aW9uLCBudWxscHRyKTsKKyAgICAgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJj
ZVVSTDsKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKCk7CisgICAgfQor
CisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICByZXR1cm4gRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUoZXhlYy0+dm0oKSwgcmV0dXJuVmFsdWUpOworfQorCitEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwm
IHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCkKK3sKKyAgICByZXR1cm4g
ZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCBtb2R1bGVSZWNvcmQsIG1haW5UaHJlYWROb3JtYWxX
b3JsZCgpKTsKK30KKwogUmVmPERPTVdyYXBwZXJXb3JsZD4gU2NyaXB0Q29udHJvbGxlcjo6Y3Jl
YXRlV29ybGQoKQogewogICAgIHJldHVybiBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdp
bmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0yNzIsNiArMzk2LDQxIEBAIEpTRE9NV2luZG93U2hlbGwq
IFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKICAg
ICByZXR1cm4gd2luZG93U2hlbGw7CiB9CiAKK3N0YXRpYyBJZGVudGlmaWVyIGpzVmFsdWVUb01v
ZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVl
LmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxT
eW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmlu
ZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBqc0Nhc3Q8SlNT
dHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVy
Ojppbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBKU0ludGVybmFsUHJv
bWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8RWxlbWVudD4g
d2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBm
dWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBz
aGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7
CisgICAgICAgIC8vIE1vZHVsZUdyYXBoLCBzY3JpcHQgZWxlbWVudCBhbmQgZG9jdW1lbnQgbWF5
IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUgbW9kdWxlLgorICAgICAgICAvLyBJbiB0
aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBtb2R1bGUgYm9keS4KKyAgICAgICAgaWYg
KFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkgeworICAgICAgICAgICAg
SWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZXhlYywgZXhlYy0+YXJn
dW1lbnQoMCkpOworICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50
LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5TG9hZGVkKG1vZHVsZUtleS5pbXBsKCkpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRF
cnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7Cisg
ICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0
ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbbW9kdWxlTG9hZGVy
QWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykgewor
ICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFrUHRyLmdldCgpKQorICAg
ICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxl
R3JhcGgoKS0+bm90aWZ5RXJyb3JlZCgpOworICAgICAgICBoYW5kbGVNb2R1bGVMb2FkZXJFcnJv
cihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJy
b3JTeW1ib2wpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxsSGFuZGxlciwgcmVq
ZWN0SGFuZGxlcik7Cit9CisKIFRleHRQb3NpdGlvbiBTY3JpcHRDb250cm9sbGVyOjpldmVudEhh
bmRsZXJQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IElmIHdlIGFyZSBub3QgY3Vy
cmVudGx5IHBhcnNpbmcsIHdlIHNob3VsZCB1c2Ugb3VyIGN1cnJlbnQgbG9jYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCAwN2M1M2I3
YzhlZGZiNGUyOGY1Y2ExM2FhMmM0ZTA1NTk0ZWY1MTIyLi45MDFiNTNlYmFmNTRjNDc4ZjdkNDFl
ZjFkYzUxNTBjMWIwODVhOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCw5IEBAIGNsYXNzIFNjcmlwdFZhbHVlOwogCiBu
YW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKKyAgICBjbGFzcyBKU01v
ZHVsZVJlY29yZDsKKyAgICBjbGFzcyBKU0ludGVybmFsUHJvbWlzZTsKKwogICAgIGNsYXNzIEV4
ZWNTdGF0ZTsKIAogICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CkBAIC01Nyw2ICs2MCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTERvY3VtZW50OwogY2xh
c3MgSFRNTFBsdWdJbkVsZW1lbnQ7CitjbGFzcyBNb2R1bGVHcmFwaDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdpZGdldDsKQEAgLTExNSw2
ICsxMTksMTcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAgICAgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwogICAgIERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwg
RE9NV3JhcHBlcldvcmxkJik7CiAKKyAgICB2b2lkIGxvYWRNb2R1bGVJbldvcmxkKE1vZHVsZUdy
YXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICB2
b2lkIGxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpOwor
ICAgIHZvaWQgbG9hZE1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmLCBjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBsb2FkTW9kdWxlKE1vZHVsZUdy
YXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworCisgICAgdm9pZCBsaW5rQW5kRXZhbHVh
dGVNb2R1bGVJbldvcmxkKE1vZHVsZUdyYXBoJiAsIERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZv
aWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKE1vZHVsZUdyYXBoJik7CisKKyAgICBEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpTTW9kdWxlUmVj
b3JkKiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZh
bHVhdGVNb2R1bGUoY29uc3QgVVJMJiwgSlNDOjpKU01vZHVsZVJlY29yZCopOworCiAgICAgV1RG
OjpUZXh0UG9zaXRpb24gZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdDsKIAogICAgIHZvaWQg
ZW5hYmxlRXZhbCgpOwpAQCAtMTM1LDYgKzE1MCw4IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIg
ewogCiAgICAgY29uc3QgU3RyaW5nKiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJj
ZVVSTDsgfSAvLyAwIGlmIHdlIGFyZSBub3QgZXZhbHVhdGluZyBhbnkgc2NyaXB0CiAKKyAgICBj
b25zdCBKU0M6OlByaXZhdGVOYW1lJiBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5
bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JT
eW1ib2w7IH0KKwogICAgIHZvaWQgY2xlYXJXaW5kb3dTaGVsbChET01XaW5kb3cqIG5ld0RPTVdp
bmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOwogICAgIHZvaWQgdXBkYXRlRG9jdW1lbnQo
KTsKIApAQCAtMTcwLDYgKzE4Nyw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogCiBwcml2
YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93U2hlbGwqIGluaXRTY3JpcHQoRE9N
V3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBpbml0TW9kdWxlR3JhcGgoTW9kdWxlR3JhcGgmLCBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiwgRE9NV3JhcHBlcldvcmxkJik7CiAKICAgICB2b2lkIGRp
c2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKIApAQCAtMTc4LDYgKzE5Niw3IEBAIGNs
YXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIGNvbnN0IFN0cmluZyogbV9zb3VyY2VVUkw7CiAK
ICAgICBib29sIG1fcGF1c2VkOworICAgIEpTQzo6UHJpdmF0ZU5hbWUgbV9tb2R1bGVMb2FkZXJB
bHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKIAogICAgIC8vIFRoZSByb290IG9iamVjdCB1c2Vk
IGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhlIGNvbnRleHQgb2YgYSBwbHVnaW4sIHN1Y2gK
ICAgICAvLyBhcyBOUEFQSSBwbHVnaW5zLiBUaGUgcGx1Z2lucyB1c2luZyB0aGVzZSBvYmplY3Rz
IHByZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVkIHNvIHRoZXkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
QWxsSW5PbmUuY3BwCmluZGV4IGQ5MWI2M2E2MjRiNGUwMjZiYjI4ZTZlNGUzNTY2NzExMTdkM2M1
OGUuLjc2OTgyZTBhNmZiNTMxMTcyOGVlNmRjY2NiMTQxNGNjYjM0NmE5NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUFsbEluT25lLmNwcApAQCAtOTgsNiArOTgsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0LmNwcCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5uZWwuY3BwIgogI2luY2x1ZGUgIk1p
Y3JvVGFzay5jcHAiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguY3BwIgogI2luY2x1ZGUgIk1vdXNl
RXZlbnQuY3BwIgogI2luY2x1ZGUgIk1vdXNlUmVsYXRlZEV2ZW50LmNwcCIKICNpbmNsdWRlICJN
dXRhdGlvbkV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDdiMTFlMzlhMWEz
ZDBiNGEwMzdkZTgzNWZiOTIxZjgxY2MwMjI3ZDEuLmFiNjU1Yjc5ZGI0ZDdlYTM3ODA3MDUzODg5
YjI3ZmZmNjYyOTA2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA0LDYgKzEwNCw3
IEBACiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0
LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2Fk
ZXIuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW5jbHVk
ZSAiTmFtZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCIK
QEAgLTQ2NCw2ICs0NjUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25z
dCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwogICAgICwgbV9zdGFy
dFRpbWUoc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpCiAgICAgLCBtX292ZXJNaW5p
bXVtTGF5b3V0VGhyZXNob2xkKGZhbHNlKQogICAgICwgbV9zY3JpcHRSdW5uZXIoc3RkOjptYWtl
X3VuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKHN0ZDo6
bWFrZV91bmlxdWU8TW9kdWxlTG9hZGVyPigqdGhpcykpCiAgICAgLCBtX3htbFZlcnNpb24oQVND
SUlMaXRlcmFsKCIxLjAiKSkKICAgICAsIG1feG1sU3RhbmRhbG9uZShTdGFuZGFsb25lVW5zcGVj
aWZpZWQpCiAgICAgLCBtX2hhc1hNTERlY2xhcmF0aW9uKGZhbHNlKQpAQCAtNjA1LDYgKzYwNyw3
IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAgICAgICBtX2RvbVdpbmRvdy0+cmVzZXRVbmxl
c3NTdXNwZW5kZWRGb3JQYWdlQ2FjaGUoKTsKIAogICAgIG1fc2NyaXB0UnVubmVyID0gbnVsbHB0
cjsKKyAgICBtX21vZHVsZUxvYWRlciA9IG51bGxwdHI7CiAKICAgICByZW1vdmVBbGxFdmVudExp
c3RlbmVycygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGY5MTgwODlmMjNiMmZiM2ExOGRm
YmQyMWY1ZjcwMzk4MDUwNzViYTcuLjlhNzhiMjM1YTY1OGI2MWM4OGMxYzY3ZjY3Y2JlZGU0NDFi
OWE1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMzAsNiArMTMwLDcgQEAgY2xhc3MgTWVk
aWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CiBjbGFz
cyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOworY2xhc3MgTW9kdWxl
TG9hZGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5hbWVk
Rmxvd0NvbGxlY3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpAQCAtOTM0LDYgKzkzNSw3IEBAIGNs
YXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBUcmVlU2NvcGUsIHB1
YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgRG9jdW1lbnQmIHRvcERvY3VtZW50KCkgY29uc3Q7
CiAgICAgCiAgICAgU2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX3Njcmlw
dFJ1bm5lci5nZXQoKTsgfQorICAgIE1vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyKCkgeyByZXR1
cm4gbV9tb2R1bGVMb2FkZXIuZ2V0KCk7IH0KIAogICAgIEhUTUxTY3JpcHRFbGVtZW50KiBjdXJy
ZW50U2NyaXB0KCkgY29uc3QgeyByZXR1cm4gIW1fY3VycmVudFNjcmlwdFN0YWNrLmlzRW1wdHko
KSA/IG1fY3VycmVudFNjcmlwdFN0YWNrLmxhc3QoKS5nZXQoKSA6IDA7IH0KICAgICB2b2lkIHB1
c2hDdXJyZW50U2NyaXB0KFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+KTsKQEAgLTE1MTgs
NiArMTUyMCw3IEBAIGNsYXNzIERvY3VtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1Ymxp
YyBUcmVlU2NvcGUsIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25DCiAgICAgYm9vbCBtX292ZXJNaW5p
bXVtTGF5b3V0VGhyZXNob2xkOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRSdW5u
ZXI+IG1fc2NyaXB0UnVubmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVMb2FkZXI+IG1f
bW9kdWxlTG9hZGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4+IG1f
Y3VycmVudFNjcmlwdFN0YWNrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9k
dWxlR3JhcGguY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NDE3YTJjZDRlOGIxZTQ2YjA1MDIxM2IzMDU5NjEzYzc3MjZhZTg3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmNwcApAQCAtMCwwICsxLDg1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vZHVsZUdy
YXBoLmgiCisKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUg
IlNjcmlwdFJ1bm5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitNb2R1bGVHcmFwaDo6TW9kdWxlR3JhcGgoRWxlbWVudCYgZWxlbWVu
dCkKKyAgICA6IG1fZWxlbWVudChlbGVtZW50KQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSgmZWxl
bWVudCkKK3sKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJp
bmdJbXBsKiBtb2R1bGVLZXkpCit7CisgICAgbV9tb2R1bGVLZXkgPSBtb2R1bGVLZXk7CisgICAg
bV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVh
ZHkodG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgTW9k
dWxlR3JhcGg6Om5vdGlmeUVycm9yZWQoKQoreworICAgIG1fZXJyb3JlZCA9IHRydWU7CisgICAg
bV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeU1vZHVsZUdyYXBoUmVh
ZHkodG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgTW9k
dWxlR3JhcGg6OmV2YWx1YXRlKCkKK3sKKyAgICBpZiAobV9lcnJvcmVkKQorICAgICAgICB0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaEVycm9yRXZlbnQoKTsK
KyAgICBlbHNlIGlmIChGcmFtZSogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgp
KQorICAgICAgICBmcmFtZS0+c2NyaXB0KCkubGlua0FuZEV2YWx1YXRlTW9kdWxlKCp0aGlzKTsK
K30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXZhbHVhdGVkKCkKK3sKKyAgICB0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaExvYWRFdmVudCgpOworfQor
Cit2b2lkIE1vZHVsZUdyYXBoOjpsb2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sKKyAg
ICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRv
Y3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgbW9kdWxlTmFtZSk7
Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6OmxvYWQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291
cmNlQ29kZSkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7Cisg
ICAgbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhp
cywgc291cmNlQ29kZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b2R1bGVHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzE2ZTg5N2NiYzAyODFlNWVmMTU4MTgwZGNhZTliZjYyYjY2YTBlOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5oCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUdyYXBoX2gKKyNkZWZpbmUgTW9kdWxlR3JhcGhf
aAorCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRl
cm5hbFByb21pc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7Citj
bGFzcyBTY3JpcHRTb3VyY2VDb2RlOworCisvLyBLZWVwIGxpZmV0aW1lIG9mIGEgTW9kdWxlR3Jh
cGggdGhlIHNhbWUgdG8gYSBTY3JpcHRFbGVtZW50LgorY2xhc3MgTW9kdWxlR3JhcGggeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKE1vZHVsZUdyYXBoKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTW9kdWxlR3JhcGgoRWxlbWVudCYpOworCisgICAg
RWxlbWVudCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsgfQorICAgIFVuaXF1ZWRTdHJp
bmdJbXBsKiBtb2R1bGVLZXkoKSB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQorCisgICAg
dm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisgICAgdm9pZCBsb2FkKGNvbnN0
IFNjcmlwdFNvdXJjZUNvZGUmKTsKKyAgICB2b2lkIGV2YWx1YXRlKCk7CisKKyAgICBXZWFrUHRy
PEVsZW1lbnQ+IHdlYWtFbGVtZW50UHRyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRl
ZChVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KTsKKyAgICB2b2lkIG5vdGlmeUVycm9yZWQo
KTsKKworICAgIHZvaWQgbm90aWZ5RXZhbHVhdGVkKCk7CisKKyAgICBib29sIGVycm9yT2NjdXJy
ZWQoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yZWQ7IH0KKyAgICBib29sIGlzTG9hZGVkKCkgY29u
c3QgeyByZXR1cm4gbV9tb2R1bGVLZXk7IH0KKworcHJpdmF0ZToKKworICAgIEVsZW1lbnQmIG1f
ZWxlbWVudDsKKyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1fbW9kdWxlS2V5OworICAg
IFdlYWtQdHJGYWN0b3J5PEVsZW1lbnQ+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAgYm9vbCBtX2Vy
cm9yZWQgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA2
NmJiZWNlMWQzNWUxYTQ3NjNiZjllYmViZjBmMGMxMmNkYmVmMWQ3Li4yZWM2YmRlOWRiMmY3ZDcy
NjUwMDM1YTliMTJkYmM2ODViNjczNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2lu
Y2x1ZGUgIklnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgiCiAjaW5jbHVk
ZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vZHVsZUdyYXBoLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxl
bWVudC5oIgpAQCAtMTYxLDYgKzE2MiwxMCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OmlzU2NyaXB0
VHlwZVN1cHBvcnRlZChMZWdhY3lUeXBlU3VwcG9ydCBzdXBwb3J0TGVnYWN5VHlwZXMpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IGVsc2UgaWYgKE1JTUVUeXBlUmVnaXN0cnk6Omlz
U3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKHR5cGUuc3RyaXBXaGl0ZVNwYWNlKCkubG93ZXIo
KSkgfHwgKHN1cHBvcnRMZWdhY3lUeXBlcyA9PSBBbGxvd0xlZ2FjeVR5cGVJblR5cGVBdHRyaWJ1
dGUgJiYgaXNMZWdhY3lTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UodHlwZSkpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoRVM2X01PRFVMRVMpCisgICAgZWxzZSBpZiAodHlw
ZSA9PSAibW9kdWxlIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKQEAgLTIxNyw2ICsyMjIsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBh
cmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwog
ICAgIGVsc2UKICAgICAgICAgbV9jaGFyYWN0ZXJFbmNvZGluZyA9IGRvY3VtZW50LmNoYXJzZXQo
KTsKIAorICAgIGlmIChpc01vZHVsZVR5cGUoKSkKKyAgICAgICAgcmV0dXJuIGxvYWRNb2R1bGUo
c2NyaXB0U3RhcnRQb3NpdGlvbik7CisKICAgICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpCiAg
ICAgICAgIGlmICghcmVxdWVzdFNjcmlwdChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMxNyw2ICszMjUsOSBAQCB2b2lkIFNjcmlwdEVsZW1l
bnQ6OnN0b3BMb2FkUmVxdWVzdCgpCiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3Zl
Q2xpZW50KHRoaXMpOwogICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IDA7CiAgICAgfQorICAgIC8v
IEZJWE1FOiBUaGUgbW9kdWxlIGxvYWRlciBzaG91bGQgaGF2ZSB0aGUgbWVjaGFuaXNtIHRvIHN0
b3AgbG9hZGluZy4KKyAgICAvLyBUaGUgY3VycmVudCBsb2FkZXIgc3BlYyBkb2VzIG5vdCBoYXZl
IHRoaXMuIE9uY2UgaXQgaXMgc3BlY2lmaWVkCisgICAgLy8gd2Ugd2lsbCBpbnRyb2R1Y2UgdGhp
cyBmZWF0dXJlLgogfQogCiB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGUoQ2FjaGVkU2NyaXB0
KiBjYWNoZWRTY3JpcHQpCkBAIC0zMzIsNiArMzQzLDU3IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6
ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKICAgICBjYWNoZWRTY3JpcHQtPnJl
bW92ZUNsaWVudCh0aGlzKTsKIH0KIAorYm9vbCBTY3JpcHRFbGVtZW50Ojpsb2FkTW9kdWxlKGNv
bnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3sKKyAgICAvLyBUaGUgYnJv
d3NlciBtb2R1bGUgbG9hZGVyIGxvYWRzIHRoZSBtb2R1bGUgc291cmNlcy4KKyAgICAvLyBTaW5j
ZSB0aGUgbW9kdWxlIGludm9sdmVzIGxvYWRpbmcgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzIGFu
ZCB0aGUgZGVwZW5kZW50IG1vZHVsZXMgZG9lcyBub3QgaGF2ZSBjb3JyZXNwb25kaW5nIHNjcmlw
dCBlbGVtZW50cywKKyAgICAvLyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBsb2FkaW5nIG1vZHVsZXMg
aXMgc2VwYXJhdGVkIGZyb20gdGhlIHNjcmlwdCBlbGVtZW50LgorICAgIGlmIChoYXNTb3VyY2VB
dHRyaWJ1dGUoKSkgeworICAgICAgICBTdHJpbmcgc291cmNlVXJsID0gc291cmNlQXR0cmlidXRl
VmFsdWUoKTsKKyAgICAgICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50KG1fZWxlbWVu
dC5kb2N1bWVudCgpKTsKKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVMb2Fk
RXZlbnQoc291cmNlVXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAv
LyBTY3JpcHQgZWxlbWVudCBtYXkgYmUgZGV0YWNoZWQgYW5kIGF0dGFjaGVkIHRvIGEgZGlmZmVy
ZW50IGRvY3VtZW50IHdoaWxlIGV4ZWN1dGluZyB0aGUgZXZlbnQgbGlzdGVuZXIuCisgICAgICAg
IGlmICghbV9lbGVtZW50LmluRG9jdW1lbnQoKSB8fCAmbV9lbGVtZW50LmRvY3VtZW50KCkgIT0g
b3JpZ2luYWxEb2N1bWVudC5wdHIoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICBpZiAoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgc3Vw
cG9ydCBjcm9zcy1vcmlnaW4gbW9kZSBpbiB0aGUgbW9kdWxlIHRhZy4KKyAgICAgICAgLy8gSG93
ZXZlciB3ZSBkb24ndCBoYXZlIHRoZSBwb2xpY3kgdG8gYXBwbHkgdGhpcyBtb2RlIHRvIHRoZSBy
ZXNvdXJjZXMgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAvLyBQcm92aWRlZCBt
dWx0aXBsZSBtb2R1bGUgdGFncywKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICBBOiA8c2NyaXB0
IHR5cGU9Im1vZHVsZSIgc3JjPSIuLi4iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0
PgorICAgICAgICAvLyAgIEI6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiI+PC9zY3Jp
cHQ+CisgICAgICAgIC8vCisgICAgICAgIC8vICdBJyBoYXMgdGhlICJjcm9zc29yaWdpbiIgYXR0
cmlidXRlLiBCdXQgJ0InIGRvZXMgbm90IGhhdmUgaXQuCisgICAgICAgIC8vIEhvd2V2ZXIsIEVT
NiBtb2R1bGVzIGFsbG93ICdBJyBhbmQgJ0InIHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGFuZCBp
dCB3aWxsIGJlIGNhY2hlZCBpbiB0aGUKKyAgICAgICAgLy8gbW9kdWxlIGxvYWRlci4gSW4gdGhh
dCBjYXNlLCBpdCBpcyBjb250cm92ZXJzaWFsIHRoYXQgd2hpY2ggImNyb3Nzb3JpZ2luIiBhdHRy
aWJ1dGUgd2lsbCBiZQorICAgICAgICAvLyBhcHBsaWVkIHRvIHRoZSBtb2R1bGUgbG9hZGVkIGJ5
IHRoZSBib3RoLiBPbmNlIHRoZSBzcGVjIG9mIHRoZSBtb2R1bGUgbG9hZGVyIGlzIGZpeGVkLCB3
ZQorICAgICAgICAvLyBzaG91bGQgZm9sbG93IGl0LgorCisgICAgICAgIG1faXNFeHRlcm5hbFNj
cmlwdCA9IHRydWU7CisgICAgICAgIG1fbW9kdWxlR3JhcGggPSBzdGQ6Om1ha2VfdW5pcXVlPE1v
ZHVsZUdyYXBoPihtX2VsZW1lbnQpOworICAgICAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3Jp
cHRSdW5uZXIoKS0+cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbih0aGlzLCAqbV9tb2R1bGVH
cmFwaCk7CisgICAgICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoc291cmNlQXR0cmlidXRlVmFsdWUo
KSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmICghbV9lbGVtZW50LmRv
Y3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lU2NyaXB0KG1fZWxl
bWVudC5kb2N1bWVudCgpLnVybCgpLCBtX3N0YXJ0TGluZU51bWJlciwgbV9lbGVtZW50LmlzSW5V
c2VyQWdlbnRTaGFkb3dUcmVlKCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIFJl
c2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgorICAgIFRleHRQb3NpdGlvbiBw
b3NpdGlvbiA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmlzSW5Eb2N1bWVudFdyaXRlKCkgPyBUZXh0
UG9zaXRpb24oKSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CisgICAgbV9tb2R1bGVHcmFwaCA9IHN0
ZDo6bWFrZV91bmlxdWU8TW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7CisgICAgbV9lbGVtZW50LmRv
Y3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24odGhp
cywgKm1fbW9kdWxlR3JhcGgpOworICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoU2NyaXB0U291cmNl
Q29kZShzY3JpcHRDb250ZW50KCksIG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBwb3NpdGlv
bikpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZp
bmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQoIW1fd2lsbEJl
UGFyc2VyRXhlY3V0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggYjdlNzNk
MGRlZTgzZDMyNGU4NzJmN2JjNGMxYjkzM2RjOTZjMTEyYS4uNmU1YzIxNDI5NGQ4MTk2OGM4NmUw
ZDA3YTY5NzA3NDM5NGExYzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0z
MSw2ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNs
YXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBFbGVtZW50OworY2xhc3MgTW9kdWxlR3JhcGg7CiBj
bGFzcyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIApAQCAtNTksNiAr
NjAsNyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVu
dCB7CiAgICAgYm9vbCByZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQ7IH0KICAgICBib29sIHdpbGxFeGVjdXRlV2hlbkRvY3Vt
ZW50RmluaXNoZWRQYXJzaW5nKCkgY29uc3QgeyByZXR1cm4gbV93aWxsRXhlY3V0ZVdoZW5Eb2N1
bWVudEZpbmlzaGVkUGFyc2luZzsgfQogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNj
cmlwdD4gY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQ7IH0KKyAgICBNb2R1
bGVHcmFwaCogbW9kdWxlR3JhcGgoKSB7IHJldHVybiBtX21vZHVsZUdyYXBoLmdldCgpOyB9CiAK
IHByb3RlY3RlZDoKICAgICBTY3JpcHRFbGVtZW50KEVsZW1lbnQmLCBib29sIGNyZWF0ZWRCeVBh
cnNlciwgYm9vbCBpc0V2YWx1YXRlZCk7CkBAIC04Miw2ICs4NCw4IEBAIGNsYXNzIFNjcmlwdEVs
ZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIHJlcXVlc3RT
Y3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOwogICAgIHZvaWQgc3RvcExvYWRSZXF1ZXN0
KCk7CiAKKyAgICBib29sIGxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFy
dFBvc2l0aW9uKTsKKwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBTdHJpbmcgc291cmNlQXR0cmlidXRlVmFs
dWUoKSBjb25zdCA9IDA7CkBAIC05Myw2ICs5Nyw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBw
cml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgYXN5bmNBdHRy
aWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJBdHRyaWJ1dGVW
YWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVsZVR5cGUoKSBjb25zdCA9IDA7CiAK
ICAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKQEAgLTEwOSw2ICsxMTQsNyBAQCBjbGFzcyBTY3JpcHRF
bGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCBtX3JlcXVl
c3RVc2VzQWNjZXNzQ29udHJvbCA6IDE7CiAgICAgU3RyaW5nIG1fY2hhcmFjdGVyRW5jb2Rpbmc7
CiAgICAgU3RyaW5nIG1fZmFsbGJhY2tDaGFyYWN0ZXJFbmNvZGluZzsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8TW9kdWxlR3JhcGg+IG1fbW9kdWxlR3JhcGg7CiB9OwogCiBTY3JpcHRFbGVtZW50KiB0
b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1
bm5lci5jcHAKaW5kZXggOTYzNjk4MDRhZDhmMDc0YmQ3MzZhZmJmYjUwMmE0NWZjOTE1NzYwMS4u
YWIxZDg4ZWFmNzU3NWQzNDQ2ZjM0MGEzMTVlZmEwMTIzNGEyZjUzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRTY3Jp
cHQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWljcm9UYXNrLmgiCisjaW5j
bHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RWxlbWVudC5oIgogCkBAIC00OCw2ICs0OSwxMCBAQCBTY3JpcHRSdW5uZXI6On5T
Y3JpcHRSdW5uZXIoKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5
Q291bnQoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nQXN5bmNTY3Jp
cHRzLnNpemUoKTsgKytpKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERl
bGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbW9kdWxlU2NyaXB0RWxl
bWVudHNUb0V4ZWN1dGVTb29uLnNpemUoKTsgKytpKQorICAgICAgICBtX2RvY3VtZW50LmRlY3Jl
bWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9j
dW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogfQogCiB2b2lkIFNjcmlwdFJ1
bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVu
dCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQsIEV4ZWN1
dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKQEAgLTcxLDYgKzc2LDE4IEBAIHZvaWQgU2NyaXB0UnVu
bmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50
LCBDYWNoZWRSCiAgICAgfQogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVNb2R1bGVHcmFw
aEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBNb2R1bGVHcmFwaCYp
Cit7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOworCisgICAgRWxlbWVudCYgZWxlbWVudCA9
IHNjcmlwdEVsZW1lbnQtPmVsZW1lbnQoKTsKKyAgICBBU1NFUlQoZWxlbWVudC5pbkRvY3VtZW50
KCkpOworCisgICAgbV9kb2N1bWVudC5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisK
KyAgICBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5hZGQoJmVsZW1lbnQpOworfQorCiB2
b2lkIFNjcmlwdFJ1bm5lcjo6c3VzcGVuZCgpCiB7CiAgICAgbV90aW1lci5zdG9wKCk7CkBAIC05
Nyw2ICsxMTQsMjYgQEAgdm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeVNjcmlwdFJlYWR5KFNjcmlw
dEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIEV4ZWN1dGlvblR5cGUKICAgICBtX3RpbWVyLnN0YXJ0
T25lU2hvdCgwKTsKIH0KIAordm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeU1vZHVsZUdyYXBoUmVh
ZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHNj
cmlwdEVsZW1lbnQsIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmNvbnRhaW5zKCZzY3Jp
cHRFbGVtZW50LT5lbGVtZW50KCkpKTsKKworICAgIC8vIExpc3RIYXNoU2V0IGNvcnJlY3RseSBw
cmVzZXJ2ZXMgdGhlIGluc2VydGlvbiBvcmRlci4KKyAgICAvLyBBbmQgaXQgYWxsb3cgdXMgdG8g
cmVtb3ZlIGVsZW1lbnQgZHVyaW5nIGl0ZXJhdGlvbi4KKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9w
ZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuYmVnaW4oKTsKKyAgICB3aGlsZSAoaXRlcmF0b3Ig
IT0gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuZW5kKCkpIHsKKyAgICAgICAgTW9kdWxl
R3JhcGgqIG1vZHVsZUdyYXBoID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShpdGVyYXRvci0+
Z2V0KCkpLT5tb2R1bGVHcmFwaCgpOworICAgICAgICBpZiAoIW1vZHVsZUdyYXBoLT5lcnJvck9j
Y3VycmVkKCkgJiYgIW1vZHVsZUdyYXBoLT5pc0xvYWRlZCgpKQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGF1dG8gcHJldmlvdXMgPSBpdGVyYXRvcjsKKyAgICAgICAgKytpdGVyYXRvcjsK
KyAgICAgICAgbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uYXBwZW5kKCpwcmV2
aW91cyk7CisgICAgICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLnJlbW92ZShwcmV2
aW91cyk7CisgICAgfQorICAgIGlmICghbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNv
b24uaXNFbXB0eSgpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwogdm9p
ZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogewogICAgIFJlZjxEb2N1bWVudD4gcHJvdGVj
dChtX2RvY3VtZW50KTsKQEAgLTEyMSw2ICsxNTgsMjEgQEAgdm9pZCBTY3JpcHRSdW5uZXI6OnRp
bWVyRmlyZWQoKQogICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0
KCkpLT5leGVjdXRlKGNhY2hlZFNjcmlwdCk7CiAgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50
TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIH0KKworICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVu
dD4+IG1vZHVsZVNjcmlwdEVsZW1lbnRzOworICAgIG1vZHVsZVNjcmlwdEVsZW1lbnRzLnN3YXAo
bV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24pOworCisgICAgZm9yIChSZWZQdHI8
RWxlbWVudD4mIHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50IDogbW9kdWxlU2NyaXB0RWxlbWVu
dHMpIHsKKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQ7CisgICAgICAgIHBlbmRpbmdN
b2R1bGVTY3JpcHRFbGVtZW50LnN3YXAoZWxlbWVudCk7CisgICAgICAgIEFTU0VSVChlbGVtZW50
KTsKKyAgICAgICAgLy8gUGFwZXIgb3ZlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ0MDUwCisgICAgICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5t
b2R1bGVHcmFwaCgpLT5ldmFsdWF0ZSgpOworICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExv
YWRFdmVudERlbGF5Q291bnQoKTsKKyAgICB9CisKICAgICBNaWNyb1Rhc2tRdWV1ZTo6c2luZ2xl
dG9uKCkucnVuTWljcm9UYXNrcygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKaW5k
ZXggMjdjZGJmOGIzYWY1Njk0NjJlNWI5YWViMTZjZDc2NTA1MDg5MWUwZC4uMTIyMTQ4NWUwZTU3
ZGZhNjNlNDQ0ZjQ4MjlhYWM3MDRlMWExNTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIu
aApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzcsNiArMzgs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERv
Y3VtZW50OworY2xhc3MgRWxlbWVudDsKK2NsYXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgUGVuZGlu
Z1NjcmlwdDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiAKQEAgLTQ4LDExICs1MSwxNCBAQCBjbGFz
cyBTY3JpcHRSdW5uZXIgewogCiAgICAgZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhFQ1VU
SU9OLCBJTl9PUkRFUl9FWEVDVVRJT04gfTsKICAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0
aW9uKFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+LCBF
eGVjdXRpb25UeXBlKTsKLSAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1
cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1
dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHkoKTsg
fQorICAgIHZvaWQgcXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50Kiwg
TW9kdWxlR3JhcGgmKTsKKyAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1
cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1
dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHkoKSB8
fCAhbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3Bl
bmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHN1c3BlbmQo
KTsKICAgICB2b2lkIHJlc3VtZSgpOwogICAgIHZvaWQgbm90aWZ5U2NyaXB0UmVhZHkoU2NyaXB0
RWxlbWVudCosIEV4ZWN1dGlvblR5cGUpOwogCisgICAgdm9pZCBub3RpZnlNb2R1bGVHcmFwaFJl
YWR5KFNjcmlwdEVsZW1lbnQqKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHRpbWVyRmlyZWQoKTsK
IApAQCAtNjAsNiArNjYsOCBAQCBjbGFzcyBTY3JpcHRSdW5uZXIgewogICAgIFZlY3RvcjxQZW5k
aW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyOwogICAgIFZlY3RvcjxQZW5kaW5n
U2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcv
c3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhl
Y3V0ZS1hcy1zb29uLWFzLXBvc3NpYmxlCiAgICAgSGFzaE1hcDxTY3JpcHRFbGVtZW50KiwgUGVu
ZGluZ1NjcmlwdD4gbV9wZW5kaW5nQXN5bmNTY3JpcHRzOworICAgIFZlY3RvcjxSZWZQdHI8RWxl
bWVudD4+IG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uOworICAgIExpc3RIYXNo
U2V0PFJlZlB0cjxFbGVtZW50Pj4gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHM7CiAgICAg
VGltZXIgbV90aW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5jcHAKaW5kZXggZTEzYTVjZGRjY2EyY2IzYjc1NmE4ZDNhNTdlMjNmODBhOWI0M2U0OC4uZDE1
ZWI3MWJlM2Y2YmNmYjEwNzgyZjk3NDg3NWI0MDBiYzBkNzE2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE2MSw2ICsxNjEsMTUgQEAgYm9vbCBIVE1M
U2NyaXB0RWxlbWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gZmFz
dEhhc0F0dHJpYnV0ZShzcmNBdHRyKTsKIH0KIAorYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6aXNN
b2R1bGVUeXBlKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoRVM2X01PRFVMRVMpCisgICAgcmV0dXJu
IGZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpLnN0cmluZygpID09ICJtb2R1bGUiOworI2Vsc2UK
KyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6
ZGlzcGF0Y2hMb2FkRXZlbnQoKQogewogICAgIEFTU0VSVCghaGF2ZUZpcmVkTG9hZEV2ZW50KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDMxMmM2NjI2ZThi
ODMxNGU4NWUyZGY2ODdkYmYwOWYyYjJmZTM3YjIuLjFkZmQ4YzhiNzNlODcyYWJjZDVlYjRiMzQy
ZTc5MmQzMzUwM2U3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgK
QEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTEVsZW1lbnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgYXN5
bmNBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBkZWZl
ckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGhhc1Nv
dXJjZUF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01vZHVs
ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRF
dmVudCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAK
aW5kZXggOGFkZmNmYTQxMGFiZTQ3ZTMzMjRhZTViOGQ5MjQzZjU2NjY0NWQ5NS4uYmE1ZjA2ZjQ0
YjZiMTE3ZmNiYjYyMzM1MzhlMmUxNGNkN2Y4ZTY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmNwcApAQCAtMTUxLDYgKzE1MSwxMSBAQCBib29sIFNWR1NjcmlwdEVsZW1l
bnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
Ym9vbCBTVkdTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworICAgIHJldHVy
biBmYWxzZTsKK30KKwogYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1dGUo
KSBjb25zdAogewogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggNTM1ZTQyZTZmMDY0NmQ4
MDEwNDE5MDkzYzYyMjkyNGIzODNkNzEwMS4uOGFmZGUzMTEyNWU1ZGQ0OThkYjgyYTRlMDk4M2Fi
MDc0ZTBkY2M2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC02Miw2
ICs2Miw3IEBAIGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVu
dAogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGUgeyBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsgfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWU0YmRi
YzY1YmZiMDE4OTc0YzdkNTczNjRiOGJiOGU4M2QzZTNjZS4uMjJmZGMwZDZmNzhhOWM2YmMwNzRl
OGVmYWRlODgwMjlmZDg1NzE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE1LTA5LTI0ICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIElu
dGVncmF0ZSBFUzYgTW9kdWxlcyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBtb2R1bGVzLgorCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1v
bmVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVj
dXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQt
dG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3Jj
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZm
ZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2lu
dC1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1l
LW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13
aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1l
cnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVy
cm9yLXRocm93LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3Bh
Z2F0ZWQtdG8tb25lcnJvci5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanM6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5v
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRp
b24tb3JkZXItbWl4ZWQtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5q
czogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5
bmFtaWMuanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90eXBl
LnRhc3RlKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBqcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAg
KGV4cG9ydC5kZWZhdWx0LkNvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChleHBvcnQu
ZGVmYXVsdC5Db2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9h
ZC1ldmVudC13aXRoLXNyYy5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qczog
QWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzOiBBZGRlZC4KKyAgICAg
ICAgKENvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChDb2NvYSk6CisgICAgICAgICog
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanM6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanM6IEFkZGVk
LgorICAgICAgICAoQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKENvY29hKToKKyAg
ICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9h
ZC5qczogQWRkZWQuCisKIDIwMTUtMDktMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsIG91dCByMTkwMDg1IGFzIGl0IHNlZW1zIHRv
IGNhdXNlIGNyYXNoZXMgaW4gSlNDCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MzZlNmMzNWM3OWM2
YTRhYTY3MTg1OTI3ODU1NTM5YjdjNWNlODA4Li40NWYwNzdmY2YzYThhZGRhY2E3YzEwZTUxYjNk
YjRmYmI2ZDI1MGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY3OCwzICs2NzgsMjEgQEAgd2Vi
a2l0Lm9yZy9iLzE0ODY5NSBmYXN0L3NoYWRvdy1kb20gWyBGYWlsdXJlIEltYWdlT25seUZhaWx1
cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC90aW1lb3V0L3htbGh0dHByZXF1ZXN0LXRp
bWVvdXQtb3ZlcnJpZGVzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMTQ5
MjE4IGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ldmVudHMuaHRtbCBbIFBhc3MgQ3Jhc2ggVGlt
ZW91dCBdCisKKyMgRVM2IE1vZHVsZXMgYXJlIG5vdCB5ZXQgZW5hYmxlZCBieSBkZWZhdWx0OiBF
TkFCTEUoRVM2X01PRFVMRVMpCitqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUt
ZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgWyBT
a2lwIF0KK2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVk
LXRvLW9uZXJyb3IuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
aW5saW5lLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
Lmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbCBbIFNraXAg
XQoranMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1
bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWxvYWQt
ZXZlbnQuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVs
ZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgWyBTa2lw
IF0KK2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBv
cnQuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0
aC1zcmMuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQu
aHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sIFsgU2tpcCBdCitq
cy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS13aWxs
LWZpcmUtYmVmb3JlbG9hZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91
bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3Vs
ZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliZGIy
NzVhMmZiODM0ODk2NGZiZThkZWI4MjU1M2I0YjlkYjlhNTIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50
LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUg
ZGVwZW5kZW50IG1vZHVsZSB0aHJvdyBhbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIHRoZSBkZXBl
bmRlbnQgbW9kdWxlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24t
ZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25l
cnJvci5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5z
aWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE3N2I1ZGQ3NjRkYmUyNDM0MjNkMWMzOGUzNzRjYzBmZGRjMjQzNzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJv
ci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9y
Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBk
ZXBlbmRlbnQgbW9kdWxlIHRocm93IGFuIGVycm9yLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhl
Y3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1
ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0
aW9uICgpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJtb2R1bGUiPgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1p
bnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpz
IgordGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hv
dWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVy
cm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWRmNzAyOGYzNTQ5MzY2OTI5MjJlZmU2MWEy
ZGZiYTVmMWYwOTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVk
IHdoZW4gdGhlIGlubGluZWQgbW9kdWxlIHRocm93cyBhbiBlcnJvci4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5n
IHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24t
ZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25l
cnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NDYyZjM3ZWQ4MTczMDYxZjdmOTk1MzZjNDJkMjk5NWMy
NTI3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKQEAgLTAsMCAr
MSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rl
c3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBpbmxpbmVkIG1vZHVsZSB0
aHJvd3MgYW4gZXJyb3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25v
dXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgIGZp
bmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitkZWJ1
ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cit0aHJvdyBuZXcgRXJyb3IoIm1vZHVsZSBpcyBl
eGVjdXRlZC4iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZmZGYzMzk3NTdhNGEzNzk2NGU4ODlhZWM2OWFmY2M1OTlh
Yjc4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1
bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFT
UyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQrKyBpcyAxCitQQVNTIGNvdW50KysgaXMgMgorUEFT
UyBjb3VudCsrIGlzIDMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLWlubGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MjVlNzY5MDhjZmI2ZmVhMDEwN2Y0ZGFh
ZGQxZDI5MzFiZjNjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhlY3V0
aW9uIG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4nKTsKK3dpbmRvdy5jb3VudCA9
IDA7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjAiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJt
b2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIsICIyIik7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKK2ZpbmlzaEpTVGVz
dCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjM3ZjUyNGY1MzE5MDVkOGE1M2Y0NGEzM2FiNmZmYjQwMDEyMTAzMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IG1vZHVsZSBleGVjdXRp
b24gb3JkZXIgYmV0d2VlbiBtaXhlZCB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworV2Uga2VlcCB0aGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbW9kdWxlcy4KK01vZHVs
ZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQrKyBp
cyAxCitQQVNTIGNvdW50KysgaXMgMgorUEFTUyBjb3VudCsrIGlzIDMKK1BBU1MgY291bnQrKyBp
cyA0CitQQVNTIGNvdW50KysgaXMgNQorUEFTUyBjb3VudCsrIGlzIDYKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MTkxZDMwM2VkZDc1NzczODEyOGRkOWQxNWJiNDBjN2U3NmMyY2Q3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApA
QCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbWl4ZWQgdGFncy4nKTsK
K2RlYnVnKCdXZSBrZWVwIHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLicpOwor
d2luZG93LmNvdW50ID0gMDsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9u
b3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5v
dCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9
InNjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjQiKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQtMi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+
CitzaG91bGRCZSgiY291bnQrKyIsICI2Iik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1p
bmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlu
bGluZS1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzkzOWFhZjBhNTAxNWY0Nzkz
ODZjZDMxOTVhYTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
VGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01v
ZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBp
biB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5l
ZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRD
b2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtaW5saW5lLWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5l
LWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGMwZTI1OWFiMjkxZWZmYzRiZWU3OGFlNjVjMzQx
N2MxMWQwNWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1p
bmxpbmUtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlLicpOworCisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4nKTsKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgICBlbGVtZW50LnRleHRDb250ZW50ID0gYAor
ICAgICAgICBpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1k
eW5hbWljLmpzIjsKKyAgICAgICAgdmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKKyAgICAgICAg
ZGVidWcoIk1vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9u
bWVudC4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAi
dW5kZWZpbmVkIik7CisKKyAgICAgICAgd2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmpl
Y3QiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3Rl
KCkiLCAiYXdlc29tZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBgOworICAgIGVs
ZW1lbnQudHlwZSA9ICJtb2R1bGUiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7Cit9ICgpKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmM5MzlhYWYwYTUwMTVmNDc5Mzg2Y2QzMTk1YWE1OWRkMTY5MDk3NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxl
IGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0
eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMg
Im9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhiY2YwNjBk
MWJkNjk0NWIwODkxNmViYTE1MjlhNTU4ZmU2YjJkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGlu
ZWQgbW9kdWxlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNs
eS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Rl
YnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiPgoraW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1p
bmxpbmUtc2ltcGxlLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9k
dWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dp
bmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVv
ZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBv
cnRlZENvY29hLnRhc3RlKCkiLCAiYXdlc29tZSIpOworZmluaXNoSlNUZXN0KCk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxv
YWQtZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NjI2NjgwMmRhNTdjNzU4Y2UzZTRh
MmYzMWQ3ODkwZDBlNWI3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgbW9k
dWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBhbiBpbmxp
bmVkIG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQt
d2l0aC1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2
ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGEyZjliOTk2MTZmZjQ3MGFl
ZTJhNDVlNzJiYmRhNmVmYWNkNDA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACitUZXN0IHNjcmlwdC5vbmxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFn
IHdpdGggc3JjIGxvYWRzIGFuZCBleGVjdXRlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGEgbW9kdWxlIHdp
dGggc3JjIGF0dHJpYnV0ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQt
ZXZlbnQtd2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVu
dC13aXRoLXNyYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NGE0YTMwNzBhOTZlNmRhY2JkOGI3NDZhNzdj
MDU3YTQyYzU2YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25sb2FkIHdpbGwg
YmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBsb2FkcyBhbmQgZXhlY3V0ZXMu
Jyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0
KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbG9hZC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJiOGM4MDlmMmQ0NWNkM2YzMTc4OWFmZTJkZjdiMzBkY2Ux
ZjQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1l
dmVudC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0YWdz
LicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
Jyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVz
dCgpIj4KK2RlYnVnKCdFeGVjdXRpbmcgYW4gaW5saW5lZCBtb2R1bGUuJyk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MWFiNDlkMTQ5NzYyNGRmMjJlMDM0Nzk3YjM5YWE4ZWM4Njk0ZWNjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVy
ZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKzIg
ZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxl
IGZyb20gYSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgdGFnCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRo
aXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZl
cmVudC1lbnRyeS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2Ft
ZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI1ZDUxZTJiNmNlYTg2MTdiYWNmMGM0MGUzMzdlOTA5YTFkMzFhMzgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCcyIGRpZmZlcmVudCBtb2R1
bGUgdGFnIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBmcm9tIGEgZHluYW1p
Y2FsbHkgZ2VuZXJhdGVkIHRhZycpOworZGVidWcoJ0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVm
aW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVy
ZS4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgInNjcmlwdC10
ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5q
cyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKK3ZhciBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitlbGVtZW50LnR5cGUgPSAibW9kdWxlIjsKK2Vs
ZW1lbnQuaW5uZXJUZXh0ID0gInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1m
cm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyI7CitlbGVtZW50Lm9uZXJyb3IgPSBmaW5pc2hK
U1Rlc3QoKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJl
bnQtZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZjk4ZmNjYjZmYWZhMDY0
NDdlMzAzMmVmMDZkOTgyMDI3ZjI1MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2ls
bCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRo
aXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZl
cmVudC1lbnRyeS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorRXhlY3V0aW5nIHRo
ZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9k
dWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MDZkNGUwYjYzY2RjMDEyNzQxMzNiZWZkOTM4NDQyNTU1NThiMTg3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxl
LWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1vZHVs
ZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlJyk7CitkZWJ1ZygnQ3Vy
cmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNob3Vs
ZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQg
YXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9k
dWxlIj4KK2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3Qo
KSI+CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRp
ZmZlcmVudC1lbnRyeS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYzOGJhM2MyZTc5OTc3ZTJjOWY3OTM0ODA5NzM2ZmQ5ODM3ZDcyZjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJub3QtZm91bmQuanMiLiBF
eHBlY3RlZCAnZnJvbScgYmVmb3JlIGltcG9ydGVkIG1vZHVsZSBuYW1lLgorVGVzdCBzY3JpcHQu
b25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUg
aW1wb3J0IGRlY2xhcmF0aW9uIGluIHRoZSBpbmxpbmVkIG1vZHVsZSBpcyBub3QgZm91bmQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc0ODc4NzUwMWExMjkyNzY4MTA5MTg3OTA3YWZjNDdkZmI2ZDI4OTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ug
c3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGRlcGVuZGVudCBtb2R1
bGUgaXMgbm90IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9y
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRlZjM5ODY4NWFlMDVhMTFjZThhMWUwYjIyMDk4ZTk4NTMxZDYy
OTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0
Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhl
IGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVsZSBpcyBub3QgZm91bmQu
Jyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUi
IHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMt
YW5kLWltcG9ydC5qcyIgb25lcnJvcj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iODBkMTVkZmU2ZDA5YmZjNmI4NTgzYTQ4ZGVjNmRjYjFiNWIxNDE0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0
aC1zcmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Ig
d2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgInNyYyIgaXMgbm90
IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQt
ZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90
LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhNDdmNjEwNjlh
ZmVjYmNiMzhiMGE5NTc1NjI1Y2U4MmRmNDgxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKQEAg
LTAsMCArMSwyMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBz
cGVjaWZpZWQgYnkgInNyYyIgaXMgbm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhl
Y3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1
ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sK
KyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Im5vdC1mb3VuZC5qcyIgb25lcnJv
cj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjYjU5NGM2NDY4MzhlNGMzNWUzNzU2MWY2ZGNlM2Q4Mzc3MGI3NzEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5o
dG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVz
b3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGlubGluZWQg
bW9kdWxlIGlzIG5vdCBmb3VuZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5j
aHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBp
cyBub3QgZXhlY3V0ZWQgeWV0LicpOworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25lcnJvcj0ib25FcnJvcigpIj4KK2ltcG9ydCBmcm9tICJu
b3QtZm91bmQuanMiOwordGVzdEZhaWxlZCgnZXhlY3V0ZWQnKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHlu
YW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWlj
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDhiMDA2MjQ5MGVjNzIyOTVjZmY1MDYxYTA4Mzll
NDAwMjBjZDhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1z
cmMtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgd2l0
aCAic3JjIiBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1
bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4g
dGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQi
CitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29j
b2EudGFzdGUoKSBpcyAibmljZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNy
Yy1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzg0ZmY0MjY0Zjk4MWZlOTY0OWVkM2E3MjFiMWNmYTRmYTVlOTFjZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMu
aHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LicpOworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgIGVsZW1lbnQudHlwZSA9ICdtb2R1bGUnOwor
ICAgIGVsZW1lbnQuc3JjID0gJy4vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcyc7
CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK30oKSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNy
Yy1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkOGIwMDYyNDkwZWM3MjI5NWNmZjUw
NjFhMDgzOWU0MDAyMGNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9k
dWxlIHdpdGggInNyYyIgYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZp
bmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5k
ZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBv
cnRlZENvY29hLnRhc3RlKCkgaXMgIm5pY2UiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1zcmMtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1w
bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZjczYjBjNTRhMjVhNGY3NmMxNGEzYjVkYzMxNzNmZTg5M2Ni
M2NkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2lt
cGxlLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLicpOworCisv
LyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0i
Li9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUt
YmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwt
ZmlyZS1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYThkOTcwOGRiM2UwNWM0
YjAxMDNiZTdkY2ViMGMwMDcxMTc1Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAorVGVzdCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1v
ZHVsZSB0YWcgd2l0aCBzcmMgaXMgcHJlcGFyZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZmYxNjUz
ZDA2YzA2ZTFkNzQxNzlkMDExMDAzNmUxNDlkODY5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsx
LDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVz
dCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0
aCBzcmMgaXMgcHJlcGFyZWQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hy
b25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9u
YmVmb3JlbG9hZD0iZmluaXNoSlNUZXN0KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS13aWxs
LWZpcmUtYmVmb3JlbG9hZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJy
b3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJv
ci10aHJvdy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10
by1vbmVycm9yLXRocm93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzE1YWYyMTQyYjQ4MDI2MDJlYWQwMzcw
MGY4YmJlMDFiYzJiZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUt
c2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcwpAQCAtMCwwICsxLDIgQEAK
K2RlYnVnKCJFeGVjdXRpbmcgdGhlIGRlcGVuZGVudCBtb2R1bGUiKTsKK3Rocm93IG5ldyBFcnJv
cigib3V0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUt
cHJvcGFnYXRlZC10by1vbmVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YzdjYTQ3OWIyNTg4OWIwMGNh
MjRjZDViYmUzMzFkYWE2NWY3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1t
b2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcwpAQCAtMCwwICsxLDIgQEAK
K2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzIgordGVzdEZhaWxlZCgiZXhl
Y3V0ZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMz
YjlkMzUyYWVjNTdiMDYxZGRiZTAwYjdjZjk0ZWE1NzRhZWM0OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC0yLmpzCkBAIC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjUiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1v
cmRlci1taXhlZC1jYXBwdWNjaW5vLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjMxNDZmZDc2NmU1NWEwMmFlNzhiYWY5ZGQ2MzM5OGViODVhODkwZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1jYXBwdWNjaW5vLmpzCkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcyIKKworc2hvdWxkQmUoImNvdW50KysiLCAiMiIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1
OGQ3MzI0M2ZlZjMwYTBiNDk0OWRiYTdmYmY4NTM0ZWViYTlmNzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
bWl4ZWQtY29jb2EuanMKQEAgLTAsMCArMSwzIEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRpb24t
b3JkZXItbWl4ZWQtbWF0Y2hhLmpzIjsKKworc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLW1hdGNoYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJlMTVk
N2NmMGNmZjRlYWExYTBiNWExZWU4M2RjY2UzMjRhMjVlOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC1tYXRjaGEuanMKQEAgLTAsMCArMSBAQAorc2hvdWxkQmUoImNvdW50KysiLCAiMCIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0Mzg2ZmJiODY4MWNiZjdlNTlj
NDczNzYzN2U4N2JlMzhjZmY3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMKQEAgLTAsMCAr
MSw0IEBACitpbXBvcnQgIi4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcyIK
K2ltcG9ydCAiLi9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMiCisK
K3Nob3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQz
NjBhN2JmZTdlMDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpz
CkBAIC0wLDAgKzEsNSBAQAorZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29jb2EgeworICAgIHRhc3Rl
KCkgeworICAgICAgICByZXR1cm4gImF3ZXNvbWUiOworICAgIH0KK307CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yNDM2MGE3YmZlN2UwNWEwY2IyNTM4NDEzNjdlNzFkYzFlOTNiNWM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5s
aW5lLXNpbXBsZS5qcwpAQCAtMCwwICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29h
IHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1l
dmVudC13aXRoLXNyYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I4NzAyOTBkM2VjN2UwODBjMDVm
OWY2NjY4NDRjZDA2NzUyOWZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKQEAgLTAsMCArMSBA
QAorZGVidWcoJ0V4ZWN1dGluZyBhIG1vZHVsZSB3aXRoIHNyYyBhdHRyaWJ1dGUuJyk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUt
bW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWFkNzdmODAwODA0MzgxYmY0ZjFlYWRiNTE3ZjU2MGYw
YzRlYjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcwpA
QCAtMCwwICsxIEBACitkZWJ1ZygnRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzLicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3Jj
LWFuZC1pbXBvcnQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YzFiNDcxNDgxMzhhMGVjNDUyMmMyMjcyMzNhM2M3NDEzMzcxMjk5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9y
LWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMKQEAgLTAsMCArMSBAQAoraW1wb3J0ICJub3Qt
Zm91bmQuanMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3OTU5MmRjNTEzY2Yy
NTk4NDFmZjlkNDYzOTA0NTEyYjBlY2I3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpAQCAtMCww
ICsxLDcgQEAKK2NsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJu
aWNlIjsKKyAgICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNTFhN2JlNmI0ZjEyOTNhZjU5Njg2ZmUzZTU3ODAxZDJlMDk2YzM1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFt
aWMuanMKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNyYy1k
eW5hbWljLWNvY29hLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9k
dWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dp
bmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVv
ZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBv
cnRlZENvY29hLnRhc3RlKCkiLCAibmljZSIpOworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29h
LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1j
b2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5ZDQ2MzkwNDUxMmIwZWNi
NzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAKK2NsYXNzIENvY29hIHsK
KyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAgICB9Cit9CisKK2V4cG9y
dCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ5Yzc3NGZkOWU3YTVjOWQxODU5
MjQwNDRlN2EyNzhhZDczMzcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKQEAgLTAsMCArMSwxMCBAQAoraW1w
b3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMiOwordmFyIGNvY29h
ID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGlu
IHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVv
ZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJuaWNlIik7
CitmaW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjBhMzkzODM1NjMzYWVjNTVlNWU1OTU3MjlkYTY5MTllOWMzMjAzYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZv
cmVsb2FkLmpzCkBAIC0wLDAgKzEgQEAKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261946</attachid>
            <date>2015-09-25 15:06:47 -0700</date>
            <delta_ts>2016-08-20 00:59:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20150925150628.patch</filename>
            <type>text/plain</type>
            <size>133404</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzdmZGYwNGRiNzhkMjk0MDUzMzZiOTk0NGVlNjgyYmM1MTUyMjM2Li5hOWU0MzFiYWI2NTkyMWRm
NmNmZWRjNDEzNjFmZTVhNjIxODNmNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wOS0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW1ib2w6
OmNyZWF0ZSBpcyBub3cgdXNlZCBpbiBXZWJDb3JlLgorCisgICAgICAgICogcnVudGltZS9TeW1i
b2wuaDoKKwogMjAxNS0wOS0yMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBKU0MgYWxsb3dzIGludmFsaWQgdmFyIGRlY2xhcmF0aW9ucyB3aGVuIHRoZSBkZWNs
YXJlZCBuYW1lIGlzIHRoZSBzYW1lIGFzIGEgbGV0L2NvbnN0IHZhcmlhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNmZhZTUzNWI4ZDczMGYzOTgxYWE1MDBkNTljZjZiZGI4MmE1NjczYS4uODM0NjNmZDBiMzdl
MzZkMTJjNTNlNmY4YWRiYzY4N2Q4OTQyYTc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NiBA
QAorMjAxNS0wOS0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPiB0YWcuIFRoYXQgdGFnIGxvYWRzIHRoZSBFUzYg
TW9kdWxlcy4KKyAgICAgICAgU2luY2UgdGhlIGRldGFpbCBvZiB0aGUgdGFnIGlzIG5vdCBkZWZp
bmVkIHlldFsxXSwgdGhlIGltcGxlbWVudGF0aW9uIGlzIGhpZGRlbgorICAgICAgICBiZWhpbmQg
dGhlIGNvbXBpbGUgdGltZSBmbGFnIEVOQUJMRShFUzZfTU9EVUxFUykuCisKKyAgICAgICAgQSBt
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseSBhbmQgZXhlY3V0ZWQgaW4gYSBt
b2R1bGUgZW52aXJvbm1lbnQKKyAgICAgICAgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZ2xv
YmFsIGVudmlyb25tZW50LiBJdCBpcyBhbHdheXMgc3RyaWN0IG1vZGUgYW5kIG9ubHkKKyAgICAg
ICAgYSBtb2R1bGUgY2FuIHVzZSB0aGUgbW9kdWxlIHN5bnRheCBsaWtlIGBpbXBvcnRgLCBgZXhw
b3J0YCBldGMuIFNvIHNpbmNlIHRoZQorICAgICAgICBleGVjdXRpb24gc2VtYW50aWNzIGlzIGRp
ZmZlcmVudCBmcm9tIG9uZSBvZiBnbG9iYWwgc2NyaXB0cywgbW9kdWxlcyBuZWVkIHRvIGJlCisg
ICAgICAgIGV4ZWN1dGVkIGJ5IHRoZSBzcGVjaWFsaXplZCB0YWcsIDxzY3JpcHQ+IHdpdGggdHlw
ZT0ibW9kdWxlIi4KKworICAgICAgICBUaGUgbW9kdWxlIHRhZyB3b3JrcyBhcyBhbiBlbnRyeSBw
b2ludCB0byBtb2R1bGVzLiBUeXBpY2FsbHksIHdlIHNwZWNpZnkgYW4KKyAgICAgICAgZW50cnkg
cG9pbnQgbW9kdWxlIGJ5IGEgdGFnIGFuZCBhbiBlbnRyeSBwb2ludCBtb2R1bGUgd2lsbCBsb2Fk
IGRlcGVuZGVudAorICAgICAgICBtb2R1bGVzIGFuZCBydW4gYSBhcHBsaWNhdGlvbi4KKworICAg
ICAgICBPbmNlIG1vZHVsZSB0YWcgcmVxdWVzdCBsb2FkaW5nLCBXZWJDb3JlIHJlcXVlc3QgbG9h
ZGluZyB0byB0aGUgSlNDJ3MgbW9kdWxlCisgICAgICAgIGxvYWRlci4gV2ViQ29yZSBhZG9wdHMg
dGhlIEpTQydzIGdlbmVyaWMgbW9kdWxlIGxvYWRlciBieSBpbXBsZW1lbnRpbmcgdGhlIGxvYWRl
cgorICAgICAgICBob29rcy4gSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIFdlYkNvcmUg
aW1wbGVtZW50cyAzIGhvb2tzLgorCisgICAgICAgIDEuIHJlc29sdmUgaG9vaworCisgICAgICAg
ICAgICBUYWtlcyB0aGUgbW9kdWxlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBt
b2R1bGUga2V5LgorICAgICAgICAgICAgSW4gV2ViQ29yZSwgd2UgdGFrZSB0aGUgbW9kdWxlIG5h
bWUgbGlrZSAiLi9oZWxsby5qcyIgYW5kIHJlc29sdmUgaXQgdG8gVVJMLgorCisgICAgICAgIDIu
IGZldGNoIGhvb2sKKworICAgICAgICAgICAgRmV0Y2hlcyB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVk
IGJ5IHRoZSBtb2R1bGUga2V5LiBJbiBXZWJDb3JlLCB0aGUgbW9kdWxlIGtleSBpcworICAgICAg
ICAgICAgVVJMLiBXZSB1c2UgQ2FjaGVkUmVzb3VyY2UgbG9hZGluZyBzeXN0ZW0gdG8gbG9hZCB0
aGUgcmVzb3VyY2Ugb2YgdGhlIG1vZHVsZXMuCisKKyAgICAgICAgMy4gZXZhbHVhdGUgaG9vawor
CisgICAgICAgICAgICBUaGlzIGlzIGFkZGl0aW9uYWwgaG9vayB0byBpbnN0cnVtZW50IHRoZSBt
b2R1bGUncyBleGVjdXRpb24gZm9yIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgVGhlIG1vZHVs
ZSBsb2FkZXIgaW52b2tlcyB0aGVzZSBob29rcywgY29uc3RydWN0cyB0aGUgcGlwZWxpbmUgYW5k
IG5vdGlmaWVzIGV2ZW50cworICAgICAgICB0byBhIE1vZHVsZUdyYXBoLCB3aGljaCBpcyBoZWxk
IGJ5IGEgU2NyaXB0RWxlbWVudC4gQSBTY3JpcHRFbGVtZW50IHdpdGggYSBNb2R1bGVHcmFwaAor
ICAgICAgICB3aWxsIGJlIGRyaXZlbiBieSB0aGVzZSBldmVudHMuCisKKyAgICAgICAgTW9kdWxl
IHRhZyBsb2FkcyB0aGUgcmVzb3VyY2VzIGFzeW5jaHJvbm91c2x5LiBTbyBpdCBkb2VzIG5vdCBi
bG9jayB0aGUgZG9jdW1lbnQKKyAgICAgICAgcGFyc2VyLiBCdXQgdGhlIGV4ZWN1dGlvbiBvcmRl
ciBiZXR3ZWVuIHRoZSBtdWx0aXBsZSBtb2R1bGUgdGFncyBzaG91bGQgYmVjb21lCisgICAgICAg
IHRoZSBvY2N1cnJlbmNlIG9yZGVyWzFdLiBTbyBTY3JpcHRSdW5uZXIgbWFuYWdlcyB0aGUgbW9k
dWxlIHRhZ3MgYW5kIGZvcmNlIHRoZW0KKyAgICAgICAgdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIG9j
Y3VycmVuY2Ugb3JkZXIuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vZGhlcm1h
bi9tb2R1bGUtdGFnL2Jsb2IvbWFzdGVyL3JlcXVpcmVtZW50cy5tZAorCisgICAgICAgIFRlc3Rz
OiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3Iu
aHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5l
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRtbAor
ICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9t
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFt
aWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbAorICAgICAg
ICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMv
ZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvU3ltYm9sLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01haW5U
aHJlYWRFeGVjU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0
ZTo6bG9hZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlRmV0
Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6TW9kdWxl
RmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjp+TW9kdWxlRmV0Y2hl
cik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6cnVuKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZl
dGNoZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRj
aGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hlcjo6Y2FjaGVkU2Ny
aXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZUxvYWRlcjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVM
b2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlTG9hZGVyOjpkb2N1bWVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3Jp
cHRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZU1vZHVsZUxvYWRlckVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1bGVHcmFwaCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgorICAgICAgICAqIGRv
bS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6fkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6Ok1vZHVsZUdyYXBoKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TW9kdWxlR3JhcGg6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjpu
b3RpZnlFdmFsdWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OmxvYWQpOgor
ICAgICAgICAqIGRvbS9Nb2R1bGVHcmFwaC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
ZHVsZUdyYXBoOjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjptb2R1
bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlR3JhcGg6OndlYWtFbGVtZW50UHRyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjplcnJvck9jY3VycmVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vZHVsZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBl
U3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpt
b2R1bGVHcmFwaCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9TY3JpcHRS
dW5uZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6aGFzUGVuZGluZ1Njcmlw
dHMpOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmlzTW9kdWxlVHlwZSk6CisgICAg
ICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDoKKwogMjAxNS0wOS0yMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIxOTAw
ODUgYXMgaXQgc2VlbXMgdG8gY2F1c2UgY3Jhc2hlcyBpbiBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggODNmNWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1
ZmRkZGJiZS4uZGRiNjhjY2IzNjU0NDU5OTEwY2QzZjIzZjY2ODc0ZDAwNTg4YTk1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTg2LDcgKzg2LDcgQEAgY2xhc3Mg
U3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBTeW1ib2woVk0mKTsKICAgICBT
eW1ib2woVk0mLCBjb25zdCBTdHJpbmcmKTsKLSAgICBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1
aWQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDI0NjMwYmEwZjMyN2QwYTU2MmZmMGZmOGZlYTk1Y2UxNzk5MmJmMWMuLmQ1MDli
NWY2Yjc3ZTUxZGQ0YmJmOWRhMmZjMDhkY2M3NzYzM2QwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMjI1LDYgKzEyMjUsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAK
KyAgICBiaW5kaW5ncy9qcy9Nb2R1bGVGZXRjaGVyLmNwcAorICAgIGJpbmRpbmdzL2pzL01vZHVs
ZUxvYWRlci5jcHAKICAgICBiaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAogICAgIGJp
bmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNo
ZWRGcmFtZURhdGEuY3BwCkBAIC0xNDUwLDYgKzE0NTIsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgZG9tL01lc3NhZ2VQb3J0LmNwcAogICAgIGRvbS9NZXNzYWdlUG9ydENoYW5uZWwuY3Bw
CiAgICAgZG9tL01pY3JvVGFzay5jcHAKKyAgICBkb20vTW9kdWxlR3JhcGguY3BwCiAgICAgZG9t
L01vdXNlRXZlbnQuY3BwCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgIGRvbS9N
dXRhdGlvbkV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNTU3
YTJmMjFlY2Y2YjJhZWNhZDY3ZTM1M2UxOTY2ZTQ3OTRlODAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0pTSW50ZXJuYWxQcm9taXNl
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VfaAorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZjMDg2ZGQzOWFmZjllMTA0YmQ1
YTZmZjdhZTc5MjU0NjM4Njk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCkBAIC0w
LDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9KU0ludGVybmFsUHJvbWlzZURlZmVycmVk
X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZF9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L0pTTW9kdWxlUmVjb3JkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlOWVjZmZiY2Y1N2MyYTljNzk1Y2NiMWQ4
MDM0MGY5MTRkN2Q0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5k
ZWYgV2ViQ29yZV9GV0RfSlNNb2R1bGVSZWNvcmRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9KU01v
ZHVsZVJlY29yZF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVu
dGltZS9TeW1ib2wuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUv
U3ltYm9sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUwNDI3ZjA5MWE5ZWNhY2ZiZmEwOTlhZTBkMDMwZTBlOWJj
NWViMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvU3ltYm9sLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1N5
bWJvbF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1N5bWJvbF9oCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvU3ltYm9sLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDIxYTlkNDI1ZGFkNzI0OGU4NDQyMzljNThjZTg1MDZm
MjgwOTg4YjEuLmFjMDIyYjA2NzM1NjkxM2RmYzg3MGFlZGExYWNhZTU1YmUyYWJmMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQ0
MzYsNiArMTQ0MzYsMjAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkb21cTW9kdWxlR3JhcGguY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xODg3NSw2ICsxODg4OSwzNCBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXE1vZHVsZUZldGNoZXIu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XE1vZHVsZUxvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMjA3MSw2ICsyMjExMyw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cTWVzc2FnZVBvcnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNZXNzYWdlUG9ydENoYW5uZWwuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGRvbVxNb2R1bGVHcmFwaC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9t
XE1vdXNlRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZVJl
bGF0ZWRFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE11dGF0aW9u
RXZlbnQuaCIgLz4KQEAgLTIyNDg0LDYgKzIyNTI3LDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZU9yU3RyaW5nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1bGVG
ZXRjaGVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xNb2R1
bGVMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNj
aGVkdWxlZEFjdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
anNcU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xTY3JpcHRDb250cm9sbGVyLmgiIC8+CkBAIC0yMjcyMywxMyArMjI3Njgs
MTcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN2Z1xwcm9wZXJ0aWVzXFNWR1RyYW5z
Zm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcQXJnTGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxJZGVudGlmaWVyLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTSW50
ZXJuYWxQcm9taXNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSlNMb2NrLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEpT
T2JqZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXEpTU3RyaW5nLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lXEpTTW9kdWxlUmVjb3JkLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXExvb2t1cC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxPcGVyYXRp
b25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xy
dW50aW1lXFByb3RlY3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHJ1bnRpbWVcU3RyaW5nT2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFN5bWJvbC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFyclxSZWd1bGFyRXhwcmVzc2lv
bi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFy
clxZYXJyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1x5YXJyXFlhcnJJbnRlcnByZXRlci5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDZkZDM3OTlhZDVj
NjM5NTczY2Y3YjY4NDNjZDhkY2RiMTU3ODYyZWEuLjQyZWQ2YmE1ZWMwYzMxNzNjYjkxY2I4MzZm
MzczOWIzNzIyN2MzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTMxOTgsNiArMzE5OCw5IEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTWljcm9UYXNrLmNwcCI+CiAgICAgICA8RmlsdGVy
PmRvbTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZG9tXE1vZHVsZUdyYXBoLmNwcCI+CisgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE1vdXNlRXZlbnQu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC00
NDc2LDYgKzQ0NzksMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlRmV0Y2hlci5jcHAiPgorICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcTW9kdWxlTG9hZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xTY2hlZHVsZWRBY3Rpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwMzA0LDYgKzEwMzEzLDkgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNaWNyb1Rhc2suaCI+CiAgICAgICA8RmlsdGVyPmRv
bTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXE1vZHVsZUdyYXBoLmgiPgorICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxNb3VzZUV2ZW50LmgiPgog
ICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTExNDg5LDYg
KzExNTAxLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5oIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXE1vZHVsZUZldGNoZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xNb2R1bGVMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xT
Y2hlZHVsZWRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xMTY1NywxMiArMTE2NzUsMjEgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcSWRlbnRpZmllci5oIj4KICAg
ICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVu
dGltZVxKU0ludGVybmFsUHJvbWlzZS5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xydW50aW1lXEpTTG9jay5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU09iamVjdC5oIj4KICAgICAgIDxG
aWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxK
U01vZHVsZVJlY29yZC5oIj4KKyAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNccnVudGlt
ZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxKU1N0cmluZy5oIj4KICAgICAgIDxGaWx0ZXI+Rm9y
d2FyZGluZ0hlYWRlcnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTE2
ODEsNiArMTE3MDgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hl
YWRlcnNccnVudGltZVxTdHJpbmdPYmplY3QuaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdI
ZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcU3ltYm9sLmgiPgorICAgICAg
PEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1
ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1x5YXJyXFJl
Z3VsYXJFeHByZXNzaW9uLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1x5YXJy
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWI1NWZmOWYxMmE4MmUyYjBhYzczMjgz
NDUyNzEzZTRhZGUxYjY5MC4uYTY4NzU1ODFiMWFjYzFmOGYzNTZmMzczMDBmMzc0YWE4NGYzOGJh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjMyMyw2ICs2MzIzLDEyIEBACiAJCUUxRkY4RjY4MTgwNzQ2MDgwMDEzMjY3NCAv
KiBKU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlw
dG9DdXN0b20uY3BwICovOyB9OwogCQlFMUZGOEY2QzE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5LmNwcCAqLzsgfTsKIAkJRTFGRjhGNkQxODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuaCAqLzsgfTsKKwkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzlBNTIx
MUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5jcHAgKi87IH07CisJCUUzMzlBNTI0MUJB
NkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdy
YXBoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4OTIxQkFEMTQ1RjAwRDYy
RUUzIC8qIE1vZHVsZUZldGNoZXIuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7
IH07IH07CisJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5MzFCQUQx
NDVGMDBENjJFRTMgLyogTW9kdWxlRmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdT
ID0gKCk7IH07IH07CisJCUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4ODM4
OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5jcHAgKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9
IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CiAJCUU0MDFDMjc1MTdDRTUzRUMwMEM0MUEzNSAvKiBF
bGVtZW50SXRlcmF0b3JBc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDAxQzI3NDE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJh
dG9yQXNzZXJ0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0MjRBMzlFMTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlE
MTMzMERGMDEwMENGNkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUuaCAqLzsgfTsKIAkJRTQyNEEz
QTAxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGlsZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MjRBMzlGMTMzMERGMUUwMENGNkRD
OSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gKi87IH07CkBAIC0xNDA4Myw2ICsxNDA4OSwxMiBA
QAogCQlFMUZGOEY2NjE4MDc0NjA4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdWJ0bGVDcnlwdG9DdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QTE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzOUE1
MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUdyYXBoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTMzOUE1MjIxQkE2QkQ0NjAwQTNBN0FFIC8qIE1vZHVsZUdyYXBoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUdyYXBoLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzODgzODkyMUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRjaGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUZldGNoZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg4Mzg5MzFCQUQxNDVGMDBENjJF
RTMgLyogTW9kdWxlRmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
b2R1bGVGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODgzODk0MUJB
RDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudEl0
ZXJhdG9yQXNzZXJ0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA2RjNG
QjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbG9yRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE1MzUsNiArMjE1NDcsMTAgQEAKIAkJCQk0
MTE4OUVGODFBRDgyMzNDMDBCOTBBMEQgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0
b20uY3BwICovLAogCQkJCUUxQzM2RDMyMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5jcHAgKi8sCiAJCQkJRTFDMzZEMzMwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlLmggKi8sCisJCQkJRTM4ODM4OTIxQkFEMTQ1RjAwRDYyRUUzIC8q
IE1vZHVsZUZldGNoZXIuY3BwICovLAorCQkJCUUzODgzODkzMUJBRDE0NUYwMEQ2MkVFMyAvKiBN
b2R1bGVGZXRjaGVyLmggKi8sCisJCQkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVs
ZUxvYWRlci5jcHAgKi8sCisJCQkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIE1vZHVsZUxv
YWRlci5oICovLAogCQkJCTQxOThCREVFMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3Ry
ZWFtLmNwcCAqLywKIAkJCQk0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0
cmVhbS5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rp
b24uY3BwICovLApAQCAtMjM1MDIsNiArMjM1MTgsOCBAQAogCQkJCTQxQkY3MDBBMEZFODZGNDkw
MDVFOERFQyAvKiBNZXNzYWdlUG9ydENoYW5uZWwuaCAqLywKIAkJCQlDQjhDRjAxNTFBOTM0QjQz
MDAwRDUxMEIgLyogTWljcm9UYXNrLmNwcCAqLywKIAkJCQk1M0I4OTVBRDE5REM3QzM3MDA5Q0FB
OTMgLyogTWljcm9UYXNrLmggKi8sCisJCQkJRTMzOUE1MjExQkE2QkQ0NjAwQTNBN0FFIC8qIE1v
ZHVsZUdyYXBoLmNwcCAqLywKKwkJCQlFMzM5QTUyMjFCQTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxl
R3JhcGguaCAqLywKIAkJCQk4NTAzMUIyRjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5j
cHAgKi8sCiAJCQkJODUwMzFCMzAwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuaCAqLywK
IAkJCQkxNDFCOTRFNTA5RUM0MjIzMDAwRTk0MTMgLyogTW91c2VFdmVudC5pZGwgKi8sCkBAIC0y
NDYxNyw2ICsyNDYzNSw3IEBACiAJCQkJMzE2MDIzRjAxNTMyQzQwQzAwRDUwRkY0IC8qIERpY3Rp
b25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEzMSAvKiBE
aWN0aW9uYXJ5TG9va3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNEMTMxMDA4
REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzM5QTUyNDFC
QTZCRDQ2MDBBM0E3QUUgLyogTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTdFREFB
RkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxOTEsNiArMjYy
MTAsNyBAQAogCQkJCUNFMTI1MjQxMUExNkIxQjYwMDg2NDQ4MCAvKiBNZWRpYVBsYXllclNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJv
ZHVjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBN
ZWRpYVF1ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJFRTMg
LyogTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAy
MjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5
MkUwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzIzOSw2ICsyNzI1OSw3IEBACiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZDQTI3
IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYw
QkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBNb2R1bGVGZXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FDRTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
VGV4dFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FEMTBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg1NEIwMjUxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yODAwNyw2ICsyODAyOCw3IEBACiAJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8q
IEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQkMxMkIw
MjcyQTAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwMDcxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBNb2R1bGVHcmFw
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjA4MTEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NTk2OTExNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDMxNjBCRTEyQjAyNzJBMDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyTWFjLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjg1NzIsNiArMjg1OTQsNyBAQAogCQkJCUU0QTAwNzg1MUI4MjBFRDMw
MDJDNUE2RSAvKiBEYXRhVVJMRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1
MTBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOEFEMEE1OTcxNEM4ODM1ODAwMEQ4M0M1IC8qIERPTVdlYktpdENTU1JlZ2lvblJ1bGUu
bW0gaW4gU291cmNlcyAqLywKKwkJCQlFMzg4Mzg5ODFCQUQxNDVGMDBENjJFRTMgLyogTW9kdWxl
TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjExRTYyMEUxQzRFMTQwMEY2QTU3OSAv
KiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTNGMkIz
M0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzkxQTM4RjFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg5OSw2ICsyODkyMiw3IEBACiAJCQkJQTg3MURCMkUw
QTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4NzFEQjI5MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDb2xFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjI4MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFi
bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzODgzODk2MUJBRDE0NUYwMEQ2MkVF
MyAvKiBNb2R1bGVGZXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjJEMEExNTBC
RDYwMEIxMkE2OCAvKiBIVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODcxREIzMDBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzQ0MkNBMDBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93
c0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCBmZjQxNWVkMjg0MDg4ZTI4OTU1
YTY0YzBlNjEyYTg1NmRlZWRkOTdmLi5kZTliMThhNGU2MTUwMDZjZDIxMTQ0NmY2ZDZlMWY1NTY3
Yzk0ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHAKQEAgLTE0Nyw2ICsxNDcsOCBAQAogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5j
cHAiCisjaW5jbHVkZSAiTW9kdWxlTG9hZGVyLmNwcCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rp
b24uY3BwIgogI2luY2x1ZGUgIlNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAiCiAjaW5jbHVkZSAi
U2NyaXB0Q29udHJvbGxlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcAppbmRleCA4MzUwMzMzMTNlZmUxNTJmMWUzOWY0YzE1MWJiZGMyZjBh
MWFkN2ZiLi4yODQ3ODg4MTliNzFmOGU3YjVjZjk1YWFkZTNlNjA0ODMzNmYxOTVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMxLDEx
ICszMSwxMyBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNO
b2RlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldl
YkNvcmVKU0NsaWVudERhdGEuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQuaD4KICNpbmNsdWRlIDxydW50aW1lL01pY3JvdGFzay5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAKQEAgLTU2LDcgKzU4LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkQWxs
b3dBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0LCBFeGVjU3RhdGUq
IGUKIAogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93QmFzZTo6c19pbmZvID0geyAiV2luZG93
IiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNE
T01XaW5kb3dCYXNlKSB9OwogCi1jb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdp
bmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZzaG91bGRBbGxvd0FjY2Vz
c0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91
bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9F
dmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Citjb25zdCBHbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7
ICZzaG91bGRBbGxvd0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmlj
aFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZs
YWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVU
aW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRlckZldGNoLCBudWxscHRy
LCBudWxscHRyLCAmbW9kdWxlTG9hZGVyRXZhbHVhdGUgfTsKIAogSlNET01XaW5kb3dCYXNlOjpK
U0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxE
T01XaW5kb3c+IHdpbmRvdywgSlNET01XaW5kb3dTaGVsbCogc2hlbGwpCiAgICAgOiBKU0RPTUds
b2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCAmc2hlbGwtPndvcmxkKCksICZzX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKQpAQCAtMjc2LDQgKzI3OCwzMSBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6
ZmlyZUZyYW1lQ2xlYXJlZFdhdGNocG9pbnRzRm9yV2luZG93KERPTVdpbmRvdyogd2luZG93KQog
ICAgIH0KIH0KIAorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1v
ZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBy
ZWZlcnJlcikKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2Fz
dDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChSZWZQdHI8RG9jdW1l
bnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJl
dHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBleGVj
LCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4
ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywganNV
bmRlZmluZWQoKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFz
ZTo6bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSkKK3sKKyAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOworICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09i
amVjdC0+aW1wbCgpLmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxl
TG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlS2V5KTsKKyAgICBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gZGVm
ZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5lZCgpKTsKK30KKworSlNDOjpKU1ZhbHVlIEpT
RE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCkKK3sKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRo
aXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwor
ICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLmRv
Y3VtZW50KCkpCisgICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmV2YWx1
YXRlKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQpOworICAgIHJl
dHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggNWVkMzg2
MmMxNDExODdjMDA2YjY4OGRiNzk3Nzk0YjM2OTgxMDU2NC4uMmQ0NGI4MDA5ZTU0ZGJiMDc0ZThm
OTk3N2MxNmIyNWUxMjU3ZWFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmgKQEAgLTc4LDYgKzc4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgSlNDOjpXYXRjaHBvaW50U2V0IG1fd2luZG93Q2xvc2VXYXRjaHBvaW50czsKIAogICAg
IHByaXZhdGU6CisgICAgICAgIC8vIE1vZHVsZSBMb2FkZXIgaG9va3MuCisgICAgICAgIHN0YXRp
YyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
KyAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNo
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7Cisg
ICAgICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUp
OworCiAgICAgICAgIFJlZlB0cjxET01XaW5kb3c+IG1faW1wbDsKICAgICAgICAgSlNET01XaW5k
b3dTaGVsbCogbV9zaGVsbDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAppbmRleCAwOWU3ZTViNjAyNjg3OWI1MzM1YTFm
ZTFlZjcxYzQ0NzQzMGJmY2Q0Li40ZmQ2ODNlMTU5MTAyYjE1Mjg3ZDYzODk5YzAxNmVmZDM3NDgw
M2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRF
eGVjU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRF
eGVjU3RhdGUuaApAQCAtNzQsNiArNzQsMjQgQEAgY2xhc3MgSlNNYWluVGhyZWFkRXhlY1N0YXRl
IHsKICAgICAgICAgdGFzay5ydW4oZXhlYyk7CiAgICAgfQogCisgICAgc3RhdGljIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0
cmluZyYgbW9kdWxlTmFtZSkKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBj
dXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywg
bW9kdWxlTmFtZSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IGxvYWRNb2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6U291cmNlQ29kZSYg
c291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50
U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywgc291cmNl
Q29kZSk7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxpbmtB
bmRFdmFsdWF0ZU1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBtb2R1bGVLZXkpCisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3Vy
cmVudFN0YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsaW5rQW5kRXZhbHVhdGVNb2R1
bGUoZXhlYywgbW9kdWxlS2V5KTsKKyAgICB9CisKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIGluc3RydW1lbnRGdW5jdGlvbkNhbGwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIEpTQzo6Q2FsbFR5cGUsIGNvbnN0IEpTQzo6Q2FsbERhdGEmKTsKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGJhMDYzMDBiMTNkOTUzZmNhNTRhZDc3ZjRlMmJlMDc4NTU1YjBiNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuY3BwCkBAIC0w
LDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ik1vZHVsZUZldGNoZXIuaCIKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisj
aW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJN
b2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUZldGNoZXI6Ok1vZHVsZUZldGNoZXIoSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkK
KyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwp
CisgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCkK
KyAgICAsIG1fZGVmZXJyZWQoZ2xvYmFsT2JqZWN0LT52bSgpLCBkZWZlcnJlZCkKK3sKK30KKwor
TW9kdWxlRmV0Y2hlcjo6fk1vZHVsZUZldGNoZXIoKQoreworICAgIGlmIChtX2NhY2hlZFNjcmlw
dCkgeworICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAg
ICBtX2NhY2hlZFNjcmlwdCA9IG51bGxwdHI7CisgICAgfQorfQorCitSZWY8TW9kdWxlRmV0Y2hl
cj4gTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRl
ZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TW9kdWxlRmV0Y2hlcihnbG9iYWxPYmplY3QsIHNvdXJjZVVSTCwgZGVmZXJyZWQsIGRvY3VtZW50
KSk7Cit9CisKK2Jvb2wgTW9kdWxlRmV0Y2hlcjo6cnVuKCkKK3sKKyAgICBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVz
b3VyY2VPcHRpb25zKCk7CisgICAgb3B0aW9ucy5zZXRDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uKENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2spOwor
CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fc291
cmNlVVJMKSwgb3B0aW9ucyk7CisKKyAgICAvLyBNb2R1bGUgZmV0Y2hlciBhbHdheXMgaW50ZXJw
cmV0IHNjcmlwdHMgYXMgVVRGLTguCisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9s
b2FkZXIvaXNzdWVzLzgzCisgICAgcmVxdWVzdC5zZXRDaGFyc2V0KEFTQ0lJTGl0ZXJhbCgidXRm
LTgiKSk7CisKKyAgICAvLyBGSVhNRTogU2hvdWxkIGhhbmRsZSAiY3Jvc3NvcmlnaW4iIG9wdGlv
bnMuCisgICAgLy8gT25jZSB0aGUgc3BlYyBkZXNjcmliZXMgdGhlIGRldGFpbHMsIHdlIHdpbGwg
Zm9sbG93IGl0LgorICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKEF0b21pY1N0cmluZyhtX3NvdXJj
ZVVSTC5zdHJpbmcoKSkpOworCisgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2RvY3VtZW50LmNhY2hl
ZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKKyAgICBpZiAoIW1fY2Fj
aGVkU2NyaXB0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBOb3RlOiBJZiB0aGUg
Y29udGVudCBpcyBhbHJlYWR5IGNhY2hlZCwgdGhpcyBpbW1laWRhdGVseSBjYWxscyBub3RpZnlG
aW5pc2hlZC4KKyAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworICAgIHJldHVy
biB0cnVlOworfQorCit2b2lkIE1vZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJj
ZSA9PSBtX2NhY2hlZFNjcmlwdCk7CisgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgQVNTRVJUKG1fY2FjaGVkU2NyaXB0KTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCA9IG1fY2FjaGVkU2NyaXB0OworICAg
IG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKworI2lmIEVOQUJMRShOT1NOSUZGKQorICAgIGlm
IChjYWNoZWRTY3JpcHQgJiYgIWNhY2hlZFNjcmlwdC0+bWltZVR5cGVBbGxvd2VkQnlOb3NuaWZm
KCkpIHsKKyAgICAgICAgbV9kb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIlJlZnVzZWQgdG8gZXhlY3V0ZSBzY3Jp
cHQgZnJvbSAnIiArIGNhY2hlZFNjcmlwdC0+dXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRv
TGVuZ3RoKCkgKyAiJyBiZWNhdXNlIGl0cyBNSU1FIHR5cGUgKCciICsgY2FjaGVkU2NyaXB0LT5t
aW1lVHlwZSgpICsgIicpIGlzIG5vdCBleGVjdXRhYmxlLCBhbmQgc3RyaWN0IE1JTUUgdHlwZSBj
aGVja2luZyBpcyBlbmFibGVkLiIpOworICAgICAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVu
dCh0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgUmVmPERvY3Vt
ZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOworCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9j
dW1lbnQuZnJhbWUoKSkgeworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKG1fZ2xvYmFs
T2JqZWN0LT52bSgpKTsKKyAgICAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9i
amVjdC0+Z2xvYmFsRXhlYygpOworICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LT5lcnJvck9jY3Vy
cmVkKCkpIHsKKyAgICAgICAgICAgIC8vIFRoZSBtb2R1bGUgbG9hZGVyIHBpcGVsaW5lIGlzIGNv
bnN0cnVjdGVkIGFzIGEgY2hhaW4gb2YgcHJvbWlzZXMuCisgICAgICAgICAgICAvLyBSZWplY3Rp
bmcgYSBwcm9taXNlIGlmIHNvbWUgZXJyb3Igb2NjdXJzIGlzIGltcG9ydGFudCBiZWNhdXNlIHRo
ZSBleGVjdXRpb24gZmxvdyBvZgorICAgICAgICAgICAgLy8gdGhlIHByb21pc2UgY2hhaW4gaXMg
ZHJpdmVuIGJ5ICJyZWplY3RlZCIgb3IgImZ1bGZpbGxlZCIgZXZlbnRzLgorICAgICAgICAgICAg
Ly8gSWYgdGhlIHByb21pc2UgaXMgbm90IHJlamVjdGVkIHdoaWxlIGVycm9yIG9jY3VycywgcmVq
ZWN0IGhhbmRsZXIgd29uJ3QgYmUgZXhlY3V0ZWQKKyAgICAgICAgICAgIC8vIGFuZCBhbGwgdGhl
IHN1YnNlcXVlbnQgcHJvbWlzZSBjaGFpbiB3aWxsIHdhaXQgdGhlIHJlc3VsdCBmb3JldmVyLgor
ICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFzIGEgcmVzdWx0LCBldmVuIGlmIHRoZSBl
cnJvciBpcyBhbHJlYWR5IHJlcG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgZWxzZXdoZXJlLAorICAg
ICAgICAgICAgLy8gaXQgc2hvdWxkIGJlIHByb3BhZ2F0ZWQgaW4gdGhlIHBpcGVsaW5lLiBGb3Ig
ZXhhbXBsZSwgdGhlIGVycm9yIG9mIGxvYWRpbmcKKyAgICAgICAgICAgIC8vIENhY2hlZFJlc291
cmNlIGlzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBieSB0aGUgbG9hZGVyLiBC
dXQgd2Ugc3RpbGwgbmVlZAorICAgICAgICAgICAgLy8gdG8gcmVqZWN0IHRoZSBwcm9taXNlIGJ5
IHNvbWUgZXJyb3IuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTm90IHRvIHJlcG9y
dCB0aGUgZXJyb3IgdHdpY2UsIHdoZW4gd2UgcHJvcGFnYXRlIHRoZSBlcnJvciB0aGF0IGlzIGFs
cmVhZHkgcmVwb3J0ZWQKKyAgICAgICAgICAgIC8vIHRvIHRoZSBpbnNwZWN0b3IsIHdlIHRocm93
IG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sIHN5bWJvbCBpbnN0ZWFkLgor
ICAgICAgICAgICAgLy8gQnkgY29tcGFyaW5nIHRoZSB0aHJvd24gZXJyb3Igd2l0aCB0aGlzIHN5
bWJvbCwgd2UgY2FuIGRpc3Rpbmd1aXNoIGVycm9ycyByYWlzZWQKKyAgICAgICAgICAgIC8vIHdo
ZW4gbGlua2luZyBvciBleGVjdXRpbmcgYSBtb2R1bGUgZ3JhcGggZnJvbSBlcnJvcnMgcmVwb3J0
ZWQgYWxyZWFkeS4KKyAgICAgICAgICAgIC8vIEluIHRoZSByZWplY3QgaGFuZGxlciBvZiB0aGUg
cHJvbWlzZSwgd2Ugb25seSByZXBvcnQgYSBlcnJvciB0aGF0IGlzIG5vdCB0aGlzIHN5bWJvbC4K
KyAgICAgICAgICAgIG1fZGVmZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OlN5bWJvbDo6Y3JlYXRl
KGV4ZWMtPnZtKCksICooZnJhbWUtPnNjcmlwdCgpLm1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKCkudWlkKCkpKSk7CisgICAgICAgIH0gZWxzZSBpZiAoIWNhY2hlZFNjcmlw
dC0+d2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VD
b2RlKGNhY2hlZFNjcmlwdC5nZXQoKSk7CisgICAgICAgICAgICBtX2RlZmVycmVkLT5yZXNvbHZl
KGV4ZWMsIEpTQzo6anNTdHJpbmcoZXhlYywgc291cmNlQ29kZS5zb3VyY2UoKSkpOworICAgICAg
ICB9CisgICAgfQorCisgICAgLy8gQSBDYWNoZWRSZXNvdXJjZUhhbmRsZSBhbG9uZSBkb2VzIG5v
dCBwcmV2ZW50IHRoZSB1bmRlcmx5aW5nIENhY2hlZFJlc291cmNlCisgICAgLy8gZnJvbSBwdXJn
aW5nIGl0cyBkYXRhIGJ1ZmZlci4gVW50aWwgd2UgZmluaXNoIHVzaW5nIHRoZSBiYWNraW5nIGJ1
ZmZlciBvZiB0aGUKKyAgICAvLyBjYWNoZWQgc2NyaXB0LCB3ZSBkb24ndCByZW1vdmUgdGhlIGNs
aWVudC4KKyAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKworICAgIG1fZG9j
dW1lbnQubW9kdWxlTG9hZGVyKCktPm5vdGlmeUZpbmlzaGVkKHRoaXMpOworICAgIC8vIEFmdGVy
IE1vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQgY2FsbCwgfHRoaXN8IG1heSBiZSBkZXN0cm95
ZWQuCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVs
ZUZldGNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUZldGNoZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iOTNkMzZhZTM2MGYyZjcyYjBlOTllZmJhNDM3ZjczNTQ2YjQ2MjBmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlRmV0Y2hlci5o
CkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vZHVsZUZldGNoZXJfaAor
I2RlZmluZSBNb2R1bGVGZXRjaGVyX2gKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50
LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJVUkwuaCIK
KyNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVk
U2NyaXB0OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKKworY2xh
c3MgTW9kdWxlRmV0Y2hlciA6IHB1YmxpYyBSZWZDb3VudGVkPE1vZHVsZUZldGNoZXI+LCBwcml2
YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNb2R1
bGVGZXRjaGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxNb2R1bGVGZXRjaGVyPiBjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqLCBjb25zdCBVUkwm
IHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQmKTsK
KworICAgIH5Nb2R1bGVGZXRjaGVyKCk7CisKKyAgICBib29sIHJ1bigpOworCisgICAgQ2FjaGVk
U2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQor
Citwcml2YXRlOgorICAgIE1vZHVsZUZldGNoZXIoSlNET01HbG9iYWxPYmplY3QqLCBjb25zdCBV
UkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQm
KTsKKworICAgIC8vIEZvciBDYWNoZWRSZXNvdXJjZUNsaWVudC4KKyAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBvdmVycmlkZTsKKworICAgIERvY3VtZW50
JiBtX2RvY3VtZW50OworICAgIFVSTCBtX3NvdXJjZVVSTDsKKyAgICBKU0M6OlN0cm9uZzxKU0RP
TUdsb2JhbE9iamVjdD4gbV9nbG9iYWxPYmplY3Q7CisgICAgSlNDOjpTdHJvbmc8SlNDOjpKU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkPiBtX2RlZmVycmVkOworICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNjcmlwdD4gbV9jYWNoZWRTY3JpcHQgeyB9OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9kdWxlRmV0Y2hlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzI0ZDI5M2FiMmI3ZGJh
MTQ3NWQ1OTAwNTc0ZjUyZDFmMzU0YmZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvTW9kdWxlTG9hZGVyLmNwcApAQCAtMCwwICsxLDEzMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGVMb2FkZXIuaCIKKwor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiTWljcm9U
YXNrLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCisjaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KKyNpbmNsdWRlIDxydW50
aW1lL0NvbXBsZXRpb24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8
cnVudGltZS9KU1N0cmluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvU3ltYm9sLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworTW9kdWxlTG9hZGVyOjpNb2R1bGVMb2FkZXIoRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKworSlNDOjpKU0ludGVy
bmFsUHJvbWlzZSogTW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1l
VmFsdWUsIEpTQzo6SlNWYWx1ZSByZWZlcnJlclZhbHVlKQoreworICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOworICAgIGlmIChtb2R1bGVOYW1lVmFsdWUu
aXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIG1vZHVs
ZU5hbWVWYWx1ZSk7CisKKyAgICAvLyBGSVhNRTogV2Ugbm93IGFzc3VtZSB0aGF0IG1vZHVsZSBu
YW1lIGlzIGVpdGhlciBzeW1ib2wgb3Igc3RyaW5nLgorICAgIC8vIFdoZW4gZXhwb3NpbmcgdGhl
IHJlZmxlY3Rpb24gdG8gdGhlIG1vZHVsZSBsb2FkZXIgYW5kIG1vZHVsZXMsIHdlIG5lZWQgdG8g
cmVjYXN0IHRoaXMgcGFydC4KKyAgICBBU1NFUlQobW9kdWxlTmFtZVZhbHVlLmlzU3RyaW5nKCkp
OworICAgIFN0cmluZyBtb2R1bGVOYW1lID0gSlNDOjpqc0Nhc3Q8SlNDOjpKU1N0cmluZyo+KG1v
ZHVsZU5hbWVWYWx1ZSktPnZhbHVlKGV4ZWMpOworCisgICAgLy8gTm93LCB3ZSBjb25zaWRlciB0
aGUgZ2l2ZW4gbW9kdWxlTmFtZSBhcyB0aGUgc2FtZSB0byB0aGUgc3JjPSIuLi4iIGluIHRoZSBz
Y3JpcHQgdGFnLgorICAgIC8vIFdlIHVzZSB0aGUgY29tcGxldGVkIFVSTCBhcyB0aGUgbW9kdWxl
IGtleS4KKyAgICAvLworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHNpdGUgcGFja2FnaW5nIHN5c3Rl
bS4gQnV0IGl0J3Mgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMgeWV0LgorICAgIC8vIGh0dHBzOi8v
d2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXItbG9hZGVyLXByb3RvdHlwZS0lNDAlNDBy
ZXNvbHZlCisgICAgVVJMIGNvbXBsZXRlZFVSTDsKKworICAgIGlmIChyZWZlcnJlclZhbHVlLmlz
U3ltYm9sKCkpCisgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwo
bW9kdWxlTmFtZSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChyZWZlcnJlclZhbHVlLmlzVW5k
ZWZpbmVkKCkpCisgICAgICAgICAgICBjb21wbGV0ZWRVUkwgPSBtX2RvY3VtZW50LmNvbXBsZXRl
VVJMKG1vZHVsZU5hbWUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChyZWZl
cnJlclZhbHVlLmlzU3RyaW5nKCkpOworICAgICAgICAgICAgU3RyaW5nIHJlZmVycmVyID0gSlND
Ojpqc0Nhc3Q8SlNDOjpKU1N0cmluZyo+KHJlZmVycmVyVmFsdWUpLT52YWx1ZShleGVjKTsKKyAg
ICAgICAgICAgIGNvbXBsZXRlZFVSTCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwobW9kdWxlTmFt
ZSwgVVJMKFBhcnNlZFVSTFN0cmluZywgcmVmZXJyZXIpKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBpZiAoIWNvbXBsZXRlZFVSTC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBkZWZlcnJlZC0+
cmVqZWN0KGV4ZWMsIGNyZWF0ZURPTUV4Y2VwdGlvbihleGVjLCBTWU5UQVhfRVJSKSk7CisKKyAg
ICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhlYywganNTdHJpbmcoZXhlYywgY29tcGxldGVk
VVJMLnN0cmluZygpKSk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIE1vZHVsZUxvYWRl
cjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQoreworICAgIC8vIEZJWE1FOiBX
aGVuIGltcGxlbWVudGluZyByZWZsZWN0aXZlIG1vZHVsZSBsb2FkZXIgYW5kIG1vZHVsZXMsIHdl
IHNob3VsZCByZWNhc3QgdGhpcyBpbXBsZW1lbnRhdGlvbi4KKyAgICBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
OjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKworICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uo
IW1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCksICJTeW1ib2xpYyBtb2R1bGUga2V5IHNob3VsZCBi
ZSBhbHJlYWR5IGZ1bGZpbGxlZCB3aXRoIHRoZSBpbmxpbmVkIHJlc291cmNlLiIpOworICAgIEFT
U0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKKworICAgIEpTQzo6SWRlbnRpZmllciBt
b2R1bGVLZXkgPSBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgYXNTdHJpbmcobW9k
dWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7CisKKyAgICBVUkwgY29tcGxldGVkVVJMKFBhcnNl
ZFVSTFN0cmluZywgbW9kdWxlS2V5LmltcGwoKSk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShj
b21wbGV0ZWRVUkwuaXNWYWxpZCgpLCAiVGhlIHJlc29sdmUgaG9vayBzaG91bGQgcHJvZHVjZSB0
aGUgdmFsaWQgVVJMIGFzIGEgc3RyaW5nLiIpOworCisgICAgUmVmPE1vZHVsZUZldGNoZXI+IGZl
dGNoZXIgPSBNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QpLCBjb21wbGV0ZWRVUkwsIGRlZmVycmVkLCBtX2RvY3VtZW50KTsK
KyAgICBtX2ZldGNoaW5nU2V0LmFkZCgmZmV0Y2hlci5nZXQoKSk7CisgICAgaWYgKCFmZXRjaGVy
LT5ydW4oKSkgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgp
KQorICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6
OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5
UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgIH0KKworICAgIHJldHVybiBkZWZl
cnJlZC0+cHJvbWlzZSgpOworfQorCitKU0M6OkpTVmFsdWUgTW9kdWxlTG9hZGVyOjpldmFsdWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1
ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlKQoreworICAg
IC8vIEZJWE1FOiBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBKU01vZHVsZVJlY29yZC4KKyAg
ICBKU0M6OkpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8
SlNDOjpKU01vZHVsZVJlY29yZCo+KG1vZHVsZVJlY29yZFZhbHVlKTsKKyAgICBpZiAoIW1vZHVs
ZVJlY29yZCkKKyAgICAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKKworICAgIFVSTCBz
b3VyY2VVUkw7CisgICAgaWYgKG1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHNv
dXJjZVVSTCA9IG1fZG9jdW1lbnQudXJsKCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCht
b2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKKyAgICAgICAgc291cmNlVVJMID0gVVJMKFBhcnNl
ZFVSTFN0cmluZywgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZShleGVjKSk7CisgICAg
fQorCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAg
cmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsIG1vZHVsZVJl
Y29yZCk7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKwordm9pZCBNb2R1bGVM
b2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZUZldGNoZXIqIGZldGNoZXIpCit7CisgICAgbV9m
ZXRjaGluZ1NldC5yZW1vdmUoZmV0Y2hlcik7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvTW9kdWxlTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ5MzY5NjgxNjVlZWQ4NTgxMDE3ODFj
ZDE4NTQ3MGM4ZWI1ZTBkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL01vZHVsZUxvYWRlci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIE1vZHVsZUxvYWRlcl9oCisjZGVmaW5lIE1vZHVsZUxvYWRlcl9oCisKKyNpbmNsdWRlICJF
bGVtZW50LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgIk1vZHVsZUdy
YXBoLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIE1vZHVsZUxvYWRlciB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoTW9kdWxlTG9hZGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgTW9kdWxlTG9hZGVyKERvY3VtZW50Jik7CisKKyAgICBEb2N1bWVu
dCYgZG9jdW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQ7CisgICAgfQor
CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVl
IHJlZmVycmVyKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBmZXRjaChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5KTsKKyAg
ICBKU0M6OkpTVmFsdWUgZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCk7
CisKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKE1vZHVsZUZldGNoZXIqKTsKK3ByaXZhdGU6Cisg
ICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgSGFzaFNldDxSZWZQdHI8TW9kdWxlRmV0Y2hl
cj4+IG1fZmV0Y2hpbmdTZXQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBNb2R1bGVMb2FkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcAppbmRleCA0YjNiMDk3MmJlNzdmM2M3NjU5NWYxNDBlMjZhNzQ4ZmY4
ZWE0NTBjLi45OWI3ZjhiNjJhNGI3ZmVhZWYzZmM1YjRhN2NlZDcxOGE1M2VkM2NjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzYs
MTEgKzM2LDEzIEBACiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVk
ZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgiCisjaW5j
bHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJOUF9qc29iamVjdC5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VH
cm91cC5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxl
bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNTQsNyArNTYs
MTEgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8
cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNGdW5jdGlvbi5oPgorI2luY2x1ZGUgPHJ1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTmF0aXZl
U3RkRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvVGV4dFBvc2l0aW9uLmg+CiAKQEAgLTg2LDYgKzkyLDcgQEAgU2NyaXB0Q29udHJvbGxl
cjo6U2NyaXB0Q29udHJvbGxlcihGcmFtZSYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQog
ICAgICwgbV9zb3VyY2VVUkwoMCkKICAgICAsIG1fcGF1c2VkKGZhbHNlKQorICAgICwgbV9tb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpCiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAgICAgLCBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0KDApCiAjZW5kaWYKQEAg
LTE3NSwxMSArMTgyLDEyOCBAQCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9s
bGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZQogICAgIHJldHVybiBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVjLT52bSgpLCByZXR1cm5WYWx1ZSk7CiB9CiAKLURl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpIAorRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgU2Ny
aXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29k
ZSkKIHsKICAgICByZXR1cm4gZXZhbHVhdGVJbldvcmxkKHNvdXJjZUNvZGUsIG1haW5UaHJlYWRO
b3JtYWxXb3JsZCgpKTsKIH0KIAorc3RhdGljIHZvaWQgaGFuZGxlTW9kdWxlTG9hZGVyRXJyb3Io
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGVycm9yLCBjb25zdCBQcml2YXRlTmFtZSYgbW9kdWxl
TG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCit7CisgICAgLy8gT25jZSByZXBvcnRl
ZCBlcnJvciBpcyBtYXJrZWQgYXMgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1i
b2wuCisgICAgLy8gRG9uJ3QgcmVwb3J0IGl0IGhlcmUgYWdhaW4uCisgICAgaWYgKFN5bWJvbCog
c3ltYm9sID0ganNEeW5hbWljQ2FzdDxTeW1ib2wqPihlcnJvcikpIHsKKyAgICAgICAgaWYgKHN5
bWJvbC0+cHJpdmF0ZU5hbWUoKSA9PSBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5
bWJvbCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogQmVjYXVz
ZSB3ZSBoYXZlIG5vdCBzdXBwb3J0ZWQgdGhlICJjcm9zc29yaWdpbiIgYXR0cmlidXRlIGluIHRo
ZSBtb2R1bGUgdGFnLAorICAgIC8vIHdlIHBhc3MgdGhlIG51bGxwdHIgdG8gcmVwb3J0RXhjZXB0
aW9uJ3MgQ2FjaGVkU2NyaXB0KiBwYXJhbWV0ZXIuIFdoZW4gcGFzc2luZyBudWxscHRyCisgICAg
Ly8gdG8gcmVwb3J0RXhjZXB0aW9uLCBXZWJDb3JlIGRvZXMgbm90IHNob3cgdGhlIGRldGFpbCBv
ZiB0aGUgZXJyb3IgaWYgdGhlIFVSTCBvZiB0aGUKKyAgICAvLyBzb3VyY2UgZG9lcyBub3QgcGFz
cyB0aGUgc2FtZSBvcmlnaW4gcG9saWN5LiBTbyB0aGUgY3VycmVudCBiZWhhdmlvciBpcyBjb25z
ZXJ2YXRpdmU7CisgICAgLy8gb25seSB0aGUgbW9kdWxlIGNvZGUgdGhhdCBVUkwgaXMgd2l0aGlu
IHRoZSBzYW1lIG9yaWdpbiBjYW4gcmVwb3J0IHRoZSBkZXRhaWxzIG9mIHRoZQorICAgIC8vIGVy
cm9yLiBPbmNlIHRoZSBzcGVjIGRlc2NyaWJlcyB0aGUgYmVoYXZpb3IsIHdlIHdpbGwgZm9sbG93
IGl0LgorICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBlcnJvciwgbnVsbHB0cik7Cit9CisKK3Zv
aWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmIG1vZHVs
ZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQp
Cit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIGluaXRNb2R1bGVHcmFwaCht
b2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGV4ZWMsIG1vZHVs
ZU5hbWUpLCB3b3JsZCk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShN
b2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sKKyAg
ICBsb2FkTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFwaCwgbW9kdWxlTmFtZSwgbWFpblRocmVhZE5v
cm1hbFdvcmxkKCkpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldv
cmxkKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291
cmNlQ29kZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9j
ayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hl
bGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFs
RXhlYygpOworCisgICAgaW5pdE1vZHVsZUdyYXBoKG1vZHVsZUdyYXBoLCBKU01haW5UaHJlYWRF
eGVjU3RhdGU6OmxvYWRNb2R1bGUoZXhlYywgc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSksIHdv
cmxkKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlKE1vZHVsZUdyYXBo
JiBtb2R1bGVHcmFwaCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAg
ICBsb2FkTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFwaCwgc291cmNlQ29kZSwgbWFpblRocmVhZE5v
cm1hbFdvcmxkKCkpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0
ZU1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBET01XcmFwcGVyV29ybGQm
IHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNE
T01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRl
KiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBKU0ludGVybmFs
UHJvbWlzZSogcHJvbWlzZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bGlua0FuZEV2YWx1YXRl
TW9kdWxlKGV4ZWMsIElkZW50aWZpZXI6OmZyb21VaWQoJmV4ZWMtPnZtKCksIG1vZHVsZUdyYXBo
Lm1vZHVsZUtleSgpKSk7CisKKyAgICBXZWFrUHRyPEVsZW1lbnQ+IHdlYWtQdHIobW9kdWxlR3Jh
cGgud2Vha0VsZW1lbnRQdHIoKSk7CisgICAgSlNGdW5jdGlvbiogZnVsZmlsbEhhbmRsZXIgPSBK
U05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAx
LCBTdHJpbmcoKSwgW3dlYWtQdHJdKEV4ZWNTdGF0ZSopIHsKKyAgICAgICAgaWYgKFJlZlB0cjxF
bGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkKKyAgICAgICAgICAgIHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUV2YWx1
YXRlZCgpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgIH0pOworCisgICAgUHJpdmF0ZU5hbWUgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJy
b3JTeW1ib2wgPSBtX21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOworICAg
IEpTRnVuY3Rpb24qIHJlamVjdEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUo
ZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW21vZHVsZUxvYWRlckFs
cmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLCB3ZWFrUHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAg
ICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkKKyAgICAg
ICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdy
YXBoKCktPm5vdGlmeUV2YWx1YXRlZCgpOworICAgICAgICBoYW5kbGVNb2R1bGVMb2FkZXJFcnJv
cihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJy
b3JTeW1ib2wpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxsSGFuZGxlciwgcmVq
ZWN0SGFuZGxlcik7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRl
TW9kdWxlKE1vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCkKK3sKKyAgICBsaW5rQW5kRXZhbHVhdGVN
b2R1bGVJbldvcmxkKG1vZHVsZUdyYXBoLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisK
K0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxl
KGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBET01X
cmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkp
OworCisgICAgY29uc3QgU291cmNlQ29kZSYganNTb3VyY2VDb2RlID0gbW9kdWxlUmVjb3JkLT5z
b3VyY2VDb2RlKCk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxs
KHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4
ZWMoKTsKKyAgICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNlVVJMID0gbV9zb3VyY2VVUkw7Cisg
ICAgbV9zb3VyY2VVUkwgPSAmc291cmNlVVJMLnN0cmluZygpOworCisgICAgUmVmPEZyYW1lPiBw
cm90ZWN0KG1fZnJhbWUpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNv
b2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJh
bWUsIHNvdXJjZVVSTCwganNTb3VyY2VDb2RlLmZpcnN0TGluZSgpKTsKKworICAgIEpTVmFsdWUg
cmV0dXJuVmFsdWUgPSBtb2R1bGVSZWNvcmQtPmV2YWx1YXRlKGV4ZWMpOworICAgIE5ha2VkUHRy
PEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCisgICAgICAgIGV2YWx1YXRpb25FeGNlcHRpb24gPSBleGVjLT52bSgpLmV4Y2VwdGlv
bigpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFdmFsdWF0ZVNjcmlwdChj
b29raWUsIG1fZnJhbWUpOworCisgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pIHsKKyAgICAg
ICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV2YWx1YXRpb25FeGNlcHRpb24sIG51bGxwdHIpOwor
ICAgICAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOworICAgICAgICByZXR1cm4gRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUoKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZVVSTCA9IHNhdmVk
U291cmNlVVJMOworICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVjLT52bSgp
LCByZXR1cm5WYWx1ZSk7Cit9CisKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJlY29y
ZCogbW9kdWxlUmVjb3JkKQoreworICAgIHJldHVybiBldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkws
IG1vZHVsZVJlY29yZCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCiBSZWY8RE9NV3Jh
cHBlcldvcmxkPiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXb3JsZCgpCiB7CiAgICAgcmV0dXJu
IERPTVdyYXBwZXJXb3JsZDo6Y3JlYXRlKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKQEAgLTI3
Miw2ICszOTYsNDEgQEAgSlNET01XaW5kb3dTaGVsbCogU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNj
cmlwdChET01XcmFwcGVyV29ybGQmIHdvcmxkKQogICAgIHJldHVybiB3aW5kb3dTaGVsbDsKIH0K
IAorc3RhdGljIElkZW50aWZpZXIganNWYWx1ZVRvTW9kdWxlS2V5KEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0
dXJuIElkZW50aWZpZXI6OmZyb21VaWQoanNDYXN0PFN5bWJvbCo+KHZhbHVlKS0+cHJpdmF0ZU5h
bWUoKSk7CisgICAgQVNTRVJUKHZhbHVlLmlzU3RyaW5nKCkpOworICAgIHJldHVybiBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGpzQ2FzdDxKU1N0cmluZyo+KHZhbHVlKS0+dmFsdWUoZXhl
YykpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmluaXRNb2R1bGVHcmFwaChNb2R1bGVH
cmFwaCYgbW9kdWxlR3JhcGgsIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlLCBET01XcmFwcGVy
V29ybGQmIHdvcmxkKQoreworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hl
bGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFs
RXhlYygpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtF
bGVtZW50UHRyKCkpOworICAgIEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVT
dGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5n
KCksIFt3ZWFrUHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgLy8gTW9kdWxlR3JhcGgs
IHNjcmlwdCBlbGVtZW50IGFuZCBkb2N1bWVudCBtYXkgYmUgZGVzdHJveWVkIGR1cmluZyBsb2Fk
aW5nIHRoZSBtb2R1bGUuCisgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIG5vdCBl
eGVjdXRlIG1vZHVsZSBib2R5LgorICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQg
PSB3ZWFrUHRyLmdldCgpKSB7CisgICAgICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpz
VmFsdWVUb01vZHVsZUtleShleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7CisgICAgICAgICAgICB0
b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5u
b3RpZnlMb2FkZWQobW9kdWxlS2V5LmltcGwoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIFByaXZhdGVO
YW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sID0gbV9tb2R1bGVMb2Fk
ZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICBKU0Z1bmN0aW9uKiByZWplY3RIYW5k
bGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5k
b3coKSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJv
bCwgd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVu
dD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFcnJvcmVkKCk7
CisgICAgICAgIGhhbmRsZU1vZHVsZUxvYWRlckVycm9yKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDAp
LCBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCk7CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBwcm9taXNl
LT50aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCByZWplY3RIYW5kbGVyKTsKK30KKwogVGV4dFBv
c2l0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRTogSWYgd2UgYXJlIG5vdCBjdXJyZW50bHkgcGFyc2luZywgd2Ugc2hvdWxk
IHVzZSBvdXIgY3VycmVudCBsb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDA3YzUzYjdjOGVkZmI0ZTI4ZjVjYTEzYWEyYzRlMDU1
OTRlZjUxMjIuLjkwMWI1M2ViYWY1NGM0NzhmN2Q0MWVmMWRjNTE1MGMxYjA4NWE5NmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTQ0LDYg
KzQ0LDkgQEAgY2xhc3MgU2NyaXB0VmFsdWU7CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNz
IEpTR2xvYmFsT2JqZWN0OworICAgIGNsYXNzIEpTTW9kdWxlUmVjb3JkOworICAgIGNsYXNzIEpT
SW50ZXJuYWxQcm9taXNlOworCiAgICAgY2xhc3MgRXhlY1N0YXRlOwogCiAgICAgbmFtZXNwYWNl
IEJpbmRpbmdzIHsKQEAgLTU3LDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RnJhbWU7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2Ns
YXNzIE1vZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOwogY2xhc3MgV2lkZ2V0OwpAQCAtMTE1LDYgKzExOSwxNyBAQCBjbGFzcyBTY3JpcHRD
b250cm9sbGVyIHsKICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZShjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJik7CiAgICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXZhbHVhdGVJ
bldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmKTsKIAorICAg
IHZvaWQgbG9hZE1vZHVsZUluV29ybGQoTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVs
ZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgbG9hZE1vZHVsZShNb2R1bGVHcmFw
aCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisgICAgdm9pZCBsb2FkTW9kdWxlSW5Xb3Js
ZChNb2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQm
KTsKKyAgICB2b2lkIGxvYWRNb2R1bGUoTW9kdWxlR3JhcGgmLCBjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJik7CisKKyAgICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZUluV29ybGQoTW9kdWxlR3Jh
cGgmICwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGUo
TW9kdWxlR3JhcGgmKTsKKworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGV2YWx1YXRlTW9k
dWxlKGNvbnN0IFVSTCYsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBET01XcmFwcGVyV29ybGQmKTsK
KyAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBK
U0M6OkpTTW9kdWxlUmVjb3JkKik7CisKICAgICBXVEY6OlRleHRQb3NpdGlvbiBldmVudEhhbmRs
ZXJQb3NpdGlvbigpIGNvbnN0OwogCiAgICAgdm9pZCBlbmFibGVFdmFsKCk7CkBAIC0xMzUsNiAr
MTUwLDggQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAKICAgICBjb25zdCBTdHJpbmcqIHNv
dXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9IC8vIDAgaWYgd2UgYXJlIG5v
dCBldmFsdWF0aW5nIGFueSBzY3JpcHQKIAorICAgIGNvbnN0IEpTQzo6UHJpdmF0ZU5hbWUmIG1v
ZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV9t
b2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsgfQorCiAgICAgdm9pZCBjbGVh
cldpbmRvd1NoZWxsKERPTVdpbmRvdyogbmV3RE9NV2luZG93LCBib29sIGdvaW5nSW50b1BhZ2VD
YWNoZSk7CiAgICAgdm9pZCB1cGRhdGVEb2N1bWVudCgpOwogCkBAIC0xNzAsNiArMTg3LDcgQEAg
Y2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQg
SlNET01XaW5kb3dTaGVsbCogaW5pdFNjcmlwdChET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lk
IGluaXRNb2R1bGVHcmFwaChNb2R1bGVHcmFwaCYsIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqLCBE
T01XcmFwcGVyV29ybGQmKTsKIAogICAgIHZvaWQgZGlzY29ubmVjdFBsYXRmb3JtU2NyaXB0T2Jq
ZWN0cygpOwogCkBAIC0xNzgsNiArMTk2LDcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAg
ICAgY29uc3QgU3RyaW5nKiBtX3NvdXJjZVVSTDsKIAogICAgIGJvb2wgbV9wYXVzZWQ7CisgICAg
SlNDOjpQcml2YXRlTmFtZSBtX21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9s
OwogCiAgICAgLy8gVGhlIHJvb3Qgb2JqZWN0IHVzZWQgZm9yIG9iamVjdHMgYm91bmQgb3V0c2lk
ZSB0aGUgY29udGV4dCBvZiBhIHBsdWdpbiwgc3VjaAogICAgIC8vIGFzIE5QQVBJIHBsdWdpbnMu
IFRoZSBwbHVnaW5zIHVzaW5nIHRoZXNlIG9iamVjdHMgcHJldmVudCBhIHBhZ2UgZnJvbSBiZWlu
ZyBjYWNoZWQgc28gdGhleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbElu
T25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggZDkxYjYz
YTYyNGI0ZTAyNmJiMjhlNmU0ZTM1NjY3MTExN2QzYzU4ZS4uNzY5ODJlMGE2ZmI1MzExNzI4ZWU2
ZGNjY2IxNDE0Y2NiMzQ2YTk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC05
OCw2ICs5OCw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuY3BwIgogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0Q2hhbm5lbC5jcHAiCiAjaW5jbHVkZSAiTWljcm9UYXNrLmNwcCIKKyNpbmNsdWRlICJN
b2R1bGVHcmFwaC5jcHAiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5jcHAiCiAjaW5jbHVkZSAiTW91
c2VSZWxhdGVkRXZlbnQuY3BwIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggN2IxMWUzOWExYTNkMGI0YTAzN2RlODM1ZmI5MjFmODFjYzAy
MjdkMS4uYWI2NTViNzlkYjRkN2VhMzc4MDcwNTM4ODliMjdmZmY2NjI5MDY3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0xMDQsNiArMTA0LDcgQEAKICNpbmNsdWRlICJNZWRpYVByb2R1
Y2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5
TWF0Y2hlci5oIgorI2luY2x1ZGUgIk1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIk1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMuaCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKICNpbmNs
dWRlICJOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIgpAQCAtNDY0LDYgKzQ2NSw3IEBAIERvY3Vt
ZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1bnNpZ25lZCBkb2N1
bWVudENsYXNzZXMsIHVuc2lnCiAgICAgLCBtX3N0YXJ0VGltZShzdGQ6OmNocm9ubzo6c3RlYWR5
X2Nsb2NrOjpub3coKSkKICAgICAsIG1fb3Zlck1pbmltdW1MYXlvdXRUaHJlc2hvbGQoZmFsc2Up
CiAgICAgLCBtX3NjcmlwdFJ1bm5lcihzdGQ6Om1ha2VfdW5pcXVlPFNjcmlwdFJ1bm5lcj4oKnRo
aXMpKQorICAgICwgbV9tb2R1bGVMb2FkZXIoc3RkOjptYWtlX3VuaXF1ZTxNb2R1bGVMb2FkZXI+
KCp0aGlzKSkKICAgICAsIG1feG1sVmVyc2lvbihBU0NJSUxpdGVyYWwoIjEuMCIpKQogICAgICwg
bV94bWxTdGFuZGFsb25lKFN0YW5kYWxvbmVVbnNwZWNpZmllZCkKICAgICAsIG1faGFzWE1MRGVj
bGFyYXRpb24oZmFsc2UpCkBAIC02MDUsNiArNjA3LDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgp
CiAgICAgICAgIG1fZG9tV2luZG93LT5yZXNldFVubGVzc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSgp
OwogCiAgICAgbV9zY3JpcHRSdW5uZXIgPSBudWxscHRyOworICAgIG1fbW9kdWxlTG9hZGVyID0g
bnVsbHB0cjsKIAogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggZjkxODA4OWYyM2IyZmIzYTE4ZGZiZDIxZjVmNzAzOTgwNTA3NWJhNy4uOWE3
OGIyMzVhNjU4YjYxYzg4YzFjNjdmNjdjYmVkZTQ0MWI5YTU0NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKQEAgLTEzMCw2ICsxMzAsNyBAQCBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xhc3Mg
TWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3Mg
TWVkaWFRdWVyeU1hdGNoZXI7CitjbGFzcyBNb2R1bGVMb2FkZXI7CiBjbGFzcyBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRGbG93Q29sbGVjdGlvbjsKIGNsYXNzIE5v
ZGVGaWx0ZXI7CkBAIC05MzQsNiArOTM1LDcgQEAgY2xhc3MgRG9jdW1lbnQgOiBwdWJsaWMgQ29u
dGFpbmVyTm9kZSwgcHVibGljIFRyZWVTY29wZSwgcHVibGljIFNjcmlwdEV4ZWN1dGlvbkMKICAg
ICBEb2N1bWVudCYgdG9wRG9jdW1lbnQoKSBjb25zdDsKICAgICAKICAgICBTY3JpcHRSdW5uZXIq
IHNjcmlwdFJ1bm5lcigpIHsgcmV0dXJuIG1fc2NyaXB0UnVubmVyLmdldCgpOyB9CisgICAgTW9k
dWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIoKSB7IHJldHVybiBtX21vZHVsZUxvYWRlci5nZXQoKTsg
fQogCiAgICAgSFRNTFNjcmlwdEVsZW1lbnQqIGN1cnJlbnRTY3JpcHQoKSBjb25zdCB7IHJldHVy
biAhbV9jdXJyZW50U2NyaXB0U3RhY2suaXNFbXB0eSgpID8gbV9jdXJyZW50U2NyaXB0U3RhY2su
bGFzdCgpLmdldCgpIDogMDsgfQogICAgIHZvaWQgcHVzaEN1cnJlbnRTY3JpcHQoUGFzc1JlZlB0
cjxIVE1MU2NyaXB0RWxlbWVudD4pOwpAQCAtMTUxOCw2ICsxNTIwLDcgQEAgY2xhc3MgRG9jdW1l
bnQgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSwgcHVibGljIFRyZWVTY29wZSwgcHVibGljIFNjcmlw
dEV4ZWN1dGlvbkMKICAgICBib29sIG1fb3Zlck1pbmltdW1MYXlvdXRUaHJlc2hvbGQ7CiAgICAg
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdFJ1bm5lcj4gbV9zY3JpcHRSdW5uZXI7CisgICAg
c3RkOjp1bmlxdWVfcHRyPE1vZHVsZUxvYWRlcj4gbV9tb2R1bGVMb2FkZXI7CiAKICAgICBWZWN0
b3I8UmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50Pj4gbV9jdXJyZW50U2NyaXB0U3RhY2s7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVHcmFwaC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW9kdWxlR3JhcGguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0MTdhMmNkNGU4YjFlNDZiMDUw
MjEzYjMwNTk2MTNjNzcyNmFlODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTW9kdWxlR3JhcGguY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKKworI2luY2x1ZGUgIkRPTVdy
YXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIk1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNs
dWRlICJTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCisjaW5jbHVk
ZSAiU2NyaXB0U291cmNlQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vZHVsZUdy
YXBoOjpNb2R1bGVHcmFwaChFbGVtZW50JiBlbGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1l
bnQpCisgICAgLCBtX3dlYWtQdHJGYWN0b3J5KCZlbGVtZW50KQoreworfQorCit2b2lkIE1vZHVs
ZUdyYXBoOjpub3RpZnlMb2FkZWQoVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSkKK3sKKyAg
ICBtX21vZHVsZUtleSA9IG1vZHVsZUtleTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3Jp
cHRSdW5uZXIoKS0+bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSh0b1NjcmlwdEVsZW1lbnRJZlBvc3Np
YmxlKCZtX2VsZW1lbnQpKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6bm90aWZ5RXJyb3JlZCgp
Cit7CisgICAgbV9lcnJvcmVkID0gdHJ1ZTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3Jp
cHRSdW5uZXIoKS0+bm90aWZ5TW9kdWxlR3JhcGhSZWFkeSh0b1NjcmlwdEVsZW1lbnRJZlBvc3Np
YmxlKCZtX2VsZW1lbnQpKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6ZXZhbHVhdGUoKQorewor
ICAgIGlmIChtX2Vycm9yZWQpCisgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1f
ZWxlbWVudCktPmRpc3BhdGNoRXJyb3JFdmVudCgpOworICAgIGVsc2UgaWYgKEZyYW1lKiBmcmFt
ZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAgIGZyYW1lLT5zY3JpcHQo
KS5saW5rQW5kRXZhbHVhdGVNb2R1bGUoKnRoaXMpOworfQorCit2b2lkIE1vZHVsZUdyYXBoOjpu
b3RpZnlFdmFsdWF0ZWQoKQoreworICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1fZWxl
bWVudCktPmRpc3BhdGNoTG9hZEV2ZW50KCk7Cit9CisKK3ZvaWQgTW9kdWxlR3JhcGg6OmxvYWQo
Y29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQuZG9jdW1l
bnQoKS5mcmFtZSgpKTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQo
KS5sb2FkTW9kdWxlKCp0aGlzLCBtb2R1bGVOYW1lKTsKK30KKwordm9pZCBNb2R1bGVHcmFwaDo6
bG9hZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIEFTU0VSVCht
X2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5m
cmFtZSgpLT5zY3JpcHQoKS5sb2FkTW9kdWxlKCp0aGlzLCBzb3VyY2VDb2RlKTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUdyYXBoLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW9kdWxlR3JhcGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTZlODk3Y2JjMDI4MWU1ZWYxNTgx
ODBkY2FlOWJmNjJiNjZhMGU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L01vZHVsZUdyYXBoLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9k
dWxlR3JhcGhfaAorI2RlZmluZSBNb2R1bGVHcmFwaF9oCisKKyNpbmNsdWRlICJNb2R1bGVGZXRj
aGVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRWxlbWVudDsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CisK
Ky8vIEtlZXAgbGlmZXRpbWUgb2YgYSBNb2R1bGVHcmFwaCB0aGUgc2FtZSB0byBhIFNjcmlwdEVs
ZW1lbnQuCitjbGFzcyBNb2R1bGVHcmFwaCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTW9k
dWxlR3JhcGgpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBNb2R1bGVHcmFwaChFbGVtZW50Jik7CisKKyAgICBFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1
cm4gbV9lbGVtZW50OyB9CisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIHsgcmV0
dXJuIG1fbW9kdWxlS2V5LmdldCgpOyB9CisKKyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiBt
b2R1bGVOYW1lKTsKKyAgICB2b2lkIGxvYWQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworICAg
IHZvaWQgZXZhbHVhdGUoKTsKKworICAgIFdlYWtQdHI8RWxlbWVudD4gd2Vha0VsZW1lbnRQdHIo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OworICAgIH0KKworICAgIHZvaWQgbm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1
bGVLZXkpOworICAgIHZvaWQgbm90aWZ5RXJyb3JlZCgpOworCisgICAgdm9pZCBub3RpZnlFdmFs
dWF0ZWQoKTsKKworICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXJy
b3JlZDsgfQorICAgIGJvb2wgaXNMb2FkZWQoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleTsg
fQorCitwcml2YXRlOgorCisgICAgRWxlbWVudCYgbV9lbGVtZW50OworICAgIFJlZlB0cjxVbmlx
dWVkU3RyaW5nSW1wbD4gbV9tb2R1bGVLZXk7CisgICAgV2Vha1B0ckZhY3Rvcnk8RWxlbWVudD4g
bV93ZWFrUHRyRmFjdG9yeTsKKyAgICBib29sIG1fZXJyb3JlZCB7IGZhbHNlIH07Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNb2R1bGVMb2FkZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY2YmJlY2UxZDM1ZTFhNDc2M2JmOWViZWJm
MGYwYzEyY2RiZWYxZDcuLjJlYzZiZGU5ZGIyZjdkNzI2NTAwMzVhOWIxMmRiYzY4NWI2NzM2MmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWdub3JlRGVzdHJ1Y3RpdmVX
cml0ZUNvdW50SW5jcmVtZW50ZXIuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisj
aW5jbHVkZSAiTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU1ZH
TmFtZXMuaCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCkBAIC0xNjEsNiArMTYyLDEw
IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6aXNTY3JpcHRUeXBlU3VwcG9ydGVkKExlZ2FjeVR5cGVT
dXBwb3J0IHN1cHBvcnRMZWdhY3lUeXBlcykKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0gZWxzZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5
cGUodHlwZS5zdHJpcFdoaXRlU3BhY2UoKS5sb3dlcigpKSB8fCAoc3VwcG9ydExlZ2FjeVR5cGVz
ID09IEFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSAmJiBpc0xlZ2FjeVN1cHBvcnRlZEph
dmFTY3JpcHRMYW5ndWFnZSh0eXBlKSkpCiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVOQUJM
RShFUzZfTU9EVUxFUykKKyAgICBlbHNlIGlmICh0eXBlID09ICJtb2R1bGUiKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjE3LDYgKzIy
Miw5IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRp
b24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgZWxzZQogICAgICAgICBtX2NoYXJh
Y3RlckVuY29kaW5nID0gZG9jdW1lbnQuY2hhcnNldCgpOwogCisgICAgaWYgKGlzTW9kdWxlVHlw
ZSgpKQorICAgICAgICByZXR1cm4gbG9hZE1vZHVsZShzY3JpcHRTdGFydFBvc2l0aW9uKTsKKwog
ICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkKICAgICAgICAgaWYgKCFyZXF1ZXN0U2NyaXB0
KHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MzE3LDYgKzMyNSw5IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KCkKICAg
ICAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CiAgICAgICAgIG1f
Y2FjaGVkU2NyaXB0ID0gMDsKICAgICB9CisgICAgLy8gRklYTUU6IFRoZSBtb2R1bGUgbG9hZGVy
IHNob3VsZCBoYXZlIHRoZSBtZWNoYW5pc20gdG8gc3RvcCBsb2FkaW5nLgorICAgIC8vIFRoZSBj
dXJyZW50IGxvYWRlciBzcGVjIGRvZXMgbm90IGhhdmUgdGhpcy4gT25jZSBpdCBpcyBzcGVjaWZp
ZWQKKyAgICAvLyB3ZSB3aWxsIGludHJvZHVjZSB0aGlzIGZlYXR1cmUuCiB9CiAKIHZvaWQgU2Ny
aXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKQEAgLTMzMiw2
ICszNDMsNTcgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2Fj
aGVkU2NyaXB0KQogICAgIGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogfQogCiti
b29sIFNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRT
dGFydFBvc2l0aW9uKQoreworICAgIC8vIFRoZSBicm93c2VyIG1vZHVsZSBsb2FkZXIgbG9hZHMg
dGhlIG1vZHVsZSBzb3VyY2VzLgorICAgIC8vIFNpbmNlIHRoZSBtb2R1bGUgaW52b2x2ZXMgbG9h
ZGluZyBvZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMgYW5kIHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBk
b2VzIG5vdCBoYXZlIGNvcnJlc3BvbmRpbmcgc2NyaXB0IGVsZW1lbnRzLAorICAgIC8vIHRoZSBm
dW5jdGlvbmFsaXR5IG9mIGxvYWRpbmcgbW9kdWxlcyBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUgc2Ny
aXB0IGVsZW1lbnQuCisgICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKSB7CisgICAgICAgIFN0
cmluZyBzb3VyY2VVcmwgPSBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpOworICAgICAgICBSZWY8RG9j
dW1lbnQ+IG9yaWdpbmFsRG9jdW1lbnQobV9lbGVtZW50LmRvY3VtZW50KCkpOworICAgICAgICBp
ZiAoIW1fZWxlbWVudC5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVcmwpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIFNjcmlwdCBlbGVtZW50IG1heSBiZSBk
ZXRhY2hlZCBhbmQgYXR0YWNoZWQgdG8gYSBkaWZmZXJlbnQgZG9jdW1lbnQgd2hpbGUgZXhlY3V0
aW5nIHRoZSBldmVudCBsaXN0ZW5lci4KKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuaW5Eb2N1bWVu
dCgpIHx8ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJsKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGRp
c3BhdGNoRXJyb3JFdmVudCgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisKKyAgICAgICAgLy8gRklYTUU6IFNob3VsZCBzdXBwb3J0IGNyb3NzLW9yaWdpbiBtb2RlIGlu
IHRoZSBtb2R1bGUgdGFnLgorICAgICAgICAvLyBIb3dldmVyIHdlIGRvbid0IGhhdmUgdGhlIHBv
bGljeSB0byBhcHBseSB0aGlzIG1vZGUgdG8gdGhlIHJlc291cmNlcyBvZiB0aGUgZGVwZW5kZW50
IG1vZHVsZXMuCisgICAgICAgIC8vIFByb3ZpZGVkIG11bHRpcGxlIG1vZHVsZSB0YWdzLAorICAg
ICAgICAvLworICAgICAgICAvLyAgIEE6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiIg
Y3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CisgICAgICAgIC8vICAgQjogPHNjcmlw
dCB0eXBlPSJtb2R1bGUiIHNyYz0iLi4uIj48L3NjcmlwdD4KKyAgICAgICAgLy8KKyAgICAgICAg
Ly8gJ0EnIGhhcyB0aGUgImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUuIEJ1dCAnQicgZG9lcyBub3Qg
aGF2ZSBpdC4KKyAgICAgICAgLy8gSG93ZXZlciwgRVM2IG1vZHVsZXMgYWxsb3cgJ0EnIGFuZCAn
QicgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUgYW5kIGl0IHdpbGwgYmUgY2FjaGVkIGluIHRoZQor
ICAgICAgICAvLyBtb2R1bGUgbG9hZGVyLiBJbiB0aGF0IGNhc2UsIGl0IGlzIGNvbnRyb3ZlcnNp
YWwgdGhhdCB3aGljaCAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSB3aWxsIGJlCisgICAgICAgIC8v
IGFwcGxpZWQgdG8gdGhlIG1vZHVsZSBsb2FkZWQgYnkgdGhlIGJvdGguIE9uY2UgdGhlIHNwZWMg
b2YgdGhlIG1vZHVsZSBsb2FkZXIgaXMgZml4ZWQsIHdlCisgICAgICAgIC8vIHNob3VsZCBmb2xs
b3cgaXQuCisKKyAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgbV9t
b2R1bGVHcmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8TW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7Cisg
ICAgICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZU1vZHVsZUdy
YXBoRm9yRXhlY3V0aW9uKHRoaXMsICptX21vZHVsZUdyYXBoKTsKKyAgICAgICAgbV9tb2R1bGVH
cmFwaC0+bG9hZChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgaWYgKCFtX2VsZW1lbnQuZG9jdW1lbnQoKS5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKS0+YWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCksIG1f
c3RhcnRMaW5lTnVtYmVyLCBtX2VsZW1lbnQuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gUmVzZXQgbGluZSBudW1iZXJpbmcgZm9yIG5l
c3RlZCB3cml0ZXMuCisgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gbV9lbGVtZW50LmRvY3Vt
ZW50KCkuaXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlvbigpIDogc2NyaXB0U3RhcnRQ
b3NpdGlvbjsKKyAgICBtX21vZHVsZUdyYXBoID0gc3RkOjptYWtlX3VuaXF1ZTxNb2R1bGVHcmFw
aD4obV9lbGVtZW50KTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+
cXVldWVNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbih0aGlzLCAqbV9tb2R1bGVHcmFwaCk7CisgICAg
bV9tb2R1bGVHcmFwaC0+bG9hZChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgbV9l
bGVtZW50LmRvY3VtZW50KCkudXJsKCksIHBvc2l0aW9uKSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlKQogewogICAgIEFTU0VSVCghbV93aWxsQmVQYXJzZXJFeGVjdXRlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCBiN2U3M2QwZGVlODNkMzI0ZTg3MmY3YmM0YzFiOTMz
ZGM5NmMxMTJhLi42ZTVjMjE0Mjk0ZDgxOTY4Yzg2ZTBkMDdhNjk3MDc0Mzk0YTFjOWIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNz
IEVsZW1lbnQ7CitjbGFzcyBNb2R1bGVHcmFwaDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiBjbGFz
cyBTY3JpcHRTb3VyY2VDb2RlOwogCkBAIC01OSw2ICs2MCw3IEBAIGNsYXNzIFNjcmlwdEVsZW1l
bnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIHJlYWR5VG9CZVBh
cnNlckV4ZWN1dGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZDsg
fQogICAgIGJvb2wgd2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcoKSBjb25z
dCB7IHJldHVybiBtX3dpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nOyB9CiAg
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQoKSB7IHJl
dHVybiBtX2NhY2hlZFNjcmlwdDsgfQorICAgIE1vZHVsZUdyYXBoKiBtb2R1bGVHcmFwaCgpIHsg
cmV0dXJuIG1fbW9kdWxlR3JhcGguZ2V0KCk7IH0KIAogcHJvdGVjdGVkOgogICAgIFNjcmlwdEVs
ZW1lbnQoRWxlbWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyLCBib29sIGlzRXZhbHVhdGVkKTsK
QEAgLTgyLDYgKzg0LDggQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVz
b3VyY2VDbGllbnQgewogICAgIGJvb2wgcmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJj
ZVVybCk7CiAgICAgdm9pZCBzdG9wTG9hZFJlcXVlc3QoKTsKIAorICAgIGJvb2wgbG9hZE1vZHVs
ZShjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworCiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIFN0cmluZyBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKQEAgLTkzLDYg
Kzk3LDcgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGll
bnQgewogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBi
b29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0ID0gMDsKIAogICAgIEVsZW1lbnQmIG1fZWxlbWVudDsK
ICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0OwpA
QCAtMTA5LDYgKzExNCw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJl
c291cmNlQ2xpZW50IHsKICAgICBib29sIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sIDogMTsK
ICAgICBTdHJpbmcgbV9jaGFyYWN0ZXJFbmNvZGluZzsKICAgICBTdHJpbmcgbV9mYWxsYmFja0No
YXJhY3RlckVuY29kaW5nOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVHcmFwaD4gbV9tb2R1
bGVHcmFwaDsKIH07CiAKIFNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUo
RWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcAppbmRleCA5NjM2OTgwNGFk
OGYwNzRiZDczNmFmYmZiNTAyYTQ1ZmM5MTU3NjAxLi5hYjFkODhlYWY3NTc1ZDM0NDZmMzQwYTMx
NWVmYTAxMjM0YTJmNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVu
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKICNpbmNsdWRlICJNaWNyb1Rhc2suaCIKKyNpbmNsdWRlICJNb2R1bGVHcmFwaC5oIgogI2lu
Y2x1ZGUgIlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKQEAg
LTQ4LDYgKzQ5LDEwIEBAIFNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcigpCiAgICAgICAgIG1f
ZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX3BlbmRpbmdBc3luY1NjcmlwdHMuc2l6ZSgpOyArK2kpCiAgICAgICAg
IG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uc2l6ZSgp
OyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgp
OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVt
ZW50cy5zaXplKCk7ICsraSkKKyAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnRE
ZWxheUNvdW50KCk7CiB9CiAKIHZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1
dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQpA
QCAtNzEsNiArNzYsMTggQEAgdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0
aW9uKFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFIKICAgICB9CiB9CiAKK3Zv
aWQgU2NyaXB0UnVubmVyOjpxdWV1ZU1vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1l
bnQqIHNjcmlwdEVsZW1lbnQsIE1vZHVsZUdyYXBoJikKK3sKKyAgICBBU1NFUlQoc2NyaXB0RWxl
bWVudCk7CisKKyAgICBFbGVtZW50JiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgp
OworICAgIEFTU0VSVChlbGVtZW50LmluRG9jdW1lbnQoKSk7CisKKyAgICBtX2RvY3VtZW50Lmlu
Y3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKworICAgIG1fcGVuZGluZ01vZHVsZVNjcmlw
dEVsZW1lbnRzLmFkZCgmZWxlbWVudCk7Cit9CisKIHZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5k
KCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKQEAgLTk3LDYgKzExNCwyNiBAQCB2b2lkIFNjcmlw
dFJ1bm5lcjo6bm90aWZ5U2NyaXB0UmVhZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwg
RXhlY3V0aW9uVHlwZQogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIFNj
cmlwdFJ1bm5lcjo6bm90aWZ5TW9kdWxlR3JhcGhSZWFkeShTY3JpcHRFbGVtZW50KiBzY3JpcHRF
bGVtZW50KQoreworICAgIEFTU0VSVF9VTlVTRUQoc2NyaXB0RWxlbWVudCwgbV9wZW5kaW5nTW9k
dWxlU2NyaXB0RWxlbWVudHMuY29udGFpbnMoJnNjcmlwdEVsZW1lbnQtPmVsZW1lbnQoKSkpOwor
CisgICAgLy8gTGlzdEhhc2hTZXQgY29ycmVjdGx5IHByZXNlcnZlcyB0aGUgaW5zZXJ0aW9uIG9y
ZGVyLgorICAgIC8vIEFuZCBpdCBhbGxvdyB1cyB0byByZW1vdmUgZWxlbWVudCBkdXJpbmcgaXRl
cmF0aW9uLgorICAgIGF1dG8gaXRlcmF0b3IgPSBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50
cy5iZWdpbigpOworICAgIHdoaWxlIChpdGVyYXRvciAhPSBtX3BlbmRpbmdNb2R1bGVTY3JpcHRF
bGVtZW50cy5lbmQoKSkgeworICAgICAgICBNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGggPSB0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKGl0ZXJhdG9yLT5nZXQoKSktPm1vZHVsZUdyYXBoKCk7Cisg
ICAgICAgIGlmICghbW9kdWxlR3JhcGgtPmVycm9yT2NjdXJyZWQoKSAmJiAhbW9kdWxlR3JhcGgt
PmlzTG9hZGVkKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgYXV0byBwcmV2aW91cyA9
IGl0ZXJhdG9yOworICAgICAgICArK2l0ZXJhdG9yOworICAgICAgICBtX21vZHVsZVNjcmlwdEVs
ZW1lbnRzVG9FeGVjdXRlU29vbi5hcHBlbmQoKnByZXZpb3VzKTsKKyAgICAgICAgbV9wZW5kaW5n
TW9kdWxlU2NyaXB0RWxlbWVudHMucmVtb3ZlKHByZXZpb3VzKTsKKyAgICB9CisgICAgaWYgKCFt
X21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkpCisgICAgICAgIG1f
dGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCiB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJl
ZCgpCiB7CiAgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwpAQCAtMTIxLDYg
KzE1OCwyMSBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCgpCiAgICAgICAgIHRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPmV4ZWN1dGUoY2FjaGVkU2NyaXB0
KTsKICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAg
ICAgfQorCisgICAgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4gbW9kdWxlU2NyaXB0RWxlbWVudHM7
CisgICAgbW9kdWxlU2NyaXB0RWxlbWVudHMuc3dhcChtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9F
eGVjdXRlU29vbik7CisKKyAgICBmb3IgKFJlZlB0cjxFbGVtZW50PiYgcGVuZGluZ01vZHVsZVNj
cmlwdEVsZW1lbnQgOiBtb2R1bGVTY3JpcHRFbGVtZW50cykgeworICAgICAgICBSZWZQdHI8RWxl
bWVudD4gZWxlbWVudDsKKyAgICAgICAgcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnQuc3dhcChl
bGVtZW50KTsKKyAgICAgICAgQVNTRVJUKGVsZW1lbnQpOworICAgICAgICAvLyBQYXBlciBvdmVy
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKKyAgICAgICAg
aWYgKCFlbGVtZW50KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPmV2YWx1YXRlKCk7
CisgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAg
IH0KKwogICAgIE1pY3JvVGFza1F1ZXVlOjpzaW5nbGV0b24oKS5ydW5NaWNyb1Rhc2tzKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAppbmRleCAyN2NkYmY4YjNhZjU2OTQ2MmU1Yjlh
ZWIxNmNkNzY1MDUwODkxZTBkLi4xMjIxNDg1ZTBlNTdkZmE2M2U0NDRmNDgyOWFhYzcwNGUxYTE1
OWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0zNyw2ICszOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50Owor
Y2xhc3MgTW9kdWxlR3JhcGg7CiBjbGFzcyBQZW5kaW5nU2NyaXB0OwogY2xhc3MgU2NyaXB0RWxl
bWVudDsKIApAQCAtNDgsMTEgKzUxLDE0IEBAIGNsYXNzIFNjcmlwdFJ1bm5lciB7CiAKICAgICBl
bnVtIEV4ZWN1dGlvblR5cGUgeyBBU1lOQ19FWEVDVVRJT04sIElOX09SREVSX0VYRUNVVElPTiB9
OwogICAgIHZvaWQgcXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCosIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4sIEV4ZWN1dGlvblR5cGUpOwotICAgIGJvb2wg
aGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29v
bi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFt
X3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0eSgpOyB9CisgICAgdm9pZCBxdWV1ZU1vZHVsZUdy
YXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBNb2R1bGVHcmFwaCYpOworICAgIGJvb2wg
aGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29v
bi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFt
X3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0eSgpIHx8ICFtX21vZHVsZVNjcmlwdEVsZW1lbnRz
VG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRz
LmlzRW1wdHkoKTsgfQogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAg
ICAgdm9pZCBub3RpZnlTY3JpcHRSZWFkeShTY3JpcHRFbGVtZW50KiwgRXhlY3V0aW9uVHlwZSk7
CiAKKyAgICB2b2lkIG5vdGlmeU1vZHVsZUdyYXBoUmVhZHkoU2NyaXB0RWxlbWVudCopOworCiBw
cml2YXRlOgogICAgIHZvaWQgdGltZXJGaXJlZCgpOwogCkBAIC02MCw2ICs2Niw4IEBAIGNsYXNz
IFNjcmlwdFJ1bm5lciB7CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhl
Y3V0ZUluT3JkZXI7CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0
ZVNvb247IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvI3NldC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLWFzLXNvb24tYXMtcG9zc2libGUK
ICAgICBIYXNoTWFwPFNjcmlwdEVsZW1lbnQqLCBQZW5kaW5nU2NyaXB0PiBtX3BlbmRpbmdBc3lu
Y1NjcmlwdHM7CisgICAgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4gbV9tb2R1bGVTY3JpcHRFbGVt
ZW50c1RvRXhlY3V0ZVNvb247CisgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEVsZW1lbnQ+PiBtX3Bl
bmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50czsKICAgICBUaW1lciBtX3RpbWVyOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCBlMTNhNWNkZGNjYTJj
YjNiNzU2YThkM2E1N2UyM2Y4MGE5YjQzZTQ4Li5kMTVlYjcxYmUzZjZiY2ZiMTA3ODJmOTc0ODc1
YjQwMGJjMGQ3MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNw
cApAQCAtMTYxLDYgKzE2MSwxNSBAQCBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VB
dHRyaWJ1dGUoKSBjb25zdAogICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKHNyY0F0dHIpOwog
fQogCitib29sIEhUTUxTY3JpcHRFbGVtZW50Ojppc01vZHVsZVR5cGUoKSBjb25zdAoreworI2lm
IEVOQUJMRShFUzZfTU9EVUxFUykKKyAgICByZXR1cm4gZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0
cikuc3RyaW5nKCkgPT0gIm1vZHVsZSI7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorfQorCiB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpkaXNwYXRjaExvYWRFdmVudCgpCiB7CiAg
ICAgQVNTRVJUKCFoYXZlRmlyZWRMb2FkRXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmgKaW5kZXggMzEyYzY2MjZlOGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZl
MzdiMi4uMWRmZDhjOGI3M2U4NzJhYmNkNWViNGIzNDJlNzkyZDMzNTAzZTc5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBI
VE1MU2NyaXB0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIFNjcmlw
dEVsZW1lbnQgewogICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU291cmNlQXR0cmlidXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTW9kdWxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA4YWRmY2ZhNDEwYWJlNDdlMzMy
NGFlNWI4ZDkyNDNmNTY2NjQ1ZDk1Li5iYTVmMDZmNDRiNmIxMTdmY2JiNjIzMzUzOGUyZTE0Y2Q3
ZjhlNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNTEs
NiArMTUxLDExIEBAIGJvb2wgU1ZHU2NyaXB0RWxlbWVudDo6ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFNWR1NjcmlwdEVsZW1lbnQ6Omlz
TW9kdWxlVHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFNWR1Nj
cmlwdEVsZW1lbnQ6Omhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhh
c0F0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuaAppbmRleCA1MzVlNDJlNmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAx
Li44YWZkZTMxMTI1ZTVkZDQ5OGRiODJhNGUwOTgzYWIwNzRlMGRjYzY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgU1ZHU2NyaXB0
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50CiAgICAgdmlydHVhbCBib29sIGFzeW5j
QXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVmZXJB
dHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTb3Vy
Y2VBdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1bGVU
eXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZl
bnQoKSBvdmVycmlkZSB7IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9h
ZEV2ZW50KHRoaXMpOyB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZTRiZGJjNjViZmIwMTg5NzRjN2Q1NzM2NGI4YmI4
ZTgzZDNlM2NlLi41YjdlYzk4ZDFkOGFkZWZlOGExMjliNjk4ZjYzMDkwYWIwZDBkZmI2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNzEgQEAKKzIwMTUtMDktMjUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGludG8g
V2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgdGVzdHMgZm9yIG1vZHVsZXMuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQt
bW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLWlubGluZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtaW5saW5lLWR5bmFtaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2Rv
bS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbDogQWRkZWQuCisgICAgICAgICog
anMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWlj
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLXNhbWUt
bW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbDogQWRkZWQuCisg
ICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVu
dHJ5LXBvaW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1s
b2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2Rv
bS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0
aC1zcmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLXNyYy1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLXNyYy1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS13aWxs
LWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9k
dWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUt
ZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
bWl4ZWQtMi5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanM6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qczog
QWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLW1hdGNoYS5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qczogQWRkZWQuCisgICAgICAg
IChleHBvcnQuZGVmYXVsdC5Db2NvYS5wcm90b3R5cGUudGFzdGUpOgorICAgICAgICAoZXhwb3J0
LmRlZmF1bHQuQ29jb2EpOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlu
bGluZS1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJv
dG90eXBlLnRhc3RlKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAg
KiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxl
LWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWlt
cG9ydC5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3Jj
LWR5bmFtaWMtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAoQ29jb2EucHJvdG90eXBlLnRhc3Rl
KToKKyAgICAgICAgKENvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1zcmMtZHluYW1pYy5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qczogQWRkZWQuCisgICAgICAgIChDb2NvYS5wcm90b3R5
cGUudGFzdGUpOgorICAgICAgICAoQ29jb2EpOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzOiBBZGRlZC4KKwogMjAxNS0wOS0y
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGwgb3V0IHIxOTAwODUgYXMgaXQgc2VlbXMgdG8gY2F1c2UgY3Jhc2hlcyBpbiBKU0MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDQzNmU2YzM1Yzc5YzZhNGFhNjcxODU5Mjc4NTU1MzliN2M1Y2U4
MDguLjQ1ZjA3N2ZjZjNhOGFkZGFjYTdjMTBlNTFiM2RiNGZiYjZkMjUwZTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNjc4LDMgKzY3OCwyMSBAQCB3ZWJraXQub3JnL2IvMTQ4Njk1IGZhc3Qvc2hh
ZG93LWRvbSBbIEZhaWx1cmUgSW1hZ2VPbmx5RmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3RpbWVvdXQveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXMuaHRtbCBbIEZh
aWx1cmUgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xNDkyMTggaHR0cC90ZXN0cy9ub3RpZmljYXRp
b25zL2V2ZW50cy5odG1sIFsgUGFzcyBDcmFzaCBUaW1lb3V0IF0KKworIyBFUzYgTW9kdWxlcyBh
cmUgbm90IHlldCBlbmFibGVkIGJ5IGRlZmF1bHQ6IEVOQUJMRShFUzZfTU9EVUxFUykKK2pzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1i
ZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1leGVj
dXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIFsgU2tpcCBd
Citqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbCBbIFNraXAgXQoranMv
ZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbCBbIFNraXAgXQoranMvZG9tL21v
ZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWlubGluZS1z
aW1wbGUuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0
bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sIFsgU2tpcCBdCitqcy9k
b20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHlu
YW1pYy5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbCBbIFNraXAgXQoranMvZG9tL21vZHVsZS1ub3QtZm91
bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sIFsgU2tpcCBdCitqcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1sIFsgU2tpcCBdCitqcy9k
b20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sIFsgU2tpcCBdCitqcy9kb20vbW9k
dWxlLXNyYy1keW5hbWljLmh0bWwgWyBTa2lwIF0KK2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5o
dG1sIFsgU2tpcCBdCitqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVy
cm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJy
b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJy
b3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJv
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJkYjI3NWEyZmI4MzQ4OTY0ZmJlOGRlYjgyNTUz
YjRiOWRiOWE1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qgd2luZG93
Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBkZXBlbmRlbnQgbW9kdWxlIHRocm93IGFu
IGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgdGhlIGRlcGVuZGVudCBtb2R1bGUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1v
ZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91
bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTc3YjVkZDc2NGRi
ZTI0MzQyM2QxYzM4ZTM3NGNjMGZkZGMyNDM3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxl
LXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApAQCAtMCwwICsxLDIyIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB3aW5kb3cu
b25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGRlcGVuZGVudCBtb2R1bGUgdGhyb3cgYW4g
ZXJyb3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgInNjcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMiCit0ZXN0RmFpbGVkKCJleGVjdXRlZCIp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVy
cm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVy
cm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE1ZGY3MDI4ZjM1NDkzNjY5MjkyMmVmZTYxYTJkZmJhNWYxZjA5MzUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQt
YmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitU
ZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgaW5saW5lZCBtb2R1bGUg
dGhyb3dzIGFuIGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgdGhlIG1vZHVsZS4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRl
ZC10by1vbmVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1l
cnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ0
NjJmMzdlZDgxNzMwNjFmN2Y5OTUzNmM0MmQyOTk1YzI1MjcyOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9w
YWdhdGVkLXRvLW9uZXJyb3IuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJl
IGZpcmVkIHdoZW4gdGhlIGlubGluZWQgbW9kdWxlIHRocm93cyBhbiBlcnJvci4nKTsKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOword2luZG93
Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4n
KTsKK3Rocm93IG5ldyBFcnJvcigibW9kdWxlIGlzIGV4ZWN1dGVkLiIpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmZk
ZjMzOTc1N2E0YTM3OTY0ZTg4OWFlYzY5YWZjYzU5OWFiNzhmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2Vl
biBpbmxpbmVkIG1vZHVsZSB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIGNvdW50KysgaXMgMAorUEFTUyBjb3Vu
dCsrIGlzIDEKK1BBU1MgY291bnQrKyBpcyAyCitQQVNTIGNvdW50KysgaXMgMworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sIGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTUyNWU3NjkwOGNmYjZmZWEwMTA3ZjRkYWFkZDFkMjkzMWJmM2NlNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGlu
ZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBpbmxpbmVk
IG1vZHVsZSB0YWdzLicpOword2luZG93LmNvdW50ID0gMDsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4
ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVi
dWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworc2hvdWxkQmUoImNvdW50KysiLCAi
MCIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQr
KyIsICIxIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJj
b3VudCsrIiwgIjIiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxk
QmUoImNvdW50KysiLCAiMyIpOworZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzdmNTI0ZjUzMTkw
NWQ4YTUzZjQ0YTMzYWI2ZmZiNDAwMTIxMDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTggQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIG1peGVkIHRh
Z3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitXZSBrZWVwIHRoZSBleGVjdXRp
b24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLgorTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQ
QVNTIGNvdW50KysgaXMgMAorUEFTUyBjb3VudCsrIGlzIDEKK1BBU1MgY291bnQrKyBpcyAyCitQ
QVNTIGNvdW50KysgaXMgMworUEFTUyBjb3VudCsrIGlzIDQKK1BBU1MgY291bnQrKyBpcyA1CitQ
QVNTIGNvdW50KysgaXMgNgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLW1peGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxOTFkMzAzZWRkNzU3NzM4MTI4ZGQ5ZDE1
YmI0MGM3ZTc2YzJjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRp
b24gb3JkZXIgYmV0d2VlbiBtaXhlZCB0YWdzLicpOworZGVidWcoJ1dlIGtlZXAgdGhlIGV4ZWN1
dGlvbiBvcmRlciBiZXR3ZWVuIG1vZHVsZXMuJyk7Cit3aW5kb3cuY291bnQgPSAwOworCisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgor
c2hvdWxkQmUoImNvdW50KysiLCAiNCIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVs
ZSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjYi
KTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZjOTM5YWFmMGE1MDE1ZjQ3OTM4NmNkMzE5NWFhNTlkZDE2OTA5NzUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWlj
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IGlubGluZWQgbW9kdWxlLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
CitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQu
CitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRD
b2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkgaXMgImF3ZXNvbWUi
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE4YzBlMjU5YWIyOTFlZmZjNGJlZTc4YWU2NWMzNDE3YzExZDA1ZWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
J1Rlc3QgaW5saW5lZCBtb2R1bGUuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFz
eW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworKGZ1bmN0aW9u
ICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIp
OworICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSBgCisgICAgICAgIGltcG9ydCBDb2NvYSBmcm9t
ICIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMiOworICAgICAgICB2YXIg
Y29jb2EgPSBuZXcgQ29jb2EoKTsKKworICAgICAgICBkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBp
cyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKworICAgICAgICB3
aW5kb3cuZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJhd2Vzb21lIik7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIGA7CisgICAgZWxlbWVudC50eXBlID0gIm1vZHVsZSI7Cisg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK30gKCkpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1p
bmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzkzOWFhZjBhNTAxNWY0Nzkz
ODZjZDMxOTVhYTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0IGlubGluZWQgbW9kdWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGlu
IHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVk
IgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENv
Y29hLnRhc3RlKCkgaXMgImF3ZXNvbWUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1pbmxpbmUtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1z
aW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGJjZjA2MGQxYmQ2OTQ1YjA4OTE2ZWJhMTUyOWE1NThm
ZTZiMmQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxp
bmUtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgaW5saW5lZCBtb2R1bGUuJyk7CisKKy8vIE1vZHVs
ZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0
ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgQ29j
b2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMiOwordmFyIGNv
Y29hID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVk
IGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5
cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2Nv
YTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJhd2Vz
b21lIik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTg2MjY2ODAyZGE1N2M3NThjZTNlNGEyZjMxZDc4OTBkMGU1YjdkNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdl
ZW4gdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGFuIGlubGluZWQgbW9kdWxlLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU4YTJmOWI5OTYxNmZmNDcwYWVlMmE0NWU3MmJiZGE2ZWZhY2Q0MDkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0
aC1zcmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qgc2NyaXB0Lm9ubG9hZCB3
aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0aCBzcmMgbG9hZHMgYW5kIGV4ZWN1
dGVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVj
dXRlZCB5ZXQuCitFeGVjdXRpbmcgYSBtb2R1bGUgd2l0aCBzcmMgYXR0cmlidXRlLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sIGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDk0YTRhMzA3MGE5NmU2ZGFjYmQ4Yjc0NmE3N2MwNTdhNDJjNTZhNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1s
CkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUZXN0IHNjcmlwdC5vbmxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUg
dGFnIHdpdGggc3JjIGxvYWRzIGFuZCBleGVjdXRlcy4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4
ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVi
dWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3QoKSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9k
dWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmI4
YzgwOWYyZDQ1Y2QzZjMxNzg5YWZlMmRmN2IzMGRjZTFmNDVkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwKQEAgLTAsMCArMSwxOCBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9k
dWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBl
eGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2Rl
YnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0KCkiPgorZGVidWcoJ0V4ZWN1dGluZyBh
biBpbmxpbmVkIG1vZHVsZS4nKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlm
ZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5
bmFtaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxYWI0OWQxNDk3NjI0ZGYyMmUwMzQ3OTdi
MzlhYThlYzg2OTRlY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxs
IGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUgZnJvbSBhIGR5bmFtaWNhbGx5IGdlbmVy
YXRlZCB0YWcKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0N1cnJlbnRseSwgdGhp
cyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQg
aW4gdGhlIGZ1dHVyZS4KK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIG1v
ZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzLgorRXhl
Y3V0aW5nIHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbCBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVkNTFlMmI2Y2VhODYxN2JhY2Yw
YzQwZTMzN2U5MDlhMWQzMWEzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5h
bWljLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxv
YWQgdGhlIHNhbWUgbW9kdWxlIGZyb20gYSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgdGFnJyk7Citk
ZWJ1ZygnQ3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlz
c3VlIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLicpOworLy8gTW9kdWxlIHdpbGwgYmUg
ZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Citk
ZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0ibW9kdWxlIj4KK2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9k
dWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUg
bW9kdWxlLicpOwordmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQi
KTsKK2VsZW1lbnQudHlwZSA9ICJtb2R1bGUiOworZWxlbWVudC5pbm5lclRleHQgPSAic2NyaXB0
LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50
LmpzIjsKK2VsZW1lbnQub25lcnJvciA9IGZpbmlzaEpTVGVzdCgpOworZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChlbGVtZW50KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlm
ZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjBmOThmY2NiNmZhZmEwNjQ0N2UzMDMyZWYwNmQ5ODIwMjdmMjUxZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NCBAQAorMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUgc2Ft
ZSBtb2R1bGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0N1cnJlbnRseSwgdGhp
cyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQg
aW4gdGhlIGZ1dHVyZS4KK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIG1v
ZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzLgorRXhl
Y3V0aW5nIHRoZSBtb2R1bGUuCitFeGVjdXRpbmcgdGhlIG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnkt
cG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1m
cm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwNmQ0ZTBiNjNjZGMw
MTI3NDEzM2JlZmQ5Mzg0NDI1NTU1OGIxODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9p
bnQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxsIGF0dGVtcHQgdG8gbG9h
ZCB0aGUgc2FtZSBtb2R1bGUnKTsKK2RlYnVnKCdDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmlu
ZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUu
Jyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1wb3J0ICJzY3JpcHQtdGVz
dHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMi
CitkZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgpIj4KK2ltcG9ydCAic2NyaXB0LXRlc3Rz
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIgor
ZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJv
ci1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM4YmEzYzJlNzk5NzdlMmM5
Zjc5MzQ4MDk3MzZmZDk4MzdkNzJmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQg
c3RyaW5nIGxpdGVyYWwgIm5vdC1mb3VuZC5qcyIuIEV4cGVjdGVkICdmcm9tJyBiZWZvcmUgaW1w
b3J0ZWQgbW9kdWxlIG5hbWUuCitUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hl
biB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhl
IGlubGluZWQgbW9kdWxlIGlzIG5vdCBmb3VuZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZl
bnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ4Nzg3NTAx
YTEyOTI3NjgxMDkxODc5MDdhZmM0N2RmYjZkMjg5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1p
bXBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Ig
d2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhlIGltcG9ydCBk
ZWNsYXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVsZSBpcyBub3QgZm91bmQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRo
LXNyYy1hbmQtaW1wb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVmMzk4
Njg1YWUwNWExMWNlOGExZTBiMjIwOThlOTg1MzFkNjI5MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFu
ZC1pbXBvcnQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdo
ZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUgaW1wb3J0IGRlY2xhcmF0aW9uIGluIHRo
ZSBkZXBlbmRlbnQgbW9kdWxlIGlzIG5vdCBmb3VuZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4
ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVi
dWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworZnVuY3Rpb24gb25FcnJvcigpCit7
CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKQorfQor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxl
LW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LmpzIiBvbmVycm9yPSJv
bkVycm9yKCkiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MGQxNWRmZTZkMDliZmM2Yjg1ODNh
NDhkZWM2ZGNiMWI1YjE0MTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorVGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJl
c291cmNlIHNwZWNpZmllZCBieSAic3JjIiBpcyBub3QgZm91bmQuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1s
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1z
cmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNmE0N2Y2MTA2OWFmZWNiY2IzOGIwYTk1NzU2MjVjZTgyZGY0
ODE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91
bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25lcnJvciB3
aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSAic3JjIiBpcyBub3Qg
Zm91bmQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJt
b2R1bGUiIHNyYz0ibm90LWZvdW5kLmpzIiBvbmVycm9yPSJvbkVycm9yKCkiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90
LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNiNTk0YzY0NjgzOGU0YzM1ZTM3
NTYxZjZkY2UzZDgzNzcwYjc3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0Lm9u
ZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhlIGlt
cG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgaW5saW5lZCBtb2R1bGUgaXMgbm90IGZvdW5kLicpOwor
Ly8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Citm
dW5jdGlvbiBvbkVycm9yKCkKK3sKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAg
IGZpbmlzaEpTVGVzdCgpCit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmVy
cm9yPSJvbkVycm9yKCkiPgoraW1wb3J0IGZyb20gIm5vdC1mb3VuZC5qcyI7Cit0ZXN0RmFpbGVk
KCdleGVjdXRlZCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNkOGIwMDYyNDkwZWM3MjI5NWNmZjUwNjFhMDgzOWU0MDAyMGNkOGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSB3aXRoICJzcmMiIGF0dHJpYnV0ZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Lgor
TW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50Lgor
UEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29j
b2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJuaWNlIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODRmZjQyNjRm
OTgxZmU5NjQ5ZWQzYTcyMWIxY2ZhNGZhNWU5MWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSB3
aXRoICJzcmMiIGF0dHJpYnV0ZS4nKTsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5
bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CisoZnVuY3Rpb24g
KCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7
CisgICAgZWxlbWVudC50eXBlID0gJ21vZHVsZSc7CisgICAgZWxlbWVudC5zcmMgPSAnLi9zY3Jp
cHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzJzsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVsZW1lbnQpOworfSgpKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2Q4YjAwNjI0OTBlYzcyMjk1Y2ZmNTA2MWEwODM5ZTQwMDIwY2Q4YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9u
bWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQQVNTIHR5cGVvZiBleHBv
cnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2EudGFzdGUoKSBpcyAibmlj
ZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbCBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNzNi
MGM1NGEyNWE0Zjc2YzE0YTNiNWRjMzE3M2ZlODkzY2IzY2QKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDE5IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1
bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVk
IGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3Jj
LXNpbXBsZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNhOGQ5NzA4ZGIzZTA1YzRiMDEwM2JlN2RjZWIwYzAwNzExNzVjNzUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1i
ZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHNjcmlwdC5iZWZv
cmVsb2FkIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBpcyBwcmVw
YXJlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJl
Zm9yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9y
ZWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmJmZjE2NTNkMDZjMDZlMWQ3NDE3OWQwMTEwMDM2ZTE0
OWQ4NjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxs
LWZpcmUtYmVmb3JlbG9hZC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5iZWZvcmVsb2FkIHdpbGwg
YmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBpcyBwcmVwYXJlZC4nKTsKKy8v
IE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25iZWZvcmVsb2FkPSJmaW5pc2hKU1Rlc3Qo
KSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVs
ZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRl
bnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzZjMTVhZjIxNDJiNDgwMjYwMmVhZDAzNzAwZjhiYmUwMWJjMmJlYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1v
bmVycm9yLXRocm93LmpzCkBAIC0wLDAgKzEsMiBAQAorZGVidWcoIkV4ZWN1dGluZyB0aGUgZGVw
ZW5kZW50IG1vZHVsZSIpOwordGhyb3cgbmV3IEVycm9yKCJvdXQiKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNp
ZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWlu
c2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDZjN2NhNDc5YjI1ODg5YjAwY2EyNGNkNWJiZTMzMWRhYTY1ZjcxOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRl
ZC10by1vbmVycm9yLmpzCkBAIC0wLDAgKzEsMiBAQAoraW1wb3J0ICJtb2R1bGUtZXhlY3V0aW9u
LWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9u
ZXJyb3ItdGhyb3cuanMiCit0ZXN0RmFpbGVkKCJleGVjdXRlZCIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
LTIuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24t
b3JkZXItbWl4ZWQtMi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzNiOWQzNTJhZWM1N2IwNjFkZGJlMDBiN2Nm
OTRlYTU3NGFlYzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMKQEAgLTAsMCArMSBAQAor
c2hvdWxkQmUoImNvdW50KysiLCAiNSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
bWl4ZWQtY2FwcHVjY2luby5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzE0NmZkNzY2ZTU1YTAyYWU3OGJhZjlk
ZDYzMzk4ZWI4NWE4OTBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMKQEAg
LTAsMCArMSwzIEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hh
LmpzIgorCitzaG91bGRCZSgiY291bnQrKyIsICIyIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2Eu
anMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItbWl4ZWQtY29jb2EuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU4ZDczMjQzZmVmMzBhMGI0OTQ5ZGJhN2Zi
Zjg1MzRlZWJhOWY3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcwpAQCAtMCwwICsx
LDMgQEAKK2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMiOwor
CitzaG91bGRCZSgiY291bnQrKyIsICIxIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1p
eGVkLW1hdGNoYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmUxNWQ3Y2YwY2ZmNGVhYTFhMGI1YTFlZTgzZGNj
ZTMyNGEyNWU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcwpAQCAtMCwwICsxIEBA
CitzaG91bGRCZSgiY291bnQrKyIsICIwIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDQzODZmYmI4NjgxY2JmN2U1OWM0NzM3NjM3ZTg3YmUzOGNmZjc0NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1taXhlZC5qcwpAQCAtMCwwICsxLDQgQEAKK2ltcG9ydCAiLi9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzIgoraW1wb3J0ICIuL21vZHVsZS1leGVjdXRp
b24tb3JkZXItbWl4ZWQtY2FwcHVjY2luby5qcyIKKworc2hvdWxkQmUoImNvdW50KysiLCAiMyIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5s
aW5lLWR5bmFtaWMuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1p
bmxpbmUtZHluYW1pYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDM2MGE3YmZlN2UwNWEwY2IyNTM4NDEzNjdl
NzFkYzFlOTNiNWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMKQEAgLTAsMCArMSw1IEBACitleHBvcnQg
ZGVmYXVsdCBjbGFzcyBDb2NvYSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVybiAiYXdl
c29tZSI7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MzYwYTdiZmU3ZTA1
YTBjYjI1Mzg0MTM2N2U3MWRjMWU5M2I1YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzCkBAIC0wLDAgKzEs
NSBAQAorZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29jb2EgeworICAgIHRhc3RlKCkgeworICAgICAg
ICByZXR1cm4gImF3ZXNvbWUiOworICAgIH0KK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzIGIvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYjg3MDI5MGQzZWM3ZTA4MGMwNWY5ZjY2Njg0NGNkMDY3NTI5ZmRkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9h
ZC1ldmVudC13aXRoLXNyYy5qcwpAQCAtMCwwICsxIEBACitkZWJ1ZygnRXhlY3V0aW5nIGEgbW9k
dWxlIHdpdGggc3JjIGF0dHJpYnV0ZS4nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1
YWQ3N2Y4MDA4MDQzODFiZjRmMWVhZGI1MTdmNTYwZjBjNGViNjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxl
LWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzCkBAIC0wLDAgKzEgQEAKK2RlYnVnKCdFeGVj
dXRpbmcgbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQu
anMuJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qcyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRo
LXNyYy1hbmQtaW1wb3J0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjMWI0NzE0ODEzOGEwZWM0NTIyYzIyNzIz
M2EzYzc0MTMzNzEyOTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9y
dC5qcwpAQCAtMCwwICsxIEBACitpbXBvcnQgIm5vdC1mb3VuZC5qcyIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpz
IGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29j
b2EuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDc5NTkyZGM1MTNjZjI1OTg0MWZmOWQ0NjM5MDQ1MTJiMGVjYjc0
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLXNyYy1keW5hbWljLWNvY29hLmpzCkBAIC0wLDAgKzEsNyBAQAorY2xhc3MgQ29jb2Egewor
ICAgIHRhc3RlKCkgeworICAgICAgICByZXR1cm4gIm5pY2UiOworICAgIH0KK30KKworZXhwb3J0
IGRlZmF1bHQgQ29jb2E7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1keW5hbWljLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1MWE3YmU2YjRmMTI5M2FmNTk2
ODZmZTNlNTc4MDFkMmUwOTZjMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcwpAQCAtMCwwICsxLDEwIEBACitp
bXBvcnQgQ29jb2EgZnJvbSAiLi9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanMiOwordmFyIGNv
Y29hID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVk
IGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5
cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2Nv
YTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJuaWNl
Iik7CitmaW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3OTU5
MmRjNTEzY2YyNTk4NDFmZjlkNDYzOTA0NTEyYjBlY2I3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpz
CkBAIC0wLDAgKzEsNyBAQAorY2xhc3MgQ29jb2EgeworICAgIHRhc3RlKCkgeworICAgICAgICBy
ZXR1cm4gIm5pY2UiOworICAgIH0KK30KKworZXhwb3J0IGRlZmF1bHQgQ29jb2E7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpz
IGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZDljNzc0ZmQ5ZTdhNWM5ZDE4NTkyNDA0NGU3YTI3OGFkNzMzNzI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3Jj
LXNpbXBsZS5qcwpAQCAtMCwwICsxLDEwIEBACitpbXBvcnQgQ29jb2EgZnJvbSAiLi9tb2R1bGUt
c3JjLXNpbXBsZS1jb2NvYS5qcyI7Cit2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworZGVidWco
Ik1vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4i
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5lZCIpOwor
Cit3aW5kb3cuZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0
eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmplY3QiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
ZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIiwgIm5pY2UiKTsKK2ZpbmlzaEpTVGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJl
Zm9yZWxvYWQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxs
LWZpcmUtYmVmb3JlbG9hZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGEzOTM4MzU2MzNhZWM1NWU1ZTU5NTcy
OWRhNjkxOWU5YzMyMDNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuanMKQEAgLTAsMCArMSBAQAor
dGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286536</attachid>
            <date>2016-08-20 00:59:57 -0700</date>
            <delta_ts>2016-08-20 23:01:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20160820165804.patch</filename>
            <type>text/plain</type>
            <size>147838</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0Njc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NGIyNTNhYWM5MjA4ZTdkNzU4NjM1OWZmMWNmNjM4OTA4Y2RmODYzLi4wMzMxNDYyYWI0ZTNlNmFh
YWI0NmYxYzI3OGViNWMwNzYwODVmMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxNi0wOC0yMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ1aWx0
aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qczoKKyAgICAgICAgKHJlcXVlc3RGZXRjaCk6Cisg
ICAgICAgIChyZXF1ZXN0VHJhbnNsYXRlKToKKyAgICAgICAgKHJlcXVlc3RJbnN0YW50aWF0ZSk6
CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyk6CisgICAgICAgIChyZXF1ZXN0
SW5zdGFudGlhdGVBbGwpOgorICAgICAgICAocmVxdWVzdExpbmspOgorICAgICAgICAobW9kdWxl
RXZhbHVhdGlvbik6CisgICAgICAgIChwcm92aWRlKToKKyAgICAgICAgKGxvYWRBbmRFdmFsdWF0
ZU1vZHVsZSk6CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcy4pOiBEZWxldGVk
LgorICAgICAgICAocmVxdWVzdFJlYWR5KTogRGVsZXRlZC4KKyAgICAgICAgKGxpbmspOiBEZWxl
dGVkLgorICAgICAgICAobG9hZE1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChsaW5rQW5kRXZh
bHVhdGVNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9i
YWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6bG9hZE1v
ZHVsZSk6CisgICAgICAgIChKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
cnVudGltZS9Db21wbGV0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoSlNDOjpK
U01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNN
b2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6
bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OnJl
c29sdmUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAo
SlNDOjpKU01vZHVsZUxvYWRlcjo6dHJhbnNsYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVM
b2FkZXI6Omluc3RhbnRpYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogcnVu
dGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJQcm90b3R5cGVSZXNvbHZlKToKKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyUHJvdG90eXBl
RmV0Y2gpOgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVUcmFuc2xhdGUpOgor
ICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZSk6CisgICAgICAg
IChKU0M6Om1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlKToKKyAgICAgICAgKiBydW50aW1l
L1N5bWJvbC5oOgorCiAyMDE2LTA4LTE5ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFyaXRoU3FydCBzaG91bGQgd29yayB3aXRoIGFueSBh
cmd1bWVudCB0eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZmYWI4NzE0YzVjNDQwY2FmYzA2YTAxMmJiNTdj
YzNmZDRjODRmYS4uOTRhNjM3MDNkOWYxY2EzZWJhYzQ1ZTc4OTViYjE2ZmU3MWUwMzI3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDE2LTA4LTIwICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVncmF0ZSBFUzYgTW9kdWxl
cyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzOiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVk
LXRvLW9uZXJyb3IuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24t
b3JkZXItaW5saW5lLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5
bmFtaWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0
bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1s
CisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbAorICAgICAgICAg
ICAgICAganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50LWR5bmFtaWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLXNh
bWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKKyAgICAgICAgICAgICAg
IGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQu
aHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJy
b3ItZXZlbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5o
dG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbAorICAgICAg
ICAgICAgICAganMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVj
U3RhdGU6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNYWluVGhyZWFkRXhlY1N0
YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTW9k
dWxlRmV0Y2hlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVy
OjpKU01vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVyOjp+
SlNNb2R1bGVGZXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlRmV0Y2hlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlRmV0Y2hlcjo6cnVuKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTTW9kdWxlRmV0Y2hlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5oLgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVG
ZXRjaGVyOjpjYWNoZWRTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTW9kdWxlR3Jh
cGguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlR3JhcGg6OkpTTW9kdWxl
R3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlR3JhcGg6Om5vdGlmeUVycm9yZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNNb2R1bGVHcmFwaDo6bm90aWZ5RXZhbHVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTW9k
dWxlR3JhcGg6OmxvYWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTW9kdWxlR3JhcGguaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuaC4K
KyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlR3JhcGg6OmVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2R1bGVHcmFwaDo6bW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTTW9k
dWxlR3JhcGg6OndlYWtFbGVtZW50UHRyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlR3Jh
cGg6OmVycm9yT2NjdXJyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6aXNM
b2FkZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTTW9kdWxlTG9hZGVyOjpyZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTTW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUxvYWRl
cjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0Q29udHJvbGxlcjo6U2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluV29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6aGFu
ZGxlSlNNb2R1bGVMb2FkZXJFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9s
bGVyOjpsb2FkTW9kdWxlSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9s
bGVyOjpsb2FkTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6Omxp
bmtBbmRFdmFsdWF0ZU1vZHVsZUluV29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29u
dHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVmFsdWVU
b01vZHVsZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0SlNN
b2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVjdXRl
U2NyaXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjptb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0
ZWRFcnJvclN5bWJvbCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1l
bnQ6OmxvYWRNb2R1bGUpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojptb2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRFbGVtZW50OjpzY3JpcHRUeXBlKToKKyAgICAgICAgKiBkb20vU2NyaXB0UnVubmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlSlNNb2R1bGVHcmFwaEZvckV4ZWN1
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6Om5vdGlmeUpTTW9kdWxlR3Jh
cGhSZWFkeSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOgor
ICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1
bm5lcjo6aGFzUGVuZGluZ1NjcmlwdHMpOgorCiAyMDE2LTA4LTE5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBDYW52YXNQYXRoIG9wZXJhdGlvbnMnIHBh
cmFtZXRlcnMgYXMgbWFuZGF0b3J5IHdoZW4gdGhleSBzaG91bGQgYmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzCmlu
ZGV4IDZhM2JjODI0MzBlZjE4YWJhZTYzNGQwZjEyZTYyMGZiY2UwOWIzMzIuLjg3NjQzNDA4ZGZi
N2RmMDQ5Yzk3NTRlMTY4YTMzOWMxOWZjOWI4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qcwpAQCAtMjIzLDcg
KzIyMyw3IEBAIGZ1bmN0aW9uIGluc3RhbnRpYXRpb24ocmVzdWx0LCBzb3VyY2UsIGVudHJ5KQog
CiAvLyBMb2FkZXIuCiAKLWZ1bmN0aW9uIHJlcXVlc3RGZXRjaChrZXkpCitmdW5jdGlvbiByZXF1
ZXN0RmV0Y2goa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHVi
LmlvL2xvYWRlci8jcmVxdWVzdC1mZXRjaAogCkBAIC0yMzksMjMgKzIzOSwyMSBAQCBmdW5jdGlv
biByZXF1ZXN0RmV0Y2goa2V5KQogICAgIGlmIChlbnRyeS5mZXRjaCkKICAgICAgICAgcmV0dXJu
IGVudHJ5LmZldGNoOwogCi0gICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0KICAgICAvLyBIb29rIHBv
aW50LgogICAgIC8vIDIuIExvYWRlci5mZXRjaAogICAgIC8vICAgICBodHRwczovL3doYXR3Zy5n
aXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWZldGNoCiAgICAgLy8gICAgIFRha2UgdGhlIGtleSBh
bmQgZmV0Y2ggdGhlIHJlc291cmNlIGFjdHVhbGx5LgogICAgIC8vICAgICBGb3IgZXhhbXBsZSwg
SmF2YVNjcmlwdENvcmUgc2hlbGwgY2FuIHByb3ZpZGUgdGhlIGhvb2sgZmV0Y2hpbmcgdGhlIHJl
c291cmNlCiAgICAgLy8gICAgIGZyb20gdGhlIGxvY2FsIGZpbGUgc3lzdGVtLgotICAgIHZhciBm
ZXRjaFByb21pc2UgPSB0aGlzLmZldGNoKGtleSkudGhlbihmdW5jdGlvbiAocGF5bG9hZCkgewot
ICAgICAgICBsb2FkZXIuc2V0U3RhdGVUb01heChlbnRyeSwgQE1vZHVsZVRyYW5zbGF0ZSk7Cisg
ICAgdmFyIGZldGNoUHJvbWlzZSA9IHRoaXMuZmV0Y2goa2V5LCBpbml0aWF0b3IpLnRoZW4oKHBh
eWxvYWQpID0+IHsKKyAgICAgICAgdGhpcy5zZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlVHJh
bnNsYXRlKTsKICAgICAgICAgcmV0dXJuIHBheWxvYWQ7CiAgICAgfSk7CiAgICAgZW50cnkuZmV0
Y2ggPSBmZXRjaFByb21pc2U7CiAgICAgcmV0dXJuIGZldGNoUHJvbWlzZTsKIH0KIAotZnVuY3Rp
b24gcmVxdWVzdFRyYW5zbGF0ZShrZXkpCitmdW5jdGlvbiByZXF1ZXN0VHJhbnNsYXRlKGtleSwg
aW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI3Jl
cXVlc3QtdHJhbnNsYXRlCiAKQEAgLTI3MSwxNSArMjY5LDE0IEBAIGZ1bmN0aW9uIHJlcXVlc3RU
cmFuc2xhdGUoa2V5KQogICAgIGlmIChlbnRyeS50cmFuc2xhdGUpCiAgICAgICAgIHJldHVybiBl
bnRyeS50cmFuc2xhdGU7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKLSAgICB2YXIgdHJhbnNs
YXRlUHJvbWlzZSA9IHRoaXMucmVxdWVzdEZldGNoKGtleSkudGhlbihmdW5jdGlvbiAocGF5bG9h
ZCkgeworICAgIHZhciB0cmFuc2xhdGVQcm9taXNlID0gdGhpcy5yZXF1ZXN0RmV0Y2goa2V5LCBp
bml0aWF0b3IpLnRoZW4oKHBheWxvYWQpID0+IHsKICAgICAgICAgLy8gSG9vayBwb2ludC4KICAg
ICAgICAgLy8gMy4gTG9hZGVyLnRyYW5zbGF0ZQogICAgICAgICAvLyAgICAgaHR0cHM6Ly93aGF0
d2cuZ2l0aHViLmlvL2xvYWRlci8jYnJvd3Nlci10cmFuc2xhdGUKICAgICAgICAgLy8gICAgIFRh
a2UgdGhlIGtleSBhbmQgdGhlIGZldGNoZWQgc291cmNlIGNvZGUgYW5kIHRyYW5zbGF0ZSBpdCB0
byB0aGUgRVM2IHNvdXJjZSBjb2RlLgogICAgICAgICAvLyAgICAgVHlwaWNhbGx5IGl0IGlzIHVz
ZWQgYnkgdGhlIHRyYW5zcGlsZXJzLgotICAgICAgICByZXR1cm4gbG9hZGVyLnRyYW5zbGF0ZShr
ZXksIHBheWxvYWQpLnRoZW4oZnVuY3Rpb24gKHNvdXJjZSkgewotICAgICAgICAgICAgbG9hZGVy
LnNldFN0YXRlVG9NYXgoZW50cnksIEBNb2R1bGVJbnN0YW50aWF0ZSk7CisgICAgICAgIHJldHVy
biB0aGlzLnRyYW5zbGF0ZShrZXksIHBheWxvYWQsIGluaXRpYXRvcikudGhlbigoc291cmNlKSA9
PiB7CisgICAgICAgICAgICB0aGlzLnNldFN0YXRlVG9NYXgoZW50cnksIEBNb2R1bGVJbnN0YW50
aWF0ZSk7CiAgICAgICAgICAgICByZXR1cm4gc291cmNlOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTI4Nyw3ICsyODQsNyBAQCBmdW5jdGlvbiByZXF1ZXN0VHJhbnNsYXRlKGtleSkKICAgICBy
ZXR1cm4gdHJhbnNsYXRlUHJvbWlzZTsKIH0KIAotZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRl
KGtleSkKK2Z1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZShrZXksIGluaXRpYXRvcikKIHsKICAg
ICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1ZXN0LWluc3RhbnRpYXRl
CiAKQEAgLTMwMyw4ICszMDAsNyBAQCBmdW5jdGlvbiByZXF1ZXN0SW5zdGFudGlhdGUoa2V5KQog
ICAgIGlmIChlbnRyeS5pbnN0YW50aWF0ZSkKICAgICAgICAgcmV0dXJuIGVudHJ5Lmluc3RhbnRp
YXRlOwogCi0gICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgdmFyIGluc3RhbnRpYXRlUHJvbWlz
ZSA9IHRoaXMucmVxdWVzdFRyYW5zbGF0ZShrZXkpLnRoZW4oZnVuY3Rpb24gKHNvdXJjZSkgewor
ICAgIHZhciBpbnN0YW50aWF0ZVByb21pc2UgPSB0aGlzLnJlcXVlc3RUcmFuc2xhdGUoa2V5LCBp
bml0aWF0b3IpLnRoZW4oKHNvdXJjZSkgPT4gewogICAgICAgICAvLyBIb29rIHBvaW50LgogICAg
ICAgICAvLyA0LiBMb2FkZXIuaW5zdGFudGlhdGUKICAgICAgICAgLy8gICAgIGh0dHBzOi8vd2hh
dHdnLmdpdGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXItaW5zdGFudGlhdGUKQEAgLTMxMiw4ICszMDgs
OCBAQCBmdW5jdGlvbiByZXF1ZXN0SW5zdGFudGlhdGUoa2V5KQogICAgICAgICAvLyAgICAgYnkg
cGFyc2luZyB0aGUgbW9kdWxlIHNvdXJjZSBjb2RlLgogICAgICAgICAvLyAgICAgSXQgaGFzIHRo
ZSBjaGFuY2UgdG8gcHJvdmlkZSB0aGUgb3B0aW9uYWwgbW9kdWxlIGluc3RhbmNlIHRoYXQgaXMg
ZGlmZmVyZW50IGZyb20KICAgICAgICAgLy8gICAgIHRoZSBvcmRpbmFyeSBvbmUuCi0gICAgICAg
IHJldHVybiBsb2FkZXIuaW5zdGFudGlhdGUoa2V5LCBzb3VyY2UpLnRoZW4oZnVuY3Rpb24gKG9w
dGlvbmFsSW5zdGFuY2UpIHsKLSAgICAgICAgICAgIGxvYWRlci5jb21taXRJbnN0YW50aWF0ZWQo
ZW50cnksIG9wdGlvbmFsSW5zdGFuY2UsIHNvdXJjZSk7CisgICAgICAgIHJldHVybiB0aGlzLmlu
c3RhbnRpYXRlKGtleSwgc291cmNlLCBpbml0aWF0b3IpLnRoZW4oKG9wdGlvbmFsSW5zdGFuY2Up
ID0+IHsKKyAgICAgICAgICAgIHRoaXMuY29tbWl0SW5zdGFudGlhdGVkKGVudHJ5LCBvcHRpb25h
bEluc3RhbmNlLCBzb3VyY2UpOwogICAgICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAgICAgICB9
KTsKICAgICB9KTsKQEAgLTMyMSw3ICszMTcsNyBAQCBmdW5jdGlvbiByZXF1ZXN0SW5zdGFudGlh
dGUoa2V5KQogICAgIHJldHVybiBpbnN0YW50aWF0ZVByb21pc2U7CiB9CiAKLWZ1bmN0aW9uIHJl
cXVlc3RSZXNvbHZlRGVwZW5kZW5jaWVzKGtleSkKK2Z1bmN0aW9uIHJlcXVlc3RSZXNvbHZlRGVw
ZW5kZW5jaWVzKGtleSwgaW5pdGlhdG9yKQogewogICAgIC8vIEZJWE1FOiBJbiB0aGUgc3BlYywg
YWZ0ZXIgcmVxdWVzdGluZyBpbnN0YW50aWF0aW9uLCB3ZSB3aWxsIHJlc29sdmUKICAgICAvLyB0
aGUgZGVwZW5kZW5jaWVzIHdpdGhvdXQgYW55IHN0YXR1cyBjaGFuZ2UuIEFzIGEgcmVzdWx0LCB3
aGVuIHRoZXJlCkBAIC0zNDUsOCArMzQxLDcgQEAgZnVuY3Rpb24gcmVxdWVzdFJlc29sdmVEZXBl
bmRlbmNpZXMoa2V5KQogICAgIGlmIChlbnRyeS5yZXNvbHZlRGVwZW5kZW5jaWVzKQogICAgICAg
ICByZXR1cm4gZW50cnkucmVzb2x2ZURlcGVuZGVuY2llczsKIAotICAgIHZhciBsb2FkZXIgPSB0
aGlzOwotICAgIHZhciByZXNvbHZlRGVwZW5kZW5jaWVzUHJvbWlzZSA9IHRoaXMucmVxdWVzdElu
c3RhbnRpYXRlKGtleSkudGhlbihmdW5jdGlvbiAoZW50cnkpIHsKKyAgICB2YXIgcmVzb2x2ZURl
cGVuZGVuY2llc1Byb21pc2UgPSB0aGlzLnJlcXVlc3RJbnN0YW50aWF0ZShrZXksIGluaXRpYXRv
cikudGhlbigoZW50cnkpID0+IHsKICAgICAgICAgdmFyIGRlcExvYWRzID0gW107CiAgICAgICAg
IGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBlbnRyeS5kZXBlbmRlbmNpZXMubGVuZ3RoOyBpIDwg
bGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGxldCBwYWlyID0gZW50cnkuZGVwZW5kZW5jaWVz
W2ldOwpAQCAtMzU2LDggKzM1MSw4IEBAIGZ1bmN0aW9uIHJlcXVlc3RSZXNvbHZlRGVwZW5kZW5j
aWVzKGtleSkKICAgICAgICAgICAgIC8vICAgICBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9h
ZGVyLyNicm93c2VyLXJlc29sdmUKICAgICAgICAgICAgIC8vICAgICBUYWtlIHRoZSBuYW1lIGFu
ZCByZXNvbHZlIGl0IHRvIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIGxv
Y2F0aW9uLgogICAgICAgICAgICAgLy8gICAgIEZvciBleGFtcGxlLCB0YWtlIHRoZSAianF1ZXJ5
IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJjZS4KLSAgICAgICAgICAgIHZhciBw
cm9taXNlID0gbG9hZGVyLnJlc29sdmUocGFpci5rZXksIGtleSkudGhlbihmdW5jdGlvbiAoZGVw
S2V5KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGRlcEVudHJ5ID0gbG9hZGVyLmVuc3VyZVJlZ2lz
dGVyZWQoZGVwS2V5KTsKKyAgICAgICAgICAgIHZhciBwcm9taXNlID0gdGhpcy5yZXNvbHZlKHBh
aXIua2V5LCBrZXksIGluaXRpYXRvcikudGhlbigoZGVwS2V5KSA9PiB7CisgICAgICAgICAgICAg
ICAgdmFyIGRlcEVudHJ5ID0gdGhpcy5lbnN1cmVSZWdpc3RlcmVkKGRlcEtleSk7CiAKICAgICAg
ICAgICAgICAgICAvLyBSZWN1cnNpdmUgcmVzb2x2aW5nLiBUaGUgZGVwZW5kZW5jaWVzIG9mIHRo
aXMgZW50cnkgaXMgYmVpbmcgcmVzb2x2ZWQgb3IgYWxyZWFkeSByZXNvbHZlZC4KICAgICAgICAg
ICAgICAgICAvLyBTdG9wIHRyYWNpbmcgdGhlIGNpcmN1bGFyIGRlcGVuZGVuY2llcy4KQEAgLTM2
OSwxMyArMzY0LDEzIEBAIGZ1bmN0aW9uIHJlcXVlc3RSZXNvbHZlRGVwZW5kZW5jaWVzKGtleSkK
ICAgICAgICAgICAgICAgICAvLyByZWplY3RlZCBieSB0aGUgUHJvbWlzZXMgcnVudGltZS4gU2lu
Y2Ugb25seSB3ZSBuZWVkIGlzIHRoZSBpbnN0YW50aWF0ZWQgbW9kdWxlLCBpbnN0ZWFkIG9mIHdh
aXRpbmcKICAgICAgICAgICAgICAgICAvLyB0aGUgUmVzb2x2ZURlcGVuZGVuY2llcyBmb3IgdGhp
cyBtb2R1bGUsIHdlIGp1c3Qgd2FpdCBJbnN0YW50aWF0ZSBmb3IgdGhpcy4KICAgICAgICAgICAg
ICAgICBpZiAoZGVwRW50cnkucmVzb2x2ZURlcGVuZGVuY2llcykgewotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZGVwRW50cnkuaW5zdGFudGlhdGUudGhlbihmdW5jdGlvbiAoZW50cnkpIHsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlcEVudHJ5Lmluc3RhbnRpYXRlLnRoZW4oKGVu
dHJ5KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwYWlyLnZhbHVlID0gZW50cnkubW9k
dWxlOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAgICAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICByZXR1cm4g
bG9hZGVyLnJlcXVlc3RSZXNvbHZlRGVwZW5kZW5jaWVzKGRlcEtleSkudGhlbihmdW5jdGlvbiAo
ZW50cnkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzb2x2ZURlcGVu
ZGVuY2llcyhkZXBLZXksIGluaXRpYXRvcikudGhlbigoZW50cnkpID0+IHsKICAgICAgICAgICAg
ICAgICAgICAgcGFpci52YWx1ZSA9IGVudHJ5Lm1vZHVsZTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGVudHJ5OwogICAgICAgICAgICAgICAgIH0pOwpAQCAtMzgzLDggKzM3OCw4IEBAIGZ1
bmN0aW9uIHJlcXVlc3RSZXNvbHZlRGVwZW5kZW5jaWVzKGtleSkKICAgICAgICAgICAgIEBwdXRC
eVZhbERpcmVjdChkZXBMb2FkcywgaSwgcHJvbWlzZSk7CiAgICAgICAgIH0KIAotICAgICAgICBy
ZXR1cm4gQEludGVybmFsUHJvbWlzZS5pbnRlcm5hbEFsbChkZXBMb2FkcykudGhlbihmdW5jdGlv
biAobW9kdWxlcykgewotICAgICAgICAgICAgbG9hZGVyLnNldFN0YXRlVG9NYXgoZW50cnksIEBN
b2R1bGVMaW5rKTsKKyAgICAgICAgcmV0dXJuIEBJbnRlcm5hbFByb21pc2UuaW50ZXJuYWxBbGwo
ZGVwTG9hZHMpLnRoZW4oKG1vZHVsZXMpID0+IHsKKyAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVU
b01heChlbnRyeSwgQE1vZHVsZUxpbmspOwogICAgICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAg
ICAgICB9KTsKICAgICB9KTsKQEAgLTM5MywxNiArMzg4LDE2IEBAIGZ1bmN0aW9uIHJlcXVlc3RS
ZXNvbHZlRGVwZW5kZW5jaWVzKGtleSkKICAgICByZXR1cm4gcmVzb2x2ZURlcGVuZGVuY2llc1By
b21pc2U7CiB9CiAKLWZ1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZUFsbChrZXkpCitmdW5jdGlv
biByZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6
Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jcmVxdWVzdC1pbnN0YW50aWF0ZS1hbGwKIAogICAg
ICJ1c2Ugc3RyaWN0IjsKIAotICAgIHJldHVybiB0aGlzLnJlcXVlc3RSZXNvbHZlRGVwZW5kZW5j
aWVzKGtleSk7CisgICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlc29sdmVEZXBlbmRlbmNpZXMoa2V5
LCBpbml0aWF0b3IpOwogfQogCi1mdW5jdGlvbiByZXF1ZXN0TGluayhrZXkpCitmdW5jdGlvbiBy
ZXF1ZXN0TGluayhrZXksIGluaXRpYXRvcikKIHsKICAgICAvLyBodHRwczovL3doYXR3Zy5naXRo
dWIuaW8vbG9hZGVyLyNyZXF1ZXN0LWxpbmsKIApAQCAtNDE1LDI4ICs0MTAsMjYgQEAgZnVuY3Rp
b24gcmVxdWVzdExpbmsoa2V5KQogICAgICAgICByZXR1cm4gZGVmZXJyZWQuQHByb21pc2U7CiAg
ICAgfQogCi0gICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgcmV0dXJuIHRoaXMucmVxdWVzdElu
c3RhbnRpYXRlQWxsKGtleSkudGhlbihmdW5jdGlvbiAoZW50cnkpIHsKLSAgICAgICAgbG9hZGVy
LmxpbmsoZW50cnkpOworICAgIHJldHVybiB0aGlzLnJlcXVlc3RJbnN0YW50aWF0ZUFsbChrZXks
IGluaXRpYXRvcikudGhlbigoZW50cnkpID0+IHsKKyAgICAgICAgdGhpcy5saW5rKGVudHJ5LCBp
bml0aWF0b3IpOwogICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9u
IHJlcXVlc3RSZWFkeShrZXkpCitmdW5jdGlvbiByZXF1ZXN0UmVhZHkoa2V5LCBpbml0aWF0b3Ip
CiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jcmVxdWVzdC1yZWFk
eQogCiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgcmV0
dXJuIHRoaXMucmVxdWVzdExpbmsoa2V5KS50aGVuKGZ1bmN0aW9uIChlbnRyeSkgewotICAgICAg
ICBsb2FkZXIubW9kdWxlRXZhbHVhdGlvbihlbnRyeS5tb2R1bGUpOworICAgIHJldHVybiB0aGlz
LnJlcXVlc3RMaW5rKGtleSwgaW5pdGlhdG9yKS50aGVuKChlbnRyeSkgPT4geworICAgICAgICB0
aGlzLm1vZHVsZUV2YWx1YXRpb24oZW50cnkubW9kdWxlLCBpbml0aWF0b3IpOwogICAgIH0pOwog
fQogCiAvLyBMaW5raW5nIHNlbWFudGljcy4KIAotZnVuY3Rpb24gbGluayhlbnRyeSkKK2Z1bmN0
aW9uIGxpbmsoZW50cnksIGluaXRpYXRvcikKIHsKICAgICAvLyBodHRwczovL3doYXR3Zy5naXRo
dWIuaW8vbG9hZGVyLyNsaW5rCiAKQEAgLTQ1NiwxNSArNDQ5LDE1IEBAIGZ1bmN0aW9uIGxpbmso
ZW50cnkpCiAgICAgdmFyIGRlcGVuZGVuY2llcyA9IGVudHJ5LmRlcGVuZGVuY2llczsKICAgICBm
b3IgKHZhciBpID0gMCwgbGVuZ3RoID0gZGVwZW5kZW5jaWVzLmxlbmd0aDsgaSA8IGxlbmd0aDsg
KytpKSB7CiAgICAgICAgIHZhciBwYWlyID0gZGVwZW5kZW5jaWVzW2ldOwotICAgICAgICB0aGlz
LmxpbmsocGFpci52YWx1ZS5yZWdpc3RyeUVudHJ5KTsKKyAgICAgICAgdGhpcy5saW5rKHBhaXIu
dmFsdWUucmVnaXN0cnlFbnRyeSwgaW5pdGlhdG9yKTsKICAgICB9CiAKLSAgICB0aGlzLm1vZHVs
ZURlY2xhcmF0aW9uSW5zdGFudGlhdGlvbihlbnRyeS5tb2R1bGUpOworICAgIHRoaXMubW9kdWxl
RGVjbGFyYXRpb25JbnN0YW50aWF0aW9uKGVudHJ5Lm1vZHVsZSwgaW5pdGlhdG9yKTsKIH0KIAog
Ly8gTW9kdWxlIHNlbWFudGljcy4KIAotZnVuY3Rpb24gbW9kdWxlRXZhbHVhdGlvbihtb2R1bGVS
ZWNvcmQpCitmdW5jdGlvbiBtb2R1bGVFdmFsdWF0aW9uKG1vZHVsZVJlY29yZCwgaW5pdGlhdG9y
KQogewogICAgIC8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82
LjAvI3NlYy1tb2R1bGVldmFsdWF0aW9uCiAKQEAgLTQ4MSw5ICs0NzQsOSBAQCBmdW5jdGlvbiBt
b2R1bGVFdmFsdWF0aW9uKG1vZHVsZVJlY29yZCkKICAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3Ro
ID0gZGVwZW5kZW5jaWVzLmxlbmd0aDsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAgIHZhciBw
YWlyID0gZGVwZW5kZW5jaWVzW2ldOwogICAgICAgICB2YXIgcmVxdWlyZWRNb2R1bGVSZWNvcmQg
PSBwYWlyLnZhbHVlOwotICAgICAgICB0aGlzLm1vZHVsZUV2YWx1YXRpb24ocmVxdWlyZWRNb2R1
bGVSZWNvcmQpOworICAgICAgICB0aGlzLm1vZHVsZUV2YWx1YXRpb24ocmVxdWlyZWRNb2R1bGVS
ZWNvcmQsIGluaXRpYXRvcik7CiAgICAgfQotICAgIHRoaXMuZXZhbHVhdGUoZW50cnkua2V5LCBt
b2R1bGVSZWNvcmQpOworICAgIHRoaXMuZXZhbHVhdGUoZW50cnkua2V5LCBtb2R1bGVSZWNvcmQs
IGluaXRpYXRvcik7CiB9CiAKIC8vIEFQSXMgdG8gY29udHJvbCB0aGUgbW9kdWxlIGxvYWRlci4K
QEAgLTUxNCw5ICs1MDcsOCBAQCBmdW5jdGlvbiBwcm92aWRlKGtleSwgc3RhZ2UsIHZhbHVlKQog
ICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlcXVlc3RlZCBtb2R1bGUgaXMgYWxy
ZWFkeSBpbnN0YW50aWF0ZWQuIik7CiAgICAgICAgIHRoaXMuZnVsZmlsbEZldGNoKGVudHJ5LCBA
dW5kZWZpbmVkKTsKICAgICAgICAgdGhpcy5mdWxmaWxsVHJhbnNsYXRlKGVudHJ5LCB2YWx1ZSk7
Ci0gICAgICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgICAgICBlbnRyeS50cmFuc2xhdGUudGhl
bihmdW5jdGlvbiAoc291cmNlKSB7Ci0gICAgICAgICAgICBsb2FkZXIuZnVsZmlsbEluc3RhbnRp
YXRlKGVudHJ5LCB2YWx1ZSwgc291cmNlKTsKKyAgICAgICAgZW50cnkudHJhbnNsYXRlLnRoZW4o
KHNvdXJjZSkgPT4geworICAgICAgICAgICAgdGhpcy5mdWxmaWxsSW5zdGFudGlhdGUoZW50cnks
IHZhbHVlLCBzb3VyY2UpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTUyNCwzOSArNTE2LDM3IEBAIGZ1bmN0aW9uIHByb3ZpZGUoa2V5LCBzdGFnZSwgdmFsdWUpCiAg
ICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlcXVlc3RlZCBtb2R1bGUgaXMgYWxyZWFkeSByZWFk
eSB0byBiZSBleGVjdXRlZC4iKTsKIH0KIAotZnVuY3Rpb24gbG9hZEFuZEV2YWx1YXRlTW9kdWxl
KG1vZHVsZU5hbWUsIHJlZmVycmVyKQorZnVuY3Rpb24gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKG1v
ZHVsZU5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0g
ICAgdmFyIGxvYWRlciA9IHRoaXM7CiAgICAgLy8gTG9hZGVyLnJlc29sdmUgaG9vayBwb2ludC4K
ICAgICAvLyByZXNvbHZlOiBtb2R1bGVOYW1lID0+IFByb21pc2UobW9kdWxlS2V5KQogICAgIC8v
IFRha2UgdGhlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZv
ciB0aGUgcmVzb3VyY2UgbG9jYXRpb24uCiAgICAgLy8gRm9yIGV4YW1wbGUsIHRha2UgdGhlICJq
cXVlcnkiIGFuZCByZXR1cm4gdGhlIFVSTCBmb3IgdGhlIHJlc291cmNlLgotICAgIHJldHVybiB0
aGlzLnJlc29sdmUobW9kdWxlTmFtZSwgcmVmZXJyZXIpLnRoZW4oZnVuY3Rpb24gKGtleSkgewot
ICAgICAgICByZXR1cm4gbG9hZGVyLnJlcXVlc3RSZWFkeShrZXkpOworICAgIHJldHVybiB0aGlz
LnJlc29sdmUobW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcikudGhlbigoa2V5KSA9PiB7
CisgICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RSZWFkeShrZXksIGluaXRpYXRvcik7CiAgICAg
fSk7CiB9CiAKLWZ1bmN0aW9uIGxvYWRNb2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIpCitmdW5j
dGlvbiBsb2FkTW9kdWxlKG1vZHVsZU5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpCiB7CiAgICAg
InVzZSBzdHJpY3QiOwogCi0gICAgdmFyIGxvYWRlciA9IHRoaXM7CiAgICAgLy8gTG9hZGVyLnJl
c29sdmUgaG9vayBwb2ludC4KICAgICAvLyByZXNvbHZlOiBtb2R1bGVOYW1lID0+IFByb21pc2Uo
bW9kdWxlS2V5KQogICAgIC8vIFRha2UgdGhlIG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVu
aXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVzb3VyY2UgbG9jYXRpb24uCiAgICAgLy8gRm9yIGV4
YW1wbGUsIHRha2UgdGhlICJqcXVlcnkiIGFuZCByZXR1cm4gdGhlIFVSTCBmb3IgdGhlIHJlc291
cmNlLgotICAgIHJldHVybiB0aGlzLnJlc29sdmUobW9kdWxlTmFtZSwgcmVmZXJyZXIpLnRoZW4o
ZnVuY3Rpb24gKGtleSkgewotICAgICAgICByZXR1cm4gbG9hZGVyLnJlcXVlc3RJbnN0YW50aWF0
ZUFsbChrZXkpOwotICAgIH0pLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgcmV0dXJuIHRo
aXMucmVzb2x2ZShtb2R1bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKS50aGVuKChrZXkpID0+
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdEluc3RhbnRpYXRlQWxsKGtleSwgaW5pdGlh
dG9yKTsKKyAgICB9KS50aGVuKChlbnRyeSkgPT4gewogICAgICAgICByZXR1cm4gZW50cnkua2V5
OwogICAgIH0pOwogfQogCi1mdW5jdGlvbiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoa2V5KQorZnVu
Y3Rpb24gbGlua0FuZEV2YWx1YXRlTW9kdWxlKGtleSwgaW5pdGlhdG9yKQogewogICAgICJ1c2Ug
c3RyaWN0IjsKIAotICAgIHJldHVybiB0aGlzLnJlcXVlc3RSZWFkeShrZXkpOworICAgIHJldHVy
biB0aGlzLnJlcXVlc3RSZWFkeShrZXksIGluaXRpYXRvcik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CmluZGV4IGI4ZWIxNThjYjA5ZjZlYmI3ZWYyOWIwODVkYzhlNTIyOTFiNTI1M2EuLjIzYzkxMGFm
ODVhZjVkNTJlYmRmNjJmNjljZWVlNTM2YzI5YjFhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBA
IC04ODMsOCArODgzLDggQEAgY2xhc3MgR2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFsT2Jq
ZWN0IHsKICAgICAgICAgcHV0RGlyZWN0KHZtLCBpZGVudGlmaWVyLCBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIGFyZ3VtZW50cywgaWRlbnRpZmllci5zdHJpbmcoKSwgZnVuY3Rpb24sIE5v
SW50cmluc2ljLCBmdW5jdGlvbikpOwogICAgIH0KIAotICAgIHN0YXRpYyBKU0ludGVybmFsUHJv
bWlzZSogbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpT
TW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTSW50ZXJuYWxQ
cm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpT
TW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSk7CisgICAgc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBt
b2R1bGVMb2FkZXJSZXNvbHZlKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVM
b2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKKyAgICBzdGF0aWMgSlNJbnRlcm5h
bFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwg
SlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKIH07CiAKIGNvbnN0IENsYXNzSW5m
byBHbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgImdsb2JhbCIsICZKU0dsb2JhbE9iamVjdDo6c19p
bmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdsb2JhbE9iamVjdCkgfTsKQEAgLTEw
MTUsNyArMTAxNSw3IEBAIHN0YXRpYyBTdHJpbmcgcmVzb2x2ZVBhdGgoY29uc3QgRGlyZWN0b3J5
TmFtZSYgZGlyZWN0b3J5TmFtZSwgY29uc3QgTW9kdWxlTmFtZSYKICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1
bGVMb2FkZXJSZXNvbHZlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV4ZWNTdGF0ZSog
ZXhlYywgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlIGtleVZhbHVlLCBKU1ZhbHVlIHJlZmVycmVy
VmFsdWUpCitKU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNv
bHZlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgSlNNb2R1
bGVMb2FkZXIqLCBKU1ZhbHVlIGtleVZhbHVlLCBKU1ZhbHVlIHJlZmVycmVyVmFsdWUsIEpTVmFs
dWUpCiB7CiAgICAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICBjb25z
dCBJZGVudGlmaWVyIGtleSA9IGtleVZhbHVlLnRvUHJvcGVydHlLZXkoZXhlYyk7CkBAIC0xMTIw
LDcgKzExMjAsNyBAQCBzdGF0aWMgYm9vbCBmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0o
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVjdG9yPGNoYXI+JgogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNo
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgSlNNb2R1bGVM
b2FkZXIqLCBKU1ZhbHVlIGtleSkKK0pTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6Om1v
ZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV4ZWNTdGF0ZSog
ZXhlYywgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSkKIHsKICAgICBKU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJy
ZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogICAgIFN0cmluZyBtb2R1bGVLZXkgPSBr
ZXkudG9XVEZTdHJpbmcoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21wbGV0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bXBsZXRpb24uY3BwCmluZGV4IDYzMmY3ZmI2MGE3YWRiYTc4MDA5NjNiN2MwZTMyMTM4ZWQ0NDE0
ZDQuLmMxMGI0MWM0OTlkZjQ5OGNmNTUyMTZlOTcwY2QzYTkxZTJjZWQ4NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwCkBAIC0xNTUsMjYgKzE1NSwy
NiBAQCBzdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIHJlamVjdFByb21pc2UoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlz
ZSgpOwogfQogCi1zdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVs
ZShjb25zdCBKU0xvY2tIb2xkZXImLCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK3N0YXRp
YyBKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IEpTTG9ja0hv
bGRlciYsIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsK
LSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2FkZXIoKS0+bG9hZEFuZEV2YWx1YXRl
TW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUsIHJlZmVycmVyKTsKKyAgICByZXR1cm4gZ2xvYmFsT2Jq
ZWN0LT5tb2R1bGVMb2FkZXIoKS0+bG9hZEFuZEV2YWx1YXRlTW9kdWxlKGV4ZWMsIG1vZHVsZU5h
bWUsIHJlZmVycmVyLCBpbml0aWF0b3IpOwogfQogCi1zdGF0aWMgSlNJbnRlcm5hbFByb21pc2Uq
IGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShjb25zdCBKU0xvY2tIb2xkZXImIGxvY2ssIEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYg
bW9kdWxlTmFtZSkKK3N0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9k
dWxlKGNvbnN0IEpTTG9ja0hvbGRlciYgbG9jaywgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1lLCBKU1ZhbHVl
IGluaXRpYXRvcikKIHsKLSAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxvY2ssIGV4
ZWMsIGdsb2JhbE9iamVjdCwgaWRlbnRpZmllclRvSlNWYWx1ZShleGVjLT52bSgpLCBtb2R1bGVO
YW1lKSwganNVbmRlZmluZWQoKSk7CisgICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShs
b2NrLCBleGVjLCBnbG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwg
bW9kdWxlTmFtZSksIGpzVW5kZWZpbmVkKCksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50ZXJuYWxQ
cm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJp
bmcmIG1vZHVsZU5hbWUpCitKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxl
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBKU1ZhbHVlIGluaXRp
YXRvcikKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBSRUxFQVNFX0FTU0VS
VChleGVjLT52bSgpLmF0b21pY1N0cmluZ1RhYmxlKCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21p
Y1N0cmluZ1RhYmxlKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFleGVjLT52bSgpLmlzQ29sbGVj
dG9yQnVzeSgpKTsKIAotICAgIHJldHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUobG9jaywgZXhl
YywgZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4
ZWMsIG1vZHVsZU5hbWUpKTsKKyAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxvY2ss
IGV4ZWMsIGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhleGVjLCBtb2R1bGVOYW1lKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2Uq
IGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZSkKK0pTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTVmFsdWUgaW5pdGlhdG9yKQog
ewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVBU0VfQVNTRVJUKGV4ZWMt
PnZtKCkuYXRvbWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5n
VGFibGUoKSk7CkBAIC0xODksMjkgKzE4OSwyOSBAQCBKU0ludGVybmFsUHJvbWlzZSogbG9hZEFu
ZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cgog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlamVjdFByb21p
c2UoZXhlYywgZ2xvYmFsT2JqZWN0KTsKIAotICAgIHJldHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1
bGUobG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBrZXksIGpzVW5kZWZpbmVkKCkpOworICAgIHJl
dHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUobG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBrZXks
IGpzVW5kZWZpbmVkKCksIGluaXRpYXRvcik7CiB9CiAKLXN0YXRpYyBKU0ludGVybmFsUHJvbWlz
ZSogbG9hZE1vZHVsZShjb25zdCBKU0xvY2tIb2xkZXImLCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZl
cnJlcikKK3N0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShjb25zdCBKU0xvY2tI
b2xkZXImLCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7
Ci0gICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+bW9kdWxlTG9hZGVyKCktPmxvYWRNb2R1bGUoZXhl
YywgbW9kdWxlTmFtZSwgcmVmZXJyZXIpOworICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm1vZHVs
ZUxvYWRlcigpLT5sb2FkTW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUsIHJlZmVycmVyLCBpbml0aWF0
b3IpOwogfQogCi1zdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoY29uc3QgSlNM
b2NrSG9sZGVyJiBsb2NrLCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZU5hbWUpCitzdGF0aWMgSlNJbnRlcm5hbFBy
b21pc2UqIGxvYWRNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVyJiBsb2NrLCBFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG1vZHVs
ZU5hbWUsIEpTVmFsdWUgaW5pdGlhdG9yKQogewotICAgIHJldHVybiBsb2FkTW9kdWxlKGxvY2ss
IGV4ZWMsIGdsb2JhbE9iamVjdCwgaWRlbnRpZmllclRvSlNWYWx1ZShleGVjLT52bSgpLCBtb2R1
bGVOYW1lKSwganNVbmRlZmluZWQoKSk7CisgICAgcmV0dXJuIGxvYWRNb2R1bGUobG9jaywgZXhl
YywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMtPnZtKCksIG1vZHVsZU5h
bWUpLCBqc1VuZGVmaW5lZCgpLCBpbml0aWF0b3IpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSog
bG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK0pT
SW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiBtb2R1bGVOYW1lLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9j
ayhleGVjKTsKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT52bSgpLmF0b21pY1N0cmluZ1RhYmxl
KCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKCFleGVjLT52bSgpLmlzQ29sbGVjdG9yQnVzeSgpKTsKIAotICAgIHJldHVybiBsb2Fk
TW9kdWxlKGxvY2ssIGV4ZWMsIGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyhleGVjLCBtb2R1bGVOYW1lKSk7CisgICAgcmV0dXJuIGxvYWRNb2R1bGUo
bG9jaywgZXhlYywgZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKGV4ZWMsIG1vZHVsZU5hbWUpLCBpbml0aWF0b3IpOwogfQogCi1KU0ludGVybmFsUHJv
bWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSkKK0pTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBKU0xvY2tIb2xk
ZXIgbG9jayhleGVjKTsKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT52bSgpLmF0b21pY1N0cmlu
Z1RhYmxlKCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOwpAQCAtMjI2
LDE3ICsyMjYsMTcgQEAgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKQogICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlzZShleGVjLCBnbG9iYWxPYmplY3QpOwog
Ci0gICAgcmV0dXJuIGxvYWRNb2R1bGUobG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBrZXksIGpz
VW5kZWZpbmVkKCkpOworICAgIHJldHVybiBsb2FkTW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9i
amVjdCwga2V5LCBqc1VuZGVmaW5lZCgpLCBpbml0aWF0b3IpOwogfQogCi1KU0ludGVybmFsUHJv
bWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgbW9kdWxlS2V5KQorSlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVs
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZUtleSwgSlNWYWx1ZSBp
bml0aWF0b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAgICAgUkVMRUFTRV9B
U1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5h
dG9taWNTdHJpbmdUYWJsZSgpKTsKICAgICBSRUxFQVNFX0FTU0VSVCghZXhlYy0+dm0oKS5pc0Nv
bGxlY3RvckJ1c3koKSk7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhl
Yy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpOwotICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm1vZHVs
ZUxvYWRlcigpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgaWRlbnRpZmllclRvSlNWYWx1
ZShleGVjLT52bSgpLCBtb2R1bGVLZXkpKTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1
bGVMb2FkZXIoKS0+bGlua0FuZEV2YWx1YXRlTW9kdWxlKGV4ZWMsIGlkZW50aWZpZXJUb0pTVmFs
dWUoZXhlYy0+dm0oKSwgbW9kdWxlS2V5KSwgaW5pdGlhdG9yKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmgKaW5kZXgg
ZjEzMWNjNWFlNTcxY2I2YmUwYjZkM2NiMDE1ZTg5OTFhMjI0MGI1Ny4uYjM0MTA4MDg2ZjcwMTY0
MDA0YzQ3MWE5ZWEzYWVlMTVhMzhkNTNjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbXBsZXRpb24uaApAQCAtNTgsMTUgKzU4LDE1IEBAIGlubGluZSBKU1ZhbHVlIHByb2Zp
bGVkRXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjLCBQcm9maWxpbmdSZWFzb24gcmVhc29uLCBjb25z
dCBTCiBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIGV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9u
KEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU09iamVjdCogc2NvcGVFeHRlbnNpb24s
IE5ha2VkUHRyPEV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uKTsKIAogLy8gTG9hZCB0aGUg
bW9kdWxlIHNvdXJjZSBhbmQgZXZhbHVhdGUgaXQuCi1KU19FWFBPUlRfUFJJVkFURSBKU0ludGVy
bmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgbW9kdWxlTmFtZSk7Ci1KU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlzZSogbG9h
ZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKK0pTX0VY
UE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBKU1ZhbHVlIGluaXRpYXRvciA9IGpz
VW5kZWZpbmVkKCkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRB
bmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNWYWx1ZSBp
bml0aWF0b3IgPSBqc1VuZGVmaW5lZCgpKTsKIAogLy8gRmV0Y2ggdGhlIG1vZHVsZSBzb3VyY2Us
IGFuZCBpbnN0YW50aWF0ZSB0aGUgbW9kdWxlIHJlY29yZC4KLUpTX0VYUE9SVF9QUklWQVRFIEpT
SW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbW9k
dWxlTmFtZSk7Ci1KU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVs
ZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CitKU19FWFBPUlRfUFJJVkFURSBKU0lu
dGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIG1vZHVs
ZU5hbWUsIEpTVmFsdWUgaW5pdGlhdG9yID0ganNVbmRlZmluZWQoKSk7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTb3Vy
Y2VDb2RlJiwgSlNWYWx1ZSBpbml0aWF0b3IgPSBqc1VuZGVmaW5lZCgpKTsKIAogLy8gTGluayBh
bmQgZXZhbHVhdGUgdGhlIGFscmVhZHkgbGlua2VkIG1vZHVsZS4KLUpTX0VYUE9SVF9QUklWQVRF
IEpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgbW9kdWxlS2V5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQ
cm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgbW9kdWxlS2V5LCBKU1ZhbHVlIGluaXRpYXRvciA9IGpzVW5kZWZpbmVkKCkpOwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKaW5kZXggZjU2NzExNjBmMmNmOGMwYzM2Y2Q1NzgzNmJlMmM0NGIwZWYzOWQ5
ZS4uNzgzN2FjNmFkZmE4ZmFkYmM5YmNkMDQxYTQwN2Y4ZGE4YWRkMDA4MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNjYsMTkgKzE2
NiwxOSBAQCBzdHJ1Y3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgewogICAgIHR5cGVkZWYgYm9v
bCAoKlNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXRQdHIpKGNvbnN0IEpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgU2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dFB0ciBzaG91
bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0OwogCi0gICAgdHlwZWRlZiBKU0ludGVybmFs
UHJvbWlzZSogKCpNb2R1bGVMb2FkZXJSZXNvbHZlUHRyKShKU0dsb2JhbE9iamVjdCosIEV4ZWNT
dGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CisgICAgdHlwZWRlZiBK
U0ludGVybmFsUHJvbWlzZSogKCpNb2R1bGVMb2FkZXJSZXNvbHZlUHRyKShKU0dsb2JhbE9iamVj
dCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1
ZSk7CiAgICAgTW9kdWxlTG9hZGVyUmVzb2x2ZVB0ciBtb2R1bGVMb2FkZXJSZXNvbHZlOwogCi0g
ICAgdHlwZWRlZiBKU0ludGVybmFsUHJvbWlzZSogKCpNb2R1bGVMb2FkZXJGZXRjaFB0cikoSlNH
bG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUpOworICAg
IHR5cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyRmV0Y2hQdHIpKEpTR2xv
YmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVl
KTsKICAgICBNb2R1bGVMb2FkZXJGZXRjaFB0ciBtb2R1bGVMb2FkZXJGZXRjaDsKIAotICAgIHR5
cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyVHJhbnNsYXRlUHRyKShKU0ds
b2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1
ZSk7CisgICAgdHlwZWRlZiBKU0ludGVybmFsUHJvbWlzZSogKCpNb2R1bGVMb2FkZXJUcmFuc2xh
dGVQdHIpKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1Zh
bHVlLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKICAgICBNb2R1bGVMb2FkZXJUcmFuc2xhdGVQdHIgbW9k
dWxlTG9hZGVyVHJhbnNsYXRlOwogCi0gICAgdHlwZWRlZiBKU0ludGVybmFsUHJvbWlzZSogKCpN
b2R1bGVMb2FkZXJJbnN0YW50aWF0ZVB0cikoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBK
U01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOworICAgIHR5cGVkZWYgSlNJbnRlcm5h
bFByb21pc2UqICgqTW9kdWxlTG9hZGVySW5zdGFudGlhdGVQdHIpKEpTR2xvYmFsT2JqZWN0Kiwg
RXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlLCBKU1ZhbHVlKTsK
ICAgICBNb2R1bGVMb2FkZXJJbnN0YW50aWF0ZVB0ciBtb2R1bGVMb2FkZXJJbnN0YW50aWF0ZTsK
IAotICAgIHR5cGVkZWYgSlNWYWx1ZSAoKk1vZHVsZUxvYWRlckV2YWx1YXRlUHRyKShKU0dsb2Jh
bE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7
CisgICAgdHlwZWRlZiBKU1ZhbHVlICgqTW9kdWxlTG9hZGVyRXZhbHVhdGVQdHIpKEpTR2xvYmFs
T2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlLCBK
U1ZhbHVlKTsKICAgICBNb2R1bGVMb2FkZXJFdmFsdWF0ZVB0ciBtb2R1bGVMb2FkZXJFdmFsdWF0
ZTsKIAogICAgIHR5cGVkZWYgU3RyaW5nICgqRGVmYXVsdExhbmd1YWdlRnVuY3Rpb25QdHIpKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAK
aW5kZXggZDNiNWE2YTQ2ZjViZDQxNzM2MGIzMmQxNTY1ZTlkNjUxZjQ0MjExMS4uNGVhZWJkNzVk
NWFiY2M1OGVkMzc4MzNkYTIxNzAwOGRlZmE5ODA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcApAQCAtODYsNyArODYsNyBAQCBKU1Zh
bHVlIEpTTW9kdWxlTG9hZGVyOjpwcm92aWRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXks
IFN0YXR1cyBzdGF0dXMsIGNvbgogICAgIHJldHVybiBjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxs
VHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3VtZW50cyk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNl
KiBKU01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyKQorSlNJbnRlcm5hbFByb21pc2Uq
IEpTTW9kdWxlTG9hZGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKQog
ewogICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChleGVjLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubG9hZEFuZEV2YWx1YXRlTW9kdWxl
UHVibGljTmFtZSgpKSk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CkBAIC05NiwxMSArOTYsMTIg
QEAgSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1
bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHUKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1
bWVudHM7CiAgICAgYXJndW1lbnRzLmFwcGVuZChtb2R1bGVOYW1lKTsKICAgICBhcmd1bWVudHMu
YXBwZW5kKHJlZmVycmVyKTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKGluaXRpYXRvcik7CiAKICAg
ICByZXR1cm4ganNDYXN0PEpTSW50ZXJuYWxQcm9taXNlKj4oY2FsbChleGVjLCBmdW5jdGlvbiwg
Y2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzLCBhcmd1bWVudHMpKTsKIH0KIAotSlNJbnRlcm5hbFBy
b21pc2UqIEpTTW9kdWxlTG9hZGVyOjpsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyKQorSlNJbnRlcm5hbFByb21pc2UqIEpTTW9k
dWxlTG9hZGVyOjpsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBtb2R1bGVOYW1l
LCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBKU09iamVjdCog
ZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1l
cygpLmJ1aWx0aW5OYW1lcygpLmxvYWRNb2R1bGVQdWJsaWNOYW1lKCkpKTsKICAgICBDYWxsRGF0
YSBjYWxsRGF0YTsKQEAgLTExMCwxMSArMTExLDEyIEBAIEpTSW50ZXJuYWxQcm9taXNlKiBKU01v
ZHVsZUxvYWRlcjo6bG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlTmFt
CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwogICAgIGFyZ3VtZW50cy5hcHBl
bmQobW9kdWxlTmFtZSk7CiAgICAgYXJndW1lbnRzLmFwcGVuZChyZWZlcnJlcik7CisgICAgYXJn
dW1lbnRzLmFwcGVuZChpbml0aWF0b3IpOwogCiAgICAgcmV0dXJuIGpzQ2FzdDxKU0ludGVybmFs
UHJvbWlzZSo+KGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywg
YXJndW1lbnRzKSk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bGlu
a0FuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBtb2R1bGVLZXkpCitK
U0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlS2V5LCBKU1ZhbHVlIGluaXRpYXRvcikKIHsK
ICAgICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZXhlYywgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmxpbmtBbmRFdmFsdWF0ZU1vZHVsZVB1
YmxpY05hbWUoKSkpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpAQCAtMTIzLDMxICsxMjUsMzIg
QEAgSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1
bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHUKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFy
Z3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKG1vZHVsZUtleSk7CisgICAgYXJndW1lbnRz
LmFwcGVuZChpbml0aWF0b3IpOwogCiAgICAgcmV0dXJuIGpzQ2FzdDxKU0ludGVybmFsUHJvbWlz
ZSo+KGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1l
bnRzKSk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6cmVzb2x2ZShF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK0pTSW50ZXJu
YWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6cmVzb2x2ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgbmFtZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgaWYg
KE9wdGlvbnM6OmR1bXBNb2R1bGVMb2FkaW5nU3RhdGUoKSkKICAgICAgICAgZGF0YUxvZygiTG9h
ZGVyIFtyZXNvbHZlXSAiLCBwcmludGFibGVNb2R1bGVLZXkoZXhlYywgbmFtZSksICJcbiIpOwog
CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgp
LT5tb2R1bGVMb2FkZXJSZXNvbHZlKQotICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJSZXNvbHZlKGdsb2JhbE9iamVjdCwg
ZXhlYywgdGhpcywgbmFtZSwgcmVmZXJyZXIpOworICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0
LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJSZXNvbHZlKGdsb2JhbE9i
amVjdCwgZXhlYywgdGhpcywgbmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcik7CiAgICAgSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
OjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICBkZWZlcnJlZC0+cmVzb2x2ZShleGVj
LCBuYW1lKTsKICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKIH0KIAotSlNJbnRlcm5h
bFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
a2V5KQorSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBpZiAoT3B0aW9u
czo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQogICAgICAgICBkYXRhTG9nKCJMb2FkZXIgW2Zl
dGNoXSAiLCBwcmludGFibGVNb2R1bGVLZXkoZXhlYywga2V5KSwgIlxuIik7CiAKICAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwog
ICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxv
YWRlckZldGNoKQotICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJGZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtl
eSk7CisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
KCktPm1vZHVsZUxvYWRlckZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBpbml0
aWF0b3IpOwogICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgU3Ry
aW5nIG1vZHVsZUtleSA9IGtleS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CkBAIC0xNjAsNDAgKzE2Myw0MCBAQCBKU0ludGVybmFs
UHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmZldGNoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBr
ZXkpCiAgICAgcmV0dXJuIGRlZmVycmVkLT5wcm9taXNlKCk7CiB9CiAKLUpTSW50ZXJuYWxQcm9t
aXNlKiBKU01vZHVsZUxvYWRlcjo6dHJhbnNsYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBr
ZXksIEpTVmFsdWUgcGF5bG9hZCkKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6
dHJhbnNsYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgcGF5bG9hZCwg
SlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgaWYgKE9wdGlvbnM6OmR1bXBNb2R1bGVMb2FkaW5n
U3RhdGUoKSkKICAgICAgICAgZGF0YUxvZygiTG9hZGVyIFt0cmFuc2xhdGVdICIsIHByaW50YWJs
ZU1vZHVsZUtleShleGVjLCBrZXkpLCAiXG4iKTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAgICAgaWYgKGdsb2JhbE9i
amVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyVHJhbnNsYXRlKQot
ICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5t
b2R1bGVMb2FkZXJUcmFuc2xhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIHBheWxv
YWQpOworICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSgpLT5tb2R1bGVMb2FkZXJUcmFuc2xhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXks
IHBheWxvYWQsIGluaXRpYXRvcik7CiAgICAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVm
ZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2Jq
ZWN0KTsKICAgICBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBwYXlsb2FkKTsKICAgICByZXR1cm4g
ZGVmZXJyZWQtPnByb21pc2UoKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9h
ZGVyOjppbnN0YW50aWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNv
dXJjZSkKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6aW5zdGFudGlhdGUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBzb3VyY2UsIEpTVmFsdWUgaW5pdGlh
dG9yKQogewogICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCiAgICAg
ICAgIGRhdGFMb2coIkxvYWRlciBbaW5zdGFudGlhdGVdICIsIHByaW50YWJsZU1vZHVsZUtleShl
eGVjLCBrZXkpLCAiXG4iKTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVySW5zdGFudGlhdGUpCi0gICAgICAgIHJl
dHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRl
ckluc3RhbnRpYXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBzb3VyY2UpOworICAg
ICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1
bGVMb2FkZXJJbnN0YW50aWF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgc291cmNl
LCBpbml0aWF0b3IpOwogICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0g
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAg
ICAgZGVmZXJyZWQtPnJlc29sdmUoZXhlYywganNVbmRlZmluZWQoKSk7CiAgICAgcmV0dXJuIGRl
ZmVycmVkLT5wcm9taXNlKCk7CiB9CiAKLUpTVmFsdWUgSlNNb2R1bGVMb2FkZXI6OmV2YWx1YXRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUp
CitKU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUga2V5LCBKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsK
ICAgICBpZiAoT3B0aW9uczo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQogICAgICAgICBkYXRh
TG9nKCJMb2FkZXIgW2V2YWx1YXRlXSAiLCBwcmludGFibGVNb2R1bGVLZXkoZXhlYywga2V5KSwg
IlxuIik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKCktPm1vZHVsZUxvYWRlckV2YWx1YXRlKQotICAgICAgICByZXR1cm4gZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJFdmFsdWF0ZShnbG9i
YWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgbW9kdWxlUmVjb3JkVmFsdWUpOworICAgICAgICBy
ZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2Fk
ZXJFdmFsdWF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgbW9kdWxlUmVjb3JkVmFs
dWUsIGluaXRpYXRvcik7CiAKICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0ganNE
eW5hbWljQ2FzdDxKU01vZHVsZVJlY29yZCo+KG1vZHVsZVJlY29yZFZhbHVlKTsKICAgICBpZiAo
IW1vZHVsZVJlY29yZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVs
ZUxvYWRlci5oCmluZGV4IDRjZDU5MDQwNjVlZjVmZjU2ZGE5Yjg1MGVmYmI5YmYwNzRlNDA0MDMu
LmI4N2I3YWViNWE5M2QxOTgwOTRjNzE3ZTdjNThjMjBmYTJjZTY2Y2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaApAQCAtNjMsMTggKzYzLDE4
IEBAIGNsYXNzIEpTTW9kdWxlTG9hZGVyIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogCiAg
ICAgLy8gQVBJcyB0byBjb250cm9sIHRoZSBtb2R1bGUgbG9hZGVyLgogICAgIEpTVmFsdWUgcHJv
dmlkZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgU3RhdHVzLCBjb25zdCBTdHJpbmcmKTsKLSAg
ICBKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIEpT
VmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcik7Ci0gICAgSlNJbnRlcm5hbFByb21p
c2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJl
ZmVycmVyKTsKLSAgICBKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4
ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlS2V5KTsKKyAgICBKU0ludGVybmFsUHJvbWlzZSogbG9h
ZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1
ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpOworICAgIEpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkTW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJl
ciwgSlNWYWx1ZSBpbml0aWF0b3IpOworICAgIEpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZh
bHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVLZXksIEpTVmFsdWUgaW5pdGlh
dG9yKTsKIAogICAgIC8vIFBsYXRmb3JtIGRlcGVuZGVudCBob29rZWQgQVBJcy4KLSAgICBKU0lu
dGVybmFsUHJvbWlzZSogcmVzb2x2ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG5hbWUsIEpTVmFsdWUg
cmVmZXJyZXIpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiBmZXRjaChFeGVjU3RhdGUqLCBKU1Zh
bHVlIGtleSk7Ci0gICAgSlNJbnRlcm5hbFByb21pc2UqIHRyYW5zbGF0ZShFeGVjU3RhdGUqLCBK
U1ZhbHVlIGtleSwgSlNWYWx1ZSBwYXlsb2FkKTsKLSAgICBKU0ludGVybmFsUHJvbWlzZSogaW5z
dGFudGlhdGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBrZXksIEpTVmFsdWUgc291cmNlKTsKKyAgICBK
U0ludGVybmFsUHJvbWlzZSogcmVzb2x2ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG5hbWUsIEpTVmFs
dWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0ludGVybmFsUHJvbWlzZSog
ZmV0Y2goRXhlY1N0YXRlKiwgSlNWYWx1ZSBrZXksIEpTVmFsdWUgaW5pdGlhdG9yKTsKKyAgICBK
U0ludGVybmFsUHJvbWlzZSogdHJhbnNsYXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1Zh
bHVlIHBheWxvYWQsIEpTVmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0ludGVybmFsUHJvbWlzZSog
aW5zdGFudGlhdGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBrZXksIEpTVmFsdWUgc291cmNlLCBKU1Zh
bHVlIGluaXRpYXRvcik7CiAKICAgICAvLyBBZGRpdGlvbmFsIHBsYXRmb3JtIGRlcGVuZGVudCBo
b29rZWQgQVBJcy4KLSAgICBKU1ZhbHVlIGV2YWx1YXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5
LCBKU1ZhbHVlIG1vZHVsZVJlY29yZCk7CisgICAgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUq
LCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTVmFsdWUgaW5pdGlhdG9yKTsK
IAogcHJvdGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVj
dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9h
ZGVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxv
YWRlclByb3RvdHlwZS5jcHAKaW5kZXggOTAwZDYzZTJmYjY3MDIwN2VjZmFlYWY5YmM1ZjcxZTQy
ZmU2MzEwYS4uZTYxMjA1YjI0ZjMwNzFmZThlNDllZmM1MGNkNmVjMjZiZDgxMDdhYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJQcm90
b3R5cGUuY3BwCkBAIC0xODEsNyArMTgxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtb2R1bGVMb2FkZXJQcm90b3R5cGVSZXNvbHZlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU01v
ZHVsZUxvYWRlciogbG9hZGVyID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZUxvYWRlcio+KGV4ZWMt
PnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRl
ci0+cmVzb2x2ZShleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSkpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+cmVzb2x2ZShleGVjLCBleGVjLT5h
cmd1bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSksIGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiB9CiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlRmV0Y2go
RXhlY1N0YXRlKiBleGVjKQpAQCAtMTk0LDcgKzE5NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlRmV0Y2goRXhlY1N0YXRlKiBleGVjKQogICAg
IEpTTW9kdWxlTG9hZGVyKiBsb2FkZXIgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlTG9hZGVyKj4o
ZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
bG9hZGVyLT5mZXRjaChleGVjLCBleGVjLT5hcmd1bWVudCgwKSkpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUobG9hZGVyLT5mZXRjaChleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgZXhlYy0+
YXJndW1lbnQoMSkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVM
b2FkZXJQcm90b3R5cGVUcmFuc2xhdGUoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjA2LDcgKzIwNiw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlVHJh
bnNsYXRlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU01vZHVsZUxvYWRlciogbG9hZGVyID0ganNE
eW5hbWljQ2FzdDxKU01vZHVsZUxvYWRlcio+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAo
IWxvYWRlcikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+dHJhbnNsYXRlKGV4ZWMsIGV4ZWMt
PmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUobG9hZGVyLT50cmFuc2xhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFy
Z3VtZW50KDEpLCBleGVjLT5hcmd1bWVudCgyKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUluc3RhbnRpYXRlKEV4ZWNTdGF0ZSogZXhl
YykKQEAgLTIyMCw3ICsyMjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVs
ZUxvYWRlclByb3RvdHlwZUluc3RhbnRpYXRlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU01vZHVs
ZUxvYWRlciogbG9hZGVyID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZUxvYWRlcio+KGV4ZWMtPnRo
aXNWYWx1ZSgpKTsKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+
aW5zdGFudGlhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmluc3RhbnRpYXRlKGV4ZWMsIGV4
ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSwgZXhlYy0+YXJndW1lbnQoMikpKTsK
IH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLSBBZGRpdGlvbmFsIEhvb2sgRnVuY3Rpb25zIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjMzLDcgKzIzMyw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlRXZhbHVhdGUoRXhlY1N0YXRl
KiBleGVjKQogICAgIEpTTW9kdWxlTG9hZGVyKiBsb2FkZXIgPSBqc0R5bmFtaWNDYXN0PEpTTW9k
dWxlTG9hZGVyKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbG9hZGVyKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUobG9hZGVyLT5ldmFsdWF0ZShleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgZXhl
Yy0+YXJndW1lbnQoMSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+ZXZh
bHVhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpLCBleGVjLT5h
cmd1bWVudCgyKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggOTMzYTJlNTE4NGFiOTlmZjI2ZmNjMTJmNjIzMGI4ZDAz
ZWUxOWQ4MC4uZGQ2YjMwNWVmMTIxOWQzYTEwMzQyMzc3YTgwOThmZjBiOTc2YWU1MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTY0LDcgKzY0LDcgQEAgY2xhc3Mg
U3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBTeW1ib2woVk0mKTsKICAgICBT
eW1ib2woVk0mLCBjb25zdCBTdHJpbmcmKTsKLSAgICBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1
aWQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggMTZhNWM1YjQxNjI5NGRkNjBlMWY1YmIxOTE1ZDNiNzAyNTUzNWRjOC4uZjQxZDkwZTNhYTgx
ZjEwMTUwZjRhZjIyZGY2ZDQ5ZjZmY2VjZmVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEy
MTIsNiArMTIxMiw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU01l
c3NhZ2VDaGFubmVsQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCisgICAgYmlu
ZGluZ3MvanMvSlNNb2R1bGVGZXRjaGVyLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTTW9kdWxlR3Jh
cGguY3BwCiAgICAgYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2OWIyMTJmNzU1ZTIwNWVjMWI3ZTViZTgxMzMxMWM0ZDkwOWJk
NzM5Li5kOGRjNWMyYzlhMWNiNTQ2ZDczOGNkZmZkMWY1NTI0YWU1MzViOWY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTMy
Miw2ICsyNTMyMiw3IEBACiAJCQkJOTM3RkYzRDUxQTEwMTJENjAwOEVCQTMxIC8qIERpY3Rpb25h
cnlMb29rdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENTY0NkIwMUI4Rjg0OTMwMDNDNDk5NCAv
KiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNE
MTMxMDA4REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzM5
QTUyNDFCQTZCRDQ2MDBBM0E3QUUgLyogSlNNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDMxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxh
eUxpc3RJdGVtcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjg1Nyw2ICsyNjg1OCw3IEBACiAJCQkJ
Q0UxMjUyNDExQTE2QjFCNjAwODY0NDgwIC8qIE1lZGlhUGxheWVyU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBp
biBIZWFkZXJzICovLAorCQkJCUUzODgzODk5MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkMwQTM5REFDQzAwMjIwRkU1IC8qIE1l
ZGlhUXVlcnlFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTRFMTk1OTJFMEEzOURBQ0Mw
MDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0E5NEEzOTEy
MkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjc5
NTEsNiArMjc5NTMsNyBAQAogCQkJCTA4MEU0OTI4MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0
TGF5b3V0RW5naW5lU3BhY2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGMEJGQzYxMjU1QzUz
QzAwMDc1MTg1IC8qIFNWR1RleHRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTE3NDQ1
OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMzg4Mzg5NzFCQUQxNDVGMDBENjJFRTMgLyogSlNNb2R1bGVGZXRjaGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyN0FDRTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVGV4dFBhdGhF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FEMTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMjUx
MjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODc1
OCw2ICsyODc2MSw3IEBACiAJCQkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8qIEF1ZGlvRGVz
dGluYXRpb25JT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQkMxMkIwMjcyQTAwQzFB
MzU5IC8qIEF1ZGlvRGVzdGluYXRpb25NYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYw
MDcxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUUzMzlBNTIzMUJBNkJENDYwMEEzQTdBRSAvKiBKU01vZHVsZUdyYXBoLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZEMzE2MDgxMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0RTUEtl
cm5lbFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU1OTY5MTE0NzVCNjc4MDAx
RDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2
MEJFMTJCMDI3MkEwMEMxQTM1OSAvKiBBdWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yOTY1MCw2ICsyOTY1NCw3IEBACiAJCQkJQTg3MURCMkUwQTE1MEJENjAwQjEyQTY4
IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjI5
MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDb2xFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4NzFEQjI4MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzODgzODk2MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUZl
dGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURCMkQwQTE1MEJENjAwQjEyQTY4IC8q
IEhUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjMwMEEx
NTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVSb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzNDQyQ0EwMEQyQjMzNjAwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDc3NDc3OGQ0MGIwYmE0ODhlMWM5NWMyOTk3N2FmYjg5
OGM0MmQ3MzEuLjI3YWY2YWFhZTVhYjdkMmNkYTFhNjVkNmEzZGYyZWRkMjg4NjA5OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApA
QCAtMTEwLDYgKzExMCw4IEBACiAjaW5jbHVkZSAiSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTWVzc2Fn
ZVBvcnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTTW9kdWxlRmV0Y2hlci5jcHAiCisjaW5jbHVk
ZSAiSlNNb2R1bGVHcmFwaC5jcHAiCiAjaW5jbHVkZSAiSlNNb2R1bGVMb2FkZXIuY3BwIgogI2lu
Y2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2Vy
dmVyQ3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCmluZGV4IDY5MDc0ZjcyMzVjYWMyZmJlMTQ2NjIzZGUxY2RhZjA2Nzk2MjkyMzEu
LmMzNGMxMGM5NjM2YTUyOWIyYWFhZmU2ZDIxNDcyZDdmMDlmMTEyZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMzIzLDI5ICszMjMs
MjkgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0Zv
cldpbmRvdyhET01XaW5kb3cqIHdpbmRvdykKIH0KIAogCi1KU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5KQorSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwg
SlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwg
SlNDOjpKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmpl
Y3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwogICAgIGlm
IChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3Vt
ZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUo
Z2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIGltcG9ydGVyTW9k
dWxlS2V5KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+cmVzb2x2
ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1wb3J0ZXJN
b2R1bGVLZXksIGluaXRpYXRvcik7CiAgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
KiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMs
IGdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRl
ZmluZWQoKSk7CiB9CiAKLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6
OkpTVmFsdWUgbW9kdWxlS2V5KQorSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dC
YXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAg
SlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNl
Kj4oZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRo
aXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQt
Pm1vZHVsZUxvYWRlcigpLT5mZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwg
bW9kdWxlS2V5KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+ZmV0
Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgaW5pdGlhdG9y
KTsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpK
U0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAg
ICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlND
OjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01v
ZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpT
VmFsdWUgbW9kdWxlUmVjb3JkKQorSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpT
VmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUg
aW5pdGlhdG9yKQogewogICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7CiAgICAgaWYgKFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0
LCBleGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkKTsKKyAgICAgICAg
cmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBl
eGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBpbml0aWF0b3IpOwog
ICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggODBkOTYwOGZhNjAzMDdlMTYwMGZjMjFj
OWFkODZmMmQ3ZDkzMmE0Yi4uZjVmM2JlMDUyM2U1OTY5YWQyZTM3MTYwZmJlNDBiY2M2NzJkYzM5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAg
LTc4LDkgKzc4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBKU0M6OldhdGNocG9p
bnRTZXQgbV93aW5kb3dDbG9zZVdhdGNocG9pbnRzOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
c3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKLSAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUpOwotICAgICAgICBz
dGF0aWMgSlNDOjpKU1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBt
b2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpK
U1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxv
YWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlND
OjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwogCiAgICAgICAgIFJlZlB0cjxET01XaW5kb3c+IG1f
d3JhcHBlZDsKICAgICAgICAgSlNET01XaW5kb3dTaGVsbCogbV9zaGVsbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKaW5kZXggMGVl
MzE3MmUzMmE1NzFkYzIwMWMwYTkwNDM0M2U2OTg2YzEzYWRmMC4uNGE3NzRlOTAxMDJlZDA3ZDll
MzBjNmVjZjJiNmNkOTJjY2I4NzYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKQEAgLTkzLDYgKzkzLDI0IEBAIGNsYXNzIEpT
TWFpblRocmVhZEV4ZWNTdGF0ZSB7CiAgICAgICAgIHRhc2sucnVuKGV4ZWMpOwogICAgIH0KIAor
ICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbml0aWF0
b3IpCisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4
ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsb2FkTW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUsIGlu
aXRpYXRvcik7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxv
YWRNb2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6U291cmNlQ29kZSYgc291
cmNlQ29kZSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcikKKyAgICB7CisgICAgICAgIEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6Omxv
YWRNb2R1bGUoZXhlYywgc291cmNlQ29kZSwgaW5pdGlhdG9yKTsKKyAgICB9CisKKyAgICBzdGF0
aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIG1vZHVsZUtleSwgSlNDOjpKU1Zh
bHVlIGluaXRpYXRvcikKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJy
ZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVs
ZShleGVjLCBtb2R1bGVLZXksIGluaXRpYXRvcik7CisgICAgfQorCiAgICAgc3RhdGljIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBpbnN0cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBKU0M6OkNhbGxUeXBlLCBjb25zdCBKU0M6OkNhbGxEYXRhJik7CiAg
ICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBpbnN0cnVtZW50RnVuY3Rp
b25Db25zdHJ1Y3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEpTQzo6Q29uc3RydWN0VHlwZSwg
Y29uc3QgSlNDOjpDb25zdHJ1Y3REYXRhJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01vZHVsZUZldGNoZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNTI3YWUyY2ExMzQ2NTI2ZWEw
ZDFjODA0ZDA1YzQ4MmZiZDkyZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuY3BwCkBAIC0wLDAgKzEsMTQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTTW9kdWxlRmV0Y2hlci5oIgor
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3Jp
cHQuaCIKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTTW9kdWxlTG9hZGVyLmgiCisj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitKU01vZHVsZUZldGNoZXI6OkpTTW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1
bWVudChkb2N1bWVudCkKKyAgICAsIG1fc291cmNlVVJMKHNvdXJjZVVSTCkKKyAgICAsIG1fZ2xv
YmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0KQorICAgICwgbV9kZWZl
cnJlZChnbG9iYWxPYmplY3QtPnZtKCksIGRlZmVycmVkKQoreworfQorCitKU01vZHVsZUZldGNo
ZXI6On5KU01vZHVsZUZldGNoZXIoKQoreworICAgIGlmIChtX2NhY2hlZFNjcmlwdCkgeworICAg
ICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICBtX2NhY2hl
ZFNjcmlwdCA9IG51bGxwdHI7CisgICAgfQorfQorCitSZWY8SlNNb2R1bGVGZXRjaGVyPiBKU01v
ZHVsZUZldGNoZXI6OmNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25z
dCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJl
ZCwgRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpTTW9k
dWxlRmV0Y2hlcihnbG9iYWxPYmplY3QsIHNvdXJjZVVSTCwgZGVmZXJyZWQsIGRvY3VtZW50KSk7
Cit9CisKK2Jvb2wgSlNNb2R1bGVGZXRjaGVyOjpydW4oU2NyaXB0RWxlbWVudCogZWxlbWVudCkK
K3sKKyAgICBpZiAoZWxlbWVudCkKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSBlbGVtZW50LT5y
ZXF1ZXN0TW9kdWxlU2NyaXB0KG1fc291cmNlVVJMKTsKKyAgICBlbHNlIHsKKyAgICAgICAgUmVz
b3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpOworICAgICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0
eVBvbGljeUltcG9zaXRpb24gPSBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1Bv
bGljeUNoZWNrOworCisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291
cmNlUmVxdWVzdChtX3NvdXJjZVVSTCksIG9wdGlvbnMpOworCisgICAgICAgIC8vIE1vZHVsZSBm
ZXRjaGVyIGFsd2F5cyBpbnRlcnByZXQgc2NyaXB0cyBhcyBVVEYtOC4KKyAgICAgICAgLy8gaHR0
cHM6Ly9naXRodWIuY29tL3doYXR3Zy9sb2FkZXIvaXNzdWVzLzgzCisgICAgICAgIHJlcXVlc3Qu
c2V0Q2hhcnNldChBU0NJSUxpdGVyYWwoInV0Zi04IikpOworCisgICAgICAgIC8vIEZJWE1FOiBT
aG91bGQgaGFuZGxlICJjcm9zc29yaWdpbiIgb3B0aW9ucy4KKyAgICAgICAgLy8gT25jZSB0aGUg
c3BlYyBkZXNjcmliZXMgdGhlIGRldGFpbHMsIHdlIHdpbGwgZm9sbG93IGl0LgorICAgICAgICBy
ZXF1ZXN0LnNldEluaXRpYXRvcihBdG9taWNTdHJpbmcobV9zb3VyY2VVUkwuc3RyaW5nKCkpKTsK
KworICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOworICAgIH0KKworICAgIGlmICghbV9jYWNoZWRT
Y3JpcHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIE5vdGU6IElmIHRoZSBjb250
ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGltbWVpZGF0ZWx5IGNhbGxzIG5vdGlmeUZpbmlz
aGVkLgorICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgSlNNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2UpCit7CisgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2Ug
PT0gbV9jYWNoZWRTY3JpcHQpOworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJl
dHVybjsKKworICAgIEFTU0VSVChtX2NhY2hlZFNjcmlwdCk7CisgICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQgPSBtX2NhY2hlZFNjcmlwdDsKKyAgICBt
X2NhY2hlZFNjcmlwdCA9IG51bGxwdHI7CisKKyNpZiBFTkFCTEUoTk9TTklGRikKKyAgICBpZiAo
Y2FjaGVkU2NyaXB0ICYmICFjYWNoZWRTY3JpcHQtPm1pbWVUeXBlQWxsb3dlZEJ5Tm9zbmlmZigp
KSB7CisgICAgICAgIG1fZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0
IGZyb20gJyIgKyBjYWNoZWRTY3JpcHQtPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xl
bmd0aCgpICsgIicgYmVjYXVzZSBpdHMgTUlNRSB0eXBlICgnIiArIGNhY2hlZFNjcmlwdC0+bWlt
ZVR5cGUoKSArICInKSBpcyBub3QgZXhlY3V0YWJsZSwgYW5kIHN0cmljdCBNSU1FIHR5cGUgY2hl
Y2tpbmcgaXMgZW5hYmxlZC4iKTsKKyAgICAgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQo
dGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIFJlZjxEb2N1bWVu
dD4gcHJvdGVjdG9yKG1fZG9jdW1lbnQpOworCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9j
dW1lbnQuZnJhbWUoKSkgeworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKG1fZ2xvYmFs
T2JqZWN0LT52bSgpKTsKKyAgICAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9i
amVjdC0+Z2xvYmFsRXhlYygpOworICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LT5lcnJvck9jY3Vy
cmVkKCkpIHsKKyAgICAgICAgICAgIC8vIFRoZSBtb2R1bGUgbG9hZGVyIHBpcGVsaW5lIGlzIGNv
bnN0cnVjdGVkIGFzIGEgY2hhaW4gb2YgcHJvbWlzZXMuCisgICAgICAgICAgICAvLyBSZWplY3Rp
bmcgYSBwcm9taXNlIGlmIHNvbWUgZXJyb3Igb2NjdXJzIGlzIGltcG9ydGFudCBiZWNhdXNlIHRo
ZSBleGVjdXRpb24gZmxvdyBvZgorICAgICAgICAgICAgLy8gdGhlIHByb21pc2UgY2hhaW4gaXMg
ZHJpdmVuIGJ5ICJyZWplY3RlZCIgb3IgImZ1bGZpbGxlZCIgZXZlbnRzLgorICAgICAgICAgICAg
Ly8gSWYgdGhlIHByb21pc2UgaXMgbm90IHJlamVjdGVkIHdoaWxlIGVycm9yIG9jY3VycywgcmVq
ZWN0IGhhbmRsZXIgd29uJ3QgYmUgZXhlY3V0ZWQKKyAgICAgICAgICAgIC8vIGFuZCBhbGwgdGhl
IHN1YnNlcXVlbnQgcHJvbWlzZSBjaGFpbiB3aWxsIHdhaXQgdGhlIHJlc3VsdCBmb3JldmVyLgor
ICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFzIGEgcmVzdWx0LCBldmVuIGlmIHRoZSBl
cnJvciBpcyBhbHJlYWR5IHJlcG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgZWxzZXdoZXJlLAorICAg
ICAgICAgICAgLy8gaXQgc2hvdWxkIGJlIHByb3BhZ2F0ZWQgaW4gdGhlIHBpcGVsaW5lLiBGb3Ig
ZXhhbXBsZSwgdGhlIGVycm9yIG9mIGxvYWRpbmcKKyAgICAgICAgICAgIC8vIENhY2hlZFJlc291
cmNlIGlzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBieSB0aGUgbG9hZGVyLiBC
dXQgd2Ugc3RpbGwgbmVlZAorICAgICAgICAgICAgLy8gdG8gcmVqZWN0IHRoZSBwcm9taXNlIGJ5
IHNvbWUgZXJyb3IuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTm90IHRvIHJlcG9y
dCB0aGUgZXJyb3IgdHdpY2UsIHdoZW4gd2UgcHJvcGFnYXRlIHRoZSBlcnJvciB0aGF0IGlzIGFs
cmVhZHkgcmVwb3J0ZWQKKyAgICAgICAgICAgIC8vIHRvIHRoZSBpbnNwZWN0b3IsIHdlIHRocm93
IG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sIHN5bWJvbCBpbnN0ZWFkLgor
ICAgICAgICAgICAgLy8gQnkgY29tcGFyaW5nIHRoZSB0aHJvd24gZXJyb3Igd2l0aCB0aGlzIHN5
bWJvbCwgd2UgY2FuIGRpc3Rpbmd1aXNoIGVycm9ycyByYWlzZWQKKyAgICAgICAgICAgIC8vIHdo
ZW4gbGlua2luZyBvciBleGVjdXRpbmcgYSBtb2R1bGUgZ3JhcGggZnJvbSBlcnJvcnMgcmVwb3J0
ZWQgYWxyZWFkeS4KKyAgICAgICAgICAgIC8vIEluIHRoZSByZWplY3QgaGFuZGxlciBvZiB0aGUg
cHJvbWlzZSwgd2Ugb25seSByZXBvcnQgYSBlcnJvciB0aGF0IGlzIG5vdCB0aGlzIHN5bWJvbC4K
KyAgICAgICAgICAgIG1fZGVmZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OlN5bWJvbDo6Y3JlYXRl
KGV4ZWMtPnZtKCksICooZnJhbWUtPnNjcmlwdCgpLm1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKCkudWlkKCkpKSk7CisgICAgICAgIH0gZWxzZSBpZiAoIWNhY2hlZFNjcmlw
dC0+d2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VD
b2RlKGNhY2hlZFNjcmlwdC5nZXQoKSk7CisgICAgICAgICAgICBtX2RlZmVycmVkLT5yZXNvbHZl
KGV4ZWMsIEpTQzo6anNTdHJpbmcoZXhlYywgc291cmNlQ29kZS5zb3VyY2UoKS50b1N0cmluZygp
KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBBIENhY2hlZFJlc291cmNlSGFuZGxlIGFs
b25lIGRvZXMgbm90IHByZXZlbnQgdGhlIHVuZGVybHlpbmcgQ2FjaGVkUmVzb3VyY2UKKyAgICAv
LyBmcm9tIHB1cmdpbmcgaXRzIGRhdGEgYnVmZmVyLiBVbnRpbCB3ZSBmaW5pc2ggdXNpbmcgdGhl
IGJhY2tpbmcgYnVmZmVyIG9mIHRoZQorICAgIC8vIGNhY2hlZCBzY3JpcHQsIHdlIGRvbid0IHJl
bW92ZSB0aGUgY2xpZW50LgorICAgIGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwor
CisgICAgbV9kb2N1bWVudC5tb2R1bGVMb2FkZXIoKS0+bm90aWZ5RmluaXNoZWQodGhpcyk7Cisg
ICAgLy8gQWZ0ZXIgSlNNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBt
YXkgYmUgZGVzdHJveWVkLgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01vZHVsZUZldGNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TW9kdWxlRmV0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjOTUwNzU4NGEwODNkYTMzY2ZhMzc4N2M3OGE1
NTZiMDliZTlhOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01vZHVsZUZldGNoZXIuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBKU01vZHVsZUZldGNoZXJfaAorI2RlZmluZSBKU01vZHVsZUZldGNoZXJfaAorCisjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRs
ZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJVUkwuaCIKKyNpbmNs
dWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkU2NyaXB0
OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIFNjcmlw
dEVsZW1lbnQ7CisKK2NsYXNzIEpTTW9kdWxlRmV0Y2hlciA6IHB1YmxpYyBSZWZDb3VudGVkPEpT
TW9kdWxlRmV0Y2hlcj4sIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEpTTW9kdWxlRmV0Y2hlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SlNNb2R1bGVGZXRjaGVyPiBjcmVhdGUoSlNET01H
bG9iYWxPYmplY3QqLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkKiwgRG9jdW1lbnQmKTsKKworICAgIH5KU01vZHVsZUZldGNoZXIoKTsKKworICAg
IGJvb2wgcnVuKFNjcmlwdEVsZW1lbnQqKTsKKworICAgIENhY2hlZFNjcmlwdCogY2FjaGVkU2Ny
aXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBK
U01vZHVsZUZldGNoZXIoSlNET01HbG9iYWxPYmplY3QqLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwg
SlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQmKTsKKworICAgIC8vIEZv
ciBDYWNoZWRSZXNvdXJjZUNsaWVudC4KKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBVUkwg
bV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJvbmc8SlNET01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFs
T2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZD4g
bV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2Fj
aGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEpTTW9kdWxlRmV0Y2hlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01vZHVsZUdyYXBoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxl
R3JhcGguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4NzU0Y2RiNzRhZTRmMDI0NDZjYWMyMmI5MmE0YmZiZTM2
Mjk5ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01v
ZHVsZUdyYXBoLmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkpTTW9kdWxlR3JhcGguaCIKKworI2luY2x1ZGUgIkRPTVdyYXBw
ZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgor
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
IkpTTW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1
ZGUgIlNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKKyNpbmNsdWRl
ICJTY3JpcHRTb3VyY2VDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSlNNb2R1bGVH
cmFwaDo6SlNNb2R1bGVHcmFwaChFbGVtZW50JiBlbGVtZW50KQorICAgIDogbV9lbGVtZW50KGVs
ZW1lbnQpCisgICAgLCBtX3dlYWtQdHJGYWN0b3J5KCZlbGVtZW50KQoreworfQorCit2b2lkIEpT
TW9kdWxlR3JhcGg6Om5vdGlmeUxvYWRlZChVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KQor
eworICAgIG1fbW9kdWxlS2V5ID0gbW9kdWxlS2V5OworICAgIG1fZWxlbWVudC5kb2N1bWVudCgp
LnNjcmlwdFJ1bm5lcigpLT5ub3RpZnlKU01vZHVsZUdyYXBoUmVhZHkodG9TY3JpcHRFbGVtZW50
SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgSlNNb2R1bGVHcmFwaDo6bm90aWZ5
RXJyb3JlZCgpCit7CisgICAgbV9lcnJvcmVkID0gdHJ1ZTsKKyAgICBtX2VsZW1lbnQuZG9jdW1l
bnQoKS5zY3JpcHRSdW5uZXIoKS0+bm90aWZ5SlNNb2R1bGVHcmFwaFJlYWR5KHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoJm1fZWxlbWVudCkpOworfQorCit2b2lkIEpTTW9kdWxlR3JhcGg6OmV2
YWx1YXRlKCkKK3sKKyAgICBpZiAobV9lcnJvcmVkKQorICAgICAgICB0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAgICBlbHNlIGlm
IChGcmFtZSogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBm
cmFtZS0+c2NyaXB0KCkubGlua0FuZEV2YWx1YXRlTW9kdWxlKCp0aGlzLCBtX2VsZW1lbnQpOwor
fQorCit2b2lkIEpTTW9kdWxlR3JhcGg6Om5vdGlmeUV2YWx1YXRlZCgpCit7CisgICAgdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KS0+ZGlzcGF0Y2hMb2FkRXZlbnQoKTsKK30K
Kwordm9pZCBKU01vZHVsZUdyYXBoOjpsb2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sK
KyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50
LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgbW9kdWxlTmFt
ZSwgbV9lbGVtZW50KTsKK30KKwordm9pZCBKU01vZHVsZUdyYXBoOjpsb2FkKGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1bWVu
dCgpLmZyYW1lKCkpOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgp
LmxvYWRNb2R1bGUoKnRoaXMsIHNvdXJjZUNvZGUsIG1fZWxlbWVudCk7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlR3JhcGguaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlR3JhcGguaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmFkZjBl
ZjU5ZjNmMjRmYmY3NWQ0YzIyNTA0MzhlMTY2NGU0ZDQzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5oCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIEpTTW9kdWxlR3JhcGhfaAorI2RlZmluZSBKU01vZHVsZUdy
YXBoX2gKKworI2luY2x1ZGUgIkpTTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1l
bnQ7CitjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOworCisvLyBLZWVwIGxpZmV0aW1lIG9mIGEgSlNN
b2R1bGVHcmFwaCB0aGUgc2FtZSB0byBhIFNjcmlwdEVsZW1lbnQuCitjbGFzcyBKU01vZHVsZUdy
YXBoIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShKU01vZHVsZUdyYXBoKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgSlNNb2R1bGVHcmFwaChFbGVt
ZW50Jik7CisKKyAgICBFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50OyB9Cisg
ICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIHsgcmV0dXJuIG1fbW9kdWxlS2V5Lmdl
dCgpOyB9CisKKyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKKyAgICB2
b2lkIGxvYWQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworICAgIHZvaWQgZXZhbHVhdGUoKTsK
KworICAgIFdlYWtQdHI8RWxlbWVudD4gd2Vha0VsZW1lbnRQdHIoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIH0KKworICAgIHZv
aWQgbm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkpOworICAgIHZvaWQg
bm90aWZ5RXJyb3JlZCgpOworCisgICAgdm9pZCBub3RpZnlFdmFsdWF0ZWQoKTsKKworICAgIGJv
b2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JlZDsgfQorICAgIGJvb2wg
aXNMb2FkZWQoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleTsgfQorCitwcml2YXRlOgorCisg
ICAgRWxlbWVudCYgbV9lbGVtZW50OworICAgIFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gbV9t
b2R1bGVLZXk7CisgICAgV2Vha1B0ckZhY3Rvcnk8RWxlbWVudD4gbV93ZWFrUHRyRmFjdG9yeTsK
KyAgICBib29sIG1fZXJyb3JlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBKU01vZHVsZUxvYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01vZHVsZUxvYWRlci5jcHAKaW5kZXggYmExZTNlY2MxZGQwYzZlZWFlYmUyNzBl
YjRjYmYyNWVlNDc4YTUxOS4uYmQwZjExNGNmMjRiOTg2ZDM5NjdjNWQ3NTU2ODUwMzlhMzEzOWVh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcApA
QCAtMzAsNiArMzAsOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTRWxlbWVudC5o
IgorI2luY2x1ZGUgIkpTTW9kdWxlRmV0Y2hlci5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KICNp
bmNsdWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1N0
cmluZy5oPgpAQCAtNDIsNyArNDUsNyBAQCBKU01vZHVsZUxvYWRlcjo6SlNNb2R1bGVMb2FkZXIo
RG9jdW1lbnQmIGRvY3VtZW50KQogewogfQogCi1KU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU01v
ZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZU5hbWVWYWx1ZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KQorSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRl
ciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lVmFsdWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1v
ZHVsZUtleSwgSlNDOjpKU1ZhbHVlKQogewogICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShl
eGVjLCBnbG9iYWxPYmplY3QpOwogCkBAIC04Miw3ICs4NSw3IEBAIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIEpTTW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjCiAgICAgcmV0dXJuIGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIGpzU3RyaW5nKGV4ZWMs
IGNvbXBsZXRlZFVybC5zdHJpbmcoKSkpOwogfQogCi1KU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBK
U01vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBt
b2R1bGVLZXlWYWx1ZSkKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpm
ZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBK
U0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShl
eGVjLCBnbG9iYWxPYmplY3QpOwogCkBAIC05NiwxMiArOTksMjEgQEAgSlNDOjpKU0ludGVybmFs
UHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICBpZiAoIWNvbXBsZXRlZFVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6Y3JlYXRlVHlwZUVycm9yKGV4ZWMsICJNb2R1
bGUga2V5IGlzIGFuIGludmFsaWQgVVJMLiIpKTsKIAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
dGhlIG1vZHVsZSBmZXRjaGVyLgorICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSBu
dWxscHRyOworICAgIGlmIChhdXRvKiBlbGVtZW50ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTRWxl
bWVudCo+KGluaXRpYXRvcikpCisgICAgICAgIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKCZlbGVtZW50LT53cmFwcGVkKCkpOworCisgICAgUmVmPEpTTW9kdWxlRmV0
Y2hlcj4gZmV0Y2hlciA9IEpTTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTQzo6anNDYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgY29tcGxldGVkVXJsLCBkZWZlcnJlZCwgbV9k
b2N1bWVudCk7CisgICAgbV9mZXRjaGluZ1NldC5hZGQoJmZldGNoZXIuZ2V0KCkpOworICAgIGlm
ICghZmV0Y2hlci0+cnVuKHNjcmlwdEVsZW1lbnQpKSB7CisgICAgICAgIGlmIChGcmFtZSogZnJh
bWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJl
amVjdChleGVjLCBKU0M6OlN5bWJvbDo6Y3JlYXRlKGV4ZWMtPnZtKCksICooZnJhbWUtPnNjcmlw
dCgpLm1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkudWlkKCkpKSk7Cisg
ICAgfQogCiAgICAgcmV0dXJuIGRlZmVycmVkLT5wcm9taXNlKCk7CiB9CiAKLUpTQzo6SlNWYWx1
ZSBKU01vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eVZhbHVlLCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUpCitKU0M6OkpTVmFsdWUgSlNN
b2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1
ZSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAg
Ly8gRklYTUU6IEN1cnJlbnRseSwgd2Ugb25seSBzdXBwb3J0IEpTTW9kdWxlUmVjb3JkLgogICAg
IC8vIE9uY2UgdGhlIHJlZmxlY3RpdmUgcGFydCBvZiB0aGUgbW9kdWxlIGxvYWRlciBpcyBzdXBw
b3J0ZWQsIHdlIHdpbGwgaGFuZGxlIGFyYml0cmFyeSB2YWx1ZXMuCkBAIC0xMjEsOSArMTMzLDE0
IEBAIEpTQzo6SlNWYWx1ZSBKU01vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RXhlY1N0YXRlKiBleGVjCiAgICAgaWYgKCFzb3VyY2VVcmwuaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwo
Ik1vZHVsZSBrZXkgaXMgYW4gaW52YWxpZCBVUkwuIikpOwogCi0gICAgLy8gRklYTUU6IEltcGxl
bWVudCBldmFsdWF0aW5nIG1vZHVsZSBjb2RlLgotCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1f
ZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0
ZU1vZHVsZShzb3VyY2VVcmwsIG1vZHVsZVJlY29yZCk7CiAgICAgcmV0dXJuIEpTQzo6anNVbmRl
ZmluZWQoKTsKIH0KIAordm9pZCBKU01vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoSlNNb2R1
bGVGZXRjaGVyKiBmZXRjaGVyKQoreworICAgIG1fZmV0Y2hpbmdTZXQucmVtb3ZlKGZldGNoZXIp
OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVs
ZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuaApp
bmRleCA2OWE1MDFhNWFlNTNhNTYyMTRjNWNjNTljZWNiMzE5MDA3NmZlMWZkLi4yZTQ3NTAzYTVj
NWNjNDUwMzgzMmEyNDRmNGNlZDNlOTYzN2NmNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTW9kdWxlTG9hZGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00
MCw2ICs0MSw3IEBAIGNsYXNzIEpTTW9kdWxlTG9hZGVyOwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEpTTW9kdWxlRmV0Y2hlcjsKIAogY2xhc3MgSlNNb2R1
bGVMb2FkZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTTW9kdWxlTG9hZGVyKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC00OCwxMiArNTAsMTUgQEAgY2xhc3MgSlNNb2R1bGVM
b2FkZXIgewogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsg
fQogCi0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcmVzb2x2ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVl
IG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSk7Ci0gICAgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXkpOwotICAg
IEpTQzo6SlNWYWx1ZSBldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpK
U1ZhbHVlIG1vZHVsZVJlY29yZCk7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcmVzb2x2
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVs
ZUtleSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlz
ZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01v
ZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBpbml0aWF0
b3IpOworICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcik7CisK
KyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKEpTTW9kdWxlRmV0Y2hlciopOwogCiBwcml2YXRlOgog
ICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIEhhc2hTZXQ8UmVmUHRyPEpTTW9kdWxlRmV0
Y2hlcj4+IG1fZmV0Y2hpbmdTZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDY4
ODM5N2EwNWM3ODAxMGNjZWEyNDk1ZDIzMDM5MDk1MTdjNGU2MDkuLjc3OThmZWYyYzhlZWY4ODRj
NmQ0M2NlNGUxOGY5MjliNDM0ZjZhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSlNE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNNYWluVGhy
ZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIk1h
aW5GcmFtZS5oIgogI2luY2x1ZGUgIk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIgogI2luY2x1ZGUg
Ik5QX2pzb2JqZWN0LmgiCkBAIC00MSw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVD
bGllbnQuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFz
ZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKQEAgLTUzLDcgKzU1LDExIEBACiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNGdW5j
dGlvbi5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRl
IDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CiAKQEAgLTg1
LDYgKzkxLDcgQEAgU2NyaXB0Q29udHJvbGxlcjo6U2NyaXB0Q29udHJvbGxlcihGcmFtZSYgZnJh
bWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9zb3VyY2VVUkwoMCkKICAgICAsIG1f
cGF1c2VkKGZhbHNlKQorICAgICwgbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5
bWJvbCgpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgLCBtX3dpbmRvd1Nj
cmlwdE5QT2JqZWN0KDApCiAjZW5kaWYKQEAgLTE1NSw3ICsxNjIsNyBAQCBKU1ZhbHVlIFNjcmlw
dENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3Vy
Y2VDb2RlLCBETwogICAgIGNvbnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVS
TDsKICAgICBtX3NvdXJjZVVSTCA9ICZzb3VyY2VVUkw7CiAKLSAgICBSZWY8RnJhbWU+IHByb3Rl
Y3QobV9mcmFtZSk7CisgICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7CiAKICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJMLCBzb3VyY2VDb2Rl
LnN0YXJ0TGluZSgpKTsKIApAQCAtMTc5LDYgKzE4NiwxMjMgQEAgSlNWYWx1ZSBTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBFeGNl
cHRpb24KICAgICByZXR1cm4gZXZhbHVhdGVJbldvcmxkKHNvdXJjZUNvZGUsIG1haW5UaHJlYWRO
b3JtYWxXb3JsZCgpLCBleGNlcHRpb25EZXRhaWxzKTsKIH0KIAorc3RhdGljIHZvaWQgaGFuZGxl
SlNNb2R1bGVMb2FkZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgZXJyb3IsIGNvbnN0
IFByaXZhdGVOYW1lJiBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCkKK3sK
KyAgICAvLyBPbmNlIHJlcG9ydGVkIGVycm9yIGlzIG1hcmtlZCBhcyBtb2R1bGVMb2FkZXJBbHJl
YWR5UmVwb3J0ZWRFcnJvclN5bWJvbC4KKyAgICAvLyBEb24ndCByZXBvcnQgaXQgaGVyZSBhZ2Fp
bi4KKyAgICBpZiAoU3ltYm9sKiBzeW1ib2wgPSBqc0R5bmFtaWNDYXN0PFN5bWJvbCo+KGVycm9y
KSkgeworICAgICAgICBpZiAoc3ltYm9sLT5wcml2YXRlTmFtZSgpID09IG1vZHVsZUxvYWRlckFs
cmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIC8vIEZJWE1FOiBCZWNhdXNlIHdlIGhhdmUgbm90IHN1cHBvcnRlZCB0aGUgImNyb3Nzb3Jp
Z2luIiBhdHRyaWJ1dGUgaW4gdGhlIG1vZHVsZSB0YWcsCisgICAgLy8gd2UgcGFzcyB0aGUgbnVs
bHB0ciB0byByZXBvcnRFeGNlcHRpb24ncyBDYWNoZWRTY3JpcHQqIHBhcmFtZXRlci4gV2hlbiBw
YXNzaW5nIG51bGxwdHIKKyAgICAvLyB0byByZXBvcnRFeGNlcHRpb24sIFdlYkNvcmUgZG9lcyBu
b3Qgc2hvdyB0aGUgZGV0YWlsIG9mIHRoZSBlcnJvciBpZiB0aGUgVVJMIG9mIHRoZQorICAgIC8v
IHNvdXJjZSBkb2VzIG5vdCBwYXNzIHRoZSBzYW1lIG9yaWdpbiBwb2xpY3kuIFNvIHRoZSBjdXJy
ZW50IGJlaGF2aW9yIGlzIGNvbnNlcnZhdGl2ZTsKKyAgICAvLyBvbmx5IHRoZSBtb2R1bGUgY29k
ZSB0aGF0IFVSTCBpcyB3aXRoaW4gdGhlIHNhbWUgb3JpZ2luIGNhbiByZXBvcnQgdGhlIGRldGFp
bHMgb2YgdGhlCisgICAgLy8gZXJyb3IuIE9uY2UgdGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBiZWhh
dmlvciwgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGVycm9y
LCBudWxscHRyKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3Js
ZChKU01vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBE
T01XcmFwcGVyV29ybGQmIHdvcmxkLCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIEpTTG9ja0hv
bGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3
aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygp
LT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0SlNNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNN
YWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUsIHRvSlMoZXhl
Yywgc2hlbGwtPndpbmRvdygpLCAmZWxlbWVudCkpLCB3b3JsZCk7Cit9CisKK3ZvaWQgU2NyaXB0
Q29udHJvbGxlcjo6bG9hZE1vZHVsZShKU01vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3Qg
U3RyaW5nJiBtb2R1bGVOYW1lLCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIGxvYWRNb2R1bGVJ
bldvcmxkKG1vZHVsZUdyYXBoLCBtb2R1bGVOYW1lLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwg
ZWxlbWVudCk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQo
SlNNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJj
ZUNvZGUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAg
SlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBz
aGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+
d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIGluaXRKU01vZHVsZUdyYXBoKG1vZHVsZUdy
YXBoLCBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUoZXhlYywgc291cmNlQ29kZS5q
c1NvdXJjZUNvZGUoKSwgdG9KUyhleGVjLCBzaGVsbC0+d2luZG93KCksICZlbGVtZW50KSksIHdv
cmxkKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlKEpTTW9kdWxlR3Jh
cGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBFbGVt
ZW50JiBlbGVtZW50KQoreworICAgIGxvYWRNb2R1bGVJbldvcmxkKG1vZHVsZUdyYXBoLCBzb3Vy
Y2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgZWxlbWVudCk7Cit9CisKK3ZvaWQgU2Ny
aXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChKU01vZHVsZUdyYXBo
JiBtb2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93
U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgSlNJbnRlcm5hbFByb21pc2Uq
IHByb21pc2UgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShl
eGVjLCBJZGVudGlmaWVyOjpmcm9tVWlkKCZleGVjLT52bSgpLCBtb2R1bGVHcmFwaC5tb2R1bGVL
ZXkoKSksIHRvSlMoZXhlYywgc2hlbGwtPndpbmRvdygpLCAmZWxlbWVudCkpOworCisgICAgV2Vh
a1B0cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBoLndlYWtFbGVtZW50UHRyKCkpOworICAg
IEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRl
KGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFt3ZWFrUHRyXShFeGVj
U3RhdGUqKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIu
Z2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0
KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIFByaXZhdGVOYW1l
IG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sID0gbV9tb2R1bGVMb2FkZXJB
bHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICBKU0Z1bmN0aW9uKiByZWplY3RIYW5kbGVy
ID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3co
KSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCwg
d2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBv
c3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsK
KyAgICAgICAgaGFuZGxlSlNNb2R1bGVMb2FkZXJFcnJvcihleGVjLCBleGVjLT5hcmd1bWVudCgw
KSwgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOworICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJvbWlz
ZS0+dGhlbihleGVjLCBmdWxmaWxsSGFuZGxlciwgcmVqZWN0SGFuZGxlcik7Cit9CisKK3ZvaWQg
U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKEpTTW9kdWxlR3JhcGgmIG1v
ZHVsZUdyYXBoLCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIGxpbmtBbmRFdmFsdWF0ZU1vZHVs
ZUluV29ybGQobW9kdWxlR3JhcGgsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBlbGVtZW50KTsK
K30KKworSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKGNvbnN0
IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBET01XcmFwcGVy
V29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisg
ICAgY29uc3QgU291cmNlQ29kZSYganNTb3VyY2VDb2RlID0gbW9kdWxlUmVjb3JkLT5zb3VyY2VD
b2RlKCk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxk
KTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsK
KyAgICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNlVVJMID0gbV9zb3VyY2VVUkw7CisgICAgbV9z
b3VyY2VVUkwgPSAmc291cmNlVVJMLnN0cmluZygpOworCisgICAgUmVmPEZyYW1lPiBwcm90ZWN0
b3IobV9mcmFtZSk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2ll
ID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9mcmFtZSwg
c291cmNlVVJMLCBqc1NvdXJjZUNvZGUuZmlyc3RMaW5lKCkpOworCisgICAgSlNWYWx1ZSByZXR1
cm5WYWx1ZSA9IG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUoZXhlYyk7CisgICAgTmFrZWRQdHI8RXhj
ZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKKyAgICAgICAgZXZhbHVhdGlvbkV4Y2VwdGlvbiA9IGV4ZWMtPnZtKCkuZXhjZXB0aW9uKCk7
CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tp
ZSwgbV9mcmFtZSk7CisKKyAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikgeworICAgICAgICBy
ZXBvcnRFeGNlcHRpb24oZXhlYywgZXZhbHVhdGlvbkV4Y2VwdGlvbiwgbnVsbHB0cik7CisgICAg
ICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgIH0KKworICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAg
cmV0dXJuIHJldHVyblZhbHVlOworfQorCitKU0M6OkpTVmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6
ZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1
bGVSZWNvcmQpCit7CisgICAgcmV0dXJuIGV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgbW9kdWxl
UmVjb3JkLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKIFJlZjxET01XcmFwcGVyV29y
bGQ+IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdvcmxkKCkKIHsKICAgICByZXR1cm4gRE9NV3Jh
cHBlcldvcmxkOjpjcmVhdGUoSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwpAQCAtMjU5LDYgKzM4
Myw0MSBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KERP
TVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgcmV0dXJuICZ3aW5kb3dTaGVsbDsKIH0KIAorc3Rh
dGljIElkZW50aWZpZXIganNWYWx1ZVRvTW9kdWxlS2V5KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIElk
ZW50aWZpZXI6OmZyb21VaWQoanNDYXN0PFN5bWJvbCo+KHZhbHVlKS0+cHJpdmF0ZU5hbWUoKSk7
CisgICAgQVNTRVJUKHZhbHVlLmlzU3RyaW5nKCkpOworICAgIHJldHVybiBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsIGpzQ2FzdDxKU1N0cmluZyo+KHZhbHVlKS0+dmFsdWUoZXhlYykpOwor
fQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmluaXRKU01vZHVsZUdyYXBoKEpTTW9kdWxlR3Jh
cGgmIG1vZHVsZUdyYXBoLCBKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxs
KHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4
ZWMoKTsKKworICAgIFdlYWtQdHI8RWxlbWVudD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxl
bWVudFB0cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3Rk
RnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygp
LCBbd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIC8vIEpTTW9kdWxlR3JhcGgs
IHNjcmlwdCBlbGVtZW50IGFuZCBkb2N1bWVudCBtYXkgYmUgZGVzdHJveWVkIGR1cmluZyBsb2Fk
aW5nIHRoZSBtb2R1bGUuCisgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgd2Ugc2hvdWxkIG5vdCBl
eGVjdXRlIG1vZHVsZSBib2R5LgorICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQg
PSB3ZWFrUHRyLmdldCgpKSB7CisgICAgICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpz
VmFsdWVUb01vZHVsZUtleShleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7CisgICAgICAgICAgICB0
b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5u
b3RpZnlMb2FkZWQobW9kdWxlS2V5LmltcGwoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIFByaXZhdGVO
YW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sID0gbV9tb2R1bGVMb2Fk
ZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAgICBKU0Z1bmN0aW9uKiByZWplY3RIYW5k
bGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5k
b3coKSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJv
bCwgd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVu
dD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFcnJvcmVkKCk7
CisgICAgICAgIGhhbmRsZUpTTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywgZXhlYy0+YXJndW1lbnQo
MCksIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIHByb21p
c2UtPnRoZW4oZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRsZXIpOworfQorCiBUZXh0
UG9zaXRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdAog
ewogICAgIC8vIEZJWE1FOiBJZiB3ZSBhcmUgbm90IGN1cnJlbnRseSBwYXJzaW5nLCB3ZSBzaG91
bGQgdXNlIG91ciBjdXJyZW50IGxvY2F0aW9uCkBAIC01MjAsNyArNjc5LDcgQEAgSlNWYWx1ZSBT
Y3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNv
dXJjZUNvZGUsIEV4Y2UKICAgICBpZiAoIWNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRl
U2NyaXB0KSB8fCBpc1BhdXNlZCgpKQogICAgICAgICByZXR1cm4geyB9OyAvLyBGSVhNRTogV291
bGQganNOdWxsIGJlIGJldHRlcj8KIAotICAgIFJlZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsg
Ly8gU2NyaXB0IGV4ZWN1dGlvbiBjYW4gZGVzdHJveSB0aGUgZnJhbWUsIGFuZCB0aHVzIHRoZSBT
Y3JpcHRDb250cm9sbGVyLgorICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOyAvLyBT
Y3JpcHQgZXhlY3V0aW9uIGNhbiBkZXN0cm95IHRoZSBmcmFtZSwgYW5kIHRodXMgdGhlIFNjcmlw
dENvbnRyb2xsZXIuCiAKICAgICByZXR1cm4gZXZhbHVhdGUoc291cmNlQ29kZSwgZXhjZXB0aW9u
RGV0YWlscyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmgKaW5kZXggYTBjNzFmMjYwODEyYjBkMzIxMTkxNjg2ODExOWQ3MGJmNjcxNzYyZi4uMGNk
NGRkNzQ4NGQ1NDE2MTA0NTBkNDk5NTkxOGExZTMxN2RjZjk1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtNDQsNiArNDQsOCBAQCBjbGFz
cyBTY3JpcHRWYWx1ZTsKIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU0dsb2JhbE9iamVjdDsK
K2NsYXNzIEpTTW9kdWxlUmVjb3JkOworY2xhc3MgSlNJbnRlcm5hbFByb21pc2U7CiBjbGFzcyBF
eGVjU3RhdGU7CiAKIG5hbWVzcGFjZSBCaW5kaW5ncyB7CkBAIC01Nyw2ICs1OSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTERvY3VtZW50OwogY2xhc3Mg
SFRNTFBsdWdJbkVsZW1lbnQ7CitjbGFzcyBKU01vZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0U291
cmNlQ29kZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgV2lkZ2V0OwpAQCAtMTE1LDYg
KzExOCwxNyBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKICAgICBKU0M6OkpTVmFsdWUgZXZh
bHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0
cik7CiAgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiwgRE9NV3JhcHBlcldvcmxkJiwgRXhjZXB0aW9uRGV0YWlscyogPSBudWxscHRyKTsKIAor
ICAgIHZvaWQgbG9hZE1vZHVsZUluV29ybGQoSlNNb2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYg
bW9kdWxlTmFtZSwgRE9NV3JhcHBlcldvcmxkJiwgRWxlbWVudCYpOworICAgIHZvaWQgbG9hZE1v
ZHVsZShKU01vZHVsZUdyYXBoJiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBFbGVtZW50Jik7
CisgICAgdm9pZCBsb2FkTW9kdWxlSW5Xb3JsZChKU01vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0
U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYsIEVsZW1lbnQmKTsKKyAgICB2b2lkIGxvYWRN
b2R1bGUoSlNNb2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBFbGVtZW50Jik7
CisKKyAgICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZUluV29ybGQoSlNNb2R1bGVHcmFwaCYg
LCBET01XcmFwcGVyV29ybGQmLCBFbGVtZW50Jik7CisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVN
b2R1bGUoSlNNb2R1bGVHcmFwaCYsIEVsZW1lbnQmKTsKKworICAgIEpTQzo6SlNWYWx1ZSBldmFs
dWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpTTW9kdWxlUmVjb3JkKiwgRE9NV3JhcHBlcldv
cmxkJik7CisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqKTsKKwogICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBv
c2l0aW9uKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuYWJsZUV2YWwoKTsKQEAgLTEzNSw2ICsxNDks
OCBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKIAogICAgIGNvbnN0IFN0cmluZyogc291cmNl
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0gLy8gMCBpZiB3ZSBhcmUgbm90IGV2
YWx1YXRpbmcgYW55IHNjcmlwdAogCisgICAgY29uc3QgSlNDOjpQcml2YXRlTmFtZSYgbW9kdWxl
TG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKSBjb25zdCB7IHJldHVybiBtX21vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOyB9CisKICAgICB2b2lkIGNsZWFyV2lu
ZG93U2hlbGwoRE9NV2luZG93KiBuZXdET01XaW5kb3csIGJvb2wgZ29pbmdJbnRvUGFnZUNhY2hl
KTsKICAgICB2b2lkIHVwZGF0ZURvY3VtZW50KCk7CiAKQEAgLTE2Nyw2ICsxODMsNyBAQCBjbGFz
cyBTY3JpcHRDb250cm9sbGVyIHsKIAogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBKU0RP
TVdpbmRvd1NoZWxsKiBpbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgaW5p
dEpTTW9kdWxlR3JhcGgoSlNNb2R1bGVHcmFwaCYsIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqLCBE
T01XcmFwcGVyV29ybGQmKTsKIAogICAgIHZvaWQgZGlzY29ubmVjdFBsYXRmb3JtU2NyaXB0T2Jq
ZWN0cygpOwogCkBAIC0xNzUsNiArMTkyLDcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAg
ICAgY29uc3QgU3RyaW5nKiBtX3NvdXJjZVVSTDsKIAogICAgIGJvb2wgbV9wYXVzZWQ7CisgICAg
SlNDOjpQcml2YXRlTmFtZSBtX21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9s
OwogCiAgICAgLy8gVGhlIHJvb3Qgb2JqZWN0IHVzZWQgZm9yIG9iamVjdHMgYm91bmQgb3V0c2lk
ZSB0aGUgY29udGV4dCBvZiBhIHBsdWdpbiwgc3VjaAogICAgIC8vIGFzIE5QQVBJIHBsdWdpbnMu
IFRoZSBwbHVnaW5zIHVzaW5nIHRoZXNlIG9iamVjdHMgcHJldmVudCBhIHBhZ2UgZnJvbSBiZWlu
ZyBjYWNoZWQgc28gdGhleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjlkM2ZkN2UwZDQy
OTU5NTVlOWEwMmMzYTJhOTQ4NjEyZWUyZDRlMy4uYmMzMzJjYTVlNTYyMzk5NjEzN2I2YzVmMjhm
NzdmZjM4YWMyMjY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDMsNiArMTAzLDcg
QEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3RlbmVyLmgi
CisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmgiCiAjaW5jbHVkZSAiSlNNb2R1bGVMb2FkZXIu
aCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKaW5kZXggMGU5NTc4MTdlNjEyZjI4Yzg0NWQ1NTM5NWU1Y2UwYjExZTZh
MTNhZi4uODI0NTRiZDAwMDE5ODYzMjU5YzFmNjI5OTQ2NWMzYWIyMDA3OTgxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKQEAgLTEzMyw2ICsxMzMsNyBAQCBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0
OwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0
OwogY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7CitjbGFzcyBKU01vZHVsZUxvYWRlcjsKIGNsYXNz
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9u
OwogY2xhc3MgTm9kZUZpbHRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRl
eCBmMTg3MTExNWIzMjhhNmYxMjYzMDkzNmU4NWViMDlhYjdhMWYzNTdjLi5kYThlYjFiYzIwODUz
NDAwNzJlMjdlMmVmYmY4ZWRjYTNhMzBmODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklnbm9yZURlc3RydWN0aXZlV3JpdGVD
b3VudEluY3JlbWVudGVyLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUg
Ik1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU1ZHTmFt
ZXMuaCIKQEAgLTE5Nyw3ICsxOTgsMTAgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2Ny
aXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBp
ZiAoIW1fZWxlbWVudC5pbkRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGlmICghZGV0ZXJtaW5lU2NyaXB0VHlwZShzdXBwb3J0TGVnYWN5VHlwZXMpKQorICAgIFNjcmlw
dFR5cGUgc2NyaXB0VHlwZSA9IFNjcmlwdFR5cGU6OkNsYXNzaWM7CisgICAgaWYgKE9wdGlvbmFs
PFNjcmlwdFR5cGU+IHJlc3VsdCA9IGRldGVybWluZVNjcmlwdFR5cGUoc3VwcG9ydExlZ2FjeVR5
cGVzKSkKKyAgICAgICAgc2NyaXB0VHlwZSA9IHJlc3VsdC52YWx1ZSgpOworICAgIGVsc2UKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHdhc1BhcnNlckluc2VydGVkKSB7CkBAIC0y
MTksNyArMjIzLDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRl
eHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBpZiAoIWRvY3VtZW50
LmZyYW1lKCktPnNjcmlwdCgpLmNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRlU2NyaXB0
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFpc1NjcmlwdEZvckV2ZW50U3Vw
cG9ydGVkKCkpCisgICAgaWYgKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6Q2xhc3NpYyAmJiAh
aXNTY3JpcHRGb3JFdmVudFN1cHBvcnRlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAoIWNoYXJzZXRBdHRyaWJ1dGVWYWx1ZSgpLmlzRW1wdHkoKSkKQEAgLTIyNywyNiArMjMx
LDM4IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRp
b24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgZWxzZQogICAgICAgICBtX2NoYXJh
Y3RlckVuY29kaW5nID0gZG9jdW1lbnQuY2hhcnNldCgpOwogCi0gICAgaWYgKGhhc1NvdXJjZUF0
dHJpYnV0ZSgpKQotICAgICAgICBpZiAoIXJlcXVlc3RTY3JpcHQoc291cmNlQXR0cmlidXRlVmFs
dWUoKSkpCisgICAgaWYgKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CisgICAg
ICAgIGlmICghbG9hZE1vZHVsZShzY3JpcHRTdGFydFBvc2l0aW9uKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKHNjcmlw
dFR5cGUgPT0gU2NyaXB0VHlwZTo6Q2xhc3NpYykgeworICAgICAgICBpZiAoaGFzU291cmNlQXR0
cmlidXRlKCkpIHsKKyAgICAgICAgICAgIGlmICghcmVxdWVzdFNjcmlwdChzY3JpcHRUeXBlLCBz
b3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICB9CiAKLSAgICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkgJiYgZGVmZXJB
dHRyaWJ1dGVWYWx1ZSgpICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5jQXR0cmlidXRlVmFs
dWUoKSkgeworICAgIGlmICgoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljICYmIGhh
c1NvdXJjZUF0dHJpYnV0ZSgpICYmIGRlZmVyQXR0cmlidXRlVmFsdWUoKSAmJiBtX3BhcnNlcklu
c2VydGVkICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkpIHx8IChzY3JpcHRUeXBlID09IFNjcmlw
dFR5cGU6Ok1vZHVsZSAmJiBtX3BhcnNlckluc2VydGVkICYmICFhc3luY0F0dHJpYnV0ZVZhbHVl
KCkpKSB7CiAgICAgICAgIG1fd2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcg
PSB0cnVlOwogICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKLSAgICB9IGVs
c2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5j
QXR0cmlidXRlVmFsdWUoKSkKKyAgICB9IGVsc2UgaWYgKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlw
ZTo6Q2xhc3NpYyAmJiBoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYm
ICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkpIHsKKyAgICAgICAgQVNTRVJUKHNjcmlwdFR5cGUgPT0g
U2NyaXB0VHlwZTo6Q2xhc3NpYyk7CiAgICAgICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0
cnVlOwotICAgIGVsc2UgaWYgKCFoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2Vy
dGVkICYmICFkb2N1bWVudC5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgewotICAgICAgICBtX3dp
bGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKLSAgICAgICAgbV9yZWFkeVRvQmVQYXJzZXJFeGVj
dXRlZCA9IHRydWU7Ci0gICAgfSBlbHNlIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiAhYXN5
bmNBdHRyaWJ1dGVWYWx1ZSgpICYmICFtX2ZvcmNlQXN5bmMpIHsKKyAgICB9IGVsc2UgaWYgKChz
Y3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMgJiYgaGFzU291cmNlQXR0cmlidXRlKCkg
JiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSAmJiAhbV9mb3JjZUFzeW5jKSB8fCAoc2NyaXB0VHlw
ZSA9PSBTY3JpcHRUeXBlOjpNb2R1bGUgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSAmJiAhbV9m
b3JjZUFzeW5jKSkgewogICAgICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAg
ICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbih0aGlz
LCBtX2NhY2hlZFNjcmlwdCwgU2NyaXB0UnVubmVyOjpJTl9PUkRFUl9FWEVDVVRJT04pOwogICAg
ICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOwotICAgIH0gZWxzZSBpZiAoaGFz
U291cmNlQXR0cmlidXRlKCkpIHsKKyAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgp
IHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CiAgICAgICAgIG1fZWxlbWVu
dC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbih0aGlz
LCBtX2NhY2hlZFNjcmlwdCwgU2NyaXB0UnVubmVyOjpBU1lOQ19FWEVDVVRJT04pOwogICAgICAg
ICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworICAgIH0gZWxzZSBpZiAoIWhhc1Nv
dXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHls
ZXNoZWV0c0xvYWRlZCgpKSB7CisgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5
cGU6OkNsYXNzaWMpOworICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKKyAg
ICAgICAgbV9yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCA9IHRydWU7CiAgICAgfSBlbHNlIHsKKyAg
ICAgICAgQVNTRVJUKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6Q2xhc3NpYyk7CiAgICAgICAg
IC8vIFJlc2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgogICAgICAgICBUZXh0
UG9zaXRpb24gcG9zaXRpb24gPSBkb2N1bWVudC5pc0luRG9jdW1lbnRXcml0ZSgpID8gVGV4dFBv
c2l0aW9uKCkgOiBzY3JpcHRTdGFydFBvc2l0aW9uOwogICAgICAgICBleGVjdXRlU2NyaXB0KFNj
cmlwdFNvdXJjZUNvZGUoc2NyaXB0Q29udGVudCgpLCBkb2N1bWVudC51cmwoKSwgcG9zaXRpb24p
KTsKQEAgLTI1NSw3ICsyNzEsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQo
Y29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQoY29uc3QgU3Ry
aW5nJiBzb3VyY2VVcmwpCitib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQoU2NyaXB0
VHlwZSBzY3JpcHRUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVybCkKIHsKICAgICBSZWY8RG9j
dW1lbnQ+IG9yaWdpbmFsRG9jdW1lbnQobV9lbGVtZW50LmRvY3VtZW50KCkpOwogICAgIGlmICgh
bV9lbGVtZW50LmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KHNvdXJjZVVybCkpCkBAIC0yOTYsNiAr
MzEyLDMxIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcm
IHNvdXJjZVVybCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0NhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFNjcmlwdD4gU2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdChVUkwgc291
cmNlVXJsKQoreworICAgIGJvb2wgaGFzS25vd25Ob25jZSA9IG1fZWxlbWVudC5kb2N1bWVudCgp
LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd1NjcmlwdFdpdGhOb25jZShtX2VsZW1lbnQu
YXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6Om5vbmNlQXR0ciksIG1f
ZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKTsKKyAgICBSZXNvdXJjZUxvYWRlck9w
dGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3Vy
Y2VPcHRpb25zKCk7CisgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9u
ID0gaGFzS25vd25Ob25jZSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQ
b2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hl
Y2s7CisKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
c291cmNlVXJsKSwgb3B0aW9ucyk7CisKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5jb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3Qu
bXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJl
UmVxdWVzdFR5cGU6OkxvYWQpOworCisgICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9IG1fZWxl
bWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6Y3Jvc3Nvcmln
aW5BdHRyKTsKKyAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkgeworICAgICAgICBt
X3JlcXVlc3RVc2VzQWNjZXNzQ29udHJvbCA9IHRydWU7CisgICAgICAgIFN0b3JlZENyZWRlbnRp
YWxzIGFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjcm9z
c09yaWdpbk1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMg
OiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CisgICAgICAgIEFTU0VSVChtX2VsZW1lbnQu
ZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpKTsKKyAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFj
Y2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksICptX2VsZW1lbnQu
ZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAgICB9Cisg
ICAgcmVxdWVzdC5zZXRDaGFyc2V0KEFTQ0lJTGl0ZXJhbCgidXRmLTgiKSk7CisgICAgcmVxdWVz
dC5zZXRJbml0aWF0b3IoJmVsZW1lbnQoKSk7CisKKyAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0
cnVlOworCisgICAgcmV0dXJuIG1fZWxlbWVudC5kb2N1bWVudCgpLmNhY2hlZFJlc291cmNlTG9h
ZGVyKCkucmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKK30KKwogdm9pZCBTY3JpcHRFbGVtZW50Ojpl
eGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiB7CiAgICAg
QVNTRVJUKG1fYWxyZWFkeVN0YXJ0ZWQpOwpAQCAtMzI4LDYgKzM2OSw5IEBAIHZvaWQgU2NyaXB0
RWxlbWVudDo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2Rl
KQogICAgICAgICAvLyBOb3RlOiBUaGlzIGlzIHdoZXJlIHRoZSBzY3JpcHQgaXMgY29tcGlsZWQg
YW5kIGFjdHVhbGx5IGV4ZWN1dGVkLgogICAgICAgICBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGUo
c291cmNlQ29kZSk7CiAgICAgfQorICAgIC8vIEZJWE1FOiBUaGUgbW9kdWxlIGxvYWRlciBzaG91
bGQgaGF2ZSB0aGUgbWVjaGFuaXNtIHRvIHN0b3AgbG9hZGluZy4KKyAgICAvLyBUaGUgY3VycmVu
dCBsb2FkZXIgc3BlYyBkb2VzIG5vdCBoYXZlIHRoaXMuIE9uY2UgaXQgaXMgc3BlY2lmaWVkCisg
ICAgLy8gd2Ugd2lsbCBpbnRyb2R1Y2UgdGhpcyBmZWF0dXJlLgogfQogCiB2b2lkIFNjcmlwdEVs
ZW1lbnQ6OnN0b3BMb2FkUmVxdWVzdCgpCkBAIC0zNTIsNiArMzk2LDY0IEBAIHZvaWQgU2NyaXB0
RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKICAgICBjYWNoZWRT
Y3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKIH0KIAorYm9vbCBTY3JpcHRFbGVtZW50Ojpsb2Fk
TW9kdWxlKGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3sKKyAgICAv
LyBUaGUgYnJvd3NlciBtb2R1bGUgbG9hZGVyIGxvYWRzIHRoZSBtb2R1bGUgc291cmNlcy4KKyAg
ICAvLyBTaW5jZSB0aGUgbW9kdWxlIGludm9sdmVzIGxvYWRpbmcgb2YgdGhlIGRlcGVuZGVudCBt
b2R1bGVzIGFuZCB0aGUgZGVwZW5kZW50IG1vZHVsZXMgZG9lcyBub3QgaGF2ZSBjb3JyZXNwb25k
aW5nIHNjcmlwdCBlbGVtZW50cywKKyAgICAvLyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBsb2FkaW5n
IG1vZHVsZXMgaXMgc2VwYXJhdGVkIGZyb20gdGhlIHNjcmlwdCBlbGVtZW50LgorICAgIGlmICho
YXNTb3VyY2VBdHRyaWJ1dGUoKSkgeworICAgICAgICBTdHJpbmcgc291cmNlVXJsID0gc291cmNl
QXR0cmlidXRlVmFsdWUoKTsKKyAgICAgICAgUmVmPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50
KG1fZWxlbWVudC5kb2N1bWVudCgpKTsKKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hC
ZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICAvLyBTY3JpcHQgZWxlbWVudCBtYXkgYmUgZGV0YWNoZWQgYW5kIGF0dGFjaGVkIHRv
IGEgZGlmZmVyZW50IGRvY3VtZW50IHdoaWxlIGV4ZWN1dGluZyB0aGUgZXZlbnQgbGlzdGVuZXIu
CisgICAgICAgIGlmICghbV9lbGVtZW50LmluRG9jdW1lbnQoKSB8fCAmbV9lbGVtZW50LmRvY3Vt
ZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5wdHIoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBpZiAoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJj
ZVVybCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBT
aG91bGQgc3VwcG9ydCBjcm9zcy1vcmlnaW4gbW9kZSBpbiB0aGUgbW9kdWxlIHRhZy4KKyAgICAg
ICAgLy8gSG93ZXZlciB3ZSBkb24ndCBoYXZlIHRoZSBwb2xpY3kgdG8gYXBwbHkgdGhpcyBtb2Rl
IHRvIHRoZSByZXNvdXJjZXMgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAvLyBQ
cm92aWRlZCBtdWx0aXBsZSBtb2R1bGUgdGFncywKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICBB
OiA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuLi4iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMi
Pjwvc2NyaXB0PgorICAgICAgICAvLyAgIEI6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4u
LiI+PC9zY3JpcHQ+CisgICAgICAgIC8vCisgICAgICAgIC8vICdBJyBoYXMgdGhlICJjcm9zc29y
aWdpbiIgYXR0cmlidXRlLiBCdXQgJ0InIGRvZXMgbm90IGhhdmUgaXQuCisgICAgICAgIC8vIEhv
d2V2ZXIsIEVTNiBtb2R1bGVzIGFsbG93ICdBJyBhbmQgJ0InIHRvIGxvYWQgdGhlIHNhbWUgbW9k
dWxlIGFuZCBpdCB3aWxsIGJlIGNhY2hlZCBpbiB0aGUKKyAgICAgICAgLy8gbW9kdWxlIGxvYWRl
ci4gSW4gdGhhdCBjYXNlLCBpdCBpcyBjb250cm92ZXJzaWFsIHRoYXQgd2hpY2ggImNyb3Nzb3Jp
Z2luIiBhdHRyaWJ1dGUgd2lsbCBiZQorICAgICAgICAvLyBhcHBsaWVkIHRvIHRoZSBtb2R1bGUg
bG9hZGVkIGJ5IHRoZSBib3RoLiBPbmNlIHRoZSBzcGVjIG9mIHRoZSBtb2R1bGUgbG9hZGVyIGlz
IGZpeGVkLCB3ZQorICAgICAgICAvLyBzaG91bGQgZm9sbG93IGl0LgorCisgICAgICAgIG1faXNF
eHRlcm5hbFNjcmlwdCA9IHRydWU7CisgICAgICAgIG1fbW9kdWxlR3JhcGggPSBzdGQ6Om1ha2Vf
dW5pcXVlPEpTTW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7CisgICAgICAgIG1fZWxlbWVudC5kb2N1
bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZUpTTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24odGhp
cywgKm1fbW9kdWxlR3JhcGgpOworICAgICAgICBtX21vZHVsZUdyYXBoLT5sb2FkKHNvdXJjZUF0
dHJpYnV0ZVZhbHVlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBS
ZXNldCBsaW5lIG51bWJlcmluZyBmb3IgbmVzdGVkIHdyaXRlcy4KKyAgICBUZXh0UG9zaXRpb24g
cG9zaXRpb24gPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5pc0luRG9jdW1lbnRXcml0ZSgpID8gVGV4
dFBvc2l0aW9uKCkgOiBzY3JpcHRTdGFydFBvc2l0aW9uOworICAgIFNjcmlwdFNvdXJjZUNvZGUg
c291cmNlQ29kZShzY3JpcHRDb250ZW50KCksIG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBw
b3NpdGlvbik7CisKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2VsZW1lbnQuZG9jdW1lbnQoKS5j
b250ZW50U2VjdXJpdHlQb2xpY3koKSk7CisgICAgICAgIGNvbnN0IENvbnRlbnRTZWN1cml0eVBv
bGljeSYgY29udGVudFNlY3VyaXR5UG9saWN5ID0gKm1fZWxlbWVudC5kb2N1bWVudCgpLmNvbnRl
bnRTZWN1cml0eVBvbGljeSgpOworICAgICAgICBib29sIGhhc0tub3duTm9uY2UgPSBjb250ZW50
U2VjdXJpdHlQb2xpY3kuYWxsb3dTY3JpcHRXaXRoTm9uY2UobV9lbGVtZW50LmF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpub25jZUF0dHIpLCBtX2VsZW1lbnQuaXNJ
blVzZXJBZ2VudFNoYWRvd1RyZWUoKSk7CisgICAgICAgIGlmICghY29udGVudFNlY3VyaXR5UG9s
aWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLCBtX3N0YXJ0
TGluZU51bWJlciwgc291cmNlQ29kZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCks
IGhhc0tub3duTm9uY2UpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
bV9tb2R1bGVHcmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNNb2R1bGVHcmFwaD4obV9lbGVtZW50
KTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+cXVldWVKU01vZHVs
ZUdyYXBoRm9yRXhlY3V0aW9uKHRoaXMsICptX21vZHVsZUdyYXBoKTsKKyAgICBtX21vZHVsZUdy
YXBoLT5sb2FkKHNvdXJjZUNvZGUpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFNjcmlw
dEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAg
ICBBU1NFUlQoIW1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmgKaW5kZXggNGU3OTQ5MTIwOWIwYjQ3OGVmNTcyNzYxNDI0ZGFkYTQxNWNjMDI4Mi4uYzdl
ZjBiNzFjZGVmNTQwYzkwMTVjYWRhMWYzZGJhNzdmOTM3NmU1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VD
bGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlRp
bWVyLmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTMyLDYgKzMzLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVy
Tm9kZTsKIGNsYXNzIEVsZW1lbnQ7CitjbGFzcyBKU01vZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0
RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiAKQEAgLTU5LDYgKzYxLDExIEBAIGNs
YXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBi
b29sIHJlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVRvQmVQ
YXJzZXJFeGVjdXRlZDsgfQogICAgIGJvb2wgd2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hl
ZFBhcnNpbmcoKSBjb25zdCB7IHJldHVybiBtX3dpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNo
ZWRQYXJzaW5nOyB9CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNo
ZWRTY3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdDsgfQorICAgIEpTTW9kdWxlR3JhcGgq
IG1vZHVsZUdyYXBoKCkgeyByZXR1cm4gbV9tb2R1bGVHcmFwaC5nZXQoKTsgfQorCisgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiByZXF1ZXN0TW9kdWxlU2NyaXB0KFVSTCk7
CisKKyAgICBTY3JpcHRUeXBlIHNjcmlwdFR5cGUoKSBjb25zdCB7IG1faXNDbGFzc2ljU2NyaXB0
ID8gU2NyaXB0VHlwZTo6Q2xhc3NpYyA6IFNjcmlwdFR5cGU6Ok1vZHVsZTsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChFbGVtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJv
b2wgaXNFdmFsdWF0ZWQpOwpAQCAtODIsNyArODksOSBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDog
cHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCBpZ25vcmVzTG9hZFJlcXVl
c3QoKSBjb25zdDsKICAgICBib29sIGlzU2NyaXB0Rm9yRXZlbnRTdXBwb3J0ZWQoKSBjb25zdDsK
IAotICAgIGJvb2wgcmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7CisgICAg
Ym9vbCBsb2FkTW9kdWxlKGNvbnN0IFRleHRQb3NpdGlvbiYpOworCisgICAgYm9vbCByZXF1ZXN0
U2NyaXB0KFNjcmlwdFR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlVXJsKTsKICAgICB2b2lkIHN0
b3BMb2FkUmVxdWVzdCgpOwogCiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJj
ZSopIG92ZXJyaWRlOwpAQCAtMTEwLDggKzExOSwxMCBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDog
cHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCBtX2ZvcmNlQXN5bmMgOiAx
OwogICAgIGJvb2wgbV93aWxsRXhlY3V0ZUluT3JkZXIgOiAxOwogICAgIGJvb2wgbV9yZXF1ZXN0
VXNlc0FjY2Vzc0NvbnRyb2wgOiAxOworICAgIGJvb2wgbV9pc0NsYXNzaWNTY3JpcHQgOiAxOwog
ICAgIFN0cmluZyBtX2NoYXJhY3RlckVuY29kaW5nOwogICAgIFN0cmluZyBtX2ZhbGxiYWNrQ2hh
cmFjdGVyRW5jb2Rpbmc7CisgICAgc3RkOjp1bmlxdWVfcHRyPEpTTW9kdWxlR3JhcGg+IG1fbW9k
dWxlR3JhcGg7CiB9OwogCiAvLyBGSVhNRTogcmVwbGFjZSB3aXRoIGRvd25jYXN0PFNjcmlwdEVs
ZW1lbnQ+LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcAppbmRleCBkMjYwNWJkZGI3YjVi
NjJiOTE0NTM4ZWY2MjYyYWNiN2IzZDUwMDJlLi4yYmViNDBlZmU2NTMyMmRhYzdiZDZiZDM1OGFm
OGZhMzk3YThiYThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIkpTTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0Lmgi
CiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCkBAIC00Nyw2ICs0OCwxMCBAQCBTY3JpcHRS
dW5uZXI6On5TY3JpcHRSdW5uZXIoKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRF
dmVudERlbGF5Q291bnQoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5n
QXN5bmNTY3JpcHRzLnNpemUoKTsgKytpKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExv
YWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbW9kdWxl
U2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uLnNpemUoKTsgKytpKQorICAgICAgICBtX2RvY3Vt
ZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuc2l6ZSgpOyArK2kpCisgICAg
ICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogfQogCiB2b2lk
IFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2Ny
aXB0RWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3Jp
cHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKQEAgLTcwLDYgKzc1LDE4IEBAIHZvaWQg
U2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3Jp
cHRFbGVtZW50LCBDYWNoZWRSCiAgICAgfQogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVK
U01vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIEpT
TW9kdWxlR3JhcGgmKQoreworICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKKworICAgIEVsZW1l
bnQmIGVsZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVtZW50KCk7CisgICAgQVNTRVJUKGVsZW1l
bnQuaW5Eb2N1bWVudCgpKTsKKworICAgIG1fZG9jdW1lbnQuaW5jcmVtZW50TG9hZEV2ZW50RGVs
YXlDb3VudCgpOworCisgICAgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuYWRkKCZlbGVt
ZW50KTsKK30KKwogdm9pZCBTY3JpcHRSdW5uZXI6OnN1c3BlbmQoKQogewogICAgIG1fdGltZXIu
c3RvcCgpOwpAQCAtOTYsNiArMTEzLDI2IEBAIHZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlTY3Jp
cHRSZWFkeShTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBFeGVjdXRpb25UeXBlCiAgICAg
bV90aW1lci5zdGFydE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlK
U01vZHVsZUdyYXBoUmVhZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCkKK3sKKyAgICBB
U1NFUlRfVU5VU0VEKHNjcmlwdEVsZW1lbnQsIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRz
LmNvbnRhaW5zKCZzY3JpcHRFbGVtZW50LT5lbGVtZW50KCkpKTsKKworICAgIC8vIExpc3RIYXNo
U2V0IGNvcnJlY3RseSBwcmVzZXJ2ZXMgdGhlIGluc2VydGlvbiBvcmRlci4KKyAgICAvLyBBbmQg
aXQgYWxsb3cgdXMgdG8gcmVtb3ZlIGVsZW1lbnQgZHVyaW5nIGl0ZXJhdGlvbi4KKyAgICBhdXRv
IGl0ZXJhdG9yID0gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuYmVnaW4oKTsKKyAgICB3
aGlsZSAoaXRlcmF0b3IgIT0gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuZW5kKCkpIHsK
KyAgICAgICAgSlNNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGggPSB0b1NjcmlwdEVsZW1lbnRJZlBv
c3NpYmxlKGl0ZXJhdG9yLT5nZXQoKSktPm1vZHVsZUdyYXBoKCk7CisgICAgICAgIGlmICghbW9k
dWxlR3JhcGgtPmVycm9yT2NjdXJyZWQoKSAmJiAhbW9kdWxlR3JhcGgtPmlzTG9hZGVkKCkpCisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgYXV0byBwcmV2aW91cyA9IGl0ZXJhdG9yOworICAg
ICAgICArK2l0ZXJhdG9yOworICAgICAgICBtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRl
U29vbi5hcHBlbmQoKnByZXZpb3VzKTsKKyAgICAgICAgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxl
bWVudHMucmVtb3ZlKHByZXZpb3VzKTsKKyAgICB9CisgICAgaWYgKCFtX21vZHVsZVNjcmlwdEVs
ZW1lbnRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVT
aG90KDApOworfQorCiB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCgpCiB7CiAgICAgUmVm
PERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwpAQCAtMTE5LDYgKzE1NiwyMCBAQCB2b2lk
IFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCgpCiAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9z
c2libGUoZWxlbWVudC5nZXQoKSktPmV4ZWN1dGUoY2FjaGVkU2NyaXB0KTsKICAgICAgICAgbV9k
b2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgfQorCisgICAgVmVj
dG9yPFJlZlB0cjxFbGVtZW50Pj4gbW9kdWxlU2NyaXB0RWxlbWVudHM7CisgICAgbW9kdWxlU2Ny
aXB0RWxlbWVudHMuc3dhcChtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbik7CisK
KyAgICBmb3IgKFJlZlB0cjxFbGVtZW50PiYgcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnQgOiBt
b2R1bGVTY3JpcHRFbGVtZW50cykgeworICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudDsK
KyAgICAgICAgcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnQuc3dhcChlbGVtZW50KTsKKyAgICAg
ICAgQVNTRVJUKGVsZW1lbnQpOworICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKKyAgICAgICAgaWYgKCFlbGVtZW50KQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUo
ZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPmV2YWx1YXRlKCk7CisgICAgICAgIG1fZG9j
dW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIH0KIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IDhjZDMzMmE1NzM0YzFjYjkyZjJhNWZmNWZjNGNj
YTE1OGZlM2JjNDEuLjgyY2Y1ZTdiM2Y0Njk3ODEyYTZmOGJlYjgxMzliMTZlNTBmNjIwZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTM2LDYgKzM3LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBKU01vZHVsZUdyYXBoOwogY2xhc3MgUGVuZGlu
Z1NjcmlwdDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiAKQEAgLTQ3LDExICs1MCwxNCBAQCBjbGFz
cyBTY3JpcHRSdW5uZXIgewogCiAgICAgZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhFQ1VU
SU9OLCBJTl9PUkRFUl9FWEVDVVRJT04gfTsKICAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0
aW9uKFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+LCBF
eGVjdXRpb25UeXBlKTsKLSAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1
cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1
dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHkoKTsg
fQorICAgIHZvaWQgcXVldWVKU01vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQq
LCBKU01vZHVsZUdyYXBoJik7CisgICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsg
cmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9F
eGVjdXRlSW5PcmRlci5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5
KCkgfHwgIW1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAh
bV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNw
ZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsKICAgICB2b2lkIG5vdGlmeVNjcmlwdFJlYWR5KFNj
cmlwdEVsZW1lbnQqLCBFeGVjdXRpb25UeXBlKTsKIAorICAgIHZvaWQgbm90aWZ5SlNNb2R1bGVH
cmFwaFJlYWR5KFNjcmlwdEVsZW1lbnQqKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHRpbWVyRmly
ZWQoKTsKIApAQCAtNTksNiArNjUsOCBAQCBjbGFzcyBTY3JpcHRSdW5uZXIgewogICAgIFZlY3Rv
cjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyOwogICAgIFZlY3RvcjxQ
ZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3LndoYXR3
Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdp
bGwtZXhlY3V0ZS1hcy1zb29uLWFzLXBvc3NpYmxlCiAgICAgSGFzaE1hcDxTY3JpcHRFbGVtZW50
KiwgUGVuZGluZ1NjcmlwdD4gbV9wZW5kaW5nQXN5bmNTY3JpcHRzOworICAgIFZlY3RvcjxSZWZQ
dHI8RWxlbWVudD4+IG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uOworICAgIExp
c3RIYXNoU2V0PFJlZlB0cjxFbGVtZW50Pj4gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHM7
CiAgICAgVGltZXIgbV90aW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzOGJhMzM1ZDU4YTVhYTUyZWVmMDRl
MDk0YmI5MGFmMWIxM2M3MDRkLi44N2ZmMTM0NTQxMGQyODFhODdjMDZmYTM1M2YxMGViZDIzZTRh
YjgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTYtMDgtMjAgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1
bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVk
LXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFn
YXRlZC10by1vbmVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQt
YmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0
aC1zcmMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50LWR5bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVy
ZW50LWVudHJ5LXBvaW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90
LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2
ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21v
ZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQu
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0
aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRv
LW9uZXJyb3ItdGhyb3cuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUt
cHJvcGFnYXRlZC10by1vbmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qczogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1
Y2Npbm8uanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qczogQWRkZWQu
CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1p
eGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxp
bmUtZHluYW1pYy5qczogQWRkZWQuCisgICAgICAgIChleHBvcnQuZGVmYXVsdC5Db2NvYS5wcm90
b3R5cGUudGFzdGUpOgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EpOgorICAgICAgICAq
IGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanM6IEFkZGVkLgorICAg
ICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKGV4
cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91
bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qczogQWRkZWQuCisgICAgICAgICog
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanM6IEFkZGVkLgor
ICAgICAgICAoQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKENvY29hKToKKyAgICAg
ICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qczogQWRkZWQuCisg
ICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qczog
QWRkZWQuCisgICAgICAgIChDb2NvYS5wcm90b3R5cGUudGFzdGUpOgorICAgICAgICAoQ29jb2Ep
OgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanM6IEFk
ZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZv
cmVsb2FkLmpzOiBBZGRlZC4KKwogMjAxNi0wOC0xOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFu
Y2UgZm9yIFdlYkdMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5NmUxYjA1MjA4Yzk2M2NkODMwMzFh
MjlkYmJiZTQ5Y2JhNmE0MzBhLi5hMjUzMjVjODI3YTEzZmRjYjc5ZTNhNTBiMTE3M2JjNDFlYTRi
YmM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwODQsMyArMTA4NCwyMSBAQCB3ZWJraXQub3Jn
L2IvMTU5NzU1IGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItZmUwZi05Lmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNTk3NTUgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNjAwMTcganMvcmVncmVzcy0x
Mzk1NDguaHRtbCBbIFNsb3cgXQorCisjIEVTNiBNb2R1bGVzIGFyZSBub3QgeWV0IGVuYWJsZWQg
YnkgZGVmYXVsdDogRU5BQkxFKEVTNl9NT0RVTEVTKQorIyBqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1v
bmVycm9yLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hv
dWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1pbmxp
bmUtZHluYW1pYy5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5o
dG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5odG1sIFsg
U2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sIFsgU2tpcCBdCisjIGpzL2Rv
bS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5h
bWljLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1ub3Qt
Zm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sIFsgU2tpcCBdCisjIGpz
L2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwgWyBTa2lwIF0K
KyMganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbCBbIFNraXAgXQorIyBq
cy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1z
cmMtc2ltcGxlLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3Jl
bG9hZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFn
YXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliZGIyNzVhMmZiODM0ODk2
NGZiZThkZWI4MjU1M2I0YjlkYjlhNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91
bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CitUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgZGVwZW5kZW50IG1v
ZHVsZSB0aHJvdyBhbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01v
ZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIHRoZSBkZXBlbmRlbnQgbW9kdWxl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRl
LWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVu
dC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE3N2I1ZGQ3NjRkYmUyNDM0MjNkMWMzOGUzNzRjYzBmZGRjMjQzNzEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVw
ZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKQEAgLTAs
MCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
J1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBkZXBlbmRlbnQgbW9k
dWxlIHRocm93IGFuIGVycm9yLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNo
cm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlz
IG5vdCBleGVjdXRlZCB5ZXQuJyk7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uICgpIHsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgor
aW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzIgordGVzdEZhaWxl
ZCgiZXhlY3V0ZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3Bh
Z2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hNWRmNzAyOGYzNTQ5MzY2OTI5MjJlZmU2MWEyZGZiYTVmMWYwOTM1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24t
ZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGlu
bGluZWQgbW9kdWxlIHRocm93cyBhbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIHRoZSBtb2R1bGUu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxk
LWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM0NDYyZjM3ZWQ4MTczMDYxZjdmOTk1MzZjNDJkMjk5NWMyNTI3MjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgd2luZG93Lm9u
ZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBpbmxpbmVkIG1vZHVsZSB0aHJvd3MgYW4gZXJy
b3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitkZWJ1ZygnRXhlY3V0aW5n
IHRoZSBtb2R1bGUuJyk7Cit0aHJvdyBuZXcgRXJyb3IoIm1vZHVsZSBpcyBleGVjdXRlZC4iKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmZmZGYzMzk3NTdhNGEzNzk2NGU4ODlhZWM2OWFmY2M1OTlhYjc4ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlu
bGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9u
IG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBjb3VudCsrIGlz
IDAKK1BBU1MgY291bnQrKyBpcyAxCitQQVNTIGNvdW50KysgaXMgMgorUEFTUyBjb3VudCsrIGlz
IDMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxp
bmUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGlu
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU1MjVlNzY5MDhjZmI2ZmVhMDEwN2Y0ZGFhZGQxZDI5MzFiZjNj
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1pbmxpbmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJl
dHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4nKTsKK3dpbmRvdy5jb3VudCA9IDA7CisvLyBNb2R1
bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK3Nob3VsZEJl
KCJjb3VudCsrIiwgIjAiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorc2hv
dWxkQmUoImNvdW50KysiLCAiMSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+
CitzaG91bGRCZSgiY291bnQrKyIsICIyIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9k
dWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjM3ZjUyNGY1MzE5MDVkOGE1M2Y0NGEzM2FiNmZmYjQwMDEyMTAzMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0
d2VlbiBtaXhlZCB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworV2Uga2Vl
cCB0aGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbW9kdWxlcy4KK01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LgorUEFTUyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQrKyBpcyAxCitQQVNTIGNv
dW50KysgaXMgMgorUEFTUyBjb3VudCsrIGlzIDMKK1BBU1MgY291bnQrKyBpcyA0CitQQVNTIGNv
dW50KysgaXMgNQorUEFTUyBjb3VudCsrIGlzIDYKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTkxZDMwM2VkZDc1
NzczODEyOGRkOWQxNWJiNDBjN2U3NmMyY2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApAQCAtMCwwICsxLDI3
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBt
b2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbWl4ZWQgdGFncy4nKTsKK2RlYnVnKCdXZSBr
ZWVwIHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLicpOword2luZG93LmNvdW50
ID0gMDsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InNjcmlwdC10ZXN0
cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjQiKTsKKzwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
bWl4ZWQtMi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitzaG91bGRCZSgi
Y291bnQrKyIsICI2Iik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1p
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWlj
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzkzOWFhZjBhNTAxNWY0NzkzODZjZDMxOTVhYTU5
ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1p
bmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBpbmxpbmVk
IG1vZHVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxl
IGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlw
ZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgp
IGlzICJhd2Vzb21lIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5
bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hOGMwZTI1OWFiMjkxZWZmYzRiZWU3OGFlNjVjMzQxN2MxMWQwNWVlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1p
Yy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlLicpOworCisvLyBNb2R1bGUgd2lsbCBi
ZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzY3JpcHQiKTsKKyAgICBlbGVtZW50LnRleHRDb250ZW50ID0gYAorICAgICAgICBpbXBv
cnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzIjsK
KyAgICAgICAgdmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKKyAgICAgICAgZGVidWcoIk1vZHVs
ZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7
CisKKyAgICAgICAgd2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmplY3QiKTsKKyAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAiYXdlc29t
ZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBgOworICAgIGVsZW1lbnQudHlwZSA9
ICJtb2R1bGUiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit9ICgp
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM5Mzlh
YWYwYTUwMTVmNDc5Mzg2Y2QzMTk1YWE1OWRkMTY5MDk3NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNCBAQAorVGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBp
cyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2Eg
aXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BB
U1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhiY2YwNjBkMWJkNjk0NWIwODkx
NmViYTE1MjlhNTU4ZmU2YjJkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlLicp
OworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUg
aXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUi
PgoraW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxl
LmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlv
biBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRl
ZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENv
Y29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRh
c3RlKCkiLCAiYXdlc29tZSIpOworZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NjI2NjgwMmRhNTdjNzU4Y2UzZTRhMmYzMWQ3ODkwZDBl
NWI3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQt
ZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlv
biBvcmRlciBiZXR3ZWVuIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBhbiBpbmxpbmVkIG1vZHVsZS4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3Jj
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGEyZjliOTk2MTZmZjQ3MGFlZTJhNDVlNzJiYmRh
NmVmYWNkNDA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1s
b2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IHNj
cmlwdC5vbmxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGxv
YWRzIGFuZCBleGVjdXRlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVs
ZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGEgbW9kdWxlIHdpdGggc3JjIGF0dHJp
YnV0ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1z
cmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ5NGE0YTMwNzBhOTZlNmRhY2JkOGI3NDZhNzdjMDU3YTQyYzU2YTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQt
d2l0aC1zcmMuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25sb2FkIHdpbGwgYmUgZmlyZWQgd2hl
biB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBsb2FkcyBhbmQgZXhlY3V0ZXMuJyk7CisvLyBNb2R1
bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0KCkiIHNyYz0ic2Ny
aXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1l
dmVudC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWJiOGM4MDlmMmQ0NWNkM2YzMTc4OWFmZTJkZjdiMzBkY2UxZjQ1ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0YWdzLicpOworLy8gTW9k
dWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgpIj4KK2RlYnVn
KCdFeGVjdXRpbmcgYW4gaW5saW5lZCBtb2R1bGUuJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MWFiNDlkMTQ5NzYy
NGRmMjJlMDM0Nzk3YjM5YWE4ZWM4Njk0ZWNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBv
aW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKzIgZGlmZmVyZW50IG1v
ZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGZyb20gYSBkeW5h
bWljYWxseSBnZW5lcmF0ZWQgdGFnCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitD
dXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hv
dWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4K
K0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1w
b2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5h
bWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJv
bS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZDUxZTJi
NmNlYTg2MTdiYWNmMGM0MGUzMzdlOTA5YTFkMzFhMzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCcyIGRpZmZlcmVudCBtb2R1bGUgdGFnIHdpbGwg
YXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBmcm9tIGEgZHluYW1pY2FsbHkgZ2VuZXJh
dGVkIHRhZycpOworZGVidWcoJ0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUg
c3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4nKTsKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyIKK2RlYnVnKCdF
eGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic2NyaXB0Iik7CitlbGVtZW50LnR5cGUgPSAibW9kdWxlIjsKK2VsZW1lbnQuaW5uZXJU
ZXh0ID0gInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC5qcyI7CitlbGVtZW50Lm9uZXJyb3IgPSBmaW5pc2hKU1Rlc3QoKTsKK2Rv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9p
bnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZjk4ZmNjYjZmYWZhMDY0NDdlMzAzMmVmMDZk
OTgyMDI3ZjI1MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTQgQEAKKzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRv
IGxvYWQgdGhlIHNhbWUgbW9kdWxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitD
dXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hv
dWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4K
K0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1w
b2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlm
ZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQt
c2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MDZkNGUwYjYzY2RjMDEyNzQxMzNiZWZkOTM4NDQyNTU1NThiMTg3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVy
ZW50LWVudHJ5LXBvaW50Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBh
dHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlJyk7CitkZWJ1ZygnQ3VycmVudGx5LCB0aGlz
IGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNob3VsZCBiZSBmaXhlZCBp
biB0aGUgZnV0dXJlLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3Vz
bHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2ltcG9y
dCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVu
dHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3QoKSI+CitpbXBvcnQg
InNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzOGJh
M2MyZTc5OTc3ZTJjOWY3OTM0ODA5NzM2ZmQ5ODM3ZDcyZjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6IFN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJub3QtZm91bmQuanMiLiBFeHBlY3RlZCAnZnJv
bScgYmVmb3JlIGltcG9ydGVkIG1vZHVsZSBuYW1lLgorVGVzdCBzY3JpcHQub25lcnJvciB3aWxs
IGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUgaW1wb3J0IGRlY2xh
cmF0aW9uIGluIHRoZSBpbmxpbmVkIG1vZHVsZSBpcyBub3QgZm91bmQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1h
bmQtaW1wb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZv
dW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc0ODc4NzUwMWExMjkyNzY4MTA5MTg3OTA3YWZjNDdkZmI2ZDI4OTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13
aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHNj
cmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5
IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGRlcGVuZGVudCBtb2R1bGUgaXMgbm90IGZv
dW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVj
dXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJy
b3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRlZjM5ODY4NWFlMDVhMTFjZThhMWUwYjIyMDk4ZTk4NTMxZDYyOTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2ls
bCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhlIGltcG9ydCBkZWNs
YXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVsZSBpcyBub3QgZm91bmQuJyk7CisvLyBNb2R1
bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0aW9u
IG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNo
SlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0
LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5q
cyIgb25lcnJvcj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdp
dGgtc3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5k
LWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODBkMTVkZmU2
ZDA5YmZjNmI4NTgzYTQ4ZGVjNmRjYjFiNWIxNDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJl
ZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgInNyYyIgaXMgbm90IGZvdW5kLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9y
LWV2ZW50LXdpdGgtc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhNDdmNjEwNjlhZmVjYmNiMzhiMGE5
NTc1NjI1Y2U4MmRmNDgxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKQEAgLTAsMCArMSwyMSBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2Ny
aXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkg
InNyYyIgaXMgbm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNo
cm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlz
IG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sKKyAgICBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Im5vdC1mb3VuZC5qcyIgb25lcnJvcj0ib25FcnJvcigp
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjYjU5NGM2
NDY4MzhlNGMzNWUzNzU2MWY2ZGNlM2Q4Mzc3MGI3NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCkBAIC0wLDAg
KzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdU
ZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lm
aWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGlubGluZWQgbW9kdWxlIGlzIG5v
dCBmb3VuZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0
ZWQgeWV0LicpOworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
Im1vZHVsZSIgb25lcnJvcj0ib25FcnJvcigpIj4KK2ltcG9ydCBmcm9tICJub3QtZm91bmQuanMi
OwordGVzdEZhaWxlZCgnZXhlY3V0ZWQnKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZDhiMDA2MjQ5MGVjNzIyOTVjZmY1MDYxYTA4MzllNDAwMjBjZDhhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRy
aWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBl
bnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQQVNTIHR5cGVv
ZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2EudGFzdGUoKSBp
cyAibmljZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0
bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzg0ZmY0MjY0Zjk4MWZlOTY0OWVkM2E3MjFiMWNmYTRmYTVlOTFjZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbApAQCAtMCww
ICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJl
IGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Licp
OworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3NjcmlwdCcpOworICAgIGVsZW1lbnQudHlwZSA9ICdtb2R1bGUnOworICAgIGVsZW1lbnQu
c3JjID0gJy4vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcyc7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK30oKSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkOGIwMDYyNDkwZWM3MjI5NWNmZjUwNjFhMDgzOWU0MDAy
MGNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1z
aW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9kdWxlIHdpdGggInNy
YyIgYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlz
IG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBt
b2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFT
UyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRh
c3RlKCkgaXMgIm5pY2UiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2lt
cGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZjczYjBjNTRhMjVhNGY3NmMxNGEzYjVkYzMxNzNmZTg5M2NiM2NkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwKQEAg
LTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oJ1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLicpOworCisvLyBNb2R1bGUgd2ls
bCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1zaW1wbGUuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVs
b2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYThkOTcwOGRiM2UwNWM0YjAxMDNiZTdkY2Vi
MGMwMDcxMTc1Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVz
dCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0
aCBzcmMgaXMgcHJlcGFyZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1
bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdp
bGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZmYxNjUzZDA2YzA2ZTFkNzQx
NzlkMDExMDAzNmUxNDlkODY5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQuYmVm
b3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0aCBzcmMgaXMgcHJl
cGFyZWQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9uYmVmb3JlbG9hZD0i
ZmluaXNoSlNUZXN0KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3Jl
bG9hZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRl
cGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1p
bnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRo
cm93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM2YzE1YWYyMTQyYjQ4MDI2MDJlYWQwMzcwMGY4YmJlMDFiYzJi
ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcwpAQCAtMCwwICsxLDIgQEAKK2RlYnVnKCJFeGVj
dXRpbmcgdGhlIGRlcGVuZGVudCBtb2R1bGUiKTsKK3Rocm93IG5ldyBFcnJvcigib3V0Iik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRp
b24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8t
b25lcnJvci5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10
by1vbmVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YzdjYTQ3OWIyNTg4OWIwMGNhMjRjZDViYmUzMzFk
YWE2NWY3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxk
LWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcwpAQCAtMCwwICsxLDIgQEAKK2ltcG9ydCAibW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzIgordGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC0yLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMzYjlkMzUyYWVjNTdi
MDYxZGRiZTAwYjdjZjk0ZWE1NzRhZWM0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzCkBA
IC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjUiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1j
YXBwdWNjaW5vLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMxNDZmZDc2NmU1
NWEwMmFlNzhiYWY5ZGQ2MzM5OGViODVhODkwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBw
dWNjaW5vLmpzCkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLW1hdGNoYS5qcyIKKworc2hvdWxkQmUoImNvdW50KysiLCAiMiIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLWNvY29hLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OGQ3MzI0M2ZlZjMw
YTBiNDk0OWRiYTdmYmY4NTM0ZWViYTlmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2Eu
anMKQEAgLTAsMCArMSwzIEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQt
bWF0Y2hhLmpzIjsKKworc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
LW1hdGNoYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1
dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJlMTVkN2NmMGNmZjRlYWEx
YTBiNWExZWU4M2RjY2UzMjRhMjVlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMK
QEAgLTAsMCArMSBAQAorc2hvdWxkQmUoImNvdW50KysiLCAiMCIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0Mzg2ZmJiODY4MWNiZjdlNTljNDczNzYzN2U4N2Jl
MzhjZmY3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMKQEAgLTAsMCArMSw0IEBACitpbXBv
cnQgIi4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcyIKK2ltcG9ydCAiLi9t
b2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMiCisKK3Nob3VsZEJlKCJj
b3VudCsrIiwgIjMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQzNjBhN2JmZTdlMDVh
MGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzCkBAIC0wLDAgKzEs
NSBAQAorZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29jb2EgeworICAgIHRhc3RlKCkgeworICAgICAg
ICByZXR1cm4gImF3ZXNvbWUiOworICAgIH0KK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NDM2MGE3YmZlN2UwNWEwY2IyNTM4NDEzNjdlNzFkYzFlOTNiNWM3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5q
cwpAQCAtMCwwICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29hIHsKKyAgICB0YXN0
ZSgpIHsKKyAgICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNy
Yy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQt
d2l0aC1zcmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I4NzAyOTBkM2VjN2UwODBjMDVmOWY2NjY4NDRjZDA2
NzUyOWZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKQEAgLTAsMCArMSBAQAorZGVidWcoJ0V4
ZWN1dGluZyBhIG1vZHVsZSB3aXRoIHNyYyBhdHRyaWJ1dGUuJyk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNWFkNzdmODAwODA0MzgxYmY0ZjFlYWRiNTE3ZjU2MGYwYzRlYjY2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9h
ZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcwpAQCAtMCwwICsxIEBA
CitkZWJ1ZygnRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50
LWVudHJ5LXBvaW50LmpzLicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQu
anMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJy
b3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzFiNDcxNDgxMzhh
MGVjNDUyMmMyMjcyMzNhM2M3NDEzMzcxMjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgt
c3JjLWFuZC1pbXBvcnQuanMKQEAgLTAsMCArMSBAQAoraW1wb3J0ICJub3QtZm91bmQuanMiCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHlu
YW1pYy1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNy
Yy1keW5hbWljLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3OTU5MmRjNTEzY2YyNTk4NDFmZjlkNDYz
OTA0NTEyYjBlY2I3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAKK2Ns
YXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAgICB9
Cit9CisKK2V4cG9ydCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMgYi9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTFhN2Jl
NmI0ZjEyOTNhZjU5Njg2ZmUzZTU3ODAxZDJlMDk2YzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMKQEAgLTAs
MCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNyYy1keW5hbWljLWNvY29h
LmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlv
biBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRl
ZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENv
Y29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRh
c3RlKCkiLCAibmljZSIpOworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzIGIvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5ZDQ2MzkwNDUxMmIwZWNiNzQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNp
bXBsZS1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAKK2NsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgp
IHsKKyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAgICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0IENv
Y29hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
c3JjLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNy
Yy1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ5Yzc3NGZkOWU3YTVjOWQxODU5MjQwNDRlN2EyNzhh
ZDczMzcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZy
b20gIi4vbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMiOwordmFyIGNvY29hID0gbmV3IENvY29h
KCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUg
ZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1
bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJuaWNlIik7CitmaW5pc2hKU1Rl
c3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBhMzkzODM1NjMz
YWVjNTVlNWU1OTU3MjlkYTY5MTllOWMzMjAzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzCkBA
IC0wLDAgKzEgQEAKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286556</attachid>
            <date>2016-08-20 23:01:22 -0700</date>
            <delta_ts>2016-08-20 23:17:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20160821145927.patch</filename>
            <type>text/plain</type>
            <size>148181</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YzQ4ZGM3N2ExYmIxZWQzNTlmZGM2ODVjZDI3MGZmZjY1OGE1MGFiLi5jMmE2NmUyN2M4YmNmZjg3
M2EwMTNkMjYzM2YxYjE5N2E1YjljZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxNi0wOC0yMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ1aWx0
aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qczoKKyAgICAgICAgKHJlcXVlc3RGZXRjaCk6Cisg
ICAgICAgIChyZXF1ZXN0VHJhbnNsYXRlKToKKyAgICAgICAgKHJlcXVlc3RJbnN0YW50aWF0ZSk6
CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyk6CisgICAgICAgIChyZXF1ZXN0
SW5zdGFudGlhdGVBbGwpOgorICAgICAgICAocmVxdWVzdExpbmspOgorICAgICAgICAobW9kdWxl
RXZhbHVhdGlvbik6CisgICAgICAgIChwcm92aWRlKToKKyAgICAgICAgKGxvYWRBbmRFdmFsdWF0
ZU1vZHVsZSk6CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcy4pOiBEZWxldGVk
LgorICAgICAgICAocmVxdWVzdFJlYWR5KTogRGVsZXRlZC4KKyAgICAgICAgKGxpbmspOiBEZWxl
dGVkLgorICAgICAgICAobG9hZE1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChsaW5rQW5kRXZh
bHVhdGVNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9i
YWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6bG9hZE1v
ZHVsZSk6CisgICAgICAgIChKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
cnVudGltZS9Db21wbGV0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoSlNDOjpK
U01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNN
b2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6
bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OnJl
c29sdmUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAo
SlNDOjpKU01vZHVsZUxvYWRlcjo6dHJhbnNsYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVM
b2FkZXI6Omluc3RhbnRpYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogcnVu
dGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJQcm90b3R5cGVSZXNvbHZlKToKKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyUHJvdG90eXBl
RmV0Y2gpOgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVUcmFuc2xhdGUpOgor
ICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZSk6CisgICAgICAg
IChKU0M6Om1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlKToKKyAgICAgICAgKiBydW50aW1l
L1N5bWJvbC5oOgorCiAyMDE2LTA4LTIwICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW90ZSBJbnNwZWN0b3I6IHNvbWUgbWV0aG9kcyBkb24ndCBuZWVkIHRvIGJl
IG1hcmtlZCB2aXJ0dWFsIGFueW1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MDllNDljMzY2ZmJmZTA0NjQ3
NWY3Y2JiZGM0OTU3OWMxNTg0MGUwLi5lMzU2NjQ2M2NkNzlmZmEzNmM3NTg4ZmZiYWFhN2ZmZGU5
OWNjOTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTggQEAKKzIwMTYtMDgtMjAgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRl
IEVTNiBNb2R1bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdHM6IGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWlu
c2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVs
ZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVs
ZS1pbmxpbmUtZHluYW1pYy5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWlubGlu
ZS1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdp
dGgtc3JjLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1s
CisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZm
ZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9k
dWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbAorICAg
ICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMt
YW5kLWltcG9ydC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLW5v
dC1mb3VuZC1lcnJvci1ldmVudC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLXNy
Yy1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5o
dG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0
bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWFp
blRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5U
aHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNNb2R1bGVGZXRjaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU01v
ZHVsZUZldGNoZXI6OkpTTW9kdWxlRmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVs
ZUZldGNoZXI6On5KU01vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVG
ZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVyOjpydW4p
OgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVGZXRjaGVyLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmguCisgICAgICAgIChXZWJDb3Jl
OjpKU01vZHVsZUZldGNoZXI6OmNhY2hlZFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNNb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFw
aDo6SlNNb2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpub3Rp
ZnlMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6bm90aWZ5RXJyb3Jl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpldmFsdWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpub3RpZnlFdmFsdWF0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2R1bGVHcmFwaDo6bG9hZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1
bGVHcmFwaC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVs
ZUxvYWRlci5oLgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6ZWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjptb2R1bGVLZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2R1bGVHcmFwaDo6d2Vha0VsZW1lbnRQdHIpOgorICAgICAgICAoV2ViQ29yZTo6
SlNNb2R1bGVHcmFwaDo6ZXJyb3JPY2N1cnJlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVs
ZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUxvYWRl
cjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVy
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29u
dHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmluaXRKU01vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmV4ZWN1dGVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6Om1vZHVsZUxvYWRlckFs
cmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0RWxlbWVudDo6bG9hZE1vZHVsZSk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om1vZHVsZUdyYXBoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnNjcmlwdFR5cGUpOgorICAgICAgICAqIGRvbS9T
Y3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjp+U2NyaXB0
UnVubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6cXVldWVKU01vZHVsZUdy
YXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5
SlNNb2R1bGVHcmFwaFJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGlt
ZXJGaXJlZCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6CisKIDIwMTYtMDgtMjAgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVsZUxvYWRlclByb3RvdHlw
ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Nb2R1bGVMb2FkZXJQcm90b3R5
cGUuanMKaW5kZXggNmEzYmM4MjQzMGVmMThhYmFlNjM0ZDBmMTJlNjIwZmJjZTA5YjMzMi4uODc2
NDM0MDhkZmI3ZGYwNDljOTc1NGUxNjhhMzM5YzE5ZmM5YjhhNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qcworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzCkBA
IC0yMjMsNyArMjIzLDcgQEAgZnVuY3Rpb24gaW5zdGFudGlhdGlvbihyZXN1bHQsIHNvdXJjZSwg
ZW50cnkpCiAKIC8vIExvYWRlci4KIAotZnVuY3Rpb24gcmVxdWVzdEZldGNoKGtleSkKK2Z1bmN0
aW9uIHJlcXVlc3RGZXRjaChrZXksIGluaXRpYXRvcikKIHsKICAgICAvLyBodHRwczovL3doYXR3
Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1ZXN0LWZldGNoCiAKQEAgLTIzOSwyMyArMjM5LDIxIEBA
IGZ1bmN0aW9uIHJlcXVlc3RGZXRjaChrZXkpCiAgICAgaWYgKGVudHJ5LmZldGNoKQogICAgICAg
ICByZXR1cm4gZW50cnkuZmV0Y2g7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKLQogICAgIC8v
IEhvb2sgcG9pbnQuCiAgICAgLy8gMi4gTG9hZGVyLmZldGNoCiAgICAgLy8gICAgIGh0dHBzOi8v
d2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXItZmV0Y2gKICAgICAvLyAgICAgVGFrZSB0
aGUga2V5IGFuZCBmZXRjaCB0aGUgcmVzb3VyY2UgYWN0dWFsbHkuCiAgICAgLy8gICAgIEZvciBl
eGFtcGxlLCBKYXZhU2NyaXB0Q29yZSBzaGVsbCBjYW4gcHJvdmlkZSB0aGUgaG9vayBmZXRjaGlu
ZyB0aGUgcmVzb3VyY2UKICAgICAvLyAgICAgZnJvbSB0aGUgbG9jYWwgZmlsZSBzeXN0ZW0uCi0g
ICAgdmFyIGZldGNoUHJvbWlzZSA9IHRoaXMuZmV0Y2goa2V5KS50aGVuKGZ1bmN0aW9uIChwYXls
b2FkKSB7Ci0gICAgICAgIGxvYWRlci5zZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlVHJhbnNs
YXRlKTsKKyAgICB2YXIgZmV0Y2hQcm9taXNlID0gdGhpcy5mZXRjaChrZXksIGluaXRpYXRvciku
dGhlbigocGF5bG9hZCkgPT4geworICAgICAgICB0aGlzLnNldFN0YXRlVG9NYXgoZW50cnksIEBN
b2R1bGVUcmFuc2xhdGUpOwogICAgICAgICByZXR1cm4gcGF5bG9hZDsKICAgICB9KTsKICAgICBl
bnRyeS5mZXRjaCA9IGZldGNoUHJvbWlzZTsKICAgICByZXR1cm4gZmV0Y2hQcm9taXNlOwogfQog
Ci1mdW5jdGlvbiByZXF1ZXN0VHJhbnNsYXRlKGtleSkKK2Z1bmN0aW9uIHJlcXVlc3RUcmFuc2xh
dGUoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xv
YWRlci8jcmVxdWVzdC10cmFuc2xhdGUKIApAQCAtMjcxLDE1ICsyNjksMTQgQEAgZnVuY3Rpb24g
cmVxdWVzdFRyYW5zbGF0ZShrZXkpCiAgICAgaWYgKGVudHJ5LnRyYW5zbGF0ZSkKICAgICAgICAg
cmV0dXJuIGVudHJ5LnRyYW5zbGF0ZTsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHZh
ciB0cmFuc2xhdGVQcm9taXNlID0gdGhpcy5yZXF1ZXN0RmV0Y2goa2V5KS50aGVuKGZ1bmN0aW9u
IChwYXlsb2FkKSB7CisgICAgdmFyIHRyYW5zbGF0ZVByb21pc2UgPSB0aGlzLnJlcXVlc3RGZXRj
aChrZXksIGluaXRpYXRvcikudGhlbigocGF5bG9hZCkgPT4gewogICAgICAgICAvLyBIb29rIHBv
aW50LgogICAgICAgICAvLyAzLiBMb2FkZXIudHJhbnNsYXRlCiAgICAgICAgIC8vICAgICBodHRw
czovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNicm93c2VyLXRyYW5zbGF0ZQogICAgICAgICAv
LyAgICAgVGFrZSB0aGUga2V5IGFuZCB0aGUgZmV0Y2hlZCBzb3VyY2UgY29kZSBhbmQgdHJhbnNs
YXRlIGl0IHRvIHRoZSBFUzYgc291cmNlIGNvZGUuCiAgICAgICAgIC8vICAgICBUeXBpY2FsbHkg
aXQgaXMgdXNlZCBieSB0aGUgdHJhbnNwaWxlcnMuCi0gICAgICAgIHJldHVybiBsb2FkZXIudHJh
bnNsYXRlKGtleSwgcGF5bG9hZCkudGhlbihmdW5jdGlvbiAoc291cmNlKSB7Ci0gICAgICAgICAg
ICBsb2FkZXIuc2V0U3RhdGVUb01heChlbnRyeSwgQE1vZHVsZUluc3RhbnRpYXRlKTsKKyAgICAg
ICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlKGtleSwgcGF5bG9hZCwgaW5pdGlhdG9yKS50aGVuKChz
b3VyY2UpID0+IHsKKyAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVUb01heChlbnRyeSwgQE1vZHVs
ZUluc3RhbnRpYXRlKTsKICAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CiAgICAgICAgIH0pOwog
ICAgIH0pOwpAQCAtMjg3LDcgKzI4NCw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RUcmFuc2xhdGUoa2V5
KQogICAgIHJldHVybiB0cmFuc2xhdGVQcm9taXNlOwogfQogCi1mdW5jdGlvbiByZXF1ZXN0SW5z
dGFudGlhdGUoa2V5KQorZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtleSwgaW5pdGlhdG9y
KQogewogICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtaW5z
dGFudGlhdGUKIApAQCAtMzAzLDggKzMwMCw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0
ZShrZXkpCiAgICAgaWYgKGVudHJ5Lmluc3RhbnRpYXRlKQogICAgICAgICByZXR1cm4gZW50cnku
aW5zdGFudGlhdGU7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKLSAgICB2YXIgaW5zdGFudGlh
dGVQcm9taXNlID0gdGhpcy5yZXF1ZXN0VHJhbnNsYXRlKGtleSkudGhlbihmdW5jdGlvbiAoc291
cmNlKSB7CisgICAgdmFyIGluc3RhbnRpYXRlUHJvbWlzZSA9IHRoaXMucmVxdWVzdFRyYW5zbGF0
ZShrZXksIGluaXRpYXRvcikudGhlbigoc291cmNlKSA9PiB7CiAgICAgICAgIC8vIEhvb2sgcG9p
bnQuCiAgICAgICAgIC8vIDQuIExvYWRlci5pbnN0YW50aWF0ZQogICAgICAgICAvLyAgICAgaHR0
cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jYnJvd3Nlci1pbnN0YW50aWF0ZQpAQCAtMzEy
LDggKzMwOCw4IEBAIGZ1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZShrZXkpCiAgICAgICAgIC8v
ICAgICBieSBwYXJzaW5nIHRoZSBtb2R1bGUgc291cmNlIGNvZGUuCiAgICAgICAgIC8vICAgICBJ
dCBoYXMgdGhlIGNoYW5jZSB0byBwcm92aWRlIHRoZSBvcHRpb25hbCBtb2R1bGUgaW5zdGFuY2Ug
dGhhdCBpcyBkaWZmZXJlbnQgZnJvbQogICAgICAgICAvLyAgICAgdGhlIG9yZGluYXJ5IG9uZS4K
LSAgICAgICAgcmV0dXJuIGxvYWRlci5pbnN0YW50aWF0ZShrZXksIHNvdXJjZSkudGhlbihmdW5j
dGlvbiAob3B0aW9uYWxJbnN0YW5jZSkgewotICAgICAgICAgICAgbG9hZGVyLmNvbW1pdEluc3Rh
bnRpYXRlZChlbnRyeSwgb3B0aW9uYWxJbnN0YW5jZSwgc291cmNlKTsKKyAgICAgICAgcmV0dXJu
IHRoaXMuaW5zdGFudGlhdGUoa2V5LCBzb3VyY2UsIGluaXRpYXRvcikudGhlbigob3B0aW9uYWxJ
bnN0YW5jZSkgPT4geworICAgICAgICAgICAgdGhpcy5jb21taXRJbnN0YW50aWF0ZWQoZW50cnks
IG9wdGlvbmFsSW5zdGFuY2UsIHNvdXJjZSk7CiAgICAgICAgICAgICByZXR1cm4gZW50cnk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzIxLDcgKzMxNyw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RJ
bnN0YW50aWF0ZShrZXkpCiAgICAgcmV0dXJuIGluc3RhbnRpYXRlUHJvbWlzZTsKIH0KIAotZnVu
Y3Rpb24gcmVxdWVzdFJlc29sdmVEZXBlbmRlbmNpZXMoa2V5KQorZnVuY3Rpb24gcmVxdWVzdFJl
c29sdmVEZXBlbmRlbmNpZXMoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gRklYTUU6IEluIHRo
ZSBzcGVjLCBhZnRlciByZXF1ZXN0aW5nIGluc3RhbnRpYXRpb24sIHdlIHdpbGwgcmVzb2x2ZQog
ICAgIC8vIHRoZSBkZXBlbmRlbmNpZXMgd2l0aG91dCBhbnkgc3RhdHVzIGNoYW5nZS4gQXMgYSBy
ZXN1bHQsIHdoZW4gdGhlcmUKQEAgLTM0NSw4ICszNDEsNyBAQCBmdW5jdGlvbiByZXF1ZXN0UmVz
b2x2ZURlcGVuZGVuY2llcyhrZXkpCiAgICAgaWYgKGVudHJ5LnJlc29sdmVEZXBlbmRlbmNpZXMp
CiAgICAgICAgIHJldHVybiBlbnRyeS5yZXNvbHZlRGVwZW5kZW5jaWVzOwogCi0gICAgdmFyIGxv
YWRlciA9IHRoaXM7Ci0gICAgdmFyIHJlc29sdmVEZXBlbmRlbmNpZXNQcm9taXNlID0gdGhpcy5y
ZXF1ZXN0SW5zdGFudGlhdGUoa2V5KS50aGVuKGZ1bmN0aW9uIChlbnRyeSkgeworICAgIHZhciBy
ZXNvbHZlRGVwZW5kZW5jaWVzUHJvbWlzZSA9IHRoaXMucmVxdWVzdEluc3RhbnRpYXRlKGtleSwg
aW5pdGlhdG9yKS50aGVuKChlbnRyeSkgPT4gewogICAgICAgICB2YXIgZGVwTG9hZHMgPSBbXTsK
ICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IGVudHJ5LmRlcGVuZGVuY2llcy5sZW5n
dGg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICAgICAgbGV0IHBhaXIgPSBlbnRyeS5kZXBl
bmRlbmNpZXNbaV07CkBAIC0zNTYsOCArMzUxLDggQEAgZnVuY3Rpb24gcmVxdWVzdFJlc29sdmVE
ZXBlbmRlbmNpZXMoa2V5KQogICAgICAgICAgICAgLy8gICAgIGh0dHBzOi8vd2hhdHdnLmdpdGh1
Yi5pby9sb2FkZXIvI2Jyb3dzZXItcmVzb2x2ZQogICAgICAgICAgICAgLy8gICAgIFRha2UgdGhl
IG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVz
b3VyY2UgbG9jYXRpb24uCiAgICAgICAgICAgICAvLyAgICAgRm9yIGV4YW1wbGUsIHRha2UgdGhl
ICJqcXVlcnkiIGFuZCByZXR1cm4gdGhlIFVSTCBmb3IgdGhlIHJlc291cmNlLgotICAgICAgICAg
ICAgdmFyIHByb21pc2UgPSBsb2FkZXIucmVzb2x2ZShwYWlyLmtleSwga2V5KS50aGVuKGZ1bmN0
aW9uIChkZXBLZXkpIHsKLSAgICAgICAgICAgICAgICB2YXIgZGVwRW50cnkgPSBsb2FkZXIuZW5z
dXJlUmVnaXN0ZXJlZChkZXBLZXkpOworICAgICAgICAgICAgdmFyIHByb21pc2UgPSB0aGlzLnJl
c29sdmUocGFpci5rZXksIGtleSwgaW5pdGlhdG9yKS50aGVuKChkZXBLZXkpID0+IHsKKyAgICAg
ICAgICAgICAgICB2YXIgZGVwRW50cnkgPSB0aGlzLmVuc3VyZVJlZ2lzdGVyZWQoZGVwS2V5KTsK
IAogICAgICAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZSByZXNvbHZpbmcuIFRoZSBkZXBlbmRlbmNp
ZXMgb2YgdGhpcyBlbnRyeSBpcyBiZWluZyByZXNvbHZlZCBvciBhbHJlYWR5IHJlc29sdmVkLgog
ICAgICAgICAgICAgICAgIC8vIFN0b3AgdHJhY2luZyB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jaWVz
LgpAQCAtMzY5LDEzICszNjQsMTMgQEAgZnVuY3Rpb24gcmVxdWVzdFJlc29sdmVEZXBlbmRlbmNp
ZXMoa2V5KQogICAgICAgICAgICAgICAgIC8vIHJlamVjdGVkIGJ5IHRoZSBQcm9taXNlcyBydW50
aW1lLiBTaW5jZSBvbmx5IHdlIG5lZWQgaXMgdGhlIGluc3RhbnRpYXRlZCBtb2R1bGUsIGluc3Rl
YWQgb2Ygd2FpdGluZwogICAgICAgICAgICAgICAgIC8vIHRoZSBSZXNvbHZlRGVwZW5kZW5jaWVz
IGZvciB0aGlzIG1vZHVsZSwgd2UganVzdCB3YWl0IEluc3RhbnRpYXRlIGZvciB0aGlzLgogICAg
ICAgICAgICAgICAgIGlmIChkZXBFbnRyeS5yZXNvbHZlRGVwZW5kZW5jaWVzKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBkZXBFbnRyeS5pbnN0YW50aWF0ZS50aGVuKGZ1bmN0aW9uIChl
bnRyeSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVwRW50cnkuaW5zdGFudGlhdGUu
dGhlbigoZW50cnkpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHBhaXIudmFsdWUgPSBl
bnRyeS5tb2R1bGU7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAg
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
IHJldHVybiBsb2FkZXIucmVxdWVzdFJlc29sdmVEZXBlbmRlbmNpZXMoZGVwS2V5KS50aGVuKGZ1
bmN0aW9uIChlbnRyeSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RSZXNv
bHZlRGVwZW5kZW5jaWVzKGRlcEtleSwgaW5pdGlhdG9yKS50aGVuKChlbnRyeSkgPT4gewogICAg
ICAgICAgICAgICAgICAgICBwYWlyLnZhbHVlID0gZW50cnkubW9kdWxlOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgICAgICAgICAgfSk7CkBAIC0zODMsOCArMzc4
LDggQEAgZnVuY3Rpb24gcmVxdWVzdFJlc29sdmVEZXBlbmRlbmNpZXMoa2V5KQogICAgICAgICAg
ICAgQHB1dEJ5VmFsRGlyZWN0KGRlcExvYWRzLCBpLCBwcm9taXNlKTsKICAgICAgICAgfQogCi0g
ICAgICAgIHJldHVybiBASW50ZXJuYWxQcm9taXNlLmludGVybmFsQWxsKGRlcExvYWRzKS50aGVu
KGZ1bmN0aW9uIChtb2R1bGVzKSB7Ci0gICAgICAgICAgICBsb2FkZXIuc2V0U3RhdGVUb01heChl
bnRyeSwgQE1vZHVsZUxpbmspOworICAgICAgICByZXR1cm4gQEludGVybmFsUHJvbWlzZS5pbnRl
cm5hbEFsbChkZXBMb2FkcykudGhlbigobW9kdWxlcykgPT4geworICAgICAgICAgICAgdGhpcy5z
ZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlTGluayk7CiAgICAgICAgICAgICByZXR1cm4gZW50
cnk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzkzLDE2ICszODgsMTYgQEAgZnVuY3Rpb24g
cmVxdWVzdFJlc29sdmVEZXBlbmRlbmNpZXMoa2V5KQogICAgIHJldHVybiByZXNvbHZlRGVwZW5k
ZW5jaWVzUHJvbWlzZTsKIH0KIAotZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlQWxsKGtleSkK
K2Z1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZUFsbChrZXksIGluaXRpYXRvcikKIHsKICAgICAv
LyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1ZXN0LWluc3RhbnRpYXRlLWFs
bAogCiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlc29sdmVE
ZXBlbmRlbmNpZXMoa2V5KTsKKyAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzb2x2ZURlcGVuZGVu
Y2llcyhrZXksIGluaXRpYXRvcik7CiB9CiAKLWZ1bmN0aW9uIHJlcXVlc3RMaW5rKGtleSkKK2Z1
bmN0aW9uIHJlcXVlc3RMaW5rKGtleSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hh
dHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtbGluawogCkBAIC00MTUsMjggKzQxMCwyNiBA
QCBmdW5jdGlvbiByZXF1ZXN0TGluayhrZXkpCiAgICAgICAgIHJldHVybiBkZWZlcnJlZC5AcHJv
bWlzZTsKICAgICB9CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKLSAgICByZXR1cm4gdGhpcy5y
ZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5KS50aGVuKGZ1bmN0aW9uIChlbnRyeSkgewotICAgICAg
ICBsb2FkZXIubGluayhlbnRyeSk7CisgICAgcmV0dXJuIHRoaXMucmVxdWVzdEluc3RhbnRpYXRl
QWxsKGtleSwgaW5pdGlhdG9yKS50aGVuKChlbnRyeSkgPT4geworICAgICAgICB0aGlzLmxpbmso
ZW50cnksIGluaXRpYXRvcik7CiAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICB9KTsKIH0KIAot
ZnVuY3Rpb24gcmVxdWVzdFJlYWR5KGtleSkKK2Z1bmN0aW9uIHJlcXVlc3RSZWFkeShrZXksIGlu
aXRpYXRvcikKIHsKICAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1
ZXN0LXJlYWR5CiAKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsK
LSAgICByZXR1cm4gdGhpcy5yZXF1ZXN0TGluayhrZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7
Ci0gICAgICAgIGxvYWRlci5tb2R1bGVFdmFsdWF0aW9uKGVudHJ5Lm1vZHVsZSk7CisgICAgcmV0
dXJuIHRoaXMucmVxdWVzdExpbmsoa2V5LCBpbml0aWF0b3IpLnRoZW4oKGVudHJ5KSA9PiB7Cisg
ICAgICAgIHRoaXMubW9kdWxlRXZhbHVhdGlvbihlbnRyeS5tb2R1bGUsIGluaXRpYXRvcik7CiAg
ICAgfSk7CiB9CiAKIC8vIExpbmtpbmcgc2VtYW50aWNzLgogCi1mdW5jdGlvbiBsaW5rKGVudHJ5
KQorZnVuY3Rpb24gbGluayhlbnRyeSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hh
dHdnLmdpdGh1Yi5pby9sb2FkZXIvI2xpbmsKIApAQCAtNDU2LDE1ICs0NDksMTUgQEAgZnVuY3Rp
b24gbGluayhlbnRyeSkKICAgICB2YXIgZGVwZW5kZW5jaWVzID0gZW50cnkuZGVwZW5kZW5jaWVz
OwogICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBkZXBlbmRlbmNpZXMubGVuZ3RoOyBpIDwg
bGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIHBhaXIgPSBkZXBlbmRlbmNpZXNbaV07Ci0gICAg
ICAgIHRoaXMubGluayhwYWlyLnZhbHVlLnJlZ2lzdHJ5RW50cnkpOworICAgICAgICB0aGlzLmxp
bmsocGFpci52YWx1ZS5yZWdpc3RyeUVudHJ5LCBpbml0aWF0b3IpOwogICAgIH0KIAotICAgIHRo
aXMubW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uKGVudHJ5Lm1vZHVsZSk7CisgICAgdGhp
cy5tb2R1bGVEZWNsYXJhdGlvbkluc3RhbnRpYXRpb24oZW50cnkubW9kdWxlLCBpbml0aWF0b3Ip
OwogfQogCiAvLyBNb2R1bGUgc2VtYW50aWNzLgogCi1mdW5jdGlvbiBtb2R1bGVFdmFsdWF0aW9u
KG1vZHVsZVJlY29yZCkKK2Z1bmN0aW9uIG1vZHVsZUV2YWx1YXRpb24obW9kdWxlUmVjb3JkLCBp
bml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2Vj
bWEtMjYyLzYuMC8jc2VjLW1vZHVsZWV2YWx1YXRpb24KIApAQCAtNDgxLDkgKzQ3NCw5IEBAIGZ1
bmN0aW9uIG1vZHVsZUV2YWx1YXRpb24obW9kdWxlUmVjb3JkKQogICAgIGZvciAodmFyIGkgPSAw
LCBsZW5ndGggPSBkZXBlbmRlbmNpZXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgdmFyIHBhaXIgPSBkZXBlbmRlbmNpZXNbaV07CiAgICAgICAgIHZhciByZXF1aXJlZE1vZHVs
ZVJlY29yZCA9IHBhaXIudmFsdWU7Ci0gICAgICAgIHRoaXMubW9kdWxlRXZhbHVhdGlvbihyZXF1
aXJlZE1vZHVsZVJlY29yZCk7CisgICAgICAgIHRoaXMubW9kdWxlRXZhbHVhdGlvbihyZXF1aXJl
ZE1vZHVsZVJlY29yZCwgaW5pdGlhdG9yKTsKICAgICB9Ci0gICAgdGhpcy5ldmFsdWF0ZShlbnRy
eS5rZXksIG1vZHVsZVJlY29yZCk7CisgICAgdGhpcy5ldmFsdWF0ZShlbnRyeS5rZXksIG1vZHVs
ZVJlY29yZCwgaW5pdGlhdG9yKTsKIH0KIAogLy8gQVBJcyB0byBjb250cm9sIHRoZSBtb2R1bGUg
bG9hZGVyLgpAQCAtNTE0LDkgKzUwNyw4IEBAIGZ1bmN0aW9uIHByb3ZpZGUoa2V5LCBzdGFnZSwg
dmFsdWUpCiAgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVxdWVzdGVkIG1vZHVs
ZSBpcyBhbHJlYWR5IGluc3RhbnRpYXRlZC4iKTsKICAgICAgICAgdGhpcy5mdWxmaWxsRmV0Y2go
ZW50cnksIEB1bmRlZmluZWQpOwogICAgICAgICB0aGlzLmZ1bGZpbGxUcmFuc2xhdGUoZW50cnks
IHZhbHVlKTsKLSAgICAgICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgICAgIGVudHJ5LnRyYW5z
bGF0ZS50aGVuKGZ1bmN0aW9uIChzb3VyY2UpIHsKLSAgICAgICAgICAgIGxvYWRlci5mdWxmaWxs
SW5zdGFudGlhdGUoZW50cnksIHZhbHVlLCBzb3VyY2UpOworICAgICAgICBlbnRyeS50cmFuc2xh
dGUudGhlbigoc291cmNlKSA9PiB7CisgICAgICAgICAgICB0aGlzLmZ1bGZpbGxJbnN0YW50aWF0
ZShlbnRyeSwgdmFsdWUsIHNvdXJjZSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtNTI0LDM5ICs1MTYsMzcgQEAgZnVuY3Rpb24gcHJvdmlkZShrZXksIHN0YWdlLCB2
YWx1ZSkKICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVxdWVzdGVkIG1vZHVsZSBpcyBhbHJl
YWR5IHJlYWR5IHRvIGJlIGV4ZWN1dGVkLiIpOwogfQogCi1mdW5jdGlvbiBsb2FkQW5kRXZhbHVh
dGVNb2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIpCitmdW5jdGlvbiBsb2FkQW5kRXZhbHVhdGVN
b2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcikKIHsKICAgICAidXNlIHN0cmlj
dCI7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKICAgICAvLyBMb2FkZXIucmVzb2x2ZSBob29r
IHBvaW50LgogICAgIC8vIHJlc29sdmU6IG1vZHVsZU5hbWUgPT4gUHJvbWlzZShtb2R1bGVLZXkp
CiAgICAgLy8gVGFrZSB0aGUgbmFtZSBhbmQgcmVzb2x2ZSBpdCB0byB0aGUgdW5pcXVlIGlkZW50
aWZpZXIgZm9yIHRoZSByZXNvdXJjZSBsb2NhdGlvbi4KICAgICAvLyBGb3IgZXhhbXBsZSwgdGFr
ZSB0aGUgImpxdWVyeSIgYW5kIHJldHVybiB0aGUgVVJMIGZvciB0aGUgcmVzb3VyY2UuCi0gICAg
cmV0dXJuIHRoaXMucmVzb2x2ZShtb2R1bGVOYW1lLCByZWZlcnJlcikudGhlbihmdW5jdGlvbiAo
a2V5KSB7Ci0gICAgICAgIHJldHVybiBsb2FkZXIucmVxdWVzdFJlYWR5KGtleSk7CisgICAgcmV0
dXJuIHRoaXMucmVzb2x2ZShtb2R1bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKS50aGVuKChr
ZXkpID0+IHsKKyAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlYWR5KGtleSwgaW5pdGlhdG9y
KTsKICAgICB9KTsKIH0KIAotZnVuY3Rpb24gbG9hZE1vZHVsZShtb2R1bGVOYW1lLCByZWZlcnJl
cikKK2Z1bmN0aW9uIGxvYWRNb2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcikK
IHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKICAgICAvLyBM
b2FkZXIucmVzb2x2ZSBob29rIHBvaW50LgogICAgIC8vIHJlc29sdmU6IG1vZHVsZU5hbWUgPT4g
UHJvbWlzZShtb2R1bGVLZXkpCiAgICAgLy8gVGFrZSB0aGUgbmFtZSBhbmQgcmVzb2x2ZSBpdCB0
byB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSBsb2NhdGlvbi4KICAgICAv
LyBGb3IgZXhhbXBsZSwgdGFrZSB0aGUgImpxdWVyeSIgYW5kIHJldHVybiB0aGUgVVJMIGZvciB0
aGUgcmVzb3VyY2UuCi0gICAgcmV0dXJuIHRoaXMucmVzb2x2ZShtb2R1bGVOYW1lLCByZWZlcnJl
cikudGhlbihmdW5jdGlvbiAoa2V5KSB7Ci0gICAgICAgIHJldHVybiBsb2FkZXIucmVxdWVzdElu
c3RhbnRpYXRlQWxsKGtleSk7Ci0gICAgfSkudGhlbihmdW5jdGlvbiAoZW50cnkpIHsKKyAgICBy
ZXR1cm4gdGhpcy5yZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpLnRoZW4o
KGtleSkgPT4geworICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5
LCBpbml0aWF0b3IpOworICAgIH0pLnRoZW4oKGVudHJ5KSA9PiB7CiAgICAgICAgIHJldHVybiBl
bnRyeS5rZXk7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShr
ZXkpCitmdW5jdGlvbiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoa2V5LCBpbml0aWF0b3IpCiB7CiAg
ICAgInVzZSBzdHJpY3QiOwogCi0gICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlYWR5KGtleSk7Cisg
ICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlYWR5KGtleSwgaW5pdGlhdG9yKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKaW5kZXggYjhlYjE1OGNiMDlmNmViYjdlZjI5YjA4NWRjOGU1MjI5MWI1MjUzYS4u
MjNjOTEwYWY4NWFmNWQ1MmViZGY2MmY2OWNlZWU1MzZjMjliMWFhZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKQEAgLTg4Myw4ICs4ODMsOCBAQCBjbGFzcyBHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNH
bG9iYWxPYmplY3QgewogICAgICAgICBwdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgYXJndW1lbnRzLCBpZGVudGlmaWVyLnN0cmluZygpLCBmdW5j
dGlvbiwgTm9JbnRyaW5zaWMsIGZ1bmN0aW9uKSk7CiAgICAgfQogCi0gICAgc3RhdGljIEpTSW50
ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0
YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKLSAgICBzdGF0aWMgSlNJ
bnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0
YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlKTsKKyAgICBzdGF0aWMgSlNJbnRlcm5hbFBy
b21pc2UqIG1vZHVsZUxvYWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBK
U01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUpOworICAgIHN0YXRpYyBK
U0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqLCBFeGVj
U3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOwogfTsKIAogY29uc3Qg
Q2xhc3NJbmZvIEdsb2JhbE9iamVjdDo6c19pbmZvID0geyAiZ2xvYmFsIiwgJkpTR2xvYmFsT2Jq
ZWN0OjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoR2xvYmFsT2JqZWN0KSB9
OwpAQCAtMTAxNSw3ICsxMDE1LDcgQEAgc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChjb25zdCBE
aXJlY3RvcnlOYW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJgogICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmpl
Y3Q6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhl
Y1N0YXRlKiBleGVjLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUga2V5VmFsdWUsIEpTVmFsdWUg
cmVmZXJyZXJWYWx1ZSkKK0pTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxv
YWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhlY1N0YXRlKiBleGVj
LCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUga2V5VmFsdWUsIEpTVmFsdWUgcmVmZXJyZXJWYWx1
ZSwgSlNWYWx1ZSkKIHsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9
IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwog
ICAgIGNvbnN0IElkZW50aWZpZXIga2V5ID0ga2V5VmFsdWUudG9Qcm9wZXJ0eUtleShleGVjKTsK
QEAgLTExMjAsNyArMTEyMCw3IEBAIHN0YXRpYyBib29sIGZldGNoTW9kdWxlRnJvbUxvY2FsRmls
ZVN5c3RlbShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBWZWN0b3I8Y2hhcj4mCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9h
ZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBK
U01vZHVsZUxvYWRlciosIEpTVmFsdWUga2V5KQorSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhl
Y1N0YXRlKiBleGVjLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUga2V5LCBKU1ZhbHVlKQogewog
ICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgU3RyaW5nIG1vZHVs
ZUtleSA9IGtleS50b1dURlN0cmluZyhleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tcGxldGlvbi5jcHAKaW5kZXggNjMyZjdmYjYwYTdhZGJhNzgwMDk2M2I3YzBlMzIx
MzhlZDQ0MTRkNC4uYzEwYjQxYzQ5OWRmNDk4Y2Y1NTIxNmU5NzBjZDNhOTFlMmNlZDg3MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKQEAgLTE1NSwy
NiArMTU1LDI2IEBAIHN0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogcmVqZWN0UHJvbWlzZShFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIGRlZmVycmVk
LT5wcm9taXNlKCk7CiB9CiAKLXN0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1
YXRlTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYsIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVy
KQorc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoY29uc3Qg
SlNMb2NrSG9sZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlh
dG9yKQogewotICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm1vZHVsZUxvYWRlcigpLT5sb2FkQW5k
RXZhbHVhdGVNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJyZXIpOworICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPm1vZHVsZUxvYWRlcigpLT5sb2FkQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywg
bW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcik7CiB9CiAKLXN0YXRpYyBKU0ludGVybmFs
UHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYgbG9jaywg
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVu
dGlmaWVyJiBtb2R1bGVOYW1lKQorc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZh
bHVhdGVNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVyJiBsb2NrLCBFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZU5hbWUs
IEpTVmFsdWUgaW5pdGlhdG9yKQogewotICAgIHJldHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUo
bG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMtPnZtKCks
IG1vZHVsZU5hbWUpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRl
TW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwgaWRlbnRpZmllclRvSlNWYWx1ZShleGVj
LT52bSgpLCBtb2R1bGVOYW1lKSwganNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJ
bnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK0pTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVh
dGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTVmFs
dWUgaW5pdGlhdG9yKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVB
U0VfQVNTRVJUKGV4ZWMtPnZtKCkuYXRvbWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRh
KCkuYXRvbWljU3RyaW5nVGFibGUoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWV4ZWMtPnZtKCku
aXNDb2xsZWN0b3JCdXN5KCkpOwogCi0gICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShs
b2NrLCBleGVjLCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoZXhlYywgbW9kdWxlTmFtZSkpOworICAgIHJldHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1
bGUobG9jaywgZXhlYywgZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsIG1vZHVsZU5hbWUpLCBpbml0aWF0b3IpOwogfQogCi1KU0ludGVybmFs
UHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291
cmNlQ29kZSYgc291cmNlKQorSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVs
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNWYWx1ZSBpbml0
aWF0b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NF
UlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9t
aWNTdHJpbmdUYWJsZSgpKTsKQEAgLTE4OSwyOSArMTg5LDI5IEBAIEpTSW50ZXJuYWxQcm9taXNl
KiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVq
ZWN0UHJvbWlzZShleGVjLCBnbG9iYWxPYmplY3QpOwogCi0gICAgcmV0dXJuIGxvYWRBbmRFdmFs
dWF0ZU1vZHVsZShsb2NrLCBleGVjLCBnbG9iYWxPYmplY3QsIGtleSwganNVbmRlZmluZWQoKSk7
CisgICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShsb2NrLCBleGVjLCBnbG9iYWxPYmpl
Y3QsIGtleSwganNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotc3RhdGljIEpTSW50ZXJu
YWxQcm9taXNlKiBsb2FkTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYsIEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1Zh
bHVlIHJlZmVycmVyKQorc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKGNvbnN0
IEpTTG9ja0hvbGRlciYsIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRp
YXRvcikKIHsKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2FkZXIoKS0+bG9hZE1v
ZHVsZShleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgcmV0dXJuIGdsb2JhbE9iamVj
dC0+bW9kdWxlTG9hZGVyKCktPmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJyZXIs
IGluaXRpYXRvcik7CiB9CiAKLXN0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShj
b25zdCBKU0xvY2tIb2xkZXImIGxvY2ssIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlTmFtZSkKK3N0YXRpYyBKU0lu
dGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShjb25zdCBKU0xvY2tIb2xkZXImIGxvY2ssIEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmll
ciYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7Ci0gICAgcmV0dXJuIGxvYWRNb2R1
bGUobG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMtPnZt
KCksIG1vZHVsZU5hbWUpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gbG9hZE1vZHVsZShs
b2NrLCBleGVjLCBnbG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwg
bW9kdWxlTmFtZSksIGpzVW5kZWZpbmVkKCksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50ZXJuYWxQ
cm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtb2R1bGVO
YW1lKQorSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpTTG9ja0hv
bGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVBU0VfQVNTRVJUKGV4ZWMtPnZtKCkuYXRvbWljU3Ry
aW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5nVGFibGUoKSk7CiAgICAg
UkVMRUFTRV9BU1NFUlQoIWV4ZWMtPnZtKCkuaXNDb2xsZWN0b3JCdXN5KCkpOwogCi0gICAgcmV0
dXJuIGxvYWRNb2R1bGUobG9jaywgZXhlYywgZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIG1vZHVsZU5hbWUpKTsKKyAgICByZXR1cm4gbG9h
ZE1vZHVsZShsb2NrLCBleGVjLCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoZXhlYywgbW9kdWxlTmFtZSksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50
ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlKQorSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpT
TG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVBU0VfQVNTRVJUKGV4ZWMtPnZtKCkuYXRv
bWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5nVGFibGUoKSk7
CkBAIC0yMjYsMTcgKzIyNiwxNyBAQCBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZWplY3RQcm9taXNlKGV4ZWMsIGdsb2JhbE9i
amVjdCk7CiAKLSAgICByZXR1cm4gbG9hZE1vZHVsZShsb2NrLCBleGVjLCBnbG9iYWxPYmplY3Qs
IGtleSwganNVbmRlZmluZWQoKSk7CisgICAgcmV0dXJuIGxvYWRNb2R1bGUobG9jaywgZXhlYywg
Z2xvYmFsT2JqZWN0LCBrZXksIGpzVW5kZWZpbmVkKCksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50
ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBtb2R1bGVLZXkpCitKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1
YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlS2V5LCBK
U1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBS
RUxFQVNFX0FTU0VSVChleGVjLT52bSgpLmF0b21pY1N0cmluZ1RhYmxlKCkgPT0gd3RmVGhyZWFk
RGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFleGVjLT52
bSgpLmlzQ29sbGVjdG9yQnVzeSgpKTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIGdsb2JhbE9iamVj
dC0+bW9kdWxlTG9hZGVyKCktPmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBpZGVudGlmaWVy
VG9KU1ZhbHVlKGV4ZWMtPnZtKCksIG1vZHVsZUtleSkpOworICAgIHJldHVybiBnbG9iYWxPYmpl
Y3QtPm1vZHVsZUxvYWRlcigpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgaWRlbnRpZmll
clRvSlNWYWx1ZShleGVjLT52bSgpLCBtb2R1bGVLZXkpLCBpbml0aWF0b3IpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24u
aAppbmRleCBmMTMxY2M1YWU1NzFjYjZiZTBiNmQzY2IwMTVlODk5MWEyMjQwYjU3Li5iMzQxMDgw
ODZmNzAxNjQwMDRjNDcxYTllYTNhZWUxNWEzOGQ1M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCkBAIC01OCwxNSArNTgsMTUgQEAgaW5saW5lIEpTVmFs
dWUgcHJvZmlsZWRFdmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFByb2ZpbGluZ1JlYXNvbiByZWFz
b24sIGNvbnN0IFMKIEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgZXZhbHVhdGVXaXRoU2NvcGVF
eHRlbnNpb24oRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTT2JqZWN0KiBzY29wZUV4
dGVuc2lvbiwgTmFrZWRQdHI8RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24pOwogCiAvLyBM
b2FkIHRoZSBtb2R1bGUgc291cmNlIGFuZCBldmFsdWF0ZSBpdC4KLUpTX0VYUE9SVF9QUklWQVRF
IEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKLUpTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9t
aXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYp
OworSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1v
ZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTVmFsdWUgaW5pdGlh
dG9yID0ganNVbmRlZmluZWQoKSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlz
ZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBK
U1ZhbHVlIGluaXRpYXRvciA9IGpzVW5kZWZpbmVkKCkpOwogCiAvLyBGZXRjaCB0aGUgbW9kdWxl
IHNvdXJjZSwgYW5kIGluc3RhbnRpYXRlIHRoZSBtb2R1bGUgcmVjb3JkLgotSlNfRVhQT1JUX1BS
SVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiBtb2R1bGVOYW1lKTsKLUpTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKK0pTX0VYUE9SVF9QUklW
QVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IgPSBqc1VuZGVmaW5lZCgpKTsKK0pTX0VY
UE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSosIGNv
bnN0IFNvdXJjZUNvZGUmLCBKU1ZhbHVlIGluaXRpYXRvciA9IGpzVW5kZWZpbmVkKCkpOwogCiAv
LyBMaW5rIGFuZCBldmFsdWF0ZSB0aGUgYWxyZWFkeSBsaW5rZWQgbW9kdWxlLgotSlNfRVhQT1JU
X1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNJ
bnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBtb2R1bGVLZXksIEpTVmFsdWUgaW5pdGlhdG9yID0ganNVbmRlZmluZWQoKSk7
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBmNTY3MTE2MGYyY2Y4YzBjMzZjZDU3ODM2YmUyYzQ0
YjBlZjM5ZDllLi43ODM3YWM2YWRmYThmYWRiYzliY2QwNDFhNDA3ZjhkYThhZGQwMDgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE2
NiwxOSArMTY2LDE5IEBAIHN0cnVjdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSB7CiAgICAgdHlw
ZWRlZiBib29sICgqU2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dFB0cikoY29uc3Qg
SlNHbG9iYWxPYmplY3QqKTsKICAgICBTaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0
UHRyIHNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQ7CiAKLSAgICB0eXBlZGVmIEpT
SW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlclJlc29sdmVQdHIpKEpTR2xvYmFsT2JqZWN0
KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKKyAgICB0
eXBlZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlclJlc29sdmVQdHIpKEpTR2xv
YmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVl
LCBKU1ZhbHVlKTsKICAgICBNb2R1bGVMb2FkZXJSZXNvbHZlUHRyIG1vZHVsZUxvYWRlclJlc29s
dmU7CiAKLSAgICB0eXBlZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlckZldGNo
UHRyKShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1
ZSk7CisgICAgdHlwZWRlZiBKU0ludGVybmFsUHJvbWlzZSogKCpNb2R1bGVMb2FkZXJGZXRjaFB0
cikoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUs
IEpTVmFsdWUpOwogICAgIE1vZHVsZUxvYWRlckZldGNoUHRyIG1vZHVsZUxvYWRlckZldGNoOwog
Ci0gICAgdHlwZWRlZiBKU0ludGVybmFsUHJvbWlzZSogKCpNb2R1bGVMb2FkZXJUcmFuc2xhdGVQ
dHIpKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVl
LCBKU1ZhbHVlKTsKKyAgICB0eXBlZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRl
clRyYW5zbGF0ZVB0cikoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRl
ciosIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUpOwogICAgIE1vZHVsZUxvYWRlclRyYW5zbGF0
ZVB0ciBtb2R1bGVMb2FkZXJUcmFuc2xhdGU7CiAKLSAgICB0eXBlZGVmIEpTSW50ZXJuYWxQcm9t
aXNlKiAoKk1vZHVsZUxvYWRlckluc3RhbnRpYXRlUHRyKShKU0dsb2JhbE9iamVjdCosIEV4ZWNT
dGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CisgICAgdHlwZWRlZiBK
U0ludGVybmFsUHJvbWlzZSogKCpNb2R1bGVMb2FkZXJJbnN0YW50aWF0ZVB0cikoSlNHbG9iYWxP
YmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUsIEpT
VmFsdWUpOwogICAgIE1vZHVsZUxvYWRlckluc3RhbnRpYXRlUHRyIG1vZHVsZUxvYWRlckluc3Rh
bnRpYXRlOwogCi0gICAgdHlwZWRlZiBKU1ZhbHVlICgqTW9kdWxlTG9hZGVyRXZhbHVhdGVQdHIp
KEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBK
U1ZhbHVlKTsKKyAgICB0eXBlZGVmIEpTVmFsdWUgKCpNb2R1bGVMb2FkZXJFdmFsdWF0ZVB0ciko
SlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpT
VmFsdWUsIEpTVmFsdWUpOwogICAgIE1vZHVsZUxvYWRlckV2YWx1YXRlUHRyIG1vZHVsZUxvYWRl
ckV2YWx1YXRlOwogCiAgICAgdHlwZWRlZiBTdHJpbmcgKCpEZWZhdWx0TGFuZ3VhZ2VGdW5jdGlv
blB0cikoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9k
dWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9h
ZGVyLmNwcAppbmRleCBkM2I1YTZhNDZmNWJkNDE3MzYwYjMyZDE1NjVlOWQ2NTFmNDQyMTExLi40
ZWFlYmQ3NWQ1YWJjYzU4ZWQzNzgzM2RhMjE3MDA4ZGVmYTk4MDVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCkBAIC04Niw3ICs4Niw3
IEBAIEpTVmFsdWUgSlNNb2R1bGVMb2FkZXI6OnByb3ZpZGUoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIGtleSwgU3RhdHVzIHN0YXR1cywgY29uCiAgICAgcmV0dXJuIGNhbGwoZXhlYywgZnVuY3Rp
b24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1lbnRzKTsKIH0KIAotSlNJbnRlcm5h
bFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitKU0ludGVybmFs
UHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0
aWF0b3IpCiB7CiAgICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0
KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5sb2FkQW5kRXZhbHVh
dGVNb2R1bGVQdWJsaWNOYW1lKCkpKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKQEAgLTk2LDEx
ICs5NiwxMiBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxvYWRBbmRFdmFs
dWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdQogICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKG1vZHVsZU5hbWUpOwogICAgIGFy
Z3VtZW50cy5hcHBlbmQocmVmZXJyZXIpOworICAgIGFyZ3VtZW50cy5hcHBlbmQoaW5pdGlhdG9y
KTsKIAogICAgIHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21pc2UqPihjYWxsKGV4ZWMsIGZ1
bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3VtZW50cykpOwogfQogCi1KU0lu
dGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitKU0ludGVybmFsUHJvbWlz
ZSogSlNNb2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG1v
ZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpT
T2JqZWN0KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChleGVjLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubG9hZE1vZHVsZVB1YmxpY05hbWUoKSkpOwogICAg
IENhbGxEYXRhIGNhbGxEYXRhOwpAQCAtMTEwLDExICsxMTEsMTIgQEAgSlNJbnRlcm5hbFByb21p
c2UqIEpTTW9kdWxlTG9hZGVyOjpsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBt
b2R1bGVOYW0KICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CiAgICAgYXJndW1l
bnRzLmFwcGVuZChtb2R1bGVOYW1lKTsKICAgICBhcmd1bWVudHMuYXBwZW5kKHJlZmVycmVyKTsK
KyAgICBhcmd1bWVudHMuYXBwZW5kKGluaXRpYXRvcik7CiAKICAgICByZXR1cm4ganNDYXN0PEpT
SW50ZXJuYWxQcm9taXNlKj4oY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRh
LCB0aGlzLCBhcmd1bWVudHMpKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9h
ZGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG1vZHVs
ZUtleSkKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bGlua0FuZEV2YWx1YXRl
TW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBtb2R1bGVLZXksIEpTVmFsdWUgaW5pdGlh
dG9yKQogewogICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChl
eGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubGlua0FuZEV2YWx1YXRl
TW9kdWxlUHVibGljTmFtZSgpKSk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CkBAIC0xMjMsMzEg
KzEyNSwzMiBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxpbmtBbmRFdmFs
dWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdQogCiAgICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJndW1lbnRzOwogICAgIGFyZ3VtZW50cy5hcHBlbmQobW9kdWxlS2V5KTsKKyAgICBh
cmd1bWVudHMuYXBwZW5kKGluaXRpYXRvcik7CiAKICAgICByZXR1cm4ganNDYXN0PEpTSW50ZXJu
YWxQcm9taXNlKj4oY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlz
LCBhcmd1bWVudHMpKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpy
ZXNvbHZlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJlZmVycmVyKQor
SlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpyZXNvbHZlKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsK
ICAgICBpZiAoT3B0aW9uczo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQogICAgICAgICBkYXRh
TG9nKCJMb2FkZXIgW3Jlc29sdmVdICIsIHByaW50YWJsZU1vZHVsZUtleShleGVjLCBuYW1lKSwg
IlxuIik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKCktPm1vZHVsZUxvYWRlclJlc29sdmUpCi0gICAgICAgIHJldHVybiBnbG9iYWxPYmpl
Y3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlclJlc29sdmUoZ2xvYmFs
T2JqZWN0LCBleGVjLCB0aGlzLCBuYW1lLCByZWZlcnJlcik7CisgICAgICAgIHJldHVybiBnbG9i
YWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlclJlc29sdmUo
Z2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBuYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKTsKICAg
ICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogICAgIGRlZmVycmVkLT5yZXNv
bHZlKGV4ZWMsIG5hbWUpOwogICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQogCi1K
U0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmZldGNoKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBrZXkpCitKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmZldGNoKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIGlm
IChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCiAgICAgICAgIGRhdGFMb2coIkxv
YWRlciBbZmV0Y2hdICIsIHByaW50YWJsZU1vZHVsZUtleShleGVjLCBrZXkpLCAiXG4iKTsKIAog
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+
bW9kdWxlTG9hZGVyRmV0Y2gpCi0gICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlckZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywg
dGhpcywga2V5KTsKKyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBr
ZXksIGluaXRpYXRvcik7CiAgICAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQg
PSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsK
ICAgICBTdHJpbmcgbW9kdWxlS2V5ID0ga2V5LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsK
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKQEAgLTE2MCw0MCArMTYzLDQwIEBAIEpT
SW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIGtleSkKICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKIH0KIAotSlNJbnRl
cm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjp0cmFuc2xhdGUoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIGtleSwgSlNWYWx1ZSBwYXlsb2FkKQorSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxl
TG9hZGVyOjp0cmFuc2xhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBw
YXlsb2FkLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBpZiAoT3B0aW9uczo6ZHVtcE1vZHVs
ZUxvYWRpbmdTdGF0ZSgpKQogICAgICAgICBkYXRhTG9nKCJMb2FkZXIgW3RyYW5zbGF0ZV0gIiwg
cHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIGtleSksICJcbiIpOwogCiAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBpZiAo
Z2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJUcmFu
c2xhdGUpCi0gICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlKCktPm1vZHVsZUxvYWRlclRyYW5zbGF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtl
eSwgcGF5bG9hZCk7CisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlclRyYW5zbGF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIHRo
aXMsIGtleSwgcGF5bG9hZCwgaW5pdGlhdG9yKTsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBn
bG9iYWxPYmplY3QpOwogICAgIGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIHBheWxvYWQpOwogICAg
IHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNN
b2R1bGVMb2FkZXI6Omluc3RhbnRpYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXksIEpT
VmFsdWUgc291cmNlKQorSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjppbnN0YW50
aWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNvdXJjZSwgSlNWYWx1
ZSBpbml0aWF0b3IpCiB7CiAgICAgaWYgKE9wdGlvbnM6OmR1bXBNb2R1bGVMb2FkaW5nU3RhdGUo
KSkKICAgICAgICAgZGF0YUxvZygiTG9hZGVyIFtpbnN0YW50aWF0ZV0gIiwgcHJpbnRhYmxlTW9k
dWxlS2V5KGV4ZWMsIGtleSksICJcbiIpOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJJbnN0YW50aWF0ZSkKLSAg
ICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9k
dWxlTG9hZGVySW5zdGFudGlhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIHNvdXJj
ZSk7CisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
KCktPm1vZHVsZUxvYWRlckluc3RhbnRpYXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5
LCBzb3VyY2UsIGluaXRpYXRvcik7CiAgICAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVm
ZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2Jq
ZWN0KTsKICAgICBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBqc1VuZGVmaW5lZCgpKTsKICAgICBy
ZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKIH0KIAotSlNWYWx1ZSBKU01vZHVsZUxvYWRlcjo6
ZXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBtb2R1bGVSZWNv
cmRWYWx1ZSkKK0pTVmFsdWUgSlNNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUsIEpTVmFsdWUgaW5pdGlh
dG9yKQogewogICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCiAgICAg
ICAgIGRhdGFMb2coIkxvYWRlciBbZXZhbHVhdGVdICIsIHByaW50YWJsZU1vZHVsZUtleShleGVj
LCBrZXkpLCAiXG4iKTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZhbHVhdGUpCi0gICAgICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlckV2YWx1
YXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBtb2R1bGVSZWNvcmRWYWx1ZSk7Cisg
ICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1v
ZHVsZUxvYWRlckV2YWx1YXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBtb2R1bGVS
ZWNvcmRWYWx1ZSwgaW5pdGlhdG9yKTsKIAogICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNv
cmQgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlUmVjb3JkKj4obW9kdWxlUmVjb3JkVmFsdWUpOwog
ICAgIGlmICghbW9kdWxlUmVjb3JkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTW9kdWxlTG9hZGVyLmgKaW5kZXggNGNkNTkwNDA2NWVmNWZmNTZkYTliODUwZWZiYjliZjA3
NGU0MDQwMy4uYjg3YjdhZWI1YTkzZDE5ODA5NGM3MTdlN2M1OGMyMGZhMmNlNjZjYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5oCkBAIC02Mywx
OCArNjMsMTggQEAgY2xhc3MgSlNNb2R1bGVMb2FkZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CiAKICAgICAvLyBBUElzIHRvIGNvbnRyb2wgdGhlIG1vZHVsZSBsb2FkZXIuCiAgICAgSlNW
YWx1ZSBwcm92aWRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBTdGF0dXMsIGNvbnN0IFN0cmlu
ZyYpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0
YXRlKiwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyKTsKLSAgICBKU0ludGVy
bmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpT
VmFsdWUgcmVmZXJyZXIpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVN
b2R1bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVLZXkpOworICAgIEpTSW50ZXJuYWxQcm9t
aXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVOYW1l
LCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFBy
b21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVl
IHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGxp
bmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZUtleSwgSlNWYWx1
ZSBpbml0aWF0b3IpOwogCiAgICAgLy8gUGxhdGZvcm0gZGVwZW5kZW50IGhvb2tlZCBBUElzLgot
ICAgIEpTSW50ZXJuYWxQcm9taXNlKiByZXNvbHZlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmFtZSwg
SlNWYWx1ZSByZWZlcnJlcik7Ci0gICAgSlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEV4ZWNTdGF0
ZSosIEpTVmFsdWUga2V5KTsKLSAgICBKU0ludGVybmFsUHJvbWlzZSogdHJhbnNsYXRlKEV4ZWNT
dGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHBheWxvYWQpOwotICAgIEpTSW50ZXJuYWxQcm9t
aXNlKiBpbnN0YW50aWF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBzb3VyY2Up
OworICAgIEpTSW50ZXJuYWxQcm9taXNlKiByZXNvbHZlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmFt
ZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpOworICAgIEpTSW50ZXJuYWxQ
cm9taXNlKiBmZXRjaChFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBpbml0aWF0b3Ip
OworICAgIEpTSW50ZXJuYWxQcm9taXNlKiB0cmFuc2xhdGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBr
ZXksIEpTVmFsdWUgcGF5bG9hZCwgSlNWYWx1ZSBpbml0aWF0b3IpOworICAgIEpTSW50ZXJuYWxQ
cm9taXNlKiBpbnN0YW50aWF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBzb3Vy
Y2UsIEpTVmFsdWUgaW5pdGlhdG9yKTsKIAogICAgIC8vIEFkZGl0aW9uYWwgcGxhdGZvcm0gZGVw
ZW5kZW50IGhvb2tlZCBBUElzLgotICAgIEpTVmFsdWUgZXZhbHVhdGUoRXhlY1N0YXRlKiwgSlNW
YWx1ZSBrZXksIEpTVmFsdWUgbW9kdWxlUmVjb3JkKTsKKyAgICBKU1ZhbHVlIGV2YWx1YXRlKEV4
ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNWYWx1ZSBpbml0
aWF0b3IpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xv
YmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
b2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcAppbmRleCA5MDBkNjNlMmZiNjcwMjA3ZWNmYWVhZjli
YzVmNzFlNDJmZTYzMTBhLi5lNjEyMDViMjRmMzA3MWZlOGU0OWVmYzUwY2Q2ZWMyNmJkODEwN2Fi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxv
YWRlclByb3RvdHlwZS5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZVJlc29sdmUoRXhlY1N0YXRlKiBleGVjKQog
ICAgIEpTTW9kdWxlTG9hZGVyKiBsb2FkZXIgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlTG9hZGVy
Kj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUobG9hZGVyLT5yZXNvbHZlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVu
dCgxKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9hZGVyLT5yZXNvbHZlKGV4ZWMs
IGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSwgZXhlYy0+YXJndW1lbnQoMikp
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5
cGVGZXRjaChFeGVjU3RhdGUqIGV4ZWMpCkBAIC0xOTQsNyArMTk0LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5cGVGZXRjaChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgSlNNb2R1bGVMb2FkZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVM
b2FkZXIqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShsb2FkZXItPmZldGNoKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmZldGNoKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDAp
LCBleGVjLT5hcmd1bWVudCgxKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG1vZHVsZUxvYWRlclByb3RvdHlwZVRyYW5zbGF0ZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yMDYs
NyArMjA2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90
b3R5cGVUcmFuc2xhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTTW9kdWxlTG9hZGVyKiBsb2Fk
ZXIgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlTG9hZGVyKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwog
ICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9hZGVyLT50cmFuc2xhdGUoZXhl
YywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShsb2FkZXItPnRyYW5zbGF0ZShleGVjLCBleGVjLT5hcmd1bWVudCgwKSwg
ZXhlYy0+YXJndW1lbnQoMSksIGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlSW5zdGFudGlhdGUoRXhlY1N0
YXRlKiBleGVjKQpAQCAtMjIwLDcgKzIyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlSW5zdGFudGlhdGUoRXhlY1N0YXRlKiBleGVjKQogICAg
IEpTTW9kdWxlTG9hZGVyKiBsb2FkZXIgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlTG9hZGVyKj4o
ZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
bG9hZGVyLT5pbnN0YW50aWF0ZShleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgZXhlYy0+YXJndW1l
bnQoMSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+aW5zdGFudGlhdGUo
ZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpLCBleGVjLT5hcmd1bWVu
dCgyKSkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tIEFkZGl0aW9uYWwgSG9vayBGdW5j
dGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzMsNyArMjMzLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5cGVFdmFsdWF0ZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVMb2FkZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nh
c3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFsb2FkZXIp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmV2YWx1YXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50
KDApLCBleGVjLT5hcmd1bWVudCgxKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9h
ZGVyLT5ldmFsdWF0ZShleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSks
IGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCA5MzNhMmU1MTg0YWI5OWZmMjZmY2MxMmY2
MjMwYjhkMDNlZTE5ZDgwLi5kZDZiMzA1ZWYxMjE5ZDNhMTAzNDIzNzdhODA5OGZmMGI5NzZhZTUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaApAQCAtNjQsNyArNjQsNyBA
QCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIFN5bWJvbChWTSYp
OwogICAgIFN5bWJvbChWTSYsIGNvbnN0IFN0cmluZyYpOwotICAgIFN5bWJvbChWTSYsIFN5bWJv
bEltcGwmIHVpZCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3ltYm9sKFZNJiwgU3ltYm9sSW1w
bCYgdWlkKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBjNTYxYWI3MTY0MTEyNTE4YWNhYWEyNTQxNTc4NjM5ZTY2ZmYxNTNmLi4zZTdk
ZTQ2MzdjZjhhNzBmMTlmOTY0MjUzODQyNTMzZmYzZjVhMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMTIxMCw2ICsxMjEwLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdz
L2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAK
KyAgICBiaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuY3BwCisgICAgYmluZGluZ3MvanMvSlNN
b2R1bGVHcmFwaC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDExYjk4MzBjYmM5MTQ3OWY5ZWEzMDAwZmFhNmY2
MTc1NDgxODM4ZGEuLjMyNDFjZjY4ZTg3ZGRhZjU0M2I0ZDA4N2Q4YTFiMDBmNWRjNjQxZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI1MzE3LDYgKzI1MzE3LDcgQEAKIAkJCQk5MzdGRjNENTFBMTAxMkQ2MDA4RUJBMzEgLyog
RGljdGlvbmFyeUxvb2t1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ1NjQ2QjAxQjhGODQ5MzAw
M0M0OTk0IC8qIERpY3Rpb25hcnlQb3B1cEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQUYx
OTk5MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RDb252b2x2ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUzMzlBNTI0MUJBNkJENDYwMEEzQTdBRSAvKiBKU01vZHVsZUdyYXBoLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNv
Y29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlz
cGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUwMDA3QTJDQSAv
KiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywKQEAgLTI2ODUyLDYgKzI2ODUzLDcg
QEAKIAkJCQlDRTEyNTI0MTFBMTZCMUI2MDA4NjQ0ODAgLyogTWVkaWFQbGF5ZXJTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIEpT
TW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBG
RTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkUw
QTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJCUQz
QTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNzk0Niw2ICsyNzk0OCw3IEBACiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYwQkZD
NjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUZldGNo
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUNFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdU
ZXh0UGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUQxMEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODU0QjAyNTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5LmggaW4gSGVhZGVycyAqLywK
QEAgLTI4NzUzLDYgKzI4NzU2LDcgQEAKIAkJCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyog
QXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBCQzEyQjAy
NzJBMDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDMxNjAwNzEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIEpTTW9kdWxlR3Jh
cGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwODExMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENTU5NjkxMTQ3
NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwQkUxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlck1hYy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI5NjQ1LDYgKzI5NjQ5LDcgQEAKIAkJCQlBODcxREIyRTBBMTUwQkQ2
MDBCMTJBNjggLyogSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTg3MURCMjkwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTg3MURCMjgwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIEpT
TW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREIyRDBBMTUwQkQ2MDBC
MTJBNjggLyogSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3
MURCMzAwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTM0NDJDQTAwRDJCMzM2MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMTI5ZjQ0OWEyNDU4ZTA2MzkxYzEwNjNl
YTk4NTczNDkxZjM3YzU5Zi4uNDAxZTllN2QxNGMzYmY2NWY5NGI5ZWUwYmFjOTQ4YTAwZmRmOWZj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbElu
T25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwCkBAIC0xMDksNiArMTA5LDggQEAKICNpbmNsdWRlICJKU01lc3NhZ2VDaGFubmVsQ3Vz
dG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmNwcCIK
KyNpbmNsdWRlICJKU01vZHVsZUdyYXBoLmNwcCIKICNpbmNsdWRlICJKU01vZHVsZUxvYWRlci5j
cHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU011dGF0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKaW5kZXggNjkwNzRmNzIzNWNhYzJmYmUxNDY2MjNkZTFjZGFmMDY3
OTYyOTIzMS4uYzM0YzEwYzk2MzZhNTI5YjJhYWFmZTZkMjE0NzJkN2YwOWYxMTJlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0zMjMs
MjkgKzMyMywyOSBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6ZmlyZUZyYW1lQ2xlYXJlZFdhdGNo
cG9pbnRzRm9yV2luZG93KERPTVdpbmRvdyogd2luZG93KQogfQogCiAKLUpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9k
dWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpT
VmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxl
TG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9k
dWxlS2V5LCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpTRE9NV2luZG93QmFzZSog
dGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7
CiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+
cmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1w
b3J0ZXJNb2R1bGVLZXkpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigp
LT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBp
bXBvcnRlck1vZHVsZUtleSwgaW5pdGlhdG9yKTsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVj
LCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5k
b3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2Fk
ZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXkpCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RP
TVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVs
ZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcikK
IHsKICAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdp
bmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwogICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3Vt
ZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBk
b2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxl
TG9hZGVyLCBtb2R1bGVLZXkpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRl
cigpLT5mZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBp
bml0aWF0b3IpOwogICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQg
PSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmpl
Y3QpOwogICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOwog
fQogCi1KU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXks
IEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpCitKU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6
SlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0g
SlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoUmVm
UHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgp
KQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFsdWF0ZShnbG9i
YWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQpOwor
ICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFsdWF0ZShnbG9iYWxP
YmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIGluaXRp
YXRvcik7CiAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA4MGQ5NjA4ZmE2MDMwN2Ux
NjAwZmMyMWM5YWQ4NmYyZDdkOTMyYTRiLi5mNWYzYmUwNTIzZTU5NjlhZDJlMzcxNjBmYmU0MGJj
YzY3MmRjMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuaApAQCAtNzgsOSArNzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTQzo6
V2F0Y2hwb2ludFNldCBtX3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHM7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyUmVzb2x2
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgICAgICBzdGF0aWMgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSk7Ci0g
ICAgICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIG1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVl
LCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICAg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1Zh
bHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwogICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKiBtX3NoZWxsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaApp
bmRleCAwZWUzMTcyZTMyYTU3MWRjMjAxYzBhOTA0MzQzZTY5ODZjMTNhZGYwLi40YTc3NGU5MDEw
MmVkMDdkOWUzMGM2ZWNmMmI2Y2Q5MmNjYjg3NjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaApAQCAtOTMsNiArOTMsMjQgQEAg
Y2xhc3MgSlNNYWluVGhyZWFkRXhlY1N0YXRlIHsKICAgICAgICAgdGFzay5ydW4oZXhlYyk7CiAg
ICAgfQogCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVl
IGluaXRpYXRvcikKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50
U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxl
TmFtZSwgaW5pdGlhdG9yKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKQorICAgIHsKKyAgICAgICAg
SlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJu
IEpTQzo6bG9hZE1vZHVsZShleGVjLCBzb3VyY2VDb2RlLCBpbml0aWF0b3IpOworICAgIH0KKwor
ICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5LCBK
U0M6OkpTVmFsdWUgaW5pdGlhdG9yKQorICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0
YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bGlua0FuZEV2YWx1
YXRlTW9kdWxlKGV4ZWMsIG1vZHVsZUtleSwgaW5pdGlhdG9yKTsKKyAgICB9CisKICAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGluc3RydW1lbnRGdW5jdGlvbkNhbGwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEpTQzo6Q2FsbFR5cGUsIGNvbnN0IEpTQzo6Q2FsbERh
dGEmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGluc3RydW1l
bnRGdW5jdGlvbkNvbnN0cnVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpDb25zdHJ1
Y3RUeXBlLCBjb25zdCBKU0M6OkNvbnN0cnVjdERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVGZXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM1MjdhZTJjYTEz
NDY1MjZlYTBkMWM4MDRkMDVjNDgyZmJkOTJmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5jcHAKQEAgLTAsMCArMSwxNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRj
aGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0pTTW9kdWxlRmV0Y2hlcjo6SlNNb2R1bGVGZXRjaGVyKEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
OiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQorICAg
ICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QpCisgICAg
LCBtX2RlZmVycmVkKGdsb2JhbE9iamVjdC0+dm0oKSwgZGVmZXJyZWQpCit7Cit9CisKK0pTTW9k
dWxlRmV0Y2hlcjo6fkpTTW9kdWxlRmV0Y2hlcigpCit7CisgICAgaWYgKG1fY2FjaGVkU2NyaXB0
KSB7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAg
IG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKyAgICB9Cit9CisKK1JlZjxKU01vZHVsZUZldGNo
ZXI+IEpTTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQq
IGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSlNNb2R1bGVGZXRjaGVyKGdsb2JhbE9iamVjdCwgc291cmNlVVJMLCBkZWZlcnJlZCwgZG9j
dW1lbnQpKTsKK30KKworYm9vbCBKU01vZHVsZUZldGNoZXI6OnJ1bihTY3JpcHRFbGVtZW50KiBl
bGVtZW50KQoreworICAgIGlmIChlbGVtZW50KQorICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IGVs
ZW1lbnQtPnJlcXVlc3RNb2R1bGVTY3JpcHQobV9zb3VyY2VVUkwpOworICAgIGVsc2UgeworICAg
ICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVy
OjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CisgICAgICAgIG9wdGlvbnMuY29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRp
b246OkRvUG9saWN5Q2hlY2s7CisKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KG1fc291cmNlVVJMKSwgb3B0aW9ucyk7CisKKyAgICAgICAgLy8g
TW9kdWxlIGZldGNoZXIgYWx3YXlzIGludGVycHJldCBzY3JpcHRzIGFzIFVURi04LgorICAgICAg
ICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2xvYWRlci9pc3N1ZXMvODMKKyAgICAgICAg
cmVxdWVzdC5zZXRDaGFyc2V0KEFTQ0lJTGl0ZXJhbCgidXRmLTgiKSk7CisKKyAgICAgICAgLy8g
RklYTUU6IFNob3VsZCBoYW5kbGUgImNyb3Nzb3JpZ2luIiBvcHRpb25zLgorICAgICAgICAvLyBP
bmNlIHRoZSBzcGVjIGRlc2NyaWJlcyB0aGUgZGV0YWlscywgd2Ugd2lsbCBmb2xsb3cgaXQuCisg
ICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKEF0b21pY1N0cmluZyhtX3NvdXJjZVVSTC5zdHJp
bmcoKSkpOworCisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9kb2N1bWVudC5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CisgICAgfQorCisgICAgaWYgKCFt
X2NhY2hlZFNjcmlwdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gTm90ZTogSWYg
dGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMgaW1tZWlkYXRlbHkgY2FsbHMgbm90
aWZ5RmluaXNoZWQuCisgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBKU01vZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCBy
ZXNvdXJjZSA9PSBtX2NhY2hlZFNjcmlwdCk7CisgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKG1fY2FjaGVkU2NyaXB0KTsKKyAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCA9IG1fY2FjaGVkU2NyaXB0
OworICAgIG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKworI2lmIEVOQUJMRShOT1NOSUZGKQor
ICAgIGlmIChjYWNoZWRTY3JpcHQgJiYgIWNhY2hlZFNjcmlwdC0+bWltZVR5cGVBbGxvd2VkQnlO
b3NuaWZmKCkpIHsKKyAgICAgICAgbV9kb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIlJlZnVzZWQgdG8gZXhlY3V0
ZSBzY3JpcHQgZnJvbSAnIiArIGNhY2hlZFNjcmlwdC0+dXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBz
aXplZFRvTGVuZ3RoKCkgKyAiJyBiZWNhdXNlIGl0cyBNSU1FIHR5cGUgKCciICsgY2FjaGVkU2Ny
aXB0LT5taW1lVHlwZSgpICsgIicpIGlzIG5vdCBleGVjdXRhYmxlLCBhbmQgc3RyaWN0IE1JTUUg
dHlwZSBjaGVja2luZyBpcyBlbmFibGVkLiIpOworICAgICAgICBjYWNoZWRTY3JpcHQtPnJlbW92
ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgUmVm
PERvY3VtZW50PiBwcm90ZWN0b3IobV9kb2N1bWVudCk7CisKKyAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gbV9kb2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2so
bV9nbG9iYWxPYmplY3QtPnZtKCkpOworICAgICAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IG1f
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQtPmVy
cm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgLy8gVGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxp
bmUgaXMgY29uc3RydWN0ZWQgYXMgYSBjaGFpbiBvZiBwcm9taXNlcy4KKyAgICAgICAgICAgIC8v
IFJlamVjdGluZyBhIHByb21pc2UgaWYgc29tZSBlcnJvciBvY2N1cnMgaXMgaW1wb3J0YW50IGJl
Y2F1c2UgdGhlIGV4ZWN1dGlvbiBmbG93IG9mCisgICAgICAgICAgICAvLyB0aGUgcHJvbWlzZSBj
aGFpbiBpcyBkcml2ZW4gYnkgInJlamVjdGVkIiBvciAiZnVsZmlsbGVkIiBldmVudHMuCisgICAg
ICAgICAgICAvLyBJZiB0aGUgcHJvbWlzZSBpcyBub3QgcmVqZWN0ZWQgd2hpbGUgZXJyb3Igb2Nj
dXJzLCByZWplY3QgaGFuZGxlciB3b24ndCBiZSBleGVjdXRlZAorICAgICAgICAgICAgLy8gYW5k
IGFsbCB0aGUgc3Vic2VxdWVudCBwcm9taXNlIGNoYWluIHdpbGwgd2FpdCB0aGUgcmVzdWx0IGZv
cmV2ZXIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQXMgYSByZXN1bHQsIGV2ZW4g
aWYgdGhlIGVycm9yIGlzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBlbHNld2hl
cmUsCisgICAgICAgICAgICAvLyBpdCBzaG91bGQgYmUgcHJvcGFnYXRlZCBpbiB0aGUgcGlwZWxp
bmUuIEZvciBleGFtcGxlLCB0aGUgZXJyb3Igb2YgbG9hZGluZworICAgICAgICAgICAgLy8gQ2Fj
aGVkUmVzb3VyY2UgaXMgYWxyZWFkeSByZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGJ5IHRoZSBs
b2FkZXIuIEJ1dCB3ZSBzdGlsbCBuZWVkCisgICAgICAgICAgICAvLyB0byByZWplY3QgdGhlIHBy
b21pc2UgYnkgc29tZSBlcnJvci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBOb3Qg
dG8gcmVwb3J0IHRoZSBlcnJvciB0d2ljZSwgd2hlbiB3ZSBwcm9wYWdhdGUgdGhlIGVycm9yIHRo
YXQgaXMgYWxyZWFkeSByZXBvcnRlZAorICAgICAgICAgICAgLy8gdG8gdGhlIGluc3BlY3Rvciwg
d2UgdGhyb3cgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgc3ltYm9sIGlu
c3RlYWQuCisgICAgICAgICAgICAvLyBCeSBjb21wYXJpbmcgdGhlIHRocm93biBlcnJvciB3aXRo
IHRoaXMgc3ltYm9sLCB3ZSBjYW4gZGlzdGluZ3Vpc2ggZXJyb3JzIHJhaXNlZAorICAgICAgICAg
ICAgLy8gd2hlbiBsaW5raW5nIG9yIGV4ZWN1dGluZyBhIG1vZHVsZSBncmFwaCBmcm9tIGVycm9y
cyByZXBvcnRlZCBhbHJlYWR5LgorICAgICAgICAgICAgLy8gSW4gdGhlIHJlamVjdCBoYW5kbGVy
IG9mIHRoZSBwcm9taXNlLCB3ZSBvbmx5IHJlcG9ydCBhIGVycm9yIHRoYXQgaXMgbm90IHRoaXMg
c3ltYm9sLgorICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9s
OjpjcmVhdGUoZXhlYy0+dm0oKSwgKihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2woKS51aWQoKSkpKTsKKyAgICAgICAgfSBlbHNlIGlmICghY2Fj
aGVkU2NyaXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICBTY3JpcHRTb3VyY2VDb2Rl
IHNvdXJjZUNvZGUoY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIG1fZGVmZXJyZWQt
PnJlc29sdmUoZXhlYywgSlNDOjpqc1N0cmluZyhleGVjLCBzb3VyY2VDb2RlLnNvdXJjZSgpLnRv
U3RyaW5nKCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEEgQ2FjaGVkUmVzb3VyY2VI
YW5kbGUgYWxvbmUgZG9lcyBub3QgcHJldmVudCB0aGUgdW5kZXJseWluZyBDYWNoZWRSZXNvdXJj
ZQorICAgIC8vIGZyb20gcHVyZ2luZyBpdHMgZGF0YSBidWZmZXIuIFVudGlsIHdlIGZpbmlzaCB1
c2luZyB0aGUgYmFja2luZyBidWZmZXIgb2YgdGhlCisgICAgLy8gY2FjaGVkIHNjcmlwdCwgd2Ug
ZG9uJ3QgcmVtb3ZlIHRoZSBjbGllbnQuCisgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQo
dGhpcyk7CisKKyAgICBtX2RvY3VtZW50Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0
aGlzKTsKKyAgICAvLyBBZnRlciBKU01vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQgY2FsbCwg
fHRoaXN8IG1heSBiZSBkZXN0cm95ZWQuCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNb2R1bGVGZXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M5NTA3NTg0YTA4M2RhMzNjZmEz
Nzg3Yzc4YTU1NmIwOWJlOWE5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEpTTW9kdWxlRmV0Y2hlcl9oCisjZGVmaW5lIEpTTW9kdWxlRmV0Y2hlcl9oCisK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlVSTC5o
IgorI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgor
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNo
ZWRTY3JpcHQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xh
c3MgU2NyaXB0RWxlbWVudDsKKworY2xhc3MgSlNNb2R1bGVGZXRjaGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8SlNNb2R1bGVGZXRjaGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNNb2R1bGVGZXRjaGVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxKU01vZHVsZUZldGNoZXI+IGNyZWF0
ZShKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQqLCBEb2N1bWVudCYpOworCisgICAgfkpTTW9kdWxlRmV0Y2hlcigp
OworCisgICAgYm9vbCBydW4oU2NyaXB0RWxlbWVudCopOworCisgICAgQ2FjaGVkU2NyaXB0KiBj
YWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIEpTTW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IFVSTCYgc291
cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqLCBEb2N1bWVudCYpOworCisg
ICAgLy8gRm9yIENhY2hlZFJlc291cmNlQ2xpZW50LgorICAgIHZvaWQgbm90aWZ5RmluaXNoZWQo
Q2FjaGVkUmVzb3VyY2UqKSBvdmVycmlkZTsKKworICAgIERvY3VtZW50JiBtX2RvY3VtZW50Owor
ICAgIFVSTCBtX3NvdXJjZVVSTDsKKyAgICBKU0M6OlN0cm9uZzxKU0RPTUdsb2JhbE9iamVjdD4g
bV9nbG9iYWxPYmplY3Q7CisgICAgSlNDOjpTdHJvbmc8SlNDOjpKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkPiBtX2RlZmVycmVkOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4gbV9jYWNoZWRTY3JpcHQgeyB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gSlNNb2R1bGVGZXRjaGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTW9kdWxlR3JhcGguY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNb2R1bGVHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTg3NTRjZGI3NGFlNGYwMjQ0NmNhYzIyYjky
YTRiZmJlMzYyOTk4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTW9kdWxlR3JhcGguY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVHcmFwaC5oIgorCisjaW5jbHVkZSAi
RE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiSlNNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgor
I2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitK
U01vZHVsZUdyYXBoOjpKU01vZHVsZUdyYXBoKEVsZW1lbnQmIGVsZW1lbnQpCisgICAgOiBtX2Vs
ZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fd2Vha1B0ckZhY3RvcnkoJmVsZW1lbnQpCit7Cit9CisK
K3ZvaWQgSlNNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1
bGVLZXkpCit7CisgICAgbV9tb2R1bGVLZXkgPSBtb2R1bGVLZXk7CisgICAgbV9lbGVtZW50LmRv
Y3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeUpTTW9kdWxlR3JhcGhSZWFkeSh0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpKTsKK30KKwordm9pZCBKU01vZHVsZUdyYXBo
Ojpub3RpZnlFcnJvcmVkKCkKK3sKKyAgICBtX2Vycm9yZWQgPSB0cnVlOworICAgIG1fZWxlbWVu
dC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5ub3RpZnlKU01vZHVsZUdyYXBoUmVhZHkodG9T
Y3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgSlNNb2R1bGVH
cmFwaDo6ZXZhbHVhdGUoKQoreworICAgIGlmIChtX2Vycm9yZWQpCisgICAgICAgIHRvU2NyaXB0
RWxlbWVudElmUG9zc2libGUoJm1fZWxlbWVudCktPmRpc3BhdGNoRXJyb3JFdmVudCgpOworICAg
IGVsc2UgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisg
ICAgICAgIGZyYW1lLT5zY3JpcHQoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGUoKnRoaXMsIG1fZWxl
bWVudCk7Cit9CisKK3ZvaWQgSlNNb2R1bGVHcmFwaDo6bm90aWZ5RXZhbHVhdGVkKCkKK3sKKyAg
ICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaExvYWRFdmVu
dCgpOworfQorCit2b2lkIEpTTW9kdWxlR3JhcGg6OmxvYWQoY29uc3QgU3RyaW5nJiBtb2R1bGVO
YW1lKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBt
X2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQoKS5sb2FkTW9kdWxlKCp0aGlzLCBt
b2R1bGVOYW1lLCBtX2VsZW1lbnQpOworfQorCit2b2lkIEpTTW9kdWxlR3JhcGg6OmxvYWQoY29u
c3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50
LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+
c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgc291cmNlQ29kZSwgbV9lbGVtZW50KTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjViYWRmMGVmNTlmM2YyNGZiZjc1ZDRjMjI1MDQzOGUxNjY0ZTRkNDMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmgKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSlNNb2R1bGVHcmFwaF9oCisjZGVmaW5lIEpT
TW9kdWxlR3JhcGhfaAorCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVkZSA8
cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRWxlbWVudDsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CisKKy8vIEtlZXAgbGlmZXRpbWUg
b2YgYSBKU01vZHVsZUdyYXBoIHRoZSBzYW1lIHRvIGEgU2NyaXB0RWxlbWVudC4KK2NsYXNzIEpT
TW9kdWxlR3JhcGggeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTTW9kdWxlR3JhcGgpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBKU01vZHVsZUdy
YXBoKEVsZW1lbnQmKTsKKworICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1l
bnQ7IH0KKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgeyByZXR1cm4gbV9tb2R1
bGVLZXkuZ2V0KCk7IH0KKworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUp
OworICAgIHZvaWQgbG9hZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisgICAgdm9pZCBldmFs
dWF0ZSgpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrRWxlbWVudFB0cigpCisgICAgewor
ICAgICAgICByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgfQor
CisgICAgdm9pZCBub3RpZnlMb2FkZWQoVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSk7Cisg
ICAgdm9pZCBub3RpZnlFcnJvcmVkKCk7CisKKyAgICB2b2lkIG5vdGlmeUV2YWx1YXRlZCgpOwor
CisgICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcmVkOyB9Cisg
ICAgYm9vbCBpc0xvYWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5OyB9CisKK3ByaXZh
dGU6CisKKyAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CisgICAgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJ
bXBsPiBtX21vZHVsZUtleTsKKyAgICBXZWFrUHRyRmFjdG9yeTxFbGVtZW50PiBtX3dlYWtQdHJG
YWN0b3J5OworICAgIGJvb2wgbV9lcnJvcmVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcAppbmRleCBiYTFlM2VjYzFkZDBjNmVl
YWViZTI3MGViNGNiZjI1ZWU0NzhhNTE5Li5iZDBmMTE0Y2YyNGI5ODZkMzk2N2M1ZDc1NTY4NTAz
OWEzMTM5ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVs
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2Fk
ZXIuY3BwCkBAIC0zMCw2ICszMCw5IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNF
bGVtZW50LmgiCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaD4KICNpbmNsdWRlIDxydW50
aW1lL0pTU3RyaW5nLmg+CkBAIC00Miw3ICs0NSw3IEBAIEpTTW9kdWxlTG9hZGVyOjpKU01vZHVs
ZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiB9CiAKLUpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIEpTTW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpT
VmFsdWUgbW9kdWxlTmFtZVZhbHVlLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCitK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9k
dWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWVWYWx1ZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAKQEAgLTgyLDcgKzg1LDcgQEAgSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhlYywganNTdHJp
bmcoZXhlYywgY29tcGxldGVkVXJsLnN0cmluZygpKSk7CiB9CiAKLUpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpK
U1ZhbHVlIG1vZHVsZUtleVZhbHVlKQorSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVM
b2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5
VmFsdWUsIEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAKQEAgLTk2LDEyICs5OSwyMSBAQCBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogICAgIGlmICghY29tcGxldGVkVXJsLmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpjcmVhdGVUeXBlRXJyb3IoZXhl
YywgIk1vZHVsZSBrZXkgaXMgYW4gaW52YWxpZCBVUkwuIikpOwogCi0gICAgLy8gRklYTUU6IElt
cGxlbWVudCB0aGUgbW9kdWxlIGZldGNoZXIuCisgICAgU2NyaXB0RWxlbWVudCogc2NyaXB0RWxl
bWVudCA9IG51bGxwdHI7CisgICAgaWYgKGF1dG8qIGVsZW1lbnQgPSBKU0M6OmpzRHluYW1pY0Nh
c3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSkKKyAgICAgICAgc2NyaXB0RWxlbWVudCA9IHRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUoJmVsZW1lbnQtPndyYXBwZWQoKSk7CisKKyAgICBSZWY8SlNN
b2R1bGVGZXRjaGVyPiBmZXRjaGVyID0gSlNNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNDOjpqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBjb21wbGV0ZWRVcmwsIGRlZmVy
cmVkLCBtX2RvY3VtZW50KTsKKyAgICBtX2ZldGNoaW5nU2V0LmFkZCgmZmV0Y2hlci5nZXQoKSk7
CisgICAgaWYgKCFmZXRjaGVyLT5ydW4oc2NyaXB0RWxlbWVudCkpIHsKKyAgICAgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBkZWZl
cnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgKihmcmFt
ZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKS51aWQo
KSkpKTsKKyAgICB9CiAKICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKIH0KIAotSlND
OjpKU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUg
bW9kdWxlS2V5VmFsdWUsIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSkKK0pTQzo6SlNW
YWx1ZSBKU01vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUsIEpTQzo6SlNWYWx1ZSkK
IHsKICAgICAvLyBGSVhNRTogQ3VycmVudGx5LCB3ZSBvbmx5IHN1cHBvcnQgSlNNb2R1bGVSZWNv
cmQuCiAgICAgLy8gT25jZSB0aGUgcmVmbGVjdGl2ZSBwYXJ0IG9mIHRoZSBtb2R1bGUgbG9hZGVy
IGlzIHN1cHBvcnRlZCwgd2Ugd2lsbCBoYW5kbGUgYXJiaXRyYXJ5IHZhbHVlcy4KQEAgLTEyMSw5
ICsxMzMsMTQgQEAgSlNDOjpKU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMKICAgICBpZiAoIXNvdXJjZVVybC5p
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBKU0M6OnRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiTW9kdWxlIGtleSBpcyBhbiBpbnZhbGlkIFVSTC4iKSk7CiAKLSAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGV2YWx1YXRpbmcgbW9kdWxlIGNvZGUuCi0KKyAgICBpZiAoRnJhbWUqIGZy
YW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKQorICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgp
LmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVybCwgbW9kdWxlUmVjb3JkKTsKICAgICByZXR1cm4gSlND
Ojpqc1VuZGVmaW5lZCgpOwogfQogCit2b2lkIEpTTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChKU01vZHVsZUZldGNoZXIqIGZldGNoZXIpCit7CisgICAgbV9mZXRjaGluZ1NldC5yZW1vdmUo
ZmV0Y2hlcik7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxv
YWRlci5oCmluZGV4IDY5YTUwMWE1YWU1M2E1NjIxNGM1Y2M1OWNlY2IzMTkwMDc2ZmUxZmQuLjJl
NDc1MDNhNWM1Y2M0NTAzODMyYTI0NGY0Y2VkM2U5NjM3Y2Y0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTQwLDYgKzQxLDcgQEAgY2xhc3MgSlNNb2R1bGVMb2FkZXI7CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgSlNNb2R1bGVGZXRjaGVyOwogCiBjbGFz
cyBKU01vZHVsZUxvYWRlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNNb2R1bGVMb2Fk
ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ4LDEyICs1MCwxNSBAQCBjbGFzcyBK
U01vZHVsZUxvYWRlciB7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSB7IHJldHVybiBtX2Rv
Y3VtZW50OyB9CiAKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiByZXNvbHZlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KTsKLSAg
ICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eSk7Ci0gICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5
LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9y
dGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlKiBmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVl
IGluaXRpYXRvcik7CisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUg
bW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgaW5pdGlh
dG9yKTsKKworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoSlNNb2R1bGVGZXRjaGVyKik7CiAKIHBy
aXZhdGU6CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgSGFzaFNldDxSZWZQdHI8SlNN
b2R1bGVGZXRjaGVyPj4gbV9mZXRjaGluZ1NldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAK
aW5kZXggNjg4Mzk3YTA1Yzc4MDEwY2NlYTI0OTVkMjMwMzkwOTUxN2M0ZTYwOS4uNzc5OGZlZjJj
OGVlZjg4NGM2ZDQzY2U0ZTE4ZjkyOWI0MzRmNmE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbmNsdWRlICJKU01vZHVsZUdyYXBoLmgiCiAjaW5j
bHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgiCiAj
aW5jbHVkZSAiTlBfanNvYmplY3QuaCIKQEAgLTQxLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQYWdl
Q29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBsdWdp
blZpZXdCYXNlLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlw
dFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNTMsNyArNTUsMTEgQEAKICNpbmNsdWRlIDxoZWFwL1N0
cm9uZ0lubGluZXMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJl
Y29yZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4K
IApAQCAtODUsNiArOTEsNyBAQCBTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250cm9sbGVyKEZy
YW1lJiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX3NvdXJjZVVSTCgwKQog
ICAgICwgbV9wYXVzZWQoZmFsc2UpCisgICAgLCBtX21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1f
d2luZG93U2NyaXB0TlBPYmplY3QoMCkKICNlbmRpZgpAQCAtMTU1LDcgKzE2Miw3IEBAIEpTVmFs
dWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmIHNvdXJjZUNvZGUsIERPCiAgICAgY29uc3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1f
c291cmNlVVJMOwogICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTDsKIAotICAgIFJlZjxGcmFt
ZT4gcHJvdGVjdChtX2ZyYW1lKTsKKyAgICBSZWY8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1lKTsK
IAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwsIHNv
dXJjZUNvZGUuc3RhcnRMaW5lKCkpOwogCkBAIC0xNzksNiArMTg2LDEyMyBAQCBKU1ZhbHVlIFNj
cmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNv
ZGUsIEV4Y2VwdGlvbgogICAgIHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFp
blRocmVhZE5vcm1hbFdvcmxkKCksIGV4Y2VwdGlvbkRldGFpbHMpOwogfQogCitzdGF0aWMgdm9p
ZCBoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBlcnJv
ciwgY29uc3QgUHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3lt
Ym9sKQoreworICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3IgaXMgbWFya2VkIGFzIG1vZHVsZUxv
YWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAgIC8vIERvbid0IHJlcG9ydCBpdCBo
ZXJlIGFnYWluLgorICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9IGpzRHluYW1pY0Nhc3Q8U3ltYm9s
Kj4oZXJyb3IpKSB7CisgICAgICAgIGlmIChzeW1ib2wtPnByaXZhdGVOYW1lKCkgPT0gbW9kdWxl
TG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgaGF2ZSBub3Qgc3VwcG9ydGVkIHRoZSAi
Y3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSBpbiB0aGUgbW9kdWxlIHRhZywKKyAgICAvLyB3ZSBwYXNz
IHRoZSBudWxscHRyIHRvIHJlcG9ydEV4Y2VwdGlvbidzIENhY2hlZFNjcmlwdCogcGFyYW1ldGVy
LiBXaGVuIHBhc3NpbmcgbnVsbHB0cgorICAgIC8vIHRvIHJlcG9ydEV4Y2VwdGlvbiwgV2ViQ29y
ZSBkb2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVycm9yIGlmIHRoZSBVUkwgb2YgdGhl
CisgICAgLy8gc291cmNlIGRvZXMgbm90IHBhc3MgdGhlIHNhbWUgb3JpZ2luIHBvbGljeS4gU28g
dGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgY29uc2VydmF0aXZlOworICAgIC8vIG9ubHkgdGhlIG1v
ZHVsZSBjb2RlIHRoYXQgVVJMIGlzIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4gY2FuIHJlcG9ydCB0
aGUgZGV0YWlscyBvZiB0aGUKKyAgICAvLyBlcnJvci4gT25jZSB0aGUgc3BlYyBkZXNjcmliZXMg
dGhlIGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICByZXBvcnRFeGNlcHRpb24oZXhl
YywgZXJyb3IsIG51bGxwdHIpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1
bGVJbldvcmxkKEpTTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVs
ZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAg
SlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBz
aGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+
d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIGluaXRKU01vZHVsZUdyYXBoKG1vZHVsZUdy
YXBoLCBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSwg
dG9KUyhleGVjLCBzaGVsbC0+d2luZG93KCksICZlbGVtZW50KSksIHdvcmxkKTsKK30KKwordm9p
ZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlKEpTTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBo
LCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgbG9h
ZE1vZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxX
b3JsZCgpLCBlbGVtZW50KTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxl
SW5Xb3JsZChKU01vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYgc291cmNlQ29kZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93
U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgaW5pdEpTTW9kdWxlR3JhcGgo
bW9kdWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBzb3Vy
Y2VDb2RlLmpzU291cmNlQ29kZSgpLCB0b0pTKGV4ZWMsIHNoZWxsLT53aW5kb3coKSwgJmVsZW1l
bnQpKSwgd29ybGQpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoSlNN
b2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNv
ZGUsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgbG9hZE1vZHVsZUluV29ybGQobW9kdWxlR3Jh
cGgsIHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBlbGVtZW50KTsKK30KKwor
dm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKEpTTW9k
dWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBET01XcmFwcGVyV29ybGQmIHdvcmxkLCBFbGVtZW50JiBl
bGVtZW50KQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNE
T01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRl
KiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBKU0ludGVybmFs
UHJvbWlzZSogcHJvbWlzZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bGlua0FuZEV2YWx1YXRl
TW9kdWxlKGV4ZWMsIElkZW50aWZpZXI6OmZyb21VaWQoJmV4ZWMtPnZtKCksIG1vZHVsZUdyYXBo
Lm1vZHVsZUtleSgpKSwgdG9KUyhleGVjLCBzaGVsbC0+d2luZG93KCksICZlbGVtZW50KSk7CisK
KyAgICBXZWFrUHRyPEVsZW1lbnQ+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha0VsZW1lbnRQdHIo
KSk7CisgICAgSlNGdW5jdGlvbiogZnVsZmlsbEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9u
OjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dlYWtQ
dHJdKEV4ZWNTdGF0ZSopIHsKKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0g
d2Vha1B0ci5nZXQoKSkKKyAgICAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxl
bWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUV2YWx1YXRlZCgpOworICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgUHJp
dmF0ZU5hbWUgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgPSBtX21vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOworICAgIEpTRnVuY3Rpb24qIHJlamVj
dEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwt
PndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9y
U3ltYm9sLCB3ZWFrUHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgaWYgKFJlZlB0cjxF
bGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkKKyAgICAgICAgICAgIHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUV2YWx1
YXRlZCgpOworICAgICAgICBoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKGV4ZWMsIGV4ZWMtPmFy
Z3VtZW50KDApLCBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCk7CisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAg
ICBwcm9taXNlLT50aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCByZWplY3RIYW5kbGVyKTsKK30K
Kwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoSlNNb2R1bGVH
cmFwaCYgbW9kdWxlR3JhcGgsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgbGlua0FuZEV2YWx1
YXRlTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFwaCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCksIGVs
ZW1lbnQpOworfQorCitKU0M6OkpTVmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1
bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIERP
TVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0o
KSk7CisKKyAgICBjb25zdCBTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUgPSBtb2R1bGVSZWNvcmQt
PnNvdXJjZUNvZGUoKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hl
bGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFs
RXhlYygpOworICAgIGNvbnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsK
KyAgICBtX3NvdXJjZVVSTCA9ICZzb3VyY2VVUkwuc3RyaW5nKCk7CisKKyAgICBSZWY8RnJhbWU+
IHByb3RlY3RvcihtX2ZyYW1lKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdCht
X2ZyYW1lLCBzb3VyY2VVUkwsIGpzU291cmNlQ29kZS5maXJzdExpbmUoKSk7CisKKyAgICBKU1Zh
bHVlIHJldHVyblZhbHVlID0gbW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShleGVjKTsKKyAgICBOYWtl
ZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247CisgICAgaWYgKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKQorICAgICAgICBldmFsdWF0aW9uRXhjZXB0aW9uID0gZXhlYy0+dm0oKS5leGNl
cHRpb24oKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3Jp
cHQoY29va2llLCBtX2ZyYW1lKTsKKworICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKSB7Cisg
ICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBldmFsdWF0aW9uRXhjZXB0aW9uLCBudWxscHRy
KTsKKyAgICAgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVS
TDsKKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7Cit9CisKK0pTQzo6SlNWYWx1ZSBTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNv
cmQqIG1vZHVsZVJlY29yZCkKK3sKKyAgICByZXR1cm4gZXZhbHVhdGVNb2R1bGUoc291cmNlVVJM
LCBtb2R1bGVSZWNvcmQsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwogUmVmPERPTVdy
YXBwZXJXb3JsZD4gU2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlV29ybGQoKQogewogICAgIHJldHVy
biBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0y
NTksNiArMzgzLDQxIEBAIEpTRE9NV2luZG93U2hlbGwqIFNjcmlwdENvbnRyb2xsZXI6OmluaXRT
Y3JpcHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKICAgICByZXR1cm4gJndpbmRvd1NoZWxsOwog
fQogCitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBy
ZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3ltYm9sKj4odmFsdWUpLT5wcml2YXRl
TmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmcoKSk7CisgICAgcmV0dXJuIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoZXhlYywganNDYXN0PEpTU3RyaW5nKj4odmFsdWUpLT52YWx1ZShl
eGVjKSk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6aW5pdEpTTW9kdWxlR3JhcGgoSlNN
b2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlLCBET01X
cmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2lu
ZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+
Z2xvYmFsRXhlYygpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBo
LndlYWtFbGVtZW50UHRyKCkpOworICAgIEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNO
YXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwg
U3RyaW5nKCksIFt3ZWFrUHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgLy8gSlNNb2R1
bGVHcmFwaCwgc2NyaXB0IGVsZW1lbnQgYW5kIGRvY3VtZW50IG1heSBiZSBkZXN0cm95ZWQgZHVy
aW5nIGxvYWRpbmcgdGhlIG1vZHVsZS4KKyAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91
bGQgbm90IGV4ZWN1dGUgbW9kdWxlIGJvZHkuCisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpIHsKKyAgICAgICAgICAgIElkZW50aWZpZXIgbW9kdWxl
S2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAg
ICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdy
YXBoKCktPm5vdGlmeUxvYWRlZChtb2R1bGVLZXkuaW1wbCgpKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAg
UHJpdmF0ZU5hbWUgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgPSBtX21v
ZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOworICAgIEpTRnVuY3Rpb24qIHJl
amVjdEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hl
bGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVy
cm9yU3ltYm9sLCB3ZWFrUHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgaWYgKFJlZlB0
cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkKKyAgICAgICAgICAgIHRvU2NyaXB0
RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUVy
cm9yZWQoKTsKKyAgICAgICAgaGFuZGxlSlNNb2R1bGVMb2FkZXJFcnJvcihleGVjLCBleGVjLT5h
cmd1bWVudCgwKSwgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOworICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisg
ICAgcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxsSGFuZGxlciwgcmVqZWN0SGFuZGxlcik7Cit9
CisKIFRleHRQb3NpdGlvbiBTY3JpcHRDb250cm9sbGVyOjpldmVudEhhbmRsZXJQb3NpdGlvbigp
IGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IElmIHdlIGFyZSBub3QgY3VycmVudGx5IHBhcnNpbmcs
IHdlIHNob3VsZCB1c2Ugb3VyIGN1cnJlbnQgbG9jYXRpb24KQEAgLTUyMCw3ICs2NzksNyBAQCBK
U1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNl
Q29kZSYgc291cmNlQ29kZSwgRXhjZQogICAgIGlmICghY2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRU
b0V4ZWN1dGVTY3JpcHQpIHx8IGlzUGF1c2VkKCkpCiAgICAgICAgIHJldHVybiB7IH07IC8vIEZJ
WE1FOiBXb3VsZCBqc051bGwgYmUgYmV0dGVyPwogCi0gICAgUmVmPEZyYW1lPiBwcm90ZWN0KG1f
ZnJhbWUpOyAvLyBTY3JpcHQgZXhlY3V0aW9uIGNhbiBkZXN0cm95IHRoZSBmcmFtZSwgYW5kIHRo
dXMgdGhlIFNjcmlwdENvbnRyb2xsZXIuCisgICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFt
ZSk7IC8vIFNjcmlwdCBleGVjdXRpb24gY2FuIGRlc3Ryb3kgdGhlIGZyYW1lLCBhbmQgdGh1cyB0
aGUgU2NyaXB0Q29udHJvbGxlci4KIAogICAgIHJldHVybiBldmFsdWF0ZShzb3VyY2VDb2RlLCBl
eGNlcHRpb25EZXRhaWxzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuaAppbmRleCBhMGM3MWYyNjA4MTJiMGQzMjExOTE2ODY4MTE5ZDcwYmY2NzE3
NjJmLi4wY2Q0ZGQ3NDg0ZDU0MTYxMDQ1MGQ0OTk1OTE4YTFlMzE3ZGNmOTU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCw4
IEBAIGNsYXNzIFNjcmlwdFZhbHVlOwogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTR2xvYmFs
T2JqZWN0OworY2xhc3MgSlNNb2R1bGVSZWNvcmQ7CitjbGFzcyBKU0ludGVybmFsUHJvbWlzZTsK
IGNsYXNzIEV4ZWNTdGF0ZTsKIAogbmFtZXNwYWNlIEJpbmRpbmdzIHsKQEAgLTU3LDYgKzU5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7
CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2NsYXNzIEpTTW9kdWxlR3JhcGg7CiBjbGFzcyBT
Y3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXaWRnZXQ7CkBA
IC0xMTUsNiArMTE4LDE3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIEpTQzo6SlNW
YWx1ZSBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRXhjZXB0aW9uRGV0YWlscyog
PSBudWxscHRyKTsKICAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmLCBFeGNlcHRpb25EZXRhaWxzKiA9IG51bGxw
dHIpOwogCisgICAgdm9pZCBsb2FkTW9kdWxlSW5Xb3JsZChKU01vZHVsZUdyYXBoJiwgY29uc3Qg
U3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmLCBFbGVtZW50Jik7CisgICAgdm9p
ZCBsb2FkTW9kdWxlKEpTTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEVs
ZW1lbnQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGVJbldvcmxkKEpTTW9kdWxlR3JhcGgmLCBjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJiwgRWxlbWVudCYpOworICAgIHZv
aWQgbG9hZE1vZHVsZShKU01vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIEVs
ZW1lbnQmKTsKKworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChKU01vZHVs
ZUdyYXBoJiAsIERPTVdyYXBwZXJXb3JsZCYsIEVsZW1lbnQmKTsKKyAgICB2b2lkIGxpbmtBbmRF
dmFsdWF0ZU1vZHVsZShKU01vZHVsZUdyYXBoJiwgRWxlbWVudCYpOworCisgICAgSlNDOjpKU1Zh
bHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBET01X
cmFwcGVyV29ybGQmKTsKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJM
JiwgSlNDOjpKU01vZHVsZVJlY29yZCopOworCiAgICAgV1RGOjpUZXh0UG9zaXRpb24gZXZlbnRI
YW5kbGVyUG9zaXRpb24oKSBjb25zdDsKIAogICAgIHZvaWQgZW5hYmxlRXZhbCgpOwpAQCAtMTM1
LDYgKzE0OSw4IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogCiAgICAgY29uc3QgU3RyaW5n
KiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfSAvLyAwIGlmIHdlIGFy
ZSBub3QgZXZhbHVhdGluZyBhbnkgc2NyaXB0CiAKKyAgICBjb25zdCBKU0M6OlByaXZhdGVOYW1l
JiBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7IH0KKwogICAgIHZvaWQg
Y2xlYXJXaW5kb3dTaGVsbChET01XaW5kb3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9Q
YWdlQ2FjaGUpOwogICAgIHZvaWQgdXBkYXRlRG9jdW1lbnQoKTsKIApAQCAtMTY3LDYgKzE4Myw3
IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQ
T1JUIEpTRE9NV2luZG93U2hlbGwqIGluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CisgICAg
dm9pZCBpbml0SlNNb2R1bGVHcmFwaChKU01vZHVsZUdyYXBoJiwgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSosIERPTVdyYXBwZXJXb3JsZCYpOwogCiAgICAgdm9pZCBkaXNjb25uZWN0UGxhdGZvcm1T
Y3JpcHRPYmplY3RzKCk7CiAKQEAgLTE3NSw2ICsxOTIsNyBAQCBjbGFzcyBTY3JpcHRDb250cm9s
bGVyIHsKICAgICBjb25zdCBTdHJpbmcqIG1fc291cmNlVVJMOwogCiAgICAgYm9vbCBtX3BhdXNl
ZDsKKyAgICBKU0M6OlByaXZhdGVOYW1lIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJy
b3JTeW1ib2w7CiAKICAgICAvLyBUaGUgcm9vdCBvYmplY3QgdXNlZCBmb3Igb2JqZWN0cyBib3Vu
ZCBvdXRzaWRlIHRoZSBjb250ZXh0IG9mIGEgcGx1Z2luLCBzdWNoCiAgICAgLy8gYXMgTlBBUEkg
cGx1Z2lucy4gVGhlIHBsdWdpbnMgdXNpbmcgdGhlc2Ugb2JqZWN0cyBwcmV2ZW50IGEgcGFnZSBm
cm9tIGJlaW5nIGNhY2hlZCBzbyB0aGV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyOWQz
ZmQ3ZTBkNDI5NTk1NWU5YTAyYzNhMmE5NDg2MTJlZTJkNGUzLi5iYzMzMmNhNWU1NjIzOTk2MTM3
YjZjNWYyOGY3N2ZmMzhhYzIyNjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMyw2
ICsxMDMsNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpTTGF6eUV2ZW50TGlz
dGVuZXIuaCIKKyNpbmNsdWRlICJKU01vZHVsZUZldGNoZXIuaCIKICNpbmNsdWRlICJKU01vZHVs
ZUxvYWRlci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMYW5ndWFn
ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAwZTk1NzgxN2U2MTJmMjhjODQ1ZDU1Mzk1ZTVj
ZTBiMTFlNmExM2FmLi44MjQ1NGJkMDAwMTk4NjMyNTljMWY2Mjk5NDY1YzNhYjIwMDc5ODE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTMzLDYgKzEzMyw3IEBAIGNsYXNzIE1lZGlhUGxheWJh
Y2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFR
dWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKK2NsYXNzIEpTTW9kdWxlTG9hZGVy
OwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0Nv
bGxlY3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
Y3BwCmluZGV4IGYxODcxMTE1YjMyOGE2ZjEyNjMwOTM2ZTg1ZWIwOWFiN2ExZjM1N2MuLmRhOGVi
MWJjMjA4NTM0MDA3MmUyN2UyZWZiZjhlZGNhM2EzMGY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWdub3JlRGVzdHJ1Y3Rp
dmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCIKKyNpbmNsdWRlICJKU01vZHVsZUdyYXBoLmgiCiAj
aW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJTVkdOYW1lcy5oIgpAQCAtMTk3LDcgKzE5OCwxMCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnBy
ZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdh
YwogICAgIGlmICghbV9lbGVtZW50LmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKCFkZXRlcm1pbmVTY3JpcHRUeXBlKHN1cHBvcnRMZWdhY3lUeXBlcykpCisg
ICAgU2NyaXB0VHlwZSBzY3JpcHRUeXBlID0gU2NyaXB0VHlwZTo6Q2xhc3NpYzsKKyAgICBpZiAo
T3B0aW9uYWw8U2NyaXB0VHlwZT4gcmVzdWx0ID0gZGV0ZXJtaW5lU2NyaXB0VHlwZShzdXBwb3J0
TGVnYWN5VHlwZXMpKQorICAgICAgICBzY3JpcHRUeXBlID0gcmVzdWx0LnZhbHVlKCk7CisgICAg
ZWxzZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAod2FzUGFyc2VySW5zZXJ0ZWQp
IHsKQEAgLTIxOSw3ICsyMjMsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQo
Y29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAgIGlmICgh
ZG9jdW1lbnQuZnJhbWUoKS0+c2NyaXB0KCkuY2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1
dGVTY3JpcHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWlzU2NyaXB0Rm9y
RXZlbnRTdXBwb3J0ZWQoKSkKKyAgICBpZiAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFz
c2ljICYmICFpc1NjcmlwdEZvckV2ZW50U3VwcG9ydGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGlmICghY2hhcnNldEF0dHJpYnV0ZVZhbHVlKCkuaXNFbXB0eSgpKQpAQCAtMjI3
LDI2ICsyMzEsMzggQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRl
eHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBlbHNlCiAgICAgICAg
IG1fY2hhcmFjdGVyRW5jb2RpbmcgPSBkb2N1bWVudC5jaGFyc2V0KCk7CiAKLSAgICBpZiAoaGFz
U291cmNlQXR0cmlidXRlKCkpCi0gICAgICAgIGlmICghcmVxdWVzdFNjcmlwdChzb3VyY2VBdHRy
aWJ1dGVWYWx1ZSgpKSkKKyAgICBpZiAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpNb2R1bGUp
IHsKKyAgICAgICAgaWYgKCFsb2FkTW9kdWxlKHNjcmlwdFN0YXJ0UG9zaXRpb24pKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBp
ZiAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGlmIChoYXNT
b3VyY2VBdHRyaWJ1dGUoKSkgeworICAgICAgICAgICAgaWYgKCFyZXF1ZXN0U2NyaXB0KHNjcmlw
dFR5cGUsIHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KIAotICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSAm
JiBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNBdHRy
aWJ1dGVWYWx1ZSgpKSB7CisgICAgaWYgKChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNz
aWMgJiYgaGFzU291cmNlQXR0cmlidXRlKCkgJiYgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpICYmIG1f
cGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSkgfHwgKHNjcmlwdFR5cGUg
PT0gU2NyaXB0VHlwZTo6TW9kdWxlICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5jQXR0cmli
dXRlVmFsdWUoKSkpIHsKICAgICAgICAgbV93aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVk
UGFyc2luZyA9IHRydWU7CiAgICAgICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwot
ICAgIH0gZWxzZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAm
JiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpKQorICAgIH0gZWxzZSBpZiAoc2NyaXB0VHlwZSA9PSBT
Y3JpcHRUeXBlOjpDbGFzc2ljICYmIGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5z
ZXJ0ZWQgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSkgeworICAgICAgICBBU1NFUlQoc2NyaXB0
VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKTsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVj
dXRlZCA9IHRydWU7Ci0gICAgZWxzZSBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFy
c2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKSB7Ci0gICAg
ICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwotICAgICAgICBtX3JlYWR5VG9CZVBh
cnNlckV4ZWN1dGVkID0gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgp
ICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykgeworICAgIH0gZWxz
ZSBpZiAoKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6Q2xhc3NpYyAmJiBoYXNTb3VyY2VBdHRy
aWJ1dGUoKSAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpICYmICFtX2ZvcmNlQXN5bmMpIHx8IChz
Y3JpcHRUeXBlID09IFNjcmlwdFR5cGU6Ok1vZHVsZSAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgp
ICYmICFtX2ZvcmNlQXN5bmMpKSB7CiAgICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVyID0gdHJ1
ZTsKICAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0
aW9uKHRoaXMsIG1fY2FjaGVkU2NyaXB0LCBTY3JpcHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElP
Tik7CiAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7Ci0gICAgfSBlbHNl
IGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgeworICAgIH0gZWxzZSBpZiAoaGFzU291cmNlQXR0
cmlidXRlKCkgfHwgc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpNb2R1bGUpIHsKICAgICAgICAg
bV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0
aW9uKHRoaXMsIG1fY2FjaGVkU2NyaXB0LCBTY3JpcHRSdW5uZXI6OkFTWU5DX0VYRUNVVElPTik7
CiAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7CisgICAgfSBlbHNlIGlm
ICghaGFzU291cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhZG9jdW1lbnQu
aGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkpIHsKKyAgICAgICAgQVNTRVJUKHNjcmlwdFR5cGUgPT0g
U2NyaXB0VHlwZTo6Q2xhc3NpYyk7CisgICAgICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0
cnVlOworICAgICAgICBtX3JlYWR5VG9CZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKICAgICB9IGVs
c2UgeworICAgICAgICBBU1NFUlQoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKTsK
ICAgICAgICAgLy8gUmVzZXQgbGluZSBudW1iZXJpbmcgZm9yIG5lc3RlZCB3cml0ZXMuCiAgICAg
ICAgIFRleHRQb3NpdGlvbiBwb3NpdGlvbiA9IGRvY3VtZW50LmlzSW5Eb2N1bWVudFdyaXRlKCkg
PyBUZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CiAgICAgICAgIGV4ZWN1dGVT
Y3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRDb250ZW50KCksIGRvY3VtZW50LnVybCgpLCBw
b3NpdGlvbikpOwpAQCAtMjU1LDcgKzI3MSw3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFy
ZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVybCkKK2Jvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlw
dChTY3JpcHRUeXBlIHNjcmlwdFR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogewogICAg
IFJlZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7CiAg
ICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKQEAg
LTI5Niw2ICszMTIsMzEgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0
IFN0cmluZyYgc291cmNlVXJsKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0
KFVSTCBzb3VyY2VVcmwpCit7CisgICAgYm9vbCBoYXNLbm93bk5vbmNlID0gbV9lbGVtZW50LmRv
Y3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0V2l0aE5vbmNlKG1f
ZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6bm9uY2VB
dHRyKSwgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOworICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNo
ZWRSZXNvdXJjZU9wdGlvbnMoKTsKKyAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUlt
cG9zaXRpb24gPSBoYXNLbm93bk5vbmNlID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlv
bjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Q
b2xpY3lDaGVjazsKKworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChzb3VyY2VVcmwpLCBvcHRpb25zKTsKKworICAgIG1fZWxlbWVudC5kb2N1bWVudCgp
LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQo
cmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisKKyAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2Rl
ID0gbV9lbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpj
cm9zc29yaWdpbkF0dHIpOworICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7Cisg
ICAgICAgIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sID0gdHJ1ZTsKKyAgICAgICAgU3RvcmVk
Q3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVk
ZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKKyAgICAgICAgQVNTRVJUKG1f
ZWxlbWVudC5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICB1cGRhdGVSZXF1
ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgKm1f
ZWxlbWVudC5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwor
ICAgIH0KKyAgICByZXF1ZXN0LnNldENoYXJzZXQoQVNDSUlMaXRlcmFsKCJ1dGYtOCIpKTsKKyAg
ICByZXF1ZXN0LnNldEluaXRpYXRvcigmZWxlbWVudCgpKTsKKworICAgIG1faXNFeHRlcm5hbFNj
cmlwdCA9IHRydWU7CisKKyAgICByZXR1cm4gbV9lbGVtZW50LmRvY3VtZW50KCkuY2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOworfQorCiB2b2lkIFNjcmlwdEVs
ZW1lbnQ6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkK
IHsKICAgICBBU1NFUlQobV9hbHJlYWR5U3RhcnRlZCk7CkBAIC0zMjgsNiArMzY5LDkgQEAgdm9p
ZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNv
dXJjZUNvZGUpCiAgICAgICAgIC8vIE5vdGU6IFRoaXMgaXMgd2hlcmUgdGhlIHNjcmlwdCBpcyBj
b21waWxlZCBhbmQgYWN0dWFsbHkgZXhlY3V0ZWQuCiAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5l
dmFsdWF0ZShzb3VyY2VDb2RlKTsKICAgICB9CisgICAgLy8gRklYTUU6IFRoZSBtb2R1bGUgbG9h
ZGVyIHNob3VsZCBoYXZlIHRoZSBtZWNoYW5pc20gdG8gc3RvcCBsb2FkaW5nLgorICAgIC8vIFRo
ZSBjdXJyZW50IGxvYWRlciBzcGVjIGRvZXMgbm90IGhhdmUgdGhpcy4gT25jZSBpdCBpcyBzcGVj
aWZpZWQKKyAgICAvLyB3ZSB3aWxsIGludHJvZHVjZSB0aGlzIGZlYXR1cmUuCiB9CiAKIHZvaWQg
U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KCkKQEAgLTM1Miw2ICszOTYsNjQgQEAgdm9p
ZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogICAg
IGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogfQogCitib29sIFNjcmlwdEVsZW1l
bnQ6OmxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQor
eworICAgIC8vIFRoZSBicm93c2VyIG1vZHVsZSBsb2FkZXIgbG9hZHMgdGhlIG1vZHVsZSBzb3Vy
Y2VzLgorICAgIC8vIFNpbmNlIHRoZSBtb2R1bGUgaW52b2x2ZXMgbG9hZGluZyBvZiB0aGUgZGVw
ZW5kZW50IG1vZHVsZXMgYW5kIHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBkb2VzIG5vdCBoYXZlIGNv
cnJlc3BvbmRpbmcgc2NyaXB0IGVsZW1lbnRzLAorICAgIC8vIHRoZSBmdW5jdGlvbmFsaXR5IG9m
IGxvYWRpbmcgbW9kdWxlcyBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUgc2NyaXB0IGVsZW1lbnQuCisg
ICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKSB7CisgICAgICAgIFN0cmluZyBzb3VyY2VVcmwg
PSBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpOworICAgICAgICBSZWY8RG9jdW1lbnQ+IG9yaWdpbmFs
RG9jdW1lbnQobV9lbGVtZW50LmRvY3VtZW50KCkpOworICAgICAgICBpZiAoIW1fZWxlbWVudC5k
aXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVcmwpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIC8vIFNjcmlwdCBlbGVtZW50IG1heSBiZSBkZXRhY2hlZCBhbmQgYXR0
YWNoZWQgdG8gYSBkaWZmZXJlbnQgZG9jdW1lbnQgd2hpbGUgZXhlY3V0aW5nIHRoZSBldmVudCBs
aXN0ZW5lci4KKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuaW5Eb2N1bWVudCgpIHx8ICZtX2VsZW1l
bnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIGlmIChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFj
ZXMoc291cmNlVXJsKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVu
dCgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8g
RklYTUU6IFNob3VsZCBzdXBwb3J0IGNyb3NzLW9yaWdpbiBtb2RlIGluIHRoZSBtb2R1bGUgdGFn
LgorICAgICAgICAvLyBIb3dldmVyIHdlIGRvbid0IGhhdmUgdGhlIHBvbGljeSB0byBhcHBseSB0
aGlzIG1vZGUgdG8gdGhlIHJlc291cmNlcyBvZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCisgICAg
ICAgIC8vIFByb3ZpZGVkIG11bHRpcGxlIG1vZHVsZSB0YWdzLAorICAgICAgICAvLworICAgICAg
ICAvLyAgIEE6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiIgY3Jvc3NvcmlnaW49ImFu
b255bW91cyI+PC9zY3JpcHQ+CisgICAgICAgIC8vICAgQjogPHNjcmlwdCB0eXBlPSJtb2R1bGUi
IHNyYz0iLi4uIj48L3NjcmlwdD4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gJ0EnIGhhcyB0aGUg
ImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUuIEJ1dCAnQicgZG9lcyBub3QgaGF2ZSBpdC4KKyAgICAg
ICAgLy8gSG93ZXZlciwgRVM2IG1vZHVsZXMgYWxsb3cgJ0EnIGFuZCAnQicgdG8gbG9hZCB0aGUg
c2FtZSBtb2R1bGUgYW5kIGl0IHdpbGwgYmUgY2FjaGVkIGluIHRoZQorICAgICAgICAvLyBtb2R1
bGUgbG9hZGVyLiBJbiB0aGF0IGNhc2UsIGl0IGlzIGNvbnRyb3ZlcnNpYWwgdGhhdCB3aGljaCAi
Y3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSB3aWxsIGJlCisgICAgICAgIC8vIGFwcGxpZWQgdG8gdGhl
IG1vZHVsZSBsb2FkZWQgYnkgdGhlIGJvdGguIE9uY2UgdGhlIHNwZWMgb2YgdGhlIG1vZHVsZSBs
b2FkZXIgaXMgZml4ZWQsIHdlCisgICAgICAgIC8vIHNob3VsZCBmb2xsb3cgaXQuCisKKyAgICAg
ICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgbV9tb2R1bGVHcmFwaCA9IHN0
ZDo6bWFrZV91bmlxdWU8SlNNb2R1bGVHcmFwaD4obV9lbGVtZW50KTsKKyAgICAgICAgbV9lbGVt
ZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlSlNNb2R1bGVHcmFwaEZvckV4ZWN1
dGlvbih0aGlzLCAqbV9tb2R1bGVHcmFwaCk7CisgICAgICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQo
c291cmNlQXR0cmlidXRlVmFsdWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIC8vIFJlc2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgorICAgIFRleHRQ
b3NpdGlvbiBwb3NpdGlvbiA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmlzSW5Eb2N1bWVudFdyaXRl
KCkgPyBUZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CisgICAgU2NyaXB0U291
cmNlQ29kZSBzb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgbV9lbGVtZW50LmRvY3VtZW50KCku
dXJsKCksIHBvc2l0aW9uKTsKKworICAgIHsKKyAgICAgICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1
bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpKTsKKyAgICAgICAgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5JiBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSAqbV9lbGVtZW50LmRvY3VtZW50
KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCk7CisgICAgICAgIGJvb2wgaGFzS25vd25Ob25jZSA9
IGNvbnRlbnRTZWN1cml0eVBvbGljeS5hbGxvd1NjcmlwdFdpdGhOb25jZShtX2VsZW1lbnQuYXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6Om5vbmNlQXR0ciksIG1fZWxl
bWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKTsKKyAgICAgICAgaWYgKCFjb250ZW50U2Vj
dXJpdHlQb2xpY3kuYWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCks
IG1fc3RhcnRMaW5lTnVtYmVyLCBzb3VyY2VDb2RlLnNvdXJjZSgpLnRvU3RyaW5nV2l0aG91dENv
cHlpbmcoKSwgaGFzS25vd25Ob25jZSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBtX21vZHVsZUdyYXBoID0gc3RkOjptYWtlX3VuaXF1ZTxKU01vZHVsZUdyYXBoPiht
X2VsZW1lbnQpOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1
ZUpTTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgpOworICAgIG1f
bW9kdWxlR3JhcGgtPmxvYWQoc291cmNlQ29kZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
KQogewogICAgIEFTU0VSVCghbV93aWxsQmVQYXJzZXJFeGVjdXRlZCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuaAppbmRleCA0ZTc5NDkxMjA5YjBiNDc4ZWY1NzI3NjE0MjRkYWRhNDE1Y2Mw
MjgyLi5jZmIxMTcwMDVkOWIxZDExY2Y4NzhiMmY4ZGNhMDQwZDBmZTZhZGFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0
UG9zaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzIsNiAr
MzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBD
b250YWluZXJOb2RlOwogY2xhc3MgRWxlbWVudDsKK2NsYXNzIEpTTW9kdWxlR3JhcGg7CiBjbGFz
cyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIApAQCAtNTksNiArNjEs
MTQgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQg
ewogICAgIGJvb2wgcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSBjb25zdCB7IHJldHVybiBtX3Jl
YWR5VG9CZVBhcnNlckV4ZWN1dGVkOyB9CiAgICAgYm9vbCB3aWxsRXhlY3V0ZVdoZW5Eb2N1bWVu
dEZpbmlzaGVkUGFyc2luZygpIGNvbnN0IHsgcmV0dXJuIG1fd2lsbEV4ZWN1dGVXaGVuRG9jdW1l
bnRGaW5pc2hlZFBhcnNpbmc7IH0KICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3Jp
cHQ+IGNhY2hlZFNjcmlwdCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0OyB9CisgICAgSlNNb2R1
bGVHcmFwaCogbW9kdWxlR3JhcGgoKSB7IHJldHVybiBtX21vZHVsZUdyYXBoLmdldCgpOyB9CisK
KyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RNb2R1bGVTY3Jp
cHQoVVJMKTsKKworICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3NjcmlwdGluZy5odG1sI2NvbmNlcHQtc2NyaXB0LXR5cGUKKyAgICBlbnVtIGNsYXNzIFNjcmlw
dFR5cGUgeyBDbGFzc2ljLCBNb2R1bGUgfTsKKworICAgIFNjcmlwdFR5cGUgc2NyaXB0VHlwZSgp
IGNvbnN0IHsgbV9pc0NsYXNzaWNTY3JpcHQgPyBTY3JpcHRUeXBlOjpDbGFzc2ljIDogU2NyaXB0
VHlwZTo6TW9kdWxlOyB9CiAKIHByb3RlY3RlZDoKICAgICBTY3JpcHRFbGVtZW50KEVsZW1lbnQm
LCBib29sIGNyZWF0ZWRCeVBhcnNlciwgYm9vbCBpc0V2YWx1YXRlZCk7CkBAIC03NiwxMyArODYs
MTMgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQg
ewogICAgIHZvaWQgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKIAogcHJpdmF0ZToKLSAgICAvLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNjb25j
ZXB0LXNjcmlwdC10eXBlCi0gICAgZW51bSBjbGFzcyBTY3JpcHRUeXBlIHsgQ2xhc3NpYywgTW9k
dWxlIH07CiAgICAgT3B0aW9uYWw8U2NyaXB0VHlwZT4gZGV0ZXJtaW5lU2NyaXB0VHlwZShMZWdh
Y3lUeXBlU3VwcG9ydCkgY29uc3Q7CiAgICAgYm9vbCBpZ25vcmVzTG9hZFJlcXVlc3QoKSBjb25z
dDsKICAgICBib29sIGlzU2NyaXB0Rm9yRXZlbnRTdXBwb3J0ZWQoKSBjb25zdDsKIAotICAgIGJv
b2wgcmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7CisgICAgYm9vbCBsb2Fk
TW9kdWxlKGNvbnN0IFRleHRQb3NpdGlvbiYpOworCisgICAgYm9vbCByZXF1ZXN0U2NyaXB0KFNj
cmlwdFR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlVXJsKTsKICAgICB2b2lkIHN0b3BMb2FkUmVx
dWVzdCgpOwogCiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJy
aWRlOwpAQCAtMTEwLDggKzEyMCwxMCBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgYm9vbCBtX2ZvcmNlQXN5bmMgOiAxOwogICAgIGJv
b2wgbV93aWxsRXhlY3V0ZUluT3JkZXIgOiAxOwogICAgIGJvb2wgbV9yZXF1ZXN0VXNlc0FjY2Vz
c0NvbnRyb2wgOiAxOworICAgIGJvb2wgbV9pc0NsYXNzaWNTY3JpcHQgOiAxOwogICAgIFN0cmlu
ZyBtX2NoYXJhY3RlckVuY29kaW5nOwogICAgIFN0cmluZyBtX2ZhbGxiYWNrQ2hhcmFjdGVyRW5j
b2Rpbmc7CisgICAgc3RkOjp1bmlxdWVfcHRyPEpTTW9kdWxlR3JhcGg+IG1fbW9kdWxlR3JhcGg7
CiB9OwogCiAvLyBGSVhNRTogcmVwbGFjZSB3aXRoIGRvd25jYXN0PFNjcmlwdEVsZW1lbnQ+Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcAppbmRleCBkMjYwNWJkZGI3YjViNjJiOTE0NTM4
ZWY2MjYyYWNiN2IzZDUwMDJlLi4yYmViNDBlZmU2NTMyMmRhYzdiZDZiZDM1OGFmOGZhMzk3YThi
YThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1
ZGUgIkpTTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RWxlbWVudC5oIgogCkBAIC00Nyw2ICs0OCwxMCBAQCBTY3JpcHRSdW5uZXI6On5T
Y3JpcHRSdW5uZXIoKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5
Q291bnQoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wZW5kaW5nQXN5bmNTY3Jp
cHRzLnNpemUoKTsgKytpKQogICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERl
bGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbW9kdWxlU2NyaXB0RWxl
bWVudHNUb0V4ZWN1dGVTb29uLnNpemUoKTsgKytpKQorICAgICAgICBtX2RvY3VtZW50LmRlY3Jl
bWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9j
dW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogfQogCiB2b2lkIFNjcmlwdFJ1
bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVu
dCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQsIEV4ZWN1
dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKQEAgLTcwLDYgKzc1LDE4IEBAIHZvaWQgU2NyaXB0UnVu
bmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50
LCBDYWNoZWRSCiAgICAgfQogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVKU01vZHVsZUdy
YXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIEpTTW9kdWxlR3Jh
cGgmKQoreworICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKKworICAgIEVsZW1lbnQmIGVsZW1l
bnQgPSBzY3JpcHRFbGVtZW50LT5lbGVtZW50KCk7CisgICAgQVNTRVJUKGVsZW1lbnQuaW5Eb2N1
bWVudCgpKTsKKworICAgIG1fZG9jdW1lbnQuaW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgp
OworCisgICAgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuYWRkKCZlbGVtZW50KTsKK30K
Kwogdm9pZCBTY3JpcHRSdW5uZXI6OnN1c3BlbmQoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwpA
QCAtOTYsNiArMTEzLDI2IEBAIHZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlTY3JpcHRSZWFkeShT
Y3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBFeGVjdXRpb25UeXBlCiAgICAgbV90aW1lci5z
dGFydE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlKU01vZHVsZUdy
YXBoUmVhZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCkKK3sKKyAgICBBU1NFUlRfVU5V
U0VEKHNjcmlwdEVsZW1lbnQsIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmNvbnRhaW5z
KCZzY3JpcHRFbGVtZW50LT5lbGVtZW50KCkpKTsKKworICAgIC8vIExpc3RIYXNoU2V0IGNvcnJl
Y3RseSBwcmVzZXJ2ZXMgdGhlIGluc2VydGlvbiBvcmRlci4KKyAgICAvLyBBbmQgaXQgYWxsb3cg
dXMgdG8gcmVtb3ZlIGVsZW1lbnQgZHVyaW5nIGl0ZXJhdGlvbi4KKyAgICBhdXRvIGl0ZXJhdG9y
ID0gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuYmVnaW4oKTsKKyAgICB3aGlsZSAoaXRl
cmF0b3IgIT0gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMuZW5kKCkpIHsKKyAgICAgICAg
SlNNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGggPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGl0
ZXJhdG9yLT5nZXQoKSktPm1vZHVsZUdyYXBoKCk7CisgICAgICAgIGlmICghbW9kdWxlR3JhcGgt
PmVycm9yT2NjdXJyZWQoKSAmJiAhbW9kdWxlR3JhcGgtPmlzTG9hZGVkKCkpCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgYXV0byBwcmV2aW91cyA9IGl0ZXJhdG9yOworICAgICAgICArK2l0
ZXJhdG9yOworICAgICAgICBtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbi5hcHBl
bmQoKnByZXZpb3VzKTsKKyAgICAgICAgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHMucmVt
b3ZlKHByZXZpb3VzKTsKKyAgICB9CisgICAgaWYgKCFtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9F
eGVjdXRlU29vbi5pc0VtcHR5KCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwor
fQorCiB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCgpCiB7CiAgICAgUmVmPERvY3VtZW50
PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwpAQCAtMTE5LDYgKzE1NiwyMCBAQCB2b2lkIFNjcmlwdFJ1
bm5lcjo6dGltZXJGaXJlZCgpCiAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxl
bWVudC5nZXQoKSktPmV4ZWN1dGUoY2FjaGVkU2NyaXB0KTsKICAgICAgICAgbV9kb2N1bWVudC5k
ZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgfQorCisgICAgVmVjdG9yPFJlZlB0
cjxFbGVtZW50Pj4gbW9kdWxlU2NyaXB0RWxlbWVudHM7CisgICAgbW9kdWxlU2NyaXB0RWxlbWVu
dHMuc3dhcChtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbik7CisKKyAgICBmb3Ig
KFJlZlB0cjxFbGVtZW50PiYgcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnQgOiBtb2R1bGVTY3Jp
cHRFbGVtZW50cykgeworICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudDsKKyAgICAgICAg
cGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnQuc3dhcChlbGVtZW50KTsKKyAgICAgICAgQVNTRVJU
KGVsZW1lbnQpOworICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKKyAgICAgICAgaWYgKCFlbGVtZW50KQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5n
ZXQoKSktPm1vZHVsZUdyYXBoKCktPmV2YWx1YXRlKCk7CisgICAgICAgIG1fZG9jdW1lbnQuZGVj
cmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdFJ1bm5lci5oCmluZGV4IDhjZDMzMmE1NzM0YzFjYjkyZjJhNWZmNWZjNGNjYTE1OGZlM2Jj
NDEuLjgyY2Y1ZTdiM2Y0Njk3ODEyYTZmOGJlYjgxMzliMTZlNTBmNjIwZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0UnVubmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTM2LDYgKzM3LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBEb2N1bWVudDsKK2Ns
YXNzIEVsZW1lbnQ7CitjbGFzcyBKU01vZHVsZUdyYXBoOwogY2xhc3MgUGVuZGluZ1NjcmlwdDsK
IGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiAKQEAgLTQ3LDExICs1MCwxNCBAQCBjbGFzcyBTY3JpcHRS
dW5uZXIgewogCiAgICAgZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhFQ1VUSU9OLCBJTl9P
UkRFUl9FWEVDVVRJT04gfTsKICAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlw
dEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+LCBFeGVjdXRpb25U
eXBlKTsKLSAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2Ny
aXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVy
LmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1wdHkoKTsgfQorICAgIHZv
aWQgcXVldWVKU01vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBKU01vZHVs
ZUdyYXBoJik7CisgICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFt
X3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5P
cmRlci5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5KCkgfHwgIW1f
bW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5n
TW9kdWxlU2NyaXB0RWxlbWVudHMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAg
ICAgdm9pZCByZXN1bWUoKTsKICAgICB2b2lkIG5vdGlmeVNjcmlwdFJlYWR5KFNjcmlwdEVsZW1l
bnQqLCBFeGVjdXRpb25UeXBlKTsKIAorICAgIHZvaWQgbm90aWZ5SlNNb2R1bGVHcmFwaFJlYWR5
KFNjcmlwdEVsZW1lbnQqKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHRpbWVyRmlyZWQoKTsKIApA
QCAtNTksNiArNjUsOCBAQCBjbGFzcyBTY3JpcHRSdW5uZXIgewogICAgIFZlY3RvcjxQZW5kaW5n
U2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyOwogICAgIFZlY3RvcjxQZW5kaW5nU2Ny
aXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhlY3V0
ZS1hcy1zb29uLWFzLXBvc3NpYmxlCiAgICAgSGFzaE1hcDxTY3JpcHRFbGVtZW50KiwgUGVuZGlu
Z1NjcmlwdD4gbV9wZW5kaW5nQXN5bmNTY3JpcHRzOworICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVu
dD4+IG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uOworICAgIExpc3RIYXNoU2V0
PFJlZlB0cjxFbGVtZW50Pj4gbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudHM7CiAgICAgVGlt
ZXIgbV90aW1lcjsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0YTBmNTRjMjJhYTFhNDM3N2RiZjdkYThkODE3YzA3
YmRlZDU2ZTg1Li4yYTg0NGNlZTdjMDZlYWNiMDNmNmZmMmNlZGFjOWQyZjAwYTIyZmVjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjkgQEAKKzIwMTYtMDgtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGludG8g
V2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVy
cm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJy
b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1v
bmVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVy
cm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFn
YXRlZC10by1vbmVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFtaWMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5
bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9k
dWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgt
c3JjLWFuZC1pbXBvcnQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3Qt
Zm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9y
LWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3It
dGhyb3cuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRl
ZC10by1vbmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qczogQWRkZWQuCisgICAgICAgICoganMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanM6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1v
cmRlci1taXhlZC1jb2NvYS5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qczogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1p
Yy5qczogQWRkZWQuCisgICAgICAgIChleHBvcnQuZGVmYXVsdC5Db2NvYS5wcm90b3R5cGUudGFz
dGUpOgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EpOgorICAgICAgICAqIGpzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZXhw
b3J0LmRlZmF1bHQuQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKGV4cG9ydC5kZWZh
dWx0LkNvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2
ZW50LXdpdGgtc3JjLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3It
ZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAo
Q29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKENvY29hKToKKyAgICAgICAgKiBqcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qczogQWRkZWQuCisgICAgICAgICog
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qczogQWRkZWQuCisg
ICAgICAgIChDb2NvYS5wcm90b3R5cGUudGFzdGUpOgorICAgICAgICAoQ29jb2EpOgorICAgICAg
ICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpz
OiBBZGRlZC4KKwogMjAxNi0wOC0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIExvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucyBzaG91bGQgcmV0dXJuIGEgRnJvemVuQXJy
YXk8VVNWU3RyaW5nPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTZlMWIwNTIwOGM5NjNjZDgzMDMx
YTI5ZGJiYmU0OWNiYTZhNDMwYS4uYTI1MzI1YzgyN2ExM2ZkY2I3OWUzYTUwYjExNzNiYzQxZWE0
YmJjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDg0LDMgKzEwODQsMjEgQEAgd2Via2l0Lm9y
Zy9iLzE1OTc1NSBmYXN0L3RleHQvZW1vamktZ2VuZGVyLWZlMGYtOS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTU5NzU1IGZhc3QvdGV4dC9lbW9qaS1nZW5kZXIuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTYwMDE3IGpzL3JlZ3Jlc3Mt
MTM5NTQ4Lmh0bWwgWyBTbG93IF0KKworIyBFUzYgTW9kdWxlcyBhcmUgbm90IHlldCBlbmFibGVk
IGJ5IGRlZmF1bHQ6IEVOQUJMRShFUzZfTU9EVUxFUykKKyMganMvZG9tL21vZHVsZS1leGVjdXRp
b24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8t
b25lcnJvci5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtaW5s
aW5lLWR5bmFtaWMuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUu
aHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbCBb
IFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbCBbIFNraXAgXQorIyBqcy9k
b20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHlu
YW1pYy5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtbm90
LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbCBbIFNraXAgXQorIyBq
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1sIFsgU2tpcCBd
CisjIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwgWyBTa2lwIF0KKyMg
anMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUt
c3JjLXNpbXBsZS5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9y
ZWxvYWQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3Bh
Z2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFn
YXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmRiMjc1YTJmYjgzNDg5
NjRmYmU4ZGViODI1NTNiNGI5ZGI5YTUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hv
dWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGRlcGVuZGVudCBt
b2R1bGUgdGhyb3cgYW4gZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyB0aGUgZGVwZW5kZW50IG1vZHVs
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lk
ZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbCBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRl
bnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNzdiNWRkNzY0ZGJlMjQzNDIzZDFjMzhlMzc0Y2MwZmRkYzI0MzcxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRl
cGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCkBAIC0w
LDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCdUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgZGVwZW5kZW50IG1v
ZHVsZSB0aHJvdyBhbiBlcnJvci4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5j
aHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBp
cyBub3QgZXhlY3V0ZWQgeWV0LicpOword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4K
K2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVu
ZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcyIKK3Rlc3RGYWls
ZWQoImV4ZWN1dGVkIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9w
YWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTVkZjcwMjhmMzU0OTM2NjkyOTIyZWZlNjFhMmRmYmE1ZjFmMDkz
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBp
bmxpbmVkIG1vZHVsZSB0aHJvd3MgYW4gZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyB0aGUgbW9kdWxl
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3Vs
ZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNDQ2MmYzN2VkODE3MzA2MWY3Zjk5NTM2YzQyZDI5OTVjMjUyNzI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3It
c2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHdpbmRvdy5v
bmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgaW5saW5lZCBtb2R1bGUgdGhyb3dzIGFuIGVy
cm9yLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuJyk7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uICgpIHsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorZGVidWcoJ0V4ZWN1dGlu
ZyB0aGUgbW9kdWxlLicpOwordGhyb3cgbmV3IEVycm9yKCJtb2R1bGUgaXMgZXhlY3V0ZWQuIik7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZmZmRmMzM5NzU3YTRhMzc5NjRlODg5YWVjNjlhZmNjNTk5YWI3OGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1p
bmxpbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlv
biBvcmRlciBiZXR3ZWVuIGlubGluZWQgbW9kdWxlIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1MgY291bnQrKyBp
cyAwCitQQVNTIGNvdW50KysgaXMgMQorUEFTUyBjb3VudCsrIGlzIDIKK1BBU1MgY291bnQrKyBp
cyAzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5s
aW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxp
bmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NTI1ZTc2OTA4Y2ZiNmZlYTAxMDdmNGRhYWRkMWQyOTMxYmYz
Y2U2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRp
b24tb3JkZXItaW5saW5lLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBi
ZXR3ZWVuIGlubGluZWQgbW9kdWxlIHRhZ3MuJyk7Cit3aW5kb3cuY291bnQgPSAwOworLy8gTW9k
dWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitzaG91bGRC
ZSgiY291bnQrKyIsICIwIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3No
b3VsZEJlKCJjb3VudCsrIiwgIjEiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUi
Pgorc2hvdWxkQmUoImNvdW50KysiLCAiMiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1v
ZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIsICIzIik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYzN2Y1MjRmNTMxOTA1ZDhhNTNmNDRhMzNhYjZmZmI0MDAxMjEwMzAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJl
dHdlZW4gbWl4ZWQgdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1dlIGtl
ZXAgdGhlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIG1vZHVsZXMuCitNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4KK1BBU1MgY291bnQrKyBpcyAwCitQQVNTIGNvdW50KysgaXMgMQorUEFTUyBj
b3VudCsrIGlzIDIKK1BBU1MgY291bnQrKyBpcyAzCitQQVNTIGNvdW50KysgaXMgNAorUEFTUyBj
b3VudCsrIGlzIDUKK1BBU1MgY291bnQrKyBpcyA2CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE5MWQzMDNlZGQ3
NTc3MzgxMjhkZDlkMTViYjQwYzdlNzZjMmNkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwKQEAgLTAsMCArMSwy
NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qg
bW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIG1peGVkIHRhZ3MuJyk7CitkZWJ1ZygnV2Ug
a2VlcCB0aGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbW9kdWxlcy4nKTsKK3dpbmRvdy5jb3Vu
dCA9IDA7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQg
eWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJzY3JpcHQtdGVz
dHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIsICI0Iik7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0ibW9kdWxlIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLTIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUo
ImNvdW50KysiLCAiNiIpOworZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFt
aWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1p
Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM5MzlhYWYwYTUwMTVmNDc5Mzg2Y2QzMTk1YWE1
OWRkMTY5MDk3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
aW5saW5lLWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgaW5saW5l
ZCBtb2R1bGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVs
ZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQQVNTIHR5
cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2EudGFzdGUo
KSBpcyAiYXdlc29tZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1k
eW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYThjMGUyNTlhYjI5MWVmZmM0YmVlNzhhZTY1YzM0MTdjMTFkMDVlZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFt
aWMuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGVzdCBpbmxpbmVkIG1vZHVsZS4nKTsKKworLy8gTW9kdWxlIHdpbGwg
YmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
Jyk7CisoZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic2NyaXB0Iik7CisgICAgZWxlbWVudC50ZXh0Q29udGVudCA9IGAKKyAgICAgICAgaW1w
b3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcyI7
CisgICAgICAgIHZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCisgICAgICAgIGRlYnVnKCJNb2R1
bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5lZCIp
OworCisgICAgICAgIHdpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIiwgImF3ZXNv
bWUiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgYDsKKyAgICBlbGVtZW50LnR5cGUg
PSAibW9kdWxlIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworfSAo
KSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjOTM5
YWFmMGE1MDE1ZjQ3OTM4NmNkMzE5NWFhNTlkZDE2OTA5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1Rlc3QgaW5saW5lZCBtb2R1bGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24g
aXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29h
IGlzICJ1bmRlZmluZWQiCitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQ
QVNTIGV4cG9ydGVkQ29jb2EudGFzdGUoKSBpcyAiYXdlc29tZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtaW5saW5lLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4YmNmMDYwZDFiZDY5NDViMDg5
MTZlYmExNTI5YTU1OGZlNmIyZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBpbmxpbmVkIG1vZHVsZS4n
KTsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxl
Ij4KK2ltcG9ydCBDb2NvYSBmcm9tICIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBs
ZS5qcyI7Cit2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworZGVidWcoIk1vZHVsZSBleGVjdXRp
b24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5lZCIpOworCit3aW5kb3cuZXhwb3J0
ZWRDb2NvYSA9IGNvY29hOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRD
b2NvYSIsICJvYmplY3QiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2NvYS50
YXN0ZSgpIiwgImF3ZXNvbWUiKTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZl
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODYyNjY4MDJkYTU3Yzc1OGNlM2U0YTJmMzFkNzg5MGQw
ZTViN2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IG1vZHVsZSBleGVjdXRp
b24gb3JkZXIgYmV0d2VlbiB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgYW4gaW5saW5lZCBtb2R1bGUu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNy
Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThhMmY5Yjk5NjE2ZmY0NzBhZWUyYTQ1ZTcyYmJk
YTZlZmFjZDQwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bG9hZC1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBz
Y3JpcHQub25sb2FkIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBs
b2FkcyBhbmQgZXhlY3V0ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1
bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBhIG1vZHVsZSB3aXRoIHNyYyBhdHRy
aWJ1dGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgt
c3JjLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40OTRhNGEzMDcwYTk2ZTZkYWNiZDhiNzQ2YTc3YzA1N2E0MmM1NmE1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50
LXdpdGgtc3JjLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0Lm9ubG9hZCB3aWxsIGJlIGZpcmVkIHdo
ZW4gdGhlIG1vZHVsZSB0YWcgd2l0aCBzcmMgbG9hZHMgYW5kIGV4ZWN1dGVzLicpOworLy8gTW9k
dWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgpIiBzcmM9InNj
cmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQt
ZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFiYjhjODA5ZjJkNDVjZDNmMzE3ODlhZmUyZGY3YjMwZGNlMWY0NWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gdGFncy4nKTsKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3QoKSI+CitkZWJ1
ZygnRXhlY3V0aW5nIGFuIGlubGluZWQgbW9kdWxlLicpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1t
b2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQt
ZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFhYjQ5ZDE0OTc2
MjRkZjIyZTAzNDc5N2IzOWFhOGVjODY5NGVjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1w
b2ludC1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACisyIGRpZmZlcmVudCBt
b2R1bGUgdGFnIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBmcm9tIGEgZHlu
YW1pY2FsbHkgZ2VuZXJhdGVkIHRhZworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
Q3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNo
b3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLgorTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
CitFeGVjdXRpbmcgbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnkt
cG9pbnQuanMuCitFeGVjdXRpbmcgdGhlIG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHlu
YW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWQ1MWUy
YjZjZWE4NjE3YmFjZjBjNDBlMzM3ZTkwOWExZDMxYTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVu
dHJ5LXBvaW50LWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxs
IGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUgZnJvbSBhIGR5bmFtaWNhbGx5IGdlbmVy
YXRlZCB0YWcnKTsKK2RlYnVnKCdDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhl
IHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuJyk7CisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxl
LWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMiCitkZWJ1Zygn
RXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cit2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNjcmlwdCIpOworZWxlbWVudC50eXBlID0gIm1vZHVsZSI7CitlbGVtZW50LmlubmVy
VGV4dCA9ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJl
bnQtZW50cnktcG9pbnQuanMiOworZWxlbWVudC5vbmVycm9yID0gZmluaXNoSlNUZXN0KCk7Citk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1t
b2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBv
aW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGY5OGZjY2I2ZmFmYTA2NDQ3ZTMwMzJlZjA2
ZDk4MjAyN2YyNTFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACisyIGRpZmZlcmVudCBtb2R1bGUgdGFnIHdpbGwgYXR0ZW1wdCB0
byBsb2FkIHRoZSBzYW1lIG1vZHVsZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
Q3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNo
b3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLgorTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
CitFeGVjdXRpbmcgbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnkt
cG9pbnQuanMuCitFeGVjdXRpbmcgdGhlIG1vZHVsZS4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRp
ZmZlcmVudC1lbnRyeS1wb2ludC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjA2ZDRlMGI2M2NkYzAxMjc0MTMzYmVmZDkzODQ0MjU1NTU4YjE4NwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZl
cmVudC1lbnRyeS1wb2ludC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCcyIGRpZmZlcmVudCBtb2R1bGUgdGFnIHdpbGwg
YXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZScpOworZGVidWcoJ0N1cnJlbnRseSwgdGhp
cyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQg
aW4gdGhlIGZ1dHVyZS4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91
c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBv
cnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKKzwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0KCkiPgoraW1wb3J0
ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQuanMiCitkZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzhi
YTNjMmU3OTk3N2UyYzlmNzkzNDgwOTczNmZkOTgzN2Q3MmY5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyOiBTeW50YXhFcnJv
cjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAibm90LWZvdW5kLmpzIi4gRXhwZWN0ZWQgJ2Zy
b20nIGJlZm9yZSBpbXBvcnRlZCBtb2R1bGUgbmFtZS4KK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2ls
bCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhlIGltcG9ydCBkZWNs
YXJhdGlvbiBpbiB0aGUgaW5saW5lZCBtb2R1bGUgaXMgbm90IGZvdW5kLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMt
YW5kLWltcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NDg3ODc1MDFhMTI5Mjc2ODEwOTE4NzkwN2FmYzQ3ZGZiNmQyODkzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBz
Y3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBi
eSB0aGUgaW1wb3J0IGRlY2xhcmF0aW9uIGluIHRoZSBkZXBlbmRlbnQgbW9kdWxlIGlzIG5vdCBm
b3VuZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZWYzOTg2ODVhZTA1YTExY2U4YTFlMGIyMjA5OGU5ODUzMWQ2MjkxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZl
bnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmVycm9yIHdp
bGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVj
bGFyYXRpb24gaW4gdGhlIGRlcGVuZGVudCBtb2R1bGUgaXMgbm90IGZvdW5kLicpOworLy8gTW9k
dWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlv
biBvbkVycm9yKCkKK3sKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlz
aEpTVGVzdCgpCit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InNjcmlw
dC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQu
anMiIG9uZXJyb3I9Im9uRXJyb3IoKSI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13
aXRoLXNyYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC13aXRoLXNyYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgwZDE1ZGZl
NmQwOWJmYzZiODU4M2E0OGRlYzZkY2IxYjViMTQxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmly
ZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5ICJzcmMiIGlzIG5vdCBmb3VuZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LXdpdGgtc3JjLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJv
ci1ldmVudC13aXRoLXNyYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YTQ3ZjYxMDY5YWZlY2JjYjM4YjBh
OTU3NTYyNWNlODJkZjQ4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1sCkBAIC0wLDAgKzEsMjEg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNj
cmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5
ICJzcmMiIGlzIG5vdCBmb3VuZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5j
aHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBp
cyBub3QgZXhlY3V0ZWQgeWV0LicpOworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJub3QtZm91bmQuanMiIG9uZXJyb3I9Im9uRXJyb3Io
KSI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2I1OTRj
NjQ2ODM4ZTRjMzVlMzc1NjFmNmRjZTNkODM3NzBiNzcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbApAQCAtMCww
ICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNp
ZmllZCBieSB0aGUgaW1wb3J0IGRlY2xhcmF0aW9uIGluIHRoZSBpbmxpbmVkIG1vZHVsZSBpcyBu
b3QgZm91bmQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4K
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1
dGVkIHlldC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJtb2R1bGUiIG9uZXJyb3I9Im9uRXJyb3IoKSI+CitpbXBvcnQgZnJvbSAibm90LWZvdW5kLmpz
IjsKK3Rlc3RGYWlsZWQoJ2V4ZWN1dGVkJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2Q4YjAwNjI0OTBlYzcyMjk1Y2ZmNTA2MWEwODM5ZTQwMDIwY2Q4YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0
cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUg
ZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBl
b2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkg
aXMgIm5pY2UiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM4NGZmNDI2NGY5ODFmZTk2NDllZDNhNzIxYjFjZmE0ZmE1ZTkxY2UKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwKQEAgLTAs
MCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
J1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLicpOworCisvLyBNb2R1bGUgd2lsbCBi
ZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzY3JpcHQnKTsKKyAgICBlbGVtZW50LnR5cGUgPSAnbW9kdWxlJzsKKyAgICBlbGVtZW50
LnNyYyA9ICcuL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMnOworICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cit9KCkpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1w
bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDhiMDA2MjQ5MGVjNzIyOTVjZmY1MDYxYTA4MzllNDAw
MjBjZDhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMt
c2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSB3aXRoICJz
cmMiIGF0dHJpYnV0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBp
cyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUg
bW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BB
U1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50
YXN0ZSgpIGlzICJuaWNlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNp
bXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2Y3M2IwYzU0YTI1YTRmNzZjMTRhM2I1ZGMzMTczZmU4OTNjYjNjZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5odG1sCkBA
IC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0IG1vZHVsZSB3aXRoICJzcmMiIGF0dHJpYnV0ZS4nKTsKKworLy8gTW9kdWxlIHdp
bGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5
ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4vc2NyaXB0LXRl
c3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3Jl
bG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4ZDk3MDhkYjNlMDVjNGIwMTAzYmU3ZGNl
YjBjMDA3MTE3NWM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rl
c3Qgc2NyaXB0LmJlZm9yZWxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdp
dGggc3JjIGlzIHByZXBhcmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13
aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYmZmMTY1M2QwNmMwNmUxZDc0
MTc5ZDAxMTAwMzZlMTQ5ZDg2OTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0LmJl
Zm9yZWxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGlzIHBy
ZXBhcmVkLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRl
ZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmJlZm9yZWxvYWQ9
ImZpbmlzaEpTVGVzdCgpIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9y
ZWxvYWQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1k
ZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanMg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3It
aW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10
aHJvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNmMxNWFmMjE0MmI0ODAyNjAyZWFkMDM3MDBmOGJiZTAxYmMy
YmVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1w
cm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanMKQEAgLTAsMCArMSwyIEBACitkZWJ1ZygiRXhl
Y3V0aW5nIHRoZSBkZXBlbmRlbnQgbW9kdWxlIik7Cit0aHJvdyBuZXcgRXJyb3IoIm91dCIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0
aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRv
LW9uZXJyb3IuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQt
dG8tb25lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmM3Y2E0NzliMjU4ODliMDBjYTI0Y2Q1YmJlMzMx
ZGFhNjVmNzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3Vs
ZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMKQEAgLTAsMCArMSwyIEBACitpbXBvcnQgIm1v
ZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcyIKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRp
b24tb3JkZXItbWl4ZWQtMi5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzM2I5ZDM1MmFlYzU3
YjA2MWRkYmUwMGI3Y2Y5NGVhNTc0YWVjNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qcwpA
QCAtMCwwICsxIEBACitzaG91bGRCZSgiY291bnQrKyIsICI1Iik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQt
Y2FwcHVjY2luby5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMTQ2ZmQ3NjZl
NTVhMDJhZTc4YmFmOWRkNjMzOThlYjg1YTg5MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY2Fw
cHVjY2luby5qcwpAQCAtMCwwICsxLDMgQEAKK2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1tYXRjaGEuanMiCisKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjIiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNThkNzMyNDNmZWYz
MGEwYjQ5NDlkYmE3ZmJmODUzNGVlYmE5ZjczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29h
LmpzCkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
LW1hdGNoYS5qcyI7CisKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjEiKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC1tYXRjaGEuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZTE1ZDdjZjBjZmY0ZWFh
MWEwYjVhMWVlODNkY2NlMzI0YTI1ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpz
CkBAIC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjAiKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1v
cmRlci1taXhlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDM4NmZiYjg2ODFjYmY3ZTU5YzQ3Mzc2MzdlODdi
ZTM4Y2ZmNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzCkBAIC0wLDAgKzEsNCBAQAoraW1w
b3J0ICIuL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanMiCitpbXBvcnQgIi4v
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzIgorCitzaG91bGRCZSgi
Y291bnQrKyIsICIzIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MzYwYTdiZmU3ZTA1
YTBjYjI1Mzg0MTM2N2U3MWRjMWU5M2I1YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcwpAQCAtMCwwICsx
LDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAg
ICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcyBiL0xheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjQzNjBhN2JmZTdlMDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUu
anMKQEAgLTAsMCArMSw1IEBACitleHBvcnQgZGVmYXVsdCBjbGFzcyBDb2NvYSB7CisgICAgdGFz
dGUoKSB7CisgICAgICAgIHJldHVybiAiYXdlc29tZSI7CisgICAgfQorfTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1z
cmMuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50
LXdpdGgtc3JjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiODcwMjkwZDNlYzdlMDgwYzA1ZjlmNjY2ODQ0Y2Qw
Njc1MjlmZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzCkBAIC0wLDAgKzEgQEAKK2RlYnVnKCdF
eGVjdXRpbmcgYSBtb2R1bGUgd2l0aCBzcmMgYXR0cmlidXRlLicpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDVhZDc3ZjgwMDgwNDM4MWJmNGYxZWFkYjUxN2Y1NjBmMGM0ZWI2NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxv
YWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMKQEAgLTAsMCArMSBA
QAorZGVidWcoJ0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC5qcy4nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0
LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGMxYjQ3MTQ4MTM4
YTBlYzQ1MjJjMjI3MjMzYTNjNzQxMzM3MTI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRo
LXNyYy1hbmQtaW1wb3J0LmpzCkBAIC0wLDAgKzEgQEAKK2ltcG9ydCAibm90LWZvdW5kLmpzIgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5
bmFtaWMtY29jb2EuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1z
cmMtZHluYW1pYy1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5ZDQ2
MzkwNDUxMmIwZWNiNzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanMKQEAgLTAsMCArMSw3IEBACitj
bGFzcyBDb2NvYSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVybiAibmljZSI7CisgICAg
fQorfQorCitleHBvcnQgZGVmYXVsdCBDb2NvYTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUxYTdi
ZTZiNGYxMjkzYWY1OTY4NmZlM2U1NzgwMWQyZTA5NmMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzCkBAIC0w
LDAgKzEsMTAgQEAKK2ltcG9ydCBDb2NvYSBmcm9tICIuL21vZHVsZS1zcmMtZHluYW1pYy1jb2Nv
YS5qcyI7Cit2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworZGVidWcoIk1vZHVsZSBleGVjdXRp
b24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5lZCIpOworCit3aW5kb3cuZXhwb3J0
ZWRDb2NvYSA9IGNvY29hOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRD
b2NvYSIsICJvYmplY3QiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2NvYS50
YXN0ZSgpIiwgIm5pY2UiKTsKK2ZpbmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcyBiL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDc5NTkyZGM1MTNjZjI1OTg0MWZmOWQ0NjM5MDQ1MTJiMGVjYjc0NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1z
aW1wbGUtY29jb2EuanMKQEAgLTAsMCArMSw3IEBACitjbGFzcyBDb2NvYSB7CisgICAgdGFzdGUo
KSB7CisgICAgICAgIHJldHVybiAibmljZSI7CisgICAgfQorfQorCitleHBvcnQgZGVmYXVsdCBD
b2NvYTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXNyYy1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1z
cmMtc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkOWM3NzRmZDllN2E1YzlkMTg1OTI0MDQ0ZTdhMjc4
YWQ3MzM3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBDb2NvYSBm
cm9tICIuL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2Nv
YSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxl
IGVudmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAi
dW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAibmljZSIpOworZmluaXNoSlNU
ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYTM5MzgzNTYz
M2FlYzU1ZTVlNTk1NzI5ZGE2OTE5ZTljMzIwM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qcwpA
QCAtMCwwICsxIEBACit0ZXN0RmFpbGVkKCJleGVjdXRlZCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286558</attachid>
            <date>2016-08-20 23:17:09 -0700</date>
            <delta_ts>2016-08-25 21:01:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20160821151514.patch</filename>
            <type>text/plain</type>
            <size>148188</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YzQ4ZGM3N2ExYmIxZWQzNTlmZGM2ODVjZDI3MGZmZjY1OGE1MGFiLi5jMmE2NmUyN2M4YmNmZjg3
M2EwMTNkMjYzM2YxYjE5N2E1YjljZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxNi0wOC0yMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ1aWx0
aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qczoKKyAgICAgICAgKHJlcXVlc3RGZXRjaCk6Cisg
ICAgICAgIChyZXF1ZXN0VHJhbnNsYXRlKToKKyAgICAgICAgKHJlcXVlc3RJbnN0YW50aWF0ZSk6
CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyk6CisgICAgICAgIChyZXF1ZXN0
SW5zdGFudGlhdGVBbGwpOgorICAgICAgICAocmVxdWVzdExpbmspOgorICAgICAgICAobW9kdWxl
RXZhbHVhdGlvbik6CisgICAgICAgIChwcm92aWRlKToKKyAgICAgICAgKGxvYWRBbmRFdmFsdWF0
ZU1vZHVsZSk6CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcy4pOiBEZWxldGVk
LgorICAgICAgICAocmVxdWVzdFJlYWR5KTogRGVsZXRlZC4KKyAgICAgICAgKGxpbmspOiBEZWxl
dGVkLgorICAgICAgICAobG9hZE1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChsaW5rQW5kRXZh
bHVhdGVNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9i
YWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6bG9hZE1v
ZHVsZSk6CisgICAgICAgIChKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
cnVudGltZS9Db21wbGV0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoSlNDOjpK
U01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNN
b2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6
bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OnJl
c29sdmUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAo
SlNDOjpKU01vZHVsZUxvYWRlcjo6dHJhbnNsYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVM
b2FkZXI6Omluc3RhbnRpYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogcnVu
dGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJQcm90b3R5cGVSZXNvbHZlKToKKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyUHJvdG90eXBl
RmV0Y2gpOgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVUcmFuc2xhdGUpOgor
ICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZSk6CisgICAgICAg
IChKU0M6Om1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlKToKKyAgICAgICAgKiBydW50aW1l
L1N5bWJvbC5oOgorCiAyMDE2LTA4LTIwICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW90ZSBJbnNwZWN0b3I6IHNvbWUgbWV0aG9kcyBkb24ndCBuZWVkIHRvIGJl
IG1hcmtlZCB2aXJ0dWFsIGFueW1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MDllNDljMzY2ZmJmZTA0NjQ3
NWY3Y2JiZGM0OTU3OWMxNTg0MGUwLi5lMzU2NjQ2M2NkNzlmZmEzNmM3NTg4ZmZiYWFhN2ZmZGU5
OWNjOTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTggQEAKKzIwMTYtMDgtMjAgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW50ZWdyYXRl
IEVTNiBNb2R1bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdHM6IGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWlu
c2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRt
bAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVs
ZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVs
ZS1pbmxpbmUtZHluYW1pYy5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWlubGlu
ZS1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdp
dGgtc3JjLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1s
CisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZm
ZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9k
dWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbAorICAg
ICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMt
YW5kLWltcG9ydC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLW5v
dC1mb3VuZC1lcnJvci1ldmVudC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLXNy
Yy1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5o
dG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0
bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWFp
blRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01haW5U
aHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNNb2R1bGVGZXRjaGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU01v
ZHVsZUZldGNoZXI6OkpTTW9kdWxlRmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVs
ZUZldGNoZXI6On5KU01vZHVsZUZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVG
ZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVyOjpydW4p
OgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVGZXRjaGVyLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmguCisgICAgICAgIChXZWJDb3Jl
OjpKU01vZHVsZUZldGNoZXI6OmNhY2hlZFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNNb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFw
aDo6SlNNb2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpub3Rp
ZnlMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6bm90aWZ5RXJyb3Jl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpldmFsdWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpub3RpZnlFdmFsdWF0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2R1bGVHcmFwaDo6bG9hZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1
bGVHcmFwaC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVs
ZUxvYWRlci5oLgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6ZWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjptb2R1bGVLZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2R1bGVHcmFwaDo6d2Vha0VsZW1lbnRQdHIpOgorICAgICAgICAoV2ViQ29yZTo6
SlNNb2R1bGVHcmFwaDo6ZXJyb3JPY2N1cnJlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVs
ZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUxvYWRl
cjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVy
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29u
dHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmluaXRKU01vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmV4ZWN1dGVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6Om1vZHVsZUxvYWRlckFs
cmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0RWxlbWVudDo6bG9hZE1vZHVsZSk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om1vZHVsZUdyYXBoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnNjcmlwdFR5cGUpOgorICAgICAgICAqIGRvbS9T
Y3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjp+U2NyaXB0
UnVubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6cXVldWVKU01vZHVsZUdy
YXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5
SlNNb2R1bGVHcmFwaFJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGlt
ZXJGaXJlZCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6CisKIDIwMTYtMDgtMjAgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVsZUxvYWRlclByb3RvdHlw
ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Nb2R1bGVMb2FkZXJQcm90b3R5
cGUuanMKaW5kZXggNmEzYmM4MjQzMGVmMThhYmFlNjM0ZDBmMTJlNjIwZmJjZTA5YjMzMi4uODc2
NDM0MDhkZmI3ZGYwNDljOTc1NGUxNjhhMzM5YzE5ZmM5YjhhNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qcworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzCkBA
IC0yMjMsNyArMjIzLDcgQEAgZnVuY3Rpb24gaW5zdGFudGlhdGlvbihyZXN1bHQsIHNvdXJjZSwg
ZW50cnkpCiAKIC8vIExvYWRlci4KIAotZnVuY3Rpb24gcmVxdWVzdEZldGNoKGtleSkKK2Z1bmN0
aW9uIHJlcXVlc3RGZXRjaChrZXksIGluaXRpYXRvcikKIHsKICAgICAvLyBodHRwczovL3doYXR3
Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1ZXN0LWZldGNoCiAKQEAgLTIzOSwyMyArMjM5LDIxIEBA
IGZ1bmN0aW9uIHJlcXVlc3RGZXRjaChrZXkpCiAgICAgaWYgKGVudHJ5LmZldGNoKQogICAgICAg
ICByZXR1cm4gZW50cnkuZmV0Y2g7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKLQogICAgIC8v
IEhvb2sgcG9pbnQuCiAgICAgLy8gMi4gTG9hZGVyLmZldGNoCiAgICAgLy8gICAgIGh0dHBzOi8v
d2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXItZmV0Y2gKICAgICAvLyAgICAgVGFrZSB0
aGUga2V5IGFuZCBmZXRjaCB0aGUgcmVzb3VyY2UgYWN0dWFsbHkuCiAgICAgLy8gICAgIEZvciBl
eGFtcGxlLCBKYXZhU2NyaXB0Q29yZSBzaGVsbCBjYW4gcHJvdmlkZSB0aGUgaG9vayBmZXRjaGlu
ZyB0aGUgcmVzb3VyY2UKICAgICAvLyAgICAgZnJvbSB0aGUgbG9jYWwgZmlsZSBzeXN0ZW0uCi0g
ICAgdmFyIGZldGNoUHJvbWlzZSA9IHRoaXMuZmV0Y2goa2V5KS50aGVuKGZ1bmN0aW9uIChwYXls
b2FkKSB7Ci0gICAgICAgIGxvYWRlci5zZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlVHJhbnNs
YXRlKTsKKyAgICB2YXIgZmV0Y2hQcm9taXNlID0gdGhpcy5mZXRjaChrZXksIGluaXRpYXRvciku
dGhlbigocGF5bG9hZCkgPT4geworICAgICAgICB0aGlzLnNldFN0YXRlVG9NYXgoZW50cnksIEBN
b2R1bGVUcmFuc2xhdGUpOwogICAgICAgICByZXR1cm4gcGF5bG9hZDsKICAgICB9KTsKICAgICBl
bnRyeS5mZXRjaCA9IGZldGNoUHJvbWlzZTsKICAgICByZXR1cm4gZmV0Y2hQcm9taXNlOwogfQog
Ci1mdW5jdGlvbiByZXF1ZXN0VHJhbnNsYXRlKGtleSkKK2Z1bmN0aW9uIHJlcXVlc3RUcmFuc2xh
dGUoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xv
YWRlci8jcmVxdWVzdC10cmFuc2xhdGUKIApAQCAtMjcxLDE1ICsyNjksMTQgQEAgZnVuY3Rpb24g
cmVxdWVzdFRyYW5zbGF0ZShrZXkpCiAgICAgaWYgKGVudHJ5LnRyYW5zbGF0ZSkKICAgICAgICAg
cmV0dXJuIGVudHJ5LnRyYW5zbGF0ZTsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHZh
ciB0cmFuc2xhdGVQcm9taXNlID0gdGhpcy5yZXF1ZXN0RmV0Y2goa2V5KS50aGVuKGZ1bmN0aW9u
IChwYXlsb2FkKSB7CisgICAgdmFyIHRyYW5zbGF0ZVByb21pc2UgPSB0aGlzLnJlcXVlc3RGZXRj
aChrZXksIGluaXRpYXRvcikudGhlbigocGF5bG9hZCkgPT4gewogICAgICAgICAvLyBIb29rIHBv
aW50LgogICAgICAgICAvLyAzLiBMb2FkZXIudHJhbnNsYXRlCiAgICAgICAgIC8vICAgICBodHRw
czovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNicm93c2VyLXRyYW5zbGF0ZQogICAgICAgICAv
LyAgICAgVGFrZSB0aGUga2V5IGFuZCB0aGUgZmV0Y2hlZCBzb3VyY2UgY29kZSBhbmQgdHJhbnNs
YXRlIGl0IHRvIHRoZSBFUzYgc291cmNlIGNvZGUuCiAgICAgICAgIC8vICAgICBUeXBpY2FsbHkg
aXQgaXMgdXNlZCBieSB0aGUgdHJhbnNwaWxlcnMuCi0gICAgICAgIHJldHVybiBsb2FkZXIudHJh
bnNsYXRlKGtleSwgcGF5bG9hZCkudGhlbihmdW5jdGlvbiAoc291cmNlKSB7Ci0gICAgICAgICAg
ICBsb2FkZXIuc2V0U3RhdGVUb01heChlbnRyeSwgQE1vZHVsZUluc3RhbnRpYXRlKTsKKyAgICAg
ICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlKGtleSwgcGF5bG9hZCwgaW5pdGlhdG9yKS50aGVuKChz
b3VyY2UpID0+IHsKKyAgICAgICAgICAgIHRoaXMuc2V0U3RhdGVUb01heChlbnRyeSwgQE1vZHVs
ZUluc3RhbnRpYXRlKTsKICAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CiAgICAgICAgIH0pOwog
ICAgIH0pOwpAQCAtMjg3LDcgKzI4NCw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RUcmFuc2xhdGUoa2V5
KQogICAgIHJldHVybiB0cmFuc2xhdGVQcm9taXNlOwogfQogCi1mdW5jdGlvbiByZXF1ZXN0SW5z
dGFudGlhdGUoa2V5KQorZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtleSwgaW5pdGlhdG9y
KQogewogICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtaW5z
dGFudGlhdGUKIApAQCAtMzAzLDggKzMwMCw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0
ZShrZXkpCiAgICAgaWYgKGVudHJ5Lmluc3RhbnRpYXRlKQogICAgICAgICByZXR1cm4gZW50cnku
aW5zdGFudGlhdGU7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKLSAgICB2YXIgaW5zdGFudGlh
dGVQcm9taXNlID0gdGhpcy5yZXF1ZXN0VHJhbnNsYXRlKGtleSkudGhlbihmdW5jdGlvbiAoc291
cmNlKSB7CisgICAgdmFyIGluc3RhbnRpYXRlUHJvbWlzZSA9IHRoaXMucmVxdWVzdFRyYW5zbGF0
ZShrZXksIGluaXRpYXRvcikudGhlbigoc291cmNlKSA9PiB7CiAgICAgICAgIC8vIEhvb2sgcG9p
bnQuCiAgICAgICAgIC8vIDQuIExvYWRlci5pbnN0YW50aWF0ZQogICAgICAgICAvLyAgICAgaHR0
cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jYnJvd3Nlci1pbnN0YW50aWF0ZQpAQCAtMzEy
LDggKzMwOCw4IEBAIGZ1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZShrZXkpCiAgICAgICAgIC8v
ICAgICBieSBwYXJzaW5nIHRoZSBtb2R1bGUgc291cmNlIGNvZGUuCiAgICAgICAgIC8vICAgICBJ
dCBoYXMgdGhlIGNoYW5jZSB0byBwcm92aWRlIHRoZSBvcHRpb25hbCBtb2R1bGUgaW5zdGFuY2Ug
dGhhdCBpcyBkaWZmZXJlbnQgZnJvbQogICAgICAgICAvLyAgICAgdGhlIG9yZGluYXJ5IG9uZS4K
LSAgICAgICAgcmV0dXJuIGxvYWRlci5pbnN0YW50aWF0ZShrZXksIHNvdXJjZSkudGhlbihmdW5j
dGlvbiAob3B0aW9uYWxJbnN0YW5jZSkgewotICAgICAgICAgICAgbG9hZGVyLmNvbW1pdEluc3Rh
bnRpYXRlZChlbnRyeSwgb3B0aW9uYWxJbnN0YW5jZSwgc291cmNlKTsKKyAgICAgICAgcmV0dXJu
IHRoaXMuaW5zdGFudGlhdGUoa2V5LCBzb3VyY2UsIGluaXRpYXRvcikudGhlbigob3B0aW9uYWxJ
bnN0YW5jZSkgPT4geworICAgICAgICAgICAgdGhpcy5jb21taXRJbnN0YW50aWF0ZWQoZW50cnks
IG9wdGlvbmFsSW5zdGFuY2UsIHNvdXJjZSk7CiAgICAgICAgICAgICByZXR1cm4gZW50cnk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzIxLDcgKzMxNyw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RJ
bnN0YW50aWF0ZShrZXkpCiAgICAgcmV0dXJuIGluc3RhbnRpYXRlUHJvbWlzZTsKIH0KIAotZnVu
Y3Rpb24gcmVxdWVzdFJlc29sdmVEZXBlbmRlbmNpZXMoa2V5KQorZnVuY3Rpb24gcmVxdWVzdFJl
c29sdmVEZXBlbmRlbmNpZXMoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gRklYTUU6IEluIHRo
ZSBzcGVjLCBhZnRlciByZXF1ZXN0aW5nIGluc3RhbnRpYXRpb24sIHdlIHdpbGwgcmVzb2x2ZQog
ICAgIC8vIHRoZSBkZXBlbmRlbmNpZXMgd2l0aG91dCBhbnkgc3RhdHVzIGNoYW5nZS4gQXMgYSBy
ZXN1bHQsIHdoZW4gdGhlcmUKQEAgLTM0NSw4ICszNDEsNyBAQCBmdW5jdGlvbiByZXF1ZXN0UmVz
b2x2ZURlcGVuZGVuY2llcyhrZXkpCiAgICAgaWYgKGVudHJ5LnJlc29sdmVEZXBlbmRlbmNpZXMp
CiAgICAgICAgIHJldHVybiBlbnRyeS5yZXNvbHZlRGVwZW5kZW5jaWVzOwogCi0gICAgdmFyIGxv
YWRlciA9IHRoaXM7Ci0gICAgdmFyIHJlc29sdmVEZXBlbmRlbmNpZXNQcm9taXNlID0gdGhpcy5y
ZXF1ZXN0SW5zdGFudGlhdGUoa2V5KS50aGVuKGZ1bmN0aW9uIChlbnRyeSkgeworICAgIHZhciBy
ZXNvbHZlRGVwZW5kZW5jaWVzUHJvbWlzZSA9IHRoaXMucmVxdWVzdEluc3RhbnRpYXRlKGtleSwg
aW5pdGlhdG9yKS50aGVuKChlbnRyeSkgPT4gewogICAgICAgICB2YXIgZGVwTG9hZHMgPSBbXTsK
ICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IGVudHJ5LmRlcGVuZGVuY2llcy5sZW5n
dGg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICAgICAgbGV0IHBhaXIgPSBlbnRyeS5kZXBl
bmRlbmNpZXNbaV07CkBAIC0zNTYsOCArMzUxLDggQEAgZnVuY3Rpb24gcmVxdWVzdFJlc29sdmVE
ZXBlbmRlbmNpZXMoa2V5KQogICAgICAgICAgICAgLy8gICAgIGh0dHBzOi8vd2hhdHdnLmdpdGh1
Yi5pby9sb2FkZXIvI2Jyb3dzZXItcmVzb2x2ZQogICAgICAgICAgICAgLy8gICAgIFRha2UgdGhl
IG5hbWUgYW5kIHJlc29sdmUgaXQgdG8gdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVz
b3VyY2UgbG9jYXRpb24uCiAgICAgICAgICAgICAvLyAgICAgRm9yIGV4YW1wbGUsIHRha2UgdGhl
ICJqcXVlcnkiIGFuZCByZXR1cm4gdGhlIFVSTCBmb3IgdGhlIHJlc291cmNlLgotICAgICAgICAg
ICAgdmFyIHByb21pc2UgPSBsb2FkZXIucmVzb2x2ZShwYWlyLmtleSwga2V5KS50aGVuKGZ1bmN0
aW9uIChkZXBLZXkpIHsKLSAgICAgICAgICAgICAgICB2YXIgZGVwRW50cnkgPSBsb2FkZXIuZW5z
dXJlUmVnaXN0ZXJlZChkZXBLZXkpOworICAgICAgICAgICAgdmFyIHByb21pc2UgPSB0aGlzLnJl
c29sdmUocGFpci5rZXksIGtleSwgaW5pdGlhdG9yKS50aGVuKChkZXBLZXkpID0+IHsKKyAgICAg
ICAgICAgICAgICB2YXIgZGVwRW50cnkgPSB0aGlzLmVuc3VyZVJlZ2lzdGVyZWQoZGVwS2V5KTsK
IAogICAgICAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZSByZXNvbHZpbmcuIFRoZSBkZXBlbmRlbmNp
ZXMgb2YgdGhpcyBlbnRyeSBpcyBiZWluZyByZXNvbHZlZCBvciBhbHJlYWR5IHJlc29sdmVkLgog
ICAgICAgICAgICAgICAgIC8vIFN0b3AgdHJhY2luZyB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jaWVz
LgpAQCAtMzY5LDEzICszNjQsMTMgQEAgZnVuY3Rpb24gcmVxdWVzdFJlc29sdmVEZXBlbmRlbmNp
ZXMoa2V5KQogICAgICAgICAgICAgICAgIC8vIHJlamVjdGVkIGJ5IHRoZSBQcm9taXNlcyBydW50
aW1lLiBTaW5jZSBvbmx5IHdlIG5lZWQgaXMgdGhlIGluc3RhbnRpYXRlZCBtb2R1bGUsIGluc3Rl
YWQgb2Ygd2FpdGluZwogICAgICAgICAgICAgICAgIC8vIHRoZSBSZXNvbHZlRGVwZW5kZW5jaWVz
IGZvciB0aGlzIG1vZHVsZSwgd2UganVzdCB3YWl0IEluc3RhbnRpYXRlIGZvciB0aGlzLgogICAg
ICAgICAgICAgICAgIGlmIChkZXBFbnRyeS5yZXNvbHZlRGVwZW5kZW5jaWVzKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBkZXBFbnRyeS5pbnN0YW50aWF0ZS50aGVuKGZ1bmN0aW9uIChl
bnRyeSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVwRW50cnkuaW5zdGFudGlhdGUu
dGhlbigoZW50cnkpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHBhaXIudmFsdWUgPSBl
bnRyeS5tb2R1bGU7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAg
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
IHJldHVybiBsb2FkZXIucmVxdWVzdFJlc29sdmVEZXBlbmRlbmNpZXMoZGVwS2V5KS50aGVuKGZ1
bmN0aW9uIChlbnRyeSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RSZXNv
bHZlRGVwZW5kZW5jaWVzKGRlcEtleSwgaW5pdGlhdG9yKS50aGVuKChlbnRyeSkgPT4gewogICAg
ICAgICAgICAgICAgICAgICBwYWlyLnZhbHVlID0gZW50cnkubW9kdWxlOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgICAgICAgICAgfSk7CkBAIC0zODMsOCArMzc4
LDggQEAgZnVuY3Rpb24gcmVxdWVzdFJlc29sdmVEZXBlbmRlbmNpZXMoa2V5KQogICAgICAgICAg
ICAgQHB1dEJ5VmFsRGlyZWN0KGRlcExvYWRzLCBpLCBwcm9taXNlKTsKICAgICAgICAgfQogCi0g
ICAgICAgIHJldHVybiBASW50ZXJuYWxQcm9taXNlLmludGVybmFsQWxsKGRlcExvYWRzKS50aGVu
KGZ1bmN0aW9uIChtb2R1bGVzKSB7Ci0gICAgICAgICAgICBsb2FkZXIuc2V0U3RhdGVUb01heChl
bnRyeSwgQE1vZHVsZUxpbmspOworICAgICAgICByZXR1cm4gQEludGVybmFsUHJvbWlzZS5pbnRl
cm5hbEFsbChkZXBMb2FkcykudGhlbigobW9kdWxlcykgPT4geworICAgICAgICAgICAgdGhpcy5z
ZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlTGluayk7CiAgICAgICAgICAgICByZXR1cm4gZW50
cnk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMzkzLDE2ICszODgsMTYgQEAgZnVuY3Rpb24g
cmVxdWVzdFJlc29sdmVEZXBlbmRlbmNpZXMoa2V5KQogICAgIHJldHVybiByZXNvbHZlRGVwZW5k
ZW5jaWVzUHJvbWlzZTsKIH0KIAotZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlQWxsKGtleSkK
K2Z1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZUFsbChrZXksIGluaXRpYXRvcikKIHsKICAgICAv
LyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1ZXN0LWluc3RhbnRpYXRlLWFs
bAogCiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlc29sdmVE
ZXBlbmRlbmNpZXMoa2V5KTsKKyAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzb2x2ZURlcGVuZGVu
Y2llcyhrZXksIGluaXRpYXRvcik7CiB9CiAKLWZ1bmN0aW9uIHJlcXVlc3RMaW5rKGtleSkKK2Z1
bmN0aW9uIHJlcXVlc3RMaW5rKGtleSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hh
dHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtbGluawogCkBAIC00MTUsMjggKzQxMCwyNiBA
QCBmdW5jdGlvbiByZXF1ZXN0TGluayhrZXkpCiAgICAgICAgIHJldHVybiBkZWZlcnJlZC5AcHJv
bWlzZTsKICAgICB9CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKLSAgICByZXR1cm4gdGhpcy5y
ZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5KS50aGVuKGZ1bmN0aW9uIChlbnRyeSkgewotICAgICAg
ICBsb2FkZXIubGluayhlbnRyeSk7CisgICAgcmV0dXJuIHRoaXMucmVxdWVzdEluc3RhbnRpYXRl
QWxsKGtleSwgaW5pdGlhdG9yKS50aGVuKChlbnRyeSkgPT4geworICAgICAgICB0aGlzLmxpbmso
ZW50cnksIGluaXRpYXRvcik7CiAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICB9KTsKIH0KIAot
ZnVuY3Rpb24gcmVxdWVzdFJlYWR5KGtleSkKK2Z1bmN0aW9uIHJlcXVlc3RSZWFkeShrZXksIGlu
aXRpYXRvcikKIHsKICAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1
ZXN0LXJlYWR5CiAKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsK
LSAgICByZXR1cm4gdGhpcy5yZXF1ZXN0TGluayhrZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7
Ci0gICAgICAgIGxvYWRlci5tb2R1bGVFdmFsdWF0aW9uKGVudHJ5Lm1vZHVsZSk7CisgICAgcmV0
dXJuIHRoaXMucmVxdWVzdExpbmsoa2V5LCBpbml0aWF0b3IpLnRoZW4oKGVudHJ5KSA9PiB7Cisg
ICAgICAgIHRoaXMubW9kdWxlRXZhbHVhdGlvbihlbnRyeS5tb2R1bGUsIGluaXRpYXRvcik7CiAg
ICAgfSk7CiB9CiAKIC8vIExpbmtpbmcgc2VtYW50aWNzLgogCi1mdW5jdGlvbiBsaW5rKGVudHJ5
KQorZnVuY3Rpb24gbGluayhlbnRyeSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hh
dHdnLmdpdGh1Yi5pby9sb2FkZXIvI2xpbmsKIApAQCAtNDU2LDE1ICs0NDksMTUgQEAgZnVuY3Rp
b24gbGluayhlbnRyeSkKICAgICB2YXIgZGVwZW5kZW5jaWVzID0gZW50cnkuZGVwZW5kZW5jaWVz
OwogICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBkZXBlbmRlbmNpZXMubGVuZ3RoOyBpIDwg
bGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIHBhaXIgPSBkZXBlbmRlbmNpZXNbaV07Ci0gICAg
ICAgIHRoaXMubGluayhwYWlyLnZhbHVlLnJlZ2lzdHJ5RW50cnkpOworICAgICAgICB0aGlzLmxp
bmsocGFpci52YWx1ZS5yZWdpc3RyeUVudHJ5LCBpbml0aWF0b3IpOwogICAgIH0KIAotICAgIHRo
aXMubW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uKGVudHJ5Lm1vZHVsZSk7CisgICAgdGhp
cy5tb2R1bGVEZWNsYXJhdGlvbkluc3RhbnRpYXRpb24oZW50cnkubW9kdWxlLCBpbml0aWF0b3Ip
OwogfQogCiAvLyBNb2R1bGUgc2VtYW50aWNzLgogCi1mdW5jdGlvbiBtb2R1bGVFdmFsdWF0aW9u
KG1vZHVsZVJlY29yZCkKK2Z1bmN0aW9uIG1vZHVsZUV2YWx1YXRpb24obW9kdWxlUmVjb3JkLCBp
bml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2Vj
bWEtMjYyLzYuMC8jc2VjLW1vZHVsZWV2YWx1YXRpb24KIApAQCAtNDgxLDkgKzQ3NCw5IEBAIGZ1
bmN0aW9uIG1vZHVsZUV2YWx1YXRpb24obW9kdWxlUmVjb3JkKQogICAgIGZvciAodmFyIGkgPSAw
LCBsZW5ndGggPSBkZXBlbmRlbmNpZXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgdmFyIHBhaXIgPSBkZXBlbmRlbmNpZXNbaV07CiAgICAgICAgIHZhciByZXF1aXJlZE1vZHVs
ZVJlY29yZCA9IHBhaXIudmFsdWU7Ci0gICAgICAgIHRoaXMubW9kdWxlRXZhbHVhdGlvbihyZXF1
aXJlZE1vZHVsZVJlY29yZCk7CisgICAgICAgIHRoaXMubW9kdWxlRXZhbHVhdGlvbihyZXF1aXJl
ZE1vZHVsZVJlY29yZCwgaW5pdGlhdG9yKTsKICAgICB9Ci0gICAgdGhpcy5ldmFsdWF0ZShlbnRy
eS5rZXksIG1vZHVsZVJlY29yZCk7CisgICAgdGhpcy5ldmFsdWF0ZShlbnRyeS5rZXksIG1vZHVs
ZVJlY29yZCwgaW5pdGlhdG9yKTsKIH0KIAogLy8gQVBJcyB0byBjb250cm9sIHRoZSBtb2R1bGUg
bG9hZGVyLgpAQCAtNTE0LDkgKzUwNyw4IEBAIGZ1bmN0aW9uIHByb3ZpZGUoa2V5LCBzdGFnZSwg
dmFsdWUpCiAgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVxdWVzdGVkIG1vZHVs
ZSBpcyBhbHJlYWR5IGluc3RhbnRpYXRlZC4iKTsKICAgICAgICAgdGhpcy5mdWxmaWxsRmV0Y2go
ZW50cnksIEB1bmRlZmluZWQpOwogICAgICAgICB0aGlzLmZ1bGZpbGxUcmFuc2xhdGUoZW50cnks
IHZhbHVlKTsKLSAgICAgICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgICAgIGVudHJ5LnRyYW5z
bGF0ZS50aGVuKGZ1bmN0aW9uIChzb3VyY2UpIHsKLSAgICAgICAgICAgIGxvYWRlci5mdWxmaWxs
SW5zdGFudGlhdGUoZW50cnksIHZhbHVlLCBzb3VyY2UpOworICAgICAgICBlbnRyeS50cmFuc2xh
dGUudGhlbigoc291cmNlKSA9PiB7CisgICAgICAgICAgICB0aGlzLmZ1bGZpbGxJbnN0YW50aWF0
ZShlbnRyeSwgdmFsdWUsIHNvdXJjZSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtNTI0LDM5ICs1MTYsMzcgQEAgZnVuY3Rpb24gcHJvdmlkZShrZXksIHN0YWdlLCB2
YWx1ZSkKICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVxdWVzdGVkIG1vZHVsZSBpcyBhbHJl
YWR5IHJlYWR5IHRvIGJlIGV4ZWN1dGVkLiIpOwogfQogCi1mdW5jdGlvbiBsb2FkQW5kRXZhbHVh
dGVNb2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIpCitmdW5jdGlvbiBsb2FkQW5kRXZhbHVhdGVN
b2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcikKIHsKICAgICAidXNlIHN0cmlj
dCI7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKICAgICAvLyBMb2FkZXIucmVzb2x2ZSBob29r
IHBvaW50LgogICAgIC8vIHJlc29sdmU6IG1vZHVsZU5hbWUgPT4gUHJvbWlzZShtb2R1bGVLZXkp
CiAgICAgLy8gVGFrZSB0aGUgbmFtZSBhbmQgcmVzb2x2ZSBpdCB0byB0aGUgdW5pcXVlIGlkZW50
aWZpZXIgZm9yIHRoZSByZXNvdXJjZSBsb2NhdGlvbi4KICAgICAvLyBGb3IgZXhhbXBsZSwgdGFr
ZSB0aGUgImpxdWVyeSIgYW5kIHJldHVybiB0aGUgVVJMIGZvciB0aGUgcmVzb3VyY2UuCi0gICAg
cmV0dXJuIHRoaXMucmVzb2x2ZShtb2R1bGVOYW1lLCByZWZlcnJlcikudGhlbihmdW5jdGlvbiAo
a2V5KSB7Ci0gICAgICAgIHJldHVybiBsb2FkZXIucmVxdWVzdFJlYWR5KGtleSk7CisgICAgcmV0
dXJuIHRoaXMucmVzb2x2ZShtb2R1bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKS50aGVuKChr
ZXkpID0+IHsKKyAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlYWR5KGtleSwgaW5pdGlhdG9y
KTsKICAgICB9KTsKIH0KIAotZnVuY3Rpb24gbG9hZE1vZHVsZShtb2R1bGVOYW1lLCByZWZlcnJl
cikKK2Z1bmN0aW9uIGxvYWRNb2R1bGUobW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcikK
IHsKICAgICAidXNlIHN0cmljdCI7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsKICAgICAvLyBM
b2FkZXIucmVzb2x2ZSBob29rIHBvaW50LgogICAgIC8vIHJlc29sdmU6IG1vZHVsZU5hbWUgPT4g
UHJvbWlzZShtb2R1bGVLZXkpCiAgICAgLy8gVGFrZSB0aGUgbmFtZSBhbmQgcmVzb2x2ZSBpdCB0
byB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSBsb2NhdGlvbi4KICAgICAv
LyBGb3IgZXhhbXBsZSwgdGFrZSB0aGUgImpxdWVyeSIgYW5kIHJldHVybiB0aGUgVVJMIGZvciB0
aGUgcmVzb3VyY2UuCi0gICAgcmV0dXJuIHRoaXMucmVzb2x2ZShtb2R1bGVOYW1lLCByZWZlcnJl
cikudGhlbihmdW5jdGlvbiAoa2V5KSB7Ci0gICAgICAgIHJldHVybiBsb2FkZXIucmVxdWVzdElu
c3RhbnRpYXRlQWxsKGtleSk7Ci0gICAgfSkudGhlbihmdW5jdGlvbiAoZW50cnkpIHsKKyAgICBy
ZXR1cm4gdGhpcy5yZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpLnRoZW4o
KGtleSkgPT4geworICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5
LCBpbml0aWF0b3IpOworICAgIH0pLnRoZW4oKGVudHJ5KSA9PiB7CiAgICAgICAgIHJldHVybiBl
bnRyeS5rZXk7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShr
ZXkpCitmdW5jdGlvbiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoa2V5LCBpbml0aWF0b3IpCiB7CiAg
ICAgInVzZSBzdHJpY3QiOwogCi0gICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlYWR5KGtleSk7Cisg
ICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlYWR5KGtleSwgaW5pdGlhdG9yKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKaW5kZXggYjhlYjE1OGNiMDlmNmViYjdlZjI5YjA4NWRjOGU1MjI5MWI1MjUzYS4u
MjNjOTEwYWY4NWFmNWQ1MmViZGY2MmY2OWNlZWU1MzZjMjliMWFhZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKQEAgLTg4Myw4ICs4ODMsOCBAQCBjbGFzcyBHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNH
bG9iYWxPYmplY3QgewogICAgICAgICBwdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgYXJndW1lbnRzLCBpZGVudGlmaWVyLnN0cmluZygpLCBmdW5j
dGlvbiwgTm9JbnRyaW5zaWMsIGZ1bmN0aW9uKSk7CiAgICAgfQogCi0gICAgc3RhdGljIEpTSW50
ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0
YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKLSAgICBzdGF0aWMgSlNJ
bnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0
YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlKTsKKyAgICBzdGF0aWMgSlNJbnRlcm5hbFBy
b21pc2UqIG1vZHVsZUxvYWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBK
U01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUpOworICAgIHN0YXRpYyBK
U0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqLCBFeGVj
U3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOwogfTsKIAogY29uc3Qg
Q2xhc3NJbmZvIEdsb2JhbE9iamVjdDo6c19pbmZvID0geyAiZ2xvYmFsIiwgJkpTR2xvYmFsT2Jq
ZWN0OjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoR2xvYmFsT2JqZWN0KSB9
OwpAQCAtMTAxNSw3ICsxMDE1LDcgQEAgc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChjb25zdCBE
aXJlY3RvcnlOYW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJgogICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmpl
Y3Q6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhl
Y1N0YXRlKiBleGVjLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUga2V5VmFsdWUsIEpTVmFsdWUg
cmVmZXJyZXJWYWx1ZSkKK0pTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxv
YWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhlY1N0YXRlKiBleGVj
LCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUga2V5VmFsdWUsIEpTVmFsdWUgcmVmZXJyZXJWYWx1
ZSwgSlNWYWx1ZSkKIHsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9
IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwog
ICAgIGNvbnN0IElkZW50aWZpZXIga2V5ID0ga2V5VmFsdWUudG9Qcm9wZXJ0eUtleShleGVjKTsK
QEAgLTExMjAsNyArMTEyMCw3IEBAIHN0YXRpYyBib29sIGZldGNoTW9kdWxlRnJvbUxvY2FsRmls
ZVN5c3RlbShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBWZWN0b3I8Y2hhcj4mCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9h
ZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBK
U01vZHVsZUxvYWRlciosIEpTVmFsdWUga2V5KQorSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhl
Y1N0YXRlKiBleGVjLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUga2V5LCBKU1ZhbHVlKQogewog
ICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgU3RyaW5nIG1vZHVs
ZUtleSA9IGtleS50b1dURlN0cmluZyhleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tcGxldGlvbi5jcHAKaW5kZXggNjMyZjdmYjYwYTdhZGJhNzgwMDk2M2I3YzBlMzIx
MzhlZDQ0MTRkNC4uYzEwYjQxYzQ5OWRmNDk4Y2Y1NTIxNmU5NzBjZDNhOTFlMmNlZDg3MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKQEAgLTE1NSwy
NiArMTU1LDI2IEBAIHN0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogcmVqZWN0UHJvbWlzZShFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIGRlZmVycmVk
LT5wcm9taXNlKCk7CiB9CiAKLXN0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1
YXRlTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYsIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVy
KQorc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoY29uc3Qg
SlNMb2NrSG9sZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlh
dG9yKQogewotICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm1vZHVsZUxvYWRlcigpLT5sb2FkQW5k
RXZhbHVhdGVNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJyZXIpOworICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPm1vZHVsZUxvYWRlcigpLT5sb2FkQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywg
bW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcik7CiB9CiAKLXN0YXRpYyBKU0ludGVybmFs
UHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYgbG9jaywg
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVu
dGlmaWVyJiBtb2R1bGVOYW1lKQorc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZh
bHVhdGVNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVyJiBsb2NrLCBFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZU5hbWUs
IEpTVmFsdWUgaW5pdGlhdG9yKQogewotICAgIHJldHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUo
bG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMtPnZtKCks
IG1vZHVsZU5hbWUpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRl
TW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwgaWRlbnRpZmllclRvSlNWYWx1ZShleGVj
LT52bSgpLCBtb2R1bGVOYW1lKSwganNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJ
bnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK0pTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVh
dGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTVmFs
dWUgaW5pdGlhdG9yKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVB
U0VfQVNTRVJUKGV4ZWMtPnZtKCkuYXRvbWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRh
KCkuYXRvbWljU3RyaW5nVGFibGUoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWV4ZWMtPnZtKCku
aXNDb2xsZWN0b3JCdXN5KCkpOwogCi0gICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShs
b2NrLCBleGVjLCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoZXhlYywgbW9kdWxlTmFtZSkpOworICAgIHJldHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1
bGUobG9jaywgZXhlYywgZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsIG1vZHVsZU5hbWUpLCBpbml0aWF0b3IpOwogfQogCi1KU0ludGVybmFs
UHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291
cmNlQ29kZSYgc291cmNlKQorSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVs
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNWYWx1ZSBpbml0
aWF0b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NF
UlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9t
aWNTdHJpbmdUYWJsZSgpKTsKQEAgLTE4OSwyOSArMTg5LDI5IEBAIEpTSW50ZXJuYWxQcm9taXNl
KiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVq
ZWN0UHJvbWlzZShleGVjLCBnbG9iYWxPYmplY3QpOwogCi0gICAgcmV0dXJuIGxvYWRBbmRFdmFs
dWF0ZU1vZHVsZShsb2NrLCBleGVjLCBnbG9iYWxPYmplY3QsIGtleSwganNVbmRlZmluZWQoKSk7
CisgICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShsb2NrLCBleGVjLCBnbG9iYWxPYmpl
Y3QsIGtleSwganNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotc3RhdGljIEpTSW50ZXJu
YWxQcm9taXNlKiBsb2FkTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYsIEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1Zh
bHVlIHJlZmVycmVyKQorc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKGNvbnN0
IEpTTG9ja0hvbGRlciYsIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRp
YXRvcikKIHsKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2FkZXIoKS0+bG9hZE1v
ZHVsZShleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgcmV0dXJuIGdsb2JhbE9iamVj
dC0+bW9kdWxlTG9hZGVyKCktPmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSwgcmVmZXJyZXIs
IGluaXRpYXRvcik7CiB9CiAKLXN0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShj
b25zdCBKU0xvY2tIb2xkZXImIGxvY2ssIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlTmFtZSkKK3N0YXRpYyBKU0lu
dGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShjb25zdCBKU0xvY2tIb2xkZXImIGxvY2ssIEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmll
ciYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7Ci0gICAgcmV0dXJuIGxvYWRNb2R1
bGUobG9jaywgZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMtPnZt
KCksIG1vZHVsZU5hbWUpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gbG9hZE1vZHVsZShs
b2NrLCBleGVjLCBnbG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwg
bW9kdWxlTmFtZSksIGpzVW5kZWZpbmVkKCksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50ZXJuYWxQ
cm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtb2R1bGVO
YW1lKQorSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpTTG9ja0hv
bGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVBU0VfQVNTRVJUKGV4ZWMtPnZtKCkuYXRvbWljU3Ry
aW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5nVGFibGUoKSk7CiAgICAg
UkVMRUFTRV9BU1NFUlQoIWV4ZWMtPnZtKCkuaXNDb2xsZWN0b3JCdXN5KCkpOwogCi0gICAgcmV0
dXJuIGxvYWRNb2R1bGUobG9jaywgZXhlYywgZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIG1vZHVsZU5hbWUpKTsKKyAgICByZXR1cm4gbG9h
ZE1vZHVsZShsb2NrLCBleGVjLCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoZXhlYywgbW9kdWxlTmFtZSksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50
ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlKQorSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpT
TG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVBU0VfQVNTRVJUKGV4ZWMtPnZtKCkuYXRv
bWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWljU3RyaW5nVGFibGUoKSk7
CkBAIC0yMjYsMTcgKzIyNiwxNyBAQCBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZWplY3RQcm9taXNlKGV4ZWMsIGdsb2JhbE9i
amVjdCk7CiAKLSAgICByZXR1cm4gbG9hZE1vZHVsZShsb2NrLCBleGVjLCBnbG9iYWxPYmplY3Qs
IGtleSwganNVbmRlZmluZWQoKSk7CisgICAgcmV0dXJuIGxvYWRNb2R1bGUobG9jaywgZXhlYywg
Z2xvYmFsT2JqZWN0LCBrZXksIGpzVW5kZWZpbmVkKCksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50
ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBtb2R1bGVLZXkpCitKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1
YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlS2V5LCBK
U1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBS
RUxFQVNFX0FTU0VSVChleGVjLT52bSgpLmF0b21pY1N0cmluZ1RhYmxlKCkgPT0gd3RmVGhyZWFk
RGF0YSgpLmF0b21pY1N0cmluZ1RhYmxlKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFleGVjLT52
bSgpLmlzQ29sbGVjdG9yQnVzeSgpKTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCk7Ci0gICAgcmV0dXJuIGdsb2JhbE9iamVj
dC0+bW9kdWxlTG9hZGVyKCktPmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBpZGVudGlmaWVy
VG9KU1ZhbHVlKGV4ZWMtPnZtKCksIG1vZHVsZUtleSkpOworICAgIHJldHVybiBnbG9iYWxPYmpl
Y3QtPm1vZHVsZUxvYWRlcigpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgaWRlbnRpZmll
clRvSlNWYWx1ZShleGVjLT52bSgpLCBtb2R1bGVLZXkpLCBpbml0aWF0b3IpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbXBsZXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24u
aAppbmRleCBmMTMxY2M1YWU1NzFjYjZiZTBiNmQzY2IwMTVlODk5MWEyMjQwYjU3Li5iMzQxMDgw
ODZmNzAxNjQwMDRjNDcxYTllYTNhZWUxNWEzOGQ1M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCkBAIC01OCwxNSArNTgsMTUgQEAgaW5saW5lIEpTVmFs
dWUgcHJvZmlsZWRFdmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFByb2ZpbGluZ1JlYXNvbiByZWFz
b24sIGNvbnN0IFMKIEpTX0VYUE9SVF9QUklWQVRFIEpTVmFsdWUgZXZhbHVhdGVXaXRoU2NvcGVF
eHRlbnNpb24oRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTT2JqZWN0KiBzY29wZUV4
dGVuc2lvbiwgTmFrZWRQdHI8RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24pOwogCiAvLyBM
b2FkIHRoZSBtb2R1bGUgc291cmNlIGFuZCBldmFsdWF0ZSBpdC4KLUpTX0VYUE9SVF9QUklWQVRF
IEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKLUpTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9t
aXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYp
OworSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1v
ZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTVmFsdWUgaW5pdGlh
dG9yID0ganNVbmRlZmluZWQoKSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlz
ZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBK
U1ZhbHVlIGluaXRpYXRvciA9IGpzVW5kZWZpbmVkKCkpOwogCiAvLyBGZXRjaCB0aGUgbW9kdWxl
IHNvdXJjZSwgYW5kIGluc3RhbnRpYXRlIHRoZSBtb2R1bGUgcmVjb3JkLgotSlNfRVhQT1JUX1BS
SVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiBtb2R1bGVOYW1lKTsKLUpTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKK0pTX0VYUE9SVF9QUklW
QVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IgPSBqc1VuZGVmaW5lZCgpKTsKK0pTX0VY
UE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSosIGNv
bnN0IFNvdXJjZUNvZGUmLCBKU1ZhbHVlIGluaXRpYXRvciA9IGpzVW5kZWZpbmVkKCkpOwogCiAv
LyBMaW5rIGFuZCBldmFsdWF0ZSB0aGUgYWxyZWFkeSBsaW5rZWQgbW9kdWxlLgotSlNfRVhQT1JU
X1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNJ
bnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBtb2R1bGVLZXksIEpTVmFsdWUgaW5pdGlhdG9yID0ganNVbmRlZmluZWQoKSk7
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBmNTY3MTE2MGYyY2Y4YzBjMzZjZDU3ODM2YmUyYzQ0
YjBlZjM5ZDllLi43ODM3YWM2YWRmYThmYWRiYzliY2QwNDFhNDA3ZjhkYThhZGQwMDgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE2
NiwxOSArMTY2LDE5IEBAIHN0cnVjdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSB7CiAgICAgdHlw
ZWRlZiBib29sICgqU2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dFB0cikoY29uc3Qg
SlNHbG9iYWxPYmplY3QqKTsKICAgICBTaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0
UHRyIHNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQ7CiAKLSAgICB0eXBlZGVmIEpT
SW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlclJlc29sdmVQdHIpKEpTR2xvYmFsT2JqZWN0
KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKKyAgICB0
eXBlZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlclJlc29sdmVQdHIpKEpTR2xv
YmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVl
LCBKU1ZhbHVlKTsKICAgICBNb2R1bGVMb2FkZXJSZXNvbHZlUHRyIG1vZHVsZUxvYWRlclJlc29s
dmU7CiAKLSAgICB0eXBlZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlckZldGNo
UHRyKShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1
ZSk7CisgICAgdHlwZWRlZiBKU0ludGVybmFsUHJvbWlzZSogKCpNb2R1bGVMb2FkZXJGZXRjaFB0
cikoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUs
IEpTVmFsdWUpOwogICAgIE1vZHVsZUxvYWRlckZldGNoUHRyIG1vZHVsZUxvYWRlckZldGNoOwog
Ci0gICAgdHlwZWRlZiBKU0ludGVybmFsUHJvbWlzZSogKCpNb2R1bGVMb2FkZXJUcmFuc2xhdGVQ
dHIpKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVl
LCBKU1ZhbHVlKTsKKyAgICB0eXBlZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRl
clRyYW5zbGF0ZVB0cikoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRl
ciosIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUpOwogICAgIE1vZHVsZUxvYWRlclRyYW5zbGF0
ZVB0ciBtb2R1bGVMb2FkZXJUcmFuc2xhdGU7CiAKLSAgICB0eXBlZGVmIEpTSW50ZXJuYWxQcm9t
aXNlKiAoKk1vZHVsZUxvYWRlckluc3RhbnRpYXRlUHRyKShKU0dsb2JhbE9iamVjdCosIEV4ZWNT
dGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CisgICAgdHlwZWRlZiBK
U0ludGVybmFsUHJvbWlzZSogKCpNb2R1bGVMb2FkZXJJbnN0YW50aWF0ZVB0cikoSlNHbG9iYWxP
YmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUsIEpT
VmFsdWUpOwogICAgIE1vZHVsZUxvYWRlckluc3RhbnRpYXRlUHRyIG1vZHVsZUxvYWRlckluc3Rh
bnRpYXRlOwogCi0gICAgdHlwZWRlZiBKU1ZhbHVlICgqTW9kdWxlTG9hZGVyRXZhbHVhdGVQdHIp
KEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBK
U1ZhbHVlKTsKKyAgICB0eXBlZGVmIEpTVmFsdWUgKCpNb2R1bGVMb2FkZXJFdmFsdWF0ZVB0ciko
SlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpT
VmFsdWUsIEpTVmFsdWUpOwogICAgIE1vZHVsZUxvYWRlckV2YWx1YXRlUHRyIG1vZHVsZUxvYWRl
ckV2YWx1YXRlOwogCiAgICAgdHlwZWRlZiBTdHJpbmcgKCpEZWZhdWx0TGFuZ3VhZ2VGdW5jdGlv
blB0cikoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9k
dWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9h
ZGVyLmNwcAppbmRleCBkM2I1YTZhNDZmNWJkNDE3MzYwYjMyZDE1NjVlOWQ2NTFmNDQyMTExLi40
ZWFlYmQ3NWQ1YWJjYzU4ZWQzNzgzM2RhMjE3MDA4ZGVmYTk4MDVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCkBAIC04Niw3ICs4Niw3
IEBAIEpTVmFsdWUgSlNNb2R1bGVMb2FkZXI6OnByb3ZpZGUoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIGtleSwgU3RhdHVzIHN0YXR1cywgY29uCiAgICAgcmV0dXJuIGNhbGwoZXhlYywgZnVuY3Rp
b24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1lbnRzKTsKIH0KIAotSlNJbnRlcm5h
bFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitKU0ludGVybmFs
UHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0
aWF0b3IpCiB7CiAgICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0
KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5sb2FkQW5kRXZhbHVh
dGVNb2R1bGVQdWJsaWNOYW1lKCkpKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKQEAgLTk2LDEx
ICs5NiwxMiBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxvYWRBbmRFdmFs
dWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdQogICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKG1vZHVsZU5hbWUpOwogICAgIGFy
Z3VtZW50cy5hcHBlbmQocmVmZXJyZXIpOworICAgIGFyZ3VtZW50cy5hcHBlbmQoaW5pdGlhdG9y
KTsKIAogICAgIHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21pc2UqPihjYWxsKGV4ZWMsIGZ1
bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3VtZW50cykpOwogfQogCi1KU0lu
dGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitKU0ludGVybmFsUHJvbWlz
ZSogSlNNb2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG1v
ZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpT
T2JqZWN0KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChleGVjLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubG9hZE1vZHVsZVB1YmxpY05hbWUoKSkpOwogICAg
IENhbGxEYXRhIGNhbGxEYXRhOwpAQCAtMTEwLDExICsxMTEsMTIgQEAgSlNJbnRlcm5hbFByb21p
c2UqIEpTTW9kdWxlTG9hZGVyOjpsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBt
b2R1bGVOYW0KICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CiAgICAgYXJndW1l
bnRzLmFwcGVuZChtb2R1bGVOYW1lKTsKICAgICBhcmd1bWVudHMuYXBwZW5kKHJlZmVycmVyKTsK
KyAgICBhcmd1bWVudHMuYXBwZW5kKGluaXRpYXRvcik7CiAKICAgICByZXR1cm4ganNDYXN0PEpT
SW50ZXJuYWxQcm9taXNlKj4oY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRh
LCB0aGlzLCBhcmd1bWVudHMpKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9h
ZGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG1vZHVs
ZUtleSkKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bGlua0FuZEV2YWx1YXRl
TW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBtb2R1bGVLZXksIEpTVmFsdWUgaW5pdGlh
dG9yKQogewogICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChl
eGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYnVpbHRpbk5hbWVzKCkubGlua0FuZEV2YWx1YXRl
TW9kdWxlUHVibGljTmFtZSgpKSk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CkBAIC0xMjMsMzEg
KzEyNSwzMiBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxpbmtBbmRFdmFs
dWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdQogCiAgICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJndW1lbnRzOwogICAgIGFyZ3VtZW50cy5hcHBlbmQobW9kdWxlS2V5KTsKKyAgICBh
cmd1bWVudHMuYXBwZW5kKGluaXRpYXRvcik7CiAKICAgICByZXR1cm4ganNDYXN0PEpTSW50ZXJu
YWxQcm9taXNlKj4oY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlz
LCBhcmd1bWVudHMpKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpy
ZXNvbHZlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJlZmVycmVyKQor
SlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpyZXNvbHZlKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsK
ICAgICBpZiAoT3B0aW9uczo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQogICAgICAgICBkYXRh
TG9nKCJMb2FkZXIgW3Jlc29sdmVdICIsIHByaW50YWJsZU1vZHVsZUtleShleGVjLCBuYW1lKSwg
IlxuIik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKCktPm1vZHVsZUxvYWRlclJlc29sdmUpCi0gICAgICAgIHJldHVybiBnbG9iYWxPYmpl
Y3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlclJlc29sdmUoZ2xvYmFs
T2JqZWN0LCBleGVjLCB0aGlzLCBuYW1lLCByZWZlcnJlcik7CisgICAgICAgIHJldHVybiBnbG9i
YWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlclJlc29sdmUo
Z2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBuYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKTsKICAg
ICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogICAgIGRlZmVycmVkLT5yZXNv
bHZlKGV4ZWMsIG5hbWUpOwogICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQogCi1K
U0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmZldGNoKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBrZXkpCitKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmZldGNoKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIGlm
IChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCiAgICAgICAgIGRhdGFMb2coIkxv
YWRlciBbZmV0Y2hdICIsIHByaW50YWJsZU1vZHVsZUtleShleGVjLCBrZXkpLCAiXG4iKTsKIAog
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+
bW9kdWxlTG9hZGVyRmV0Y2gpCi0gICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlckZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywg
dGhpcywga2V5KTsKKyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBr
ZXksIGluaXRpYXRvcik7CiAgICAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQg
PSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsK
ICAgICBTdHJpbmcgbW9kdWxlS2V5ID0ga2V5LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsK
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKQEAgLTE2MCw0MCArMTYzLDQwIEBAIEpT
SW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIGtleSkKICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKIH0KIAotSlNJbnRl
cm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjp0cmFuc2xhdGUoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIGtleSwgSlNWYWx1ZSBwYXlsb2FkKQorSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxl
TG9hZGVyOjp0cmFuc2xhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBw
YXlsb2FkLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBpZiAoT3B0aW9uczo6ZHVtcE1vZHVs
ZUxvYWRpbmdTdGF0ZSgpKQogICAgICAgICBkYXRhTG9nKCJMb2FkZXIgW3RyYW5zbGF0ZV0gIiwg
cHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIGtleSksICJcbiIpOwogCiAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBpZiAo
Z2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJUcmFu
c2xhdGUpCi0gICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlKCktPm1vZHVsZUxvYWRlclRyYW5zbGF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtl
eSwgcGF5bG9hZCk7CisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlclRyYW5zbGF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIHRo
aXMsIGtleSwgcGF5bG9hZCwgaW5pdGlhdG9yKTsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBn
bG9iYWxPYmplY3QpOwogICAgIGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIHBheWxvYWQpOwogICAg
IHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNN
b2R1bGVMb2FkZXI6Omluc3RhbnRpYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXksIEpT
VmFsdWUgc291cmNlKQorSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjppbnN0YW50
aWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNvdXJjZSwgSlNWYWx1
ZSBpbml0aWF0b3IpCiB7CiAgICAgaWYgKE9wdGlvbnM6OmR1bXBNb2R1bGVMb2FkaW5nU3RhdGUo
KSkKICAgICAgICAgZGF0YUxvZygiTG9hZGVyIFtpbnN0YW50aWF0ZV0gIiwgcHJpbnRhYmxlTW9k
dWxlS2V5KGV4ZWMsIGtleSksICJcbiIpOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJJbnN0YW50aWF0ZSkKLSAg
ICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9k
dWxlTG9hZGVySW5zdGFudGlhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIHNvdXJj
ZSk7CisgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
KCktPm1vZHVsZUxvYWRlckluc3RhbnRpYXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5
LCBzb3VyY2UsIGluaXRpYXRvcik7CiAgICAgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVm
ZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2Jq
ZWN0KTsKICAgICBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBqc1VuZGVmaW5lZCgpKTsKICAgICBy
ZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKIH0KIAotSlNWYWx1ZSBKU01vZHVsZUxvYWRlcjo6
ZXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBtb2R1bGVSZWNv
cmRWYWx1ZSkKK0pTVmFsdWUgSlNNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUsIEpTVmFsdWUgaW5pdGlh
dG9yKQogewogICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCiAgICAg
ICAgIGRhdGFMb2coIkxvYWRlciBbZXZhbHVhdGVdICIsIHByaW50YWJsZU1vZHVsZUtleShleGVj
LCBrZXkpLCAiXG4iKTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZhbHVhdGUpCi0gICAgICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlckV2YWx1
YXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBtb2R1bGVSZWNvcmRWYWx1ZSk7Cisg
ICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1v
ZHVsZUxvYWRlckV2YWx1YXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBtb2R1bGVS
ZWNvcmRWYWx1ZSwgaW5pdGlhdG9yKTsKIAogICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNv
cmQgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlUmVjb3JkKj4obW9kdWxlUmVjb3JkVmFsdWUpOwog
ICAgIGlmICghbW9kdWxlUmVjb3JkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTW9kdWxlTG9hZGVyLmgKaW5kZXggNGNkNTkwNDA2NWVmNWZmNTZkYTliODUwZWZiYjliZjA3
NGU0MDQwMy4uYjg3YjdhZWI1YTkzZDE5ODA5NGM3MTdlN2M1OGMyMGZhMmNlNjZjYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5oCkBAIC02Mywx
OCArNjMsMTggQEAgY2xhc3MgSlNNb2R1bGVMb2FkZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CiAKICAgICAvLyBBUElzIHRvIGNvbnRyb2wgdGhlIG1vZHVsZSBsb2FkZXIuCiAgICAgSlNW
YWx1ZSBwcm92aWRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBTdGF0dXMsIGNvbnN0IFN0cmlu
ZyYpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0
YXRlKiwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyKTsKLSAgICBKU0ludGVy
bmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpT
VmFsdWUgcmVmZXJyZXIpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVN
b2R1bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVLZXkpOworICAgIEpTSW50ZXJuYWxQcm9t
aXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVOYW1l
LCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFBy
b21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVl
IHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGxp
bmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZUtleSwgSlNWYWx1
ZSBpbml0aWF0b3IpOwogCiAgICAgLy8gUGxhdGZvcm0gZGVwZW5kZW50IGhvb2tlZCBBUElzLgot
ICAgIEpTSW50ZXJuYWxQcm9taXNlKiByZXNvbHZlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmFtZSwg
SlNWYWx1ZSByZWZlcnJlcik7Ci0gICAgSlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEV4ZWNTdGF0
ZSosIEpTVmFsdWUga2V5KTsKLSAgICBKU0ludGVybmFsUHJvbWlzZSogdHJhbnNsYXRlKEV4ZWNT
dGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHBheWxvYWQpOwotICAgIEpTSW50ZXJuYWxQcm9t
aXNlKiBpbnN0YW50aWF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBzb3VyY2Up
OworICAgIEpTSW50ZXJuYWxQcm9taXNlKiByZXNvbHZlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmFt
ZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpOworICAgIEpTSW50ZXJuYWxQ
cm9taXNlKiBmZXRjaChFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBpbml0aWF0b3Ip
OworICAgIEpTSW50ZXJuYWxQcm9taXNlKiB0cmFuc2xhdGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBr
ZXksIEpTVmFsdWUgcGF5bG9hZCwgSlNWYWx1ZSBpbml0aWF0b3IpOworICAgIEpTSW50ZXJuYWxQ
cm9taXNlKiBpbnN0YW50aWF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBzb3Vy
Y2UsIEpTVmFsdWUgaW5pdGlhdG9yKTsKIAogICAgIC8vIEFkZGl0aW9uYWwgcGxhdGZvcm0gZGVw
ZW5kZW50IGhvb2tlZCBBUElzLgotICAgIEpTVmFsdWUgZXZhbHVhdGUoRXhlY1N0YXRlKiwgSlNW
YWx1ZSBrZXksIEpTVmFsdWUgbW9kdWxlUmVjb3JkKTsKKyAgICBKU1ZhbHVlIGV2YWx1YXRlKEV4
ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNWYWx1ZSBpbml0
aWF0b3IpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xv
YmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
b2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcAppbmRleCA5MDBkNjNlMmZiNjcwMjA3ZWNmYWVhZjli
YzVmNzFlNDJmZTYzMTBhLi5lNjEyMDViMjRmMzA3MWZlOGU0OWVmYzUwY2Q2ZWMyNmJkODEwN2Fi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxv
YWRlclByb3RvdHlwZS5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZVJlc29sdmUoRXhlY1N0YXRlKiBleGVjKQog
ICAgIEpTTW9kdWxlTG9hZGVyKiBsb2FkZXIgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlTG9hZGVy
Kj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUobG9hZGVyLT5yZXNvbHZlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVu
dCgxKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9hZGVyLT5yZXNvbHZlKGV4ZWMs
IGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSwgZXhlYy0+YXJndW1lbnQoMikp
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5
cGVGZXRjaChFeGVjU3RhdGUqIGV4ZWMpCkBAIC0xOTQsNyArMTk0LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5cGVGZXRjaChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgSlNNb2R1bGVMb2FkZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVM
b2FkZXIqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShsb2FkZXItPmZldGNoKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmZldGNoKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDAp
LCBleGVjLT5hcmd1bWVudCgxKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG1vZHVsZUxvYWRlclByb3RvdHlwZVRyYW5zbGF0ZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yMDYs
NyArMjA2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90
b3R5cGVUcmFuc2xhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTTW9kdWxlTG9hZGVyKiBsb2Fk
ZXIgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlTG9hZGVyKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwog
ICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9hZGVyLT50cmFuc2xhdGUoZXhl
YywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShsb2FkZXItPnRyYW5zbGF0ZShleGVjLCBleGVjLT5hcmd1bWVudCgwKSwg
ZXhlYy0+YXJndW1lbnQoMSksIGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlSW5zdGFudGlhdGUoRXhlY1N0
YXRlKiBleGVjKQpAQCAtMjIwLDcgKzIyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlSW5zdGFudGlhdGUoRXhlY1N0YXRlKiBleGVjKQogICAg
IEpTTW9kdWxlTG9hZGVyKiBsb2FkZXIgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlTG9hZGVyKj4o
ZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
bG9hZGVyLT5pbnN0YW50aWF0ZShleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgZXhlYy0+YXJndW1l
bnQoMSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+aW5zdGFudGlhdGUo
ZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpLCBleGVjLT5hcmd1bWVu
dCgyKSkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tIEFkZGl0aW9uYWwgSG9vayBGdW5j
dGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzMsNyArMjMzLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5cGVFdmFsdWF0ZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVMb2FkZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nh
c3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFsb2FkZXIp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmV2YWx1YXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50
KDApLCBleGVjLT5hcmd1bWVudCgxKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9h
ZGVyLT5ldmFsdWF0ZShleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSks
IGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCA5MzNhMmU1MTg0YWI5OWZmMjZmY2MxMmY2
MjMwYjhkMDNlZTE5ZDgwLi5kZDZiMzA1ZWYxMjE5ZDNhMTAzNDIzNzdhODA5OGZmMGI5NzZhZTUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaApAQCAtNjQsNyArNjQsNyBA
QCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIFN5bWJvbChWTSYp
OwogICAgIFN5bWJvbChWTSYsIGNvbnN0IFN0cmluZyYpOwotICAgIFN5bWJvbChWTSYsIFN5bWJv
bEltcGwmIHVpZCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3ltYm9sKFZNJiwgU3ltYm9sSW1w
bCYgdWlkKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBjNTYxYWI3MTY0MTEyNTE4YWNhYWEyNTQxNTc4NjM5ZTY2ZmYxNTNmLi4zZTdk
ZTQ2MzdjZjhhNzBmMTlmOTY0MjUzODQyNTMzZmYzZjVhMzcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMTIxMCw2ICsxMjEwLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdz
L2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAK
KyAgICBiaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuY3BwCisgICAgYmluZGluZ3MvanMvSlNN
b2R1bGVHcmFwaC5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDExYjk4MzBjYmM5MTQ3OWY5ZWEzMDAwZmFhNmY2
MTc1NDgxODM4ZGEuLjMyNDFjZjY4ZTg3ZGRhZjU0M2I0ZDA4N2Q4YTFiMDBmNWRjNjQxZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI1MzE3LDYgKzI1MzE3LDcgQEAKIAkJCQk5MzdGRjNENTFBMTAxMkQ2MDA4RUJBMzEgLyog
RGljdGlvbmFyeUxvb2t1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ1NjQ2QjAxQjhGODQ5MzAw
M0M0OTk0IC8qIERpY3Rpb25hcnlQb3B1cEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQUYx
OTk5MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RDb252b2x2ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUzMzlBNTI0MUJBNkJENDYwMEEzQTdBRSAvKiBKU01vZHVsZUdyYXBoLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNv
Y29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlz
cGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUwMDA3QTJDQSAv
KiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVycyAqLywKQEAgLTI2ODUyLDYgKzI2ODUzLDcg
QEAKIAkJCQlDRTEyNTI0MTFBMTZCMUI2MDA4NjQ0ODAgLyogTWVkaWFQbGF5ZXJTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIEpT
TW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBG
RTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkUw
QTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJCUQz
QTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNzk0Niw2ICsyNzk0OCw3IEBACiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYwQkZD
NjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUzODgzODk3MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUZldGNo
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUNFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdU
ZXh0UGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUQxMEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODU0QjAyNTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5LmggaW4gSGVhZGVycyAqLywK
QEAgLTI4NzUzLDYgKzI4NzU2LDcgQEAKIAkJCQlDRDBFRUUwRTE0NzQzRjM5MDAzRUFGQTIgLyog
QXVkaW9EZXN0aW5hdGlvbklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBCQzEyQjAy
NzJBMDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDMxNjAwNzEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTMzOUE1MjMxQkE2QkQ0NjAwQTNBN0FFIC8qIEpTTW9kdWxlR3Jh
cGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwODExMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENTU5NjkxMTQ3
NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwQkUxMkIwMjcyQTAwQzFBMzU5IC8qIEF1ZGlvRmlsZVJlYWRlck1hYy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI5NjQ1LDYgKzI5NjQ5LDcgQEAKIAkJCQlBODcxREIyRTBBMTUwQkQ2
MDBCMTJBNjggLyogSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTg3MURCMjkwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTg3MURCMjgwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4ODM4OTYxQkFEMTQ1RjAwRDYyRUUzIC8qIEpT
TW9kdWxlRmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREIyRDBBMTUwQkQ2MDBC
MTJBNjggLyogSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3
MURCMzAwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTM0NDJDQTAwRDJCMzM2MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMTI5ZjQ0OWEyNDU4ZTA2MzkxYzEwNjNl
YTk4NTczNDkxZjM3YzU5Zi4uNDAxZTllN2QxNGMzYmY2NWY5NGI5ZWUwYmFjOTQ4YTAwZmRmOWZj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbElu
T25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwCkBAIC0xMDksNiArMTA5LDggQEAKICNpbmNsdWRlICJKU01lc3NhZ2VDaGFubmVsQ3Vz
dG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmNwcCIK
KyNpbmNsdWRlICJKU01vZHVsZUdyYXBoLmNwcCIKICNpbmNsdWRlICJKU01vZHVsZUxvYWRlci5j
cHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU011dGF0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKaW5kZXggNjkwNzRmNzIzNWNhYzJmYmUxNDY2MjNkZTFjZGFmMDY3
OTYyOTIzMS4uYzM0YzEwYzk2MzZhNTI5YjJhYWFmZTZkMjE0NzJkN2YwOWYxMTJlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0zMjMs
MjkgKzMyMywyOSBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6ZmlyZUZyYW1lQ2xlYXJlZFdhdGNo
cG9pbnRzRm9yV2luZG93KERPTVdpbmRvdyogd2luZG93KQogfQogCiAKLUpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9k
dWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpT
VmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxl
TG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9k
dWxlS2V5LCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpTRE9NV2luZG93QmFzZSog
dGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7
CiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+
cmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1w
b3J0ZXJNb2R1bGVLZXkpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigp
LT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBp
bXBvcnRlck1vZHVsZUtleSwgaW5pdGlhdG9yKTsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVj
LCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5k
b3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2Fk
ZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXkpCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RP
TVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVs
ZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcikK
IHsKICAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdp
bmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwogICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3Vt
ZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBk
b2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmZldGNoKGdsb2JhbE9iamVjdCwgZXhlYywgbW9kdWxl
TG9hZGVyLCBtb2R1bGVLZXkpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRl
cigpLT5mZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBp
bml0aWF0b3IpOwogICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQg
PSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmpl
Y3QpOwogICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVkKCkpOwog
fQogCi1KU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXks
IEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQpCitKU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6
SlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0g
SlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoUmVm
UHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgp
KQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFsdWF0ZShnbG9i
YWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQpOwor
ICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5ldmFsdWF0ZShnbG9iYWxP
YmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIGluaXRp
YXRvcik7CiAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA4MGQ5NjA4ZmE2MDMwN2Ux
NjAwZmMyMWM5YWQ4NmYyZDdkOTMyYTRiLi5mNWYzYmUwNTIzZTU5NjlhZDJlMzcxNjBmYmU0MGJj
YzY3MmRjMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuaApAQCAtNzgsOSArNzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTQzo6
V2F0Y2hwb2ludFNldCBtX3dpbmRvd0Nsb3NlV2F0Y2hwb2ludHM7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyUmVzb2x2
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgICAgICBzdGF0aWMgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSk7Ci0g
ICAgICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIG1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVl
LCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICAg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1Zh
bHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwogICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKiBtX3NoZWxsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaApp
bmRleCAwZWUzMTcyZTMyYTU3MWRjMjAxYzBhOTA0MzQzZTY5ODZjMTNhZGYwLi40YTc3NGU5MDEw
MmVkMDdkOWUzMGM2ZWNmMmI2Y2Q5MmNjYjg3NjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaApAQCAtOTMsNiArOTMsMjQgQEAg
Y2xhc3MgSlNNYWluVGhyZWFkRXhlY1N0YXRlIHsKICAgICAgICAgdGFzay5ydW4oZXhlYyk7CiAg
ICAgfQogCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVl
IGluaXRpYXRvcikKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50
U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxl
TmFtZSwgaW5pdGlhdG9yKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKQorICAgIHsKKyAgICAgICAg
SlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJu
IEpTQzo6bG9hZE1vZHVsZShleGVjLCBzb3VyY2VDb2RlLCBpbml0aWF0b3IpOworICAgIH0KKwor
ICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5LCBK
U0M6OkpTVmFsdWUgaW5pdGlhdG9yKQorICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0
YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6bGlua0FuZEV2YWx1
YXRlTW9kdWxlKGV4ZWMsIG1vZHVsZUtleSwgaW5pdGlhdG9yKTsKKyAgICB9CisKICAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGluc3RydW1lbnRGdW5jdGlvbkNhbGwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEpTQzo6Q2FsbFR5cGUsIGNvbnN0IEpTQzo6Q2FsbERh
dGEmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGluc3RydW1l
bnRGdW5jdGlvbkNvbnN0cnVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpDb25zdHJ1
Y3RUeXBlLCBjb25zdCBKU0M6OkNvbnN0cnVjdERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVGZXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM1MjdhZTJjYTEz
NDY1MjZlYTBkMWM4MDRkMDVjNDgyZmJkOTJmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5jcHAKQEAgLTAsMCArMSwxNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRj
aGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0pTTW9kdWxlRmV0Y2hlcjo6SlNNb2R1bGVGZXRjaGVyKEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
OiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV9zb3VyY2VVUkwoc291cmNlVVJMKQorICAg
ICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QpCisgICAg
LCBtX2RlZmVycmVkKGdsb2JhbE9iamVjdC0+dm0oKSwgZGVmZXJyZWQpCit7Cit9CisKK0pTTW9k
dWxlRmV0Y2hlcjo6fkpTTW9kdWxlRmV0Y2hlcigpCit7CisgICAgaWYgKG1fY2FjaGVkU2NyaXB0
KSB7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAg
IG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKyAgICB9Cit9CisKK1JlZjxKU01vZHVsZUZldGNo
ZXI+IEpTTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQq
IGRlZmVycmVkLCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSlNNb2R1bGVGZXRjaGVyKGdsb2JhbE9iamVjdCwgc291cmNlVVJMLCBkZWZlcnJlZCwgZG9j
dW1lbnQpKTsKK30KKworYm9vbCBKU01vZHVsZUZldGNoZXI6OnJ1bihTY3JpcHRFbGVtZW50KiBl
bGVtZW50KQoreworICAgIGlmIChlbGVtZW50KQorICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IGVs
ZW1lbnQtPnJlcXVlc3RNb2R1bGVTY3JpcHQobV9zb3VyY2VVUkwpOworICAgIGVsc2UgeworICAg
ICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVy
OjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CisgICAgICAgIG9wdGlvbnMuY29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRp
b246OkRvUG9saWN5Q2hlY2s7CisKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KG1fc291cmNlVVJMKSwgb3B0aW9ucyk7CisKKyAgICAgICAgLy8g
TW9kdWxlIGZldGNoZXIgYWx3YXlzIGludGVycHJldCBzY3JpcHRzIGFzIFVURi04LgorICAgICAg
ICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2xvYWRlci9pc3N1ZXMvODMKKyAgICAgICAg
cmVxdWVzdC5zZXRDaGFyc2V0KEFTQ0lJTGl0ZXJhbCgidXRmLTgiKSk7CisKKyAgICAgICAgLy8g
RklYTUU6IFNob3VsZCBoYW5kbGUgImNyb3Nzb3JpZ2luIiBvcHRpb25zLgorICAgICAgICAvLyBP
bmNlIHRoZSBzcGVjIGRlc2NyaWJlcyB0aGUgZGV0YWlscywgd2Ugd2lsbCBmb2xsb3cgaXQuCisg
ICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKEF0b21pY1N0cmluZyhtX3NvdXJjZVVSTC5zdHJp
bmcoKSkpOworCisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9kb2N1bWVudC5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CisgICAgfQorCisgICAgaWYgKCFt
X2NhY2hlZFNjcmlwdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gTm90ZTogSWYg
dGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMgaW1tZWlkYXRlbHkgY2FsbHMgbm90
aWZ5RmluaXNoZWQuCisgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBKU01vZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCBy
ZXNvdXJjZSA9PSBtX2NhY2hlZFNjcmlwdCk7CisgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKG1fY2FjaGVkU2NyaXB0KTsKKyAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCA9IG1fY2FjaGVkU2NyaXB0
OworICAgIG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKworI2lmIEVOQUJMRShOT1NOSUZGKQor
ICAgIGlmIChjYWNoZWRTY3JpcHQgJiYgIWNhY2hlZFNjcmlwdC0+bWltZVR5cGVBbGxvd2VkQnlO
b3NuaWZmKCkpIHsKKyAgICAgICAgbV9kb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIlJlZnVzZWQgdG8gZXhlY3V0
ZSBzY3JpcHQgZnJvbSAnIiArIGNhY2hlZFNjcmlwdC0+dXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBz
aXplZFRvTGVuZ3RoKCkgKyAiJyBiZWNhdXNlIGl0cyBNSU1FIHR5cGUgKCciICsgY2FjaGVkU2Ny
aXB0LT5taW1lVHlwZSgpICsgIicpIGlzIG5vdCBleGVjdXRhYmxlLCBhbmQgc3RyaWN0IE1JTUUg
dHlwZSBjaGVja2luZyBpcyBlbmFibGVkLiIpOworICAgICAgICBjYWNoZWRTY3JpcHQtPnJlbW92
ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgUmVm
PERvY3VtZW50PiBwcm90ZWN0b3IobV9kb2N1bWVudCk7CisKKyAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gbV9kb2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2so
bV9nbG9iYWxPYmplY3QtPnZtKCkpOworICAgICAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IG1f
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQtPmVy
cm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgLy8gVGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxp
bmUgaXMgY29uc3RydWN0ZWQgYXMgYSBjaGFpbiBvZiBwcm9taXNlcy4KKyAgICAgICAgICAgIC8v
IFJlamVjdGluZyBhIHByb21pc2UgaWYgc29tZSBlcnJvciBvY2N1cnMgaXMgaW1wb3J0YW50IGJl
Y2F1c2UgdGhlIGV4ZWN1dGlvbiBmbG93IG9mCisgICAgICAgICAgICAvLyB0aGUgcHJvbWlzZSBj
aGFpbiBpcyBkcml2ZW4gYnkgInJlamVjdGVkIiBvciAiZnVsZmlsbGVkIiBldmVudHMuCisgICAg
ICAgICAgICAvLyBJZiB0aGUgcHJvbWlzZSBpcyBub3QgcmVqZWN0ZWQgd2hpbGUgZXJyb3Igb2Nj
dXJzLCByZWplY3QgaGFuZGxlciB3b24ndCBiZSBleGVjdXRlZAorICAgICAgICAgICAgLy8gYW5k
IGFsbCB0aGUgc3Vic2VxdWVudCBwcm9taXNlIGNoYWluIHdpbGwgd2FpdCB0aGUgcmVzdWx0IGZv
cmV2ZXIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQXMgYSByZXN1bHQsIGV2ZW4g
aWYgdGhlIGVycm9yIGlzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBlbHNld2hl
cmUsCisgICAgICAgICAgICAvLyBpdCBzaG91bGQgYmUgcHJvcGFnYXRlZCBpbiB0aGUgcGlwZWxp
bmUuIEZvciBleGFtcGxlLCB0aGUgZXJyb3Igb2YgbG9hZGluZworICAgICAgICAgICAgLy8gQ2Fj
aGVkUmVzb3VyY2UgaXMgYWxyZWFkeSByZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGJ5IHRoZSBs
b2FkZXIuIEJ1dCB3ZSBzdGlsbCBuZWVkCisgICAgICAgICAgICAvLyB0byByZWplY3QgdGhlIHBy
b21pc2UgYnkgc29tZSBlcnJvci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBOb3Qg
dG8gcmVwb3J0IHRoZSBlcnJvciB0d2ljZSwgd2hlbiB3ZSBwcm9wYWdhdGUgdGhlIGVycm9yIHRo
YXQgaXMgYWxyZWFkeSByZXBvcnRlZAorICAgICAgICAgICAgLy8gdG8gdGhlIGluc3BlY3Rvciwg
d2UgdGhyb3cgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgc3ltYm9sIGlu
c3RlYWQuCisgICAgICAgICAgICAvLyBCeSBjb21wYXJpbmcgdGhlIHRocm93biBlcnJvciB3aXRo
IHRoaXMgc3ltYm9sLCB3ZSBjYW4gZGlzdGluZ3Vpc2ggZXJyb3JzIHJhaXNlZAorICAgICAgICAg
ICAgLy8gd2hlbiBsaW5raW5nIG9yIGV4ZWN1dGluZyBhIG1vZHVsZSBncmFwaCBmcm9tIGVycm9y
cyByZXBvcnRlZCBhbHJlYWR5LgorICAgICAgICAgICAgLy8gSW4gdGhlIHJlamVjdCBoYW5kbGVy
IG9mIHRoZSBwcm9taXNlLCB3ZSBvbmx5IHJlcG9ydCBhIGVycm9yIHRoYXQgaXMgbm90IHRoaXMg
c3ltYm9sLgorICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9s
OjpjcmVhdGUoZXhlYy0+dm0oKSwgKihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2woKS51aWQoKSkpKTsKKyAgICAgICAgfSBlbHNlIGlmICghY2Fj
aGVkU2NyaXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICBTY3JpcHRTb3VyY2VDb2Rl
IHNvdXJjZUNvZGUoY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIG1fZGVmZXJyZWQt
PnJlc29sdmUoZXhlYywgSlNDOjpqc1N0cmluZyhleGVjLCBzb3VyY2VDb2RlLnNvdXJjZSgpLnRv
U3RyaW5nKCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEEgQ2FjaGVkUmVzb3VyY2VI
YW5kbGUgYWxvbmUgZG9lcyBub3QgcHJldmVudCB0aGUgdW5kZXJseWluZyBDYWNoZWRSZXNvdXJj
ZQorICAgIC8vIGZyb20gcHVyZ2luZyBpdHMgZGF0YSBidWZmZXIuIFVudGlsIHdlIGZpbmlzaCB1
c2luZyB0aGUgYmFja2luZyBidWZmZXIgb2YgdGhlCisgICAgLy8gY2FjaGVkIHNjcmlwdCwgd2Ug
ZG9uJ3QgcmVtb3ZlIHRoZSBjbGllbnQuCisgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQo
dGhpcyk7CisKKyAgICBtX2RvY3VtZW50Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0
aGlzKTsKKyAgICAvLyBBZnRlciBKU01vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQgY2FsbCwg
fHRoaXN8IG1heSBiZSBkZXN0cm95ZWQuCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNb2R1bGVGZXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M5NTA3NTg0YTA4M2RhMzNjZmEz
Nzg3Yzc4YTU1NmIwOWJlOWE5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEpTTW9kdWxlRmV0Y2hlcl9oCisjZGVmaW5lIEpTTW9kdWxlRmV0Y2hlcl9oCisK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlVSTC5o
IgorI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgor
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNo
ZWRTY3JpcHQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xh
c3MgU2NyaXB0RWxlbWVudDsKKworY2xhc3MgSlNNb2R1bGVGZXRjaGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8SlNNb2R1bGVGZXRjaGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNNb2R1bGVGZXRjaGVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxKU01vZHVsZUZldGNoZXI+IGNyZWF0
ZShKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQqLCBEb2N1bWVudCYpOworCisgICAgfkpTTW9kdWxlRmV0Y2hlcigp
OworCisgICAgYm9vbCBydW4oU2NyaXB0RWxlbWVudCopOworCisgICAgQ2FjaGVkU2NyaXB0KiBj
YWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIEpTTW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IFVSTCYgc291
cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqLCBEb2N1bWVudCYpOworCisg
ICAgLy8gRm9yIENhY2hlZFJlc291cmNlQ2xpZW50LgorICAgIHZvaWQgbm90aWZ5RmluaXNoZWQo
Q2FjaGVkUmVzb3VyY2UqKSBvdmVycmlkZTsKKworICAgIERvY3VtZW50JiBtX2RvY3VtZW50Owor
ICAgIFVSTCBtX3NvdXJjZVVSTDsKKyAgICBKU0M6OlN0cm9uZzxKU0RPTUdsb2JhbE9iamVjdD4g
bV9nbG9iYWxPYmplY3Q7CisgICAgSlNDOjpTdHJvbmc8SlNDOjpKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkPiBtX2RlZmVycmVkOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4gbV9jYWNoZWRTY3JpcHQgeyB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gSlNNb2R1bGVGZXRjaGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTW9kdWxlR3JhcGguY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNb2R1bGVHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTg3NTRjZGI3NGFlNGYwMjQ0NmNhYzIyYjky
YTRiZmJlMzYyOTk4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTW9kdWxlR3JhcGguY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVHcmFwaC5oIgorCisjaW5jbHVkZSAi
RE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiSlNNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgor
I2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitK
U01vZHVsZUdyYXBoOjpKU01vZHVsZUdyYXBoKEVsZW1lbnQmIGVsZW1lbnQpCisgICAgOiBtX2Vs
ZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fd2Vha1B0ckZhY3RvcnkoJmVsZW1lbnQpCit7Cit9CisK
K3ZvaWQgSlNNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1
bGVLZXkpCit7CisgICAgbV9tb2R1bGVLZXkgPSBtb2R1bGVLZXk7CisgICAgbV9lbGVtZW50LmRv
Y3VtZW50KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeUpTTW9kdWxlR3JhcGhSZWFkeSh0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpKTsKK30KKwordm9pZCBKU01vZHVsZUdyYXBo
Ojpub3RpZnlFcnJvcmVkKCkKK3sKKyAgICBtX2Vycm9yZWQgPSB0cnVlOworICAgIG1fZWxlbWVu
dC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5ub3RpZnlKU01vZHVsZUdyYXBoUmVhZHkodG9T
Y3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgSlNNb2R1bGVH
cmFwaDo6ZXZhbHVhdGUoKQoreworICAgIGlmIChtX2Vycm9yZWQpCisgICAgICAgIHRvU2NyaXB0
RWxlbWVudElmUG9zc2libGUoJm1fZWxlbWVudCktPmRpc3BhdGNoRXJyb3JFdmVudCgpOworICAg
IGVsc2UgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisg
ICAgICAgIGZyYW1lLT5zY3JpcHQoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGUoKnRoaXMsIG1fZWxl
bWVudCk7Cit9CisKK3ZvaWQgSlNNb2R1bGVHcmFwaDo6bm90aWZ5RXZhbHVhdGVkKCkKK3sKKyAg
ICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaExvYWRFdmVu
dCgpOworfQorCit2b2lkIEpTTW9kdWxlR3JhcGg6OmxvYWQoY29uc3QgU3RyaW5nJiBtb2R1bGVO
YW1lKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBt
X2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQoKS5sb2FkTW9kdWxlKCp0aGlzLCBt
b2R1bGVOYW1lLCBtX2VsZW1lbnQpOworfQorCit2b2lkIEpTTW9kdWxlR3JhcGg6OmxvYWQoY29u
c3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50
LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+
c2NyaXB0KCkubG9hZE1vZHVsZSgqdGhpcywgc291cmNlQ29kZSwgbV9lbGVtZW50KTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjViYWRmMGVmNTlmM2YyNGZiZjc1ZDRjMjI1MDQzOGUxNjY0ZTRkNDMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmgKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSlNNb2R1bGVHcmFwaF9oCisjZGVmaW5lIEpT
TW9kdWxlR3JhcGhfaAorCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVkZSA8
cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRWxlbWVudDsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CisKKy8vIEtlZXAgbGlmZXRpbWUg
b2YgYSBKU01vZHVsZUdyYXBoIHRoZSBzYW1lIHRvIGEgU2NyaXB0RWxlbWVudC4KK2NsYXNzIEpT
TW9kdWxlR3JhcGggeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTTW9kdWxlR3JhcGgpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBKU01vZHVsZUdy
YXBoKEVsZW1lbnQmKTsKKworICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1l
bnQ7IH0KKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgeyByZXR1cm4gbV9tb2R1
bGVLZXkuZ2V0KCk7IH0KKworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUp
OworICAgIHZvaWQgbG9hZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisgICAgdm9pZCBldmFs
dWF0ZSgpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrRWxlbWVudFB0cigpCisgICAgewor
ICAgICAgICByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgfQor
CisgICAgdm9pZCBub3RpZnlMb2FkZWQoVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSk7Cisg
ICAgdm9pZCBub3RpZnlFcnJvcmVkKCk7CisKKyAgICB2b2lkIG5vdGlmeUV2YWx1YXRlZCgpOwor
CisgICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcmVkOyB9Cisg
ICAgYm9vbCBpc0xvYWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5OyB9CisKK3ByaXZh
dGU6CisKKyAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CisgICAgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJ
bXBsPiBtX21vZHVsZUtleTsKKyAgICBXZWFrUHRyRmFjdG9yeTxFbGVtZW50PiBtX3dlYWtQdHJG
YWN0b3J5OworICAgIGJvb2wgbV9lcnJvcmVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcAppbmRleCBiYTFlM2VjYzFkZDBjNmVl
YWViZTI3MGViNGNiZjI1ZWU0NzhhNTE5Li5iZDBmMTE0Y2YyNGI5ODZkMzk2N2M1ZDc1NTY4NTAz
OWEzMTM5ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVs
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2Fk
ZXIuY3BwCkBAIC0zMCw2ICszMCw5IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNF
bGVtZW50LmgiCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaD4KICNpbmNsdWRlIDxydW50
aW1lL0pTU3RyaW5nLmg+CkBAIC00Miw3ICs0NSw3IEBAIEpTTW9kdWxlTG9hZGVyOjpKU01vZHVs
ZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiB9CiAKLUpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIEpTTW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpT
VmFsdWUgbW9kdWxlTmFtZVZhbHVlLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCitK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9k
dWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWVWYWx1ZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAKQEAgLTgyLDcgKzg1LDcgQEAgSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gZGVmZXJyZWQtPnJlc29sdmUoZXhlYywganNTdHJp
bmcoZXhlYywgY29tcGxldGVkVXJsLnN0cmluZygpKSk7CiB9CiAKLUpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpK
U1ZhbHVlIG1vZHVsZUtleVZhbHVlKQorSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVM
b2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5
VmFsdWUsIEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNDOjpKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAKQEAgLTk2LDEyICs5OSwyMSBAQCBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogICAgIGlmICghY29tcGxldGVkVXJsLmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpjcmVhdGVUeXBlRXJyb3IoZXhl
YywgIk1vZHVsZSBrZXkgaXMgYW4gaW52YWxpZCBVUkwuIikpOwogCi0gICAgLy8gRklYTUU6IElt
cGxlbWVudCB0aGUgbW9kdWxlIGZldGNoZXIuCisgICAgU2NyaXB0RWxlbWVudCogc2NyaXB0RWxl
bWVudCA9IG51bGxwdHI7CisgICAgaWYgKGF1dG8qIGVsZW1lbnQgPSBKU0M6OmpzRHluYW1pY0Nh
c3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSkKKyAgICAgICAgc2NyaXB0RWxlbWVudCA9IHRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUoJmVsZW1lbnQtPndyYXBwZWQoKSk7CisKKyAgICBSZWY8SlNN
b2R1bGVGZXRjaGVyPiBmZXRjaGVyID0gSlNNb2R1bGVGZXRjaGVyOjpjcmVhdGUoSlNDOjpqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBjb21wbGV0ZWRVcmwsIGRlZmVy
cmVkLCBtX2RvY3VtZW50KTsKKyAgICBtX2ZldGNoaW5nU2V0LmFkZCgmZmV0Y2hlci5nZXQoKSk7
CisgICAgaWYgKCFmZXRjaGVyLT5ydW4oc2NyaXB0RWxlbWVudCkpIHsKKyAgICAgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBkZWZl
cnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVhdGUoZXhlYy0+dm0oKSwgKihmcmFt
ZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKS51aWQo
KSkpKTsKKyAgICB9CiAKICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsKIH0KIAotSlND
OjpKU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUg
bW9kdWxlS2V5VmFsdWUsIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSkKK0pTQzo6SlNW
YWx1ZSBKU01vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUsIEpTQzo6SlNWYWx1ZSkK
IHsKICAgICAvLyBGSVhNRTogQ3VycmVudGx5LCB3ZSBvbmx5IHN1cHBvcnQgSlNNb2R1bGVSZWNv
cmQuCiAgICAgLy8gT25jZSB0aGUgcmVmbGVjdGl2ZSBwYXJ0IG9mIHRoZSBtb2R1bGUgbG9hZGVy
IGlzIHN1cHBvcnRlZCwgd2Ugd2lsbCBoYW5kbGUgYXJiaXRyYXJ5IHZhbHVlcy4KQEAgLTEyMSw5
ICsxMzMsMTQgQEAgSlNDOjpKU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMKICAgICBpZiAoIXNvdXJjZVVybC5p
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBKU0M6OnRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiTW9kdWxlIGtleSBpcyBhbiBpbnZhbGlkIFVSTC4iKSk7CiAKLSAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGV2YWx1YXRpbmcgbW9kdWxlIGNvZGUuCi0KKyAgICBpZiAoRnJhbWUqIGZy
YW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKQorICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgp
LmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVybCwgbW9kdWxlUmVjb3JkKTsKICAgICByZXR1cm4gSlND
Ojpqc1VuZGVmaW5lZCgpOwogfQogCit2b2lkIEpTTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChKU01vZHVsZUZldGNoZXIqIGZldGNoZXIpCit7CisgICAgbV9mZXRjaGluZ1NldC5yZW1vdmUo
ZmV0Y2hlcik7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxv
YWRlci5oCmluZGV4IDY5YTUwMWE1YWU1M2E1NjIxNGM1Y2M1OWNlY2IzMTkwMDc2ZmUxZmQuLjJl
NDc1MDNhNWM1Y2M0NTAzODMyYTI0NGY0Y2VkM2U5NjM3Y2Y0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTQwLDYgKzQxLDcgQEAgY2xhc3MgSlNNb2R1bGVMb2FkZXI7CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgSlNNb2R1bGVGZXRjaGVyOwogCiBjbGFz
cyBKU01vZHVsZUxvYWRlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNNb2R1bGVMb2Fk
ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ4LDEyICs1MCwxNSBAQCBjbGFzcyBK
U01vZHVsZUxvYWRlciB7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSB7IHJldHVybiBtX2Rv
Y3VtZW50OyB9CiAKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiByZXNvbHZlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KTsKLSAg
ICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eSk7Ci0gICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5
LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9y
dGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlKiBmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVl
IGluaXRpYXRvcik7CisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUg
bW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgaW5pdGlh
dG9yKTsKKworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoSlNNb2R1bGVGZXRjaGVyKik7CiAKIHBy
aXZhdGU6CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgSGFzaFNldDxSZWZQdHI8SlNN
b2R1bGVGZXRjaGVyPj4gbV9mZXRjaGluZ1NldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAK
aW5kZXggNjg4Mzk3YTA1Yzc4MDEwY2NlYTI0OTVkMjMwMzkwOTUxN2M0ZTYwOS4uNzc5OGZlZjJj
OGVlZjg4NGM2ZDQzY2U0ZTE4ZjkyOWI0MzRmNmE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbmNsdWRlICJKU01vZHVsZUdyYXBoLmgiCiAjaW5j
bHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgiCiAj
aW5jbHVkZSAiTlBfanNvYmplY3QuaCIKQEAgLTQxLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQYWdl
Q29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBsdWdp
blZpZXdCYXNlLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlw
dFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNTMsNyArNTUsMTEgQEAKICNpbmNsdWRlIDxoZWFwL1N0
cm9uZ0lubGluZXMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU01vZHVsZVJl
Y29yZC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4K
IApAQCAtODUsNiArOTEsNyBAQCBTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250cm9sbGVyKEZy
YW1lJiBmcmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX3NvdXJjZVVSTCgwKQog
ICAgICwgbV9wYXVzZWQoZmFsc2UpCisgICAgLCBtX21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKCkKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAsIG1f
d2luZG93U2NyaXB0TlBPYmplY3QoMCkKICNlbmRpZgpAQCAtMTU1LDcgKzE2Miw3IEBAIEpTVmFs
dWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmIHNvdXJjZUNvZGUsIERPCiAgICAgY29uc3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1f
c291cmNlVVJMOwogICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTDsKIAotICAgIFJlZjxGcmFt
ZT4gcHJvdGVjdChtX2ZyYW1lKTsKKyAgICBSZWY8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1lKTsK
IAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwsIHNv
dXJjZUNvZGUuc3RhcnRMaW5lKCkpOwogCkBAIC0xNzksNiArMTg2LDEyMyBAQCBKU1ZhbHVlIFNj
cmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNv
ZGUsIEV4Y2VwdGlvbgogICAgIHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgbWFp
blRocmVhZE5vcm1hbFdvcmxkKCksIGV4Y2VwdGlvbkRldGFpbHMpOwogfQogCitzdGF0aWMgdm9p
ZCBoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBlcnJv
ciwgY29uc3QgUHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3lt
Ym9sKQoreworICAgIC8vIE9uY2UgcmVwb3J0ZWQgZXJyb3IgaXMgbWFya2VkIGFzIG1vZHVsZUxv
YWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sLgorICAgIC8vIERvbid0IHJlcG9ydCBpdCBo
ZXJlIGFnYWluLgorICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9IGpzRHluYW1pY0Nhc3Q8U3ltYm9s
Kj4oZXJyb3IpKSB7CisgICAgICAgIGlmIChzeW1ib2wtPnByaXZhdGVOYW1lKCkgPT0gbW9kdWxl
TG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgaGF2ZSBub3Qgc3VwcG9ydGVkIHRoZSAi
Y3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSBpbiB0aGUgbW9kdWxlIHRhZywKKyAgICAvLyB3ZSBwYXNz
IHRoZSBudWxscHRyIHRvIHJlcG9ydEV4Y2VwdGlvbidzIENhY2hlZFNjcmlwdCogcGFyYW1ldGVy
LiBXaGVuIHBhc3NpbmcgbnVsbHB0cgorICAgIC8vIHRvIHJlcG9ydEV4Y2VwdGlvbiwgV2ViQ29y
ZSBkb2VzIG5vdCBzaG93IHRoZSBkZXRhaWwgb2YgdGhlIGVycm9yIGlmIHRoZSBVUkwgb2YgdGhl
CisgICAgLy8gc291cmNlIGRvZXMgbm90IHBhc3MgdGhlIHNhbWUgb3JpZ2luIHBvbGljeS4gU28g
dGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgY29uc2VydmF0aXZlOworICAgIC8vIG9ubHkgdGhlIG1v
ZHVsZSBjb2RlIHRoYXQgVVJMIGlzIHdpdGhpbiB0aGUgc2FtZSBvcmlnaW4gY2FuIHJlcG9ydCB0
aGUgZGV0YWlscyBvZiB0aGUKKyAgICAvLyBlcnJvci4gT25jZSB0aGUgc3BlYyBkZXNjcmliZXMg
dGhlIGJlaGF2aW9yLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICByZXBvcnRFeGNlcHRpb24oZXhl
YywgZXJyb3IsIG51bGxwdHIpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1
bGVJbldvcmxkKEpTTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTdHJpbmcmIG1vZHVs
ZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAg
SlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBz
aGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+
d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIGluaXRKU01vZHVsZUdyYXBoKG1vZHVsZUdy
YXBoLCBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxvYWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSwg
dG9KUyhleGVjLCBzaGVsbC0+d2luZG93KCksICZlbGVtZW50KSksIHdvcmxkKTsKK30KKwordm9p
ZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlKEpTTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBo
LCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgbG9h
ZE1vZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIG1vZHVsZU5hbWUsIG1haW5UaHJlYWROb3JtYWxX
b3JsZCgpLCBlbGVtZW50KTsKK30KKwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxl
SW5Xb3JsZChKU01vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYgc291cmNlQ29kZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93
U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOworCisgICAgaW5pdEpTTW9kdWxlR3JhcGgo
bW9kdWxlR3JhcGgsIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBzb3Vy
Y2VDb2RlLmpzU291cmNlQ29kZSgpLCB0b0pTKGV4ZWMsIHNoZWxsLT53aW5kb3coKSwgJmVsZW1l
bnQpKSwgd29ybGQpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUoSlNN
b2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNv
ZGUsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgbG9hZE1vZHVsZUluV29ybGQobW9kdWxlR3Jh
cGgsIHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBlbGVtZW50KTsKK30KKwor
dm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKEpTTW9k
dWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBET01XcmFwcGVyV29ybGQmIHdvcmxkLCBFbGVtZW50JiBl
bGVtZW50KQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNE
T01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRl
KiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBKU0ludGVybmFs
UHJvbWlzZSogcHJvbWlzZSA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bGlua0FuZEV2YWx1YXRl
TW9kdWxlKGV4ZWMsIElkZW50aWZpZXI6OmZyb21VaWQoJmV4ZWMtPnZtKCksIG1vZHVsZUdyYXBo
Lm1vZHVsZUtleSgpKSwgdG9KUyhleGVjLCBzaGVsbC0+d2luZG93KCksICZlbGVtZW50KSk7CisK
KyAgICBXZWFrUHRyPEVsZW1lbnQ+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha0VsZW1lbnRQdHIo
KSk7CisgICAgSlNGdW5jdGlvbiogZnVsZmlsbEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9u
OjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dlYWtQ
dHJdKEV4ZWNTdGF0ZSopIHsKKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0g
d2Vha1B0ci5nZXQoKSkKKyAgICAgICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxl
bWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUV2YWx1YXRlZCgpOworICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgUHJp
dmF0ZU5hbWUgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgPSBtX21vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOworICAgIEpTRnVuY3Rpb24qIHJlamVj
dEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwt
PndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9y
U3ltYm9sLCB3ZWFrUHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgaWYgKFJlZlB0cjxF
bGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkKKyAgICAgICAgICAgIHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUV2YWx1
YXRlZCgpOworICAgICAgICBoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKGV4ZWMsIGV4ZWMtPmFy
Z3VtZW50KDApLCBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCk7CisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAg
ICBwcm9taXNlLT50aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCByZWplY3RIYW5kbGVyKTsKK30K
Kwordm9pZCBTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoSlNNb2R1bGVH
cmFwaCYgbW9kdWxlR3JhcGgsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgbGlua0FuZEV2YWx1
YXRlTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFwaCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCksIGVs
ZW1lbnQpOworfQorCitKU0M6OkpTVmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1
bGUoY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIERP
TVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0o
KSk7CisKKyAgICBjb25zdCBTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUgPSBtb2R1bGVSZWNvcmQt
PnNvdXJjZUNvZGUoKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hl
bGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFs
RXhlYygpOworICAgIGNvbnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsK
KyAgICBtX3NvdXJjZVVSTCA9ICZzb3VyY2VVUkwuc3RyaW5nKCk7CisKKyAgICBSZWY8RnJhbWU+
IHByb3RlY3RvcihtX2ZyYW1lKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdCht
X2ZyYW1lLCBzb3VyY2VVUkwsIGpzU291cmNlQ29kZS5maXJzdExpbmUoKSk7CisKKyAgICBKU1Zh
bHVlIHJldHVyblZhbHVlID0gbW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShleGVjKTsKKyAgICBOYWtl
ZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247CisgICAgaWYgKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKQorICAgICAgICBldmFsdWF0aW9uRXhjZXB0aW9uID0gZXhlYy0+dm0oKS5leGNl
cHRpb24oKTsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRXZhbHVhdGVTY3Jp
cHQoY29va2llLCBtX2ZyYW1lKTsKKworICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKSB7Cisg
ICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBldmFsdWF0aW9uRXhjZXB0aW9uLCBudWxscHRy
KTsKKyAgICAgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKKyAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVS
TDsKKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7Cit9CisKK0pTQzo6SlNWYWx1ZSBTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNv
cmQqIG1vZHVsZVJlY29yZCkKK3sKKyAgICByZXR1cm4gZXZhbHVhdGVNb2R1bGUoc291cmNlVVJM
LCBtb2R1bGVSZWNvcmQsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKK30KKwogUmVmPERPTVdy
YXBwZXJXb3JsZD4gU2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlV29ybGQoKQogewogICAgIHJldHVy
biBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZShKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7CkBAIC0y
NTksNiArMzgzLDQxIEBAIEpTRE9NV2luZG93U2hlbGwqIFNjcmlwdENvbnRyb2xsZXI6OmluaXRT
Y3JpcHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKICAgICByZXR1cm4gJndpbmRvd1NoZWxsOwog
fQogCitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQorICAgICAgICBy
ZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3ltYm9sKj4odmFsdWUpLT5wcml2YXRl
TmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmcoKSk7CisgICAgcmV0dXJuIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoZXhlYywganNDYXN0PEpTU3RyaW5nKj4odmFsdWUpLT52YWx1ZShl
eGVjKSk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6aW5pdEpTTW9kdWxlR3JhcGgoSlNN
b2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlLCBET01X
cmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2lu
ZG93U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+
Z2xvYmFsRXhlYygpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdyYXBo
LndlYWtFbGVtZW50UHRyKCkpOworICAgIEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0gSlNO
YXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwg
U3RyaW5nKCksIFt3ZWFrUHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgLy8gSlNNb2R1
bGVHcmFwaCwgc2NyaXB0IGVsZW1lbnQgYW5kIGRvY3VtZW50IG1heSBiZSBkZXN0cm95ZWQgZHVy
aW5nIGxvYWRpbmcgdGhlIG1vZHVsZS4KKyAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBzaG91
bGQgbm90IGV4ZWN1dGUgbW9kdWxlIGJvZHkuCisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpIHsKKyAgICAgICAgICAgIElkZW50aWZpZXIgbW9kdWxl
S2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAg
ICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdy
YXBoKCktPm5vdGlmeUxvYWRlZChtb2R1bGVLZXkuaW1wbCgpKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAg
UHJpdmF0ZU5hbWUgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgPSBtX21v
ZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOworICAgIEpTRnVuY3Rpb24qIHJl
amVjdEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hl
bGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVy
cm9yU3ltYm9sLCB3ZWFrUHRyXShFeGVjU3RhdGUqIGV4ZWMpIHsKKyAgICAgICAgaWYgKFJlZlB0
cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0ci5nZXQoKSkKKyAgICAgICAgICAgIHRvU2NyaXB0
RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5nZXQoKSktPm1vZHVsZUdyYXBoKCktPm5vdGlmeUVy
cm9yZWQoKTsKKyAgICAgICAgaGFuZGxlSlNNb2R1bGVMb2FkZXJFcnJvcihleGVjLCBleGVjLT5h
cmd1bWVudCgwKSwgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOworICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisg
ICAgcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxsSGFuZGxlciwgcmVqZWN0SGFuZGxlcik7Cit9
CisKIFRleHRQb3NpdGlvbiBTY3JpcHRDb250cm9sbGVyOjpldmVudEhhbmRsZXJQb3NpdGlvbigp
IGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IElmIHdlIGFyZSBub3QgY3VycmVudGx5IHBhcnNpbmcs
IHdlIHNob3VsZCB1c2Ugb3VyIGN1cnJlbnQgbG9jYXRpb24KQEAgLTUyMCw3ICs2NzksNyBAQCBK
U1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNl
Q29kZSYgc291cmNlQ29kZSwgRXhjZQogICAgIGlmICghY2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRU
b0V4ZWN1dGVTY3JpcHQpIHx8IGlzUGF1c2VkKCkpCiAgICAgICAgIHJldHVybiB7IH07IC8vIEZJ
WE1FOiBXb3VsZCBqc051bGwgYmUgYmV0dGVyPwogCi0gICAgUmVmPEZyYW1lPiBwcm90ZWN0KG1f
ZnJhbWUpOyAvLyBTY3JpcHQgZXhlY3V0aW9uIGNhbiBkZXN0cm95IHRoZSBmcmFtZSwgYW5kIHRo
dXMgdGhlIFNjcmlwdENvbnRyb2xsZXIuCisgICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFt
ZSk7IC8vIFNjcmlwdCBleGVjdXRpb24gY2FuIGRlc3Ryb3kgdGhlIGZyYW1lLCBhbmQgdGh1cyB0
aGUgU2NyaXB0Q29udHJvbGxlci4KIAogICAgIHJldHVybiBldmFsdWF0ZShzb3VyY2VDb2RlLCBl
eGNlcHRpb25EZXRhaWxzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuaAppbmRleCBhMGM3MWYyNjA4MTJiMGQzMjExOTE2ODY4MTE5ZDcwYmY2NzE3
NjJmLi4wY2Q0ZGQ3NDg0ZDU0MTYxMDQ1MGQ0OTk1OTE4YTFlMzE3ZGNmOTU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCw4
IEBAIGNsYXNzIFNjcmlwdFZhbHVlOwogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTR2xvYmFs
T2JqZWN0OworY2xhc3MgSlNNb2R1bGVSZWNvcmQ7CitjbGFzcyBKU0ludGVybmFsUHJvbWlzZTsK
IGNsYXNzIEV4ZWNTdGF0ZTsKIAogbmFtZXNwYWNlIEJpbmRpbmdzIHsKQEAgLTU3LDYgKzU5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7
CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2NsYXNzIEpTTW9kdWxlR3JhcGg7CiBjbGFzcyBT
Y3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXaWRnZXQ7CkBA
IC0xMTUsNiArMTE4LDE3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIEpTQzo6SlNW
YWx1ZSBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRXhjZXB0aW9uRGV0YWlscyog
PSBudWxscHRyKTsKICAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUmLCBET01XcmFwcGVyV29ybGQmLCBFeGNlcHRpb25EZXRhaWxzKiA9IG51bGxw
dHIpOwogCisgICAgdm9pZCBsb2FkTW9kdWxlSW5Xb3JsZChKU01vZHVsZUdyYXBoJiwgY29uc3Qg
U3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmLCBFbGVtZW50Jik7CisgICAgdm9p
ZCBsb2FkTW9kdWxlKEpTTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEVs
ZW1lbnQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGVJbldvcmxkKEpTTW9kdWxlR3JhcGgmLCBjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJiwgRWxlbWVudCYpOworICAgIHZv
aWQgbG9hZE1vZHVsZShKU01vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIEVs
ZW1lbnQmKTsKKworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZChKU01vZHVs
ZUdyYXBoJiAsIERPTVdyYXBwZXJXb3JsZCYsIEVsZW1lbnQmKTsKKyAgICB2b2lkIGxpbmtBbmRF
dmFsdWF0ZU1vZHVsZShKU01vZHVsZUdyYXBoJiwgRWxlbWVudCYpOworCisgICAgSlNDOjpKU1Zh
bHVlIGV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBET01X
cmFwcGVyV29ybGQmKTsKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJM
JiwgSlNDOjpKU01vZHVsZVJlY29yZCopOworCiAgICAgV1RGOjpUZXh0UG9zaXRpb24gZXZlbnRI
YW5kbGVyUG9zaXRpb24oKSBjb25zdDsKIAogICAgIHZvaWQgZW5hYmxlRXZhbCgpOwpAQCAtMTM1
LDYgKzE0OSw4IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogCiAgICAgY29uc3QgU3RyaW5n
KiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfSAvLyAwIGlmIHdlIGFy
ZSBub3QgZXZhbHVhdGluZyBhbnkgc2NyaXB0CiAKKyAgICBjb25zdCBKU0M6OlByaXZhdGVOYW1l
JiBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7IH0KKwogICAgIHZvaWQg
Y2xlYXJXaW5kb3dTaGVsbChET01XaW5kb3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9Q
YWdlQ2FjaGUpOwogICAgIHZvaWQgdXBkYXRlRG9jdW1lbnQoKTsKIApAQCAtMTY3LDYgKzE4Myw3
IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQ
T1JUIEpTRE9NV2luZG93U2hlbGwqIGluaXRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CisgICAg
dm9pZCBpbml0SlNNb2R1bGVHcmFwaChKU01vZHVsZUdyYXBoJiwgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSosIERPTVdyYXBwZXJXb3JsZCYpOwogCiAgICAgdm9pZCBkaXNjb25uZWN0UGxhdGZvcm1T
Y3JpcHRPYmplY3RzKCk7CiAKQEAgLTE3NSw2ICsxOTIsNyBAQCBjbGFzcyBTY3JpcHRDb250cm9s
bGVyIHsKICAgICBjb25zdCBTdHJpbmcqIG1fc291cmNlVVJMOwogCiAgICAgYm9vbCBtX3BhdXNl
ZDsKKyAgICBKU0M6OlByaXZhdGVOYW1lIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJy
b3JTeW1ib2w7CiAKICAgICAvLyBUaGUgcm9vdCBvYmplY3QgdXNlZCBmb3Igb2JqZWN0cyBib3Vu
ZCBvdXRzaWRlIHRoZSBjb250ZXh0IG9mIGEgcGx1Z2luLCBzdWNoCiAgICAgLy8gYXMgTlBBUEkg
cGx1Z2lucy4gVGhlIHBsdWdpbnMgdXNpbmcgdGhlc2Ugb2JqZWN0cyBwcmV2ZW50IGEgcGFnZSBm
cm9tIGJlaW5nIGNhY2hlZCBzbyB0aGV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyOWQz
ZmQ3ZTBkNDI5NTk1NWU5YTAyYzNhMmE5NDg2MTJlZTJkNGUzLi5iYzMzMmNhNWU1NjIzOTk2MTM3
YjZjNWYyOGY3N2ZmMzhhYzIyNjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMyw2
ICsxMDMsNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpTTGF6eUV2ZW50TGlz
dGVuZXIuaCIKKyNpbmNsdWRlICJKU01vZHVsZUZldGNoZXIuaCIKICNpbmNsdWRlICJKU01vZHVs
ZUxvYWRlci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMYW5ndWFn
ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAwZTk1NzgxN2U2MTJmMjhjODQ1ZDU1Mzk1ZTVj
ZTBiMTFlNmExM2FmLi44MjQ1NGJkMDAwMTk4NjMyNTljMWY2Mjk5NDY1YzNhYjIwMDc5ODE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTMzLDYgKzEzMyw3IEBAIGNsYXNzIE1lZGlhUGxheWJh
Y2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFR
dWVyeUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKK2NsYXNzIEpTTW9kdWxlTG9hZGVy
OwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0Nv
bGxlY3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
Y3BwCmluZGV4IGYxODcxMTE1YjMyOGE2ZjEyNjMwOTM2ZTg1ZWIwOWFiN2ExZjM1N2MuLmRhOGVi
MWJjMjA4NTM0MDA3MmUyN2UyZWZiZjhlZGNhM2EzMGY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSWdub3JlRGVzdHJ1Y3Rp
dmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCIKKyNpbmNsdWRlICJKU01vZHVsZUdyYXBoLmgiCiAj
aW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJTVkdOYW1lcy5oIgpAQCAtMTk3LDcgKzE5OCwxMCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnBy
ZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdh
YwogICAgIGlmICghbV9lbGVtZW50LmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKCFkZXRlcm1pbmVTY3JpcHRUeXBlKHN1cHBvcnRMZWdhY3lUeXBlcykpCisg
ICAgU2NyaXB0VHlwZSBzY3JpcHRUeXBlID0gU2NyaXB0VHlwZTo6Q2xhc3NpYzsKKyAgICBpZiAo
T3B0aW9uYWw8U2NyaXB0VHlwZT4gcmVzdWx0ID0gZGV0ZXJtaW5lU2NyaXB0VHlwZShzdXBwb3J0
TGVnYWN5VHlwZXMpKQorICAgICAgICBzY3JpcHRUeXBlID0gcmVzdWx0LnZhbHVlKCk7CisgICAg
ZWxzZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAod2FzUGFyc2VySW5zZXJ0ZWQp
IHsKQEAgLTIxOSw3ICsyMjMsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQo
Y29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAgIGlmICgh
ZG9jdW1lbnQuZnJhbWUoKS0+c2NyaXB0KCkuY2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1
dGVTY3JpcHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWlzU2NyaXB0Rm9y
RXZlbnRTdXBwb3J0ZWQoKSkKKyAgICBpZiAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFz
c2ljICYmICFpc1NjcmlwdEZvckV2ZW50U3VwcG9ydGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGlmICghY2hhcnNldEF0dHJpYnV0ZVZhbHVlKCkuaXNFbXB0eSgpKQpAQCAtMjI3
LDI2ICsyMzEsMzggQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRl
eHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBlbHNlCiAgICAgICAg
IG1fY2hhcmFjdGVyRW5jb2RpbmcgPSBkb2N1bWVudC5jaGFyc2V0KCk7CiAKLSAgICBpZiAoaGFz
U291cmNlQXR0cmlidXRlKCkpCi0gICAgICAgIGlmICghcmVxdWVzdFNjcmlwdChzb3VyY2VBdHRy
aWJ1dGVWYWx1ZSgpKSkKKyAgICBpZiAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpNb2R1bGUp
IHsKKyAgICAgICAgaWYgKCFsb2FkTW9kdWxlKHNjcmlwdFN0YXJ0UG9zaXRpb24pKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBp
ZiAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGlmIChoYXNT
b3VyY2VBdHRyaWJ1dGUoKSkgeworICAgICAgICAgICAgaWYgKCFyZXF1ZXN0U2NyaXB0KHNjcmlw
dFR5cGUsIHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KIAotICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSAm
JiBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNBdHRy
aWJ1dGVWYWx1ZSgpKSB7CisgICAgaWYgKChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNz
aWMgJiYgaGFzU291cmNlQXR0cmlidXRlKCkgJiYgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpICYmIG1f
cGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSkgfHwgKHNjcmlwdFR5cGUg
PT0gU2NyaXB0VHlwZTo6TW9kdWxlICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5jQXR0cmli
dXRlVmFsdWUoKSkpIHsKICAgICAgICAgbV93aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVk
UGFyc2luZyA9IHRydWU7CiAgICAgICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwot
ICAgIH0gZWxzZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAm
JiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpKQorICAgIH0gZWxzZSBpZiAoc2NyaXB0VHlwZSA9PSBT
Y3JpcHRUeXBlOjpDbGFzc2ljICYmIGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5z
ZXJ0ZWQgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSkgeworICAgICAgICBBU1NFUlQoc2NyaXB0
VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKTsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVj
dXRlZCA9IHRydWU7Ci0gICAgZWxzZSBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFy
c2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKSB7Ci0gICAg
ICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwotICAgICAgICBtX3JlYWR5VG9CZVBh
cnNlckV4ZWN1dGVkID0gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgp
ICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykgeworICAgIH0gZWxz
ZSBpZiAoKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6Q2xhc3NpYyAmJiBoYXNTb3VyY2VBdHRy
aWJ1dGUoKSAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpICYmICFtX2ZvcmNlQXN5bmMpIHx8IChz
Y3JpcHRUeXBlID09IFNjcmlwdFR5cGU6Ok1vZHVsZSAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgp
ICYmICFtX2ZvcmNlQXN5bmMpKSB7CiAgICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVyID0gdHJ1
ZTsKICAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0
aW9uKHRoaXMsIG1fY2FjaGVkU2NyaXB0LCBTY3JpcHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElP
Tik7CiAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7Ci0gICAgfSBlbHNl
IGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgeworICAgIH0gZWxzZSBpZiAoaGFzU291cmNlQXR0
cmlidXRlKCkgfHwgc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpNb2R1bGUpIHsKICAgICAgICAg
bV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0
aW9uKHRoaXMsIG1fY2FjaGVkU2NyaXB0LCBTY3JpcHRSdW5uZXI6OkFTWU5DX0VYRUNVVElPTik7
CiAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQodGhpcyk7CisgICAgfSBlbHNlIGlm
ICghaGFzU291cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhZG9jdW1lbnQu
aGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkpIHsKKyAgICAgICAgQVNTRVJUKHNjcmlwdFR5cGUgPT0g
U2NyaXB0VHlwZTo6Q2xhc3NpYyk7CisgICAgICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0
cnVlOworICAgICAgICBtX3JlYWR5VG9CZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKICAgICB9IGVs
c2UgeworICAgICAgICBBU1NFUlQoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKTsK
ICAgICAgICAgLy8gUmVzZXQgbGluZSBudW1iZXJpbmcgZm9yIG5lc3RlZCB3cml0ZXMuCiAgICAg
ICAgIFRleHRQb3NpdGlvbiBwb3NpdGlvbiA9IGRvY3VtZW50LmlzSW5Eb2N1bWVudFdyaXRlKCkg
PyBUZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CiAgICAgICAgIGV4ZWN1dGVT
Y3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRDb250ZW50KCksIGRvY3VtZW50LnVybCgpLCBw
b3NpdGlvbikpOwpAQCAtMjU1LDcgKzI3MSw3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFy
ZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVybCkKK2Jvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlw
dChTY3JpcHRUeXBlIHNjcmlwdFR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogewogICAg
IFJlZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7CiAg
ICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKQEAg
LTI5Niw2ICszMTIsMzEgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0
IFN0cmluZyYgc291cmNlVXJsKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0
KFVSTCBzb3VyY2VVcmwpCit7CisgICAgYm9vbCBoYXNLbm93bk5vbmNlID0gbV9lbGVtZW50LmRv
Y3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0V2l0aE5vbmNlKG1f
ZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6bm9uY2VB
dHRyKSwgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOworICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNo
ZWRSZXNvdXJjZU9wdGlvbnMoKTsKKyAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUlt
cG9zaXRpb24gPSBoYXNLbm93bk5vbmNlID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlv
bjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Q
b2xpY3lDaGVjazsKKworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChzb3VyY2VVcmwpLCBvcHRpb25zKTsKKworICAgIG1fZWxlbWVudC5kb2N1bWVudCgp
LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQo
cmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisKKyAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2Rl
ID0gbV9lbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpj
cm9zc29yaWdpbkF0dHIpOworICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7Cisg
ICAgICAgIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sID0gdHJ1ZTsKKyAgICAgICAgU3RvcmVk
Q3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVk
ZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKKyAgICAgICAgQVNTRVJUKG1f
ZWxlbWVudC5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICB1cGRhdGVSZXF1
ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgKm1f
ZWxlbWVudC5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwor
ICAgIH0KKyAgICByZXF1ZXN0LnNldENoYXJzZXQoQVNDSUlMaXRlcmFsKCJ1dGYtOCIpKTsKKyAg
ICByZXF1ZXN0LnNldEluaXRpYXRvcigmZWxlbWVudCgpKTsKKworICAgIG1faXNFeHRlcm5hbFNj
cmlwdCA9IHRydWU7CisKKyAgICByZXR1cm4gbV9lbGVtZW50LmRvY3VtZW50KCkuY2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOworfQorCiB2b2lkIFNjcmlwdEVs
ZW1lbnQ6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkK
IHsKICAgICBBU1NFUlQobV9hbHJlYWR5U3RhcnRlZCk7CkBAIC0zMjgsNiArMzY5LDkgQEAgdm9p
ZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNv
dXJjZUNvZGUpCiAgICAgICAgIC8vIE5vdGU6IFRoaXMgaXMgd2hlcmUgdGhlIHNjcmlwdCBpcyBj
b21waWxlZCBhbmQgYWN0dWFsbHkgZXhlY3V0ZWQuCiAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5l
dmFsdWF0ZShzb3VyY2VDb2RlKTsKICAgICB9CisgICAgLy8gRklYTUU6IFRoZSBtb2R1bGUgbG9h
ZGVyIHNob3VsZCBoYXZlIHRoZSBtZWNoYW5pc20gdG8gc3RvcCBsb2FkaW5nLgorICAgIC8vIFRo
ZSBjdXJyZW50IGxvYWRlciBzcGVjIGRvZXMgbm90IGhhdmUgdGhpcy4gT25jZSBpdCBpcyBzcGVj
aWZpZWQKKyAgICAvLyB3ZSB3aWxsIGludHJvZHVjZSB0aGlzIGZlYXR1cmUuCiB9CiAKIHZvaWQg
U2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KCkKQEAgLTM1Miw2ICszOTYsNjQgQEAgdm9p
ZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogICAg
IGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogfQogCitib29sIFNjcmlwdEVsZW1l
bnQ6OmxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQor
eworICAgIC8vIFRoZSBicm93c2VyIG1vZHVsZSBsb2FkZXIgbG9hZHMgdGhlIG1vZHVsZSBzb3Vy
Y2VzLgorICAgIC8vIFNpbmNlIHRoZSBtb2R1bGUgaW52b2x2ZXMgbG9hZGluZyBvZiB0aGUgZGVw
ZW5kZW50IG1vZHVsZXMgYW5kIHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBkb2VzIG5vdCBoYXZlIGNv
cnJlc3BvbmRpbmcgc2NyaXB0IGVsZW1lbnRzLAorICAgIC8vIHRoZSBmdW5jdGlvbmFsaXR5IG9m
IGxvYWRpbmcgbW9kdWxlcyBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUgc2NyaXB0IGVsZW1lbnQuCisg
ICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKSB7CisgICAgICAgIFN0cmluZyBzb3VyY2VVcmwg
PSBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpOworICAgICAgICBSZWY8RG9jdW1lbnQ+IG9yaWdpbmFs
RG9jdW1lbnQobV9lbGVtZW50LmRvY3VtZW50KCkpOworICAgICAgICBpZiAoIW1fZWxlbWVudC5k
aXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVcmwpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIC8vIFNjcmlwdCBlbGVtZW50IG1heSBiZSBkZXRhY2hlZCBhbmQgYXR0
YWNoZWQgdG8gYSBkaWZmZXJlbnQgZG9jdW1lbnQgd2hpbGUgZXhlY3V0aW5nIHRoZSBldmVudCBs
aXN0ZW5lci4KKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuaW5Eb2N1bWVudCgpIHx8ICZtX2VsZW1l
bnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIGlmIChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFj
ZXMoc291cmNlVXJsKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVu
dCgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8g
RklYTUU6IFNob3VsZCBzdXBwb3J0IGNyb3NzLW9yaWdpbiBtb2RlIGluIHRoZSBtb2R1bGUgdGFn
LgorICAgICAgICAvLyBIb3dldmVyIHdlIGRvbid0IGhhdmUgdGhlIHBvbGljeSB0byBhcHBseSB0
aGlzIG1vZGUgdG8gdGhlIHJlc291cmNlcyBvZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCisgICAg
ICAgIC8vIFByb3ZpZGVkIG11bHRpcGxlIG1vZHVsZSB0YWdzLAorICAgICAgICAvLworICAgICAg
ICAvLyAgIEE6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiIgY3Jvc3NvcmlnaW49ImFu
b255bW91cyI+PC9zY3JpcHQ+CisgICAgICAgIC8vICAgQjogPHNjcmlwdCB0eXBlPSJtb2R1bGUi
IHNyYz0iLi4uIj48L3NjcmlwdD4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gJ0EnIGhhcyB0aGUg
ImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUuIEJ1dCAnQicgZG9lcyBub3QgaGF2ZSBpdC4KKyAgICAg
ICAgLy8gSG93ZXZlciwgRVM2IG1vZHVsZXMgYWxsb3cgJ0EnIGFuZCAnQicgdG8gbG9hZCB0aGUg
c2FtZSBtb2R1bGUgYW5kIGl0IHdpbGwgYmUgY2FjaGVkIGluIHRoZQorICAgICAgICAvLyBtb2R1
bGUgbG9hZGVyLiBJbiB0aGF0IGNhc2UsIGl0IGlzIGNvbnRyb3ZlcnNpYWwgdGhhdCB3aGljaCAi
Y3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSB3aWxsIGJlCisgICAgICAgIC8vIGFwcGxpZWQgdG8gdGhl
IG1vZHVsZSBsb2FkZWQgYnkgdGhlIGJvdGguIE9uY2UgdGhlIHNwZWMgb2YgdGhlIG1vZHVsZSBs
b2FkZXIgaXMgZml4ZWQsIHdlCisgICAgICAgIC8vIHNob3VsZCBmb2xsb3cgaXQuCisKKyAgICAg
ICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgbV9tb2R1bGVHcmFwaCA9IHN0
ZDo6bWFrZV91bmlxdWU8SlNNb2R1bGVHcmFwaD4obV9lbGVtZW50KTsKKyAgICAgICAgbV9lbGVt
ZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlSlNNb2R1bGVHcmFwaEZvckV4ZWN1
dGlvbih0aGlzLCAqbV9tb2R1bGVHcmFwaCk7CisgICAgICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQo
c291cmNlQXR0cmlidXRlVmFsdWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIC8vIFJlc2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgorICAgIFRleHRQ
b3NpdGlvbiBwb3NpdGlvbiA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmlzSW5Eb2N1bWVudFdyaXRl
KCkgPyBUZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CisgICAgU2NyaXB0U291
cmNlQ29kZSBzb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgbV9lbGVtZW50LmRvY3VtZW50KCku
dXJsKCksIHBvc2l0aW9uKTsKKworICAgIHsKKyAgICAgICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1
bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpKTsKKyAgICAgICAgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5JiBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSAqbV9lbGVtZW50LmRvY3VtZW50
KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCk7CisgICAgICAgIGJvb2wgaGFzS25vd25Ob25jZSA9
IGNvbnRlbnRTZWN1cml0eVBvbGljeS5hbGxvd1NjcmlwdFdpdGhOb25jZShtX2VsZW1lbnQuYXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6Om5vbmNlQXR0ciksIG1fZWxl
bWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKTsKKyAgICAgICAgaWYgKCFjb250ZW50U2Vj
dXJpdHlQb2xpY3kuYWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCks
IG1fc3RhcnRMaW5lTnVtYmVyLCBzb3VyY2VDb2RlLnNvdXJjZSgpLnRvU3RyaW5nV2l0aG91dENv
cHlpbmcoKSwgaGFzS25vd25Ob25jZSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBtX21vZHVsZUdyYXBoID0gc3RkOjptYWtlX3VuaXF1ZTxKU01vZHVsZUdyYXBoPiht
X2VsZW1lbnQpOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1
ZUpTTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgpOworICAgIG1f
bW9kdWxlR3JhcGgtPmxvYWQoc291cmNlQ29kZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
KQogewogICAgIEFTU0VSVCghbV93aWxsQmVQYXJzZXJFeGVjdXRlZCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuaAppbmRleCA0ZTc5NDkxMjA5YjBiNDc4ZWY1NzI3NjE0MjRkYWRhNDE1Y2Mw
MjgyLi4yM2YyYmFkOWM5NDc4YjdhZjFjMDM5MTBlMDBhMWJmMzg3MDY1OGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0
UG9zaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzIsNiAr
MzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBD
b250YWluZXJOb2RlOwogY2xhc3MgRWxlbWVudDsKK2NsYXNzIEpTTW9kdWxlR3JhcGg7CiBjbGFz
cyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIApAQCAtNTksNiArNjEs
MTQgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQg
ewogICAgIGJvb2wgcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSBjb25zdCB7IHJldHVybiBtX3Jl
YWR5VG9CZVBhcnNlckV4ZWN1dGVkOyB9CiAgICAgYm9vbCB3aWxsRXhlY3V0ZVdoZW5Eb2N1bWVu
dEZpbmlzaGVkUGFyc2luZygpIGNvbnN0IHsgcmV0dXJuIG1fd2lsbEV4ZWN1dGVXaGVuRG9jdW1l
bnRGaW5pc2hlZFBhcnNpbmc7IH0KICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3Jp
cHQ+IGNhY2hlZFNjcmlwdCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0OyB9CisgICAgSlNNb2R1
bGVHcmFwaCogbW9kdWxlR3JhcGgoKSB7IHJldHVybiBtX21vZHVsZUdyYXBoLmdldCgpOyB9CisK
KyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RNb2R1bGVTY3Jp
cHQoVVJMKTsKKworICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3NjcmlwdGluZy5odG1sI2NvbmNlcHQtc2NyaXB0LXR5cGUKKyAgICBlbnVtIGNsYXNzIFNjcmlw
dFR5cGUgeyBDbGFzc2ljLCBNb2R1bGUgfTsKKworICAgIFNjcmlwdFR5cGUgc2NyaXB0VHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNDbGFzc2ljU2NyaXB0ID8gU2NyaXB0VHlwZTo6Q2xhc3NpYyA6
IFNjcmlwdFR5cGU6Ok1vZHVsZTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChF
bGVtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQpOwpAQCAtNzYs
MTMgKzg2LDEzIEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNl
Q2xpZW50IHsKICAgICB2b2lkIGhhbmRsZUFzeW5jQXR0cmlidXRlKCk7CiAKIHByaXZhdGU6Ci0g
ICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0
bWwjY29uY2VwdC1zY3JpcHQtdHlwZQotICAgIGVudW0gY2xhc3MgU2NyaXB0VHlwZSB7IENsYXNz
aWMsIE1vZHVsZSB9OwogICAgIE9wdGlvbmFsPFNjcmlwdFR5cGU+IGRldGVybWluZVNjcmlwdFR5
cGUoTGVnYWN5VHlwZVN1cHBvcnQpIGNvbnN0OwogICAgIGJvb2wgaWdub3Jlc0xvYWRSZXF1ZXN0
KCkgY29uc3Q7CiAgICAgYm9vbCBpc1NjcmlwdEZvckV2ZW50U3VwcG9ydGVkKCkgY29uc3Q7CiAK
LSAgICBib29sIHJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOworICAgIGJv
b2wgbG9hZE1vZHVsZShjb25zdCBUZXh0UG9zaXRpb24mKTsKKworICAgIGJvb2wgcmVxdWVzdFNj
cmlwdChTY3JpcHRUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7CiAgICAgdm9pZCBzdG9w
TG9hZFJlcXVlc3QoKTsKIAogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
KSBvdmVycmlkZTsKQEAgLTExMCw4ICsxMjAsMTAgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHBy
aXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgbV9mb3JjZUFzeW5jIDogMTsK
ICAgICBib29sIG1fd2lsbEV4ZWN1dGVJbk9yZGVyIDogMTsKICAgICBib29sIG1fcmVxdWVzdFVz
ZXNBY2Nlc3NDb250cm9sIDogMTsKKyAgICBib29sIG1faXNDbGFzc2ljU2NyaXB0IDogMTsKICAg
ICBTdHJpbmcgbV9jaGFyYWN0ZXJFbmNvZGluZzsKICAgICBTdHJpbmcgbV9mYWxsYmFja0NoYXJh
Y3RlckVuY29kaW5nOworICAgIHN0ZDo6dW5pcXVlX3B0cjxKU01vZHVsZUdyYXBoPiBtX21vZHVs
ZUdyYXBoOwogfTsKIAogLy8gRklYTUU6IHJlcGxhY2Ugd2l0aCBkb3duY2FzdDxTY3JpcHRFbGVt
ZW50Pi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggZDI2MDViZGRiN2I1YjYy
YjkxNDUzOGVmNjI2MmFjYjdiM2Q1MDAyZS4uMmJlYjQwZWZlNjUzMjJkYWM3YmQ2YmQzNThhZjhm
YTM5N2E4YmE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJKU01vZHVsZUdyYXBoLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5oIgog
I2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIApAQCAtNDcsNiArNDgsMTAgQEAgU2NyaXB0UnVu
bmVyOjp+U2NyaXB0UnVubmVyKCkKICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZl
bnREZWxheUNvdW50KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGVuZGluZ0Fz
eW5jU2NyaXB0cy5zaXplKCk7ICsraSkKICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2Fk
RXZlbnREZWxheUNvdW50KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX21vZHVsZVNj
cmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbi5zaXplKCk7ICsraSkKKyAgICAgICAgbV9kb2N1bWVu
dC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLnNpemUoKTsgKytpKQorICAgICAg
ICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKIH0KIAogdm9pZCBT
Y3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNjcmlw
dEVsZW1lbnQsIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0
LCBFeGVjdXRpb25UeXBlIGV4ZWN1dGlvblR5cGUpCkBAIC03MCw2ICs3NSwxOCBAQCB2b2lkIFNj
cmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0
RWxlbWVudCwgQ2FjaGVkUgogICAgIH0KIH0KIAordm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlSlNN
b2R1bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBKU01v
ZHVsZUdyYXBoJikKK3sKKyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7CisKKyAgICBFbGVtZW50
JiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOworICAgIEFTU0VSVChlbGVtZW50
LmluRG9jdW1lbnQoKSk7CisKKyAgICBtX2RvY3VtZW50LmluY3JlbWVudExvYWRFdmVudERlbGF5
Q291bnQoKTsKKworICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmFkZCgmZWxlbWVu
dCk7Cit9CisKIHZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKIHsKICAgICBtX3RpbWVyLnN0
b3AoKTsKQEAgLTk2LDYgKzExMywyNiBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5U2NyaXB0
UmVhZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgRXhlY3V0aW9uVHlwZQogICAgIG1f
dGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5SlNN
b2R1bGVHcmFwaFJlYWR5KFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQpCit7CisgICAgQVNT
RVJUX1VOVVNFRChzY3JpcHRFbGVtZW50LCBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5j
b250YWlucygmc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpKSk7CisKKyAgICAvLyBMaXN0SGFzaFNl
dCBjb3JyZWN0bHkgcHJlc2VydmVzIHRoZSBpbnNlcnRpb24gb3JkZXIuCisgICAgLy8gQW5kIGl0
IGFsbG93IHVzIHRvIHJlbW92ZSBlbGVtZW50IGR1cmluZyBpdGVyYXRpb24uCisgICAgYXV0byBp
dGVyYXRvciA9IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmJlZ2luKCk7CisgICAgd2hp
bGUgKGl0ZXJhdG9yICE9IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmVuZCgpKSB7Cisg
ICAgICAgIEpTTW9kdWxlR3JhcGgqIG1vZHVsZUdyYXBoID0gdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZShpdGVyYXRvci0+Z2V0KCkpLT5tb2R1bGVHcmFwaCgpOworICAgICAgICBpZiAoIW1vZHVs
ZUdyYXBoLT5lcnJvck9jY3VycmVkKCkgJiYgIW1vZHVsZUdyYXBoLT5pc0xvYWRlZCgpKQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGF1dG8gcHJldmlvdXMgPSBpdGVyYXRvcjsKKyAgICAg
ICAgKytpdGVyYXRvcjsKKyAgICAgICAgbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNv
b24uYXBwZW5kKCpwcmV2aW91cyk7CisgICAgICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1l
bnRzLnJlbW92ZShwcmV2aW91cyk7CisgICAgfQorICAgIGlmICghbV9tb2R1bGVTY3JpcHRFbGVt
ZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKK30KKwogdm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogewogICAgIFJlZjxE
b2N1bWVudD4gcHJvdGVjdChtX2RvY3VtZW50KTsKQEAgLTExOSw2ICsxNTYsMjAgQEAgdm9pZCBT
Y3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3Np
YmxlKGVsZW1lbnQuZ2V0KCkpLT5leGVjdXRlKGNhY2hlZFNjcmlwdCk7CiAgICAgICAgIG1fZG9j
dW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIH0KKworICAgIFZlY3Rv
cjxSZWZQdHI8RWxlbWVudD4+IG1vZHVsZVNjcmlwdEVsZW1lbnRzOworICAgIG1vZHVsZVNjcmlw
dEVsZW1lbnRzLnN3YXAobV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24pOworCisg
ICAgZm9yIChSZWZQdHI8RWxlbWVudD4mIHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50IDogbW9k
dWxlU2NyaXB0RWxlbWVudHMpIHsKKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQ7Cisg
ICAgICAgIHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50LnN3YXAoZWxlbWVudCk7CisgICAgICAg
IEFTU0VSVChlbGVtZW50KTsKKyAgICAgICAgLy8gUGFwZXIgb3ZlciBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDUwCisgICAgICAgIGlmICghZWxlbWVudCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVs
ZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ldmFsdWF0ZSgpOworICAgICAgICBtX2RvY3Vt
ZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICB9CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRSdW5uZXIuaAppbmRleCA4Y2QzMzJhNTczNGMxY2I5MmYyYTVmZjVmYzRjY2Ex
NThmZTNiYzQxLi44MmNmNWU3YjNmNDY5NzgxMmE2ZjhiZWI4MTM5YjE2ZTUwZjYyMGVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC0zNiw2ICszNyw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBFbGVtZW50OworY2xhc3MgSlNNb2R1bGVHcmFwaDsKIGNsYXNzIFBlbmRpbmdT
Y3JpcHQ7CiBjbGFzcyBTY3JpcHRFbGVtZW50OwogCkBAIC00NywxMSArNTAsMTQgQEAgY2xhc3Mg
U2NyaXB0UnVubmVyIHsKIAogICAgIGVudW0gRXhlY3V0aW9uVHlwZSB7IEFTWU5DX0VYRUNVVElP
TiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07CiAgICAgdm9pZCBxdWV1ZVNjcmlwdEZvckV4ZWN1dGlv
bihTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiwgRXhl
Y3V0aW9uVHlwZSk7Ci0gICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJu
ICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRl
SW5PcmRlci5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5KCk7IH0K
KyAgICB2b2lkIHF1ZXVlSlNNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50Kiwg
SlNNb2R1bGVHcmFwaCYpOworICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJl
dHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhl
Y3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0eSgp
IHx8ICFtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1f
cGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmlzRW1wdHkoKTsgfQogICAgIHZvaWQgc3VzcGVu
ZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAgICAgdm9pZCBub3RpZnlTY3JpcHRSZWFkeShTY3Jp
cHRFbGVtZW50KiwgRXhlY3V0aW9uVHlwZSk7CiAKKyAgICB2b2lkIG5vdGlmeUpTTW9kdWxlR3Jh
cGhSZWFkeShTY3JpcHRFbGVtZW50Kik7CisKIHByaXZhdGU6CiAgICAgdm9pZCB0aW1lckZpcmVk
KCk7CiAKQEAgLTU5LDYgKzY1LDggQEAgY2xhc3MgU2NyaXB0UnVubmVyIHsKICAgICBWZWN0b3I8
UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlcjsKICAgICBWZWN0b3I8UGVu
ZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9FeGVjdXRlU29vbjsgLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jc2V0LW9mLXNjcmlwdHMtdGhhdC13aWxs
LWV4ZWN1dGUtYXMtc29vbi1hcy1wb3NzaWJsZQogICAgIEhhc2hNYXA8U2NyaXB0RWxlbWVudCos
IFBlbmRpbmdTY3JpcHQ+IG1fcGVuZGluZ0FzeW5jU2NyaXB0czsKKyAgICBWZWN0b3I8UmVmUHRy
PEVsZW1lbnQ+PiBtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbjsKKyAgICBMaXN0
SGFzaFNldDxSZWZQdHI8RWxlbWVudD4+IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzOwog
ICAgIFRpbWVyIG1fdGltZXI7CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGEwZjU0YzIyYWExYTQzNzdkYmY3ZGE4
ZDgxN2MwN2JkZWQ1NmU4NS4uMmE4NDRjZWU3YzA2ZWFjYjAzZjZmZjJjZWRhYzlkMmYwMGEyMmZl
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE2LTA4LTIwICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVncmF0ZSBFUzYgTW9kdWxl
cyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10
by1vbmVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1l
eGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0
ZWQtdG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbDogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgt
c3JjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1w
b2ludC1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1z
YW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQu
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1v
bmVycm9yLXRocm93LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanM6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNj
aW5vLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanM6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5l
LWR5bmFtaWMuanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90
eXBlLnRhc3RlKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBq
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChleHBv
cnQuZGVmYXVsdC5Db2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
bG9hZC1ldmVudC13aXRoLXNyYy5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5q
czogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5k
LWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanM6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzOiBBZGRlZC4KKyAg
ICAgICAgKENvY29hLnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChDb2NvYSk6CisgICAgICAg
ICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanM6IEFk
ZGVkLgorICAgICAgICAoQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKENvY29hKToK
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3Jl
bG9hZC5qczogQWRkZWQuCisKIDIwMTYtMDgtMTkgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBMb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnMgc2hvdWxkIHJldHVybiBhIEZy
b3plbkFycmF5PFVTVlN0cmluZz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDk2ZTFiMDUyMDhjOTYz
Y2Q4MzAzMWEyOWRiYmJlNDljYmE2YTQzMGEuLmEyNTMyNWM4MjdhMTNmZGNiNzllM2E1MGIxMTcz
YmM0MWVhNGJiYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTA4NCwzICsxMDg0LDIxIEBAIHdl
YmtpdC5vcmcvYi8xNTk3NTUgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci1mZTBmLTkuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE1OTc1NSBmYXN0L3RleHQvZW1vamktZ2Vu
ZGVyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE2MDAxNyBqcy9y
ZWdyZXNzLTEzOTU0OC5odG1sIFsgU2xvdyBdCisKKyMgRVM2IE1vZHVsZXMgYXJlIG5vdCB5ZXQg
ZW5hYmxlZCBieSBkZWZhdWx0OiBFTkFCTEUoRVM2X01PRFVMRVMpCisjIGpzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3IuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1l
cnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgWyBTa2lwIF0KKyMganMv
ZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLmh0bWwgWyBTa2lwIF0KKyMganMvZG9t
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9k
dWxlLWlubGluZS1keW5hbWljLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1pbmxpbmUt
c2ltcGxlLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3Jj
Lmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwgWyBTa2lwIF0K
KyMganMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBv
aW50LWR5bmFtaWMuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1
bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9k
dWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwgWyBTa2lw
IF0KKyMganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbCBb
IFNraXAgXQorIyBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sIFsgU2tp
cCBdCisjIGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbCBbIFNraXAgXQorIyBqcy9kb20v
bW9kdWxlLXNyYy1zaW1wbGUuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLXdpbGwtZmly
ZS1iZWZvcmVsb2FkLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1i
ZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJkYjI3NWEy
ZmI4MzQ4OTY0ZmJlOGRlYjgyNTUzYjRiOWRiOWE1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9k
dWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTEgQEAKK1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBkZXBl
bmRlbnQgbW9kdWxlIHRocm93IGFuIGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgdGhlIGRlcGVuZGVu
dCBtb2R1bGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJv
ci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9y
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUt
ZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTc3YjVkZDc2NGRiZTI0MzQyM2QxYzM4ZTM3NGNjMGZkZGMyNDM3MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWlu
c2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRt
bApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGRlcGVu
ZGVudCBtb2R1bGUgdGhyb3cgYW4gZXJyb3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRl
ZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24g
KCkgeworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1v
ZHVsZSI+CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lk
ZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMiCit0
ZXN0RmFpbGVkKCJleGVjdXRlZCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQt
YmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3It
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1ZGY3MDI4ZjM1NDkzNjY5MjkyMmVmZTYxYTJkZmJh
NWYxZjA5MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4
ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hl
biB0aGUgaW5saW5lZCBtb2R1bGUgdGhyb3dzIGFuIGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgdGhl
IG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJv
ci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9y
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzQ0NjJmMzdlZDgxNzMwNjFmN2Y5OTUzNmM0MmQyOTk1YzI1Mjcy
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApAQCAtMCwwICsxLDIy
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB3
aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGlubGluZWQgbW9kdWxlIHRocm93
cyBhbiBlcnJvci4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5
Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LicpOword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2RlYnVnKCdF
eGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKK3Rocm93IG5ldyBFcnJvcigibW9kdWxlIGlzIGV4ZWN1
dGVkLiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mZmZkZjMzOTc1N2E0YTM3OTY0ZTg4OWFlYzY5YWZjYzU5OWFiNzhm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24t
b3JkZXItaW5saW5lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSBl
eGVjdXRpb24gb3JkZXIgYmV0d2VlbiBpbmxpbmVkIG1vZHVsZSB0YWdzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIGNv
dW50KysgaXMgMAorUEFTUyBjb3VudCsrIGlzIDEKK1BBU1MgY291bnQrKyBpcyAyCitQQVNTIGNv
dW50KysgaXMgMworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItaW5saW5lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTUyNWU3NjkwOGNmYjZmZWEwMTA3ZjRkYWFkZDFk
MjkzMWJmM2NlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24g
b3JkZXIgYmV0d2VlbiBpbmxpbmVkIG1vZHVsZSB0YWdzLicpOword2luZG93LmNvdW50ID0gMDsK
Ky8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOwor
c2hvdWxkQmUoImNvdW50KysiLCAiMCIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVs
ZSI+CitzaG91bGRCZSgiY291bnQrKyIsICIxIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
bW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjIiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiMyIpOworZmluaXNoSlNUZXN0KCk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMzdmNTI0ZjUzMTkwNWQ4YTUzZjQ0YTMzYWI2ZmZiNDAwMTIxMDMwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBv
cmRlciBiZXR3ZWVuIG1peGVkIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitXZSBrZWVwIHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLgorTW9kdWxlIGlz
IG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIGNvdW50KysgaXMgMAorUEFTUyBjb3VudCsrIGlzIDEK
K1BBU1MgY291bnQrKyBpcyAyCitQQVNTIGNvdW50KysgaXMgMworUEFTUyBjb3VudCsrIGlzIDQK
K1BBU1MgY291bnQrKyBpcyA1CitQQVNTIGNvdW50KysgaXMgNgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxOTFk
MzAzZWRkNzU3NzM4MTI4ZGQ5ZDE1YmI0MGM3ZTc2YzJjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCkBAIC0w
LDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtaXhlZCB0YWdzLicpOworZGVi
dWcoJ1dlIGtlZXAgdGhlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIG1vZHVsZXMuJyk7Cit3aW5k
b3cuY291bnQgPSAwOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNs
eS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2Ny
aXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiNCIpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC0yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3No
b3VsZEJlKCJjb3VudCsrIiwgIjYiKTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGlu
ZS1keW5hbWljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5l
LWR5bmFtaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjOTM5YWFmMGE1MDE1ZjQ3OTM4NmNk
MzE5NWFhNTlkZDE2OTA5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0
IGlubGluZWQgbW9kdWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRo
ZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgor
UEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29h
LnRhc3RlKCkgaXMgImF3ZXNvbWUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1p
bmxpbmUtZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHlu
YW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4YzBlMjU5YWIyOTFlZmZjNGJlZTc4YWU2NWMzNDE3YzEx
ZDA1ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGlu
ZS1keW5hbWljLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgaW5saW5lZCBtb2R1bGUuJyk7CisKKy8vIE1vZHVs
ZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0
ZWQgeWV0LicpOworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSBgCisgICAg
ICAgIGltcG9ydCBDb2NvYSBmcm9tICIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFt
aWMuanMiOworICAgICAgICB2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworICAgICAgICBkZWJ1
ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50
LiIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRl
ZmluZWQiKTsKKworICAgICAgICB3aW5kb3cuZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIs
ICJhd2Vzb21lIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIGA7CisgICAgZWxlbWVu
dC50eXBlID0gIm1vZHVsZSI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50
KTsKK30gKCkpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42YzkzOWFhZjBhNTAxNWY0NzkzODZjZDMxOTVhYTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitUZXN0IGlubGluZWQgbW9kdWxlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhl
Y3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVv
ZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2Jq
ZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkgaXMgImF3ZXNvbWUiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGJjZjA2MGQxYmQ2
OTQ1YjA4OTE2ZWJhMTUyOWE1NThmZTZiMmQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgaW5saW5lZCBt
b2R1bGUuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWco
J01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
Im1vZHVsZSI+CitpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGlu
ZS1zaW1wbGUuanMiOwordmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUg
ZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93
LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4
cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVk
Q29jb2EudGFzdGUoKSIsICJhd2Vzb21lIik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1s
b2FkLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1l
dmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg2MjY2ODAyZGE1N2M3NThjZTNlNGEyZjMx
ZDc4OTBkMGU1YjdkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBtb2R1bGUg
ZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGFuIGlubGluZWQg
bW9kdWxlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRo
LXNyYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQt
d2l0aC1zcmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YTJmOWI5OTYxNmZmNDcwYWVlMmE0
NWU3MmJiZGE2ZWZhY2Q0MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAK
K1Rlc3Qgc2NyaXB0Lm9ubG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0
aCBzcmMgbG9hZHMgYW5kIGV4ZWN1dGVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgYSBtb2R1bGUgd2l0aCBz
cmMgYXR0cmlidXRlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVu
dC13aXRoLXNyYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdp
dGgtc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk0YTRhMzA3MGE5NmU2ZGFjYmQ4Yjc0NmE3N2MwNTdh
NDJjNTZhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9h
ZC1ldmVudC13aXRoLXNyYy5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmxvYWQgd2lsbCBiZSBm
aXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGxvYWRzIGFuZCBleGVjdXRlcy4nKTsK
Ky8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3QoKSIg
c3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1sb2FkLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYmI4YzgwOWYyZDQ1Y2QzZjMxNzg5YWZlMmRmN2IzMGRjZTFmNDVk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50
Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuJyk7
CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0KCki
PgorZGVidWcoJ0V4ZWN1dGluZyBhbiBpbmxpbmVkIG1vZHVsZS4nKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlm
ZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxYWI0
OWQxNDk3NjI0ZGYyMmUwMzQ3OTdiMzlhYThlYzg2OTRlY2MKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQt
ZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorMiBkaWZm
ZXJlbnQgbW9kdWxlIHRhZyB3aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUgZnJv
bSBhIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCB0YWcKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBp
c3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4KK01vZHVsZSBpcyBub3QgZXhlY3V0
ZWQgeWV0LgorRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50
LWVudHJ5LXBvaW50LmpzLgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBv
aW50LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjVkNTFlMmI2Y2VhODYxN2JhY2YwYzQwZTMzN2U5MDlhMWQzMWEzOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZl
cmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1vZHVsZSB0
YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGZyb20gYSBkeW5hbWljYWxs
eSBnZW5lcmF0ZWQgdGFnJyk7CitkZWJ1ZygnQ3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVk
IGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLicp
OworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2ltcG9ydCAic2NyaXB0LXRlc3Rz
L21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIgor
ZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOwordmFyIGVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKK2VsZW1lbnQudHlwZSA9ICJtb2R1bGUiOworZWxlbWVu
dC5pbm5lclRleHQgPSAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIjsKK2VsZW1lbnQub25lcnJvciA9IGZpbmlzaEpTVGVz
dCgpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmOThmY2NiNmZhZmEwNjQ0N2Uz
MDMyZWYwNmQ5ODIwMjdmMjUxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxsIGF0
dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBp
c3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4KK01vZHVsZSBpcyBub3QgZXhlY3V0
ZWQgeWV0LgorRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50
LWVudHJ5LXBvaW50LmpzLgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitFeGVjdXRpbmcgdGhlIG1v
ZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUt
ZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYwNmQ0ZTBiNjNjZGMwMTI3NDEzM2JlZmQ5Mzg0NDI1NTU1OGIxODcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJv
bS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignMiBkaWZmZXJlbnQgbW9kdWxlIHRh
ZyB3aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUnKTsKK2RlYnVnKCdDdXJyZW50
bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxkIGJl
IGZpeGVkIGluIHRoZSBmdXR1cmUuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3lu
Y2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUg
aXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUi
PgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZm
ZXJlbnQtZW50cnktcG9pbnQuanMiCitkZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgpIj4K
K2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVy
ZW50LWVudHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjM4YmEzYzJlNzk5NzdlMmM5Zjc5MzQ4MDk3MzZmZDk4MzdkNzJmOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgIm5vdC1mb3VuZC5qcyIuIEV4cGVj
dGVkICdmcm9tJyBiZWZvcmUgaW1wb3J0ZWQgbW9kdWxlIG5hbWUuCitUZXN0IHNjcmlwdC5vbmVy
cm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBv
cnQgZGVjbGFyYXRpb24gaW4gdGhlIGlubGluZWQgbW9kdWxlIGlzIG5vdCBmb3VuZC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Lgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdp
dGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzQ4Nzg3NTAxYTEyOTI3NjgxMDkxODc5MDdhZmM0N2RmYjZkMjg5MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9y
LWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVj
aWZpZWQgYnkgdGhlIGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVsZSBp
cyBub3QgZm91bmQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGVmMzk4Njg1YWUwNWExMWNlOGExZTBiMjIwOThlOTg1MzFkNjI5MQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25l
cnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUgaW1w
b3J0IGRlY2xhcmF0aW9uIGluIHRoZSBkZXBlbmRlbnQgbW9kdWxlIGlzIG5vdCBmb3VuZC4nKTsK
Ky8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOwor
ZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3Jj
PSJzY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQt
aW1wb3J0LmpzIiBvbmVycm9yPSJvbkVycm9yKCkiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3It
ZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4
MGQxNWRmZTZkMDliZmM2Yjg1ODNhNDhkZWM2ZGNiMWI1YjE0MTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNy
Yy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBzY3JpcHQub25lcnJvciB3aWxs
IGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSAic3JjIiBpcyBub3QgZm91
bmQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1
dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJv
ci1ldmVudC13aXRoLXNyYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91
bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmE0N2Y2MTA2OWFmZWNi
Y2IzOGIwYTk1NzU2MjVjZTgyZGY0ODE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbApAQCAtMCww
ICsxLDIxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNp
ZmllZCBieSAic3JjIiBpcyBub3QgZm91bmQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRl
ZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAg
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ibm90LWZvdW5kLmpzIiBvbmVycm9yPSJv
bkVycm9yKCkiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmNiNTk0YzY0NjgzOGU0YzM1ZTM3NTYxZjZkY2UzZDgzNzcwYjc3MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwK
QEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJj
ZSBzcGVjaWZpZWQgYnkgdGhlIGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgaW5saW5lZCBtb2R1
bGUgaXMgbm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9u
b3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5v
dCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sKKyAgICBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0ibW9kdWxlIiBvbmVycm9yPSJvbkVycm9yKCkiPgoraW1wb3J0IGZyb20gIm5vdC1m
b3VuZC5qcyI7Cit0ZXN0RmFpbGVkKCdleGVjdXRlZCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWlj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkOGIwMDYyNDkwZWM3MjI5NWNmZjUwNjFhMDgzOWU0MDAy
MGNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1k
eW5hbWljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSB3aXRoICJz
cmMiIGF0dHJpYnV0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBp
cyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUg
bW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BB
U1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50
YXN0ZSgpIGlzICJuaWNlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5
bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zODRmZjQyNjRmOTgxZmU5NjQ5ZWQzYTcyMWIxY2ZhNGZhNWU5MWNlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1s
CkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUZXN0IG1vZHVsZSB3aXRoICJzcmMiIGF0dHJpYnV0ZS4nKTsKKworLy8gTW9kdWxl
IHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRl
ZCB5ZXQuJyk7CisoZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgZWxlbWVudC50eXBlID0gJ21vZHVsZSc7CisgICAg
ZWxlbWVudC5zcmMgPSAnLi9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzJzsKKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworfSgpKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1z
cmMtc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNp
bXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q4YjAwNjI0OTBlYzcyMjk1Y2ZmNTA2MWEw
ODM5ZTQwMDIwY2Q4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUg
d2l0aCAic3JjIiBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQg
aW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmlu
ZWQiCitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVk
Q29jb2EudGFzdGUoKSBpcyAibmljZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LXNyYy1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNmNzNiMGM1NGEyNWE0Zjc2YzE0YTNiNWRjMzE3M2ZlODkzY2IzY2QK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUu
aHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZv
cmVsb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJl
LWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhOGQ5NzA4ZGIzZTA1YzRiMDEw
M2JlN2RjZWIwYzAwNzExNzVjNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0IHNjcmlwdC5iZWZvcmVsb2FkIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxl
IHRhZyB3aXRoIHNyYyBpcyBwcmVwYXJlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmJmZjE2NTNkMDZj
MDZlMWQ3NDE3OWQwMTEwMDM2ZTE0OWQ4NjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCkBAIC0wLDAgKzEsMTYg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNj
cmlwdC5iZWZvcmVsb2FkIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNy
YyBpcyBwcmVwYXJlZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91
c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25iZWZv
cmVsb2FkPSJmaW5pc2hKU1Rlc3QoKSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmly
ZS1iZWZvcmVsb2FkLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1p
bnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRo
cm93LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9u
ZXJyb3ItdGhyb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZjMTVhZjIxNDJiNDgwMjYwMmVhZDAzNzAwZjhi
YmUwMWJjMmJlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91
bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzCkBAIC0wLDAgKzEsMiBAQAorZGVi
dWcoIkV4ZWN1dGluZyB0aGUgZGVwZW5kZW50IG1vZHVsZSIpOwordGhyb3cgbmV3IEVycm9yKCJv
dXQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFn
YXRlZC10by1vbmVycm9yLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9w
YWdhdGVkLXRvLW9uZXJyb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZjN2NhNDc5YjI1ODg5YjAwY2EyNGNk
NWJiZTMzMWRhYTY1ZjcxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVs
ZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzCkBAIC0wLDAgKzEsMiBAQAoraW1w
b3J0ICJtb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3Vs
ZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanMiCit0ZXN0RmFpbGVkKCJleGVjdXRl
ZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzNiOWQz
NTJhZWM1N2IwNjFkZGJlMDBiN2NmOTRlYTU3NGFlYzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
LTIuanMKQEAgLTAsMCArMSBAQAorc2hvdWxkQmUoImNvdW50KysiLCAiNSIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLWNhcHB1Y2Npbm8uanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY2FwcHVjY2luby5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzE0
NmZkNzY2ZTU1YTAyYWU3OGJhZjlkZDYzMzk4ZWI4NWE4OTBlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1p
eGVkLWNhcHB1Y2Npbm8uanMKQEAgLTAsMCArMSwzIEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRp
b24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzIgorCitzaG91bGRCZSgiY291bnQrKyIsICIyIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRp
b24tb3JkZXItbWl4ZWQtY29jb2EuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU4ZDcz
MjQzZmVmMzBhMGI0OTQ5ZGJhN2ZiZjg1MzRlZWJhOWY3MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC1jb2NvYS5qcwpAQCAtMCwwICsxLDMgQEAKK2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1tYXRjaGEuanMiOworCitzaG91bGRCZSgiY291bnQrKyIsICIxIik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItbWl4ZWQtbWF0Y2hhLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmUxNWQ3Y2Yw
Y2ZmNGVhYTFhMGI1YTFlZTgzZGNjZTMyNGEyNWU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1h
dGNoYS5qcwpAQCAtMCwwICsxIEBACitzaG91bGRCZSgiY291bnQrKyIsICIwIik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItbWl4ZWQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQzODZmYmI4NjgxY2JmN2U1OWM0NzM3
NjM3ZTg3YmUzOGNmZjc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qcwpAQCAtMCwwICsxLDQg
QEAKK2ltcG9ydCAiLi9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzIgoraW1w
b3J0ICIuL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY2FwcHVjY2luby5qcyIKKworc2hv
dWxkQmUoImNvdW50KysiLCAiMyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDM2MGE3
YmZlN2UwNWEwY2IyNTM4NDEzNjdlNzFkYzFlOTNiNWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMKQEAg
LTAsMCArMSw1IEBACitleHBvcnQgZGVmYXVsdCBjbGFzcyBDb2NvYSB7CisgICAgdGFzdGUoKSB7
CisgICAgICAgIHJldHVybiAiYXdlc29tZSI7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI0MzYwYTdiZmU3ZTA1YTBjYjI1Mzg0MTM2N2U3MWRjMWU5M2I1YzcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUt
c2ltcGxlLmpzCkBAIC0wLDAgKzEsNSBAQAorZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29jb2Egewor
ICAgIHRhc3RlKCkgeworICAgICAgICByZXR1cm4gImF3ZXNvbWUiOworICAgIH0KK307CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50
LXdpdGgtc3JjLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9h
ZC1ldmVudC13aXRoLXNyYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjg3MDI5MGQzZWM3ZTA4MGMwNWY5ZjY2
Njg0NGNkMDY3NTI5ZmRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5qcwpAQCAtMCwwICsxIEBACitk
ZWJ1ZygnRXhlY3V0aW5nIGEgbW9kdWxlIHdpdGggc3JjIGF0dHJpYnV0ZS4nKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1
bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBv
aW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ1YWQ3N2Y4MDA4MDQzODFiZjRmMWVhZGI1MTdmNTYwZjBjNGVi
NjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzCkBAIC0w
LDAgKzEgQEAKK2RlYnVnKCdFeGVjdXRpbmcgbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQuanMuJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5k
LWltcG9ydC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1m
b3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjMWI0
NzE0ODEzOGEwZWM0NTIyYzIyNzIzM2EzYzc0MTMzNzEyOTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZl
bnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qcwpAQCAtMCwwICsxIEBACitpbXBvcnQgIm5vdC1mb3Vu
ZC5qcyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXNyYy1keW5hbWljLWNvY29hLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc5NTkyZGM1MTNjZjI1OTg0
MWZmOWQ0NjM5MDQ1MTJiMGVjYjc0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzCkBAIC0wLDAgKzEs
NyBAQAorY2xhc3MgQ29jb2EgeworICAgIHRhc3RlKCkgeworICAgICAgICByZXR1cm4gIm5pY2Ui
OworICAgIH0KK30KKworZXhwb3J0IGRlZmF1bHQgQ29jb2E7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI1MWE3YmU2YjRmMTI5M2FmNTk2ODZmZTNlNTc4MDFkMmUwOTZjMzUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5q
cwpAQCAtMCwwICsxLDEwIEBACitpbXBvcnQgQ29jb2EgZnJvbSAiLi9tb2R1bGUtc3JjLWR5bmFt
aWMtY29jb2EuanMiOwordmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUg
ZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93
LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4
cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVk
Q29jb2EudGFzdGUoKSIsICJuaWNlIik7CitmaW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29h
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ3OTU5MmRjNTEzY2YyNTk4NDFmZjlkNDYzOTA0NTEyYjBlY2I3NDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1zcmMtc2ltcGxlLWNvY29hLmpzCkBAIC0wLDAgKzEsNyBAQAorY2xhc3MgQ29jb2EgeworICAg
IHRhc3RlKCkgeworICAgICAgICByZXR1cm4gIm5pY2UiOworICAgIH0KK30KKworZXhwb3J0IGRl
ZmF1bHQgQ29jb2E7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1zcmMtc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtc3JjLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDljNzc0ZmQ5ZTdhNWM5ZDE4NTkyNDA0
NGU3YTI3OGFkNzMzNzI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcwpAQCAtMCwwICsxLDEwIEBACitpbXBvcnQg
Q29jb2EgZnJvbSAiLi9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcyI7Cit2YXIgY29jb2EgPSBu
ZXcgQ29jb2EoKTsKKworZGVidWcoIk1vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhl
IG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGNv
Y29hIiwgInVuZGVmaW5lZCIpOworCit3aW5kb3cuZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmplY3QiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIiwgIm5pY2UiKTsKK2Zp
bmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGEz
OTM4MzU2MzNhZWM1NWU1ZTU5NTcyOWRhNjkxOWU5YzMyMDNiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxv
YWQuanMKQEAgLTAsMCArMSBAQAordGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287071</attachid>
            <date>2016-08-25 21:01:31 -0700</date>
            <delta_ts>2016-08-26 11:18:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20160825205928.patch</filename>
            <type>text/plain</type>
            <size>148306</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MjA5NTczNTZjZDk0Y2YzZTM4ZjA1YzJjMGFmNWZlZDA3Y2FmMmI0Li4xOWEyODk1MmY3NjE0ZWQ2
Y2FhM2U1MzczODQyOWE3NTU1NDVlNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxNi0wOC0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ1aWx0
aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qczoKKyAgICAgICAgKHJlcXVlc3RGZXRjaCk6Cisg
ICAgICAgIChyZXF1ZXN0VHJhbnNsYXRlKToKKyAgICAgICAgKHJlcXVlc3RJbnN0YW50aWF0ZSk6
CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyk6CisgICAgICAgIChyZXF1ZXN0
SW5zdGFudGlhdGVBbGwpOgorICAgICAgICAocmVxdWVzdExpbmspOgorICAgICAgICAobW9kdWxl
RXZhbHVhdGlvbik6CisgICAgICAgIChwcm92aWRlKToKKyAgICAgICAgKGxvYWRBbmRFdmFsdWF0
ZU1vZHVsZSk6CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcy4pOiBEZWxldGVk
LgorICAgICAgICAocmVxdWVzdFJlYWR5KTogRGVsZXRlZC4KKyAgICAgICAgKGxpbmspOiBEZWxl
dGVkLgorICAgICAgICAobG9hZE1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChsaW5rQW5kRXZh
bHVhdGVNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9i
YWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6bG9hZE1v
ZHVsZSk6CisgICAgICAgIChKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
cnVudGltZS9Db21wbGV0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoSlNDOjpK
U01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNN
b2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6
bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OnJl
c29sdmUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAo
SlNDOjpKU01vZHVsZUxvYWRlcjo6dHJhbnNsYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVM
b2FkZXI6Omluc3RhbnRpYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogcnVu
dGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJQcm90b3R5cGVSZXNvbHZlKToKKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyUHJvdG90eXBl
RmV0Y2gpOgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVUcmFuc2xhdGUpOgor
ICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZSk6CisgICAgICAg
IChKU0M6Om1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlKToKKyAgICAgICAgKiBydW50aW1l
L1N5bWJvbC5oOgorCiAyMDE2LTA4LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ01ha2UgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDcx
NzgyM2NjZTI3MDNhZWE3MWUzOWRkOGE1OWQ0ZjkwZGFhYTZjYmEuLmRmNmQ5MjNhYWQ0NWU5ZWU2
MWI5ZmFjYzMxZmEzYjIzNmIxMDNhYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OSBAQAorMjAx
Ni0wOC0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3JlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czoganMvZG9tL21vZHVsZS1l
eGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0
ZWQtdG8tb25lcnJvci5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKKyAgICAgICAgICAg
ICAgIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGpz
L2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9k
dWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVs
ZS1sb2FkLWV2ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1l
LW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwKKyAgICAgICAg
ICAgICAgIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJv
ci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKKyAgICAgICAgICAgICAg
IGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwKKyAgICAgICAgICAgICAg
IGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21v
ZHVsZS1zcmMtc2ltcGxlLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1bGUtd2lsbC1m
aXJlLWJlZm9yZWxvYWQuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxl
TG9hZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVs
ZUxvYWRlckZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5o
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkpTTW9kdWxlRmV0Y2hlcjo6SlNNb2R1bGVGZXRjaGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTTW9kdWxlRmV0Y2hlcjo6fkpTTW9kdWxlRmV0Y2hlcik6CisgICAgICAgIChX
ZWJDb3JlOjpKU01vZHVsZUZldGNoZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01v
ZHVsZUZldGNoZXI6OnJ1bik6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUZldGNoZXI6Om5v
dGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuaC4K
KyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlRmV0Y2hlcjo6Y2FjaGVkU2NyaXB0KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpKU01vZHVsZUdyYXBoOjpKU01vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
TW9kdWxlR3JhcGg6Om5vdGlmeUxvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdy
YXBoOjpub3RpZnlFcnJvcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlR3JhcGg6OmV2
YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlR3JhcGg6Om5vdGlmeUV2YWx1YXRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpsb2FkKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmguCisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdy
YXBoOjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlR3JhcGg6Om1vZHVsZUtl
eSk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjp3ZWFrRWxlbWVudFB0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjplcnJvck9jY3VycmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTTW9kdWxlR3JhcGg6OmlzTG9hZGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU01vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUxvYWRlcjo6
cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNNb2R1bGVMb2FkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRy
b2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldv
cmxkKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZUpTTW9kdWxlTG9hZGVyRXJyb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0Q29udHJvbGxlcjo6aW5pdEpTTW9kdWxlR3JhcGgpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9t
L1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cHJl
cGFyZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6ZXhlY3V0ZVNjcmlwdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpsb2FkTW9kdWxlKToKKyAgICAgICAgKiBk
b20vU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6bW9k
dWxlR3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c2NyaXB0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpjYWNoZWRTY3JpcHQpOiBEZWxldGVk
LgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5l
cjo6cXVldWVKU01vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6bm90aWZ5SlNNb2R1bGVHcmFwaFJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5o
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6CisK
IDIwMTYtMDgtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgRHJhZ2dpbmcgYWdhaW5zdCB0aGUgZW5kIG9mIHRoZSBpbmxpbmUgbWVkaWEgc2NydWJi
ZXIgY2F1c2VzIHRoZSBtZWRpYSBzY3J1YmJlciB0byBoaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qcwppbmRleCA2
YTNiYzgyNDMwZWYxOGFiYWU2MzRkMGYxMmU2MjBmYmNlMDliMzMyLi44NzY0MzQwOGRmYjdkZjA0
OWM5NzU0ZTE2OGEzMzljMTlmYzliOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuanMKQEAgLTIyMyw3ICsyMjMs
NyBAQCBmdW5jdGlvbiBpbnN0YW50aWF0aW9uKHJlc3VsdCwgc291cmNlLCBlbnRyeSkKIAogLy8g
TG9hZGVyLgogCi1mdW5jdGlvbiByZXF1ZXN0RmV0Y2goa2V5KQorZnVuY3Rpb24gcmVxdWVzdEZl
dGNoKGtleSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9s
b2FkZXIvI3JlcXVlc3QtZmV0Y2gKIApAQCAtMjM5LDIzICsyMzksMjEgQEAgZnVuY3Rpb24gcmVx
dWVzdEZldGNoKGtleSkKICAgICBpZiAoZW50cnkuZmV0Y2gpCiAgICAgICAgIHJldHVybiBlbnRy
eS5mZXRjaDsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotCiAgICAgLy8gSG9vayBwb2ludC4K
ICAgICAvLyAyLiBMb2FkZXIuZmV0Y2gKICAgICAvLyAgICAgaHR0cHM6Ly93aGF0d2cuZ2l0aHVi
LmlvL2xvYWRlci8jYnJvd3Nlci1mZXRjaAogICAgIC8vICAgICBUYWtlIHRoZSBrZXkgYW5kIGZl
dGNoIHRoZSByZXNvdXJjZSBhY3R1YWxseS4KICAgICAvLyAgICAgRm9yIGV4YW1wbGUsIEphdmFT
Y3JpcHRDb3JlIHNoZWxsIGNhbiBwcm92aWRlIHRoZSBob29rIGZldGNoaW5nIHRoZSByZXNvdXJj
ZQogICAgIC8vICAgICBmcm9tIHRoZSBsb2NhbCBmaWxlIHN5c3RlbS4KLSAgICB2YXIgZmV0Y2hQ
cm9taXNlID0gdGhpcy5mZXRjaChrZXkpLnRoZW4oZnVuY3Rpb24gKHBheWxvYWQpIHsKLSAgICAg
ICAgbG9hZGVyLnNldFN0YXRlVG9NYXgoZW50cnksIEBNb2R1bGVUcmFuc2xhdGUpOworICAgIHZh
ciBmZXRjaFByb21pc2UgPSB0aGlzLmZldGNoKGtleSwgaW5pdGlhdG9yKS50aGVuKChwYXlsb2Fk
KSA9PiB7CisgICAgICAgIHRoaXMuc2V0U3RhdGVUb01heChlbnRyeSwgQE1vZHVsZVRyYW5zbGF0
ZSk7CiAgICAgICAgIHJldHVybiBwYXlsb2FkOwogICAgIH0pOwogICAgIGVudHJ5LmZldGNoID0g
ZmV0Y2hQcm9taXNlOwogICAgIHJldHVybiBmZXRjaFByb21pc2U7CiB9CiAKLWZ1bmN0aW9uIHJl
cXVlc3RUcmFuc2xhdGUoa2V5KQorZnVuY3Rpb24gcmVxdWVzdFRyYW5zbGF0ZShrZXksIGluaXRp
YXRvcikKIHsKICAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1ZXN0
LXRyYW5zbGF0ZQogCkBAIC0yNzEsMTUgKzI2OSwxNCBAQCBmdW5jdGlvbiByZXF1ZXN0VHJhbnNs
YXRlKGtleSkKICAgICBpZiAoZW50cnkudHJhbnNsYXRlKQogICAgICAgICByZXR1cm4gZW50cnku
dHJhbnNsYXRlOwogCi0gICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgdmFyIHRyYW5zbGF0ZVBy
b21pc2UgPSB0aGlzLnJlcXVlc3RGZXRjaChrZXkpLnRoZW4oZnVuY3Rpb24gKHBheWxvYWQpIHsK
KyAgICB2YXIgdHJhbnNsYXRlUHJvbWlzZSA9IHRoaXMucmVxdWVzdEZldGNoKGtleSwgaW5pdGlh
dG9yKS50aGVuKChwYXlsb2FkKSA9PiB7CiAgICAgICAgIC8vIEhvb2sgcG9pbnQuCiAgICAgICAg
IC8vIDMuIExvYWRlci50cmFuc2xhdGUKICAgICAgICAgLy8gICAgIGh0dHBzOi8vd2hhdHdnLmdp
dGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXItdHJhbnNsYXRlCiAgICAgICAgIC8vICAgICBUYWtlIHRo
ZSBrZXkgYW5kIHRoZSBmZXRjaGVkIHNvdXJjZSBjb2RlIGFuZCB0cmFuc2xhdGUgaXQgdG8gdGhl
IEVTNiBzb3VyY2UgY29kZS4KICAgICAgICAgLy8gICAgIFR5cGljYWxseSBpdCBpcyB1c2VkIGJ5
IHRoZSB0cmFuc3BpbGVycy4KLSAgICAgICAgcmV0dXJuIGxvYWRlci50cmFuc2xhdGUoa2V5LCBw
YXlsb2FkKS50aGVuKGZ1bmN0aW9uIChzb3VyY2UpIHsKLSAgICAgICAgICAgIGxvYWRlci5zZXRT
dGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlSW5zdGFudGlhdGUpOworICAgICAgICByZXR1cm4gdGhp
cy50cmFuc2xhdGUoa2V5LCBwYXlsb2FkLCBpbml0aWF0b3IpLnRoZW4oKHNvdXJjZSkgPT4gewor
ICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlSW5zdGFudGlhdGUp
OwogICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0y
ODcsNyArMjg0LDcgQEAgZnVuY3Rpb24gcmVxdWVzdFRyYW5zbGF0ZShrZXkpCiAgICAgcmV0dXJu
IHRyYW5zbGF0ZVByb21pc2U7CiB9CiAKLWZ1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZShrZXkp
CitmdW5jdGlvbiByZXF1ZXN0SW5zdGFudGlhdGUoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8g
aHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jcmVxdWVzdC1pbnN0YW50aWF0ZQogCkBA
IC0zMDMsOCArMzAwLDcgQEAgZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtleSkKICAgICBp
ZiAoZW50cnkuaW5zdGFudGlhdGUpCiAgICAgICAgIHJldHVybiBlbnRyeS5pbnN0YW50aWF0ZTsK
IAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHZhciBpbnN0YW50aWF0ZVByb21pc2UgPSB0
aGlzLnJlcXVlc3RUcmFuc2xhdGUoa2V5KS50aGVuKGZ1bmN0aW9uIChzb3VyY2UpIHsKKyAgICB2
YXIgaW5zdGFudGlhdGVQcm9taXNlID0gdGhpcy5yZXF1ZXN0VHJhbnNsYXRlKGtleSwgaW5pdGlh
dG9yKS50aGVuKChzb3VyY2UpID0+IHsKICAgICAgICAgLy8gSG9vayBwb2ludC4KICAgICAgICAg
Ly8gNC4gTG9hZGVyLmluc3RhbnRpYXRlCiAgICAgICAgIC8vICAgICBodHRwczovL3doYXR3Zy5n
aXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWluc3RhbnRpYXRlCkBAIC0zMTIsOCArMzA4LDggQEAg
ZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtleSkKICAgICAgICAgLy8gICAgIGJ5IHBhcnNp
bmcgdGhlIG1vZHVsZSBzb3VyY2UgY29kZS4KICAgICAgICAgLy8gICAgIEl0IGhhcyB0aGUgY2hh
bmNlIHRvIHByb3ZpZGUgdGhlIG9wdGlvbmFsIG1vZHVsZSBpbnN0YW5jZSB0aGF0IGlzIGRpZmZl
cmVudCBmcm9tCiAgICAgICAgIC8vICAgICB0aGUgb3JkaW5hcnkgb25lLgotICAgICAgICByZXR1
cm4gbG9hZGVyLmluc3RhbnRpYXRlKGtleSwgc291cmNlKS50aGVuKGZ1bmN0aW9uIChvcHRpb25h
bEluc3RhbmNlKSB7Ci0gICAgICAgICAgICBsb2FkZXIuY29tbWl0SW5zdGFudGlhdGVkKGVudHJ5
LCBvcHRpb25hbEluc3RhbmNlLCBzb3VyY2UpOworICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW50
aWF0ZShrZXksIHNvdXJjZSwgaW5pdGlhdG9yKS50aGVuKChvcHRpb25hbEluc3RhbmNlKSA9PiB7
CisgICAgICAgICAgICB0aGlzLmNvbW1pdEluc3RhbnRpYXRlZChlbnRyeSwgb3B0aW9uYWxJbnN0
YW5jZSwgc291cmNlKTsKICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0zMjEsNyArMzE3LDcgQEAgZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtl
eSkKICAgICByZXR1cm4gaW5zdGFudGlhdGVQcm9taXNlOwogfQogCi1mdW5jdGlvbiByZXF1ZXN0
UmVzb2x2ZURlcGVuZGVuY2llcyhrZXkpCitmdW5jdGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVuZGVu
Y2llcyhrZXksIGluaXRpYXRvcikKIHsKICAgICAvLyBGSVhNRTogSW4gdGhlIHNwZWMsIGFmdGVy
IHJlcXVlc3RpbmcgaW5zdGFudGlhdGlvbiwgd2Ugd2lsbCByZXNvbHZlCiAgICAgLy8gdGhlIGRl
cGVuZGVuY2llcyB3aXRob3V0IGFueSBzdGF0dXMgY2hhbmdlLiBBcyBhIHJlc3VsdCwgd2hlbiB0
aGVyZQpAQCAtMzQ1LDggKzM0MSw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RSZXNvbHZlRGVwZW5kZW5j
aWVzKGtleSkKICAgICBpZiAoZW50cnkucmVzb2x2ZURlcGVuZGVuY2llcykKICAgICAgICAgcmV0
dXJuIGVudHJ5LnJlc29sdmVEZXBlbmRlbmNpZXM7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsK
LSAgICB2YXIgcmVzb2x2ZURlcGVuZGVuY2llc1Byb21pc2UgPSB0aGlzLnJlcXVlc3RJbnN0YW50
aWF0ZShrZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgdmFyIHJlc29sdmVEZXBlbmRl
bmNpZXNQcm9taXNlID0gdGhpcy5yZXF1ZXN0SW5zdGFudGlhdGUoa2V5LCBpbml0aWF0b3IpLnRo
ZW4oKGVudHJ5KSA9PiB7CiAgICAgICAgIHZhciBkZXBMb2FkcyA9IFtdOwogICAgICAgICBmb3Ig
KHZhciBpID0gMCwgbGVuZ3RoID0gZW50cnkuZGVwZW5kZW5jaWVzLmxlbmd0aDsgaSA8IGxlbmd0
aDsgKytpKSB7CiAgICAgICAgICAgICBsZXQgcGFpciA9IGVudHJ5LmRlcGVuZGVuY2llc1tpXTsK
QEAgLTM1Niw4ICszNTEsOCBAQCBmdW5jdGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhr
ZXkpCiAgICAgICAgICAgICAvLyAgICAgaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8j
YnJvd3Nlci1yZXNvbHZlCiAgICAgICAgICAgICAvLyAgICAgVGFrZSB0aGUgbmFtZSBhbmQgcmVz
b2x2ZSBpdCB0byB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSBsb2NhdGlv
bi4KICAgICAgICAgICAgIC8vICAgICBGb3IgZXhhbXBsZSwgdGFrZSB0aGUgImpxdWVyeSIgYW5k
IHJldHVybiB0aGUgVVJMIGZvciB0aGUgcmVzb3VyY2UuCi0gICAgICAgICAgICB2YXIgcHJvbWlz
ZSA9IGxvYWRlci5yZXNvbHZlKHBhaXIua2V5LCBrZXkpLnRoZW4oZnVuY3Rpb24gKGRlcEtleSkg
ewotICAgICAgICAgICAgICAgIHZhciBkZXBFbnRyeSA9IGxvYWRlci5lbnN1cmVSZWdpc3RlcmVk
KGRlcEtleSk7CisgICAgICAgICAgICB2YXIgcHJvbWlzZSA9IHRoaXMucmVzb2x2ZShwYWlyLmtl
eSwga2V5LCBpbml0aWF0b3IpLnRoZW4oKGRlcEtleSkgPT4geworICAgICAgICAgICAgICAgIHZh
ciBkZXBFbnRyeSA9IHRoaXMuZW5zdXJlUmVnaXN0ZXJlZChkZXBLZXkpOwogCiAgICAgICAgICAg
ICAgICAgLy8gUmVjdXJzaXZlIHJlc29sdmluZy4gVGhlIGRlcGVuZGVuY2llcyBvZiB0aGlzIGVu
dHJ5IGlzIGJlaW5nIHJlc29sdmVkIG9yIGFscmVhZHkgcmVzb2x2ZWQuCiAgICAgICAgICAgICAg
ICAgLy8gU3RvcCB0cmFjaW5nIHRoZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCkBAIC0zNjksMTMg
KzM2NCwxMyBAQCBmdW5jdGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhrZXkpCiAgICAg
ICAgICAgICAgICAgLy8gcmVqZWN0ZWQgYnkgdGhlIFByb21pc2VzIHJ1bnRpbWUuIFNpbmNlIG9u
bHkgd2UgbmVlZCBpcyB0aGUgaW5zdGFudGlhdGVkIG1vZHVsZSwgaW5zdGVhZCBvZiB3YWl0aW5n
CiAgICAgICAgICAgICAgICAgLy8gdGhlIFJlc29sdmVEZXBlbmRlbmNpZXMgZm9yIHRoaXMgbW9k
dWxlLCB3ZSBqdXN0IHdhaXQgSW5zdGFudGlhdGUgZm9yIHRoaXMuCiAgICAgICAgICAgICAgICAg
aWYgKGRlcEVudHJ5LnJlc29sdmVEZXBlbmRlbmNpZXMpIHsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGRlcEVudHJ5Lmluc3RhbnRpYXRlLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBkZXBFbnRyeS5pbnN0YW50aWF0ZS50aGVuKChlbnRyeSkg
PT4gewogICAgICAgICAgICAgICAgICAgICAgICAgcGFpci52YWx1ZSA9IGVudHJ5Lm1vZHVsZTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxvYWRl
ci5yZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhkZXBLZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlc29sdmVEZXBlbmRlbmNp
ZXMoZGVwS2V5LCBpbml0aWF0b3IpLnRoZW4oKGVudHJ5KSA9PiB7CiAgICAgICAgICAgICAgICAg
ICAgIHBhaXIudmFsdWUgPSBlbnRyeS5tb2R1bGU7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBlbnRyeTsKICAgICAgICAgICAgICAgICB9KTsKQEAgLTM4Myw4ICszNzgsOCBAQCBmdW5jdGlv
biByZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhrZXkpCiAgICAgICAgICAgICBAcHV0QnlWYWxE
aXJlY3QoZGVwTG9hZHMsIGksIHByb21pc2UpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJu
IEBJbnRlcm5hbFByb21pc2UuaW50ZXJuYWxBbGwoZGVwTG9hZHMpLnRoZW4oZnVuY3Rpb24gKG1v
ZHVsZXMpIHsKLSAgICAgICAgICAgIGxvYWRlci5zZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxl
TGluayk7CisgICAgICAgIHJldHVybiBASW50ZXJuYWxQcm9taXNlLmludGVybmFsQWxsKGRlcExv
YWRzKS50aGVuKChtb2R1bGVzKSA9PiB7CisgICAgICAgICAgICB0aGlzLnNldFN0YXRlVG9NYXgo
ZW50cnksIEBNb2R1bGVMaW5rKTsKICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAg
fSk7CiAgICAgfSk7CkBAIC0zOTMsMTYgKzM4OCwxNiBAQCBmdW5jdGlvbiByZXF1ZXN0UmVzb2x2
ZURlcGVuZGVuY2llcyhrZXkpCiAgICAgcmV0dXJuIHJlc29sdmVEZXBlbmRlbmNpZXNQcm9taXNl
OwogfQogCi1mdW5jdGlvbiByZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5KQorZnVuY3Rpb24gcmVx
dWVzdEluc3RhbnRpYXRlQWxsKGtleSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hh
dHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtaW5zdGFudGlhdGUtYWxsCiAKICAgICAidXNl
IHN0cmljdCI7CiAKLSAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhr
ZXkpOworICAgIHJldHVybiB0aGlzLnJlcXVlc3RSZXNvbHZlRGVwZW5kZW5jaWVzKGtleSwgaW5p
dGlhdG9yKTsKIH0KIAotZnVuY3Rpb24gcmVxdWVzdExpbmsoa2V5KQorZnVuY3Rpb24gcmVxdWVz
dExpbmsoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlv
L2xvYWRlci8jcmVxdWVzdC1saW5rCiAKQEAgLTQxNSwyOCArNDEwLDI2IEBAIGZ1bmN0aW9uIHJl
cXVlc3RMaW5rKGtleSkKICAgICAgICAgcmV0dXJuIGRlZmVycmVkLkBwcm9taXNlOwogICAgIH0K
IAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHJldHVybiB0aGlzLnJlcXVlc3RJbnN0YW50
aWF0ZUFsbChrZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7Ci0gICAgICAgIGxvYWRlci5saW5r
KGVudHJ5KTsKKyAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5LCBpbml0
aWF0b3IpLnRoZW4oKGVudHJ5KSA9PiB7CisgICAgICAgIHRoaXMubGluayhlbnRyeSwgaW5pdGlh
dG9yKTsKICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAgIH0pOwogfQogCi1mdW5jdGlvbiByZXF1
ZXN0UmVhZHkoa2V5KQorZnVuY3Rpb24gcmVxdWVzdFJlYWR5KGtleSwgaW5pdGlhdG9yKQogewog
ICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtcmVhZHkKIAog
ICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHJldHVybiB0
aGlzLnJlcXVlc3RMaW5rKGtleSkudGhlbihmdW5jdGlvbiAoZW50cnkpIHsKLSAgICAgICAgbG9h
ZGVyLm1vZHVsZUV2YWx1YXRpb24oZW50cnkubW9kdWxlKTsKKyAgICByZXR1cm4gdGhpcy5yZXF1
ZXN0TGluayhrZXksIGluaXRpYXRvcikudGhlbigoZW50cnkpID0+IHsKKyAgICAgICAgdGhpcy5t
b2R1bGVFdmFsdWF0aW9uKGVudHJ5Lm1vZHVsZSwgaW5pdGlhdG9yKTsKICAgICB9KTsKIH0KIAog
Ly8gTGlua2luZyBzZW1hbnRpY3MuCiAKLWZ1bmN0aW9uIGxpbmsoZW50cnkpCitmdW5jdGlvbiBs
aW5rKGVudHJ5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlv
L2xvYWRlci8jbGluawogCkBAIC00NTYsMTUgKzQ0OSwxNSBAQCBmdW5jdGlvbiBsaW5rKGVudHJ5
KQogICAgIHZhciBkZXBlbmRlbmNpZXMgPSBlbnRyeS5kZXBlbmRlbmNpZXM7CiAgICAgZm9yICh2
YXIgaSA9IDAsIGxlbmd0aCA9IGRlcGVuZGVuY2llcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkg
ewogICAgICAgICB2YXIgcGFpciA9IGRlcGVuZGVuY2llc1tpXTsKLSAgICAgICAgdGhpcy5saW5r
KHBhaXIudmFsdWUucmVnaXN0cnlFbnRyeSk7CisgICAgICAgIHRoaXMubGluayhwYWlyLnZhbHVl
LnJlZ2lzdHJ5RW50cnksIGluaXRpYXRvcik7CiAgICAgfQogCi0gICAgdGhpcy5tb2R1bGVEZWNs
YXJhdGlvbkluc3RhbnRpYXRpb24oZW50cnkubW9kdWxlKTsKKyAgICB0aGlzLm1vZHVsZURlY2xh
cmF0aW9uSW5zdGFudGlhdGlvbihlbnRyeS5tb2R1bGUsIGluaXRpYXRvcik7CiB9CiAKIC8vIE1v
ZHVsZSBzZW1hbnRpY3MuCiAKLWZ1bmN0aW9uIG1vZHVsZUV2YWx1YXRpb24obW9kdWxlUmVjb3Jk
KQorZnVuY3Rpb24gbW9kdWxlRXZhbHVhdGlvbihtb2R1bGVSZWNvcmQsIGluaXRpYXRvcikKIHsK
ICAgICAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNz
ZWMtbW9kdWxlZXZhbHVhdGlvbgogCkBAIC00ODEsOSArNDc0LDkgQEAgZnVuY3Rpb24gbW9kdWxl
RXZhbHVhdGlvbihtb2R1bGVSZWNvcmQpCiAgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IGRl
cGVuZGVuY2llcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICB2YXIgcGFpciA9
IGRlcGVuZGVuY2llc1tpXTsKICAgICAgICAgdmFyIHJlcXVpcmVkTW9kdWxlUmVjb3JkID0gcGFp
ci52YWx1ZTsKLSAgICAgICAgdGhpcy5tb2R1bGVFdmFsdWF0aW9uKHJlcXVpcmVkTW9kdWxlUmVj
b3JkKTsKKyAgICAgICAgdGhpcy5tb2R1bGVFdmFsdWF0aW9uKHJlcXVpcmVkTW9kdWxlUmVjb3Jk
LCBpbml0aWF0b3IpOwogICAgIH0KLSAgICB0aGlzLmV2YWx1YXRlKGVudHJ5LmtleSwgbW9kdWxl
UmVjb3JkKTsKKyAgICB0aGlzLmV2YWx1YXRlKGVudHJ5LmtleSwgbW9kdWxlUmVjb3JkLCBpbml0
aWF0b3IpOwogfQogCiAvLyBBUElzIHRvIGNvbnRyb2wgdGhlIG1vZHVsZSBsb2FkZXIuCkBAIC01
MTQsOSArNTA3LDggQEAgZnVuY3Rpb24gcHJvdmlkZShrZXksIHN0YWdlLCB2YWx1ZSkKICAgICAg
ICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJSZXF1ZXN0ZWQgbW9kdWxlIGlzIGFscmVhZHkg
aW5zdGFudGlhdGVkLiIpOwogICAgICAgICB0aGlzLmZ1bGZpbGxGZXRjaChlbnRyeSwgQHVuZGVm
aW5lZCk7CiAgICAgICAgIHRoaXMuZnVsZmlsbFRyYW5zbGF0ZShlbnRyeSwgdmFsdWUpOwotICAg
ICAgICB2YXIgbG9hZGVyID0gdGhpczsKLSAgICAgICAgZW50cnkudHJhbnNsYXRlLnRoZW4oZnVu
Y3Rpb24gKHNvdXJjZSkgewotICAgICAgICAgICAgbG9hZGVyLmZ1bGZpbGxJbnN0YW50aWF0ZShl
bnRyeSwgdmFsdWUsIHNvdXJjZSk7CisgICAgICAgIGVudHJ5LnRyYW5zbGF0ZS50aGVuKChzb3Vy
Y2UpID0+IHsKKyAgICAgICAgICAgIHRoaXMuZnVsZmlsbEluc3RhbnRpYXRlKGVudHJ5LCB2YWx1
ZSwgc291cmNlKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01MjQs
MzkgKzUxNiwzNyBAQCBmdW5jdGlvbiBwcm92aWRlKGtleSwgc3RhZ2UsIHZhbHVlKQogICAgIHRo
cm93IG5ldyBAVHlwZUVycm9yKCJSZXF1ZXN0ZWQgbW9kdWxlIGlzIGFscmVhZHkgcmVhZHkgdG8g
YmUgZXhlY3V0ZWQuIik7CiB9CiAKLWZ1bmN0aW9uIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShtb2R1
bGVOYW1lLCByZWZlcnJlcikKK2Z1bmN0aW9uIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShtb2R1bGVO
YW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIHZh
ciBsb2FkZXIgPSB0aGlzOwogICAgIC8vIExvYWRlci5yZXNvbHZlIGhvb2sgcG9pbnQuCiAgICAg
Ly8gcmVzb2x2ZTogbW9kdWxlTmFtZSA9PiBQcm9taXNlKG1vZHVsZUtleSkKICAgICAvLyBUYWtl
IHRoZSBuYW1lIGFuZCByZXNvbHZlIGl0IHRvIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhl
IHJlc291cmNlIGxvY2F0aW9uLgogICAgIC8vIEZvciBleGFtcGxlLCB0YWtlIHRoZSAianF1ZXJ5
IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJjZS4KLSAgICByZXR1cm4gdGhpcy5y
ZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyKS50aGVuKGZ1bmN0aW9uIChrZXkpIHsKLSAgICAg
ICAgcmV0dXJuIGxvYWRlci5yZXF1ZXN0UmVhZHkoa2V5KTsKKyAgICByZXR1cm4gdGhpcy5yZXNv
bHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpLnRoZW4oKGtleSkgPT4geworICAg
ICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVhZHkoa2V5LCBpbml0aWF0b3IpOwogICAgIH0pOwog
fQogCi1mdW5jdGlvbiBsb2FkTW9kdWxlKG1vZHVsZU5hbWUsIHJlZmVycmVyKQorZnVuY3Rpb24g
bG9hZE1vZHVsZShtb2R1bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKQogewogICAgICJ1c2Ug
c3RyaWN0IjsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwogICAgIC8vIExvYWRlci5yZXNvbHZl
IGhvb2sgcG9pbnQuCiAgICAgLy8gcmVzb2x2ZTogbW9kdWxlTmFtZSA9PiBQcm9taXNlKG1vZHVs
ZUtleSkKICAgICAvLyBUYWtlIHRoZSBuYW1lIGFuZCByZXNvbHZlIGl0IHRvIHRoZSB1bmlxdWUg
aWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIGxvY2F0aW9uLgogICAgIC8vIEZvciBleGFtcGxl
LCB0YWtlIHRoZSAianF1ZXJ5IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJjZS4K
LSAgICByZXR1cm4gdGhpcy5yZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyKS50aGVuKGZ1bmN0
aW9uIChrZXkpIHsKLSAgICAgICAgcmV0dXJuIGxvYWRlci5yZXF1ZXN0SW5zdGFudGlhdGVBbGwo
a2V5KTsKLSAgICB9KS50aGVuKGZ1bmN0aW9uIChlbnRyeSkgeworICAgIHJldHVybiB0aGlzLnJl
c29sdmUobW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcikudGhlbigoa2V5KSA9PiB7Cisg
ICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RJbnN0YW50aWF0ZUFsbChrZXksIGluaXRpYXRvcik7
CisgICAgfSkudGhlbigoZW50cnkpID0+IHsKICAgICAgICAgcmV0dXJuIGVudHJ5LmtleTsKICAg
ICB9KTsKIH0KIAotZnVuY3Rpb24gbGlua0FuZEV2YWx1YXRlTW9kdWxlKGtleSkKK2Z1bmN0aW9u
IGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShrZXksIGluaXRpYXRvcikKIHsKICAgICAidXNlIHN0cmlj
dCI7CiAKLSAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVhZHkoa2V5KTsKKyAgICByZXR1cm4gdGhp
cy5yZXF1ZXN0UmVhZHkoa2V5LCBpbml0aWF0b3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRl
eCAyYjIyZTQwMDQ4YTE3YTE1ZDA0NGMwOWE5MDNiYTU0MGI4MzExZmRkLi4xNjI2ZTc1ZDQxMjI0
YzEzNjIzMDY0MTgzNmE5ZTlkZDFhMDQ5Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtODg1
LDggKzg4NSw4IEBAIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7
CiAgICAgICAgIHB1dERpcmVjdCh2bSwgaWRlbnRpZmllciwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCBhcmd1bWVudHMsIGlkZW50aWZpZXIuc3RyaW5nKCksIGZ1bmN0aW9uLCBOb0ludHJp
bnNpYywgZnVuY3Rpb24pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgSlNJbnRlcm5hbFByb21pc2Uq
IG1vZHVsZUxvYWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVs
ZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0ludGVybmFsUHJvbWlz
ZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVs
ZUxvYWRlciosIEpTVmFsdWUpOworICAgIHN0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogbW9kdWxl
TG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVy
KiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CisgICAgc3RhdGljIEpTSW50ZXJuYWxQcm9t
aXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9k
dWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiB9OwogCiBjb25zdCBDbGFzc0luZm8gR2xv
YmFsT2JqZWN0OjpzX2luZm8gPSB7ICJnbG9iYWwiLCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbywg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShHbG9iYWxPYmplY3QpIH07CkBAIC0xMDE3LDcg
KzEwMTcsNyBAQCBzdGF0aWMgU3RyaW5nIHJlc29sdmVQYXRoKGNvbnN0IERpcmVjdG9yeU5hbWUm
IGRpcmVjdG9yeU5hbWUsIGNvbnN0IE1vZHVsZU5hbWUmCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9h
ZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMs
IEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSBrZXlWYWx1ZSwgSlNWYWx1ZSByZWZlcnJlclZhbHVl
KQorSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlTG9h
ZGVyKiwgSlNWYWx1ZSBrZXlWYWx1ZSwgSlNWYWx1ZSByZWZlcnJlclZhbHVlLCBKU1ZhbHVlKQog
ewogICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgY29uc3QgSWRl
bnRpZmllciBrZXkgPSBrZXlWYWx1ZS50b1Byb3BlcnR5S2V5KGV4ZWMpOwpAQCAtMTEyMiw3ICsx
MTIyLDcgQEAgc3RhdGljIGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUsIFZlY3RvcjxjaGFyPiYKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1KU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlTG9hZGVy
KiwgSlNWYWx1ZSBrZXkpCitKU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVM
b2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMs
IEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSBrZXksIEpTVmFsdWUpCiB7CiAgICAgSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICBTdHJpbmcgbW9kdWxlS2V5ID0ga2V5LnRv
V1RGU3RyaW5nKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tcGxldGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0
aW9uLmNwcAppbmRleCBjNTg2OTU2Njc0N2EyN2QxMDllNWEzNjJmZjcyMjNhZTdmYTY2Yzk4Li5l
OTdmMTIxNzg1NTNmY2Y5ODVjMThiNWEwY2Q2NmNmZGU4MGZhNGNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcApAQCAtMTU1LDI2ICsxNTUsMjYgQEAg
c3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiByZWplY3RQcm9taXNlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsK
IH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoY29u
c3QgSlNMb2NrSG9sZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitzdGF0aWMgSlNJ
bnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShjb25zdCBKU0xvY2tIb2xkZXIm
LCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
bW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7Ci0gICAg
cmV0dXJuIGdsb2JhbE9iamVjdC0+bW9kdWxlTG9hZGVyKCktPmxvYWRBbmRFdmFsdWF0ZU1vZHVs
ZShleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+
bW9kdWxlTG9hZGVyKCktPmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBtb2R1bGVOYW1lLCBy
ZWZlcnJlciwgaW5pdGlhdG9yKTsKIH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2Fk
QW5kRXZhbHVhdGVNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVyJiBsb2NrLCBFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG1vZHVs
ZU5hbWUpCitzdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShj
b25zdCBKU0xvY2tIb2xkZXImIGxvY2ssIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0
aWF0b3IpCiB7Ci0gICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShsb2NrLCBleGVjLCBn
bG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxlTmFtZSks
IGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUobG9jaywg
ZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMtPnZtKCksIG1vZHVs
ZU5hbWUpLCBqc1VuZGVmaW5lZCgpLCBpbml0aWF0b3IpOwogfQogCi1KU0ludGVybmFsUHJvbWlz
ZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBt
b2R1bGVOYW1lKQorSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3Ip
CiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhl
Yy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJp
bmdUYWJsZSgpKTsKICAgICBSRUxFQVNFX0FTU0VSVCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1
c3koKSk7CiAKLSAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxvY2ssIGV4ZWMsIGV4
ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBt
b2R1bGVOYW1lKSk7CisgICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShsb2NrLCBleGVj
LCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhl
YywgbW9kdWxlTmFtZSksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBsb2Fk
QW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3Vy
Y2UpCitKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAg
ICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT52bSgp
LmF0b21pY1N0cmluZ1RhYmxlKCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxl
KCkpOwpAQCAtMTg5LDI5ICsxODksMjkgQEAgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFs
dWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXIKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZWplY3RQcm9taXNlKGV4
ZWMsIGdsb2JhbE9iamVjdCk7CiAKLSAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxv
Y2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4g
bG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBqc1Vu
ZGVmaW5lZCgpLCBpbml0aWF0b3IpOwogfQogCi1zdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxv
YWRNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIp
CitzdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVy
JiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKQogewotICAg
IHJldHVybiBnbG9iYWxPYmplY3QtPm1vZHVsZUxvYWRlcigpLT5sb2FkTW9kdWxlKGV4ZWMsIG1v
ZHVsZU5hbWUsIHJlZmVycmVyKTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2Fk
ZXIoKS0+bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKTsK
IH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKGNvbnN0IEpTTG9ja0hv
bGRlciYgbG9jaywgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1lKQorc3RhdGljIEpTSW50ZXJuYWxQcm9taXNl
KiBsb2FkTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYgbG9jaywgRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1l
LCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKLSAgICByZXR1cm4gbG9hZE1vZHVsZShsb2NrLCBleGVj
LCBnbG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxlTmFt
ZSksIGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBsb2FkTW9kdWxlKGxvY2ssIGV4ZWMsIGds
b2JhbE9iamVjdCwgaWRlbnRpZmllclRvSlNWYWx1ZShleGVjLT52bSgpLCBtb2R1bGVOYW1lKSwg
anNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIGxvYWRN
b2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCitKU0ludGVy
bmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9k
dWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhl
Yyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgpID09
IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKICAgICBSRUxFQVNFX0FTU0VS
VCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1c3koKSk7CiAKLSAgICByZXR1cm4gbG9hZE1vZHVs
ZShsb2NrLCBleGVjLCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoZXhlYywgbW9kdWxlTmFtZSkpOworICAgIHJldHVybiBsb2FkTW9kdWxlKGxvY2ss
IGV4ZWMsIGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhleGVjLCBtb2R1bGVOYW1lKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2Uq
IGxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCitK
U0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2soZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJs
ZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKQEAgLTIyNiwxNyAr
MjI2LDE3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgU291cmNlQ29kZSYgc291cmNlKQogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
ICAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2UoZXhlYywgZ2xvYmFsT2JqZWN0KTsKIAotICAg
IHJldHVybiBsb2FkTW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBqc1VuZGVm
aW5lZCgpKTsKKyAgICByZXR1cm4gbG9hZE1vZHVsZShsb2NrLCBleGVjLCBnbG9iYWxPYmplY3Qs
IGtleSwganNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2Uq
IGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IG1vZHVsZUtleSkKK0pTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXksIEpTVmFsdWUgaW5pdGlh
dG9yKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVBU0VfQVNTRVJU
KGV4ZWMtPnZtKCkuYXRvbWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWlj
U3RyaW5nVGFibGUoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWV4ZWMtPnZtKCkuaXNDb2xsZWN0
b3JCdXN5KCkpOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPnZt
RW50cnlHbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2Fk
ZXIoKS0+bGlua0FuZEV2YWx1YXRlTW9kdWxlKGV4ZWMsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhl
Yy0+dm0oKSwgbW9kdWxlS2V5KSk7CisgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+bW9kdWxlTG9h
ZGVyKCktPmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4
ZWMtPnZtKCksIG1vZHVsZUtleSksIGluaXRpYXRvcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCmluZGV4IGYxMzFj
YzVhZTU3MWNiNmJlMGI2ZDNjYjAxNWU4OTkxYTIyNDBiNTcuLmIzNDEwODA4NmY3MDE2NDAwNGM0
NzFhOWVhM2FlZTE1YTM4ZDUzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbXBsZXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21wbGV0aW9uLmgKQEAgLTU4LDE1ICs1OCwxNSBAQCBpbmxpbmUgSlNWYWx1ZSBwcm9maWxlZEV2
YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYywgUHJvZmlsaW5nUmVhc29uIHJlYXNvbiwgY29uc3QgUwog
SlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihFeGVj
U3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3QqIHNjb3BlRXh0ZW5zaW9uLCBOYWtl
ZFB0cjxFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlvbik7CiAKIC8vIExvYWQgdGhlIG1vZHVs
ZSBzb3VyY2UgYW5kIGV2YWx1YXRlIGl0LgotSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFBy
b21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIG1v
ZHVsZU5hbWUpOwotSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRF
dmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CitKU19FWFBPUlRf
UFJJVkFURSBKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0
ZSosIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IgPSBqc1VuZGVm
aW5lZCgpKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZh
bHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTVmFsdWUgaW5pdGlh
dG9yID0ganNVbmRlZmluZWQoKSk7CiAKIC8vIEZldGNoIHRoZSBtb2R1bGUgc291cmNlLCBhbmQg
aW5zdGFudGlhdGUgdGhlIG1vZHVsZSByZWNvcmQuCi1KU19FWFBPUlRfUFJJVkFURSBKU0ludGVy
bmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5h
bWUpOwotSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhl
Y1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5h
bFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1l
LCBKU1ZhbHVlIGluaXRpYXRvciA9IGpzVW5kZWZpbmVkKCkpOworSlNfRVhQT1JUX1BSSVZBVEUg
SlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29k
ZSYsIEpTVmFsdWUgaW5pdGlhdG9yID0ganNVbmRlZmluZWQoKSk7CiAKIC8vIExpbmsgYW5kIGV2
YWx1YXRlIHRoZSBhbHJlYWR5IGxpbmtlZCBtb2R1bGUuCi1KU19FWFBPUlRfUFJJVkFURSBKU0lu
dGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIG1vZHVsZUtleSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlz
ZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG1v
ZHVsZUtleSwgSlNWYWx1ZSBpbml0aWF0b3IgPSBqc1VuZGVmaW5lZCgpKTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCmluZGV4IGY1NjcxMTYwZjJjZjhjMGMzNmNkNTc4MzZiZTJjNDRiMGVmMzlkOWUuLjc4
MzdhYzZhZGZhOGZhZGJjOWJjZDA0MWE0MDdmOGRhOGFkZDAwODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTY2LDE5ICsxNjYsMTkg
QEAgc3RydWN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHsKICAgICB0eXBlZGVmIGJvb2wgKCpT
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0UHRyKShjb25zdCBKU0dsb2JhbE9iamVj
dCopOwogICAgIFNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXRQdHIgc2hvdWxkSW50
ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dDsKIAotICAgIHR5cGVkZWYgSlNJbnRlcm5hbFByb21p
c2UqICgqTW9kdWxlTG9hZGVyUmVzb2x2ZVB0cikoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUq
LCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOworICAgIHR5cGVkZWYgSlNJbnRl
cm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyUmVzb2x2ZVB0cikoSlNHbG9iYWxPYmplY3QqLCBF
eGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUpOwog
ICAgIE1vZHVsZUxvYWRlclJlc29sdmVQdHIgbW9kdWxlTG9hZGVyUmVzb2x2ZTsKIAotICAgIHR5
cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyRmV0Y2hQdHIpKEpTR2xvYmFs
T2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlKTsKKyAgICB0eXBl
ZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlckZldGNoUHRyKShKU0dsb2JhbE9i
amVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiAg
ICAgTW9kdWxlTG9hZGVyRmV0Y2hQdHIgbW9kdWxlTG9hZGVyRmV0Y2g7CiAKLSAgICB0eXBlZGVm
IEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlclRyYW5zbGF0ZVB0cikoSlNHbG9iYWxP
YmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOwor
ICAgIHR5cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyVHJhbnNsYXRlUHRy
KShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwg
SlNWYWx1ZSwgSlNWYWx1ZSk7CiAgICAgTW9kdWxlTG9hZGVyVHJhbnNsYXRlUHRyIG1vZHVsZUxv
YWRlclRyYW5zbGF0ZTsKIAotICAgIHR5cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxl
TG9hZGVySW5zdGFudGlhdGVQdHIpKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1
bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKKyAgICB0eXBlZGVmIEpTSW50ZXJuYWxQcm9t
aXNlKiAoKk1vZHVsZUxvYWRlckluc3RhbnRpYXRlUHRyKShKU0dsb2JhbE9iamVjdCosIEV4ZWNT
dGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiAgICAg
TW9kdWxlTG9hZGVySW5zdGFudGlhdGVQdHIgbW9kdWxlTG9hZGVySW5zdGFudGlhdGU7CiAKLSAg
ICB0eXBlZGVmIEpTVmFsdWUgKCpNb2R1bGVMb2FkZXJFdmFsdWF0ZVB0cikoSlNHbG9iYWxPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOworICAg
IHR5cGVkZWYgSlNWYWx1ZSAoKk1vZHVsZUxvYWRlckV2YWx1YXRlUHRyKShKU0dsb2JhbE9iamVj
dCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1
ZSk7CiAgICAgTW9kdWxlTG9hZGVyRXZhbHVhdGVQdHIgbW9kdWxlTG9hZGVyRXZhbHVhdGU7CiAK
ICAgICB0eXBlZGVmIFN0cmluZyAoKkRlZmF1bHRMYW5ndWFnZUZ1bmN0aW9uUHRyKSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCmluZGV4
IGQzYjVhNmE0NmY1YmQ0MTczNjBiMzJkMTU2NWU5ZDY1MWY0NDIxMTEuLjRlYWViZDc1ZDVhYmNj
NThlZDM3ODMzZGEyMTcwMDhkZWZhOTgwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgSlNWYWx1ZSBK
U01vZHVsZUxvYWRlcjo6cHJvdmlkZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBTdGF0
dXMgc3RhdHVzLCBjb24KICAgICByZXR1cm4gY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUs
IGNhbGxEYXRhLCB0aGlzLCBhcmd1bWVudHMpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNN
b2R1bGVMb2FkZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01v
ZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAg
ICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZXhlYywgZXhlYy0+
cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmxvYWRBbmRFdmFsdWF0ZU1vZHVsZVB1Ymxp
Y05hbWUoKSkpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpAQCAtOTYsMTEgKzk2LDEyIEBAIEpT
SW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRz
OwogICAgIGFyZ3VtZW50cy5hcHBlbmQobW9kdWxlTmFtZSk7CiAgICAgYXJndW1lbnRzLmFwcGVu
ZChyZWZlcnJlcik7CisgICAgYXJndW1lbnRzLmFwcGVuZChpbml0aWF0b3IpOwogCiAgICAgcmV0
dXJuIGpzQ2FzdDxKU0ludGVybmFsUHJvbWlzZSo+KGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxU
eXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1lbnRzKSk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNl
KiBKU01vZHVsZUxvYWRlcjo6bG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9k
dWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxv
YWRlcjo6bG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNW
YWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNPYmplY3QqIGZ1bmN0
aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5i
dWlsdGluTmFtZXMoKS5sb2FkTW9kdWxlUHVibGljTmFtZSgpKSk7CiAgICAgQ2FsbERhdGEgY2Fs
bERhdGE7CkBAIC0xMTAsMTEgKzExMSwxMiBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVM
b2FkZXI6OmxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG1vZHVsZU5hbQogICAg
IE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKG1v
ZHVsZU5hbWUpOwogICAgIGFyZ3VtZW50cy5hcHBlbmQocmVmZXJyZXIpOworICAgIGFyZ3VtZW50
cy5hcHBlbmQoaW5pdGlhdG9yKTsKIAogICAgIHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21p
c2UqPihjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3Vt
ZW50cykpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxpbmtBbmRF
dmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlS2V5KQorSlNJbnRl
cm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIG1vZHVsZUtleSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAg
SlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMsIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGVQdWJsaWNO
YW1lKCkpKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKQEAgLTEyMywzMSArMTI1LDMyIEBAIEpT
SW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVu
dHM7CiAgICAgYXJndW1lbnRzLmFwcGVuZChtb2R1bGVLZXkpOworICAgIGFyZ3VtZW50cy5hcHBl
bmQoaW5pdGlhdG9yKTsKIAogICAgIHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21pc2UqPihj
YWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3VtZW50cykp
OwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIG5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitKU0ludGVybmFsUHJv
bWlzZSogSlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG5h
bWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIGlmIChPcHRp
b25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCiAgICAgICAgIGRhdGFMb2coIkxvYWRlciBb
cmVzb2x2ZV0gIiwgcHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIG5hbWUpLCAiXG4iKTsKIAogICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9k
dWxlTG9hZGVyUmVzb2x2ZSkKLSAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyUmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4ZWMs
IHRoaXMsIG5hbWUsIHJlZmVycmVyKTsKKyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyUmVzb2x2ZShnbG9iYWxPYmplY3Qs
IGV4ZWMsIHRoaXMsIG5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpOwogICAgIEpTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3Jl
YXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgbmFt
ZSk7CiAgICAgcmV0dXJuIGRlZmVycmVkLT5wcm9taXNlKCk7CiB9CiAKLUpTSW50ZXJuYWxQcm9t
aXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSkK
K0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgaWYgKE9wdGlvbnM6OmR1
bXBNb2R1bGVMb2FkaW5nU3RhdGUoKSkKICAgICAgICAgZGF0YUxvZygiTG9hZGVyIFtmZXRjaF0g
IiwgcHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIGtleSksICJcbiIpOwogCiAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBp
ZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJG
ZXRjaCkKLSAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUoKS0+bW9kdWxlTG9hZGVyRmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXkpOwor
ICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5t
b2R1bGVMb2FkZXJGZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgaW5pdGlhdG9y
KTsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogICAgIFN0cmluZyBt
b2R1bGVLZXkgPSBrZXkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkgewpAQCAtMTYwLDQwICsxNjMsNDAgQEAgSlNJbnRlcm5hbFByb21p
c2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5KQog
ICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSog
SlNNb2R1bGVMb2FkZXI6OnRyYW5zbGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBK
U1ZhbHVlIHBheWxvYWQpCitKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnRyYW5z
bGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHBheWxvYWQsIEpTVmFs
dWUgaW5pdGlhdG9yKQogewogICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRl
KCkpCiAgICAgICAgIGRhdGFMb2coIkxvYWRlciBbdHJhbnNsYXRlXSAiLCBwcmludGFibGVNb2R1
bGVLZXkoZXhlYywga2V5KSwgIlxuIik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIGlmIChnbG9iYWxPYmplY3Qt
Pmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlclRyYW5zbGF0ZSkKLSAgICAg
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxl
TG9hZGVyVHJhbnNsYXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBwYXlsb2FkKTsK
KyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+
bW9kdWxlTG9hZGVyVHJhbnNsYXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBwYXls
b2FkLCBpbml0aWF0b3IpOwogICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVk
ID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
CiAgICAgZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgcGF5bG9hZCk7CiAgICAgcmV0dXJuIGRlZmVy
cmVkLT5wcm9taXNlKCk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6
aW5zdGFudGlhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBzb3VyY2Up
CitKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6Omluc3RhbnRpYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgc291cmNlLCBKU1ZhbHVlIGluaXRpYXRvcikK
IHsKICAgICBpZiAoT3B0aW9uczo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQogICAgICAgICBk
YXRhTG9nKCJMb2FkZXIgW2luc3RhbnRpYXRlXSAiLCBwcmludGFibGVNb2R1bGVLZXkoZXhlYywg
a2V5KSwgIlxuIik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlckluc3RhbnRpYXRlKQotICAgICAgICByZXR1cm4g
Z2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJJbnN0
YW50aWF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgc291cmNlKTsKKyAgICAgICAg
cmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9h
ZGVySW5zdGFudGlhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIHNvdXJjZSwgaW5p
dGlhdG9yKTsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogICAgIGRl
ZmVycmVkLT5yZXNvbHZlKGV4ZWMsIGpzVW5kZWZpbmVkKCkpOwogICAgIHJldHVybiBkZWZlcnJl
ZC0+cHJvbWlzZSgpOwogfQogCi1KU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlKQorSlNW
YWx1ZSBKU01vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtl
eSwgSlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAg
aWYgKE9wdGlvbnM6OmR1bXBNb2R1bGVMb2FkaW5nU3RhdGUoKSkKICAgICAgICAgZGF0YUxvZygi
TG9hZGVyIFtldmFsdWF0ZV0gIiwgcHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIGtleSksICJcbiIp
OwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSgpLT5tb2R1bGVMb2FkZXJFdmFsdWF0ZSkKLSAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZhbHVhdGUoZ2xvYmFsT2Jq
ZWN0LCBleGVjLCB0aGlzLCBrZXksIG1vZHVsZVJlY29yZFZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZh
bHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIG1vZHVsZVJlY29yZFZhbHVlLCBp
bml0aWF0b3IpOwogCiAgICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IGpzRHluYW1p
Y0Nhc3Q8SlNNb2R1bGVSZWNvcmQqPihtb2R1bGVSZWNvcmRWYWx1ZSk7CiAgICAgaWYgKCFtb2R1
bGVSZWNvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZUxvYWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2Fk
ZXIuaAppbmRleCA0Y2Q1OTA0MDY1ZWY1ZmY1NmRhOWI4NTBlZmJiOWJmMDc0ZTQwNDAzLi5iODdi
N2FlYjVhOTNkMTk4MDk0YzcxN2U3YzU4YzIwZmEyY2U2NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmgKQEAgLTYzLDE4ICs2MywxOCBAQCBj
bGFzcyBKU01vZHVsZUxvYWRlciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIAogICAgIC8v
IEFQSXMgdG8gY29udHJvbCB0aGUgbW9kdWxlIGxvYWRlci4KICAgICBKU1ZhbHVlIHByb3ZpZGUo
RXhlY1N0YXRlKiwgSlNWYWx1ZSBrZXksIFN0YXR1cywgY29uc3QgU3RyaW5nJik7Ci0gICAgSlNJ
bnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVl
IG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkTW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJl
cik7Ci0gICAgSlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3Rh
dGUqLCBKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRF
dmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVm
ZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1v
ZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpT
VmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRl
TW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlS2V5LCBKU1ZhbHVlIGluaXRpYXRvcik7
CiAKICAgICAvLyBQbGF0Zm9ybSBkZXBlbmRlbnQgaG9va2VkIEFQSXMuCi0gICAgSlNJbnRlcm5h
bFByb21pc2UqIHJlc29sdmUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJlZmVy
cmVyKTsKLSAgICBKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goRXhlY1N0YXRlKiwgSlNWYWx1ZSBr
ZXkpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiB0cmFuc2xhdGUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSBrZXksIEpTVmFsdWUgcGF5bG9hZCk7Ci0gICAgSlNJbnRlcm5hbFByb21pc2UqIGluc3RhbnRp
YXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNvdXJjZSk7CisgICAgSlNJbnRl
cm5hbFByb21pc2UqIHJlc29sdmUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJl
ZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGZldGNo
KEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRl
cm5hbFByb21pc2UqIHRyYW5zbGF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBw
YXlsb2FkLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGluc3Rh
bnRpYXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNvdXJjZSwgSlNWYWx1ZSBp
bml0aWF0b3IpOwogCiAgICAgLy8gQWRkaXRpb25hbCBwbGF0Zm9ybSBkZXBlbmRlbnQgaG9va2Vk
IEFQSXMuCi0gICAgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNW
YWx1ZSBtb2R1bGVSZWNvcmQpOworICAgIEpTVmFsdWUgZXZhbHVhdGUoRXhlY1N0YXRlKiwgSlNW
YWx1ZSBrZXksIEpTVmFsdWUgbW9kdWxlUmVjb3JkLCBKU1ZhbHVlIGluaXRpYXRvcik7CiAKIHBy
b3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJQ
cm90b3R5cGUuY3BwCmluZGV4IDJhNTYwMGI4YWVjMDdlMGUwZmM0MDc1Y2Y5ZTBhMjJlYTIzMDcz
OTIuLjJkOTA0NmY3NDVmZDFiMGI1NGJmMTRmYWNhNDExZjZmZjYxMmZiMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyUHJvdG90eXBl
LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9k
dWxlTG9hZGVyUHJvdG90eXBlUmVzb2x2ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVM
b2FkZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlz
VmFsdWUoKSk7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPnJl
c29sdmUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPnJlc29sdmUoZXhlYywgZXhlYy0+YXJndW1l
bnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpLCBleGVjLT5hcmd1bWVudCgyKSkpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUZldGNoKEV4ZWNT
dGF0ZSogZXhlYykKQEAgLTE5NCw3ICsxOTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUZldGNoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU01v
ZHVsZUxvYWRlciogbG9hZGVyID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZUxvYWRlcio+KGV4ZWMt
PnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRl
ci0+ZmV0Y2goZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGxvYWRlci0+ZmV0Y2goZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3Vt
ZW50KDEpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVy
UHJvdG90eXBlVHJhbnNsYXRlKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTIwNiw3ICsyMDYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZVRyYW5zbGF0
ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVMb2FkZXIqIGxvYWRlciA9IGpzRHluYW1p
Y0Nhc3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFsb2Fk
ZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPnRyYW5zbGF0ZShleGVjLCBleGVjLT5hcmd1
bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGxvYWRlci0+dHJhbnNsYXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVu
dCgxKSwgZXhlYy0+YXJndW1lbnQoMikpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZShFeGVjU3RhdGUqIGV4ZWMpCkBA
IC0yMjAsNyArMjIwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2Fk
ZXJQcm90b3R5cGVJbnN0YW50aWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVMb2Fk
ZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlzVmFs
dWUoKSk7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmluc3Rh
bnRpYXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9hZGVyLT5pbnN0YW50aWF0ZShleGVjLCBleGVjLT5h
cmd1bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSksIGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiB9CiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkaXRpb25hbCBIb29rIEZ1bmN0aW9ucyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzMyw3ICsyMzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBKU01vZHVsZUxvYWRlciogbG9hZGVyID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZUxv
YWRlcio+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGxvYWRlci0+ZXZhbHVhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFy
Z3VtZW50KDEpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmV2YWx1YXRl
KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSwgZXhlYy0+YXJndW1l
bnQoMikpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbC5oCmluZGV4IDkzM2EyZTUxODRhYjk5ZmYyNmZjYzEyZjYyMzBiOGQwM2VlMTlk
ODAuLmRkNmIzMDVlZjEyMTlkM2ExMDM0MjM3N2E4MDk4ZmYwYjk3NmFlNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC02NCw3ICs2NCw3IEBAIGNsYXNzIFN5bWJv
bCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgU3ltYm9sKFZNJik7CiAgICAgU3ltYm9s
KFZNJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgU3ltYm9sKFZNJiwgU3ltYm9sSW1wbCYgdWlkKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBTeW1ib2woVk0mLCBTeW1ib2xJbXBsJiB1aWQpOwogCiAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDQ5
YTY4ZTY2YjI2NThmOWExNzUzYjM4ZTk2NTlhZjM2YTk1ZGJmNDEuLmY4YzY4ZmNkOTI5NDE3Yzlk
YzNiYzZkNGU4Njg3NjgxYTkwZmI2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjA5LDYg
KzEyMDksOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdl
Q2hhbm5lbEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdz
L2pzL0pTTW9kdWxlRmV0Y2hlci5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
TXV0YXRpb25DYWxsYmFjay5jcHAKICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYzExZmRkNWRmZmZiNjRjZDU4OTQ0MzAxMmNiMzI4YmZkMWY0OTJkYS4u
NmYyNmQ0NWEyZmFmZTJiZTcwMWU0OWViZDA0ZWNmNTViYjY2NjNiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQxMjgsNiAr
MjQxMjgsNyBAQAogCQkJCTkzN0ZGM0Q1MUExMDEyRDYwMDhFQkEzMSAvKiBEaWN0aW9uYXJ5TG9v
a3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDU2NDZCMDFCOEY4NDkzMDAzQzQ5OTQgLyogRGlj
dGlvbmFyeVBvcHVwSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBRjE5OTkxNTEzRDEzMTAw
OERCMEMzIC8qIERpcmVjdENvbnZvbHZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTMzOUE1MjQx
QkE2QkQ0NjAwQTNBN0FFIC8qIEpTTW9kdWxlR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTdF
REFBRkM5MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDUxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0
SXRlbXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjU0NjUsNiArMjU0NjYsNyBAQAogCQkJCUNFMTI1
MjQxMUExNkIxQjYwMDg2NDQ4MCAvKiBNZWRpYVBsYXllclNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJFRTMgLyogSlNNb2R1bGVMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRFMTk1OTJDMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1
ZXJ5RXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyRTBBMzlEQUNDMDAyMjBG
RTUgLyogTWVkaWFRdWVyeUV4cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNBOTRBMzkxMjJEQUJB
QzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NTU3LDYg
KzI2NTU5LDcgQEAKIAkJCQkwODBFNDkyODEyNTVGM0JEMDBFRkNBMjcgLyogU1ZHVGV4dExheW91
dEVuZ2luZVNwYWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RjBCRkM2MTI1NUM1M0MwMDA3
NTE4NSAvKiBTVkdUZXh0TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzExNzQ0NTkxNEJD
MzRFQzAwRUU1RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTM4ODM4OTcxQkFEMTQ1RjAwRDYyRUUzIC8qIEpTTW9kdWxlRmV0Y2hlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjdBQ0UwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RleHRQYXRoRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRDEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTRCMDI1MTI1NUU0
RTYwMEI5Q0REMCAvKiBTVkdUZXh0UXVlcnkuaCBpbiBIZWFkZXJzICovLApAQCAtMjczODUsNiAr
MjczODgsNyBAQAogCQkJCUNEMEVFRTBFMTQ3NDNGMzkwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0
aW9uSU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEJDMTJCMDI3MkEwMEMxQTM1OSAv
KiBBdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDA3MTJC
MDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlFMzM5QTUyMzFCQTZCRDQ2MDBBM0E3QUUgLyogSlNNb2R1bGVHcmFwaC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGRDMxNjA4MTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EU1BLZXJuZWxQ
cm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NTk2OTExNDc1QjY3ODAwMUQwQkQw
IC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjBCRTEy
QjAyNzJBMDBDMUEzNTkgLyogQXVkaW9GaWxlUmVhZGVyTWFjLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjgxNDUsNiArMjgxNDksNyBAQAogCQkJCUE4NzFEQjJFMEExNTBCRDYwMEIxMkE2OCAvKiBI
VE1MVGFibGVDZWxsRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREIyOTBBMTUw
QkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODcxREIyODBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlFMzg4Mzg5NjFCQUQxNDVGMDBENjJFRTMgLyogSlNNb2R1bGVGZXRjaGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFEQjJEMEExNTBCRDYwMEIxMkE2OCAvKiBIVE1M
VGFibGVQYXJ0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREIzMDBBMTUwQkQ2
MDBCMTJBNjggLyogSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzQ0MkNBMDBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcAppbmRleCA0YzNhY2QwMGE2ZTlhOGU5ODAxMzg2NGMzMWFjOThhYTc1MDcx
MmY3Li5mMGUxMmNhOTA3NzQ0N2RmYmVhZTVkYmI2ZjY1Zjg0YTQ3M2E5OTE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTEw
OCw2ICsxMDgsOCBAQAogI2luY2x1ZGUgIkpTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwIgogI2lu
Y2x1ZGUgIkpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0
Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU01vZHVsZUZldGNoZXIuY3BwIgorI2luY2x1ZGUgIkpT
TW9kdWxlR3JhcGguY3BwIgogI2luY2x1ZGUgIkpTTW9kdWxlTG9hZGVyLmNwcCIKICNpbmNsdWRl
ICJKU011dGF0aW9uQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlckN1
c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcAppbmRleCA2OTA3NGY3MjM1Y2FjMmZiZTE0NjYyM2RlMWNkYWYwNjc5NjI5MjMxLi5jMzRj
MTBjOTYzNmE1MjliMmFhYWZlNmQyMTQ3MmQ3ZjA5ZjExMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMyMywyOSArMzIzLDI5IEBA
IHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5k
b3coRE9NV2luZG93KiB3aW5kb3cpCiB9CiAKIAotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNE
T01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1v
ZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRl
ck1vZHVsZUtleSkKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9k
dWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6
SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0g
SlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoUmVm
UHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgp
KQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5yZXNvbHZlKGdsb2Jh
bE9iamVjdCwgZXhlYywgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtl
eSk7CisgICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xv
YmFsT2JqZWN0LCBleGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIGltcG9ydGVyTW9kdWxl
S2V5LCBpbml0aWF0b3IpOwogICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVm
ZXJyZWQgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9i
YWxPYmplY3QpOwogICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGpzVW5kZWZpbmVk
KCkpOwogfQogCi1KU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVs
ZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1Zh
bHVlIG1vZHVsZUtleSkKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6
OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpTRE9N
V2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGds
b2JhbE9iamVjdCk7CiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1
bGVMb2FkZXIoKS0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVs
ZUtleSk7CisgICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmZldGNoKGds
b2JhbE9iamVjdCwgZXhlYywgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIGluaXRpYXRvcik7CiAg
ICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgcmV0
dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQzo6SlNW
YWx1ZSBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVM
b2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVl
IG1vZHVsZVJlY29yZCkKK0pTQzo6SlNWYWx1ZSBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRl
ckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVl
IG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIGluaXRp
YXRvcikKIHsKICAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxK
U0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwogICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+
IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJl
dHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgZXhl
YywgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCk7CisgICAgICAgIHJldHVy
biBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCktPmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgZXhlYywg
bW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgaW5pdGlhdG9yKTsKICAgICBy
ZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDgwZDk2MDhmYTYwMzA3ZTE2MDBmYzIxYzlhZDg2
ZjJkN2Q5MzJhNGIuLmY1ZjNiZTA1MjNlNTk2OWFkMmUzNzE2MGZiZTQwYmNjNjcyZGMzOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC03OCw5
ICs3OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSlNDOjpXYXRjaHBvaW50U2V0
IG1fd2luZG93Q2xvc2VXYXRjaHBvaW50czsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRp
YyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpT
VmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlKTsKLSAgICAgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxl
TG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1
ZSk7CisgICAgICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJG
ZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxl
TG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgSlND
OjpKU1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNW
YWx1ZSwgSlNDOjpKU1ZhbHVlKTsKIAogICAgICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3dyYXBw
ZWQ7CiAgICAgICAgIEpTRE9NV2luZG93U2hlbGwqIG1fc2hlbGw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCmluZGV4IDU5N2M3N2Zl
ODBlYTM5OGUwZWQ2YTI1ZDZiZWFmNmI1YjQ3MWU1ZDAuLjliOWRmOWM0ZjA3NTExNTBmYWRmODcz
MTJmNDc5YjhhMjJhZTY3MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oCkBAIC05Miw2ICs5MiwyNCBAQCBjbGFzcyBKU01haW5U
aHJlYWRFeGVjU3RhdGUgewogICAgICAgICB0YXNrLnJ1bihleGVjKTsKICAgICB9CiAKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKQor
ICAgIHsKKyAgICAgICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTsK
KyAgICAgICAgcmV0dXJuIEpTQzo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lLCBpbml0aWF0
b3IpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9k
dWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIHNvdXJjZUNv
ZGUsIEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpCisgICAgeworICAgICAgICBKU01haW5UaHJlYWRF
eGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsb2FkTW9k
dWxlKGV4ZWMsIHNvdXJjZUNvZGUsIGluaXRpYXRvcik7CisgICAgfQorCisgICAgc3RhdGljIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBp
bml0aWF0b3IpCisgICAgeworICAgICAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0
YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhl
YywgbW9kdWxlS2V5LCBpbml0aWF0b3IpOworICAgIH0KKwogICAgIHN0YXRpYyBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUgaW5zdHJ1bWVudEZ1bmN0aW9uQ2FsbChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgSlNDOjpDYWxsVHlwZSwgY29uc3QgSlNDOjpDYWxsRGF0YSYpOwogICAgIHN0
YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgaW5zdHJ1bWVudEZ1bmN0aW9uQ29u
c3RydWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBKU0M6OkNvbnN0cnVjdFR5cGUsIGNvbnN0
IEpTQzo6Q29uc3RydWN0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01vZHVsZUZldGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNb2R1bGVGZXRjaGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzUyN2FlMmNhMTM0NjUyNmVhMGQxYzgw
NGQwNWM0ODJmYmQ5MmY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNb2R1bGVGZXRjaGVyLmNwcApAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU01vZHVsZUZldGNoZXIuaCIKKworI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0Lmgi
CisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU01vZHVsZUxvYWRlci5oIgorI2luY2x1
ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworSlNNb2R1bGVGZXRjaGVyOjpKU01vZHVsZUZldGNoZXIoSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZCogZGVmZXJyZWQsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCisgICAgLCBtX3NvdXJjZVVSTChzb3VyY2VVUkwpCisgICAgLCBtX2dsb2JhbE9i
amVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCkKKyAgICAsIG1fZGVmZXJyZWQo
Z2xvYmFsT2JqZWN0LT52bSgpLCBkZWZlcnJlZCkKK3sKK30KKworSlNNb2R1bGVGZXRjaGVyOjp+
SlNNb2R1bGVGZXRjaGVyKCkKK3sKKyAgICBpZiAobV9jYWNoZWRTY3JpcHQpIHsKKyAgICAgICAg
bV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9jYWNoZWRTY3Jp
cHQgPSBudWxscHRyOworICAgIH0KK30KKworUmVmPEpTTW9kdWxlRmV0Y2hlcj4gSlNNb2R1bGVG
ZXRjaGVyOjpjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVVJM
JiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQsIERv
Y3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU01vZHVsZUZl
dGNoZXIoZ2xvYmFsT2JqZWN0LCBzb3VyY2VVUkwsIGRlZmVycmVkLCBkb2N1bWVudCkpOworfQor
Citib29sIEpTTW9kdWxlRmV0Y2hlcjo6cnVuKFNjcmlwdEVsZW1lbnQqIGVsZW1lbnQpCit7Cisg
ICAgaWYgKGVsZW1lbnQpCisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gZWxlbWVudC0+cmVxdWVz
dE1vZHVsZVNjcmlwdChtX3NvdXJjZVVSTCk7CisgICAgZWxzZSB7CisgICAgICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNo
ZWRSZXNvdXJjZU9wdGlvbnMoKTsKKyAgICAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xp
Y3lJbXBvc2l0aW9uID0gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lD
aGVjazsKKworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QobV9zb3VyY2VVUkwpLCBvcHRpb25zKTsKKworICAgICAgICAvLyBNb2R1bGUgZmV0Y2hl
ciBhbHdheXMgaW50ZXJwcmV0IHNjcmlwdHMgYXMgVVRGLTguCisgICAgICAgIC8vIGh0dHBzOi8v
Z2l0aHViLmNvbS93aGF0d2cvbG9hZGVyL2lzc3Vlcy84MworICAgICAgICByZXF1ZXN0LnNldENo
YXJzZXQoQVNDSUlMaXRlcmFsKCJ1dGYtOCIpKTsKKworICAgICAgICAvLyBGSVhNRTogU2hvdWxk
IGhhbmRsZSAiY3Jvc3NvcmlnaW4iIG9wdGlvbnMuCisgICAgICAgIC8vIE9uY2UgdGhlIHNwZWMg
ZGVzY3JpYmVzIHRoZSBkZXRhaWxzLCB3ZSB3aWxsIGZvbGxvdyBpdC4KKyAgICAgICAgcmVxdWVz
dC5zZXRJbml0aWF0b3IoQXRvbWljU3RyaW5nKG1fc291cmNlVVJMLnN0cmluZygpKSk7CisKKyAg
ICAgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2RvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCku
cmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKKyAgICB9CisKKyAgICBpZiAoIW1fY2FjaGVkU2NyaXB0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBOb3RlOiBJZiB0aGUgY29udGVudCBp
cyBhbHJlYWR5IGNhY2hlZCwgdGhpcyBpbW1laWRhdGVseSBjYWxscyBub3RpZnlGaW5pc2hlZC4K
KyAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIEpTTW9kdWxlRmV0Y2hlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlKQoreworICAgIEFTU0VSVF9VTlVTRUQocmVzb3VyY2UsIHJlc291cmNlID09IG1f
Y2FjaGVkU2NyaXB0KTsKKyAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQorICAgICAgICByZXR1cm47
CisKKyAgICBBU1NFUlQobV9jYWNoZWRTY3JpcHQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0ID0gbV9jYWNoZWRTY3JpcHQ7CisgICAgbV9jYWNo
ZWRTY3JpcHQgPSBudWxscHRyOworCisjaWYgRU5BQkxFKE5PU05JRkYpCisgICAgaWYgKGNhY2hl
ZFNjcmlwdCAmJiAhY2FjaGVkU2NyaXB0LT5taW1lVHlwZUFsbG93ZWRCeU5vc25pZmYoKSkgewor
ICAgICAgICBtX2RvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3Vy
aXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBmcm9t
ICciICsgY2FjaGVkU2NyaXB0LT51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgo
KSArICInIGJlY2F1c2UgaXRzIE1JTUUgdHlwZSAoJyIgKyBjYWNoZWRTY3JpcHQtPm1pbWVUeXBl
KCkgKyAiJykgaXMgbm90IGV4ZWN1dGFibGUsIGFuZCBzdHJpY3QgTUlNRSB0eXBlIGNoZWNraW5n
IGlzIGVuYWJsZWQuIik7CisgICAgICAgIGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMp
OworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBSZWY8RG9jdW1lbnQ+IHBy
b3RlY3RvcihtX2RvY3VtZW50KTsKKworICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50
LmZyYW1lKCkpIHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhtX2dsb2JhbE9iamVj
dC0+dm0oKSk7CisgICAgICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3Qt
Pmdsb2JhbEV4ZWMoKTsKKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC0+ZXJyb3JPY2N1cnJlZCgp
KSB7CisgICAgICAgICAgICAvLyBUaGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZSBpcyBjb25zdHJ1
Y3RlZCBhcyBhIGNoYWluIG9mIHByb21pc2VzLgorICAgICAgICAgICAgLy8gUmVqZWN0aW5nIGEg
cHJvbWlzZSBpZiBzb21lIGVycm9yIG9jY3VycyBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgZXhl
Y3V0aW9uIGZsb3cgb2YKKyAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGNoYWluIGlzIGRyaXZl
biBieSAicmVqZWN0ZWQiIG9yICJmdWxmaWxsZWQiIGV2ZW50cy4KKyAgICAgICAgICAgIC8vIElm
IHRoZSBwcm9taXNlIGlzIG5vdCByZWplY3RlZCB3aGlsZSBlcnJvciBvY2N1cnMsIHJlamVjdCBo
YW5kbGVyIHdvbid0IGJlIGV4ZWN1dGVkCisgICAgICAgICAgICAvLyBhbmQgYWxsIHRoZSBzdWJz
ZXF1ZW50IHByb21pc2UgY2hhaW4gd2lsbCB3YWl0IHRoZSByZXN1bHQgZm9yZXZlci4KKyAgICAg
ICAgICAgIC8vCisgICAgICAgICAgICAvLyBBcyBhIHJlc3VsdCwgZXZlbiBpZiB0aGUgZXJyb3Ig
aXMgYWxyZWFkeSByZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGVsc2V3aGVyZSwKKyAgICAgICAg
ICAgIC8vIGl0IHNob3VsZCBiZSBwcm9wYWdhdGVkIGluIHRoZSBwaXBlbGluZS4gRm9yIGV4YW1w
bGUsIHRoZSBlcnJvciBvZiBsb2FkaW5nCisgICAgICAgICAgICAvLyBDYWNoZWRSZXNvdXJjZSBp
cyBhbHJlYWR5IHJlcG9ydGVkIHRvIHRoZSBpbnNwZWN0b3IgYnkgdGhlIGxvYWRlci4gQnV0IHdl
IHN0aWxsIG5lZWQKKyAgICAgICAgICAgIC8vIHRvIHJlamVjdCB0aGUgcHJvbWlzZSBieSBzb21l
IGVycm9yLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdCB0byByZXBvcnQgdGhl
IGVycm9yIHR3aWNlLCB3aGVuIHdlIHByb3BhZ2F0ZSB0aGUgZXJyb3IgdGhhdCBpcyBhbHJlYWR5
IHJlcG9ydGVkCisgICAgICAgICAgICAvLyB0byB0aGUgaW5zcGVjdG9yLCB3ZSB0aHJvdyBtb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCBzeW1ib2wgaW5zdGVhZC4KKyAgICAg
ICAgICAgIC8vIEJ5IGNvbXBhcmluZyB0aGUgdGhyb3duIGVycm9yIHdpdGggdGhpcyBzeW1ib2ws
IHdlIGNhbiBkaXN0aW5ndWlzaCBlcnJvcnMgcmFpc2VkCisgICAgICAgICAgICAvLyB3aGVuIGxp
bmtpbmcgb3IgZXhlY3V0aW5nIGEgbW9kdWxlIGdyYXBoIGZyb20gZXJyb3JzIHJlcG9ydGVkIGFs
cmVhZHkuCisgICAgICAgICAgICAvLyBJbiB0aGUgcmVqZWN0IGhhbmRsZXIgb2YgdGhlIHByb21p
c2UsIHdlIG9ubHkgcmVwb3J0IGEgZXJyb3IgdGhhdCBpcyBub3QgdGhpcyBzeW1ib2wuCisgICAg
ICAgICAgICBtX2RlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpTeW1ib2w6OmNyZWF0ZShleGVj
LT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJv
clN5bWJvbCgpLnVpZCgpKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZWRTY3JpcHQtPndh
c0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShj
YWNoZWRTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVzb2x2ZShleGVj
LCBKU0M6OmpzU3RyaW5nKGV4ZWMsIHNvdXJjZUNvZGUuc291cmNlKCkudG9TdHJpbmcoKSkpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgLy8gQSBDYWNoZWRSZXNvdXJjZUhhbmRsZSBhbG9uZSBk
b2VzIG5vdCBwcmV2ZW50IHRoZSB1bmRlcmx5aW5nIENhY2hlZFJlc291cmNlCisgICAgLy8gZnJv
bSBwdXJnaW5nIGl0cyBkYXRhIGJ1ZmZlci4gVW50aWwgd2UgZmluaXNoIHVzaW5nIHRoZSBiYWNr
aW5nIGJ1ZmZlciBvZiB0aGUKKyAgICAvLyBjYWNoZWQgc2NyaXB0LCB3ZSBkb24ndCByZW1vdmUg
dGhlIGNsaWVudC4KKyAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKworICAg
IG1fZG9jdW1lbnQubW9kdWxlTG9hZGVyKCktPm5vdGlmeUZpbmlzaGVkKHRoaXMpOworICAgIC8v
IEFmdGVyIEpTTW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCBjYWxsLCB8dGhpc3wgbWF5IGJl
IGRlc3Ryb3llZC4KK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNb2R1bGVGZXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVs
ZUZldGNoZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzk1MDc1ODRhMDgzZGEzM2NmYTM3ODdjNzhhNTU2YjA5
YmU5YTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
b2R1bGVGZXRjaGVyLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSlNN
b2R1bGVGZXRjaGVyX2gKKyNkZWZpbmUgSlNNb2R1bGVGZXRjaGVyX2gKKworI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlQ2xpZW50LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIK
KyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8
aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNjcmlwdDsKK2Ns
YXNzIERvY3VtZW50OworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBTY3JpcHRFbGVt
ZW50OworCitjbGFzcyBKU01vZHVsZUZldGNoZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxKU01vZHVs
ZUZldGNoZXI+LCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShKU01vZHVsZUZldGNoZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPEpTTW9kdWxlRmV0Y2hlcj4gY3JlYXRlKEpTRE9NR2xvYmFs
T2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCosIERvY3VtZW50Jik7CisKKyAgICB+SlNNb2R1bGVGZXRjaGVyKCk7CisKKyAgICBib29s
IHJ1bihTY3JpcHRFbGVtZW50Kik7CisKKyAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCgp
IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgSlNNb2R1
bGVGZXRjaGVyKEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIEpTQzo6
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCosIERvY3VtZW50Jik7CisKKyAgICAvLyBGb3IgQ2Fj
aGVkUmVzb3VyY2VDbGllbnQuCisgICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJj
ZSopIG92ZXJyaWRlOworCisgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgVVJMIG1fc291
cmNlVVJMOworICAgIEpTQzo6U3Ryb25nPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVj
dDsKKyAgICBKU0M6OlN0cm9uZzxKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ+IG1fZGVm
ZXJyZWQ7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNj
cmlwdCB7IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBKU01v
ZHVsZUZldGNoZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
b2R1bGVHcmFwaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBo
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hODc1NGNkYjc0YWU0ZjAyNDQ2Y2FjMjJiOTJhNGJmYmUzNjI5OTg5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVH
cmFwaC5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJKU01vZHVsZUdyYXBoLmgiCisKKyNpbmNsdWRlICJET01XcmFwcGVyV29y
bGQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU01v
ZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCisjaW5jbHVkZSAiU2Ny
aXB0U291cmNlQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTTW9kdWxlR3JhcGg6
OkpTTW9kdWxlR3JhcGgoRWxlbWVudCYgZWxlbWVudCkKKyAgICA6IG1fZWxlbWVudChlbGVtZW50
KQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSgmZWxlbWVudCkKK3sKK30KKwordm9pZCBKU01vZHVs
ZUdyYXBoOjpub3RpZnlMb2FkZWQoVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSkKK3sKKyAg
ICBtX21vZHVsZUtleSA9IG1vZHVsZUtleTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3Jp
cHRSdW5uZXIoKS0+bm90aWZ5SlNNb2R1bGVHcmFwaFJlYWR5KHRvU2NyaXB0RWxlbWVudElmUG9z
c2libGUoJm1fZWxlbWVudCkpOworfQorCit2b2lkIEpTTW9kdWxlR3JhcGg6Om5vdGlmeUVycm9y
ZWQoKQoreworICAgIG1fZXJyb3JlZCA9IHRydWU7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCku
c2NyaXB0UnVubmVyKCktPm5vdGlmeUpTTW9kdWxlR3JhcGhSZWFkeSh0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlKCZtX2VsZW1lbnQpKTsKK30KKwordm9pZCBKU01vZHVsZUdyYXBoOjpldmFsdWF0
ZSgpCit7CisgICAgaWYgKG1fZXJyb3JlZCkKKyAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZSgmbV9lbGVtZW50KS0+ZGlzcGF0Y2hFcnJvckV2ZW50KCk7CisgICAgZWxzZSBpZiAoRnJh
bWUqIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUt
PnNjcmlwdCgpLmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSgqdGhpcywgbV9lbGVtZW50KTsKK30KKwor
dm9pZCBKU01vZHVsZUdyYXBoOjpub3RpZnlFdmFsdWF0ZWQoKQoreworICAgIHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoJm1fZWxlbWVudCktPmRpc3BhdGNoTG9hZEV2ZW50KCk7Cit9CisKK3Zv
aWQgSlNNb2R1bGVHcmFwaDo6bG9hZChjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCit7CisgICAg
QVNTRVJUKG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpOworICAgIG1fZWxlbWVudC5kb2N1
bWVudCgpLmZyYW1lKCktPnNjcmlwdCgpLmxvYWRNb2R1bGUoKnRoaXMsIG1vZHVsZU5hbWUsIG1f
ZWxlbWVudCk7Cit9CisKK3ZvaWQgSlNNb2R1bGVHcmFwaDo6bG9hZChjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIEFTU0VSVChtX2VsZW1lbnQuZG9jdW1lbnQoKS5m
cmFtZSgpKTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQoKS5sb2Fk
TW9kdWxlKCp0aGlzLCBzb3VyY2VDb2RlLCBtX2VsZW1lbnQpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJhZGYwZWY1OWYz
ZjI0ZmJmNzVkNGMyMjUwNDM4ZTE2NjRlNGQ0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlR3JhcGguaApAQCAtMCwwICsxLDc1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBKU01vZHVsZUdyYXBoX2gKKyNkZWZpbmUgSlNNb2R1bGVHcmFwaF9o
CisKKyNpbmNsdWRlICJKU01vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTSW50
ZXJuYWxQcm9taXNlLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50Owor
Y2xhc3MgU2NyaXB0U291cmNlQ29kZTsKKworLy8gS2VlcCBsaWZldGltZSBvZiBhIEpTTW9kdWxl
R3JhcGggdGhlIHNhbWUgdG8gYSBTY3JpcHRFbGVtZW50LgorY2xhc3MgSlNNb2R1bGVHcmFwaCB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNNb2R1bGVHcmFwaCk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IEpTTW9kdWxlR3JhcGgoRWxlbWVudCYp
OworCisgICAgRWxlbWVudCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsgfQorICAgIFVu
aXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkoKSB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsg
fQorCisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7CisgICAgdm9pZCBs
b2FkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKyAgICB2b2lkIGV2YWx1YXRlKCk7CisKKyAg
ICBXZWFrUHRyPEVsZW1lbnQ+IHdlYWtFbGVtZW50UHRyKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICB9CisKKyAgICB2b2lkIG5v
dGlmeUxvYWRlZChVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KTsKKyAgICB2b2lkIG5vdGlm
eUVycm9yZWQoKTsKKworICAgIHZvaWQgbm90aWZ5RXZhbHVhdGVkKCk7CisKKyAgICBib29sIGVy
cm9yT2NjdXJyZWQoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yZWQ7IH0KKyAgICBib29sIGlzTG9h
ZGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXk7IH0KKworcHJpdmF0ZToKKworICAgIEVs
ZW1lbnQmIG1fZWxlbWVudDsKKyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1fbW9kdWxl
S2V5OworICAgIFdlYWtQdHJGYWN0b3J5PEVsZW1lbnQ+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAg
Ym9vbCBtX2Vycm9yZWQgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gSlNNb2R1bGVMb2FkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGJhMWUzZWNjMWRkMGM2ZWVhZWJlMjcwZWI0Y2Jm
MjVlZTQ3OGE1MTkuLmJkMGYxMTRjZjI0Yjk4NmQzOTY3YzVkNzU1Njg1MDM5YTMxMzllYWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5jcHAKQEAgLTMw
LDYgKzMwLDkgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0VsZW1lbnQuaCIKKyNp
bmNsdWRlICJKU01vZHVsZUZldGNoZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSA8cnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9KU01vZHVsZVJlY29yZC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcu
aD4KQEAgLTQyLDcgKzQ1LDcgQEAgSlNNb2R1bGVMb2FkZXI6OkpTTW9kdWxlTG9hZGVyKERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKIH0KIAotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVM
b2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVO
YW1lVmFsdWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKK0pTQzo6SlNJbnRlcm5h
bFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBK
U0M6OkpTVmFsdWUgbW9kdWxlTmFtZVZhbHVlLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVL
ZXksIEpTQzo6SlNWYWx1ZSkKIHsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQq
IGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywg
Z2xvYmFsT2JqZWN0KTsKIApAQCAtODIsNyArODUsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBKU01vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
YwogICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBqc1N0cmluZyhleGVjLCBjb21w
bGV0ZWRVcmwuc3RyaW5nKCkpKTsKIH0KIAotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxl
S2V5VmFsdWUpCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2go
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpK
U1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQq
IGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywg
Z2xvYmFsT2JqZWN0KTsKIApAQCAtOTYsMTIgKzk5LDIxIEBAIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsCiAgICAgaWYgKCFjb21wbGV0ZWRVcmwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZGVm
ZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OmNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTW9kdWxlIGtl
eSBpcyBhbiBpbnZhbGlkIFVSTC4iKSk7CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoZSBt
b2R1bGUgZmV0Y2hlci4KKyAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gbnVsbHB0
cjsKKyAgICBpZiAoYXV0byogZWxlbWVudCA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0VsZW1lbnQq
Pihpbml0aWF0b3IpKQorICAgICAgICBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZSgmZWxlbWVudC0+d3JhcHBlZCgpKTsKKworICAgIFJlZjxKU01vZHVsZUZldGNoZXI+
IGZldGNoZXIgPSBKU01vZHVsZUZldGNoZXI6OmNyZWF0ZShKU0M6OmpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGdsb2JhbE9iamVjdCksIGNvbXBsZXRlZFVybCwgZGVmZXJyZWQsIG1fZG9jdW1l
bnQpOworICAgIG1fZmV0Y2hpbmdTZXQuYWRkKCZmZXRjaGVyLmdldCgpKTsKKyAgICBpZiAoIWZl
dGNoZXItPnJ1bihzY3JpcHRFbGVtZW50KSkgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0g
bV9kb2N1bWVudC5mcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3Qo
ZXhlYywgSlNDOjpTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5t
b2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgIH0K
IAogICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNN
b2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1
ZSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlKQorSlNDOjpKU1ZhbHVlIEpTTW9kdWxl
TG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUsIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSwgSlNDOjpKU1ZhbHVlKQogewogICAgIC8vIEZJ
WE1FOiBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBKU01vZHVsZVJlY29yZC4KICAgICAvLyBP
bmNlIHRoZSByZWZsZWN0aXZlIHBhcnQgb2YgdGhlIG1vZHVsZSBsb2FkZXIgaXMgc3VwcG9ydGVk
LCB3ZSB3aWxsIGhhbmRsZSBhcmJpdHJhcnkgdmFsdWVzLgpAQCAtMTIxLDkgKzEzMywxNCBAQCBK
U0M6OkpTVmFsdWUgSlNNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYwogICAgIGlmICghc291cmNlVXJsLmlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuIEpTQzo6dGhyb3dUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJNb2R1
bGUga2V5IGlzIGFuIGludmFsaWQgVVJMLiIpKTsKIAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
ZXZhbHVhdGluZyBtb2R1bGUgY29kZS4KLQorICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3Vt
ZW50LmZyYW1lKCkpCisgICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1
bGUoc291cmNlVXJsLCBtb2R1bGVSZWNvcmQpOwogICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVk
KCk7CiB9CiAKK3ZvaWQgSlNNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKEpTTW9kdWxlRmV0
Y2hlciogZmV0Y2hlcikKK3sKKyAgICBtX2ZldGNoaW5nU2V0LnJlbW92ZShmZXRjaGVyKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmgKaW5kZXgg
NjlhNTAxYTVhZTUzYTU2MjE0YzVjYzU5Y2VjYjMxOTAwNzZmZTFmZC4uMmU0NzUwM2E1YzVjYzQ1
MDM4MzJhMjQ0ZjRjZWQzZTk2MzdjZjRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01vZHVsZUxvYWRlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDAsNiAr
NDEsNyBAQCBjbGFzcyBKU01vZHVsZUxvYWRlcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBKU01vZHVsZUZldGNoZXI7CiAKIGNsYXNzIEpTTW9kdWxlTG9h
ZGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShKU01vZHVsZUxvYWRlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDgsMTIgKzUwLDE1IEBAIGNsYXNzIEpTTW9kdWxlTG9hZGVy
IHsKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KIAot
ICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1
bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpOwotICAgIEpTQzo6SlNJbnRl
cm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5KTsKLSAgICBKU0M6
OkpTVmFsdWUgZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1
ZSBtb2R1bGVSZWNvcmQpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlcios
IEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXks
IEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZl
dGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKTsK
KyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpOworCisgICAg
dm9pZCBub3RpZnlGaW5pc2hlZChKU01vZHVsZUZldGNoZXIqKTsKIAogcHJpdmF0ZToKICAgICBE
b2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBIYXNoU2V0PFJlZlB0cjxKU01vZHVsZUZldGNoZXI+
PiBtX2ZldGNoaW5nU2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA2ODgzOTdh
MDVjNzgwMTBjY2VhMjQ5NWQyMzAzOTA5NTE3YzRlNjA5Li43Nzk4ZmVmMmM4ZWVmODg0YzZkNDNj
ZTRlMThmOTI5YjQzNGY2YTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkpTRE9NV2lu
ZG93LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4
ZWNTdGF0ZS5oIgorI2luY2x1ZGUgIkpTTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJNYWluRnJh
bWUuaCIKICNpbmNsdWRlICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNpbmNsdWRlICJOUF9q
c29iamVjdC5oIgpAQCAtNDEsNiArNDIsNyBAQAogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50
LmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIK
KyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5o
IgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCkBAIC01Myw3ICs1NSwxMSBAQAogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5o
PgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24u
aD4KKyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+CisjaW5j
bHVkZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogCkBAIC04NSw2ICs5
MSw3IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xsZXIoRnJhbWUmIGZyYW1lKQog
ICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fc291cmNlVVJMKDApCiAgICAgLCBtX3BhdXNl
ZChmYWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wo
KQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV93aW5kb3dTY3JpcHRO
UE9iamVjdCgwKQogI2VuZGlmCkBAIC0xNTUsNyArMTYyLDcgQEAgSlNWYWx1ZSBTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29k
ZSwgRE8KICAgICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNlVVJMID0gbV9zb3VyY2VVUkw7CiAg
ICAgbV9zb3VyY2VVUkwgPSAmc291cmNlVVJMOwogCi0gICAgUmVmPEZyYW1lPiBwcm90ZWN0KG1f
ZnJhbWUpOworICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOwogCiAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTCwgc291cmNlQ29kZS5zdGFy
dExpbmUoKSk7CiAKQEAgLTE3OSw2ICsxODYsMTIzIEBAIEpTVmFsdWUgU2NyaXB0Q29udHJvbGxl
cjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgRXhjZXB0aW9u
CiAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFs
V29ybGQoKSwgZXhjZXB0aW9uRGV0YWlscyk7CiB9CiAKK3N0YXRpYyB2b2lkIGhhbmRsZUpTTW9k
dWxlTG9hZGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGVycm9yLCBjb25zdCBQcml2
YXRlTmFtZSYgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCit7CisgICAg
Ly8gT25jZSByZXBvcnRlZCBlcnJvciBpcyBtYXJrZWQgYXMgbW9kdWxlTG9hZGVyQWxyZWFkeVJl
cG9ydGVkRXJyb3JTeW1ib2wuCisgICAgLy8gRG9uJ3QgcmVwb3J0IGl0IGhlcmUgYWdhaW4uCisg
ICAgaWYgKFN5bWJvbCogc3ltYm9sID0ganNEeW5hbWljQ2FzdDxTeW1ib2wqPihlcnJvcikpIHsK
KyAgICAgICAgaWYgKHN5bWJvbC0+cHJpdmF0ZU5hbWUoKSA9PSBtb2R1bGVMb2FkZXJBbHJlYWR5
UmVwb3J0ZWRFcnJvclN5bWJvbCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAv
LyBGSVhNRTogQmVjYXVzZSB3ZSBoYXZlIG5vdCBzdXBwb3J0ZWQgdGhlICJjcm9zc29yaWdpbiIg
YXR0cmlidXRlIGluIHRoZSBtb2R1bGUgdGFnLAorICAgIC8vIHdlIHBhc3MgdGhlIG51bGxwdHIg
dG8gcmVwb3J0RXhjZXB0aW9uJ3MgQ2FjaGVkU2NyaXB0KiBwYXJhbWV0ZXIuIFdoZW4gcGFzc2lu
ZyBudWxscHRyCisgICAgLy8gdG8gcmVwb3J0RXhjZXB0aW9uLCBXZWJDb3JlIGRvZXMgbm90IHNo
b3cgdGhlIGRldGFpbCBvZiB0aGUgZXJyb3IgaWYgdGhlIFVSTCBvZiB0aGUKKyAgICAvLyBzb3Vy
Y2UgZG9lcyBub3QgcGFzcyB0aGUgc2FtZSBvcmlnaW4gcG9saWN5LiBTbyB0aGUgY3VycmVudCBi
ZWhhdmlvciBpcyBjb25zZXJ2YXRpdmU7CisgICAgLy8gb25seSB0aGUgbW9kdWxlIGNvZGUgdGhh
dCBVUkwgaXMgd2l0aGluIHRoZSBzYW1lIG9yaWdpbiBjYW4gcmVwb3J0IHRoZSBkZXRhaWxzIG9m
IHRoZQorICAgIC8vIGVycm9yLiBPbmNlIHRoZSBzcGVjIGRlc2NyaWJlcyB0aGUgYmVoYXZpb3Is
IHdlIHdpbGwgZm9sbG93IGl0LgorICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBlcnJvciwgbnVs
bHB0cik7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQoSlNN
b2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCwgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBKU0xvY2tIb2xkZXIg
bG9jayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93
U2hlbGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xv
YmFsRXhlYygpOworCisgICAgaW5pdEpTTW9kdWxlR3JhcGgobW9kdWxlR3JhcGgsIEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lLCB0b0pTKGV4ZWMsIHNo
ZWxsLT53aW5kb3coKSwgJmVsZW1lbnQpKSwgd29ybGQpOworfQorCit2b2lkIFNjcmlwdENvbnRy
b2xsZXI6OmxvYWRNb2R1bGUoSlNNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFN0cmlu
ZyYgbW9kdWxlTmFtZSwgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBsb2FkTW9kdWxlSW5Xb3Js
ZChtb2R1bGVHcmFwaCwgbW9kdWxlTmFtZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCksIGVsZW1l
bnQpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKEpTTW9k
dWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2Rl
LCBET01XcmFwcGVyV29ybGQmIHdvcmxkLCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIEpTTG9j
a0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwg
PSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRv
dygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0SlNNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwg
SlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUuanNTb3Vy
Y2VDb2RlKCksIHRvSlMoZXhlYywgc2hlbGwtPndpbmRvdygpLCAmZWxlbWVudCkpLCB3b3JsZCk7
Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShKU01vZHVsZUdyYXBoJiBt
b2R1bGVHcmFwaCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgRWxlbWVudCYg
ZWxlbWVudCkKK3sKKyAgICBsb2FkTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFwaCwgc291cmNlQ29k
ZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCksIGVsZW1lbnQpOworfQorCit2b2lkIFNjcmlwdENv
bnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUluV29ybGQoSlNNb2R1bGVHcmFwaCYgbW9k
dWxlR3JhcGgsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIEVsZW1lbnQmIGVsZW1lbnQpCit7Cisg
ICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxs
KiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVs
bC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9t
aXNlID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywg
SWRlbnRpZmllcjo6ZnJvbVVpZCgmZXhlYy0+dm0oKSwgbW9kdWxlR3JhcGgubW9kdWxlS2V5KCkp
LCB0b0pTKGV4ZWMsIHNoZWxsLT53aW5kb3coKSwgJmVsZW1lbnQpKTsKKworICAgIFdlYWtQdHI8
RWxlbWVudD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0cigpKTsKKyAgICBKU0Z1
bmN0aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVj
LT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRl
KikgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFrUHRyLmdldCgp
KQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+
bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXZhbHVhdGVkKCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBtb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2w7CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9IEpT
TmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEs
IFN0cmluZygpLCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQ
dHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1l
bnQgPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJs
ZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXZhbHVhdGVkKCk7CisgICAg
ICAgIGhhbmRsZUpTTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIG1v
ZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKTsKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIHByb21pc2UtPnRo
ZW4oZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRsZXIpOworfQorCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShKU01vZHVsZUdyYXBoJiBtb2R1bGVH
cmFwaCwgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldv
cmxkKG1vZHVsZUdyYXBoLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgZWxlbWVudCk7Cit9CisK
K0pTQzo6SlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwm
IHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIGNv
bnN0IFNvdXJjZUNvZGUmIGpzU291cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29kZSgp
OworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7Cisg
ICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisgICAg
Y29uc3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291cmNl
VVJMID0gJnNvdXJjZVVSTC5zdHJpbmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKG1f
ZnJhbWUpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJj
ZVVSTCwganNTb3VyY2VDb2RlLmZpcnN0TGluZSgpKTsKKworICAgIEpTVmFsdWUgcmV0dXJuVmFs
dWUgPSBtb2R1bGVSZWNvcmQtPmV2YWx1YXRlKGV4ZWMpOworICAgIE5ha2VkUHRyPEV4Y2VwdGlv
bj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisg
ICAgICAgIGV2YWx1YXRpb25FeGNlcHRpb24gPSBleGVjLT52bSgpLmV4Y2VwdGlvbigpOworCisg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFdmFsdWF0ZVNjcmlwdChjb29raWUsIG1f
ZnJhbWUpOworCisgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pIHsKKyAgICAgICAgcmVwb3J0
RXhjZXB0aW9uKGV4ZWMsIGV2YWx1YXRpb25FeGNlcHRpb24sIG51bGxwdHIpOworICAgICAgICBt
X3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKKyAgICB9CisKKyAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOworICAgIHJldHVy
biByZXR1cm5WYWx1ZTsKK30KKworSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlTW9kdWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVj
b3JkKQoreworICAgIHJldHVybiBldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsIG1vZHVsZVJlY29y
ZCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCiBSZWY8RE9NV3JhcHBlcldvcmxkPiBT
Y3JpcHRDb250cm9sbGVyOjpjcmVhdGVXb3JsZCgpCiB7CiAgICAgcmV0dXJuIERPTVdyYXBwZXJX
b3JsZDo6Y3JlYXRlKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKQEAgLTI1OSw2ICszODMsNDEg
QEAgSlNET01XaW5kb3dTaGVsbCogU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdChET01XcmFw
cGVyV29ybGQmIHdvcmxkKQogICAgIHJldHVybiAmd2luZG93U2hlbGw7CiB9CiAKK3N0YXRpYyBJ
ZGVudGlmaWVyIGpzVmFsdWVUb01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFs
dWUpCit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlm
aWVyOjpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAg
IEFTU0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyhleGVjLCBqc0Nhc3Q8SlNTdHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30KKwor
dm9pZCBTY3JpcHRDb250cm9sbGVyOjppbml0SlNNb2R1bGVHcmFwaChKU01vZHVsZUdyYXBoJiBt
b2R1bGVHcmFwaCwgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UsIERPTVdyYXBwZXJXb3JsZCYg
d29ybGQpCit7CisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3Js
ZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7
CisKKyAgICBXZWFrUHRyPEVsZW1lbnQ+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha0VsZW1lbnRQ
dHIoKSk7CisgICAgSlNGdW5jdGlvbiogZnVsZmlsbEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0
aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dl
YWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICAvLyBKU01vZHVsZUdyYXBoLCBzY3Jp
cHQgZWxlbWVudCBhbmQgZG9jdW1lbnQgbWF5IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0
aGUgbW9kdWxlLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0
ZSBtb2R1bGUgYm9keS4KKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vh
a1B0ci5nZXQoKSkgeworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVl
VG9Nb2R1bGVLZXkoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5
TG9hZGVkKG1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBt
b2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxy
ZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2w7CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9
IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCks
IDEsIFN0cmluZygpLCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdl
YWtQdHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVs
ZW1lbnQgPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXJyb3JlZCgpOworICAg
ICAgICBoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBt
b2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCk7CisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBwcm9taXNlLT50
aGVuKGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCByZWplY3RIYW5kbGVyKTsKK30KKwogVGV4dFBvc2l0
aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3QKIHsKICAg
ICAvLyBGSVhNRTogSWYgd2UgYXJlIG5vdCBjdXJyZW50bHkgcGFyc2luZywgd2Ugc2hvdWxkIHVz
ZSBvdXIgY3VycmVudCBsb2NhdGlvbgpAQCAtNTIwLDcgKzY3OSw3IEBAIEpTVmFsdWUgU2NyaXB0
Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlLCBFeGNlCiAgICAgaWYgKCFjYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlw
dCkgfHwgaXNQYXVzZWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsgLy8gRklYTUU6IFdvdWxkIGpz
TnVsbCBiZSBiZXR0ZXI/CiAKLSAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7IC8vIFNj
cmlwdCBleGVjdXRpb24gY2FuIGRlc3Ryb3kgdGhlIGZyYW1lLCBhbmQgdGh1cyB0aGUgU2NyaXB0
Q29udHJvbGxlci4KKyAgICBSZWY8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1lKTsgLy8gU2NyaXB0
IGV4ZWN1dGlvbiBjYW4gZGVzdHJveSB0aGUgZnJhbWUsIGFuZCB0aHVzIHRoZSBTY3JpcHRDb250
cm9sbGVyLgogCiAgICAgcmV0dXJuIGV2YWx1YXRlKHNvdXJjZUNvZGUsIGV4Y2VwdGlvbkRldGFp
bHMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5o
CmluZGV4IGEwYzcxZjI2MDgxMmIwZDMyMTE5MTY4NjgxMTlkNzBiZjY3MTc2MmYuLjBjZDRkZDc0
ODRkNTQxNjEwNDUwZDQ5OTU5MThhMWUzMTdkY2Y5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTQ0LDYgKzQ0LDggQEAgY2xhc3MgU2Ny
aXB0VmFsdWU7CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CitjbGFz
cyBKU01vZHVsZVJlY29yZDsKK2NsYXNzIEpTSW50ZXJuYWxQcm9taXNlOwogY2xhc3MgRXhlY1N0
YXRlOwogCiBuYW1lc3BhY2UgQmluZGluZ3MgewpAQCAtNTcsNiArNTksNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxEb2N1bWVudDsKIGNsYXNzIEhUTUxQ
bHVnSW5FbGVtZW50OworY2xhc3MgSlNNb2R1bGVHcmFwaDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNv
ZGU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdpZGdldDsKQEAgLTExNSw2ICsxMTgs
MTcgQEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRl
KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBFeGNlcHRpb25EZXRhaWxzKiA9IG51bGxwdHIpOwog
ICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYs
IERPTVdyYXBwZXJXb3JsZCYsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CiAKKyAgICB2
b2lkIGxvYWRNb2R1bGVJbldvcmxkKEpTTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVs
ZU5hbWUsIERPTVdyYXBwZXJXb3JsZCYsIEVsZW1lbnQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGUo
SlNNb2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRWxlbWVudCYpOworICAg
IHZvaWQgbG9hZE1vZHVsZUluV29ybGQoSlNNb2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmLCBET01XcmFwcGVyV29ybGQmLCBFbGVtZW50Jik7CisgICAgdm9pZCBsb2FkTW9kdWxl
KEpTTW9kdWxlR3JhcGgmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRWxlbWVudCYpOworCisg
ICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKEpTTW9kdWxlR3JhcGgmICwgRE9N
V3JhcHBlcldvcmxkJiwgRWxlbWVudCYpOworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxl
KEpTTW9kdWxlR3JhcGgmLCBFbGVtZW50Jik7CisKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVN
b2R1bGUoY29uc3QgVVJMJiwgSlNDOjpKU01vZHVsZVJlY29yZCosIERPTVdyYXBwZXJXb3JsZCYp
OworICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpTTW9k
dWxlUmVjb3JkKik7CisKICAgICBXVEY6OlRleHRQb3NpdGlvbiBldmVudEhhbmRsZXJQb3NpdGlv
bigpIGNvbnN0OwogCiAgICAgdm9pZCBlbmFibGVFdmFsKCk7CkBAIC0xMzUsNiArMTQ5LDggQEAg
Y2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAKICAgICBjb25zdCBTdHJpbmcqIHNvdXJjZVVSTCgp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9IC8vIDAgaWYgd2UgYXJlIG5vdCBldmFsdWF0
aW5nIGFueSBzY3JpcHQKIAorICAgIGNvbnN0IEpTQzo6UHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRl
ckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVMb2Fk
ZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsgfQorCiAgICAgdm9pZCBjbGVhcldpbmRvd1No
ZWxsKERPTVdpbmRvdyogbmV3RE9NV2luZG93LCBib29sIGdvaW5nSW50b1BhZ2VDYWNoZSk7CiAg
ICAgdm9pZCB1cGRhdGVEb2N1bWVudCgpOwogCkBAIC0xNjcsNiArMTgzLDcgQEAgY2xhc3MgU2Ny
aXB0Q29udHJvbGxlciB7CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5k
b3dTaGVsbCogaW5pdFNjcmlwdChET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGluaXRKU01v
ZHVsZUdyYXBoKEpTTW9kdWxlR3JhcGgmLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiwgRE9NV3Jh
cHBlcldvcmxkJik7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMo
KTsKIApAQCAtMTc1LDYgKzE5Miw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIGNv
bnN0IFN0cmluZyogbV9zb3VyY2VVUkw7CiAKICAgICBib29sIG1fcGF1c2VkOworICAgIEpTQzo6
UHJpdmF0ZU5hbWUgbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKIAog
ICAgIC8vIFRoZSByb290IG9iamVjdCB1c2VkIGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhl
IGNvbnRleHQgb2YgYSBwbHVnaW4sIHN1Y2gKICAgICAvLyBhcyBOUEFQSSBwbHVnaW5zLiBUaGUg
cGx1Z2lucyB1c2luZyB0aGVzZSBvYmplY3RzIHByZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2Fj
aGVkIHNvIHRoZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDRkMDMwOGQ3YTM3NzhmZDNh
NGQ4NDI0NWM4MGVmNmNlM2Y4ZDY2NWIuLjAzOWY5MjU2OThkMjcxZGUyMDgzYzU2MTJkZDllMGVi
MWE2MTIxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTAzLDYgKzEwMyw3IEBACiAj
aW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21F
bGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5oIgorI2lu
Y2x1ZGUgIkpTTW9kdWxlRmV0Y2hlci5oIgogI2luY2x1ZGUgIkpTTW9kdWxlTG9hZGVyLmgiCiAj
aW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDdlMzhkOGZkYTFlYWIwZDY0ZmU0NTJkMjA4ZWY1YWUwNGM0ZTUxODYu
LmE2NzM2MGM2YjA4MmQwOWUwMzBmNWNkMzkxNjc3NTg1OTE5YzliM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xMzMsNiArMTMzLDcgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNs
YXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNs
YXNzIE1lZGlhUXVlcnlNYXRjaGVyOworY2xhc3MgSlNNb2R1bGVMb2FkZXI7CiBjbGFzcyBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRGbG93Q29sbGVjdGlvbjsKIGNs
YXNzIE5vZGVGaWx0ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZjE4
NzExMTViMzI4YTZmMTI2MzA5MzZlODVlYjA5YWI3YTFmMzU3Yy4uZDNhM2U4YzYyNjU2ODU4ODQw
OWNlNmQ3ZTJiZWQzMDc3ZGZmMDlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhU
TUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJ
bmNyZW1lbnRlci5oIgorI2luY2x1ZGUgIkpTTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CkBAIC0xOTcsNyArMTk4LDEwIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChj
b25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgaWYgKCFt
X2VsZW1lbnQuaW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IWRldGVybWluZVNjcmlwdFR5cGUoc3VwcG9ydExlZ2FjeVR5cGVzKSkKKyAgICBTY3JpcHRUeXBl
IHNjcmlwdFR5cGUgPSBTY3JpcHRUeXBlOjpDbGFzc2ljOworICAgIGlmIChPcHRpb25hbDxTY3Jp
cHRUeXBlPiByZXN1bHQgPSBkZXRlcm1pbmVTY3JpcHRUeXBlKHN1cHBvcnRMZWdhY3lUeXBlcykp
CisgICAgICAgIHNjcmlwdFR5cGUgPSByZXN1bHQudmFsdWUoKTsKKyAgICBlbHNlCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmICh3YXNQYXJzZXJJbnNlcnRlZCkgewpAQCAtMjE5LDcg
KzIyMyw3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9z
aXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgaWYgKCFkb2N1bWVudC5mcmFt
ZSgpLT5zY3JpcHQoKS5jYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghaXNTY3JpcHRGb3JFdmVudFN1cHBvcnRl
ZCgpKQorICAgIGlmIChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMgJiYgIWlzU2Ny
aXB0Rm9yRXZlbnRTdXBwb3J0ZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KCFjaGFyc2V0QXR0cmlidXRlVmFsdWUoKS5pc0VtcHR5KCkpCkBAIC0yMjcsMjYgKzIzMSwzOCBA
QCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBz
Y3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAgIGVsc2UKICAgICAgICAgbV9jaGFyYWN0ZXJF
bmNvZGluZyA9IGRvY3VtZW50LmNoYXJzZXQoKTsKIAotICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1
dGUoKSkKLSAgICAgICAgaWYgKCFyZXF1ZXN0U2NyaXB0KHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkp
KQorICAgIGlmIChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6Ok1vZHVsZSkgeworICAgICAgICBp
ZiAoIWxvYWRNb2R1bGUoc2NyaXB0U3RhcnRQb3NpdGlvbikpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChzY3JpcHRUeXBl
ID09IFNjcmlwdFR5cGU6OkNsYXNzaWMpIHsKKyAgICAgICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0
ZSgpKSB7CisgICAgICAgICAgICBpZiAoIXJlcXVlc3RTY3JpcHQoc2NyaXB0VHlwZSwgc291cmNl
QXR0cmlidXRlVmFsdWUoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgfQogCi0gICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIGRlZmVyQXR0cmli
dXRlVmFsdWUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkp
IHsKKyAgICBpZiAoKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6Q2xhc3NpYyAmJiBoYXNTb3Vy
Y2VBdHRyaWJ1dGUoKSAmJiBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgJiYgbV9wYXJzZXJJbnNlcnRl
ZCAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpKSB8fCAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBl
OjpNb2R1bGUgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpKSkg
ewogICAgICAgICBtX3dpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nID0gdHJ1
ZTsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9IHRydWU7Ci0gICAgfSBlbHNlIGlm
IChoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFhc3luY0F0dHJp
YnV0ZVZhbHVlKCkpCisgICAgfSBlbHNlIGlmIChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNs
YXNzaWMgJiYgaGFzU291cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhYXN5
bmNBdHRyaWJ1dGVWYWx1ZSgpKSB7CisgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlw
dFR5cGU6OkNsYXNzaWMpOwogICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsK
LSAgICBlbHNlIGlmICghaGFzU291cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAm
JiAhZG9jdW1lbnQuaGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkpIHsKLSAgICAgICAgbV93aWxsQmVQ
YXJzZXJFeGVjdXRlZCA9IHRydWU7Ci0gICAgICAgIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQg
PSB0cnVlOwotICAgIH0gZWxzZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkgJiYgIWFzeW5jQXR0
cmlidXRlVmFsdWUoKSAmJiAhbV9mb3JjZUFzeW5jKSB7CisgICAgfSBlbHNlIGlmICgoc2NyaXB0
VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljICYmIGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmICFh
c3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykgfHwgKHNjcmlwdFR5cGUgPT0g
U2NyaXB0VHlwZTo6TW9kdWxlICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VB
c3luYykpIHsKICAgICAgICAgbV93aWxsRXhlY3V0ZUluT3JkZXIgPSB0cnVlOwogICAgICAgICBk
b2N1bWVudC5zY3JpcHRSdW5uZXIoKS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgbV9j
YWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6SU5fT1JERVJfRVhFQ1VUSU9OKTsKICAgICAgICAg
bV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKLSAgICB9IGVsc2UgaWYgKGhhc1NvdXJj
ZUF0dHJpYnV0ZSgpKSB7CisgICAgfSBlbHNlIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSB8fCBz
Y3JpcHRUeXBlID09IFNjcmlwdFR5cGU6Ok1vZHVsZSkgewogICAgICAgICBtX2VsZW1lbnQuZG9j
dW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgbV9j
YWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6QVNZTkNfRVhFQ1VUSU9OKTsKICAgICAgICAgbV9j
YWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKKyAgICB9IGVsc2UgaWYgKCFoYXNTb3VyY2VB
dHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFkb2N1bWVudC5oYXZlU3R5bGVzaGVl
dHNMb2FkZWQoKSkgeworICAgICAgICBBU1NFUlQoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpD
bGFzc2ljKTsKKyAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9IHRydWU7CisgICAgICAg
IG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwogICAgIH0gZWxzZSB7CisgICAgICAg
IEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMpOwogICAgICAgICAvLyBS
ZXNldCBsaW5lIG51bWJlcmluZyBmb3IgbmVzdGVkIHdyaXRlcy4KICAgICAgICAgVGV4dFBvc2l0
aW9uIHBvc2l0aW9uID0gZG9jdW1lbnQuaXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlv
bigpIDogc2NyaXB0U3RhcnRQb3NpdGlvbjsKICAgICAgICAgZXhlY3V0ZVNjcmlwdChTY3JpcHRT
b3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQudXJsKCksIHBvc2l0aW9uKSk7CkBA
IC0yNTUsNyArMjcxLDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0
IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYg
c291cmNlVXJsKQorYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KFNjcmlwdFR5cGUs
IGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogewogICAgIFJlZjxEb2N1bWVudD4gb3JpZ2luYWxE
b2N1bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7CiAgICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0
Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKQEAgLTI5Niw2ICszMTIsMzEgQEAgYm9vbCBT
Y3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBT
Y3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KFVSTCBzb3VyY2VVcmwpCit7CisgICAg
Ym9vbCBoYXNLbm93bk5vbmNlID0gbV9lbGVtZW50LmRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5
UG9saWN5KCktPmFsbG93U2NyaXB0V2l0aE5vbmNlKG1fZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6bm9uY2VBdHRyKSwgbV9lbGVtZW50LmlzSW5Vc2Vy
QWdlbnRTaGFkb3dUcmVlKCkpOworICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKKyAg
ICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBoYXNLbm93bk5vbmNl
ID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29u
dGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjazsKKworICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChzb3VyY2VVcmwpLCBvcHRp
b25zKTsKKworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9h
ZCk7CisKKyAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gbV9lbGVtZW50LmF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpOworICAgIGlm
ICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CisgICAgICAgIG1fcmVxdWVzdFVzZXNBY2Nl
c3NDb250cm9sID0gdHJ1ZTsKKyAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50
aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVz
ZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9y
ZWRDcmVkZW50aWFsczsKKyAgICAgICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1bWVudCgpLnNlY3Vy
aXR5T3JpZ2luKCkpOworICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1
ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgKm1fZWxlbWVudC5kb2N1bWVudCgpLnNlY3Vy
aXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOworICAgIH0KKyAgICByZXF1ZXN0LnNldENo
YXJzZXQoQVNDSUlMaXRlcmFsKCJ1dGYtOCIpKTsKKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcigm
ZWxlbWVudCgpKTsKKworICAgIG1faXNFeHRlcm5hbFNjcmlwdCA9IHRydWU7CisKKyAgICByZXR1
cm4gbV9lbGVtZW50LmRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0U2Ny
aXB0KHJlcXVlc3QpOworfQorCiB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVTY3JpcHQoY29u
c3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKIHsKICAgICBBU1NFUlQobV9hbHJlYWR5
U3RhcnRlZCk7CkBAIC0zMjgsNiArMzY5LDkgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRl
U2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiAgICAgICAgIC8vIE5v
dGU6IFRoaXMgaXMgd2hlcmUgdGhlIHNjcmlwdCBpcyBjb21waWxlZCBhbmQgYWN0dWFsbHkgZXhl
Y3V0ZWQuCiAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZShzb3VyY2VDb2RlKTsKICAg
ICB9CisgICAgLy8gRklYTUU6IFRoZSBtb2R1bGUgbG9hZGVyIHNob3VsZCBoYXZlIHRoZSBtZWNo
YW5pc20gdG8gc3RvcCBsb2FkaW5nLgorICAgIC8vIFRoZSBjdXJyZW50IGxvYWRlciBzcGVjIGRv
ZXMgbm90IGhhdmUgdGhpcy4gT25jZSBpdCBpcyBzcGVjaWZpZWQKKyAgICAvLyB3ZSB3aWxsIGlu
dHJvZHVjZSB0aGlzIGZlYXR1cmUuCiB9CiAKIHZvaWQgU2NyaXB0RWxlbWVudDo6c3RvcExvYWRS
ZXF1ZXN0KCkKQEAgLTM1Miw2ICszOTYsNjQgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRl
KENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogICAgIGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xp
ZW50KHRoaXMpOwogfQogCitib29sIFNjcmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUoY29uc3QgVGV4
dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQoreworICAgIC8vIFRoZSBicm93c2VyIG1v
ZHVsZSBsb2FkZXIgbG9hZHMgdGhlIG1vZHVsZSBzb3VyY2VzLgorICAgIC8vIFNpbmNlIHRoZSBt
b2R1bGUgaW52b2x2ZXMgbG9hZGluZyBvZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMgYW5kIHRoZSBk
ZXBlbmRlbnQgbW9kdWxlcyBkb2VzIG5vdCBoYXZlIGNvcnJlc3BvbmRpbmcgc2NyaXB0IGVsZW1l
bnRzLAorICAgIC8vIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGxvYWRpbmcgbW9kdWxlcyBpcyBzZXBh
cmF0ZWQgZnJvbSB0aGUgc2NyaXB0IGVsZW1lbnQuCisgICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0
ZSgpKSB7CisgICAgICAgIFN0cmluZyBzb3VyY2VVcmwgPSBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgp
OworICAgICAgICBSZWY8RG9jdW1lbnQ+IG9yaWdpbmFsRG9jdW1lbnQobV9lbGVtZW50LmRvY3Vt
ZW50KCkpOworICAgICAgICBpZiAoIW1fZWxlbWVudC5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChz
b3VyY2VVcmwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIFNjcmlw
dCBlbGVtZW50IG1heSBiZSBkZXRhY2hlZCBhbmQgYXR0YWNoZWQgdG8gYSBkaWZmZXJlbnQgZG9j
dW1lbnQgd2hpbGUgZXhlY3V0aW5nIHRoZSBldmVudCBsaXN0ZW5lci4KKyAgICAgICAgaWYgKCFt
X2VsZW1lbnQuaW5Eb2N1bWVudCgpIHx8ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5h
bERvY3VtZW50LnB0cigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlm
IChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJsKS5pc0VtcHR5KCkp
IHsKKyAgICAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gRklYTUU6IFNob3VsZCBzdXBwb3J0IGNy
b3NzLW9yaWdpbiBtb2RlIGluIHRoZSBtb2R1bGUgdGFnLgorICAgICAgICAvLyBIb3dldmVyIHdl
IGRvbid0IGhhdmUgdGhlIHBvbGljeSB0byBhcHBseSB0aGlzIG1vZGUgdG8gdGhlIHJlc291cmNl
cyBvZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCisgICAgICAgIC8vIFByb3ZpZGVkIG11bHRpcGxl
IG1vZHVsZSB0YWdzLAorICAgICAgICAvLworICAgICAgICAvLyAgIEE6IDxzY3JpcHQgdHlwZT0i
bW9kdWxlIiBzcmM9Ii4uLiIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CisgICAg
ICAgIC8vICAgQjogPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iLi4uIj48L3NjcmlwdD4KKyAg
ICAgICAgLy8KKyAgICAgICAgLy8gJ0EnIGhhcyB0aGUgImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUu
IEJ1dCAnQicgZG9lcyBub3QgaGF2ZSBpdC4KKyAgICAgICAgLy8gSG93ZXZlciwgRVM2IG1vZHVs
ZXMgYWxsb3cgJ0EnIGFuZCAnQicgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUgYW5kIGl0IHdpbGwg
YmUgY2FjaGVkIGluIHRoZQorICAgICAgICAvLyBtb2R1bGUgbG9hZGVyLiBJbiB0aGF0IGNhc2Us
IGl0IGlzIGNvbnRyb3ZlcnNpYWwgdGhhdCB3aGljaCAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSB3
aWxsIGJlCisgICAgICAgIC8vIGFwcGxpZWQgdG8gdGhlIG1vZHVsZSBsb2FkZWQgYnkgdGhlIGJv
dGguIE9uY2UgdGhlIHNwZWMgb2YgdGhlIG1vZHVsZSBsb2FkZXIgaXMgZml4ZWQsIHdlCisgICAg
ICAgIC8vIHNob3VsZCBmb2xsb3cgaXQuCisKKyAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0g
dHJ1ZTsKKyAgICAgICAgbV9tb2R1bGVHcmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNNb2R1bGVH
cmFwaD4obV9lbGVtZW50KTsKKyAgICAgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVu
bmVyKCktPnF1ZXVlSlNNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbih0aGlzLCAqbV9tb2R1bGVHcmFw
aCk7CisgICAgICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoc291cmNlQXR0cmlidXRlVmFsdWUoKSk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8vIFJlc2V0IGxpbmUgbnVtYmVy
aW5nIGZvciBuZXN0ZWQgd3JpdGVzLgorICAgIFRleHRQb3NpdGlvbiBwb3NpdGlvbiA9IG1fZWxl
bWVudC5kb2N1bWVudCgpLmlzSW5Eb2N1bWVudFdyaXRlKCkgPyBUZXh0UG9zaXRpb24oKSA6IHNj
cmlwdFN0YXJ0UG9zaXRpb247CisgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKHNjcmlw
dENvbnRlbnQoKSwgbV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCksIHBvc2l0aW9uKTsKKworICAg
IHsKKyAgICAgICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpKTsKKyAgICAgICAgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5JiBjb250ZW50U2Vj
dXJpdHlQb2xpY3kgPSAqbV9lbGVtZW50LmRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5
KCk7CisgICAgICAgIGJvb2wgaGFzS25vd25Ob25jZSA9IGNvbnRlbnRTZWN1cml0eVBvbGljeS5h
bGxvd1NjcmlwdFdpdGhOb25jZShtX2VsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihIVE1MTmFtZXM6Om5vbmNlQXR0ciksIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93
VHJlZSgpKTsKKyAgICAgICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dJbmxpbmVT
Y3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCksIG1fc3RhcnRMaW5lTnVtYmVyLCBzb3Vy
Y2VDb2RlLnNvdXJjZSgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSwgaGFzS25vd25Ob25jZSkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBtX21vZHVsZUdyYXBoID0g
c3RkOjptYWtlX3VuaXF1ZTxKU01vZHVsZUdyYXBoPihtX2VsZW1lbnQpOworICAgIG1fZWxlbWVu
dC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZUpTTW9kdWxlR3JhcGhGb3JFeGVjdXRp
b24odGhpcywgKm1fbW9kdWxlR3JhcGgpOworICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoc291cmNl
Q29kZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5
RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewogICAgIEFTU0VSVCghbV93aWxs
QmVQYXJzZXJFeGVjdXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCAxYWE0
ZjJlODNiMzExMTcxMjQ2YTIzMGU2NTg4MDYyZjljZjNkMDg0Li45MmQxNTM3ZGY3MmJlYTU4YzRm
MzA0YzJjNDZjZTIwZTQyMGIwODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKQEAg
LTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRl
ICJVUkwuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzIsNiArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRWxl
bWVudDsKK2NsYXNzIEpTTW9kdWxlR3JhcGg7CiBjbGFzcyBTY3JpcHRFbGVtZW50OwogY2xhc3Mg
U2NyaXB0U291cmNlQ29kZTsKIApAQCAtNTksNiArNjEsMTQgQEAgY2xhc3MgU2NyaXB0RWxlbWVu
dCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgcmVhZHlUb0JlUGFy
c2VyRXhlY3V0ZWQoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5VG9CZVBhcnNlckV4ZWN1dGVkOyB9
CiAgICAgYm9vbCB3aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZygpIGNvbnN0
IHsgcmV0dXJuIG1fd2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmc7IH0KICAg
ICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCgpIHsgcmV0
dXJuIG1fY2FjaGVkU2NyaXB0OyB9CisgICAgSlNNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGgoKSB7
IHJldHVybiBtX21vZHVsZUdyYXBoLmdldCgpOyB9CisKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RNb2R1bGVTY3JpcHQoVVJMKTsKKworICAgIC8vIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI2NvbmNlcHQt
c2NyaXB0LXR5cGUKKyAgICBlbnVtIGNsYXNzIFNjcmlwdFR5cGUgeyBDbGFzc2ljLCBNb2R1bGUg
fTsKKworICAgIFNjcmlwdFR5cGUgc2NyaXB0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbGFz
c2ljU2NyaXB0ID8gU2NyaXB0VHlwZTo6Q2xhc3NpYyA6IFNjcmlwdFR5cGU6Ok1vZHVsZTsgfQog
CiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChFbGVtZW50JiwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQpOwpAQCAtNzYsMTMgKzg2LDEzIEBAIGNsYXNzIFNjcmlw
dEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICB2b2lkIGhhbmRs
ZUFzeW5jQXR0cmlidXRlKCk7CiAKIHByaXZhdGU6Ci0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjY29uY2VwdC1zY3JpcHQtdHlwZQot
ICAgIGVudW0gY2xhc3MgU2NyaXB0VHlwZSB7IENsYXNzaWMsIE1vZHVsZSB9OwogICAgIE9wdGlv
bmFsPFNjcmlwdFR5cGU+IGRldGVybWluZVNjcmlwdFR5cGUoTGVnYWN5VHlwZVN1cHBvcnQpIGNv
bnN0OwogICAgIGJvb2wgaWdub3Jlc0xvYWRSZXF1ZXN0KCkgY29uc3Q7CiAgICAgYm9vbCBpc1Nj
cmlwdEZvckV2ZW50U3VwcG9ydGVkKCkgY29uc3Q7CiAKLSAgICBib29sIHJlcXVlc3RTY3JpcHQo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOworICAgIGJvb2wgbG9hZE1vZHVsZShjb25zdCBUZXh0
UG9zaXRpb24mKTsKKworICAgIGJvb2wgcmVxdWVzdFNjcmlwdChTY3JpcHRUeXBlLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVybCk7CiAgICAgdm9pZCBzdG9wTG9hZFJlcXVlc3QoKTsKIAogICAgIHZv
aWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBvdmVycmlkZTsKQEAgLTExMCw4ICsx
MjAsMTAgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGll
bnQgewogICAgIGJvb2wgbV9mb3JjZUFzeW5jIDogMTsKICAgICBib29sIG1fd2lsbEV4ZWN1dGVJ
bk9yZGVyIDogMTsKICAgICBib29sIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sIDogMTsKKyAg
ICBib29sIG1faXNDbGFzc2ljU2NyaXB0IDogMTsKICAgICBTdHJpbmcgbV9jaGFyYWN0ZXJFbmNv
ZGluZzsKICAgICBTdHJpbmcgbV9mYWxsYmFja0NoYXJhY3RlckVuY29kaW5nOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxKU01vZHVsZUdyYXBoPiBtX21vZHVsZUdyYXBoOwogfTsKIAogLy8gRklYTUU6
IHJlcGxhY2Ugd2l0aCBkb3duY2FzdDxTY3JpcHRFbGVtZW50Pi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dFJ1bm5lci5jcHAKaW5kZXggZDI2MDViZGRiN2I1YjYyYjkxNDUzOGVmNjI2MmFjYjdiM2Q1MDAy
ZS4uMmJlYjQwZWZlNjUzMjJkYWM3YmQ2YmQzNThhZjhmYTM5N2E4YmE4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hl
ZFNjcmlwdC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU01vZHVsZUdyYXBo
LmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQu
aCIKIApAQCAtNDcsNiArNDgsMTAgQEAgU2NyaXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKCkKICAg
ICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGVuZGluZ0FzeW5jU2NyaXB0cy5zaXplKCk7ICsraSkK
ICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29v
bi5zaXplKCk7ICsraSkKKyAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxh
eUNvdW50KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGVuZGluZ01vZHVsZVNj
cmlwdEVsZW1lbnRzLnNpemUoKTsgKytpKQorICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExv
YWRFdmVudERlbGF5Q291bnQoKTsKIH0KIAogdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0
Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0LCBFeGVjdXRpb25UeXBlIGV4ZWN1dGlv
blR5cGUpCkBAIC03MCw2ICs3NSwxOCBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRG
b3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUgogICAgIH0K
IH0KIAordm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlSlNNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihT
Y3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBKU01vZHVsZUdyYXBoJikKK3sKKyAgICBBU1NF
UlQoc2NyaXB0RWxlbWVudCk7CisKKyAgICBFbGVtZW50JiBlbGVtZW50ID0gc2NyaXB0RWxlbWVu
dC0+ZWxlbWVudCgpOworICAgIEFTU0VSVChlbGVtZW50LmluRG9jdW1lbnQoKSk7CisKKyAgICBt
X2RvY3VtZW50LmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKworICAgIG1fcGVuZGlu
Z01vZHVsZVNjcmlwdEVsZW1lbnRzLmFkZCgmZWxlbWVudCk7Cit9CisKIHZvaWQgU2NyaXB0UnVu
bmVyOjpzdXNwZW5kKCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKQEAgLTk2LDYgKzExMywyNiBA
QCB2b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5U2NyaXB0UmVhZHkoU2NyaXB0RWxlbWVudCogc2Ny
aXB0RWxlbWVudCwgRXhlY3V0aW9uVHlwZQogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwog
fQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5SlNNb2R1bGVHcmFwaFJlYWR5KFNjcmlwdEVs
ZW1lbnQqIHNjcmlwdEVsZW1lbnQpCit7CisgICAgQVNTRVJUX1VOVVNFRChzY3JpcHRFbGVtZW50
LCBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5jb250YWlucygmc2NyaXB0RWxlbWVudC0+
ZWxlbWVudCgpKSk7CisKKyAgICAvLyBMaXN0SGFzaFNldCBjb3JyZWN0bHkgcHJlc2VydmVzIHRo
ZSBpbnNlcnRpb24gb3JkZXIuCisgICAgLy8gQW5kIGl0IGFsbG93IHVzIHRvIHJlbW92ZSBlbGVt
ZW50IGR1cmluZyBpdGVyYXRpb24uCisgICAgYXV0byBpdGVyYXRvciA9IG1fcGVuZGluZ01vZHVs
ZVNjcmlwdEVsZW1lbnRzLmJlZ2luKCk7CisgICAgd2hpbGUgKGl0ZXJhdG9yICE9IG1fcGVuZGlu
Z01vZHVsZVNjcmlwdEVsZW1lbnRzLmVuZCgpKSB7CisgICAgICAgIEpTTW9kdWxlR3JhcGgqIG1v
ZHVsZUdyYXBoID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShpdGVyYXRvci0+Z2V0KCkpLT5t
b2R1bGVHcmFwaCgpOworICAgICAgICBpZiAoIW1vZHVsZUdyYXBoLT5lcnJvck9jY3VycmVkKCkg
JiYgIW1vZHVsZUdyYXBoLT5pc0xvYWRlZCgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGF1dG8gcHJldmlvdXMgPSBpdGVyYXRvcjsKKyAgICAgICAgKytpdGVyYXRvcjsKKyAgICAgICAg
bV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uYXBwZW5kKCpwcmV2aW91cyk7Cisg
ICAgICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLnJlbW92ZShwcmV2aW91cyk7Cisg
ICAgfQorICAgIGlmICghbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0
eSgpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwogdm9pZCBTY3JpcHRS
dW5uZXI6OnRpbWVyRmlyZWQoKQogewogICAgIFJlZjxEb2N1bWVudD4gcHJvdGVjdChtX2RvY3Vt
ZW50KTsKQEAgLTExOSw2ICsxNTYsMjAgQEAgdm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQo
KQogICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5leGVj
dXRlKGNhY2hlZFNjcmlwdCk7CiAgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50
RGVsYXlDb3VudCgpOwogICAgIH0KKworICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IG1vZHVs
ZVNjcmlwdEVsZW1lbnRzOworICAgIG1vZHVsZVNjcmlwdEVsZW1lbnRzLnN3YXAobV9tb2R1bGVT
Y3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24pOworCisgICAgZm9yIChSZWZQdHI8RWxlbWVudD4m
IHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50IDogbW9kdWxlU2NyaXB0RWxlbWVudHMpIHsKKyAg
ICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQ7CisgICAgICAgIHBlbmRpbmdNb2R1bGVTY3Jp
cHRFbGVtZW50LnN3YXAoZWxlbWVudCk7CisgICAgICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICAg
ICAgLy8gUGFwZXIgb3ZlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ0MDUwCisgICAgICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFw
aCgpLT5ldmFsdWF0ZSgpOworICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERl
bGF5Q291bnQoKTsKKyAgICB9CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAppbmRl
eCA4Y2QzMzJhNTczNGMxY2I5MmYyYTVmZjVmYzRjY2ExNThmZTNiYzQxLi44MmNmNWU3YjNmNDY5
NzgxMmE2ZjhiZWI4MTM5YjE2ZTUwZjYyMGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0UnVubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5o
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNp
bmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCkBAIC0zNiw2ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OworY2xh
c3MgSlNNb2R1bGVHcmFwaDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBjbGFzcyBTY3JpcHRFbGVt
ZW50OwogCkBAIC00NywxMSArNTAsMTQgQEAgY2xhc3MgU2NyaXB0UnVubmVyIHsKIAogICAgIGVu
dW0gRXhlY3V0aW9uVHlwZSB7IEFTWU5DX0VYRUNVVElPTiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07
CiAgICAgdm9pZCBxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiwgRXhlY3V0aW9uVHlwZSk7Ci0gICAgYm9vbCBo
YXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29u
LmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5KCkgfHwgIW1f
cGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIHF1ZXVlSlNNb2R1bGVH
cmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgSlNNb2R1bGVHcmFwaCYpOworICAgIGJv
b2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRl
U29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8
ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0eSgpIHx8ICFtX21vZHVsZVNjcmlwdEVsZW1l
bnRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1l
bnRzLmlzRW1wdHkoKTsgfQogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7
CiAgICAgdm9pZCBub3RpZnlTY3JpcHRSZWFkeShTY3JpcHRFbGVtZW50KiwgRXhlY3V0aW9uVHlw
ZSk7CiAKKyAgICB2b2lkIG5vdGlmeUpTTW9kdWxlR3JhcGhSZWFkeShTY3JpcHRFbGVtZW50Kik7
CisKIHByaXZhdGU6CiAgICAgdm9pZCB0aW1lckZpcmVkKCk7CiAKQEAgLTU5LDYgKzY1LDggQEAg
Y2xhc3MgU2NyaXB0UnVubmVyIHsKICAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRz
VG9FeGVjdXRlSW5PcmRlcjsKICAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9F
eGVjdXRlU29vbjsgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay8jc2V0LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtYXMtc29vbi1hcy1wb3Nz
aWJsZQogICAgIEhhc2hNYXA8U2NyaXB0RWxlbWVudCosIFBlbmRpbmdTY3JpcHQ+IG1fcGVuZGlu
Z0FzeW5jU2NyaXB0czsKKyAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBtX21vZHVsZVNjcmlw
dEVsZW1lbnRzVG9FeGVjdXRlU29vbjsKKyAgICBMaXN0SGFzaFNldDxSZWZQdHI8RWxlbWVudD4+
IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzOwogICAgIFRpbWVyIG1fdGltZXI7CiB9Owog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYzZkOGNmOTg0ZGM1N2JiZDZkYWQ5OGE5ZWZkMzhjMjc0ZjNkMjUyNy4uOTUyMmI2
OWZhYzkwNTIzMmIzNzliOWNlMmZhNDc3YTQ5ZDVmOGZlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBA
CisyMDE2LTA4LTI1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisg
ICAgICAgIFtFUzZdIEludGVncmF0ZSBFUzYgTW9kdWxlcyBpbnRvIFdlYkNvcmUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODg5NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRl
cGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxp
bmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1pbmxpbmUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
anMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHlu
YW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1z
YW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2
ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICog
anMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1zcmMtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
d2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50
LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5z
aWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qczog
QWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLTIuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2Eu
anM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC1tYXRjaGEuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qczogQWRkZWQuCisgICAgICAgICog
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanM6IEFkZGVkLgorICAg
ICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKGV4
cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1pbmxpbmUtc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29h
LnByb3RvdHlwZS50YXN0ZSk6CisgICAgICAgIChleHBvcnQuZGVmYXVsdC5Db2NvYSk6CisgICAg
ICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy5qczog
QWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qczogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFu
ZC1pbXBvcnQuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXNyYy1keW5hbWljLWNvY29hLmpzOiBBZGRlZC4KKyAgICAgICAgKENvY29hLnByb3RvdHlwZS50
YXN0ZSk6CisgICAgICAgIChDb2NvYSk6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtc3JjLWR5bmFtaWMuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAoQ29jb2EucHJv
dG90eXBlLnRhc3RlKToKKyAgICAgICAgKENvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qczogQWRkZWQuCisKIDIwMTYt
MDgtMjUgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByZWJhc2UgaU9TIHNpbXVsYXRvciBXSzEgaW1wb3J0ZWQvdzNjIHRlc3RzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA1MmUyM2VhZjNhOTkxYWJhMTZjYWVlZWFjNWIwNTRjZGNlNjY4NjFl
Li5iNTU5ZmUyMmNhMTg1MTk2YWVlNzE0MTMxMTc2MjE3ZDY4NjcwNmJhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTEyNDUsMyArMTI0NSwyMSBAQCB3ZWJraXQub3JnL2IvMTU5NzU1IGZhc3QvdGV4
dC9lbW9qaS1nZW5kZXIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2
MDAxNyBqcy9yZWdyZXNzLTEzOTU0OC5odG1sIFsgU2xvdyBdCiAKIHdlYmtpdC5vcmcvYi8xNjEw
ODggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1pbmcvcmVzb3Vy
Y2UtdGltaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCisjIEVTNiBNb2R1bGVzIGFyZSBub3Qg
eWV0IGVuYWJsZWQgYnkgZGVmYXVsdDogRU5BQkxFKEVTNl9NT0RVTEVTKQorIyBqcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1leGVjdXRp
b24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIFsgU2tpcCBdCisj
IGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sIFsgU2tpcCBdCisjIGpz
L2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwgWyBTa2lwIF0KKyMganMvZG9t
L21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtaW5s
aW5lLXNpbXBsZS5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRo
LXNyYy5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sIFsgU2tp
cCBdCisjIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC1keW5hbWljLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1sb2FkLXNhbWUt
bW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgWyBTa2lwIF0KKyMganMvZG9t
L21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sIFsg
U2tpcCBdCisjIGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0
bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbCBb
IFNraXAgXQorIyBqcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwgWyBTa2lwIF0KKyMganMv
ZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS13aWxs
LWZpcmUtYmVmb3JlbG9hZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91
bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3Vs
ZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliZGIy
NzVhMmZiODM0ODk2NGZiZThkZWI4MjU1M2I0YjlkYjlhNTIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50
LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUg
ZGVwZW5kZW50IG1vZHVsZSB0aHJvdyBhbiBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIHRoZSBkZXBl
bmRlbnQgbW9kdWxlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24t
ZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25l
cnJvci5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5z
aWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE3N2I1ZGQ3NjRkYmUyNDM0MjNkMWMzOGUzNzRjYzBmZGRjMjQzNzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJv
ci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9y
Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBk
ZXBlbmRlbnQgbW9kdWxlIHRocm93IGFuIGVycm9yLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhl
Y3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1
ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cit3aW5kb3cub25lcnJvciA9IGZ1bmN0
aW9uICgpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJtb2R1bGUiPgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1p
bnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpz
IgordGVzdEZhaWxlZCgiZXhlY3V0ZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hv
dWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVy
cm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWRmNzAyOGYzNTQ5MzY2OTI5MjJlZmU2MWEy
ZGZiYTVmMWYwOTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVk
IHdoZW4gdGhlIGlubGluZWQgbW9kdWxlIHRocm93cyBhbiBlcnJvci4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5n
IHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24t
ZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25l
cnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NDYyZjM3ZWQ4MTczMDYxZjdmOTk1MzZjNDJkMjk5NWMy
NTI3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKQEAgLTAsMCAr
MSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rl
c3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBpbmxpbmVkIG1vZHVsZSB0
aHJvd3MgYW4gZXJyb3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25v
dXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgIGZp
bmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitkZWJ1
ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cit0aHJvdyBuZXcgRXJyb3IoIm1vZHVsZSBpcyBl
eGVjdXRlZC4iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZmZGYzMzk3NTdhNGEzNzk2NGU4ODlhZWM2OWFmY2M1OTlh
Yjc4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1
bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFT
UyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQrKyBpcyAxCitQQVNTIGNvdW50KysgaXMgMgorUEFT
UyBjb3VudCsrIGlzIDMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLWlubGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MjVlNzY5MDhjZmI2ZmVhMDEwN2Y0ZGFh
ZGQxZDI5MzFiZjNjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgZXhlY3V0
aW9uIG9yZGVyIGJldHdlZW4gaW5saW5lZCBtb2R1bGUgdGFncy4nKTsKK3dpbmRvdy5jb3VudCA9
IDA7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjAiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJt
b2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQrKyIsICIyIik7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKK2ZpbmlzaEpTVGVz
dCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjM3ZjUyNGY1MzE5MDVkOGE1M2Y0NGEzM2FiNmZmYjQwMDEyMTAzMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IG1vZHVsZSBleGVjdXRp
b24gb3JkZXIgYmV0d2VlbiBtaXhlZCB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworV2Uga2VlcCB0aGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbW9kdWxlcy4KK01vZHVs
ZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBjb3VudCsrIGlzIDAKK1BBU1MgY291bnQrKyBp
cyAxCitQQVNTIGNvdW50KysgaXMgMgorUEFTUyBjb3VudCsrIGlzIDMKK1BBU1MgY291bnQrKyBp
cyA0CitQQVNTIGNvdW50KysgaXMgNQorUEFTUyBjb3VudCsrIGlzIDYKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MTkxZDMwM2VkZDc1NzczODEyOGRkOWQxNWJiNDBjN2U3NmMyY2Q3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbApA
QCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignVGVzdCBtb2R1bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gbWl4ZWQgdGFncy4nKTsK
K2RlYnVnKCdXZSBrZWVwIHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLicpOwor
d2luZG93LmNvdW50ID0gMDsKKworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9u
b3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5v
dCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9
InNjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjQiKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQtMi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+
CitzaG91bGRCZSgiY291bnQrKyIsICI2Iik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1p
bmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlu
bGluZS1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzkzOWFhZjBhNTAxNWY0Nzkz
ODZjZDMxOTVhYTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
VGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01v
ZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBp
biB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5l
ZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRD
b2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtaW5saW5lLWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5l
LWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGMwZTI1OWFiMjkxZWZmYzRiZWU3OGFlNjVjMzQx
N2MxMWQwNWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1p
bmxpbmUtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGluZWQgbW9kdWxlLicpOworCisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4nKTsKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgICBlbGVtZW50LnRleHRDb250ZW50ID0gYAor
ICAgICAgICBpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1k
eW5hbWljLmpzIjsKKyAgICAgICAgdmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKKyAgICAgICAg
ZGVidWcoIk1vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9u
bWVudC4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAi
dW5kZWZpbmVkIik7CisKKyAgICAgICAgd2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmpl
Y3QiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3Rl
KCkiLCAiYXdlc29tZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBgOworICAgIGVs
ZW1lbnQudHlwZSA9ICJtb2R1bGUiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7Cit9ICgpKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmM5MzlhYWYwYTUwMTVmNDc5Mzg2Y2QzMTk1YWE1OWRkMTY5MDk3NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBpbmxpbmVkIG1vZHVsZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxl
IGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0
eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMg
Im9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIGlzICJhd2Vzb21lIgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhiY2YwNjBk
MWJkNjk0NWIwODkxNmViYTE1MjlhNTU4ZmU2YjJkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGlubGlu
ZWQgbW9kdWxlLicpOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNs
eS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Rl
YnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiPgoraW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1p
bmxpbmUtc2ltcGxlLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9k
dWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dp
bmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVv
ZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBv
cnRlZENvY29hLnRhc3RlKCkiLCAiYXdlc29tZSIpOworZmluaXNoSlNUZXN0KCk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxv
YWQtZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NjI2NjgwMmRhNTdjNzU4Y2UzZTRh
MmYzMWQ3ODkwZDBlNWI3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgbW9k
dWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBhbiBpbmxp
bmVkIG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQt
d2l0aC1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2
ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGEyZjliOTk2MTZmZjQ3MGFl
ZTJhNDVlNzJiYmRhNmVmYWNkNDA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACitUZXN0IHNjcmlwdC5vbmxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFn
IHdpdGggc3JjIGxvYWRzIGFuZCBleGVjdXRlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGEgbW9kdWxlIHdp
dGggc3JjIGF0dHJpYnV0ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQt
ZXZlbnQtd2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVu
dC13aXRoLXNyYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NGE0YTMwNzBhOTZlNmRhY2JkOGI3NDZhNzdj
MDU3YTQyYzU2YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWxvYWQtZXZlbnQtd2l0aC1zcmMuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25sb2FkIHdpbGwg
YmUgZmlyZWQgd2hlbiB0aGUgbW9kdWxlIHRhZyB3aXRoIHNyYyBsb2FkcyBhbmQgZXhlY3V0ZXMu
Jyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0
KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbG9hZC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJiOGM4MDlmMmQ0NWNkM2YzMTc4OWFmZTJkZjdiMzBkY2Ux
ZjQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1l
dmVudC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiB0YWdz
LicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
Jyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVz
dCgpIj4KK2RlYnVnKCdFeGVjdXRpbmcgYW4gaW5saW5lZCBtb2R1bGUuJyk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MWFiNDlkMTQ5NzYyNGRmMjJlMDM0Nzk3YjM5YWE4ZWM4Njk0ZWNjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVy
ZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKzIg
ZGlmZmVyZW50IG1vZHVsZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxl
IGZyb20gYSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgdGFnCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRo
aXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZl
cmVudC1lbnRyeS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2Ft
ZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI1ZDUxZTJiNmNlYTg2MTdiYWNmMGM0MGUzMzdlOTA5YTFkMzFhMzgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCcyIGRpZmZlcmVudCBtb2R1
bGUgdGFnIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHRoZSBzYW1lIG1vZHVsZSBmcm9tIGEgZHluYW1p
Y2FsbHkgZ2VuZXJhdGVkIHRhZycpOworZGVidWcoJ0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVm
aW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVy
ZS4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgInNjcmlwdC10
ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5q
cyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsKK3ZhciBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitlbGVtZW50LnR5cGUgPSAibW9kdWxlIjsKK2Vs
ZW1lbnQuaW5uZXJUZXh0ID0gInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1m
cm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyI7CitlbGVtZW50Lm9uZXJyb3IgPSBmaW5pc2hK
U1Rlc3QoKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJl
bnQtZW50cnktcG9pbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZjk4ZmNjYjZmYWZhMDY0
NDdlMzAzMmVmMDZkOTgyMDI3ZjI1MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2ls
bCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitDdXJyZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRo
aXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuCitNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4KK0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZl
cmVudC1lbnRyeS1wb2ludC5qcy4KK0V4ZWN1dGluZyB0aGUgbW9kdWxlLgorRXhlY3V0aW5nIHRo
ZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9k
dWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MDZkNGUwYjYzY2RjMDEyNzQxMzNiZWZkOTM4NDQyNTU1NThiMTg3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxl
LWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1vZHVs
ZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlJyk7CitkZWJ1ZygnQ3Vy
cmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNob3Vs
ZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQg
YXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9k
dWxlIj4KK2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3Qo
KSI+CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRp
ZmZlcmVudC1lbnRyeS1wb2ludC5qcyIKK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4nKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYzOGJhM2MyZTc5OTc3ZTJjOWY3OTM0ODA5NzM2ZmQ5ODM3ZDcyZjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJub3QtZm91bmQuanMiLiBF
eHBlY3RlZCAnZnJvbScgYmVmb3JlIGltcG9ydGVkIG1vZHVsZSBuYW1lLgorVGVzdCBzY3JpcHQu
b25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUg
aW1wb3J0IGRlY2xhcmF0aW9uIGluIHRoZSBpbmxpbmVkIG1vZHVsZSBpcyBub3QgZm91bmQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc0ODc4NzUwMWExMjkyNzY4MTA5MTg3OTA3YWZjNDdkZmI2ZDI4OTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ug
c3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGRlcGVuZGVudCBtb2R1
bGUgaXMgbm90IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9y
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRlZjM5ODY4NWFlMDVhMTFjZThhMWUwYjIyMDk4ZTk4NTMxZDYy
OTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3Vu
ZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2NyaXB0
Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgdGhl
IGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVsZSBpcyBub3QgZm91bmQu
Jyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUi
IHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMt
YW5kLWltcG9ydC5qcyIgb25lcnJvcj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iODBkMTVkZmU2ZDA5YmZjNmI4NTgzYTQ4ZGVjNmRjYjFiNWIxNDE0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0
aC1zcmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Ig
d2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQgYnkgInNyYyIgaXMgbm90
IGZvdW5kLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQt
ZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90
LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhNDdmNjEwNjlh
ZmVjYmNiMzhiMGE5NTc1NjI1Y2U4MmRmNDgxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLmh0bWwKQEAg
LTAsMCArMSwyMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBz
cGVjaWZpZWQgYnkgInNyYyIgaXMgbm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhl
Y3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1
ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sK
KyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Im5vdC1mb3VuZC5qcyIgb25lcnJv
cj0ib25FcnJvcigpIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjYjU5NGM2NDY4MzhlNGMzNWUzNzU2MWY2ZGNlM2Q4Mzc3MGI3NzEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5o
dG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVz
b3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGlubGluZWQg
bW9kdWxlIGlzIG5vdCBmb3VuZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5j
aHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBp
cyBub3QgZXhlY3V0ZWQgeWV0LicpOworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25lcnJvcj0ib25FcnJvcigpIj4KK2ltcG9ydCBmcm9tICJu
b3QtZm91bmQuanMiOwordGVzdEZhaWxlZCgnZXhlY3V0ZWQnKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHlu
YW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWlj
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDhiMDA2MjQ5MGVjNzIyOTVjZmY1MDYxYTA4Mzll
NDAwMjBjZDhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1z
cmMtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgd2l0
aCAic3JjIiBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1
bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4g
dGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQi
CitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29j
b2EudGFzdGUoKSBpcyAibmljZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNy
Yy1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzg0ZmY0MjY0Zjk4MWZlOTY0OWVkM2E3MjFiMWNmYTRmYTVlOTFjZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMu
aHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LicpOworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICAgIGVsZW1lbnQudHlwZSA9ICdtb2R1bGUnOwor
ICAgIGVsZW1lbnQuc3JjID0gJy4vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcyc7
CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK30oKSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNy
Yy1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkOGIwMDYyNDkwZWM3MjI5NWNmZjUw
NjFhMDgzOWU0MDAyMGNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLXNyYy1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgbW9k
dWxlIHdpdGggInNyYyIgYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZp
bmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5k
ZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBv
cnRlZENvY29hLnRhc3RlKCkgaXMgIm5pY2UiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1zcmMtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1w
bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZjczYjBjNTRhMjVhNGY3NmMxNGEzYjVkYzMxNzNmZTg5M2Ni
M2NkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2lt
cGxlLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIHdpdGggInNyYyIgYXR0cmlidXRlLicpOworCisv
LyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RlYnVnKCdNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0i
Li9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUt
YmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwt
ZmlyZS1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYThkOTcwOGRiM2UwNWM0
YjAxMDNiZTdkY2ViMGMwMDcxMTc1Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAorVGVzdCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1v
ZHVsZSB0YWcgd2l0aCBzcmMgaXMgcHJlcGFyZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZmYxNjUz
ZDA2YzA2ZTFkNzQxNzlkMDExMDAzNmUxNDlkODY5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsx
LDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVz
dCBzY3JpcHQuYmVmb3JlbG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0
aCBzcmMgaXMgcHJlcGFyZWQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hy
b25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9u
YmVmb3JlbG9hZD0iZmluaXNoSlNUZXN0KCkiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS13aWxs
LWZpcmUtYmVmb3JlbG9hZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJy
b3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJv
ci10aHJvdy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1
dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10
by1vbmVycm9yLXRocm93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2YzE1YWYyMTQyYjQ4MDI2MDJlYWQwMzcw
MGY4YmJlMDFiYzJiZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUt
c2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcwpAQCAtMCwwICsxLDIgQEAK
K2RlYnVnKCJFeGVjdXRpbmcgdGhlIGRlcGVuZGVudCBtb2R1bGUiKTsKK3Rocm93IG5ldyBFcnJv
cigib3V0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXBy
b3BhZ2F0ZWQtdG8tb25lcnJvci5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUt
cHJvcGFnYXRlZC10by1vbmVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YzdjYTQ3OWIyNTg4OWIwMGNh
MjRjZDViYmUzMzFkYWE2NWY3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1t
b2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcwpAQCAtMCwwICsxLDIgQEAK
K2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXRocm93LmpzIgordGVzdEZhaWxlZCgiZXhl
Y3V0ZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLTIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMz
YjlkMzUyYWVjNTdiMDYxZGRiZTAwYjdjZjk0ZWE1NzRhZWM0OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC0yLmpzCkBAIC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjUiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1v
cmRlci1taXhlZC1jYXBwdWNjaW5vLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjMxNDZmZDc2NmU1NWEwMmFlNzhiYWY5ZGQ2MzM5OGViODVhODkwZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1jYXBwdWNjaW5vLmpzCkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcyIKKworc2hvdWxkQmUoImNvdW50KysiLCAiMiIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1
OGQ3MzI0M2ZlZjMwYTBiNDk0OWRiYTdmYmY4NTM0ZWViYTlmNzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
bWl4ZWQtY29jb2EuanMKQEAgLTAsMCArMSwzIEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRpb24t
b3JkZXItbWl4ZWQtbWF0Y2hhLmpzIjsKKworc2hvdWxkQmUoImNvdW50KysiLCAiMSIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLW1hdGNoYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJlMTVk
N2NmMGNmZjRlYWExYTBiNWExZWU4M2RjY2UzMjRhMjVlOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhl
ZC1tYXRjaGEuanMKQEAgLTAsMCArMSBAQAorc2hvdWxkQmUoImNvdW50KysiLCAiMCIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0Mzg2ZmJiODY4MWNiZjdlNTlj
NDczNzYzN2U4N2JlMzhjZmY3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMKQEAgLTAsMCAr
MSw0IEBACitpbXBvcnQgIi4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcyIK
K2ltcG9ydCAiLi9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanMiCisK
K3Nob3VsZEJlKCJjb3VudCsrIiwgIjMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQz
NjBhN2JmZTdlMDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpz
CkBAIC0wLDAgKzEsNSBAQAorZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29jb2EgeworICAgIHRhc3Rl
KCkgeworICAgICAgICByZXR1cm4gImF3ZXNvbWUiOworICAgIH0KK307CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2ltcGxlLmpzIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yNDM2MGE3YmZlN2UwNWEwY2IyNTM4NDEzNjdlNzFkYzFlOTNiNWM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5s
aW5lLXNpbXBsZS5qcwpAQCAtMCwwICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29h
IHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1l
dmVudC13aXRoLXNyYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I4NzAyOTBkM2VjN2UwODBjMDVm
OWY2NjY4NDRjZDA2NzUyOWZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMKQEAgLTAsMCArMSBA
QAorZGVidWcoJ0V4ZWN1dGluZyBhIG1vZHVsZSB3aXRoIHNyYyBhdHRyaWJ1dGUuJyk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUt
bW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWFkNzdmODAwODA0MzgxYmY0ZjFlYWRiNTE3ZjU2MGYw
YzRlYjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcwpA
QCAtMCwwICsxIEBACitkZWJ1ZygnRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzLicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3Jj
LWFuZC1pbXBvcnQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YzFiNDcxNDgxMzhhMGVjNDUyMmMyMjcyMzNhM2M3NDEzMzcxMjk5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZvdW5kLWVycm9y
LWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMKQEAgLTAsMCArMSBAQAoraW1wb3J0ICJub3Qt
Zm91bmQuanMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1keW5hbWljLWNvY29hLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3OTU5MmRjNTEzY2Yy
NTk4NDFmZjlkNDYzOTA0NTEyYjBlY2I3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpAQCAtMCww
ICsxLDcgQEAKK2NsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJu
aWNlIjsKKyAgICB9Cit9CisKK2V4cG9ydCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNTFhN2JlNmI0ZjEyOTNhZjU5Njg2ZmUzZTU3ODAxZDJlMDk2YzM1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFt
aWMuanMKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNyYy1k
eW5hbWljLWNvY29hLmpzIjsKK3ZhciBjb2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9k
dWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dp
bmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVv
ZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBv
cnRlZENvY29hLnRhc3RlKCkiLCAibmljZSIpOworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLWNvY29h
LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1j
b2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQxZmY5ZDQ2MzkwNDUxMmIwZWNi
NzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9t
b2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcwpAQCAtMCwwICsxLDcgQEAKK2NsYXNzIENvY29hIHsK
KyAgICB0YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJuaWNlIjsKKyAgICB9Cit9CisKK2V4cG9y
dCBkZWZhdWx0IENvY29hOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ5Yzc3NGZkOWU3YTVjOWQxODU5
MjQwNDRlN2EyNzhhZDczMzcyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMKQEAgLTAsMCArMSwxMCBAQAoraW1w
b3J0IENvY29hIGZyb20gIi4vbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMiOwordmFyIGNvY29h
ID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGlu
IHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVv
ZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJuaWNlIik7
CitmaW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjBhMzkzODM1NjMzYWVjNTVlNWU1OTU3MjlkYTY5MTllOWMzMjAzYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZv
cmVsb2FkLmpzCkBAIC0wLDAgKzEgQEAKK3Rlc3RGYWlsZWQoImV4ZWN1dGVkIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287124</attachid>
            <date>2016-08-26 11:18:30 -0700</date>
            <delta_ts>2016-08-26 15:50:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20160826111626.patch</filename>
            <type>text/plain</type>
            <size>155597</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MjA5NTczNTZjZDk0Y2YzZTM4ZjA1YzJjMGFmNWZlZDA3Y2FmMmI0Li40ZjY5ZDM1NmUxYzZmNGVm
ZTBkMDg5OGFjYjc0OWJkNTk2YmIyZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxNi0wOC0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ1aWx0
aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qczoKKyAgICAgICAgKHJlcXVlc3RGZXRjaCk6Cisg
ICAgICAgIChyZXF1ZXN0VHJhbnNsYXRlKToKKyAgICAgICAgKHJlcXVlc3RJbnN0YW50aWF0ZSk6
CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyk6CisgICAgICAgIChyZXF1ZXN0
SW5zdGFudGlhdGVBbGwpOgorICAgICAgICAocmVxdWVzdExpbmspOgorICAgICAgICAobW9kdWxl
RXZhbHVhdGlvbik6CisgICAgICAgIChwcm92aWRlKToKKyAgICAgICAgKGxvYWRBbmRFdmFsdWF0
ZU1vZHVsZSk6CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcy4pOiBEZWxldGVk
LgorICAgICAgICAocmVxdWVzdFJlYWR5KTogRGVsZXRlZC4KKyAgICAgICAgKGxpbmspOiBEZWxl
dGVkLgorICAgICAgICAobG9hZE1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChsaW5rQW5kRXZh
bHVhdGVNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9i
YWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6bG9hZE1v
ZHVsZSk6CisgICAgICAgIChKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
cnVudGltZS9Db21wbGV0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoSlNDOjpK
U01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNN
b2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6
bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OnJl
c29sdmUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAo
SlNDOjpKU01vZHVsZUxvYWRlcjo6dHJhbnNsYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVM
b2FkZXI6Omluc3RhbnRpYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogcnVu
dGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJQcm90b3R5cGVSZXNvbHZlKToKKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyUHJvdG90eXBl
RmV0Y2gpOgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVUcmFuc2xhdGUpOgor
ICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZSk6CisgICAgICAg
IChKU0M6Om1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlKToKKyAgICAgICAgKiBydW50aW1l
L1N5bWJvbC5oOgorCiAyMDE2LTA4LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ01ha2UgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDcx
NzgyM2NjZTI3MDNhZWE3MWUzOWRkOGE1OWQ0ZjkwZGFhYTZjYmEuLmJkZTk5YzFiZjk3ZmY5MzJl
NTQzMGM1MmVhYzZiMjZkMjc3NGZjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDAgQEAKKzIw
MTYtMDgtMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGpzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3IuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRp
b24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbAorICAgICAgICAg
ICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbAorICAgICAgICAg
ICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sCisgICAgICAgICAgICAgICBq
cy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21v
ZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1
bGUtbG9hZC1ldmVudC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWxvYWQtc2Ft
ZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJy
b3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAgICAg
ICBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCisgICAgICAgICAgICAg
ICBqcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9t
b2R1bGUtc3JjLXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLXdpbGwt
ZmlyZS1iZWZvcmVsb2FkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVs
ZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1
bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVs
ZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVGZXRjaGVyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpKU01vZHVsZUZldGNoZXI6OkpTTW9kdWxlRmV0Y2hlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU01vZHVsZUZldGNoZXI6On5KU01vZHVsZUZldGNoZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNN
b2R1bGVGZXRjaGVyOjpydW4pOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVyOjpu
b3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVGZXRjaGVyLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmgu
CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUZldGNoZXI6OmNhY2hlZFNjcmlwdCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2R1bGVHcmFwaDo6SlNNb2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpK
U01vZHVsZUdyYXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVH
cmFwaDo6bm90aWZ5RXJyb3JlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpl
dmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpub3RpZnlFdmFsdWF0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6bG9hZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5oLgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVH
cmFwaDo6ZWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjptb2R1bGVL
ZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6d2Vha0VsZW1lbnRQdHIpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6ZXJyb3JPY2N1cnJlZCk6CisgICAgICAg
IChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6
OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6OmZldGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU01vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5X
b3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1
bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdENvbnRyb2xsZXI6OmluaXRKU01vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6Om1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRv
bS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmRl
dGVybWluZVNjcmlwdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cHJl
cGFyZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6ZXhlY3V0ZVNjcmlwdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpsb2FkTW9kdWxlKToKKyAgICAgICAgKiBk
b20vU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6bW9k
dWxlR3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c2NyaXB0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpjYWNoZWRTY3JpcHQpOiBEZWxldGVk
LgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5l
cjo6cXVldWVKU01vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6bm90aWZ5SlNNb2R1bGVHcmFwaFJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5o
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6CisK
IDIwMTYtMDgtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgRHJhZ2dpbmcgYWdhaW5zdCB0aGUgZW5kIG9mIHRoZSBpbmxpbmUgbWVkaWEgc2NydWJi
ZXIgY2F1c2VzIHRoZSBtZWRpYSBzY3J1YmJlciB0byBoaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qcwppbmRleCA2
YTNiYzgyNDMwZWYxOGFiYWU2MzRkMGYxMmU2MjBmYmNlMDliMzMyLi44NzY0MzQwOGRmYjdkZjA0
OWM5NzU0ZTE2OGEzMzljMTlmYzliOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuanMKQEAgLTIyMyw3ICsyMjMs
NyBAQCBmdW5jdGlvbiBpbnN0YW50aWF0aW9uKHJlc3VsdCwgc291cmNlLCBlbnRyeSkKIAogLy8g
TG9hZGVyLgogCi1mdW5jdGlvbiByZXF1ZXN0RmV0Y2goa2V5KQorZnVuY3Rpb24gcmVxdWVzdEZl
dGNoKGtleSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9s
b2FkZXIvI3JlcXVlc3QtZmV0Y2gKIApAQCAtMjM5LDIzICsyMzksMjEgQEAgZnVuY3Rpb24gcmVx
dWVzdEZldGNoKGtleSkKICAgICBpZiAoZW50cnkuZmV0Y2gpCiAgICAgICAgIHJldHVybiBlbnRy
eS5mZXRjaDsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotCiAgICAgLy8gSG9vayBwb2ludC4K
ICAgICAvLyAyLiBMb2FkZXIuZmV0Y2gKICAgICAvLyAgICAgaHR0cHM6Ly93aGF0d2cuZ2l0aHVi
LmlvL2xvYWRlci8jYnJvd3Nlci1mZXRjaAogICAgIC8vICAgICBUYWtlIHRoZSBrZXkgYW5kIGZl
dGNoIHRoZSByZXNvdXJjZSBhY3R1YWxseS4KICAgICAvLyAgICAgRm9yIGV4YW1wbGUsIEphdmFT
Y3JpcHRDb3JlIHNoZWxsIGNhbiBwcm92aWRlIHRoZSBob29rIGZldGNoaW5nIHRoZSByZXNvdXJj
ZQogICAgIC8vICAgICBmcm9tIHRoZSBsb2NhbCBmaWxlIHN5c3RlbS4KLSAgICB2YXIgZmV0Y2hQ
cm9taXNlID0gdGhpcy5mZXRjaChrZXkpLnRoZW4oZnVuY3Rpb24gKHBheWxvYWQpIHsKLSAgICAg
ICAgbG9hZGVyLnNldFN0YXRlVG9NYXgoZW50cnksIEBNb2R1bGVUcmFuc2xhdGUpOworICAgIHZh
ciBmZXRjaFByb21pc2UgPSB0aGlzLmZldGNoKGtleSwgaW5pdGlhdG9yKS50aGVuKChwYXlsb2Fk
KSA9PiB7CisgICAgICAgIHRoaXMuc2V0U3RhdGVUb01heChlbnRyeSwgQE1vZHVsZVRyYW5zbGF0
ZSk7CiAgICAgICAgIHJldHVybiBwYXlsb2FkOwogICAgIH0pOwogICAgIGVudHJ5LmZldGNoID0g
ZmV0Y2hQcm9taXNlOwogICAgIHJldHVybiBmZXRjaFByb21pc2U7CiB9CiAKLWZ1bmN0aW9uIHJl
cXVlc3RUcmFuc2xhdGUoa2V5KQorZnVuY3Rpb24gcmVxdWVzdFRyYW5zbGF0ZShrZXksIGluaXRp
YXRvcikKIHsKICAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1ZXN0
LXRyYW5zbGF0ZQogCkBAIC0yNzEsMTUgKzI2OSwxNCBAQCBmdW5jdGlvbiByZXF1ZXN0VHJhbnNs
YXRlKGtleSkKICAgICBpZiAoZW50cnkudHJhbnNsYXRlKQogICAgICAgICByZXR1cm4gZW50cnku
dHJhbnNsYXRlOwogCi0gICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgdmFyIHRyYW5zbGF0ZVBy
b21pc2UgPSB0aGlzLnJlcXVlc3RGZXRjaChrZXkpLnRoZW4oZnVuY3Rpb24gKHBheWxvYWQpIHsK
KyAgICB2YXIgdHJhbnNsYXRlUHJvbWlzZSA9IHRoaXMucmVxdWVzdEZldGNoKGtleSwgaW5pdGlh
dG9yKS50aGVuKChwYXlsb2FkKSA9PiB7CiAgICAgICAgIC8vIEhvb2sgcG9pbnQuCiAgICAgICAg
IC8vIDMuIExvYWRlci50cmFuc2xhdGUKICAgICAgICAgLy8gICAgIGh0dHBzOi8vd2hhdHdnLmdp
dGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXItdHJhbnNsYXRlCiAgICAgICAgIC8vICAgICBUYWtlIHRo
ZSBrZXkgYW5kIHRoZSBmZXRjaGVkIHNvdXJjZSBjb2RlIGFuZCB0cmFuc2xhdGUgaXQgdG8gdGhl
IEVTNiBzb3VyY2UgY29kZS4KICAgICAgICAgLy8gICAgIFR5cGljYWxseSBpdCBpcyB1c2VkIGJ5
IHRoZSB0cmFuc3BpbGVycy4KLSAgICAgICAgcmV0dXJuIGxvYWRlci50cmFuc2xhdGUoa2V5LCBw
YXlsb2FkKS50aGVuKGZ1bmN0aW9uIChzb3VyY2UpIHsKLSAgICAgICAgICAgIGxvYWRlci5zZXRT
dGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlSW5zdGFudGlhdGUpOworICAgICAgICByZXR1cm4gdGhp
cy50cmFuc2xhdGUoa2V5LCBwYXlsb2FkLCBpbml0aWF0b3IpLnRoZW4oKHNvdXJjZSkgPT4gewor
ICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlSW5zdGFudGlhdGUp
OwogICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0y
ODcsNyArMjg0LDcgQEAgZnVuY3Rpb24gcmVxdWVzdFRyYW5zbGF0ZShrZXkpCiAgICAgcmV0dXJu
IHRyYW5zbGF0ZVByb21pc2U7CiB9CiAKLWZ1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZShrZXkp
CitmdW5jdGlvbiByZXF1ZXN0SW5zdGFudGlhdGUoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8g
aHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jcmVxdWVzdC1pbnN0YW50aWF0ZQogCkBA
IC0zMDMsOCArMzAwLDcgQEAgZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtleSkKICAgICBp
ZiAoZW50cnkuaW5zdGFudGlhdGUpCiAgICAgICAgIHJldHVybiBlbnRyeS5pbnN0YW50aWF0ZTsK
IAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHZhciBpbnN0YW50aWF0ZVByb21pc2UgPSB0
aGlzLnJlcXVlc3RUcmFuc2xhdGUoa2V5KS50aGVuKGZ1bmN0aW9uIChzb3VyY2UpIHsKKyAgICB2
YXIgaW5zdGFudGlhdGVQcm9taXNlID0gdGhpcy5yZXF1ZXN0VHJhbnNsYXRlKGtleSwgaW5pdGlh
dG9yKS50aGVuKChzb3VyY2UpID0+IHsKICAgICAgICAgLy8gSG9vayBwb2ludC4KICAgICAgICAg
Ly8gNC4gTG9hZGVyLmluc3RhbnRpYXRlCiAgICAgICAgIC8vICAgICBodHRwczovL3doYXR3Zy5n
aXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWluc3RhbnRpYXRlCkBAIC0zMTIsOCArMzA4LDggQEAg
ZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtleSkKICAgICAgICAgLy8gICAgIGJ5IHBhcnNp
bmcgdGhlIG1vZHVsZSBzb3VyY2UgY29kZS4KICAgICAgICAgLy8gICAgIEl0IGhhcyB0aGUgY2hh
bmNlIHRvIHByb3ZpZGUgdGhlIG9wdGlvbmFsIG1vZHVsZSBpbnN0YW5jZSB0aGF0IGlzIGRpZmZl
cmVudCBmcm9tCiAgICAgICAgIC8vICAgICB0aGUgb3JkaW5hcnkgb25lLgotICAgICAgICByZXR1
cm4gbG9hZGVyLmluc3RhbnRpYXRlKGtleSwgc291cmNlKS50aGVuKGZ1bmN0aW9uIChvcHRpb25h
bEluc3RhbmNlKSB7Ci0gICAgICAgICAgICBsb2FkZXIuY29tbWl0SW5zdGFudGlhdGVkKGVudHJ5
LCBvcHRpb25hbEluc3RhbmNlLCBzb3VyY2UpOworICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW50
aWF0ZShrZXksIHNvdXJjZSwgaW5pdGlhdG9yKS50aGVuKChvcHRpb25hbEluc3RhbmNlKSA9PiB7
CisgICAgICAgICAgICB0aGlzLmNvbW1pdEluc3RhbnRpYXRlZChlbnRyeSwgb3B0aW9uYWxJbnN0
YW5jZSwgc291cmNlKTsKICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0zMjEsNyArMzE3LDcgQEAgZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtl
eSkKICAgICByZXR1cm4gaW5zdGFudGlhdGVQcm9taXNlOwogfQogCi1mdW5jdGlvbiByZXF1ZXN0
UmVzb2x2ZURlcGVuZGVuY2llcyhrZXkpCitmdW5jdGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVuZGVu
Y2llcyhrZXksIGluaXRpYXRvcikKIHsKICAgICAvLyBGSVhNRTogSW4gdGhlIHNwZWMsIGFmdGVy
IHJlcXVlc3RpbmcgaW5zdGFudGlhdGlvbiwgd2Ugd2lsbCByZXNvbHZlCiAgICAgLy8gdGhlIGRl
cGVuZGVuY2llcyB3aXRob3V0IGFueSBzdGF0dXMgY2hhbmdlLiBBcyBhIHJlc3VsdCwgd2hlbiB0
aGVyZQpAQCAtMzQ1LDggKzM0MSw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RSZXNvbHZlRGVwZW5kZW5j
aWVzKGtleSkKICAgICBpZiAoZW50cnkucmVzb2x2ZURlcGVuZGVuY2llcykKICAgICAgICAgcmV0
dXJuIGVudHJ5LnJlc29sdmVEZXBlbmRlbmNpZXM7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhpczsK
LSAgICB2YXIgcmVzb2x2ZURlcGVuZGVuY2llc1Byb21pc2UgPSB0aGlzLnJlcXVlc3RJbnN0YW50
aWF0ZShrZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgdmFyIHJlc29sdmVEZXBlbmRl
bmNpZXNQcm9taXNlID0gdGhpcy5yZXF1ZXN0SW5zdGFudGlhdGUoa2V5LCBpbml0aWF0b3IpLnRo
ZW4oKGVudHJ5KSA9PiB7CiAgICAgICAgIHZhciBkZXBMb2FkcyA9IFtdOwogICAgICAgICBmb3Ig
KHZhciBpID0gMCwgbGVuZ3RoID0gZW50cnkuZGVwZW5kZW5jaWVzLmxlbmd0aDsgaSA8IGxlbmd0
aDsgKytpKSB7CiAgICAgICAgICAgICBsZXQgcGFpciA9IGVudHJ5LmRlcGVuZGVuY2llc1tpXTsK
QEAgLTM1Niw4ICszNTEsOCBAQCBmdW5jdGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhr
ZXkpCiAgICAgICAgICAgICAvLyAgICAgaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8j
YnJvd3Nlci1yZXNvbHZlCiAgICAgICAgICAgICAvLyAgICAgVGFrZSB0aGUgbmFtZSBhbmQgcmVz
b2x2ZSBpdCB0byB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSBsb2NhdGlv
bi4KICAgICAgICAgICAgIC8vICAgICBGb3IgZXhhbXBsZSwgdGFrZSB0aGUgImpxdWVyeSIgYW5k
IHJldHVybiB0aGUgVVJMIGZvciB0aGUgcmVzb3VyY2UuCi0gICAgICAgICAgICB2YXIgcHJvbWlz
ZSA9IGxvYWRlci5yZXNvbHZlKHBhaXIua2V5LCBrZXkpLnRoZW4oZnVuY3Rpb24gKGRlcEtleSkg
ewotICAgICAgICAgICAgICAgIHZhciBkZXBFbnRyeSA9IGxvYWRlci5lbnN1cmVSZWdpc3RlcmVk
KGRlcEtleSk7CisgICAgICAgICAgICB2YXIgcHJvbWlzZSA9IHRoaXMucmVzb2x2ZShwYWlyLmtl
eSwga2V5LCBpbml0aWF0b3IpLnRoZW4oKGRlcEtleSkgPT4geworICAgICAgICAgICAgICAgIHZh
ciBkZXBFbnRyeSA9IHRoaXMuZW5zdXJlUmVnaXN0ZXJlZChkZXBLZXkpOwogCiAgICAgICAgICAg
ICAgICAgLy8gUmVjdXJzaXZlIHJlc29sdmluZy4gVGhlIGRlcGVuZGVuY2llcyBvZiB0aGlzIGVu
dHJ5IGlzIGJlaW5nIHJlc29sdmVkIG9yIGFscmVhZHkgcmVzb2x2ZWQuCiAgICAgICAgICAgICAg
ICAgLy8gU3RvcCB0cmFjaW5nIHRoZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCkBAIC0zNjksMTMg
KzM2NCwxMyBAQCBmdW5jdGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhrZXkpCiAgICAg
ICAgICAgICAgICAgLy8gcmVqZWN0ZWQgYnkgdGhlIFByb21pc2VzIHJ1bnRpbWUuIFNpbmNlIG9u
bHkgd2UgbmVlZCBpcyB0aGUgaW5zdGFudGlhdGVkIG1vZHVsZSwgaW5zdGVhZCBvZiB3YWl0aW5n
CiAgICAgICAgICAgICAgICAgLy8gdGhlIFJlc29sdmVEZXBlbmRlbmNpZXMgZm9yIHRoaXMgbW9k
dWxlLCB3ZSBqdXN0IHdhaXQgSW5zdGFudGlhdGUgZm9yIHRoaXMuCiAgICAgICAgICAgICAgICAg
aWYgKGRlcEVudHJ5LnJlc29sdmVEZXBlbmRlbmNpZXMpIHsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGRlcEVudHJ5Lmluc3RhbnRpYXRlLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBkZXBFbnRyeS5pbnN0YW50aWF0ZS50aGVuKChlbnRyeSkg
PT4gewogICAgICAgICAgICAgICAgICAgICAgICAgcGFpci52YWx1ZSA9IGVudHJ5Lm1vZHVsZTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxvYWRl
ci5yZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhkZXBLZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlc29sdmVEZXBlbmRlbmNp
ZXMoZGVwS2V5LCBpbml0aWF0b3IpLnRoZW4oKGVudHJ5KSA9PiB7CiAgICAgICAgICAgICAgICAg
ICAgIHBhaXIudmFsdWUgPSBlbnRyeS5tb2R1bGU7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBlbnRyeTsKICAgICAgICAgICAgICAgICB9KTsKQEAgLTM4Myw4ICszNzgsOCBAQCBmdW5jdGlv
biByZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhrZXkpCiAgICAgICAgICAgICBAcHV0QnlWYWxE
aXJlY3QoZGVwTG9hZHMsIGksIHByb21pc2UpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJu
IEBJbnRlcm5hbFByb21pc2UuaW50ZXJuYWxBbGwoZGVwTG9hZHMpLnRoZW4oZnVuY3Rpb24gKG1v
ZHVsZXMpIHsKLSAgICAgICAgICAgIGxvYWRlci5zZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxl
TGluayk7CisgICAgICAgIHJldHVybiBASW50ZXJuYWxQcm9taXNlLmludGVybmFsQWxsKGRlcExv
YWRzKS50aGVuKChtb2R1bGVzKSA9PiB7CisgICAgICAgICAgICB0aGlzLnNldFN0YXRlVG9NYXgo
ZW50cnksIEBNb2R1bGVMaW5rKTsKICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAg
fSk7CiAgICAgfSk7CkBAIC0zOTMsMTYgKzM4OCwxNiBAQCBmdW5jdGlvbiByZXF1ZXN0UmVzb2x2
ZURlcGVuZGVuY2llcyhrZXkpCiAgICAgcmV0dXJuIHJlc29sdmVEZXBlbmRlbmNpZXNQcm9taXNl
OwogfQogCi1mdW5jdGlvbiByZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5KQorZnVuY3Rpb24gcmVx
dWVzdEluc3RhbnRpYXRlQWxsKGtleSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hh
dHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtaW5zdGFudGlhdGUtYWxsCiAKICAgICAidXNl
IHN0cmljdCI7CiAKLSAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhr
ZXkpOworICAgIHJldHVybiB0aGlzLnJlcXVlc3RSZXNvbHZlRGVwZW5kZW5jaWVzKGtleSwgaW5p
dGlhdG9yKTsKIH0KIAotZnVuY3Rpb24gcmVxdWVzdExpbmsoa2V5KQorZnVuY3Rpb24gcmVxdWVz
dExpbmsoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlv
L2xvYWRlci8jcmVxdWVzdC1saW5rCiAKQEAgLTQxNSwyOCArNDEwLDI2IEBAIGZ1bmN0aW9uIHJl
cXVlc3RMaW5rKGtleSkKICAgICAgICAgcmV0dXJuIGRlZmVycmVkLkBwcm9taXNlOwogICAgIH0K
IAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHJldHVybiB0aGlzLnJlcXVlc3RJbnN0YW50
aWF0ZUFsbChrZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7Ci0gICAgICAgIGxvYWRlci5saW5r
KGVudHJ5KTsKKyAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5LCBpbml0
aWF0b3IpLnRoZW4oKGVudHJ5KSA9PiB7CisgICAgICAgIHRoaXMubGluayhlbnRyeSwgaW5pdGlh
dG9yKTsKICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAgIH0pOwogfQogCi1mdW5jdGlvbiByZXF1
ZXN0UmVhZHkoa2V5KQorZnVuY3Rpb24gcmVxdWVzdFJlYWR5KGtleSwgaW5pdGlhdG9yKQogewog
ICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtcmVhZHkKIAog
ICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHJldHVybiB0
aGlzLnJlcXVlc3RMaW5rKGtleSkudGhlbihmdW5jdGlvbiAoZW50cnkpIHsKLSAgICAgICAgbG9h
ZGVyLm1vZHVsZUV2YWx1YXRpb24oZW50cnkubW9kdWxlKTsKKyAgICByZXR1cm4gdGhpcy5yZXF1
ZXN0TGluayhrZXksIGluaXRpYXRvcikudGhlbigoZW50cnkpID0+IHsKKyAgICAgICAgdGhpcy5t
b2R1bGVFdmFsdWF0aW9uKGVudHJ5Lm1vZHVsZSwgaW5pdGlhdG9yKTsKICAgICB9KTsKIH0KIAog
Ly8gTGlua2luZyBzZW1hbnRpY3MuCiAKLWZ1bmN0aW9uIGxpbmsoZW50cnkpCitmdW5jdGlvbiBs
aW5rKGVudHJ5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlv
L2xvYWRlci8jbGluawogCkBAIC00NTYsMTUgKzQ0OSwxNSBAQCBmdW5jdGlvbiBsaW5rKGVudHJ5
KQogICAgIHZhciBkZXBlbmRlbmNpZXMgPSBlbnRyeS5kZXBlbmRlbmNpZXM7CiAgICAgZm9yICh2
YXIgaSA9IDAsIGxlbmd0aCA9IGRlcGVuZGVuY2llcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkg
ewogICAgICAgICB2YXIgcGFpciA9IGRlcGVuZGVuY2llc1tpXTsKLSAgICAgICAgdGhpcy5saW5r
KHBhaXIudmFsdWUucmVnaXN0cnlFbnRyeSk7CisgICAgICAgIHRoaXMubGluayhwYWlyLnZhbHVl
LnJlZ2lzdHJ5RW50cnksIGluaXRpYXRvcik7CiAgICAgfQogCi0gICAgdGhpcy5tb2R1bGVEZWNs
YXJhdGlvbkluc3RhbnRpYXRpb24oZW50cnkubW9kdWxlKTsKKyAgICB0aGlzLm1vZHVsZURlY2xh
cmF0aW9uSW5zdGFudGlhdGlvbihlbnRyeS5tb2R1bGUsIGluaXRpYXRvcik7CiB9CiAKIC8vIE1v
ZHVsZSBzZW1hbnRpY3MuCiAKLWZ1bmN0aW9uIG1vZHVsZUV2YWx1YXRpb24obW9kdWxlUmVjb3Jk
KQorZnVuY3Rpb24gbW9kdWxlRXZhbHVhdGlvbihtb2R1bGVSZWNvcmQsIGluaXRpYXRvcikKIHsK
ICAgICAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNz
ZWMtbW9kdWxlZXZhbHVhdGlvbgogCkBAIC00ODEsOSArNDc0LDkgQEAgZnVuY3Rpb24gbW9kdWxl
RXZhbHVhdGlvbihtb2R1bGVSZWNvcmQpCiAgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IGRl
cGVuZGVuY2llcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICB2YXIgcGFpciA9
IGRlcGVuZGVuY2llc1tpXTsKICAgICAgICAgdmFyIHJlcXVpcmVkTW9kdWxlUmVjb3JkID0gcGFp
ci52YWx1ZTsKLSAgICAgICAgdGhpcy5tb2R1bGVFdmFsdWF0aW9uKHJlcXVpcmVkTW9kdWxlUmVj
b3JkKTsKKyAgICAgICAgdGhpcy5tb2R1bGVFdmFsdWF0aW9uKHJlcXVpcmVkTW9kdWxlUmVjb3Jk
LCBpbml0aWF0b3IpOwogICAgIH0KLSAgICB0aGlzLmV2YWx1YXRlKGVudHJ5LmtleSwgbW9kdWxl
UmVjb3JkKTsKKyAgICB0aGlzLmV2YWx1YXRlKGVudHJ5LmtleSwgbW9kdWxlUmVjb3JkLCBpbml0
aWF0b3IpOwogfQogCiAvLyBBUElzIHRvIGNvbnRyb2wgdGhlIG1vZHVsZSBsb2FkZXIuCkBAIC01
MTQsOSArNTA3LDggQEAgZnVuY3Rpb24gcHJvdmlkZShrZXksIHN0YWdlLCB2YWx1ZSkKICAgICAg
ICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJSZXF1ZXN0ZWQgbW9kdWxlIGlzIGFscmVhZHkg
aW5zdGFudGlhdGVkLiIpOwogICAgICAgICB0aGlzLmZ1bGZpbGxGZXRjaChlbnRyeSwgQHVuZGVm
aW5lZCk7CiAgICAgICAgIHRoaXMuZnVsZmlsbFRyYW5zbGF0ZShlbnRyeSwgdmFsdWUpOwotICAg
ICAgICB2YXIgbG9hZGVyID0gdGhpczsKLSAgICAgICAgZW50cnkudHJhbnNsYXRlLnRoZW4oZnVu
Y3Rpb24gKHNvdXJjZSkgewotICAgICAgICAgICAgbG9hZGVyLmZ1bGZpbGxJbnN0YW50aWF0ZShl
bnRyeSwgdmFsdWUsIHNvdXJjZSk7CisgICAgICAgIGVudHJ5LnRyYW5zbGF0ZS50aGVuKChzb3Vy
Y2UpID0+IHsKKyAgICAgICAgICAgIHRoaXMuZnVsZmlsbEluc3RhbnRpYXRlKGVudHJ5LCB2YWx1
ZSwgc291cmNlKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01MjQs
MzkgKzUxNiwzNyBAQCBmdW5jdGlvbiBwcm92aWRlKGtleSwgc3RhZ2UsIHZhbHVlKQogICAgIHRo
cm93IG5ldyBAVHlwZUVycm9yKCJSZXF1ZXN0ZWQgbW9kdWxlIGlzIGFscmVhZHkgcmVhZHkgdG8g
YmUgZXhlY3V0ZWQuIik7CiB9CiAKLWZ1bmN0aW9uIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShtb2R1
bGVOYW1lLCByZWZlcnJlcikKK2Z1bmN0aW9uIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShtb2R1bGVO
YW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIHZh
ciBsb2FkZXIgPSB0aGlzOwogICAgIC8vIExvYWRlci5yZXNvbHZlIGhvb2sgcG9pbnQuCiAgICAg
Ly8gcmVzb2x2ZTogbW9kdWxlTmFtZSA9PiBQcm9taXNlKG1vZHVsZUtleSkKICAgICAvLyBUYWtl
IHRoZSBuYW1lIGFuZCByZXNvbHZlIGl0IHRvIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhl
IHJlc291cmNlIGxvY2F0aW9uLgogICAgIC8vIEZvciBleGFtcGxlLCB0YWtlIHRoZSAianF1ZXJ5
IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJjZS4KLSAgICByZXR1cm4gdGhpcy5y
ZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyKS50aGVuKGZ1bmN0aW9uIChrZXkpIHsKLSAgICAg
ICAgcmV0dXJuIGxvYWRlci5yZXF1ZXN0UmVhZHkoa2V5KTsKKyAgICByZXR1cm4gdGhpcy5yZXNv
bHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpLnRoZW4oKGtleSkgPT4geworICAg
ICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVhZHkoa2V5LCBpbml0aWF0b3IpOwogICAgIH0pOwog
fQogCi1mdW5jdGlvbiBsb2FkTW9kdWxlKG1vZHVsZU5hbWUsIHJlZmVycmVyKQorZnVuY3Rpb24g
bG9hZE1vZHVsZShtb2R1bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKQogewogICAgICJ1c2Ug
c3RyaWN0IjsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwogICAgIC8vIExvYWRlci5yZXNvbHZl
IGhvb2sgcG9pbnQuCiAgICAgLy8gcmVzb2x2ZTogbW9kdWxlTmFtZSA9PiBQcm9taXNlKG1vZHVs
ZUtleSkKICAgICAvLyBUYWtlIHRoZSBuYW1lIGFuZCByZXNvbHZlIGl0IHRvIHRoZSB1bmlxdWUg
aWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIGxvY2F0aW9uLgogICAgIC8vIEZvciBleGFtcGxl
LCB0YWtlIHRoZSAianF1ZXJ5IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJjZS4K
LSAgICByZXR1cm4gdGhpcy5yZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyKS50aGVuKGZ1bmN0
aW9uIChrZXkpIHsKLSAgICAgICAgcmV0dXJuIGxvYWRlci5yZXF1ZXN0SW5zdGFudGlhdGVBbGwo
a2V5KTsKLSAgICB9KS50aGVuKGZ1bmN0aW9uIChlbnRyeSkgeworICAgIHJldHVybiB0aGlzLnJl
c29sdmUobW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcikudGhlbigoa2V5KSA9PiB7Cisg
ICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RJbnN0YW50aWF0ZUFsbChrZXksIGluaXRpYXRvcik7
CisgICAgfSkudGhlbigoZW50cnkpID0+IHsKICAgICAgICAgcmV0dXJuIGVudHJ5LmtleTsKICAg
ICB9KTsKIH0KIAotZnVuY3Rpb24gbGlua0FuZEV2YWx1YXRlTW9kdWxlKGtleSkKK2Z1bmN0aW9u
IGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShrZXksIGluaXRpYXRvcikKIHsKICAgICAidXNlIHN0cmlj
dCI7CiAKLSAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVhZHkoa2V5KTsKKyAgICByZXR1cm4gdGhp
cy5yZXF1ZXN0UmVhZHkoa2V5LCBpbml0aWF0b3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRl
eCAyYjIyZTQwMDQ4YTE3YTE1ZDA0NGMwOWE5MDNiYTU0MGI4MzExZmRkLi4xNjI2ZTc1ZDQxMjI0
YzEzNjIzMDY0MTgzNmE5ZTlkZDFhMDQ5Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtODg1
LDggKzg4NSw4IEBAIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7
CiAgICAgICAgIHB1dERpcmVjdCh2bSwgaWRlbnRpZmllciwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCBhcmd1bWVudHMsIGlkZW50aWZpZXIuc3RyaW5nKCksIGZ1bmN0aW9uLCBOb0ludHJp
bnNpYywgZnVuY3Rpb24pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgSlNJbnRlcm5hbFByb21pc2Uq
IG1vZHVsZUxvYWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVs
ZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0ludGVybmFsUHJvbWlz
ZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVs
ZUxvYWRlciosIEpTVmFsdWUpOworICAgIHN0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogbW9kdWxl
TG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVy
KiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CisgICAgc3RhdGljIEpTSW50ZXJuYWxQcm9t
aXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9k
dWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiB9OwogCiBjb25zdCBDbGFzc0luZm8gR2xv
YmFsT2JqZWN0OjpzX2luZm8gPSB7ICJnbG9iYWwiLCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbywg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShHbG9iYWxPYmplY3QpIH07CkBAIC0xMDE3LDcg
KzEwMTcsNyBAQCBzdGF0aWMgU3RyaW5nIHJlc29sdmVQYXRoKGNvbnN0IERpcmVjdG9yeU5hbWUm
IGRpcmVjdG9yeU5hbWUsIGNvbnN0IE1vZHVsZU5hbWUmCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9h
ZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMs
IEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSBrZXlWYWx1ZSwgSlNWYWx1ZSByZWZlcnJlclZhbHVl
KQorSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlTG9h
ZGVyKiwgSlNWYWx1ZSBrZXlWYWx1ZSwgSlNWYWx1ZSByZWZlcnJlclZhbHVlLCBKU1ZhbHVlKQog
ewogICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgY29uc3QgSWRl
bnRpZmllciBrZXkgPSBrZXlWYWx1ZS50b1Byb3BlcnR5S2V5KGV4ZWMpOwpAQCAtMTEyMiw3ICsx
MTIyLDcgQEAgc3RhdGljIGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUsIFZlY3RvcjxjaGFyPiYKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1KU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlTG9hZGVy
KiwgSlNWYWx1ZSBrZXkpCitKU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVM
b2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMs
IEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSBrZXksIEpTVmFsdWUpCiB7CiAgICAgSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICBTdHJpbmcgbW9kdWxlS2V5ID0ga2V5LnRv
V1RGU3RyaW5nKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tcGxldGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0
aW9uLmNwcAppbmRleCBjNTg2OTU2Njc0N2EyN2QxMDllNWEzNjJmZjcyMjNhZTdmYTY2Yzk4Li5l
OTdmMTIxNzg1NTNmY2Y5ODVjMThiNWEwY2Q2NmNmZGU4MGZhNGNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcApAQCAtMTU1LDI2ICsxNTUsMjYgQEAg
c3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiByZWplY3RQcm9taXNlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2UoKTsK
IH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoY29u
c3QgSlNMb2NrSG9sZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitzdGF0aWMgSlNJ
bnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShjb25zdCBKU0xvY2tIb2xkZXIm
LCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
bW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7Ci0gICAg
cmV0dXJuIGdsb2JhbE9iamVjdC0+bW9kdWxlTG9hZGVyKCktPmxvYWRBbmRFdmFsdWF0ZU1vZHVs
ZShleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+
bW9kdWxlTG9hZGVyKCktPmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBtb2R1bGVOYW1lLCBy
ZWZlcnJlciwgaW5pdGlhdG9yKTsKIH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2Fk
QW5kRXZhbHVhdGVNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVyJiBsb2NrLCBFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG1vZHVs
ZU5hbWUpCitzdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShj
b25zdCBKU0xvY2tIb2xkZXImIGxvY2ssIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0
aWF0b3IpCiB7Ci0gICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShsb2NrLCBleGVjLCBn
bG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxlTmFtZSks
IGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUobG9jaywg
ZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMtPnZtKCksIG1vZHVs
ZU5hbWUpLCBqc1VuZGVmaW5lZCgpLCBpbml0aWF0b3IpOwogfQogCi1KU0ludGVybmFsUHJvbWlz
ZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBt
b2R1bGVOYW1lKQorSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3Ip
CiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhl
Yy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJp
bmdUYWJsZSgpKTsKICAgICBSRUxFQVNFX0FTU0VSVCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1
c3koKSk7CiAKLSAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxvY2ssIGV4ZWMsIGV4
ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBt
b2R1bGVOYW1lKSk7CisgICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShsb2NrLCBleGVj
LCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhl
YywgbW9kdWxlTmFtZSksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBsb2Fk
QW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3Vy
Y2UpCitKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAg
ICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT52bSgp
LmF0b21pY1N0cmluZ1RhYmxlKCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1RhYmxl
KCkpOwpAQCAtMTg5LDI5ICsxODksMjkgQEAgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFs
dWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXIKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZWplY3RQcm9taXNlKGV4
ZWMsIGdsb2JhbE9iamVjdCk7CiAKLSAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxv
Y2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4g
bG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBqc1Vu
ZGVmaW5lZCgpLCBpbml0aWF0b3IpOwogfQogCi1zdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxv
YWRNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIp
CitzdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVy
JiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKQogewotICAg
IHJldHVybiBnbG9iYWxPYmplY3QtPm1vZHVsZUxvYWRlcigpLT5sb2FkTW9kdWxlKGV4ZWMsIG1v
ZHVsZU5hbWUsIHJlZmVycmVyKTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2Fk
ZXIoKS0+bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKTsK
IH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKGNvbnN0IEpTTG9ja0hv
bGRlciYgbG9jaywgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1lKQorc3RhdGljIEpTSW50ZXJuYWxQcm9taXNl
KiBsb2FkTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYgbG9jaywgRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1l
LCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKLSAgICByZXR1cm4gbG9hZE1vZHVsZShsb2NrLCBleGVj
LCBnbG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxlTmFt
ZSksIGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBsb2FkTW9kdWxlKGxvY2ssIGV4ZWMsIGds
b2JhbE9iamVjdCwgaWRlbnRpZmllclRvSlNWYWx1ZShleGVjLT52bSgpLCBtb2R1bGVOYW1lKSwg
anNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIGxvYWRN
b2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCitKU0ludGVy
bmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9k
dWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhl
Yyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgpID09
IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKICAgICBSRUxFQVNFX0FTU0VS
VCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1c3koKSk7CiAKLSAgICByZXR1cm4gbG9hZE1vZHVs
ZShsb2NrLCBleGVjLCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoZXhlYywgbW9kdWxlTmFtZSkpOworICAgIHJldHVybiBsb2FkTW9kdWxlKGxvY2ss
IGV4ZWMsIGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhleGVjLCBtb2R1bGVOYW1lKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2Uq
IGxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCitK
U0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2soZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJs
ZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKQEAgLTIyNiwxNyAr
MjI2LDE3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgU291cmNlQ29kZSYgc291cmNlKQogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
ICAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2UoZXhlYywgZ2xvYmFsT2JqZWN0KTsKIAotICAg
IHJldHVybiBsb2FkTW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBqc1VuZGVm
aW5lZCgpKTsKKyAgICByZXR1cm4gbG9hZE1vZHVsZShsb2NrLCBleGVjLCBnbG9iYWxPYmplY3Qs
IGtleSwganNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2Uq
IGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IG1vZHVsZUtleSkKK0pTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXksIEpTVmFsdWUgaW5pdGlh
dG9yKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVBU0VfQVNTRVJU
KGV4ZWMtPnZtKCkuYXRvbWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRvbWlj
U3RyaW5nVGFibGUoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWV4ZWMtPnZtKCkuaXNDb2xsZWN0
b3JCdXN5KCkpOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPnZt
RW50cnlHbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVMb2Fk
ZXIoKS0+bGlua0FuZEV2YWx1YXRlTW9kdWxlKGV4ZWMsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhl
Yy0+dm0oKSwgbW9kdWxlS2V5KSk7CisgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+bW9kdWxlTG9h
ZGVyKCktPmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4
ZWMtPnZtKCksIG1vZHVsZUtleSksIGluaXRpYXRvcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCmluZGV4IGYxMzFj
YzVhZTU3MWNiNmJlMGI2ZDNjYjAxNWU4OTkxYTIyNDBiNTcuLmIzNDEwODA4NmY3MDE2NDAwNGM0
NzFhOWVhM2FlZTE1YTM4ZDUzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbXBsZXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21wbGV0aW9uLmgKQEAgLTU4LDE1ICs1OCwxNSBAQCBpbmxpbmUgSlNWYWx1ZSBwcm9maWxlZEV2
YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYywgUHJvZmlsaW5nUmVhc29uIHJlYXNvbiwgY29uc3QgUwog
SlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihFeGVj
U3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3QqIHNjb3BlRXh0ZW5zaW9uLCBOYWtl
ZFB0cjxFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlvbik7CiAKIC8vIExvYWQgdGhlIG1vZHVs
ZSBzb3VyY2UgYW5kIGV2YWx1YXRlIGl0LgotSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFBy
b21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIG1v
ZHVsZU5hbWUpOwotSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRF
dmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CitKU19FWFBPUlRf
UFJJVkFURSBKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0
ZSosIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IgPSBqc1VuZGVm
aW5lZCgpKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZh
bHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTVmFsdWUgaW5pdGlh
dG9yID0ganNVbmRlZmluZWQoKSk7CiAKIC8vIEZldGNoIHRoZSBtb2R1bGUgc291cmNlLCBhbmQg
aW5zdGFudGlhdGUgdGhlIG1vZHVsZSByZWNvcmQuCi1KU19FWFBPUlRfUFJJVkFURSBKU0ludGVy
bmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5h
bWUpOwotSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhl
Y1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5h
bFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1l
LCBKU1ZhbHVlIGluaXRpYXRvciA9IGpzVW5kZWZpbmVkKCkpOworSlNfRVhQT1JUX1BSSVZBVEUg
SlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29k
ZSYsIEpTVmFsdWUgaW5pdGlhdG9yID0ganNVbmRlZmluZWQoKSk7CiAKIC8vIExpbmsgYW5kIGV2
YWx1YXRlIHRoZSBhbHJlYWR5IGxpbmtlZCBtb2R1bGUuCi1KU19FWFBPUlRfUFJJVkFURSBKU0lu
dGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIG1vZHVsZUtleSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlz
ZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG1v
ZHVsZUtleSwgSlNWYWx1ZSBpbml0aWF0b3IgPSBqc1VuZGVmaW5lZCgpKTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCmluZGV4IGY1NjcxMTYwZjJjZjhjMGMzNmNkNTc4MzZiZTJjNDRiMGVmMzlkOWUuLjc4
MzdhYzZhZGZhOGZhZGJjOWJjZDA0MWE0MDdmOGRhOGFkZDAwODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTY2LDE5ICsxNjYsMTkg
QEAgc3RydWN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHsKICAgICB0eXBlZGVmIGJvb2wgKCpT
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0UHRyKShjb25zdCBKU0dsb2JhbE9iamVj
dCopOwogICAgIFNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXRQdHIgc2hvdWxkSW50
ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dDsKIAotICAgIHR5cGVkZWYgSlNJbnRlcm5hbFByb21p
c2UqICgqTW9kdWxlTG9hZGVyUmVzb2x2ZVB0cikoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUq
LCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOworICAgIHR5cGVkZWYgSlNJbnRl
cm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyUmVzb2x2ZVB0cikoSlNHbG9iYWxPYmplY3QqLCBF
eGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUpOwog
ICAgIE1vZHVsZUxvYWRlclJlc29sdmVQdHIgbW9kdWxlTG9hZGVyUmVzb2x2ZTsKIAotICAgIHR5
cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyRmV0Y2hQdHIpKEpTR2xvYmFs
T2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlKTsKKyAgICB0eXBl
ZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlckZldGNoUHRyKShKU0dsb2JhbE9i
amVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiAg
ICAgTW9kdWxlTG9hZGVyRmV0Y2hQdHIgbW9kdWxlTG9hZGVyRmV0Y2g7CiAKLSAgICB0eXBlZGVm
IEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlclRyYW5zbGF0ZVB0cikoSlNHbG9iYWxP
YmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOwor
ICAgIHR5cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyVHJhbnNsYXRlUHRy
KShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwg
SlNWYWx1ZSwgSlNWYWx1ZSk7CiAgICAgTW9kdWxlTG9hZGVyVHJhbnNsYXRlUHRyIG1vZHVsZUxv
YWRlclRyYW5zbGF0ZTsKIAotICAgIHR5cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxl
TG9hZGVySW5zdGFudGlhdGVQdHIpKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1
bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKKyAgICB0eXBlZGVmIEpTSW50ZXJuYWxQcm9t
aXNlKiAoKk1vZHVsZUxvYWRlckluc3RhbnRpYXRlUHRyKShKU0dsb2JhbE9iamVjdCosIEV4ZWNT
dGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiAgICAg
TW9kdWxlTG9hZGVySW5zdGFudGlhdGVQdHIgbW9kdWxlTG9hZGVySW5zdGFudGlhdGU7CiAKLSAg
ICB0eXBlZGVmIEpTVmFsdWUgKCpNb2R1bGVMb2FkZXJFdmFsdWF0ZVB0cikoSlNHbG9iYWxPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOworICAg
IHR5cGVkZWYgSlNWYWx1ZSAoKk1vZHVsZUxvYWRlckV2YWx1YXRlUHRyKShKU0dsb2JhbE9iamVj
dCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1
ZSk7CiAgICAgTW9kdWxlTG9hZGVyRXZhbHVhdGVQdHIgbW9kdWxlTG9hZGVyRXZhbHVhdGU7CiAK
ICAgICB0eXBlZGVmIFN0cmluZyAoKkRlZmF1bHRMYW5ndWFnZUZ1bmN0aW9uUHRyKSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCmluZGV4
IGQzYjVhNmE0NmY1YmQ0MTczNjBiMzJkMTU2NWU5ZDY1MWY0NDIxMTEuLjRlYWViZDc1ZDVhYmNj
NThlZDM3ODMzZGEyMTcwMDhkZWZhOTgwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgSlNWYWx1ZSBK
U01vZHVsZUxvYWRlcjo6cHJvdmlkZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBTdGF0
dXMgc3RhdHVzLCBjb24KICAgICByZXR1cm4gY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUs
IGNhbGxEYXRhLCB0aGlzLCBhcmd1bWVudHMpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNN
b2R1bGVMb2FkZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01v
ZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAg
ICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZXhlYywgZXhlYy0+
cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmxvYWRBbmRFdmFsdWF0ZU1vZHVsZVB1Ymxp
Y05hbWUoKSkpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpAQCAtOTYsMTEgKzk2LDEyIEBAIEpT
SW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRz
OwogICAgIGFyZ3VtZW50cy5hcHBlbmQobW9kdWxlTmFtZSk7CiAgICAgYXJndW1lbnRzLmFwcGVu
ZChyZWZlcnJlcik7CisgICAgYXJndW1lbnRzLmFwcGVuZChpbml0aWF0b3IpOwogCiAgICAgcmV0
dXJuIGpzQ2FzdDxKU0ludGVybmFsUHJvbWlzZSo+KGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxU
eXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1lbnRzKSk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNl
KiBKU01vZHVsZUxvYWRlcjo6bG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9k
dWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxv
YWRlcjo6bG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNW
YWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNPYmplY3QqIGZ1bmN0
aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5i
dWlsdGluTmFtZXMoKS5sb2FkTW9kdWxlUHVibGljTmFtZSgpKSk7CiAgICAgQ2FsbERhdGEgY2Fs
bERhdGE7CkBAIC0xMTAsMTEgKzExMSwxMiBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVM
b2FkZXI6OmxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG1vZHVsZU5hbQogICAg
IE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKG1v
ZHVsZU5hbWUpOwogICAgIGFyZ3VtZW50cy5hcHBlbmQocmVmZXJyZXIpOworICAgIGFyZ3VtZW50
cy5hcHBlbmQoaW5pdGlhdG9yKTsKIAogICAgIHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21p
c2UqPihjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3Vt
ZW50cykpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxpbmtBbmRF
dmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlS2V5KQorSlNJbnRl
cm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIG1vZHVsZUtleSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAg
SlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMsIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGVQdWJsaWNO
YW1lKCkpKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKQEAgLTEyMywzMSArMTI1LDMyIEBAIEpT
SW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVu
dHM7CiAgICAgYXJndW1lbnRzLmFwcGVuZChtb2R1bGVLZXkpOworICAgIGFyZ3VtZW50cy5hcHBl
bmQoaW5pdGlhdG9yKTsKIAogICAgIHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21pc2UqPihj
YWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3VtZW50cykp
OwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIG5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitKU0ludGVybmFsUHJv
bWlzZSogSlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG5h
bWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIGlmIChPcHRp
b25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCiAgICAgICAgIGRhdGFMb2coIkxvYWRlciBb
cmVzb2x2ZV0gIiwgcHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIG5hbWUpLCAiXG4iKTsKIAogICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9k
dWxlTG9hZGVyUmVzb2x2ZSkKLSAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyUmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4ZWMs
IHRoaXMsIG5hbWUsIHJlZmVycmVyKTsKKyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyUmVzb2x2ZShnbG9iYWxPYmplY3Qs
IGV4ZWMsIHRoaXMsIG5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpOwogICAgIEpTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3Jl
YXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgbmFt
ZSk7CiAgICAgcmV0dXJuIGRlZmVycmVkLT5wcm9taXNlKCk7CiB9CiAKLUpTSW50ZXJuYWxQcm9t
aXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSkK
K0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgaWYgKE9wdGlvbnM6OmR1
bXBNb2R1bGVMb2FkaW5nU3RhdGUoKSkKICAgICAgICAgZGF0YUxvZygiTG9hZGVyIFtmZXRjaF0g
IiwgcHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIGtleSksICJcbiIpOwogCiAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBp
ZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJG
ZXRjaCkKLSAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUoKS0+bW9kdWxlTG9hZGVyRmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXkpOwor
ICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5t
b2R1bGVMb2FkZXJGZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgaW5pdGlhdG9y
KTsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogICAgIFN0cmluZyBt
b2R1bGVLZXkgPSBrZXkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkgewpAQCAtMTYwLDQwICsxNjMsNDAgQEAgSlNJbnRlcm5hbFByb21p
c2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5KQog
ICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSog
SlNNb2R1bGVMb2FkZXI6OnRyYW5zbGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBK
U1ZhbHVlIHBheWxvYWQpCitKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnRyYW5z
bGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHBheWxvYWQsIEpTVmFs
dWUgaW5pdGlhdG9yKQogewogICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRl
KCkpCiAgICAgICAgIGRhdGFMb2coIkxvYWRlciBbdHJhbnNsYXRlXSAiLCBwcmludGFibGVNb2R1
bGVLZXkoZXhlYywga2V5KSwgIlxuIik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIGlmIChnbG9iYWxPYmplY3Qt
Pmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlclRyYW5zbGF0ZSkKLSAgICAg
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxl
TG9hZGVyVHJhbnNsYXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBwYXlsb2FkKTsK
KyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+
bW9kdWxlTG9hZGVyVHJhbnNsYXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBwYXls
b2FkLCBpbml0aWF0b3IpOwogICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVk
ID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7
CiAgICAgZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgcGF5bG9hZCk7CiAgICAgcmV0dXJuIGRlZmVy
cmVkLT5wcm9taXNlKCk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6
aW5zdGFudGlhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBzb3VyY2Up
CitKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6Omluc3RhbnRpYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgc291cmNlLCBKU1ZhbHVlIGluaXRpYXRvcikK
IHsKICAgICBpZiAoT3B0aW9uczo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQogICAgICAgICBk
YXRhTG9nKCJMb2FkZXIgW2luc3RhbnRpYXRlXSAiLCBwcmludGFibGVNb2R1bGVLZXkoZXhlYywg
a2V5KSwgIlxuIik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVj
dE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlckluc3RhbnRpYXRlKQotICAgICAgICByZXR1cm4g
Z2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJJbnN0
YW50aWF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgc291cmNlKTsKKyAgICAgICAg
cmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9h
ZGVySW5zdGFudGlhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIHNvdXJjZSwgaW5p
dGlhdG9yKTsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogICAgIGRl
ZmVycmVkLT5yZXNvbHZlKGV4ZWMsIGpzVW5kZWZpbmVkKCkpOwogICAgIHJldHVybiBkZWZlcnJl
ZC0+cHJvbWlzZSgpOwogfQogCi1KU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlKQorSlNW
YWx1ZSBKU01vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtl
eSwgSlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAg
aWYgKE9wdGlvbnM6OmR1bXBNb2R1bGVMb2FkaW5nU3RhdGUoKSkKICAgICAgICAgZGF0YUxvZygi
TG9hZGVyIFtldmFsdWF0ZV0gIiwgcHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIGtleSksICJcbiIp
OwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSgpLT5tb2R1bGVMb2FkZXJFdmFsdWF0ZSkKLSAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZhbHVhdGUoZ2xvYmFsT2Jq
ZWN0LCBleGVjLCB0aGlzLCBrZXksIG1vZHVsZVJlY29yZFZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZh
bHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIG1vZHVsZVJlY29yZFZhbHVlLCBp
bml0aWF0b3IpOwogCiAgICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IGpzRHluYW1p
Y0Nhc3Q8SlNNb2R1bGVSZWNvcmQqPihtb2R1bGVSZWNvcmRWYWx1ZSk7CiAgICAgaWYgKCFtb2R1
bGVSZWNvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZUxvYWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2Fk
ZXIuaAppbmRleCA0Y2Q1OTA0MDY1ZWY1ZmY1NmRhOWI4NTBlZmJiOWJmMDc0ZTQwNDAzLi5iODdi
N2FlYjVhOTNkMTk4MDk0YzcxN2U3YzU4YzIwZmEyY2U2NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmgKQEAgLTYzLDE4ICs2MywxOCBAQCBj
bGFzcyBKU01vZHVsZUxvYWRlciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIAogICAgIC8v
IEFQSXMgdG8gY29udHJvbCB0aGUgbW9kdWxlIGxvYWRlci4KICAgICBKU1ZhbHVlIHByb3ZpZGUo
RXhlY1N0YXRlKiwgSlNWYWx1ZSBrZXksIFN0YXR1cywgY29uc3QgU3RyaW5nJik7Ci0gICAgSlNJ
bnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVl
IG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkTW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJl
cik7Ci0gICAgSlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3Rh
dGUqLCBKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRF
dmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVm
ZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0ludGVybmFsUHJvbWlzZSogbG9hZE1v
ZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpT
VmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRl
TW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlS2V5LCBKU1ZhbHVlIGluaXRpYXRvcik7
CiAKICAgICAvLyBQbGF0Zm9ybSBkZXBlbmRlbnQgaG9va2VkIEFQSXMuCi0gICAgSlNJbnRlcm5h
bFByb21pc2UqIHJlc29sdmUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJlZmVy
cmVyKTsKLSAgICBKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goRXhlY1N0YXRlKiwgSlNWYWx1ZSBr
ZXkpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiB0cmFuc2xhdGUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSBrZXksIEpTVmFsdWUgcGF5bG9hZCk7Ci0gICAgSlNJbnRlcm5hbFByb21pc2UqIGluc3RhbnRp
YXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNvdXJjZSk7CisgICAgSlNJbnRl
cm5hbFByb21pc2UqIHJlc29sdmUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJl
ZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGZldGNo
KEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRl
cm5hbFByb21pc2UqIHRyYW5zbGF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBw
YXlsb2FkLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGluc3Rh
bnRpYXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNvdXJjZSwgSlNWYWx1ZSBp
bml0aWF0b3IpOwogCiAgICAgLy8gQWRkaXRpb25hbCBwbGF0Zm9ybSBkZXBlbmRlbnQgaG9va2Vk
IEFQSXMuCi0gICAgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNW
YWx1ZSBtb2R1bGVSZWNvcmQpOworICAgIEpTVmFsdWUgZXZhbHVhdGUoRXhlY1N0YXRlKiwgSlNW
YWx1ZSBrZXksIEpTVmFsdWUgbW9kdWxlUmVjb3JkLCBKU1ZhbHVlIGluaXRpYXRvcik7CiAKIHBy
b3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJQ
cm90b3R5cGUuY3BwCmluZGV4IDJhNTYwMGI4YWVjMDdlMGUwZmM0MDc1Y2Y5ZTBhMjJlYTIzMDcz
OTIuLjJkOTA0NmY3NDVmZDFiMGI1NGJmMTRmYWNhNDExZjZmZjYxMmZiMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyUHJvdG90eXBl
LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9k
dWxlTG9hZGVyUHJvdG90eXBlUmVzb2x2ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVM
b2FkZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlz
VmFsdWUoKSk7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPnJl
c29sdmUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPnJlc29sdmUoZXhlYywgZXhlYy0+YXJndW1l
bnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpLCBleGVjLT5hcmd1bWVudCgyKSkpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUZldGNoKEV4ZWNT
dGF0ZSogZXhlYykKQEAgLTE5NCw3ICsxOTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUZldGNoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU01v
ZHVsZUxvYWRlciogbG9hZGVyID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZUxvYWRlcio+KGV4ZWMt
PnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRl
ci0+ZmV0Y2goZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGxvYWRlci0+ZmV0Y2goZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3Vt
ZW50KDEpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVy
UHJvdG90eXBlVHJhbnNsYXRlKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTIwNiw3ICsyMDYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZVRyYW5zbGF0
ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVMb2FkZXIqIGxvYWRlciA9IGpzRHluYW1p
Y0Nhc3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFsb2Fk
ZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPnRyYW5zbGF0ZShleGVjLCBleGVjLT5hcmd1
bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGxvYWRlci0+dHJhbnNsYXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVu
dCgxKSwgZXhlYy0+YXJndW1lbnQoMikpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZShFeGVjU3RhdGUqIGV4ZWMpCkBA
IC0yMjAsNyArMjIwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2Fk
ZXJQcm90b3R5cGVJbnN0YW50aWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVMb2Fk
ZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlzVmFs
dWUoKSk7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmluc3Rh
bnRpYXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9hZGVyLT5pbnN0YW50aWF0ZShleGVjLCBleGVjLT5h
cmd1bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSksIGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiB9CiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkaXRpb25hbCBIb29rIEZ1bmN0aW9ucyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzMyw3ICsyMzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBKU01vZHVsZUxvYWRlciogbG9hZGVyID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZUxv
YWRlcio+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGxvYWRlci0+ZXZhbHVhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFy
Z3VtZW50KDEpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmV2YWx1YXRl
KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSwgZXhlYy0+YXJndW1l
bnQoMikpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbC5oCmluZGV4IDkzM2EyZTUxODRhYjk5ZmYyNmZjYzEyZjYyMzBiOGQwM2VlMTlk
ODAuLjA1YzcwOTY4Y2Y4OGY1NDRjOWVjMTI1NWQzNzdlZmM4ZWE0NzNlNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFN5bWJv
bCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgc3RhdGljIFN5bWJvbCogY3JlYXRlKFZN
Jik7CiAgICAgc3RhdGljIFN5bWJvbCogY3JlYXRlKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiBkZXNj
cmlwdGlvbik7Ci0gICAgc3RhdGljIFN5bWJvbCogY3JlYXRlKFZNJiwgU3ltYm9sSW1wbCYgdWlk
KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgU3ltYm9sKiBjcmVhdGUoVk0mLCBTeW1i
b2xJbXBsJiB1aWQpOwogCiAgICAgY29uc3QgUHJpdmF0ZU5hbWUmIHByaXZhdGVOYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9wcml2YXRlTmFtZTsgfQogICAgIFN0cmluZyBkZXNjcmlwdGl2ZVN0cmlu
ZygpIGNvbnN0OwpAQCAtNjQsNyArNjQsNyBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMg
SlNDZWxsIHsKIAogICAgIFN5bWJvbChWTSYpOwogICAgIFN5bWJvbChWTSYsIGNvbnN0IFN0cmlu
ZyYpOwotICAgIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7CisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgU3ltYm9sKFZNJiwgU3ltYm9sSW1wbCYgdWlkKTsKIAogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0OWE2OGU2NmIyNjU4ZjlhMTc1
M2IzOGU5NjU5YWYzNmE5NWRiZjQxLi5mOGM2OGZjZDkyOTQxN2M5ZGMzYmM2ZDRlODY4NzY4MWE5
MGZiNmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIwOSw2ICsxMjA5LDggQEAgc2V0KFdl
YkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3Bw
CiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU01vZHVsZUZldGNo
ZXIuY3BwCisgICAgYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU01vZHVsZUxvYWRlci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2su
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMx
MWZkZDVkZmZmYjY0Y2Q1ODk0NDMwMTJjYjMyOGJmZDFmNDkyZGEuLjQyYTAwZmM3MThjYWEwMDA5
MTE0YjE1ZWUxODM1NDM2YTNkMjEzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYwNjMsNiArNjA2MywxMCBAQAogCQlFMUZG
NTdBNjBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGNTdBNTBGMDEyNTZCMDA4OTFF
QkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi87IH07CiAJCUUxRkY4RjZDMTgwREI1QkUwMDEz
MjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyogQ3J5
cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovOyB9OwogCQlFMUZGOEY2RDE4MERCNUJFMDAxMzI2
NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9B
bGdvcml0aG1SZWdpc3RyeS5oICovOyB9OworCQlFMzRFNDk4NzFENzBBNTRGMDA2NDYxMzkgLyog
SlNNb2R1bGVHcmFwaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzRFNDk4NTFENzBBNTJCMDA2NDYxMzkgLyogSlNNb2R1bGVHcmFwaC5jcHAgKi87
IH07CisJCUUzNEU0OTg4MUQ3MEE1NTEwMDY0NjEzOSAvKiBKU01vZHVsZUZldGNoZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RTQ5ODMxRDcw
QTUyQjAwNjQ2MTM5IC8qIEpTTW9kdWxlRmV0Y2hlci5jcHAgKi87IH07CisJCUUzNEU0OTg5MUQ3
MEE1NTkwMDY0NjEzOSAvKiBKU01vZHVsZUdyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFNDk4NjFENzBBNTJCMDA2NDYxMzkgLyogSlNNb2R1
bGVHcmFwaC5oICovOyB9OworCQlFMzRFNDk4QTFENzBBNTVDMDA2NDYxMzkgLyogSlNNb2R1bGVG
ZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MzRFNDk4NDFENzBBNTJCMDA2NDYxMzkgLyogSlNNb2R1bGVGZXRjaGVyLmggKi87IH07CiAJCUUz
ODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUxvYWRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NDFCQUQxNDVGMDBENjJF
RTMgLyogSlNNb2R1bGVMb2FkZXIuY3BwICovOyB9OwogCQlFMzg4Mzg5OTFCQUQxNDVGMDBENjJF
RTMgLyogSlNNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUxvYWRlci5o
ICovOyB9OwogCQlFNDAxQzI3NTE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9yQXNz
ZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM2MDgs
NiArMTM2MTIsMTAgQEAKIAkJRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTV2ViS2l0U3Vi
dGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkIxODBE
QjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzNEU0OTgzMUQ3MEE1MkIwMDY0NjEzOSAvKiBKU01vZHVsZUZl
dGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2R1bGVG
ZXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0RTQ5ODQxRDcwQTUy
QjAwNjQ2MTM5IC8qIEpTTW9kdWxlRmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU01vZHVsZUZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTM0RTQ5ODUxRDcwQTUyQjAwNjQ2MTM5IC8qIEpTTW9kdWxlR3JhcGguY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2R1bGVHcmFwaC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzNEU0OTg2MUQ3MEE1MkIwMDY0NjEzOSAvKiBKU01vZHVsZUdy
YXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW9kdWxlR3JhcGguaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8q
IEpTTW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTTW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4
OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIEpTTW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTTW9kdWxlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3NlcnRp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRJdGVyYXRvckFz
c2VydGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwODkwLDYgKzIwODk4
LDEwIEBACiAJCQkJOEY5MzREODQxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNT
dGF0ZS5jcHAgKi8sCiAJCQkJOEY5MzREODMxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVh
ZEV4ZWNTdGF0ZS5oICovLAogCQkJCUI1NjU3NkU0MTdEQTU5OUYwMEE1NkJEQyAvKiBKU01haW5U
aHJlYWRFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaCAqLywKKwkJCQlFMzRFNDk4MzFENzBBNTJC
MDA2NDYxMzkgLyogSlNNb2R1bGVGZXRjaGVyLmNwcCAqLywKKwkJCQlFMzRFNDk4NDFENzBBNTJC
MDA2NDYxMzkgLyogSlNNb2R1bGVGZXRjaGVyLmggKi8sCisJCQkJRTM0RTQ5ODUxRDcwQTUyQjAw
NjQ2MTM5IC8qIEpTTW9kdWxlR3JhcGguY3BwICovLAorCQkJCUUzNEU0OTg2MUQ3MEE1MkIwMDY0
NjEzOSAvKiBKU01vZHVsZUdyYXBoLmggKi8sCiAJCQkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUz
IC8qIEpTTW9kdWxlTG9hZGVyLmNwcCAqLywKIAkJCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMg
LyogSlNNb2R1bGVMb2FkZXIuaCAqLywKIAkJCQlDNkY0MjBBMDE2QjcxNjRFMDA1MkE5RjIgLyog
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLywKQEAgLTI1NDY1LDYgKzI1NDc3LDcgQEAKIAkJCQlD
RTEyNTI0MTFBMTZCMUI2MDA4NjQ0ODAgLyogTWVkaWFQbGF5ZXJTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIEpTTW9kdWxlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBGRTUgLyogTWVk
aWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkUwQTM5REFDQzAw
MjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQTk0QTM5MTIy
REFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTYx
NCw2ICsyNTYyNyw3IEBACiAJCQkJOUJCNzM3NjUxQjQxQzAzNTAwQUUxM0VCIC8qIE5TQXR0cmli
dXRlZFN0cmluZ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFCMzEzREYxQjY5ODhDNTAwRjJB
QUJDIC8qIE5TQnV0dG9uQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxMjUyNTExQTFC
RUJEODAwODY0NDgwIC8qIE5TQ2FsZW5kYXJEYXRlU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MzRFNDk4OTFENzBBNTU5MDA2NDYxMzkgLyogSlNNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzFERjYzNTcxQUYxODdERDAwNzhGRDkxIC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJEQjlDNEFBMUIzMjMxRjQwMDcwRjI3RiAvKiBOU0V2ZW50U1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRERCOTdGNDE5RjlBRUNBMDAyMDI1RDggLyogTlNFeHRlbnNpb25TUEku
aCBpbiBIZWFkZXJzICovLApAQCAtMjYwOTcsNiArMjYxMTEsNyBAQAogCQkJCTQxRjA2NkU0MEY2
NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFMzRFNDk4QTFENzBBNTVDMDA2NDYxMzkgLyogSlNNb2R1bGVG
ZXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyog
U2NyaXB0U291cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFDNzYwQjEwRURFMDNEMzAw
QzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMjhDMjg0NTEwRDgy
NTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4ODg4
LDYgKzI4OTAzLDcgQEAKIAkJCQlCMkZBM0REODBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRo
U2VnTGluZXRvVmVydGljYWxSZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEREEwQUI3
NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjJGQTNEREMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFMzRFNDk4ODFENzBBNTUxMDA2NDYxMzkgLyogSlNNb2R1bGVGZXRj
aGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzRERFMEFCNzVBNkYwMDBFNUFDNCAvKiBK
U1NWR1BhdGhTZWdNb3ZldG9SZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERTAwQUI3
NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0dGVybkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODU0MkE3OTYwQUU1Qzk0MjAwREY1OERGIC8qIEpTU1ZHUG9pbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yOTY3Niw2ICsyOTY5Miw3IEBACiAJCQkJMEZFQTNFODcxOTFCM0JENzAwMEYxQjU1
IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDNEU0MTIxODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0M0QTQxNjE2MjlERjVBMDBDM0VCNkUg
LyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUUzNEU0OTg3MUQ3MEE1NEYwMDY0NjEzOSAvKiBKU01vZHVsZUdyYXBoLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGQzRFNDBGMTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVlSU9T
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTU4MDYzMTkzMjdBNjIwMERFMzJFQiAvKiBTY3Jv
bGxpbmdUcmVlTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQUFEREUzMTREQzhDOEYwMEFG
NjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDRjM2Fj
ZDAwYTZlOWE4ZTk4MDEzODY0YzMxYWM5OGFhNzUwNzEyZjcuLmYwZTEyY2E5MDc3NDQ3ZGZiZWFl
NWRiYjZmNjVmODRhNDczYTk5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMTA4LDYgKzEwOCw4IEBACiAjaW5jbHVkZSAi
SlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnRDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZVBvcnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpT
TW9kdWxlRmV0Y2hlci5jcHAiCisjaW5jbHVkZSAiSlNNb2R1bGVHcmFwaC5jcHAiCiAjaW5jbHVk
ZSAiSlNNb2R1bGVMb2FkZXIuY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5jcHAi
CiAjaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDY5MDc0ZjcyMzVjYWMy
ZmJlMTQ2NjIzZGUxY2RhZjA2Nzk2MjkyMzEuLmMzNGMxMGM5NjM2YTUyOWIyYWFhZmU2ZDIxNDcy
ZDdmMDlmMTEyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcApAQCAtMzIzLDI5ICszMjMsMjkgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmZp
cmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRvdykKIH0K
IAogCi1KU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRl
clJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUg
bW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KQorSlNDOjpKU0ludGVy
bmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNN
b2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6
SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAg
ICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jh
c2UqPihnbG9iYWxPYmplY3QpOwogICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0g
dGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVu
dC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVMb2Fk
ZXIsIG1vZHVsZU5hbWUsIGltcG9ydGVyTW9kdWxlS2V5KTsKKyAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50LT5tb2R1bGVMb2FkZXIoKS0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxv
YWRlciwgbW9kdWxlTmFtZSwgaW1wb3J0ZXJNb2R1bGVLZXksIGluaXRpYXRvcik7CiAgICAgSlND
OjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIGRl
ZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVs
ZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5KQorSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0g
SlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoUmVm
UHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgp
KQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5mZXRjaChnbG9iYWxP
YmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5KTsKKyAgICAgICAgcmV0dXJuIGRv
Y3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVM
b2FkZXIsIG1vZHVsZUtleSwgaW5pdGlhdG9yKTsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVj
LCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9k
dWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6
OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkKQorSlNDOjpKU1Zh
bHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxv
YWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUg
bW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpTRE9NV2luZG93
QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9i
amVjdCk7CiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2Fk
ZXIoKS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtl
eSwgbW9kdWxlUmVjb3JkKTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIo
KS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwg
bW9kdWxlUmVjb3JkLCBpbml0aWF0b3IpOwogICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5k
ZXggODBkOTYwOGZhNjAzMDdlMTYwMGZjMjFjOWFkODZmMmQ3ZDkzMmE0Yi4uZjVmM2JlMDUyM2U1
OTY5YWQyZTM3MTYwZmJlNDBiY2M2NzJkYzM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTc4LDkgKzc4LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBKU0M6OldhdGNocG9pbnRTZXQgbV93aW5kb3dDbG9zZVdhdGNocG9pbnRz
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IG1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKLSAg
ICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIq
LCBKU0M6OkpTVmFsdWUpOwotICAgICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIG1vZHVsZUxvYWRl
ckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRp
YyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpT
VmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZh
bHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVs
ZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwogCiAg
ICAgICAgIFJlZlB0cjxET01XaW5kb3c+IG1fd3JhcHBlZDsKICAgICAgICAgSlNET01XaW5kb3dT
aGVsbCogbV9zaGVsbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWFpblRocmVhZEV4ZWNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmgKaW5kZXggNTk3Yzc3ZmU4MGVhMzk4ZTBlZDZhMjVkNmJlYWY2YjVi
NDcxZTVkMC4uOWI5ZGY5YzRmMDc1MTE1MGZhZGY4NzMxMmY0NzliOGEyMmFlNjcyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgK
QEAgLTkyLDYgKzkyLDI0IEBAIGNsYXNzIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSB7CiAgICAgICAg
IHRhc2sucnVuKGV4ZWMpOwogICAgIH0KIAorICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlKiBsb2FkTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpCisgICAgeworICAgICAgICBKU01haW5UaHJl
YWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjpsb2Fk
TW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUsIGluaXRpYXRvcik7CisgICAgfQorCisgICAgc3RhdGlj
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEpTQzo6U291cmNlQ29kZSYgc291cmNlQ29kZSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRv
cikKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhl
Yyk7CisgICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywgc291cmNlQ29kZSwgaW5p
dGlhdG9yKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbGlu
a0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcikKKyAgICB7CisgICAgICAg
IEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJldHVy
biBKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBtb2R1bGVLZXksIGluaXRpYXRvcik7
CisgICAgfQorCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBpbnN0
cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBKU0M6OkNhbGxUeXBl
LCBjb25zdCBKU0M6OkNhbGxEYXRhJik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSBpbnN0cnVtZW50RnVuY3Rpb25Db25zdHJ1Y3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIEpTQzo6Q29uc3RydWN0VHlwZSwgY29uc3QgSlNDOjpDb25zdHJ1Y3REYXRhJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRjNTI3YWUyY2ExMzQ2NTI2ZWEwZDFjODA0ZDA1YzQ4MmZiZDkyZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuY3Bw
CkBAIC0wLDAgKzEsMTQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkpTTW9kdWxlRmV0Y2hlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJET01XcmFwcGVyV29y
bGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2lu
Y2x1ZGUgIkpTTW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25z
LmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJj
ZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU01vZHVsZUZldGNoZXI6OkpTTW9k
dWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwmIHNv
dXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1l
bnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fc291cmNl
VVJMKHNvdXJjZVVSTCkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwg
Z2xvYmFsT2JqZWN0KQorICAgICwgbV9kZWZlcnJlZChnbG9iYWxPYmplY3QtPnZtKCksIGRlZmVy
cmVkKQoreworfQorCitKU01vZHVsZUZldGNoZXI6On5KU01vZHVsZUZldGNoZXIoKQoreworICAg
IGlmIChtX2NhY2hlZFNjcmlwdCkgeworICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xp
ZW50KHRoaXMpOworICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG51bGxwdHI7CisgICAgfQorfQor
CitSZWY8SlNNb2R1bGVGZXRjaGVyPiBKU01vZHVsZUZldGNoZXI6OmNyZWF0ZShKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEpTTW9kdWxlRmV0Y2hlcihnbG9iYWxPYmplY3QsIHNvdXJj
ZVVSTCwgZGVmZXJyZWQsIGRvY3VtZW50KSk7Cit9CisKK2Jvb2wgSlNNb2R1bGVGZXRjaGVyOjpy
dW4oU2NyaXB0RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoZWxlbWVudCkKKyAgICAgICAg
bV9jYWNoZWRTY3JpcHQgPSBlbGVtZW50LT5yZXF1ZXN0TW9kdWxlU2NyaXB0KG1fc291cmNlVVJM
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOworICAg
ICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBDb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrOworCisgICAgICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX3NvdXJjZVVSTCksIG9wdGlv
bnMpOworCisgICAgICAgIC8vIE1vZHVsZSBmZXRjaGVyIGFsd2F5cyBpbnRlcnByZXQgc2NyaXB0
cyBhcyBVVEYtOC4KKyAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9sb2FkZXIv
aXNzdWVzLzgzCisgICAgICAgIHJlcXVlc3Quc2V0Q2hhcnNldChBU0NJSUxpdGVyYWwoInV0Zi04
IikpOworCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgaGFuZGxlICJjcm9zc29yaWdpbiIgb3B0
aW9ucy4KKyAgICAgICAgLy8gT25jZSB0aGUgc3BlYyBkZXNjcmliZXMgdGhlIGRldGFpbHMsIHdl
IHdpbGwgZm9sbG93IGl0LgorICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihBdG9taWNTdHJp
bmcobV9zb3VyY2VVUkwuc3RyaW5nKCkpKTsKKworICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1f
ZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOwor
ICAgIH0KKworICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIC8vIE5vdGU6IElmIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGlt
bWVpZGF0ZWx5IGNhbGxzIG5vdGlmeUZpbmlzaGVkLgorICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRD
bGllbnQodGhpcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgSlNNb2R1bGVGZXRjaGVy
Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCit7CisgICAgQVNTRVJU
X1VOVVNFRChyZXNvdXJjZSwgcmVzb3VyY2UgPT0gbV9jYWNoZWRTY3JpcHQpOworICAgIGlmICgh
bV9jYWNoZWRTY3JpcHQpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX2NhY2hlZFNj
cmlwdCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3Jp
cHQgPSBtX2NhY2hlZFNjcmlwdDsKKyAgICBtX2NhY2hlZFNjcmlwdCA9IG51bGxwdHI7CisKKyNp
ZiBFTkFCTEUoTk9TTklGRikKKyAgICBpZiAoY2FjaGVkU2NyaXB0ICYmICFjYWNoZWRTY3JpcHQt
Pm1pbWVUeXBlQWxsb3dlZEJ5Tm9zbmlmZigpKSB7CisgICAgICAgIG1fZG9jdW1lbnQuYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
ICJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGZyb20gJyIgKyBjYWNoZWRTY3JpcHQtPnVybCgp
LnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicgYmVjYXVzZSBpdHMgTUlNRSB0
eXBlICgnIiArIGNhY2hlZFNjcmlwdC0+bWltZVR5cGUoKSArICInKSBpcyBub3QgZXhlY3V0YWJs
ZSwgYW5kIHN0cmljdCBNSU1FIHR5cGUgY2hlY2tpbmcgaXMgZW5hYmxlZC4iKTsKKyAgICAgICAg
Y2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisjZW5kaWYKKworICAgIFJlZjxEb2N1bWVudD4gcHJvdGVjdG9yKG1fZG9jdW1lbnQpOworCisg
ICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkgeworICAgICAgICBKU0M6
OkpTTG9ja0hvbGRlciBsb2NrKG1fZ2xvYmFsT2JqZWN0LT52bSgpKTsKKyAgICAgICAgSlNDOjpF
eGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworICAgICAgICBp
ZiAoY2FjaGVkU2NyaXB0LT5lcnJvck9jY3VycmVkKCkpIHsKKyAgICAgICAgICAgIC8vIFRoZSBt
b2R1bGUgbG9hZGVyIHBpcGVsaW5lIGlzIGNvbnN0cnVjdGVkIGFzIGEgY2hhaW4gb2YgcHJvbWlz
ZXMuCisgICAgICAgICAgICAvLyBSZWplY3RpbmcgYSBwcm9taXNlIGlmIHNvbWUgZXJyb3Igb2Nj
dXJzIGlzIGltcG9ydGFudCBiZWNhdXNlIHRoZSBleGVjdXRpb24gZmxvdyBvZgorICAgICAgICAg
ICAgLy8gdGhlIHByb21pc2UgY2hhaW4gaXMgZHJpdmVuIGJ5ICJyZWplY3RlZCIgb3IgImZ1bGZp
bGxlZCIgZXZlbnRzLgorICAgICAgICAgICAgLy8gSWYgdGhlIHByb21pc2UgaXMgbm90IHJlamVj
dGVkIHdoaWxlIGVycm9yIG9jY3VycywgcmVqZWN0IGhhbmRsZXIgd29uJ3QgYmUgZXhlY3V0ZWQK
KyAgICAgICAgICAgIC8vIGFuZCBhbGwgdGhlIHN1YnNlcXVlbnQgcHJvbWlzZSBjaGFpbiB3aWxs
IHdhaXQgdGhlIHJlc3VsdCBmb3JldmVyLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8v
IEFzIGEgcmVzdWx0LCBldmVuIGlmIHRoZSBlcnJvciBpcyBhbHJlYWR5IHJlcG9ydGVkIHRvIHRo
ZSBpbnNwZWN0b3IgZWxzZXdoZXJlLAorICAgICAgICAgICAgLy8gaXQgc2hvdWxkIGJlIHByb3Bh
Z2F0ZWQgaW4gdGhlIHBpcGVsaW5lLiBGb3IgZXhhbXBsZSwgdGhlIGVycm9yIG9mIGxvYWRpbmcK
KyAgICAgICAgICAgIC8vIENhY2hlZFJlc291cmNlIGlzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhl
IGluc3BlY3RvciBieSB0aGUgbG9hZGVyLiBCdXQgd2Ugc3RpbGwgbmVlZAorICAgICAgICAgICAg
Ly8gdG8gcmVqZWN0IHRoZSBwcm9taXNlIGJ5IHNvbWUgZXJyb3IuCisgICAgICAgICAgICAvLwor
ICAgICAgICAgICAgLy8gTm90IHRvIHJlcG9ydCB0aGUgZXJyb3IgdHdpY2UsIHdoZW4gd2UgcHJv
cGFnYXRlIHRoZSBlcnJvciB0aGF0IGlzIGFscmVhZHkgcmVwb3J0ZWQKKyAgICAgICAgICAgIC8v
IHRvIHRoZSBpbnNwZWN0b3IsIHdlIHRocm93IG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVy
cm9yU3ltYm9sIHN5bWJvbCBpbnN0ZWFkLgorICAgICAgICAgICAgLy8gQnkgY29tcGFyaW5nIHRo
ZSB0aHJvd24gZXJyb3Igd2l0aCB0aGlzIHN5bWJvbCwgd2UgY2FuIGRpc3Rpbmd1aXNoIGVycm9y
cyByYWlzZWQKKyAgICAgICAgICAgIC8vIHdoZW4gbGlua2luZyBvciBleGVjdXRpbmcgYSBtb2R1
bGUgZ3JhcGggZnJvbSBlcnJvcnMgcmVwb3J0ZWQgYWxyZWFkeS4KKyAgICAgICAgICAgIC8vIElu
IHRoZSByZWplY3QgaGFuZGxlciBvZiB0aGUgcHJvbWlzZSwgd2Ugb25seSByZXBvcnQgYSBlcnJv
ciB0aGF0IGlzIG5vdCB0aGlzIHN5bWJvbC4KKyAgICAgICAgICAgIG1fZGVmZXJyZWQtPnJlamVj
dChleGVjLCBKU0M6OlN5bWJvbDo6Y3JlYXRlKGV4ZWMtPnZtKCksICooZnJhbWUtPnNjcmlwdCgp
Lm1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkudWlkKCkpKSk7CisgICAg
ICAgIH0gZWxzZSBpZiAoIWNhY2hlZFNjcmlwdC0+d2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAg
ICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKGNhY2hlZFNjcmlwdC5nZXQoKSk7CisgICAg
ICAgICAgICBtX2RlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIEpTQzo6anNTdHJpbmcoZXhlYywgc291
cmNlQ29kZS5zb3VyY2UoKS50b1N0cmluZygpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAv
LyBBIENhY2hlZFJlc291cmNlSGFuZGxlIGFsb25lIGRvZXMgbm90IHByZXZlbnQgdGhlIHVuZGVy
bHlpbmcgQ2FjaGVkUmVzb3VyY2UKKyAgICAvLyBmcm9tIHB1cmdpbmcgaXRzIGRhdGEgYnVmZmVy
LiBVbnRpbCB3ZSBmaW5pc2ggdXNpbmcgdGhlIGJhY2tpbmcgYnVmZmVyIG9mIHRoZQorICAgIC8v
IGNhY2hlZCBzY3JpcHQsIHdlIGRvbid0IHJlbW92ZSB0aGUgY2xpZW50LgorICAgIGNhY2hlZFNj
cmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworCisgICAgbV9kb2N1bWVudC5tb2R1bGVMb2FkZXIo
KS0+bm90aWZ5RmluaXNoZWQodGhpcyk7CisgICAgLy8gQWZ0ZXIgSlNNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkIGNhbGwsIHx0aGlzfCBtYXkgYmUgZGVzdHJveWVkLgorfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNj
OTUwNzU4NGEwODNkYTMzY2ZhMzc4N2M3OGE1NTZiMDliZTlhOTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuaApAQCAtMCwwICsx
LDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU01vZHVsZUZldGNoZXJfaAorI2RlZmluZSBK
U01vZHVsZUZldGNoZXJfaAorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJVUkwuaCIKKyNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KKyNp
bmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KKyNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBKU0RP
TUdsb2JhbE9iamVjdDsKK2NsYXNzIFNjcmlwdEVsZW1lbnQ7CisKK2NsYXNzIEpTTW9kdWxlRmV0
Y2hlciA6IHB1YmxpYyBSZWZDb3VudGVkPEpTTW9kdWxlRmV0Y2hlcj4sIHByaXZhdGUgQ2FjaGVk
UmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTTW9kdWxlRmV0Y2hl
cik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SlNN
b2R1bGVGZXRjaGVyPiBjcmVhdGUoSlNET01HbG9iYWxPYmplY3QqLCBjb25zdCBVUkwmIHNvdXJj
ZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiwgRG9jdW1lbnQmKTsKKworICAg
IH5KU01vZHVsZUZldGNoZXIoKTsKKworICAgIGJvb2wgcnVuKFNjcmlwdEVsZW1lbnQqKTsKKwor
ICAgIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQu
Z2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBKU01vZHVsZUZldGNoZXIoSlNET01HbG9iYWxPYmpl
Y3QqLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
KiwgRG9jdW1lbnQmKTsKKworICAgIC8vIEZvciBDYWNoZWRSZXNvdXJjZUNsaWVudC4KKyAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CisKKyAgICBEb2N1
bWVudCYgbV9kb2N1bWVudDsKKyAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgSlNDOjpTdHJvbmc8
SlNET01HbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OworICAgIEpTQzo6U3Ryb25nPEpTQzo6
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZD4gbV9kZWZlcnJlZDsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0IHsgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTTW9kdWxlRmV0Y2hlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlR3JhcGguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4NzU0Y2Ri
NzRhZTRmMDI0NDZjYWMyMmI5MmE0YmZiZTM2Mjk5ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmNwcApAQCAtMCwwICsxLDg1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTTW9kdWxlR3Jh
cGguaCIKKworI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTTW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAi
U2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJTY3JpcHRSdW5uZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworSlNNb2R1bGVHcmFwaDo6SlNNb2R1bGVHcmFwaChFbGVtZW50JiBl
bGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCisgICAgLCBtX3dlYWtQdHJGYWN0b3J5
KCZlbGVtZW50KQoreworfQorCit2b2lkIEpTTW9kdWxlR3JhcGg6Om5vdGlmeUxvYWRlZChVbmlx
dWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KQoreworICAgIG1fbW9kdWxlS2V5ID0gbW9kdWxlS2V5
OworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5ub3RpZnlKU01vZHVs
ZUdyYXBoUmVhZHkodG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisK
K3ZvaWQgSlNNb2R1bGVHcmFwaDo6bm90aWZ5RXJyb3JlZCgpCit7CisgICAgbV9lcnJvcmVkID0g
dHJ1ZTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+bm90aWZ5SlNN
b2R1bGVHcmFwaFJlYWR5KHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJm1fZWxlbWVudCkpOwor
fQorCit2b2lkIEpTTW9kdWxlR3JhcGg6OmV2YWx1YXRlKCkKK3sKKyAgICBpZiAobV9lcnJvcmVk
KQorICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRj
aEVycm9yRXZlbnQoKTsKKyAgICBlbHNlIGlmIChGcmFtZSogZnJhbWUgPSBtX2VsZW1lbnQuZG9j
dW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+c2NyaXB0KCkubGlua0FuZEV2YWx1YXRl
TW9kdWxlKCp0aGlzLCBtX2VsZW1lbnQpOworfQorCit2b2lkIEpTTW9kdWxlR3JhcGg6Om5vdGlm
eUV2YWx1YXRlZCgpCit7CisgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50
KS0+ZGlzcGF0Y2hMb2FkRXZlbnQoKTsKK30KKwordm9pZCBKU01vZHVsZUdyYXBoOjpsb2FkKGNv
bnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3VtZW50
KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0KCku
bG9hZE1vZHVsZSgqdGhpcywgbW9kdWxlTmFtZSwgbV9lbGVtZW50KTsKK30KKwordm9pZCBKU01v
ZHVsZUdyYXBoOjpsb2FkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7Cisg
ICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpOworICAgIG1fZWxlbWVudC5k
b2N1bWVudCgpLmZyYW1lKCktPnNjcmlwdCgpLmxvYWRNb2R1bGUoKnRoaXMsIHNvdXJjZUNvZGUs
IG1fZWxlbWVudCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTW9kdWxlR3JhcGguaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxl
R3JhcGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YmFkZjBlZjU5ZjNmMjRmYmY3NWQ0YzIyNTA0MzhlMTY2NGU0
ZDQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1
bGVHcmFwaC5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTTW9kdWxl
R3JhcGhfaAorI2RlZmluZSBKU01vZHVsZUdyYXBoX2gKKworI2luY2x1ZGUgIkpTTW9kdWxlRmV0
Y2hlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuaD4KKyNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwor
CisvLyBLZWVwIGxpZmV0aW1lIG9mIGEgSlNNb2R1bGVHcmFwaCB0aGUgc2FtZSB0byBhIFNjcmlw
dEVsZW1lbnQuCitjbGFzcyBKU01vZHVsZUdyYXBoIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShKU01vZHVsZUdyYXBoKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgSlNNb2R1bGVHcmFwaChFbGVtZW50Jik7CisKKyAgICBFbGVtZW50JiBlbGVtZW50
KCkgeyByZXR1cm4gbV9lbGVtZW50OyB9CisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtl
eSgpIHsgcmV0dXJuIG1fbW9kdWxlS2V5LmdldCgpOyB9CisKKyAgICB2b2lkIGxvYWQoY29uc3Qg
U3RyaW5nJiBtb2R1bGVOYW1lKTsKKyAgICB2b2lkIGxvYWQoY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYpOworICAgIHZvaWQgZXZhbHVhdGUoKTsKKworICAgIFdlYWtQdHI8RWxlbWVudD4gd2Vha0Vs
ZW1lbnRQdHIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOworICAgIH0KKworICAgIHZvaWQgbm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJ
bXBsKiBtb2R1bGVLZXkpOworICAgIHZvaWQgbm90aWZ5RXJyb3JlZCgpOworCisgICAgdm9pZCBu
b3RpZnlFdmFsdWF0ZWQoKTsKKworICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZXJyb3JlZDsgfQorICAgIGJvb2wgaXNMb2FkZWQoKSBjb25zdCB7IHJldHVybiBtX21v
ZHVsZUtleTsgfQorCitwcml2YXRlOgorCisgICAgRWxlbWVudCYgbV9lbGVtZW50OworICAgIFJl
ZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gbV9tb2R1bGVLZXk7CisgICAgV2Vha1B0ckZhY3Rvcnk8
RWxlbWVudD4gbV93ZWFrUHRyRmFjdG9yeTsKKyAgICBib29sIG1fZXJyb3JlZCB7IGZhbHNlIH07
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBKU01vZHVsZUxvYWRl
cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5jcHAKaW5k
ZXggYmExZTNlY2MxZGQwYzZlZWFlYmUyNzBlYjRjYmYyNWVlNDc4YTUxOS4uYmQwZjExNGNmMjRi
OTg2ZDM5NjdjNWQ3NTU2ODUwMzlhMzEzOWVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcApAQCAtMzAsNiArMzAsOSBAQAogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgorI2luY2x1ZGUgIkpTRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTTW9kdWxlRmV0Y2hlci5o
IgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3Jk
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1N0cmluZy5oPgpAQCAtNDIsNyArNDUsNyBAQCBKU01v
ZHVsZUxvYWRlcjo6SlNNb2R1bGVMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogewogfQogCi1K
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9k
dWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWVWYWx1ZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5KQorSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6
OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lVmFs
dWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlKQogewogICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogCkBAIC04Miw3
ICs4NSw3IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpyZXNvbHZl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIGRlZmVycmVkLT5y
ZXNvbHZlKGV4ZWMsIGpzU3RyaW5nKGV4ZWMsIGNvbXBsZXRlZFVybC5zdHJpbmcoKSkpOwogfQog
Ci1KU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01v
ZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKK0pTQzo6SlNJbnRlcm5h
bFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlND
OjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogewogICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogCkBAIC05Niwx
MiArOTksMjEgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmZldGNo
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpZiAoIWNvbXBsZXRlZFVy
bC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6
Y3JlYXRlVHlwZUVycm9yKGV4ZWMsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJMLiIpKTsK
IAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhlIG1vZHVsZSBmZXRjaGVyLgorICAgIFNjcmlw
dEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChhdXRvKiBlbGVtZW50
ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRvcikpCisgICAgICAgIHNj
cmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZlbGVtZW50LT53cmFwcGVk
KCkpOworCisgICAgUmVmPEpTTW9kdWxlRmV0Y2hlcj4gZmV0Y2hlciA9IEpTTW9kdWxlRmV0Y2hl
cjo6Y3JlYXRlKEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwg
Y29tcGxldGVkVXJsLCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7CisgICAgbV9mZXRjaGluZ1NldC5h
ZGQoJmZldGNoZXIuZ2V0KCkpOworICAgIGlmICghZmV0Y2hlci0+cnVuKHNjcmlwdEVsZW1lbnQp
KSB7CisgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCisgICAg
ICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OlN5bWJvbDo6Y3JlYXRl
KGV4ZWMtPnZtKCksICooZnJhbWUtPnNjcmlwdCgpLm1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKCkudWlkKCkpKSk7CisgICAgfQogCiAgICAgcmV0dXJuIGRlZmVycmVkLT5w
cm9taXNlKCk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU01vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVj
b3JkVmFsdWUpCitKU0M6OkpTVmFsdWUgSlNNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlcios
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZFZh
bHVlLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSwgd2Ugb25seSBz
dXBwb3J0IEpTTW9kdWxlUmVjb3JkLgogICAgIC8vIE9uY2UgdGhlIHJlZmxlY3RpdmUgcGFydCBv
ZiB0aGUgbW9kdWxlIGxvYWRlciBpcyBzdXBwb3J0ZWQsIHdlIHdpbGwgaGFuZGxlIGFyYml0cmFy
eSB2YWx1ZXMuCkBAIC0xMjEsOSArMTMzLDE0IEBAIEpTQzo6SlNWYWx1ZSBKU01vZHVsZUxvYWRl
cjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiBleGVjCiAg
ICAgaWYgKCFzb3VyY2VVcmwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5
cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIk1vZHVsZSBrZXkgaXMgYW4gaW52YWxpZCBVUkwu
IikpOwogCi0gICAgLy8gRklYTUU6IEltcGxlbWVudCBldmFsdWF0aW5nIG1vZHVsZSBjb2RlLgot
CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgcmV0
dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVcmwsIG1vZHVsZVJlY29y
ZCk7CiAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIAordm9pZCBKU01vZHVsZUxv
YWRlcjo6bm90aWZ5RmluaXNoZWQoSlNNb2R1bGVGZXRjaGVyKiBmZXRjaGVyKQoreworICAgIG1f
ZmV0Y2hpbmdTZXQucmVtb3ZlKGZldGNoZXIpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuaAppbmRleCA2OWE1MDFhNWFlNTNhNTYyMTRjNWNjNTlj
ZWNiMzE5MDA3NmZlMWZkLi4yZTQ3NTAzYTVjNWNjNDUwMzgzMmEyNDRmNGNlZDNlOTYzN2NmNGIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVl
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00MCw2ICs0MSw3IEBAIGNsYXNzIEpTTW9kdWxlTG9h
ZGVyOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEpTTW9k
dWxlRmV0Y2hlcjsKIAogY2xhc3MgSlNNb2R1bGVMb2FkZXIgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEpTTW9kdWxlTG9hZGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC00OCwx
MiArNTAsMTUgQEAgY2xhc3MgSlNNb2R1bGVMb2FkZXIgewogCiAgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsgfQogCi0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlz
ZSogcmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBv
cnRlck1vZHVsZUtleSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVLZXkpOwotICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlND
OjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCk7CisgICAgSlND
OjpKU0ludGVybmFsUHJvbWlzZSogcmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUs
IEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcik7
CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1
bGVLZXksIEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpOworICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwg
SlNDOjpKU1ZhbHVlIGluaXRpYXRvcik7CisKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKEpTTW9k
dWxlRmV0Y2hlciopOwogCiBwcml2YXRlOgogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAg
IEhhc2hTZXQ8UmVmUHRyPEpTTW9kdWxlRmV0Y2hlcj4+IG1fZmV0Y2hpbmdTZXQ7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDY4ODM5N2EwNWM3ODAxMGNjZWEyNDk1ZDIzMDM5MDk1
MTdjNGU2MDkuLjc3OThmZWYyYzhlZWY4ODRjNmQ0M2NlNGUxOGY5MjliNDM0ZjZhODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0RvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiSlNN
b2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk1lbW9yeVBy
ZXNzdXJlSGFuZGxlci5oIgogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCkBAIC00MSw2ICs0Miw3
IEBACiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAu
aCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQu
aCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTUzLDcgKzU1LDExIEBA
CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1Nj
cmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNGdW5jdGlvbi5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJ
bnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUg
PHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTmF0aXZlU3Rk
RnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFBvc2l0aW9uLmg+CiAKQEAgLTg1LDYgKzkxLDcgQEAgU2NyaXB0Q29udHJvbGxlcjo6
U2NyaXB0Q29udHJvbGxlcihGcmFtZSYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAg
ICwgbV9zb3VyY2VVUkwoMCkKICAgICAsIG1fcGF1c2VkKGZhbHNlKQorICAgICwgbV9tb2R1bGVM
b2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCiAgICAgLCBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0KDApCiAjZW5kaWYKQEAgLTE1
NSw3ICsxNjIsNyBAQCBKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChj
b25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBETwogICAgIGNvbnN0IFN0cmluZyog
c2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsKICAgICBtX3NvdXJjZVVSTCA9ICZzb3VyY2VV
Ukw7CiAKLSAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CisgICAgUmVmPEZyYW1lPiBw
cm90ZWN0b3IobV9mcmFtZSk7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUg
Y29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9m
cmFtZSwgc291cmNlVVJMLCBzb3VyY2VDb2RlLnN0YXJ0TGluZSgpKTsKIApAQCAtMTc5LDYgKzE4
NiwxMjMgQEAgSlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBFeGNlcHRpb24KICAgICByZXR1cm4gZXZhbHVhdGVJbldv
cmxkKHNvdXJjZUNvZGUsIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBleGNlcHRpb25EZXRhaWxz
KTsKIH0KIAorc3RhdGljIHZvaWQgaGFuZGxlSlNNb2R1bGVMb2FkZXJFcnJvcihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgZXJyb3IsIGNvbnN0IFByaXZhdGVOYW1lJiBtb2R1bGVMb2FkZXJBbHJl
YWR5UmVwb3J0ZWRFcnJvclN5bWJvbCkKK3sKKyAgICAvLyBPbmNlIHJlcG9ydGVkIGVycm9yIGlz
IG1hcmtlZCBhcyBtb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbC4KKyAgICAv
LyBEb24ndCByZXBvcnQgaXQgaGVyZSBhZ2Fpbi4KKyAgICBpZiAoU3ltYm9sKiBzeW1ib2wgPSBq
c0R5bmFtaWNDYXN0PFN5bWJvbCo+KGVycm9yKSkgeworICAgICAgICBpZiAoc3ltYm9sLT5wcml2
YXRlTmFtZSgpID09IG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJWE1FOiBCZWNhdXNlIHdlIGhhdmUg
bm90IHN1cHBvcnRlZCB0aGUgImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUgaW4gdGhlIG1vZHVsZSB0
YWcsCisgICAgLy8gd2UgcGFzcyB0aGUgbnVsbHB0ciB0byByZXBvcnRFeGNlcHRpb24ncyBDYWNo
ZWRTY3JpcHQqIHBhcmFtZXRlci4gV2hlbiBwYXNzaW5nIG51bGxwdHIKKyAgICAvLyB0byByZXBv
cnRFeGNlcHRpb24sIFdlYkNvcmUgZG9lcyBub3Qgc2hvdyB0aGUgZGV0YWlsIG9mIHRoZSBlcnJv
ciBpZiB0aGUgVVJMIG9mIHRoZQorICAgIC8vIHNvdXJjZSBkb2VzIG5vdCBwYXNzIHRoZSBzYW1l
IG9yaWdpbiBwb2xpY3kuIFNvIHRoZSBjdXJyZW50IGJlaGF2aW9yIGlzIGNvbnNlcnZhdGl2ZTsK
KyAgICAvLyBvbmx5IHRoZSBtb2R1bGUgY29kZSB0aGF0IFVSTCBpcyB3aXRoaW4gdGhlIHNhbWUg
b3JpZ2luIGNhbiByZXBvcnQgdGhlIGRldGFpbHMgb2YgdGhlCisgICAgLy8gZXJyb3IuIE9uY2Ug
dGhlIHNwZWMgZGVzY3JpYmVzIHRoZSBiZWhhdmlvciwgd2Ugd2lsbCBmb2xsb3cgaXQuCisgICAg
cmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGVycm9yLCBudWxscHRyKTsKK30KKwordm9pZCBTY3JpcHRD
b250cm9sbGVyOjpsb2FkTW9kdWxlSW5Xb3JsZChKU01vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwg
Y29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkLCBFbGVtZW50
JiBlbGVtZW50KQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAg
SlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0
YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0SlNN
b2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxl
KGV4ZWMsIG1vZHVsZU5hbWUsIHRvSlMoZXhlYywgc2hlbGwtPndpbmRvdygpLCAmZWxlbWVudCkp
LCB3b3JsZCk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShKU01vZHVs
ZUdyYXBoJiBtb2R1bGVHcmFwaCwgY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lLCBFbGVtZW50JiBl
bGVtZW50KQoreworICAgIGxvYWRNb2R1bGVJbldvcmxkKG1vZHVsZUdyYXBoLCBtb2R1bGVOYW1l
LCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgZWxlbWVudCk7Cit9CisKK3ZvaWQgU2NyaXB0Q29u
dHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQoSlNNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQs
IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7
CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAg
ICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAg
IGluaXRKU01vZHVsZUdyYXBoKG1vZHVsZUdyYXBoLCBKU01haW5UaHJlYWRFeGVjU3RhdGU6Omxv
YWRNb2R1bGUoZXhlYywgc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSwgdG9KUyhleGVjLCBzaGVs
bC0+d2luZG93KCksICZlbGVtZW50KSksIHdvcmxkKTsKK30KKwordm9pZCBTY3JpcHRDb250cm9s
bGVyOjpsb2FkTW9kdWxlKEpTTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIGxvYWRNb2R1
bGVJbldvcmxkKG1vZHVsZUdyYXBoLCBzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQo
KSwgZWxlbWVudCk7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRl
TW9kdWxlSW5Xb3JsZChKU01vZHVsZUdyYXBoJiBtb2R1bGVHcmFwaCwgRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCwgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3Js
ZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hlbGwod29y
bGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygp
OworCisgICAgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU01haW5UaHJlYWRFeGVjU3Rh
dGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBJZGVudGlmaWVyOjpmcm9tVWlkKCZleGVj
LT52bSgpLCBtb2R1bGVHcmFwaC5tb2R1bGVLZXkoKSksIHRvSlMoZXhlYywgc2hlbGwtPndpbmRv
dygpLCAmZWxlbWVudCkpOworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrUHRyKG1vZHVsZUdy
YXBoLndlYWtFbGVtZW50UHRyKCkpOworICAgIEpTRnVuY3Rpb24qIGZ1bGZpbGxIYW5kbGVyID0g
SlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwg
MSwgU3RyaW5nKCksIFt3ZWFrUHRyXShFeGVjU3RhdGUqKSB7CisgICAgICAgIGlmIChSZWZQdHI8
RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAgICAgICAgICB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlFdmFs
dWF0ZWQoKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
KyAgICB9KTsKKworICAgIFByaXZhdGVOYW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVy
cm9yU3ltYm9sID0gbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKKyAg
ICBKU0Z1bmN0aW9uKiByZWplY3RIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRl
KGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2FkZXJB
bHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCwgd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7Cisg
ICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisgICAg
ICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVH
cmFwaCgpLT5ub3RpZnlFdmFsdWF0ZWQoKTsKKyAgICAgICAgaGFuZGxlSlNNb2R1bGVMb2FkZXJF
cnJvcihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVk
RXJyb3JTeW1ib2wpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS0+dGhlbihleGVjLCBmdWxmaWxsSGFuZGxlciwg
cmVqZWN0SGFuZGxlcik7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1
YXRlTW9kdWxlKEpTTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBFbGVtZW50JiBlbGVtZW50KQor
eworICAgIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZUluV29ybGQobW9kdWxlR3JhcGgsIG1haW5UaHJl
YWROb3JtYWxXb3JsZCgpLCBlbGVtZW50KTsKK30KKworSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJlY29y
ZCogbW9kdWxlUmVjb3JkLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIEpTTG9ja0hv
bGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgY29uc3QgU291cmNlQ29kZSYganNTb3VyY2VD
b2RlID0gbW9kdWxlUmVjb3JkLT5zb3VyY2VDb2RlKCk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxs
KiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVs
bC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKyAgICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNl
VVJMID0gbV9zb3VyY2VVUkw7CisgICAgbV9zb3VyY2VVUkwgPSAmc291cmNlVVJMLnN0cmluZygp
OworCisgICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7CisKKyAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsRXZhbHVhdGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJMLCBqc1NvdXJjZUNvZGUuZmlyc3RM
aW5lKCkpOworCisgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IG1vZHVsZVJlY29yZC0+ZXZhbHVh
dGUoZXhlYyk7CisgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwor
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgZXZhbHVhdGlvbkV4Y2VwdGlv
biA9IGV4ZWMtPnZtKCkuZXhjZXB0aW9uKCk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSwgbV9mcmFtZSk7CisKKyAgICBpZiAoZXZhbHVh
dGlvbkV4Y2VwdGlvbikgeworICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXZhbHVhdGlv
bkV4Y2VwdGlvbiwgbnVsbHB0cik7CisgICAgICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VV
Ukw7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIG1fc291cmNl
VVJMID0gc2F2ZWRTb3VyY2VVUkw7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorCitKU0M6
OkpTVmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiBzb3Vy
Y2VVUkwsIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQpCit7CisgICAgcmV0dXJuIGV2YWx1
YXRlTW9kdWxlKHNvdXJjZVVSTCwgbW9kdWxlUmVjb3JkLCBtYWluVGhyZWFkTm9ybWFsV29ybGQo
KSk7Cit9CisKIFJlZjxET01XcmFwcGVyV29ybGQ+IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdv
cmxkKCkKIHsKICAgICByZXR1cm4gRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoSlNET01XaW5kb3c6
OmNvbW1vblZNKCkpOwpAQCAtMjU5LDYgKzM4Myw0MSBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3Jp
cHRDb250cm9sbGVyOjppbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgcmV0
dXJuICZ3aW5kb3dTaGVsbDsKIH0KIAorc3RhdGljIElkZW50aWZpZXIganNWYWx1ZVRvTW9kdWxl
S2V5KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNT
eW1ib2woKSkKKyAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21VaWQoanNDYXN0PFN5bWJv
bCo+KHZhbHVlKS0+cHJpdmF0ZU5hbWUoKSk7CisgICAgQVNTRVJUKHZhbHVlLmlzU3RyaW5nKCkp
OworICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGpzQ2FzdDxKU1N0cmlu
Zyo+KHZhbHVlKS0+dmFsdWUoZXhlYykpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6Omlu
aXRKU01vZHVsZUdyYXBoKEpTTW9kdWxlR3JhcGgmIG1vZHVsZUdyYXBoLCBKU0ludGVybmFsUHJv
bWlzZSogcHJvbWlzZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBzaGVsbC0+d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIFdlYWtQdHI8RWxlbWVudD4g
d2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0cigpKTsKKyAgICBKU0Z1bmN0aW9uKiBm
dWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBz
aGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7
CisgICAgICAgIC8vIEpTTW9kdWxlR3JhcGgsIHNjcmlwdCBlbGVtZW50IGFuZCBkb2N1bWVudCBt
YXkgYmUgZGVzdHJveWVkIGR1cmluZyBsb2FkaW5nIHRoZSBtb2R1bGUuCisgICAgICAgIC8vIElu
IHRoaXMgY2FzZSwgd2Ugc2hvdWxkIG5vdCBleGVjdXRlIG1vZHVsZSBib2R5LgorICAgICAgICBp
ZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFrUHRyLmdldCgpKSB7CisgICAgICAgICAg
ICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtleShleGVjLCBleGVjLT5h
cmd1bWVudCgwKSk7CisgICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1l
bnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ub3RpZnlMb2FkZWQobW9kdWxlS2V5LmltcGwoKSk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKKyAgICB9KTsKKworICAgIFByaXZhdGVOYW1lIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sID0gbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsK
KyAgICBKU0Z1bmN0aW9uKiByZWplY3RIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3Jl
YXRlKGV4ZWMtPnZtKCksIHNoZWxsLT53aW5kb3coKSwgMSwgU3RyaW5nKCksIFttb2R1bGVMb2Fk
ZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCwgd2Vha1B0cl0oRXhlY1N0YXRlKiBleGVjKSB7
CisgICAgICAgIGlmIChSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHdlYWtQdHIuZ2V0KCkpCisg
ICAgICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1
bGVHcmFwaCgpLT5ub3RpZnlFcnJvcmVkKCk7CisgICAgICAgIGhhbmRsZUpTTW9kdWxlTG9hZGVy
RXJyb3IoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIG1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRl
ZEVycm9yU3ltYm9sKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICB9KTsKKworICAgIHByb21pc2UtPnRoZW4oZXhlYywgZnVsZmlsbEhhbmRsZXIs
IHJlamVjdEhhbmRsZXIpOworfQorCiBUZXh0UG9zaXRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXZl
bnRIYW5kbGVyUG9zaXRpb24oKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJZiB3ZSBhcmUgbm90
IGN1cnJlbnRseSBwYXJzaW5nLCB3ZSBzaG91bGQgdXNlIG91ciBjdXJyZW50IGxvY2F0aW9uCkBA
IC01MjAsNyArNjc5LDcgQEAgSlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0
KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIEV4Y2UKICAgICBpZiAoIWNhbkV4
ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRlU2NyaXB0KSB8fCBpc1BhdXNlZCgpKQogICAgICAg
ICByZXR1cm4geyB9OyAvLyBGSVhNRTogV291bGQganNOdWxsIGJlIGJldHRlcj8KIAotICAgIFJl
ZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsgLy8gU2NyaXB0IGV4ZWN1dGlvbiBjYW4gZGVzdHJv
eSB0aGUgZnJhbWUsIGFuZCB0aHVzIHRoZSBTY3JpcHRDb250cm9sbGVyLgorICAgIFJlZjxGcmFt
ZT4gcHJvdGVjdG9yKG1fZnJhbWUpOyAvLyBTY3JpcHQgZXhlY3V0aW9uIGNhbiBkZXN0cm95IHRo
ZSBmcmFtZSwgYW5kIHRodXMgdGhlIFNjcmlwdENvbnRyb2xsZXIuCiAKICAgICByZXR1cm4gZXZh
bHVhdGUoc291cmNlQ29kZSwgZXhjZXB0aW9uRGV0YWlscyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYTBjNzFmMjYwODEyYjBkMzIx
MTkxNjg2ODExOWQ3MGJmNjcxNzYyZi4uMGNkNGRkNzQ4NGQ1NDE2MTA0NTBkNDk5NTkxOGExZTMx
N2RjZjk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuaApAQCAtNDQsNiArNDQsOCBAQCBjbGFzcyBTY3JpcHRWYWx1ZTsKIAogbmFtZXNwYWNlIEpT
QyB7CiBjbGFzcyBKU0dsb2JhbE9iamVjdDsKK2NsYXNzIEpTTW9kdWxlUmVjb3JkOworY2xhc3Mg
SlNJbnRlcm5hbFByb21pc2U7CiBjbGFzcyBFeGVjU3RhdGU7CiAKIG5hbWVzcGFjZSBCaW5kaW5n
cyB7CkBAIC01Nyw2ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZyYW1lOwog
Y2xhc3MgSFRNTERvY3VtZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CitjbGFzcyBKU01v
ZHVsZUdyYXBoOwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2lu
OwogY2xhc3MgV2lkZ2V0OwpAQCAtMTE1LDYgKzExOCwxNyBAQCBjbGFzcyBTY3JpcHRDb250cm9s
bGVyIHsKICAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYs
IEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CiAgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRl
SW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRE9NV3JhcHBlcldvcmxkJiwgRXhjZXB0
aW9uRGV0YWlscyogPSBudWxscHRyKTsKIAorICAgIHZvaWQgbG9hZE1vZHVsZUluV29ybGQoSlNN
b2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRE9NV3JhcHBlcldvcmxkJiwg
RWxlbWVudCYpOworICAgIHZvaWQgbG9hZE1vZHVsZShKU01vZHVsZUdyYXBoJiwgY29uc3QgU3Ry
aW5nJiBtb2R1bGVOYW1lLCBFbGVtZW50Jik7CisgICAgdm9pZCBsb2FkTW9kdWxlSW5Xb3JsZChK
U01vZHVsZUdyYXBoJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERPTVdyYXBwZXJXb3JsZCYs
IEVsZW1lbnQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGUoSlNNb2R1bGVHcmFwaCYsIGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmLCBFbGVtZW50Jik7CisKKyAgICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1v
ZHVsZUluV29ybGQoSlNNb2R1bGVHcmFwaCYgLCBET01XcmFwcGVyV29ybGQmLCBFbGVtZW50Jik7
CisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoSlNNb2R1bGVHcmFwaCYsIEVsZW1lbnQm
KTsKKworICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpT
TW9kdWxlUmVjb3JkKiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1
YXRlTW9kdWxlKGNvbnN0IFVSTCYsIEpTQzo6SlNNb2R1bGVSZWNvcmQqKTsKKwogICAgIFdURjo6
VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CiAKICAgICB2b2lkIGVu
YWJsZUV2YWwoKTsKQEAgLTEzNSw2ICsxNDksOCBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsK
IAogICAgIGNvbnN0IFN0cmluZyogc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VV
Ukw7IH0gLy8gMCBpZiB3ZSBhcmUgbm90IGV2YWx1YXRpbmcgYW55IHNjcmlwdAogCisgICAgY29u
c3QgSlNDOjpQcml2YXRlTmFtZSYgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1i
b2woKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3lt
Ym9sOyB9CisKICAgICB2b2lkIGNsZWFyV2luZG93U2hlbGwoRE9NV2luZG93KiBuZXdET01XaW5k
b3csIGJvb2wgZ29pbmdJbnRvUGFnZUNhY2hlKTsKICAgICB2b2lkIHVwZGF0ZURvY3VtZW50KCk7
CiAKQEAgLTE2Nyw2ICsxODMsNyBAQCBjbGFzcyBTY3JpcHRDb250cm9sbGVyIHsKIAogcHJpdmF0
ZToKICAgICBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd1NoZWxsKiBpbml0U2NyaXB0KERPTVdy
YXBwZXJXb3JsZCYpOworICAgIHZvaWQgaW5pdEpTTW9kdWxlR3JhcGgoSlNNb2R1bGVHcmFwaCYs
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqLCBET01XcmFwcGVyV29ybGQmKTsKIAogICAgIHZvaWQg
ZGlzY29ubmVjdFBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwogCkBAIC0xNzUsNiArMTkyLDcgQEAg
Y2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAgICAgY29uc3QgU3RyaW5nKiBtX3NvdXJjZVVSTDsK
IAogICAgIGJvb2wgbV9wYXVzZWQ7CisgICAgSlNDOjpQcml2YXRlTmFtZSBtX21vZHVsZUxvYWRl
ckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sOwogCiAgICAgLy8gVGhlIHJvb3Qgb2JqZWN0IHVz
ZWQgZm9yIG9iamVjdHMgYm91bmQgb3V0c2lkZSB0aGUgY29udGV4dCBvZiBhIHBsdWdpbiwgc3Vj
aAogICAgIC8vIGFzIE5QQVBJIHBsdWdpbnMuIFRoZSBwbHVnaW5zIHVzaW5nIHRoZXNlIG9iamVj
dHMgcHJldmVudCBhIHBhZ2UgZnJvbSBiZWluZyBjYWNoZWQgc28gdGhleQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggNGQwMzA4ZDdhMzc3OGZkM2E0ZDg0MjQ1YzgwZWY2Y2UzZjhkNjY1Yi4u
MDM5ZjkyNTY5OGQyNzFkZTIwODNjNTYxMmRkOWUwZWIxYTYxMjE5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC0xMDMsNiArMTAzLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKICNpbmNs
dWRlICJKU0xhenlFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmgi
CiAjaW5jbHVkZSAiSlNNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50Lmgi
CiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggN2UzOGQ4ZmRh
MWVhYjBkNjRmZTQ1MmQyMDhlZjVhZTA0YzRlNTE4Ni4uYTY3MzYwYzZiMDgyZDA5ZTAzMGY1Y2Qz
OTE2Nzc1ODU5MTljOWIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEzMyw2ICsxMzMsNyBA
QCBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENs
aWVudDsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7Citj
bGFzcyBKU01vZHVsZUxvYWRlcjsKIGNsYXNzIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7
CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9uOwogY2xhc3MgTm9kZUZpbHRlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCBmMTg3MTExNWIzMjhhNmYxMjYzMDkzNmU4NWVi
MDlhYjdhMWYzNTdjLi5lNmIzZTA5MGI1ZWQwM2U4NGU4YTZkMjZjMjIzNmM0NmM1MTYwZjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1
ZGUgIklnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgiCisjaW5jbHVkZSAi
SlNNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTE2NSwxMiArMTY2LDEyIEBAIE9w
dGlvbmFsPFNjcmlwdEVsZW1lbnQ6OlNjcmlwdFR5cGU+IFNjcmlwdEVsZW1lbnQ6OmRldGVybWlu
ZVNjcmlwdFR5cGUoTGVnYWN5VHlwCiAgICAgICAgIHJldHVybiBTY3JpcHRUeXBlOjpDbGFzc2lj
OwogICAgIGlmIChzdXBwb3J0TGVnYWN5VHlwZXMgPT0gQWxsb3dMZWdhY3lUeXBlSW5UeXBlQXR0
cmlidXRlICYmIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1YWdlKHR5cGUpKQogICAg
ICAgICByZXR1cm4gU2NyaXB0VHlwZTo6Q2xhc3NpYzsKLSNpZiBFTkFCTEUoRVM2X01PRFVMRVMp
CisvLyAjaWYgRU5BQkxFKEVTNl9NT0RVTEVTKQogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI2F0dHItc2NyaXB0LXR5cGUKICAgICAv
LyBTZXR0aW5nIHRoZSBhdHRyaWJ1dGUgdG8gYW4gQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZSBtYXRj
aCBmb3IgdGhlIHN0cmluZyAibW9kdWxlIiBtZWFucyB0aGF0IHRoZSBzY3JpcHQgaXMgYSBtb2R1
bGUgc2NyaXB0LgogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAi
bW9kdWxlIikpCiAgICAgICAgIHJldHVybiBTY3JpcHRUeXBlOjpNb2R1bGU7Ci0jZW5kaWYKKy8v
ICNlbmRpZgogICAgIHJldHVybiBOdWxsb3B0OwogfQogCkBAIC0xOTcsNyArMTk4LDEwIEBAIGJv
b2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlw
dFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgaWYgKCFtX2VsZW1lbnQuaW5Eb2N1bWVudCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRldGVybWluZVNjcmlwdFR5cGUoc3Vw
cG9ydExlZ2FjeVR5cGVzKSkKKyAgICBTY3JpcHRUeXBlIHNjcmlwdFR5cGUgPSBTY3JpcHRUeXBl
OjpDbGFzc2ljOworICAgIGlmIChPcHRpb25hbDxTY3JpcHRUeXBlPiByZXN1bHQgPSBkZXRlcm1p
bmVTY3JpcHRUeXBlKHN1cHBvcnRMZWdhY3lUeXBlcykpCisgICAgICAgIHNjcmlwdFR5cGUgPSBy
ZXN1bHQudmFsdWUoKTsKKyAgICBlbHNlCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
ICh3YXNQYXJzZXJJbnNlcnRlZCkgewpAQCAtMjE5LDcgKzIyMyw3IEBAIGJvb2wgU2NyaXB0RWxl
bWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRp
b24sIExlZ2FjCiAgICAgaWYgKCFkb2N1bWVudC5mcmFtZSgpLT5zY3JpcHQoKS5jYW5FeGVjdXRl
U2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmICghaXNTY3JpcHRGb3JFdmVudFN1cHBvcnRlZCgpKQorICAgIGlmIChzY3JpcHRUeXBl
ID09IFNjcmlwdFR5cGU6OkNsYXNzaWMgJiYgIWlzU2NyaXB0Rm9yRXZlbnRTdXBwb3J0ZWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFjaGFyc2V0QXR0cmlidXRlVmFsdWUo
KS5pc0VtcHR5KCkpCkBAIC0yMjcsMjYgKzIzMSwzOCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnBy
ZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdh
YwogICAgIGVsc2UKICAgICAgICAgbV9jaGFyYWN0ZXJFbmNvZGluZyA9IGRvY3VtZW50LmNoYXJz
ZXQoKTsKIAotICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkKLSAgICAgICAgaWYgKCFyZXF1
ZXN0U2NyaXB0KHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpKQorICAgIGlmIChzY3JpcHRUeXBlID09
IFNjcmlwdFR5cGU6Ok1vZHVsZSkgeworICAgICAgICBpZiAoIWxvYWRNb2R1bGUoc2NyaXB0U3Rh
cnRQb3NpdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KIAotICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBkZWZlckF0dHJp
YnV0ZVZhbHVlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgp
KSB7CisgICAgaWYgKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6Q2xhc3NpYykgeworICAgICAg
ICBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpIHsKKyAgICAgICAgICAgIGlmICghcmVxdWVzdFNj
cmlwdChzY3JpcHRUeXBlLCBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoKHNjcmlwdFR5cGUg
PT0gU2NyaXB0VHlwZTo6Q2xhc3NpYyAmJiBoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBkZWZlckF0
dHJpYnV0ZVZhbHVlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1
ZSgpKSB8fCAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpNb2R1bGUgJiYgbV9wYXJzZXJJbnNl
cnRlZCAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpKSkgewogICAgICAgICBtX3dpbGxFeGVjdXRl
V2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nID0gdHJ1ZTsKICAgICAgICAgbV93aWxsQmVQYXJz
ZXJFeGVjdXRlZCA9IHRydWU7Ci0gICAgfSBlbHNlIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSAm
JiBtX3BhcnNlckluc2VydGVkICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkpCi0gICAgICAgIG1f
d2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwotICAgIGVsc2UgaWYgKCFoYXNTb3VyY2VBdHRy
aWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFkb2N1bWVudC5oYXZlU3R5bGVzaGVldHNM
b2FkZWQoKSkgeworICAgIH0gZWxzZSBpZiAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFz
c2ljICYmIGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5j
QXR0cmlidXRlVmFsdWUoKSkgeworICAgICAgICBBU1NFUlQoc2NyaXB0VHlwZSA9PSBTY3JpcHRU
eXBlOjpDbGFzc2ljKTsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9IHRydWU7Ci0g
ICAgICAgIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwotICAgIH0gZWxzZSBpZiAo
aGFzU291cmNlQXR0cmlidXRlKCkgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSAmJiAhbV9mb3Jj
ZUFzeW5jKSB7CisgICAgfSBlbHNlIGlmICgoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFz
c2ljICYmIGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYg
IW1fZm9yY2VBc3luYykgfHwgKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlICYmICFh
c3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykpIHsKICAgICAgICAgbV93aWxs
RXhlY3V0ZUluT3JkZXIgPSB0cnVlOwogICAgICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIoKS0+
cXVldWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5l
cjo6SU5fT1JERVJfRVhFQ1VUSU9OKTsKICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVu
dCh0aGlzKTsKLSAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKSB7CisgICAgfSBl
bHNlIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSB8fCBzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6
Ok1vZHVsZSkgewogICAgICAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+
cXVldWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5l
cjo6QVNZTkNfRVhFQ1VUSU9OKTsKICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0
aGlzKTsKKyAgICB9IGVsc2UgaWYgKCFoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlcklu
c2VydGVkICYmICFkb2N1bWVudC5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgeworICAgICAgICBB
U1NFUlQoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKTsKKyAgICAgICAgbV93aWxs
QmVQYXJzZXJFeGVjdXRlZCA9IHRydWU7CisgICAgICAgIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0
ZWQgPSB0cnVlOwogICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNj
cmlwdFR5cGU6OkNsYXNzaWMpOwogICAgICAgICAvLyBSZXNldCBsaW5lIG51bWJlcmluZyBmb3Ig
bmVzdGVkIHdyaXRlcy4KICAgICAgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gZG9jdW1lbnQu
aXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlvbigpIDogc2NyaXB0U3RhcnRQb3NpdGlv
bjsKICAgICAgICAgZXhlY3V0ZVNjcmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQo
KSwgZG9jdW1lbnQudXJsKCksIHBvc2l0aW9uKSk7CkBAIC0yNTUsNyArMjcxLDcgQEAgYm9vbCBT
Y3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3Rh
cnRQb3NpdGlvbiwgTGVnYWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBTY3JpcHRFbGVt
ZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQorYm9vbCBTY3JpcHRF
bGVtZW50OjpyZXF1ZXN0U2NyaXB0KFNjcmlwdFR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlVXJs
KQogewogICAgIFJlZjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudChtX2VsZW1lbnQuZG9jdW1l
bnQoKSk7CiAgICAgaWYgKCFtX2VsZW1lbnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNl
VXJsKSkKQEAgLTI5Niw2ICszMTIsMzEgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2Ny
aXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9k
dWxlU2NyaXB0KFVSTCBzb3VyY2VVcmwpCit7CisgICAgYm9vbCBoYXNLbm93bk5vbmNlID0gbV9l
bGVtZW50LmRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0V2l0
aE5vbmNlKG1fZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1l
czo6bm9uY2VBdHRyKSwgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOworICAg
IFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRl
ZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKKyAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0
eVBvbGljeUltcG9zaXRpb24gPSBoYXNLbm93bk5vbmNlID8gQ29udGVudFNlY3VyaXR5UG9saWN5
SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3Np
dGlvbjo6RG9Qb2xpY3lDaGVjazsKKworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KFJlc291cmNlUmVxdWVzdChzb3VyY2VVcmwpLCBvcHRpb25zKTsKKworICAgIG1fZWxlbWVudC5k
b2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0
SWZOZWVkZWQocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisKKyAgICBTdHJpbmcgY3Jvc3NP
cmlnaW5Nb2RlID0gbV9lbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRN
TE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpOworICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVs
bCgpKSB7CisgICAgICAgIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sID0gdHJ1ZTsKKyAgICAg
ICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dT
dG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKKyAgICAgICAg
QVNTRVJUKG1fZWxlbWVudC5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICB1
cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVl
c3QoKSwgKm1fZWxlbWVudC5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVu
dGlhbHMpOworICAgIH0KKyAgICByZXF1ZXN0LnNldENoYXJzZXQoQVNDSUlMaXRlcmFsKCJ1dGYt
OCIpKTsKKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcigmZWxlbWVudCgpKTsKKworICAgIG1faXNF
eHRlcm5hbFNjcmlwdCA9IHRydWU7CisKKyAgICByZXR1cm4gbV9lbGVtZW50LmRvY3VtZW50KCku
Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOworfQorCiB2b2lk
IFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291
cmNlQ29kZSkKIHsKICAgICBBU1NFUlQobV9hbHJlYWR5U3RhcnRlZCk7CkBAIC0zMjgsNiArMzY5
LDkgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmIHNvdXJjZUNvZGUpCiAgICAgICAgIC8vIE5vdGU6IFRoaXMgaXMgd2hlcmUgdGhlIHNj
cmlwdCBpcyBjb21waWxlZCBhbmQgYWN0dWFsbHkgZXhlY3V0ZWQuCiAgICAgICAgIGZyYW1lLT5z
Y3JpcHQoKS5ldmFsdWF0ZShzb3VyY2VDb2RlKTsKICAgICB9CisgICAgLy8gRklYTUU6IFRoZSBt
b2R1bGUgbG9hZGVyIHNob3VsZCBoYXZlIHRoZSBtZWNoYW5pc20gdG8gc3RvcCBsb2FkaW5nLgor
ICAgIC8vIFRoZSBjdXJyZW50IGxvYWRlciBzcGVjIGRvZXMgbm90IGhhdmUgdGhpcy4gT25jZSBp
dCBpcyBzcGVjaWZpZWQKKyAgICAvLyB3ZSB3aWxsIGludHJvZHVjZSB0aGlzIGZlYXR1cmUuCiB9
CiAKIHZvaWQgU2NyaXB0RWxlbWVudDo6c3RvcExvYWRSZXF1ZXN0KCkKQEAgLTM1Miw2ICszOTYs
NjQgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2Ny
aXB0KQogICAgIGNhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogfQogCitib29sIFNj
cmlwdEVsZW1lbnQ6OmxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBv
c2l0aW9uKQoreworICAgIC8vIFRoZSBicm93c2VyIG1vZHVsZSBsb2FkZXIgbG9hZHMgdGhlIG1v
ZHVsZSBzb3VyY2VzLgorICAgIC8vIFNpbmNlIHRoZSBtb2R1bGUgaW52b2x2ZXMgbG9hZGluZyBv
ZiB0aGUgZGVwZW5kZW50IG1vZHVsZXMgYW5kIHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBkb2VzIG5v
dCBoYXZlIGNvcnJlc3BvbmRpbmcgc2NyaXB0IGVsZW1lbnRzLAorICAgIC8vIHRoZSBmdW5jdGlv
bmFsaXR5IG9mIGxvYWRpbmcgbW9kdWxlcyBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUgc2NyaXB0IGVs
ZW1lbnQuCisgICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKSB7CisgICAgICAgIFN0cmluZyBz
b3VyY2VVcmwgPSBzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpOworICAgICAgICBSZWY8RG9jdW1lbnQ+
IG9yaWdpbmFsRG9jdW1lbnQobV9lbGVtZW50LmRvY3VtZW50KCkpOworICAgICAgICBpZiAoIW1f
ZWxlbWVudC5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVcmwpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIFNjcmlwdCBlbGVtZW50IG1heSBiZSBkZXRhY2hl
ZCBhbmQgYXR0YWNoZWQgdG8gYSBkaWZmZXJlbnQgZG9jdW1lbnQgd2hpbGUgZXhlY3V0aW5nIHRo
ZSBldmVudCBsaXN0ZW5lci4KKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuaW5Eb2N1bWVudCgpIHx8
ICZtX2VsZW1lbnQuZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50LnB0cigpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChzdHJpcExlYWRpbmdBbmRUcmFpbGlu
Z0hUTUxTcGFjZXMoc291cmNlVXJsKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNo
RXJyb3JFdmVudCgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg
ICAgICAgLy8gRklYTUU6IFNob3VsZCBzdXBwb3J0IGNyb3NzLW9yaWdpbiBtb2RlIGluIHRoZSBt
b2R1bGUgdGFnLgorICAgICAgICAvLyBIb3dldmVyIHdlIGRvbid0IGhhdmUgdGhlIHBvbGljeSB0
byBhcHBseSB0aGlzIG1vZGUgdG8gdGhlIHJlc291cmNlcyBvZiB0aGUgZGVwZW5kZW50IG1vZHVs
ZXMuCisgICAgICAgIC8vIFByb3ZpZGVkIG11bHRpcGxlIG1vZHVsZSB0YWdzLAorICAgICAgICAv
LworICAgICAgICAvLyAgIEE6IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiIgY3Jvc3Nv
cmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CisgICAgICAgIC8vICAgQjogPHNjcmlwdCB0eXBl
PSJtb2R1bGUiIHNyYz0iLi4uIj48L3NjcmlwdD4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gJ0En
IGhhcyB0aGUgImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUuIEJ1dCAnQicgZG9lcyBub3QgaGF2ZSBp
dC4KKyAgICAgICAgLy8gSG93ZXZlciwgRVM2IG1vZHVsZXMgYWxsb3cgJ0EnIGFuZCAnQicgdG8g
bG9hZCB0aGUgc2FtZSBtb2R1bGUgYW5kIGl0IHdpbGwgYmUgY2FjaGVkIGluIHRoZQorICAgICAg
ICAvLyBtb2R1bGUgbG9hZGVyLiBJbiB0aGF0IGNhc2UsIGl0IGlzIGNvbnRyb3ZlcnNpYWwgdGhh
dCB3aGljaCAiY3Jvc3NvcmlnaW4iIGF0dHJpYnV0ZSB3aWxsIGJlCisgICAgICAgIC8vIGFwcGxp
ZWQgdG8gdGhlIG1vZHVsZSBsb2FkZWQgYnkgdGhlIGJvdGguIE9uY2UgdGhlIHNwZWMgb2YgdGhl
IG1vZHVsZSBsb2FkZXIgaXMgZml4ZWQsIHdlCisgICAgICAgIC8vIHNob3VsZCBmb2xsb3cgaXQu
CisKKyAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgbV9tb2R1bGVH
cmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNNb2R1bGVHcmFwaD4obV9lbGVtZW50KTsKKyAgICAg
ICAgbV9lbGVtZW50LmRvY3VtZW50KCkuc2NyaXB0UnVubmVyKCktPnF1ZXVlSlNNb2R1bGVHcmFw
aEZvckV4ZWN1dGlvbih0aGlzLCAqbV9tb2R1bGVHcmFwaCk7CisgICAgICAgIG1fbW9kdWxlR3Jh
cGgtPmxvYWQoc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIC8vIFJlc2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgor
ICAgIFRleHRQb3NpdGlvbiBwb3NpdGlvbiA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmlzSW5Eb2N1
bWVudFdyaXRlKCkgPyBUZXh0UG9zaXRpb24oKSA6IHNjcmlwdFN0YXJ0UG9zaXRpb247CisgICAg
U2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgbV9lbGVtZW50LmRv
Y3VtZW50KCkudXJsKCksIHBvc2l0aW9uKTsKKworICAgIHsKKyAgICAgICAgQVNTRVJUKG1fZWxl
bWVudC5kb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpKTsKKyAgICAgICAgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5JiBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSAqbV9lbGVtZW50
LmRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCk7CisgICAgICAgIGJvb2wgaGFzS25v
d25Ob25jZSA9IGNvbnRlbnRTZWN1cml0eVBvbGljeS5hbGxvd1NjcmlwdFdpdGhOb25jZShtX2Vs
ZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6Om5vbmNlQXR0
ciksIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKTsKKyAgICAgICAgaWYgKCFj
b250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50
KCkudXJsKCksIG1fc3RhcnRMaW5lTnVtYmVyLCBzb3VyY2VDb2RlLnNvdXJjZSgpLnRvU3RyaW5n
V2l0aG91dENvcHlpbmcoKSwgaGFzS25vd25Ob25jZSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBtX21vZHVsZUdyYXBoID0gc3RkOjptYWtlX3VuaXF1ZTxKU01vZHVs
ZUdyYXBoPihtX2VsZW1lbnQpOworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5l
cigpLT5xdWV1ZUpTTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgp
OworICAgIG1fbW9kdWxlR3JhcGgtPmxvYWQoc291cmNlQ29kZSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlKQogewogICAgIEFTU0VSVCghbV93aWxsQmVQYXJzZXJFeGVjdXRlZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCAxYWE0ZjJlODNiMzExMTcxMjQ2YTIzMGU2NTg4
MDYyZjljZjNkMDg0Li45MmQxNTM3ZGY3MmJlYTU4YzRmMzA0YzJjNDZjZTIwZTQyMGIwODYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxl
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9UZXh0UG9zaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtMzIsNiArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7
CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRWxlbWVudDsKK2NsYXNzIEpTTW9kdWxlR3Jh
cGg7CiBjbGFzcyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIApAQCAt
NTksNiArNjEsMTQgQEAgY2xhc3MgU2NyaXB0RWxlbWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQgewogICAgIGJvb2wgcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSBjb25zdCB7IHJl
dHVybiBtX3JlYWR5VG9CZVBhcnNlckV4ZWN1dGVkOyB9CiAgICAgYm9vbCB3aWxsRXhlY3V0ZVdo
ZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZygpIGNvbnN0IHsgcmV0dXJuIG1fd2lsbEV4ZWN1dGVX
aGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmc7IH0KICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0OyB9Cisg
ICAgSlNNb2R1bGVHcmFwaCogbW9kdWxlR3JhcGgoKSB7IHJldHVybiBtX21vZHVsZUdyYXBoLmdl
dCgpOyB9CisKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RN
b2R1bGVTY3JpcHQoVVJMKTsKKworICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI2NvbmNlcHQtc2NyaXB0LXR5cGUKKyAgICBlbnVtIGNs
YXNzIFNjcmlwdFR5cGUgeyBDbGFzc2ljLCBNb2R1bGUgfTsKKworICAgIFNjcmlwdFR5cGUgc2Ny
aXB0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbGFzc2ljU2NyaXB0ID8gU2NyaXB0VHlwZTo6
Q2xhc3NpYyA6IFNjcmlwdFR5cGU6Ok1vZHVsZTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0
RWxlbWVudChFbGVtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQp
OwpAQCAtNzYsMTMgKzg2LDEzIEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hl
ZFJlc291cmNlQ2xpZW50IHsKICAgICB2b2lkIGhhbmRsZUFzeW5jQXR0cmlidXRlKCk7CiAKIHBy
aXZhdGU6Ci0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2Ny
aXB0aW5nLmh0bWwjY29uY2VwdC1zY3JpcHQtdHlwZQotICAgIGVudW0gY2xhc3MgU2NyaXB0VHlw
ZSB7IENsYXNzaWMsIE1vZHVsZSB9OwogICAgIE9wdGlvbmFsPFNjcmlwdFR5cGU+IGRldGVybWlu
ZVNjcmlwdFR5cGUoTGVnYWN5VHlwZVN1cHBvcnQpIGNvbnN0OwogICAgIGJvb2wgaWdub3Jlc0xv
YWRSZXF1ZXN0KCkgY29uc3Q7CiAgICAgYm9vbCBpc1NjcmlwdEZvckV2ZW50U3VwcG9ydGVkKCkg
Y29uc3Q7CiAKLSAgICBib29sIHJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwp
OworICAgIGJvb2wgbG9hZE1vZHVsZShjb25zdCBUZXh0UG9zaXRpb24mKTsKKworICAgIGJvb2wg
cmVxdWVzdFNjcmlwdChTY3JpcHRUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7CiAgICAg
dm9pZCBzdG9wTG9hZFJlcXVlc3QoKTsKIAogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqKSBvdmVycmlkZTsKQEAgLTExMCw4ICsxMjAsMTAgQEAgY2xhc3MgU2NyaXB0RWxl
bWVudCA6IHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIGJvb2wgbV9mb3JjZUFz
eW5jIDogMTsKICAgICBib29sIG1fd2lsbEV4ZWN1dGVJbk9yZGVyIDogMTsKICAgICBib29sIG1f
cmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sIDogMTsKKyAgICBib29sIG1faXNDbGFzc2ljU2NyaXB0
IDogMTsKICAgICBTdHJpbmcgbV9jaGFyYWN0ZXJFbmNvZGluZzsKICAgICBTdHJpbmcgbV9mYWxs
YmFja0NoYXJhY3RlckVuY29kaW5nOworICAgIHN0ZDo6dW5pcXVlX3B0cjxKU01vZHVsZUdyYXBo
PiBtX21vZHVsZUdyYXBoOwogfTsKIAogLy8gRklYTUU6IHJlcGxhY2Ugd2l0aCBkb3duY2FzdDxT
Y3JpcHRFbGVtZW50Pi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggZDI2MDVi
ZGRiN2I1YjYyYjkxNDUzOGVmNjI2MmFjYjdiM2Q1MDAyZS4uMmJlYjQwZWZlNjUzMjJkYWM3YmQ2
YmQzNThhZjhmYTM5N2E4YmE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJKU01vZHVsZUdyYXBoLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1Nj
cmlwdC5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIApAQCAtNDcsNiArNDgsMTAgQEAg
U2NyaXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKCkKICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1l
bnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
cGVuZGluZ0FzeW5jU2NyaXB0cy5zaXplKCk7ICsraSkKICAgICAgICAgbV9kb2N1bWVudC5kZWNy
ZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbi5zaXplKCk7ICsraSkKKyAgICAgICAg
bV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLnNpemUoKTsgKytp
KQorICAgICAgICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKIH0K
IAogdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1l
bnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2Fj
aGVkU2NyaXB0LCBFeGVjdXRpb25UeXBlIGV4ZWN1dGlvblR5cGUpCkBAIC03MCw2ICs3NSwxOCBA
QCB2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVu
dCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUgogICAgIH0KIH0KIAordm9pZCBTY3JpcHRSdW5uZXI6
OnF1ZXVlSlNNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVt
ZW50LCBKU01vZHVsZUdyYXBoJikKK3sKKyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7CisKKyAg
ICBFbGVtZW50JiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOworICAgIEFTU0VS
VChlbGVtZW50LmluRG9jdW1lbnQoKSk7CisKKyAgICBtX2RvY3VtZW50LmluY3JlbWVudExvYWRF
dmVudERlbGF5Q291bnQoKTsKKworICAgIG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmFk
ZCgmZWxlbWVudCk7Cit9CisKIHZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKIHsKICAgICBt
X3RpbWVyLnN0b3AoKTsKQEAgLTk2LDYgKzExMywyNiBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6bm90
aWZ5U2NyaXB0UmVhZHkoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgRXhlY3V0aW9uVHlw
ZQogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIFNjcmlwdFJ1bm5lcjo6
bm90aWZ5SlNNb2R1bGVHcmFwaFJlYWR5KFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQpCit7
CisgICAgQVNTRVJUX1VOVVNFRChzY3JpcHRFbGVtZW50LCBtX3BlbmRpbmdNb2R1bGVTY3JpcHRF
bGVtZW50cy5jb250YWlucygmc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpKSk7CisKKyAgICAvLyBM
aXN0SGFzaFNldCBjb3JyZWN0bHkgcHJlc2VydmVzIHRoZSBpbnNlcnRpb24gb3JkZXIuCisgICAg
Ly8gQW5kIGl0IGFsbG93IHVzIHRvIHJlbW92ZSBlbGVtZW50IGR1cmluZyBpdGVyYXRpb24uCisg
ICAgYXV0byBpdGVyYXRvciA9IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmJlZ2luKCk7
CisgICAgd2hpbGUgKGl0ZXJhdG9yICE9IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmVu
ZCgpKSB7CisgICAgICAgIEpTTW9kdWxlR3JhcGgqIG1vZHVsZUdyYXBoID0gdG9TY3JpcHRFbGVt
ZW50SWZQb3NzaWJsZShpdGVyYXRvci0+Z2V0KCkpLT5tb2R1bGVHcmFwaCgpOworICAgICAgICBp
ZiAoIW1vZHVsZUdyYXBoLT5lcnJvck9jY3VycmVkKCkgJiYgIW1vZHVsZUdyYXBoLT5pc0xvYWRl
ZCgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGF1dG8gcHJldmlvdXMgPSBpdGVyYXRv
cjsKKyAgICAgICAgKytpdGVyYXRvcjsKKyAgICAgICAgbV9tb2R1bGVTY3JpcHRFbGVtZW50c1Rv
RXhlY3V0ZVNvb24uYXBwZW5kKCpwcmV2aW91cyk7CisgICAgICAgIG1fcGVuZGluZ01vZHVsZVNj
cmlwdEVsZW1lbnRzLnJlbW92ZShwcmV2aW91cyk7CisgICAgfQorICAgIGlmICghbV9tb2R1bGVT
Y3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpKQorICAgICAgICBtX3RpbWVyLnN0
YXJ0T25lU2hvdCgwKTsKK30KKwogdm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogewog
ICAgIFJlZjxEb2N1bWVudD4gcHJvdGVjdChtX2RvY3VtZW50KTsKQEAgLTExOSw2ICsxNTYsMjAg
QEAgdm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5leGVjdXRlKGNhY2hlZFNjcmlwdCk7CiAgICAg
ICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIH0KKwor
ICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IG1vZHVsZVNjcmlwdEVsZW1lbnRzOworICAgIG1v
ZHVsZVNjcmlwdEVsZW1lbnRzLnN3YXAobV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNv
b24pOworCisgICAgZm9yIChSZWZQdHI8RWxlbWVudD4mIHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVt
ZW50IDogbW9kdWxlU2NyaXB0RWxlbWVudHMpIHsKKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVs
ZW1lbnQ7CisgICAgICAgIHBlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50LnN3YXAoZWxlbWVudCk7
CisgICAgICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICAgICAgLy8gUGFwZXIgb3ZlciBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDUwCisgICAgICAgIGlmICghZWxl
bWVudCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0b1NjcmlwdEVsZW1lbnRJZlBv
c3NpYmxlKGVsZW1lbnQuZ2V0KCkpLT5tb2R1bGVHcmFwaCgpLT5ldmFsdWF0ZSgpOworICAgICAg
ICBtX2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICB9CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAppbmRleCA4Y2QzMzJhNTczNGMxY2I5MmYyYTVm
ZjVmYzRjY2ExNThmZTNiYzQxLi44MmNmNWU3YjNmNDY5NzgxMmE2ZjhiZWI4MTM5YjE2ZTUwZjYy
MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC0zNiw2
ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OworY2xhc3MgSlNNb2R1bGVHcmFwaDsKIGNsYXNz
IFBlbmRpbmdTY3JpcHQ7CiBjbGFzcyBTY3JpcHRFbGVtZW50OwogCkBAIC00NywxMSArNTAsMTQg
QEAgY2xhc3MgU2NyaXB0UnVubmVyIHsKIAogICAgIGVudW0gRXhlY3V0aW9uVHlwZSB7IEFTWU5D
X0VYRUNVVElPTiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07CiAgICAgdm9pZCBxdWV1ZVNjcmlwdEZv
ckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2Ny
aXB0PiwgRXhlY3V0aW9uVHlwZSk7Ci0gICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0
IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRz
VG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0Vt
cHR5KCk7IH0KKyAgICB2b2lkIHF1ZXVlSlNNb2R1bGVHcmFwaEZvckV4ZWN1dGlvbihTY3JpcHRF
bGVtZW50KiwgSlNNb2R1bGVHcmFwaCYpOworICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBj
b25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2Ny
aXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMu
aXNFbXB0eSgpIHx8ICFtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbi5pc0VtcHR5
KCkgfHwgIW1fcGVuZGluZ01vZHVsZVNjcmlwdEVsZW1lbnRzLmlzRW1wdHkoKTsgfQogICAgIHZv
aWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAgICAgdm9pZCBub3RpZnlTY3JpcHRS
ZWFkeShTY3JpcHRFbGVtZW50KiwgRXhlY3V0aW9uVHlwZSk7CiAKKyAgICB2b2lkIG5vdGlmeUpT
TW9kdWxlR3JhcGhSZWFkeShTY3JpcHRFbGVtZW50Kik7CisKIHByaXZhdGU6CiAgICAgdm9pZCB0
aW1lckZpcmVkKCk7CiAKQEAgLTU5LDYgKzY1LDggQEAgY2xhc3MgU2NyaXB0UnVubmVyIHsKICAg
ICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlcjsKICAgICBW
ZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9FeGVjdXRlU29vbjsgLy8gaHR0cDovL3d3
dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jc2V0LW9mLXNjcmlwdHMt
dGhhdC13aWxsLWV4ZWN1dGUtYXMtc29vbi1hcy1wb3NzaWJsZQogICAgIEhhc2hNYXA8U2NyaXB0
RWxlbWVudCosIFBlbmRpbmdTY3JpcHQ+IG1fcGVuZGluZ0FzeW5jU2NyaXB0czsKKyAgICBWZWN0
b3I8UmVmUHRyPEVsZW1lbnQ+PiBtX21vZHVsZVNjcmlwdEVsZW1lbnRzVG9FeGVjdXRlU29vbjsK
KyAgICBMaXN0SGFzaFNldDxSZWZQdHI8RWxlbWVudD4+IG1fcGVuZGluZ01vZHVsZVNjcmlwdEVs
ZW1lbnRzOwogICAgIFRpbWVyIG1fdGltZXI7CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzZkOGNmOTg0ZGM1N2Ji
ZDZkYWQ5OGE5ZWZkMzhjMjc0ZjNkMjUyNy4uNDhlYTZlYzJkOTZkMDA0OTJlNjE3ZTg1Yjg0MGIy
NjQ2YmY4MzMzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE2LTA4LTI2ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEludGVncmF0ZSBF
UzYgTW9kdWxlcyBpbnRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0ODg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9t
L21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJl
LXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3It
c2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1t
aXhlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWlj
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1pbmxpbmUtZHlu
YW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1w
bGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgt
c3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2
ZW50LXdpdGgtc3JjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1l
dmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1
bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9t
LWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9k
dWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0
aC1zcmMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJy
b3ItZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtZHluYW1p
Yy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFt
aWMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtdHlwZS1jYXNlLWluc2Vuc2l0aXZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS10eXBlLWNhc2UtaW5z
ZW5zaXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS13aWxsLWZpcmUt
YmVmb3JlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
d2lsbC1maXJlLWJlZm9yZWxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL3Njcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanM6IEFkZGVkLgorICAgICAgICAq
IGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQt
Mi5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLW1peGVkLWNhcHB1Y2Npbm8uanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qczogQWRkZWQu
CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1p
eGVkLW1hdGNoYS5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qczogQWRkZWQuCisgICAgICAgIChleHBv
cnQuZGVmYXVsdC5Db2NvYS5wcm90b3R5cGUudGFzdGUpOgorICAgICAgICAoZXhwb3J0LmRlZmF1
bHQuQ29jb2EpOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1z
aW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90eXBl
LnRhc3RlKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBqcy9k
b20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5q
czogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFt
aWMtY29jb2EuanM6IEFkZGVkLgorICAgICAgICAoQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAg
ICAgICAgKENvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMt
ZHluYW1pYy5qczogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
c3JjLXNpbXBsZS1jb2NvYS5qczogQWRkZWQuCisgICAgICAgIChDb2NvYS5wcm90b3R5cGUudGFz
dGUpOgorICAgICAgICAoQ29jb2EpOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLXNyYy1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzOiBBZGRlZC4KKwogMjAxNi0wOC0yNSAgSmll
d2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJl
YmFzZSBpT1Mgc2ltdWxhdG9yIFdLMSBpbXBvcnRlZC93M2MgdGVzdHMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDUyZTIzZWFmM2E5OTFhYmExNmNhZWVlYWM1YjA1NGNkY2U2Njg2MWUuLmI1NTlmZTIy
Y2ExODUxOTZhZWU3MTQxMzExNzYyMTdkNjg2NzA2YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTI0NSwzICsxMjQ1LDIxIEBAIHdlYmtpdC5vcmcvYi8xNTk3NTUgZmFzdC90ZXh0L2Vtb2ppLWdl
bmRlci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTYwMDE3IGpzL3Jl
Z3Jlc3MtMTM5NTQ4Lmh0bWwgWyBTbG93IF0KIAogd2Via2l0Lm9yZy9iLzE2MTA4OCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZy9yZXNvdXJjZS10aW1pbmcu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKKyMgRVM2IE1vZHVsZXMgYXJlIG5vdCB5ZXQgZW5hYmxl
ZCBieSBkZWZhdWx0OiBFTkFCTEUoRVM2X01PRFVMRVMpCisjIGpzL2RvbS9tb2R1bGUtZXhlY3V0
aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRv
LW9uZXJyb3IuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1z
aG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21v
ZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVs
ZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWlu
bGluZS1keW5hbWljLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxl
Lmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWwg
WyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwgWyBTa2lwIF0KKyMganMv
ZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5
bmFtaWMuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJv
bS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLW5v
dC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwgWyBTa2lwIF0KKyMg
anMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbCBbIFNraXAg
XQorIyBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sIFsgU2tpcCBdCisj
IGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxl
LXNyYy1zaW1wbGUuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZv
cmVsb2FkLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9w
YWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3Bh
Z2F0ZWQtdG8tb25lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJkYjI3NWEyZmI4MzQ4
OTY0ZmJlOGRlYjgyNTUzYjRiOWRiOWE1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK1Rlc3Qgd2luZG93Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBkZXBlbmRlbnQg
bW9kdWxlIHRocm93IGFuIGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgdGhlIGRlcGVuZGVudCBtb2R1
bGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNp
ZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5k
ZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTc3YjVkZDc2NGRiZTI0MzQyM2QxYzM4ZTM3NGNjMGZkZGMyNDM3MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1k
ZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApAQCAt
MCwwICsxLDIyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGRlcGVuZGVudCBt
b2R1bGUgdGhyb3cgYW4gZXJyb3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3lu
Y2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUg
aXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKCkgewor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+
CitpbXBvcnQgInNjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBl
bmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMiCit0ZXN0RmFp
bGVkKCJleGVjdXRlZCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJv
cGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE1ZGY3MDI4ZjM1NDkzNjY5MjkyMmVmZTYxYTJkZmJhNWYxZjA5
MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUg
aW5saW5lZCBtb2R1bGUgdGhyb3dzIGFuIGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgdGhlIG1vZHVs
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91
bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzQ0NjJmMzdlZDgxNzMwNjFmN2Y5OTUzNmM0MmQyOTk1YzI1MjcyOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9y
LXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApAQCAtMCwwICsxLDIyIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB3aW5kb3cu
b25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGlubGluZWQgbW9kdWxlIHRocm93cyBhbiBl
cnJvci4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQg
eWV0LicpOword2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgZmluaXNoSlNUZXN0
KCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2RlYnVnKCdFeGVjdXRp
bmcgdGhlIG1vZHVsZS4nKTsKK3Rocm93IG5ldyBFcnJvcigibW9kdWxlIGlzIGV4ZWN1dGVkLiIp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mZmZkZjMzOTc1N2E0YTM3OTY0ZTg4OWFlYzY5YWZjYzU5OWFiNzhmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
aW5saW5lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSBleGVjdXRp
b24gb3JkZXIgYmV0d2VlbiBpbmxpbmVkIG1vZHVsZSB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIGNvdW50Kysg
aXMgMAorUEFTUyBjb3VudCsrIGlzIDEKK1BBU1MgY291bnQrKyBpcyAyCitQQVNTIGNvdW50Kysg
aXMgMworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlu
bGluZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5s
aW5lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTUyNWU3NjkwOGNmYjZmZWEwMTA3ZjRkYWFkZDFkMjkzMWJm
M2NlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLWlubGluZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIg
YmV0d2VlbiBpbmxpbmVkIG1vZHVsZSB0YWdzLicpOword2luZG93LmNvdW50ID0gMDsKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworc2hvdWxk
QmUoImNvdW50KysiLCAiMCIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+Citz
aG91bGRCZSgiY291bnQrKyIsICIxIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxl
Ij4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjIiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJt
b2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiMyIpOworZmluaXNoSlNUZXN0KCk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMzdmNTI0ZjUzMTkwNWQ4YTUzZjQ0YTMzYWI2ZmZiNDAwMTIxMDMwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBi
ZXR3ZWVuIG1peGVkIHRhZ3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitXZSBr
ZWVwIHRoZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLgorTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuCitQQVNTIGNvdW50KysgaXMgMAorUEFTUyBjb3VudCsrIGlzIDEKK1BBU1Mg
Y291bnQrKyBpcyAyCitQQVNTIGNvdW50KysgaXMgMworUEFTUyBjb3VudCsrIGlzIDQKK1BBU1Mg
Y291bnQrKyBpcyA1CitQQVNTIGNvdW50KysgaXMgNgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxOTFkMzAzZWRk
NzU3NzM4MTI4ZGQ5ZDE1YmI0MGM3ZTc2YzJjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCkBAIC0wLDAgKzEs
MjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0
IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBtaXhlZCB0YWdzLicpOworZGVidWcoJ1dl
IGtlZXAgdGhlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIG1vZHVsZXMuJyk7Cit3aW5kb3cuY291
bnQgPSAwOworCisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRl
c3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSJtb2R1bGUiPgorc2hvdWxkQmUoImNvdW50KysiLCAiNCIpOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC0yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJl
KCJjb3VudCsrIiwgIjYiKTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5h
bWljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5saW5lLWR5bmFt
aWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjOTM5YWFmMGE1MDE1ZjQ3OTM4NmNkMzE5NWFh
NTlkZDE2OTA5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IGlubGlu
ZWQgbW9kdWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5v
dCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1
bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0
eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3Rl
KCkgaXMgImF3ZXNvbWUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUt
ZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE4YzBlMjU5YWIyOTFlZmZjNGJlZTc4YWU2NWMzNDE3YzExZDA1ZWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1keW5h
bWljLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oJ1Rlc3QgaW5saW5lZCBtb2R1bGUuJyk7CisKKy8vIE1vZHVsZSB3aWxs
IGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LicpOworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNjcmlwdCIpOworICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSBgCisgICAgICAgIGlt
cG9ydCBDb2NvYSBmcm9tICIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5bmFtaWMuanMi
OworICAgICAgICB2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworICAgICAgICBkZWJ1ZygiTW9k
dWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOwor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQi
KTsKKworICAgICAgICB3aW5kb3cuZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUoKSIsICJhd2Vz
b21lIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIGA7CisgICAgZWxlbWVudC50eXBl
ID0gIm1vZHVsZSI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK30g
KCkpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Yzkz
OWFhZjBhNTAxNWY0NzkzODZjZDMxOTVhYTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitUZXN0IGlubGluZWQgbW9kdWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9u
IGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2Nv
YSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0Igor
UEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkgaXMgImF3ZXNvbWUiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGJjZjA2MGQxYmQ2OTQ1YjA4
OTE2ZWJhMTUyOWE1NThmZTZiMmQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgaW5saW5lZCBtb2R1bGUu
Jyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVs
ZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVs
ZSI+CitpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1w
bGUuanMiOwordmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1bGUgZXhlY3V0
aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2luZG93LmV4cG9y
dGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGV4cG9ydGVk
Q29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2Eu
dGFzdGUoKSIsICJhd2Vzb21lIik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg2MjY2ODAyZGE1N2M3NThjZTNlNGEyZjMxZDc4OTBk
MGU1YjdkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9h
ZC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBtb2R1bGUgZXhlY3V0
aW9uIG9yZGVyIGJldHdlZW4gdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGFuIGlubGluZWQgbW9kdWxl
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1z
cmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YTJmOWI5OTYxNmZmNDcwYWVlMmE0NWU3MmJi
ZGE2ZWZhY2Q0MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qg
c2NyaXB0Lm9ubG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcgd2l0aCBzcmMg
bG9hZHMgYW5kIGV4ZWN1dGVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgYSBtb2R1bGUgd2l0aCBzcmMgYXR0
cmlidXRlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRo
LXNyYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3Jj
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDk0YTRhMzA3MGE5NmU2ZGFjYmQ4Yjc0NmE3N2MwNTdhNDJjNTZh
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVu
dC13aXRoLXNyYy5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmxvYWQgd2lsbCBiZSBmaXJlZCB3
aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGxvYWRzIGFuZCBleGVjdXRlcy4nKTsKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3QoKSIgc3JjPSJz
Y3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2Fk
LWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYmI4YzgwOWYyZDQ1Y2QzZjMxNzg5YWZlMmRmN2IzMGRjZTFmNDVkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oJ1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3MuJyk7CisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0KCkiPgorZGVi
dWcoJ0V4ZWN1dGluZyBhbiBpbmxpbmVkIG1vZHVsZS4nKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUt
bW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50
LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxYWI0OWQxNDk3
NjI0ZGYyMmUwMzQ3OTdiMzlhYThlYzg2OTRlY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnkt
cG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorMiBkaWZmZXJlbnQg
bW9kdWxlIHRhZyB3aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUgZnJvbSBhIGR5
bmFtaWNhbGx5IGdlbmVyYXRlZCB0YWcKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBz
aG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4KK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LgorRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50LmpzLgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
ZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5
bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1m
cm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVkNTFl
MmI2Y2VhODYxN2JhY2YwYzQwZTMzN2U5MDlhMWQzMWEzOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1l
bnRyeS1wb2ludC1keW5hbWljLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1vZHVsZSB0YWcgd2ls
bCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGZyb20gYSBkeW5hbWljYWxseSBnZW5l
cmF0ZWQgdGFnJyk7CitkZWJ1ZygnQ3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZpbmVkIGluIHRo
ZSBzcGVjLiBUaGlzIGlzc3VlIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJlLicpOworLy8g
TW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVs
ZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIgorZGVidWco
J0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOwordmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzY3JpcHQiKTsKK2VsZW1lbnQudHlwZSA9ICJtb2R1bGUiOworZWxlbWVudC5pbm5l
clRleHQgPSAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVy
ZW50LWVudHJ5LXBvaW50LmpzIjsKK2VsZW1lbnQub25lcnJvciA9IGZpbmlzaEpTVGVzdCgpOwor
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUt
bW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1w
b2ludC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmOThmY2NiNmZhZmEwNjQ0N2UzMDMyZWYw
NmQ5ODIwMjdmMjUxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1
bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNCBAQAorMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxsIGF0dGVtcHQg
dG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhpcyBpc3N1ZSBz
aG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4KK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LgorRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50LmpzLgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitFeGVjdXRpbmcgdGhlIG1vZHVsZS4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9h
ZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYwNmQ0ZTBiNjNjZGMwMTI3NDEzM2JlZmQ5Mzg0NDI1NTU1OGIxODcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZm
ZXJlbnQtZW50cnktcG9pbnQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxs
IGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUnKTsKK2RlYnVnKCdDdXJyZW50bHksIHRo
aXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGZpeGVk
IGluIHRoZSBmdXR1cmUuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25v
dXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90
IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1w
b3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQt
ZW50cnktcG9pbnQuanMiCitkZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgpIj4KK2ltcG9y
dCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVu
dHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxl
LW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM4
YmEzYzJlNzk5NzdlMmM5Zjc5MzQ4MDk3MzZmZDk4MzdkNzJmOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogU3ludGF4RXJy
b3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgIm5vdC1mb3VuZC5qcyIuIEV4cGVjdGVkICdm
cm9tJyBiZWZvcmUgaW1wb3J0ZWQgbW9kdWxlIG5hbWUuCitUZXN0IHNjcmlwdC5vbmVycm9yIHdp
bGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBpbXBvcnQgZGVj
bGFyYXRpb24gaW4gdGhlIGlubGluZWQgbW9kdWxlIGlzIG5vdCBmb3VuZC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3Jj
LWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3Qt
Zm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzQ4Nzg3NTAxYTEyOTI3NjgxMDkxODc5MDdhZmM0N2RmYjZkMjg5MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qg
c2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVjaWZpZWQg
YnkgdGhlIGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVsZSBpcyBub3Qg
Zm91bmQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGVmMzk4Njg1YWUwNWExMWNlOGExZTBiMjIwOThlOTg1MzFkNjI5MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2
ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQub25lcnJvciB3
aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUgaW1wb3J0IGRl
Y2xhcmF0aW9uIGluIHRoZSBkZXBlbmRlbnQgbW9kdWxlIGlzIG5vdCBmb3VuZC4nKTsKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworZnVuY3Rp
b24gb25FcnJvcigpCit7CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5p
c2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJzY3Jp
cHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0
LmpzIiBvbmVycm9yPSJvbkVycm9yKCkiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91
bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MGQxNWRm
ZTZkMDliZmM2Yjg1ODNhNDhkZWM2ZGNiMWI1YjE0MTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZp
cmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSAic3JjIiBpcyBub3QgZm91bmQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHll
dC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJy
b3ItZXZlbnQtd2l0aC1zcmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmE0N2Y2MTA2OWFmZWNiY2IzOGIw
YTk1NzU2MjVjZTgyZGY0ODE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbApAQCAtMCwwICsxLDIx
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBz
Y3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBi
eSAic3JjIiBpcyBub3QgZm91bmQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3lu
Y2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUg
aXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQoreworICAgIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ibm90LWZvdW5kLmpzIiBvbmVycm9yPSJvbkVycm9y
KCkiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNiNTk0
YzY0NjgzOGU0YzM1ZTM3NTYxZjZkY2UzZDgzNzcwYjc3MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwKQEAgLTAs
MCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
J1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBzcGVj
aWZpZWQgYnkgdGhlIGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgaW5saW5lZCBtb2R1bGUgaXMg
bm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHku
Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVj
dXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sKKyAgICBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0ibW9kdWxlIiBvbmVycm9yPSJvbkVycm9yKCkiPgoraW1wb3J0IGZyb20gIm5vdC1mb3VuZC5q
cyI7Cit0ZXN0RmFpbGVkKCdleGVjdXRlZCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNkOGIwMDYyNDkwZWM3MjI5NWNmZjUwNjFhMDgzOWU0MDAyMGNkOGEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5hbWlj
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSB3aXRoICJzcmMiIGF0
dHJpYnV0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxl
IGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIKK1BBU1MgdHlw
ZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2NvYS50YXN0ZSgp
IGlzICJuaWNlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMu
aHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zODRmZjQyNjRmOTgxZmU5NjQ5ZWQzYTcyMWIxY2ZhNGZhNWU5MWNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5odG1sCkBAIC0w
LDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCdUZXN0IG1vZHVsZSB3aXRoICJzcmMiIGF0dHJpYnV0ZS4nKTsKKworLy8gTW9kdWxlIHdpbGwg
YmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
Jyk7CisoZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2NyaXB0Jyk7CisgICAgZWxlbWVudC50eXBlID0gJ21vZHVsZSc7CisgICAgZWxlbWVu
dC5zcmMgPSAnLi9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzJzsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworfSgpKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtc2lt
cGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q4YjAwNjI0OTBlYzcyMjk1Y2ZmNTA2MWEwODM5ZTQw
MDIwY2Q4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3Jj
LXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1bGUgd2l0aCAi
c3JjIiBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUg
aXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhl
IG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRlZmluZWQiCitQ
QVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9ydGVkQ29jb2Eu
dGFzdGUoKSBpcyAibmljZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1z
aW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBsZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNmNzNiMGM1NGEyNWE0Zjc2YzE0YTNiNWRjMzE3M2ZlODkzY2IzY2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRtbApA
QCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8vIE1vZHVsZSB3
aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQg
eWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuL3NjcmlwdC10
ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXR5cGUtY2FzZS1pbnNlbnNpdGl2
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXR5cGUtY2FzZS1pbnNl
bnNpdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc2ODAxOTNkM2UyNWY4MzAzYzFkMDI2
NzEwYTg4ZTllOWM3ZTlhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtdHlwZS1jYXNlLWluc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CitUZXN0IHRoYXQgdHlwZT0ibW9kdWxlIiBzaG91bGQgYmUgY2FzZS1pbnNlbnNpdGl2ZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LgorTW9kdWxlIGlzIGxvYWRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXR5
cGUtY2FzZS1pbnNlbnNpdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS10eXBl
LWNhc2UtaW5zZW5zaXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWYxNDZiMTc0NmJmMTIxZmNjZWZl
OGI3MDk3YTczMjRhNDFiYzk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS10eXBlLWNhc2UtaW5zZW5zaXRpdmUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IHR5cGU9
Im1vZHVsZSIgc2hvdWxkIGJlIGNhc2UtaW5zZW5zaXRpdmUuJyk7CisKKy8vIE1vZHVsZSB3aWxs
IGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworCitQcm9taXNlLmFsbChbCisgICAgbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsK
KyAgICAgICAgd2luZG93LnJlc29sdmUxID0gcmVzb2x2ZTsKKyAgICB9KSwKKyAgICBuZXcgUHJv
bWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgeworICAgICAgICB3aW5kb3cucmVzb2x2ZTIgPSByZXNv
bHZlOworICAgIH0pLAorXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgZGVidWcoJ01vZHVsZSBp
cyBsb2FkZWQuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKK2RlYnVnKCdNb2R1bGUgaXMg
bm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHR5cGU9Ik1vRHVMZSI+
CitpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUu
anMiOword2luZG93LnJlc29sdmUxKCk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCB0eXBlPSJNT0RV
TEUiPgoraW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtc2lt
cGxlLmpzIjsKK3dpbmRvdy5yZXNvbHZlMigpOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9y
ZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUt
YmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4ZDk3MDhkYjNlMDVjNGIwMTAz
YmU3ZGNlYjBjMDA3MTE3NWM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK1Rlc3Qgc2NyaXB0LmJlZm9yZWxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUg
dGFnIHdpdGggc3JjIGlzIHByZXBhcmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9t
L21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYmZmMTY1M2QwNmMw
NmUxZDc0MTc5ZDAxMTAwMzZlMTQ5ZDg2OTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwxNiBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgc2Ny
aXB0LmJlZm9yZWxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3Jj
IGlzIHByZXBhcmVkLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3Vz
bHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmJlZm9y
ZWxvYWQ9ImZpbmlzaEpTVGVzdCgpIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUtd2lsbC1maXJl
LWJlZm9yZWxvYWQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWlu
c2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhy
b3cuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24t
ZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25l
cnJvci10aHJvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmMxNWFmMjE0MmI0ODAyNjAyZWFkMDM3MDBmOGJi
ZTAxYmMyYmVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3Vs
ZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanMKQEAgLTAsMCArMSwyIEBACitkZWJ1
ZygiRXhlY3V0aW5nIHRoZSBkZXBlbmRlbnQgbW9kdWxlIik7Cit0aHJvdyBuZXcgRXJyb3IoIm91
dCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3IuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3Bh
Z2F0ZWQtdG8tb25lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmM3Y2E0NzliMjU4ODliMDBjYTI0Y2Q1
YmJlMzMxZGFhNjVmNzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxl
LXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMKQEAgLTAsMCArMSwyIEBACitpbXBv
cnQgIm1vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxk
LWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcyIKK3Rlc3RGYWlsZWQoImV4ZWN1dGVk
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1l
eGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzM2I5ZDM1
MmFlYzU3YjA2MWRkYmUwMGI3Y2Y5NGVhNTc0YWVjNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQt
Mi5qcwpAQCAtMCwwICsxIEBACitzaG91bGRCZSgiY291bnQrKyIsICI1Iik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
bWl4ZWQtY2FwcHVjY2luby5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMTQ2
ZmQ3NjZlNTVhMDJhZTc4YmFmOWRkNjMzOThlYjg1YTg5MGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4
ZWQtY2FwcHVjY2luby5qcwpAQCAtMCwwICsxLDMgQEAKK2ltcG9ydCAibW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC1tYXRjaGEuanMiCisKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjIiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNThkNzMy
NDNmZWYzMGEwYjQ5NDlkYmE3ZmJmODUzNGVlYmE5ZjczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
LWNvY29hLmpzCkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUtZXhlY3V0aW9uLW9yZGVy
LW1peGVkLW1hdGNoYS5qcyI7CisKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjEiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1tYXRjaGEuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZTE1ZDdjZjBj
ZmY0ZWFhMWEwYjVhMWVlODNkY2NlMzI0YTI1ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0
Y2hhLmpzCkBAIC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjAiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1
dGlvbi1vcmRlci1taXhlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDM4NmZiYjg2ODFjYmY3ZTU5YzQ3Mzc2
MzdlODdiZTM4Y2ZmNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzCkBAIC0wLDAgKzEsNCBA
QAoraW1wb3J0ICIuL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2EuanMiCitpbXBv
cnQgIi4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzIgorCitzaG91
bGRCZSgiY291bnQrKyIsICIzIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MzYwYTdi
ZmU3ZTA1YTBjYjI1Mzg0MTM2N2U3MWRjMWU5M2I1YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcwpAQCAt
MCwwICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29hIHsKKyAgICB0YXN0ZSgpIHsK
KyAgICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5qcyBiL0xheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjQzNjBhN2JmZTdlMDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1z
aW1wbGUuanMKQEAgLTAsMCArMSw1IEBACitleHBvcnQgZGVmYXVsdCBjbGFzcyBDb2NvYSB7Cisg
ICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVybiAiYXdlc29tZSI7CisgICAgfQorfTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQt
d2l0aC1zcmMuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2Fk
LWV2ZW50LXdpdGgtc3JjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiODcwMjkwZDNlYzdlMDgwYzA1ZjlmNjY2
ODQ0Y2QwNjc1MjlmZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzCkBAIC0wLDAgKzEgQEAKK2Rl
YnVnKCdFeGVjdXRpbmcgYSBtb2R1bGUgd2l0aCBzcmMgYXR0cmlidXRlLicpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1zYW1lLW1vZHVs
ZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9p
bnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDVhZDc3ZjgwMDgwNDM4MWJmNGYxZWFkYjUxN2Y1NjBmMGM0ZWI2
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuanMKQEAgLTAs
MCArMSBAQAorZGVidWcoJ0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRp
ZmZlcmVudC1lbnRyeS1wb2ludC5qcy4nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQt
aW1wb3J0LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbm90LWZv
dW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGMxYjQ3
MTQ4MTM4YTBlYzQ1MjJjMjI3MjMzYTNjNzQxMzM3MTI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy1hbmQtaW1wb3J0LmpzCkBAIC0wLDAgKzEgQEAKK2ltcG9ydCAibm90LWZvdW5k
LmpzIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
c3JjLWR5bmFtaWMtY29jb2EuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Nzk1OTJkYzUxM2NmMjU5ODQx
ZmY5ZDQ2MzkwNDUxMmIwZWNiNzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanMKQEAgLTAsMCArMSw3
IEBACitjbGFzcyBDb2NvYSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVybiAibmljZSI7
CisgICAgfQorfQorCitleHBvcnQgZGVmYXVsdCBDb2NvYTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzIGIvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjUxYTdiZTZiNGYxMjkzYWY1OTY4NmZlM2U1NzgwMWQyZTA5NmMzNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpz
CkBAIC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBDb2NvYSBmcm9tICIuL21vZHVsZS1zcmMtZHluYW1p
Yy1jb2NvYS5qcyI7Cit2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworZGVidWcoIk1vZHVsZSBl
eGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4iKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5lZCIpOworCit3aW5kb3cu
ZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgZXhw
b3J0ZWRDb2NvYSIsICJvYmplY3QiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZXhwb3J0ZWRD
b2NvYS50YXN0ZSgpIiwgIm5pY2UiKTsKK2ZpbmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2NvYS5qcyBi
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2Eu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDc5NTkyZGM1MTNjZjI1OTg0MWZmOWQ0NjM5MDQ1MTJiMGVjYjc0NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LXNyYy1zaW1wbGUtY29jb2EuanMKQEAgLTAsMCArMSw3IEBACitjbGFzcyBDb2NvYSB7CisgICAg
dGFzdGUoKSB7CisgICAgICAgIHJldHVybiAibmljZSI7CisgICAgfQorfQorCitleHBvcnQgZGVm
YXVsdCBDb2NvYTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
bW9kdWxlLXNyYy1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1zcmMtc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkOWM3NzRmZDllN2E1YzlkMTg1OTI0MDQ0
ZTdhMjc4YWQ3MzM3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBD
b2NvYSBmcm9tICIuL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzIjsKK3ZhciBjb2NvYSA9IG5l
dyBDb2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUg
bW9kdWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgY29j
b2EiLCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRlZENvY29hID0gY29jb2E7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVjdCIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAibmljZSIpOworZmlu
aXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYTM5
MzgzNTYzM2FlYzU1ZTVlNTk1NzI5ZGE2OTE5ZTljMzIwM2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9h
ZC5qcwpAQCAtMCwwICsxIEBACit0ZXN0RmFpbGVkKCJleGVjdXRlZCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287165</attachid>
            <date>2016-08-26 15:50:33 -0700</date>
            <delta_ts>2016-08-28 02:09:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148897-20160826154829.patch</filename>
            <type>text/plain</type>
            <size>162845</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MjA5NTczNTZjZDk0Y2YzZTM4ZjA1YzJjMGFmNWZlZDA3Y2FmMmI0Li40ZjY5ZDM1NmUxYzZmNGVm
ZTBkMDg5OGFjYjc0OWJkNTk2YmIyZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxNi0wOC0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbnRlZ3JhdGUgRVM2IE1vZHVsZXMgaW50byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ1aWx0
aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qczoKKyAgICAgICAgKHJlcXVlc3RGZXRjaCk6Cisg
ICAgICAgIChyZXF1ZXN0VHJhbnNsYXRlKToKKyAgICAgICAgKHJlcXVlc3RJbnN0YW50aWF0ZSk6
CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyk6CisgICAgICAgIChyZXF1ZXN0
SW5zdGFudGlhdGVBbGwpOgorICAgICAgICAocmVxdWVzdExpbmspOgorICAgICAgICAobW9kdWxl
RXZhbHVhdGlvbik6CisgICAgICAgIChwcm92aWRlKToKKyAgICAgICAgKGxvYWRBbmRFdmFsdWF0
ZU1vZHVsZSk6CisgICAgICAgIChyZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcy4pOiBEZWxldGVk
LgorICAgICAgICAocmVxdWVzdFJlYWR5KTogRGVsZXRlZC4KKyAgICAgICAgKGxpbmspOiBEZWxl
dGVkLgorICAgICAgICAobG9hZE1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChsaW5rQW5kRXZh
bHVhdGVNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9i
YWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgICogcnVudGltZS9Db21wbGV0aW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6bG9hZE1v
ZHVsZSk6CisgICAgICAgIChKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
cnVudGltZS9Db21wbGV0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoSlNDOjpK
U01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNN
b2R1bGVMb2FkZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6
bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OnJl
c29sdmUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAo
SlNDOjpKU01vZHVsZUxvYWRlcjo6dHJhbnNsYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVM
b2FkZXI6Omluc3RhbnRpYXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogcnVu
dGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJQcm90b3R5cGVSZXNvbHZlKToKKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyUHJvdG90eXBl
RmV0Y2gpOgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVUcmFuc2xhdGUpOgor
ICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZSk6CisgICAgICAg
IChKU0M6Om1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlKToKKyAgICAgICAgKiBydW50aW1l
L1N5bWJvbC5oOgorCiAyMDE2LTA4LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ01ha2UgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDcx
NzgyM2NjZTI3MDNhZWE3MWUzOWRkOGE1OWQ0ZjkwZGFhYTZjYmEuLmVjZjZhOGYzZDMyNTdjZmVm
ZTQ5N2RiZTgyZTIzNzVkOTk2ZDg4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDQgQEAKKzIw
MTYtMDgtMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW0VTNl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGpzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3IuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1leGVjdXRp
b24tZXJyb3Itc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5odG1sCisgICAgICAgICAg
ICAgICBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1pbmxpbmUuaHRtbAorICAgICAgICAg
ICAgICAganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQuaHRtbAorICAgICAgICAg
ICAgICAganMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sCisgICAgICAgICAgICAgICBq
cy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21v
ZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9tb2R1
bGUtbG9hZC1ldmVudC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLWxvYWQtc2Ft
ZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy5odG1sCisgICAgICAg
ICAgICAgICBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQuaHRtbAorICAgICAgICAgICAgICAganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJy
b3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5odG1sCisgICAgICAgICAgICAgICBqcy9kb20v
bW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy5odG1sCisgICAgICAgICAgICAg
ICBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sCisgICAgICAgICAgICAg
ICBqcy9kb20vbW9kdWxlLXNyYy1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGpzL2RvbS9t
b2R1bGUtc3JjLXNpbXBsZS5odG1sCisgICAgICAgICAgICAgICBqcy9kb20vbW9kdWxlLXdpbGwt
ZmlyZS1iZWZvcmVsb2FkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVs
ZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1
bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVs
ZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpKU01haW5UaHJlYWRFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVGZXRjaGVyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpKU01vZHVsZUZldGNoZXI6OkpTTW9kdWxlRmV0Y2hlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU01vZHVsZUZldGNoZXI6On5KU01vZHVsZUZldGNoZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNN
b2R1bGVGZXRjaGVyOjpydW4pOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVGZXRjaGVyOjpu
b3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVGZXRjaGVyLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmgu
CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUZldGNoZXI6OmNhY2hlZFNjcmlwdCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNNb2R1bGVHcmFwaDo6SlNNb2R1bGVHcmFwaCk6CisgICAgICAgIChXZWJDb3JlOjpK
U01vZHVsZUdyYXBoOjpub3RpZnlMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVH
cmFwaDo6bm90aWZ5RXJyb3JlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpl
dmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjpub3RpZnlFdmFsdWF0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6bG9hZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01vZHVsZUxvYWRlci5oLgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVH
cmFwaDo6ZWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjptb2R1bGVL
ZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6d2Vha0VsZW1lbnRQdHIpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVHcmFwaDo6ZXJyb3JPY2N1cnJlZCk6CisgICAgICAg
IChXZWJDb3JlOjpKU01vZHVsZUdyYXBoOjppc0xvYWRlZCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6
OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNNb2R1bGVMb2FkZXI6OmZldGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU01vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRDb250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5X
b3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlSW5Xb3JsZCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1
bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdENvbnRyb2xsZXI6OmluaXRKU01vZHVsZUdyYXBoKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6Om1vZHVsZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRv
bS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmRl
dGVybWluZVNjcmlwdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cHJl
cGFyZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6ZXhlY3V0ZVNjcmlwdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpsb2FkTW9kdWxlKToKKyAgICAgICAgKiBk
b20vU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6bW9k
dWxlR3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6c2NyaXB0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpjYWNoZWRTY3JpcHQpOiBEZWxldGVk
LgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5l
cjo6cXVldWVKU01vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6bm90aWZ5SlNNb2R1bGVHcmFwaFJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5o
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nhbm5lcjo6U3RhcnRUYWdTY2Fu
bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nh
bm5lcjo6cHJvY2Vzc0ltYWdlQW5kU2NyaXB0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nhbm5lcjo6cHJvY2Vzc0F0dHJpYnV0ZSk6
CisKIDIwMTYtMDgtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgRHJhZ2dpbmcgYWdhaW5zdCB0aGUgZW5kIG9mIHRoZSBpbmxpbmUgbWVkaWEgc2Ny
dWJiZXIgY2F1c2VzIHRoZSBtZWRpYSBzY3J1YmJlciB0byBoaWRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVsZUxvYWRlclByb3RvdHlwZS5qcwppbmRl
eCA2YTNiYzgyNDMwZWYxOGFiYWU2MzRkMGYxMmU2MjBmYmNlMDliMzMyLi44NzY0MzQwOGRmYjdk
ZjA0OWM5NzU0ZTE2OGEzMzljMTlmYzliOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuanMKQEAgLTIyMyw3ICsy
MjMsNyBAQCBmdW5jdGlvbiBpbnN0YW50aWF0aW9uKHJlc3VsdCwgc291cmNlLCBlbnRyeSkKIAog
Ly8gTG9hZGVyLgogCi1mdW5jdGlvbiByZXF1ZXN0RmV0Y2goa2V5KQorZnVuY3Rpb24gcmVxdWVz
dEZldGNoKGtleSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5p
by9sb2FkZXIvI3JlcXVlc3QtZmV0Y2gKIApAQCAtMjM5LDIzICsyMzksMjEgQEAgZnVuY3Rpb24g
cmVxdWVzdEZldGNoKGtleSkKICAgICBpZiAoZW50cnkuZmV0Y2gpCiAgICAgICAgIHJldHVybiBl
bnRyeS5mZXRjaDsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotCiAgICAgLy8gSG9vayBwb2lu
dC4KICAgICAvLyAyLiBMb2FkZXIuZmV0Y2gKICAgICAvLyAgICAgaHR0cHM6Ly93aGF0d2cuZ2l0
aHViLmlvL2xvYWRlci8jYnJvd3Nlci1mZXRjaAogICAgIC8vICAgICBUYWtlIHRoZSBrZXkgYW5k
IGZldGNoIHRoZSByZXNvdXJjZSBhY3R1YWxseS4KICAgICAvLyAgICAgRm9yIGV4YW1wbGUsIEph
dmFTY3JpcHRDb3JlIHNoZWxsIGNhbiBwcm92aWRlIHRoZSBob29rIGZldGNoaW5nIHRoZSByZXNv
dXJjZQogICAgIC8vICAgICBmcm9tIHRoZSBsb2NhbCBmaWxlIHN5c3RlbS4KLSAgICB2YXIgZmV0
Y2hQcm9taXNlID0gdGhpcy5mZXRjaChrZXkpLnRoZW4oZnVuY3Rpb24gKHBheWxvYWQpIHsKLSAg
ICAgICAgbG9hZGVyLnNldFN0YXRlVG9NYXgoZW50cnksIEBNb2R1bGVUcmFuc2xhdGUpOworICAg
IHZhciBmZXRjaFByb21pc2UgPSB0aGlzLmZldGNoKGtleSwgaW5pdGlhdG9yKS50aGVuKChwYXls
b2FkKSA9PiB7CisgICAgICAgIHRoaXMuc2V0U3RhdGVUb01heChlbnRyeSwgQE1vZHVsZVRyYW5z
bGF0ZSk7CiAgICAgICAgIHJldHVybiBwYXlsb2FkOwogICAgIH0pOwogICAgIGVudHJ5LmZldGNo
ID0gZmV0Y2hQcm9taXNlOwogICAgIHJldHVybiBmZXRjaFByb21pc2U7CiB9CiAKLWZ1bmN0aW9u
IHJlcXVlc3RUcmFuc2xhdGUoa2V5KQorZnVuY3Rpb24gcmVxdWVzdFRyYW5zbGF0ZShrZXksIGlu
aXRpYXRvcikKIHsKICAgICAvLyBodHRwczovL3doYXR3Zy5naXRodWIuaW8vbG9hZGVyLyNyZXF1
ZXN0LXRyYW5zbGF0ZQogCkBAIC0yNzEsMTUgKzI2OSwxNCBAQCBmdW5jdGlvbiByZXF1ZXN0VHJh
bnNsYXRlKGtleSkKICAgICBpZiAoZW50cnkudHJhbnNsYXRlKQogICAgICAgICByZXR1cm4gZW50
cnkudHJhbnNsYXRlOwogCi0gICAgdmFyIGxvYWRlciA9IHRoaXM7Ci0gICAgdmFyIHRyYW5zbGF0
ZVByb21pc2UgPSB0aGlzLnJlcXVlc3RGZXRjaChrZXkpLnRoZW4oZnVuY3Rpb24gKHBheWxvYWQp
IHsKKyAgICB2YXIgdHJhbnNsYXRlUHJvbWlzZSA9IHRoaXMucmVxdWVzdEZldGNoKGtleSwgaW5p
dGlhdG9yKS50aGVuKChwYXlsb2FkKSA9PiB7CiAgICAgICAgIC8vIEhvb2sgcG9pbnQuCiAgICAg
ICAgIC8vIDMuIExvYWRlci50cmFuc2xhdGUKICAgICAgICAgLy8gICAgIGh0dHBzOi8vd2hhdHdn
LmdpdGh1Yi5pby9sb2FkZXIvI2Jyb3dzZXItdHJhbnNsYXRlCiAgICAgICAgIC8vICAgICBUYWtl
IHRoZSBrZXkgYW5kIHRoZSBmZXRjaGVkIHNvdXJjZSBjb2RlIGFuZCB0cmFuc2xhdGUgaXQgdG8g
dGhlIEVTNiBzb3VyY2UgY29kZS4KICAgICAgICAgLy8gICAgIFR5cGljYWxseSBpdCBpcyB1c2Vk
IGJ5IHRoZSB0cmFuc3BpbGVycy4KLSAgICAgICAgcmV0dXJuIGxvYWRlci50cmFuc2xhdGUoa2V5
LCBwYXlsb2FkKS50aGVuKGZ1bmN0aW9uIChzb3VyY2UpIHsKLSAgICAgICAgICAgIGxvYWRlci5z
ZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlSW5zdGFudGlhdGUpOworICAgICAgICByZXR1cm4g
dGhpcy50cmFuc2xhdGUoa2V5LCBwYXlsb2FkLCBpbml0aWF0b3IpLnRoZW4oKHNvdXJjZSkgPT4g
eworICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlSW5zdGFudGlh
dGUpOwogICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBA
IC0yODcsNyArMjg0LDcgQEAgZnVuY3Rpb24gcmVxdWVzdFRyYW5zbGF0ZShrZXkpCiAgICAgcmV0
dXJuIHRyYW5zbGF0ZVByb21pc2U7CiB9CiAKLWZ1bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZShr
ZXkpCitmdW5jdGlvbiByZXF1ZXN0SW5zdGFudGlhdGUoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAg
Ly8gaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRlci8jcmVxdWVzdC1pbnN0YW50aWF0ZQog
CkBAIC0zMDMsOCArMzAwLDcgQEAgZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtleSkKICAg
ICBpZiAoZW50cnkuaW5zdGFudGlhdGUpCiAgICAgICAgIHJldHVybiBlbnRyeS5pbnN0YW50aWF0
ZTsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHZhciBpbnN0YW50aWF0ZVByb21pc2Ug
PSB0aGlzLnJlcXVlc3RUcmFuc2xhdGUoa2V5KS50aGVuKGZ1bmN0aW9uIChzb3VyY2UpIHsKKyAg
ICB2YXIgaW5zdGFudGlhdGVQcm9taXNlID0gdGhpcy5yZXF1ZXN0VHJhbnNsYXRlKGtleSwgaW5p
dGlhdG9yKS50aGVuKChzb3VyY2UpID0+IHsKICAgICAgICAgLy8gSG9vayBwb2ludC4KICAgICAg
ICAgLy8gNC4gTG9hZGVyLmluc3RhbnRpYXRlCiAgICAgICAgIC8vICAgICBodHRwczovL3doYXR3
Zy5naXRodWIuaW8vbG9hZGVyLyNicm93c2VyLWluc3RhbnRpYXRlCkBAIC0zMTIsOCArMzA4LDgg
QEAgZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRlKGtleSkKICAgICAgICAgLy8gICAgIGJ5IHBh
cnNpbmcgdGhlIG1vZHVsZSBzb3VyY2UgY29kZS4KICAgICAgICAgLy8gICAgIEl0IGhhcyB0aGUg
Y2hhbmNlIHRvIHByb3ZpZGUgdGhlIG9wdGlvbmFsIG1vZHVsZSBpbnN0YW5jZSB0aGF0IGlzIGRp
ZmZlcmVudCBmcm9tCiAgICAgICAgIC8vICAgICB0aGUgb3JkaW5hcnkgb25lLgotICAgICAgICBy
ZXR1cm4gbG9hZGVyLmluc3RhbnRpYXRlKGtleSwgc291cmNlKS50aGVuKGZ1bmN0aW9uIChvcHRp
b25hbEluc3RhbmNlKSB7Ci0gICAgICAgICAgICBsb2FkZXIuY29tbWl0SW5zdGFudGlhdGVkKGVu
dHJ5LCBvcHRpb25hbEluc3RhbmNlLCBzb3VyY2UpOworICAgICAgICByZXR1cm4gdGhpcy5pbnN0
YW50aWF0ZShrZXksIHNvdXJjZSwgaW5pdGlhdG9yKS50aGVuKChvcHRpb25hbEluc3RhbmNlKSA9
PiB7CisgICAgICAgICAgICB0aGlzLmNvbW1pdEluc3RhbnRpYXRlZChlbnRyeSwgb3B0aW9uYWxJ
bnN0YW5jZSwgc291cmNlKTsKICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAgfSk7
CiAgICAgfSk7CkBAIC0zMjEsNyArMzE3LDcgQEAgZnVuY3Rpb24gcmVxdWVzdEluc3RhbnRpYXRl
KGtleSkKICAgICByZXR1cm4gaW5zdGFudGlhdGVQcm9taXNlOwogfQogCi1mdW5jdGlvbiByZXF1
ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhrZXkpCitmdW5jdGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVu
ZGVuY2llcyhrZXksIGluaXRpYXRvcikKIHsKICAgICAvLyBGSVhNRTogSW4gdGhlIHNwZWMsIGFm
dGVyIHJlcXVlc3RpbmcgaW5zdGFudGlhdGlvbiwgd2Ugd2lsbCByZXNvbHZlCiAgICAgLy8gdGhl
IGRlcGVuZGVuY2llcyB3aXRob3V0IGFueSBzdGF0dXMgY2hhbmdlLiBBcyBhIHJlc3VsdCwgd2hl
biB0aGVyZQpAQCAtMzQ1LDggKzM0MSw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RSZXNvbHZlRGVwZW5k
ZW5jaWVzKGtleSkKICAgICBpZiAoZW50cnkucmVzb2x2ZURlcGVuZGVuY2llcykKICAgICAgICAg
cmV0dXJuIGVudHJ5LnJlc29sdmVEZXBlbmRlbmNpZXM7CiAKLSAgICB2YXIgbG9hZGVyID0gdGhp
czsKLSAgICB2YXIgcmVzb2x2ZURlcGVuZGVuY2llc1Byb21pc2UgPSB0aGlzLnJlcXVlc3RJbnN0
YW50aWF0ZShrZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgdmFyIHJlc29sdmVEZXBl
bmRlbmNpZXNQcm9taXNlID0gdGhpcy5yZXF1ZXN0SW5zdGFudGlhdGUoa2V5LCBpbml0aWF0b3Ip
LnRoZW4oKGVudHJ5KSA9PiB7CiAgICAgICAgIHZhciBkZXBMb2FkcyA9IFtdOwogICAgICAgICBm
b3IgKHZhciBpID0gMCwgbGVuZ3RoID0gZW50cnkuZGVwZW5kZW5jaWVzLmxlbmd0aDsgaSA8IGxl
bmd0aDsgKytpKSB7CiAgICAgICAgICAgICBsZXQgcGFpciA9IGVudHJ5LmRlcGVuZGVuY2llc1tp
XTsKQEAgLTM1Niw4ICszNTEsOCBAQCBmdW5jdGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2ll
cyhrZXkpCiAgICAgICAgICAgICAvLyAgICAgaHR0cHM6Ly93aGF0d2cuZ2l0aHViLmlvL2xvYWRl
ci8jYnJvd3Nlci1yZXNvbHZlCiAgICAgICAgICAgICAvLyAgICAgVGFrZSB0aGUgbmFtZSBhbmQg
cmVzb2x2ZSBpdCB0byB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZXNvdXJjZSBsb2Nh
dGlvbi4KICAgICAgICAgICAgIC8vICAgICBGb3IgZXhhbXBsZSwgdGFrZSB0aGUgImpxdWVyeSIg
YW5kIHJldHVybiB0aGUgVVJMIGZvciB0aGUgcmVzb3VyY2UuCi0gICAgICAgICAgICB2YXIgcHJv
bWlzZSA9IGxvYWRlci5yZXNvbHZlKHBhaXIua2V5LCBrZXkpLnRoZW4oZnVuY3Rpb24gKGRlcEtl
eSkgewotICAgICAgICAgICAgICAgIHZhciBkZXBFbnRyeSA9IGxvYWRlci5lbnN1cmVSZWdpc3Rl
cmVkKGRlcEtleSk7CisgICAgICAgICAgICB2YXIgcHJvbWlzZSA9IHRoaXMucmVzb2x2ZShwYWly
LmtleSwga2V5LCBpbml0aWF0b3IpLnRoZW4oKGRlcEtleSkgPT4geworICAgICAgICAgICAgICAg
IHZhciBkZXBFbnRyeSA9IHRoaXMuZW5zdXJlUmVnaXN0ZXJlZChkZXBLZXkpOwogCiAgICAgICAg
ICAgICAgICAgLy8gUmVjdXJzaXZlIHJlc29sdmluZy4gVGhlIGRlcGVuZGVuY2llcyBvZiB0aGlz
IGVudHJ5IGlzIGJlaW5nIHJlc29sdmVkIG9yIGFscmVhZHkgcmVzb2x2ZWQuCiAgICAgICAgICAg
ICAgICAgLy8gU3RvcCB0cmFjaW5nIHRoZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCkBAIC0zNjks
MTMgKzM2NCwxMyBAQCBmdW5jdGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhrZXkpCiAg
ICAgICAgICAgICAgICAgLy8gcmVqZWN0ZWQgYnkgdGhlIFByb21pc2VzIHJ1bnRpbWUuIFNpbmNl
IG9ubHkgd2UgbmVlZCBpcyB0aGUgaW5zdGFudGlhdGVkIG1vZHVsZSwgaW5zdGVhZCBvZiB3YWl0
aW5nCiAgICAgICAgICAgICAgICAgLy8gdGhlIFJlc29sdmVEZXBlbmRlbmNpZXMgZm9yIHRoaXMg
bW9kdWxlLCB3ZSBqdXN0IHdhaXQgSW5zdGFudGlhdGUgZm9yIHRoaXMuCiAgICAgICAgICAgICAg
ICAgaWYgKGRlcEVudHJ5LnJlc29sdmVEZXBlbmRlbmNpZXMpIHsKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGRlcEVudHJ5Lmluc3RhbnRpYXRlLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBkZXBFbnRyeS5pbnN0YW50aWF0ZS50aGVuKChlbnRy
eSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgcGFpci52YWx1ZSA9IGVudHJ5Lm1vZHVs
ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxv
YWRlci5yZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhkZXBLZXkpLnRoZW4oZnVuY3Rpb24gKGVu
dHJ5KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlc29sdmVEZXBlbmRl
bmNpZXMoZGVwS2V5LCBpbml0aWF0b3IpLnRoZW4oKGVudHJ5KSA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgIHBhaXIudmFsdWUgPSBlbnRyeS5tb2R1bGU7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBlbnRyeTsKICAgICAgICAgICAgICAgICB9KTsKQEAgLTM4Myw4ICszNzgsOCBAQCBmdW5j
dGlvbiByZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2llcyhrZXkpCiAgICAgICAgICAgICBAcHV0QnlW
YWxEaXJlY3QoZGVwTG9hZHMsIGksIHByb21pc2UpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0
dXJuIEBJbnRlcm5hbFByb21pc2UuaW50ZXJuYWxBbGwoZGVwTG9hZHMpLnRoZW4oZnVuY3Rpb24g
KG1vZHVsZXMpIHsKLSAgICAgICAgICAgIGxvYWRlci5zZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9k
dWxlTGluayk7CisgICAgICAgIHJldHVybiBASW50ZXJuYWxQcm9taXNlLmludGVybmFsQWxsKGRl
cExvYWRzKS50aGVuKChtb2R1bGVzKSA9PiB7CisgICAgICAgICAgICB0aGlzLnNldFN0YXRlVG9N
YXgoZW50cnksIEBNb2R1bGVMaW5rKTsKICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CkBAIC0zOTMsMTYgKzM4OCwxNiBAQCBmdW5jdGlvbiByZXF1ZXN0UmVz
b2x2ZURlcGVuZGVuY2llcyhrZXkpCiAgICAgcmV0dXJuIHJlc29sdmVEZXBlbmRlbmNpZXNQcm9t
aXNlOwogfQogCi1mdW5jdGlvbiByZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5KQorZnVuY3Rpb24g
cmVxdWVzdEluc3RhbnRpYXRlQWxsKGtleSwgaW5pdGlhdG9yKQogewogICAgIC8vIGh0dHBzOi8v
d2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtaW5zdGFudGlhdGUtYWxsCiAKICAgICAi
dXNlIHN0cmljdCI7CiAKLSAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzb2x2ZURlcGVuZGVuY2ll
cyhrZXkpOworICAgIHJldHVybiB0aGlzLnJlcXVlc3RSZXNvbHZlRGVwZW5kZW5jaWVzKGtleSwg
aW5pdGlhdG9yKTsKIH0KIAotZnVuY3Rpb24gcmVxdWVzdExpbmsoa2V5KQorZnVuY3Rpb24gcmVx
dWVzdExpbmsoa2V5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHVi
LmlvL2xvYWRlci8jcmVxdWVzdC1saW5rCiAKQEAgLTQxNSwyOCArNDEwLDI2IEBAIGZ1bmN0aW9u
IHJlcXVlc3RMaW5rKGtleSkKICAgICAgICAgcmV0dXJuIGRlZmVycmVkLkBwcm9taXNlOwogICAg
IH0KIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHJldHVybiB0aGlzLnJlcXVlc3RJbnN0
YW50aWF0ZUFsbChrZXkpLnRoZW4oZnVuY3Rpb24gKGVudHJ5KSB7Ci0gICAgICAgIGxvYWRlci5s
aW5rKGVudHJ5KTsKKyAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SW5zdGFudGlhdGVBbGwoa2V5LCBp
bml0aWF0b3IpLnRoZW4oKGVudHJ5KSA9PiB7CisgICAgICAgIHRoaXMubGluayhlbnRyeSwgaW5p
dGlhdG9yKTsKICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAgIH0pOwogfQogCi1mdW5jdGlvbiBy
ZXF1ZXN0UmVhZHkoa2V5KQorZnVuY3Rpb24gcmVxdWVzdFJlYWR5KGtleSwgaW5pdGlhdG9yKQog
ewogICAgIC8vIGh0dHBzOi8vd2hhdHdnLmdpdGh1Yi5pby9sb2FkZXIvI3JlcXVlc3QtcmVhZHkK
IAogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwotICAgIHJldHVy
biB0aGlzLnJlcXVlc3RMaW5rKGtleSkudGhlbihmdW5jdGlvbiAoZW50cnkpIHsKLSAgICAgICAg
bG9hZGVyLm1vZHVsZUV2YWx1YXRpb24oZW50cnkubW9kdWxlKTsKKyAgICByZXR1cm4gdGhpcy5y
ZXF1ZXN0TGluayhrZXksIGluaXRpYXRvcikudGhlbigoZW50cnkpID0+IHsKKyAgICAgICAgdGhp
cy5tb2R1bGVFdmFsdWF0aW9uKGVudHJ5Lm1vZHVsZSwgaW5pdGlhdG9yKTsKICAgICB9KTsKIH0K
IAogLy8gTGlua2luZyBzZW1hbnRpY3MuCiAKLWZ1bmN0aW9uIGxpbmsoZW50cnkpCitmdW5jdGlv
biBsaW5rKGVudHJ5LCBpbml0aWF0b3IpCiB7CiAgICAgLy8gaHR0cHM6Ly93aGF0d2cuZ2l0aHVi
LmlvL2xvYWRlci8jbGluawogCkBAIC00NTYsMTUgKzQ0OSwxNSBAQCBmdW5jdGlvbiBsaW5rKGVu
dHJ5KQogICAgIHZhciBkZXBlbmRlbmNpZXMgPSBlbnRyeS5kZXBlbmRlbmNpZXM7CiAgICAgZm9y
ICh2YXIgaSA9IDAsIGxlbmd0aCA9IGRlcGVuZGVuY2llcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsr
aSkgewogICAgICAgICB2YXIgcGFpciA9IGRlcGVuZGVuY2llc1tpXTsKLSAgICAgICAgdGhpcy5s
aW5rKHBhaXIudmFsdWUucmVnaXN0cnlFbnRyeSk7CisgICAgICAgIHRoaXMubGluayhwYWlyLnZh
bHVlLnJlZ2lzdHJ5RW50cnksIGluaXRpYXRvcik7CiAgICAgfQogCi0gICAgdGhpcy5tb2R1bGVE
ZWNsYXJhdGlvbkluc3RhbnRpYXRpb24oZW50cnkubW9kdWxlKTsKKyAgICB0aGlzLm1vZHVsZURl
Y2xhcmF0aW9uSW5zdGFudGlhdGlvbihlbnRyeS5tb2R1bGUsIGluaXRpYXRvcik7CiB9CiAKIC8v
IE1vZHVsZSBzZW1hbnRpY3MuCiAKLWZ1bmN0aW9uIG1vZHVsZUV2YWx1YXRpb24obW9kdWxlUmVj
b3JkKQorZnVuY3Rpb24gbW9kdWxlRXZhbHVhdGlvbihtb2R1bGVSZWNvcmQsIGluaXRpYXRvcikK
IHsKICAgICAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4w
LyNzZWMtbW9kdWxlZXZhbHVhdGlvbgogCkBAIC00ODEsOSArNDc0LDkgQEAgZnVuY3Rpb24gbW9k
dWxlRXZhbHVhdGlvbihtb2R1bGVSZWNvcmQpCiAgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9
IGRlcGVuZGVuY2llcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICB2YXIgcGFp
ciA9IGRlcGVuZGVuY2llc1tpXTsKICAgICAgICAgdmFyIHJlcXVpcmVkTW9kdWxlUmVjb3JkID0g
cGFpci52YWx1ZTsKLSAgICAgICAgdGhpcy5tb2R1bGVFdmFsdWF0aW9uKHJlcXVpcmVkTW9kdWxl
UmVjb3JkKTsKKyAgICAgICAgdGhpcy5tb2R1bGVFdmFsdWF0aW9uKHJlcXVpcmVkTW9kdWxlUmVj
b3JkLCBpbml0aWF0b3IpOwogICAgIH0KLSAgICB0aGlzLmV2YWx1YXRlKGVudHJ5LmtleSwgbW9k
dWxlUmVjb3JkKTsKKyAgICB0aGlzLmV2YWx1YXRlKGVudHJ5LmtleSwgbW9kdWxlUmVjb3JkLCBp
bml0aWF0b3IpOwogfQogCiAvLyBBUElzIHRvIGNvbnRyb2wgdGhlIG1vZHVsZSBsb2FkZXIuCkBA
IC01MTQsOSArNTA3LDggQEAgZnVuY3Rpb24gcHJvdmlkZShrZXksIHN0YWdlLCB2YWx1ZSkKICAg
ICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJSZXF1ZXN0ZWQgbW9kdWxlIGlzIGFscmVh
ZHkgaW5zdGFudGlhdGVkLiIpOwogICAgICAgICB0aGlzLmZ1bGZpbGxGZXRjaChlbnRyeSwgQHVu
ZGVmaW5lZCk7CiAgICAgICAgIHRoaXMuZnVsZmlsbFRyYW5zbGF0ZShlbnRyeSwgdmFsdWUpOwot
ICAgICAgICB2YXIgbG9hZGVyID0gdGhpczsKLSAgICAgICAgZW50cnkudHJhbnNsYXRlLnRoZW4o
ZnVuY3Rpb24gKHNvdXJjZSkgewotICAgICAgICAgICAgbG9hZGVyLmZ1bGZpbGxJbnN0YW50aWF0
ZShlbnRyeSwgdmFsdWUsIHNvdXJjZSk7CisgICAgICAgIGVudHJ5LnRyYW5zbGF0ZS50aGVuKChz
b3VyY2UpID0+IHsKKyAgICAgICAgICAgIHRoaXMuZnVsZmlsbEluc3RhbnRpYXRlKGVudHJ5LCB2
YWx1ZSwgc291cmNlKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01
MjQsMzkgKzUxNiwzNyBAQCBmdW5jdGlvbiBwcm92aWRlKGtleSwgc3RhZ2UsIHZhbHVlKQogICAg
IHRocm93IG5ldyBAVHlwZUVycm9yKCJSZXF1ZXN0ZWQgbW9kdWxlIGlzIGFscmVhZHkgcmVhZHkg
dG8gYmUgZXhlY3V0ZWQuIik7CiB9CiAKLWZ1bmN0aW9uIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZSht
b2R1bGVOYW1lLCByZWZlcnJlcikKK2Z1bmN0aW9uIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShtb2R1
bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAg
IHZhciBsb2FkZXIgPSB0aGlzOwogICAgIC8vIExvYWRlci5yZXNvbHZlIGhvb2sgcG9pbnQuCiAg
ICAgLy8gcmVzb2x2ZTogbW9kdWxlTmFtZSA9PiBQcm9taXNlKG1vZHVsZUtleSkKICAgICAvLyBU
YWtlIHRoZSBuYW1lIGFuZCByZXNvbHZlIGl0IHRvIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3Ig
dGhlIHJlc291cmNlIGxvY2F0aW9uLgogICAgIC8vIEZvciBleGFtcGxlLCB0YWtlIHRoZSAianF1
ZXJ5IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJjZS4KLSAgICByZXR1cm4gdGhp
cy5yZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyKS50aGVuKGZ1bmN0aW9uIChrZXkpIHsKLSAg
ICAgICAgcmV0dXJuIGxvYWRlci5yZXF1ZXN0UmVhZHkoa2V5KTsKKyAgICByZXR1cm4gdGhpcy5y
ZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpLnRoZW4oKGtleSkgPT4gewor
ICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVhZHkoa2V5LCBpbml0aWF0b3IpOwogICAgIH0p
OwogfQogCi1mdW5jdGlvbiBsb2FkTW9kdWxlKG1vZHVsZU5hbWUsIHJlZmVycmVyKQorZnVuY3Rp
b24gbG9hZE1vZHVsZShtb2R1bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9yKQogewogICAgICJ1
c2Ugc3RyaWN0IjsKIAotICAgIHZhciBsb2FkZXIgPSB0aGlzOwogICAgIC8vIExvYWRlci5yZXNv
bHZlIGhvb2sgcG9pbnQuCiAgICAgLy8gcmVzb2x2ZTogbW9kdWxlTmFtZSA9PiBQcm9taXNlKG1v
ZHVsZUtleSkKICAgICAvLyBUYWtlIHRoZSBuYW1lIGFuZCByZXNvbHZlIGl0IHRvIHRoZSB1bmlx
dWUgaWRlbnRpZmllciBmb3IgdGhlIHJlc291cmNlIGxvY2F0aW9uLgogICAgIC8vIEZvciBleGFt
cGxlLCB0YWtlIHRoZSAianF1ZXJ5IiBhbmQgcmV0dXJuIHRoZSBVUkwgZm9yIHRoZSByZXNvdXJj
ZS4KLSAgICByZXR1cm4gdGhpcy5yZXNvbHZlKG1vZHVsZU5hbWUsIHJlZmVycmVyKS50aGVuKGZ1
bmN0aW9uIChrZXkpIHsKLSAgICAgICAgcmV0dXJuIGxvYWRlci5yZXF1ZXN0SW5zdGFudGlhdGVB
bGwoa2V5KTsKLSAgICB9KS50aGVuKGZ1bmN0aW9uIChlbnRyeSkgeworICAgIHJldHVybiB0aGlz
LnJlc29sdmUobW9kdWxlTmFtZSwgcmVmZXJyZXIsIGluaXRpYXRvcikudGhlbigoa2V5KSA9PiB7
CisgICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RJbnN0YW50aWF0ZUFsbChrZXksIGluaXRpYXRv
cik7CisgICAgfSkudGhlbigoZW50cnkpID0+IHsKICAgICAgICAgcmV0dXJuIGVudHJ5LmtleTsK
ICAgICB9KTsKIH0KIAotZnVuY3Rpb24gbGlua0FuZEV2YWx1YXRlTW9kdWxlKGtleSkKK2Z1bmN0
aW9uIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShrZXksIGluaXRpYXRvcikKIHsKICAgICAidXNlIHN0
cmljdCI7CiAKLSAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVhZHkoa2V5KTsKKyAgICByZXR1cm4g
dGhpcy5yZXF1ZXN0UmVhZHkoa2V5LCBpbml0aWF0b3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApp
bmRleCAyYjIyZTQwMDQ4YTE3YTE1ZDA0NGMwOWE5MDNiYTU0MGI4MzExZmRkLi4xNjI2ZTc1ZDQx
MjI0YzEzNjIzMDY0MTgzNmE5ZTlkZDFhMDQ5Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAt
ODg1LDggKzg4NSw4IEBAIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVj
dCB7CiAgICAgICAgIHB1dERpcmVjdCh2bSwgaWRlbnRpZmllciwgSlNGdW5jdGlvbjo6Y3JlYXRl
KHZtLCB0aGlzLCBhcmd1bWVudHMsIGlkZW50aWZpZXIuc3RyaW5nKCksIGZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgZnVuY3Rpb24pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgSlNJbnRlcm5hbFByb21p
c2UqIG1vZHVsZUxvYWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01v
ZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0ludGVybmFsUHJv
bWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01v
ZHVsZUxvYWRlciosIEpTVmFsdWUpOworICAgIHN0YXRpYyBKU0ludGVybmFsUHJvbWlzZSogbW9k
dWxlTG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9h
ZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CisgICAgc3RhdGljIEpTSW50ZXJuYWxQ
cm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpT
TW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiB9OwogCiBjb25zdCBDbGFzc0luZm8g
R2xvYmFsT2JqZWN0OjpzX2luZm8gPSB7ICJnbG9iYWwiLCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5m
bywgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShHbG9iYWxPYmplY3QpIH07CkBAIC0xMDE3
LDcgKzEwMTcsNyBAQCBzdGF0aWMgU3RyaW5nIHJlc29sdmVQYXRoKGNvbnN0IERpcmVjdG9yeU5h
bWUmIGRpcmVjdG9yeU5hbWUsIGNvbnN0IE1vZHVsZU5hbWUmCiAgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4
ZWMsIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSBrZXlWYWx1ZSwgSlNWYWx1ZSByZWZlcnJlclZh
bHVlKQorSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxl
TG9hZGVyKiwgSlNWYWx1ZSBrZXlWYWx1ZSwgSlNWYWx1ZSByZWZlcnJlclZhbHVlLCBKU1ZhbHVl
KQogewogICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgY29uc3Qg
SWRlbnRpZmllciBrZXkgPSBrZXlWYWx1ZS50b1Byb3BlcnR5S2V5KGV4ZWMpOwpAQCAtMTEyMiw3
ICsxMTIyLDcgQEAgc3RhdGljIGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKGNv
bnN0IFN0cmluZyYgZmlsZU5hbWUsIFZlY3RvcjxjaGFyPiYKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1KU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlTG9h
ZGVyKiwgSlNWYWx1ZSBrZXkpCitKU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1
bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjU3RhdGUqIGV4
ZWMsIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSBrZXksIEpTVmFsdWUpCiB7CiAgICAgSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
OjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICBTdHJpbmcgbW9kdWxlS2V5ID0ga2V5
LnRvV1RGU3RyaW5nKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tcGxldGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21w
bGV0aW9uLmNwcAppbmRleCBjNTg2OTU2Njc0N2EyN2QxMDllNWEzNjJmZjcyMjNhZTdmYTY2Yzk4
Li5lOTdmMTIxNzg1NTNmY2Y5ODVjMThiNWEwY2Q2NmNmZGU4MGZhNGNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmNwcApAQCAtMTU1LDI2ICsxNTUsMjYg
QEAgc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiByZWplY3RQcm9taXNlKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gZGVmZXJyZWQtPnByb21pc2Uo
KTsKIH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUo
Y29uc3QgSlNMb2NrSG9sZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitzdGF0aWMg
SlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShjb25zdCBKU0xvY2tIb2xk
ZXImLCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7Ci0g
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+bW9kdWxlTG9hZGVyKCktPmxvYWRBbmRFdmFsdWF0ZU1v
ZHVsZShleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlcik7CisgICAgcmV0dXJuIGdsb2JhbE9iamVj
dC0+bW9kdWxlTG9hZGVyKCktPmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBtb2R1bGVOYW1l
LCByZWZlcnJlciwgaW5pdGlhdG9yKTsKIH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkQW5kRXZhbHVhdGVNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVyJiBsb2NrLCBFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG1v
ZHVsZU5hbWUpCitzdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVs
ZShjb25zdCBKU0xvY2tIb2xkZXImIGxvY2ssIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBp
bml0aWF0b3IpCiB7Ci0gICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShsb2NrLCBleGVj
LCBnbG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxlTmFt
ZSksIGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBsb2FkQW5kRXZhbHVhdGVNb2R1bGUobG9j
aywgZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMtPnZtKCksIG1v
ZHVsZU5hbWUpLCBqc1VuZGVmaW5lZCgpLCBpbml0aWF0b3IpOwogfQogCi1KU0ludGVybmFsUHJv
bWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiBtb2R1bGVOYW1lKQorSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0
b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQo
ZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNT
dHJpbmdUYWJsZSgpKTsKICAgICBSRUxFQVNFX0FTU0VSVCghZXhlYy0+dm0oKS5pc0NvbGxlY3Rv
ckJ1c3koKSk7CiAKLSAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxvY2ssIGV4ZWMs
IGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVj
LCBtb2R1bGVOYW1lKSk7CisgICAgcmV0dXJuIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShsb2NrLCBl
eGVjLCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmco
ZXhlYywgbW9kdWxlTmFtZSksIGluaXRpYXRvcik7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBs
b2FkQW5kRXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBz
b3VyY2UpCitKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsK
ICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBSRUxFQVNFX0FTU0VSVChleGVjLT52
bSgpLmF0b21pY1N0cmluZ1RhYmxlKCkgPT0gd3RmVGhyZWFkRGF0YSgpLmF0b21pY1N0cmluZ1Rh
YmxlKCkpOwpAQCAtMTg5LDI5ICsxODksMjkgQEAgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRF
dmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXIKICAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZWplY3RQcm9taXNl
KGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAKLSAgICByZXR1cm4gbG9hZEFuZEV2YWx1YXRlTW9kdWxl
KGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1
cm4gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBq
c1VuZGVmaW5lZCgpLCBpbml0aWF0b3IpOwogfQogCi1zdGF0aWMgSlNJbnRlcm5hbFByb21pc2Uq
IGxvYWRNb2R1bGUoY29uc3QgSlNMb2NrSG9sZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJy
ZXIpCitzdGF0aWMgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoY29uc3QgSlNMb2NrSG9s
ZGVyJiwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKQogewot
ICAgIHJldHVybiBnbG9iYWxPYmplY3QtPm1vZHVsZUxvYWRlcigpLT5sb2FkTW9kdWxlKGV4ZWMs
IG1vZHVsZU5hbWUsIHJlZmVycmVyKTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVM
b2FkZXIoKS0+bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lLCByZWZlcnJlciwgaW5pdGlhdG9y
KTsKIH0KIAotc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKGNvbnN0IEpTTG9j
a0hvbGRlciYgbG9jaywgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1lKQorc3RhdGljIEpTSW50ZXJuYWxQcm9t
aXNlKiBsb2FkTW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYgbG9jaywgRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVO
YW1lLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsKLSAgICByZXR1cm4gbG9hZE1vZHVsZShsb2NrLCBl
eGVjLCBnbG9iYWxPYmplY3QsIGlkZW50aWZpZXJUb0pTVmFsdWUoZXhlYy0+dm0oKSwgbW9kdWxl
TmFtZSksIGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBsb2FkTW9kdWxlKGxvY2ssIGV4ZWMs
IGdsb2JhbE9iamVjdCwgaWRlbnRpZmllclRvSlNWYWx1ZShleGVjLT52bSgpLCBtb2R1bGVOYW1l
KSwganNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21pc2UqIGxv
YWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpCitKU0lu
dGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYg
bW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2so
ZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdUYWJsZSgp
ID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKICAgICBSRUxFQVNFX0FT
U0VSVCghZXhlYy0+dm0oKS5pc0NvbGxlY3RvckJ1c3koKSk7CiAKLSAgICByZXR1cm4gbG9hZE1v
ZHVsZShsb2NrLCBleGVjLCBleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6
OmZyb21TdHJpbmcoZXhlYywgbW9kdWxlTmFtZSkpOworICAgIHJldHVybiBsb2FkTW9kdWxlKGxv
Y2ssIGV4ZWMsIGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyhleGVjLCBtb2R1bGVOYW1lKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21p
c2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Up
CitKU0ludGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNMb2NrSG9sZGVy
IGxvY2soZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5hdG9taWNTdHJpbmdU
YWJsZSgpID09IHd0ZlRocmVhZERhdGEoKS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKQEAgLTIyNiwx
NyArMjI2LDE3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2UoZXhlYywgZ2xvYmFsT2JqZWN0KTsKIAot
ICAgIHJldHVybiBsb2FkTW9kdWxlKGxvY2ssIGV4ZWMsIGdsb2JhbE9iamVjdCwga2V5LCBqc1Vu
ZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gbG9hZE1vZHVsZShsb2NrLCBleGVjLCBnbG9iYWxPYmpl
Y3QsIGtleSwganNVbmRlZmluZWQoKSwgaW5pdGlhdG9yKTsKIH0KIAotSlNJbnRlcm5hbFByb21p
c2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIG1vZHVsZUtleSkKK0pTSW50ZXJuYWxQcm9taXNlKiBsaW5rQW5kRXZhbHVhdGVNb2R1bGUo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXksIEpTVmFsdWUgaW5p
dGlhdG9yKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIFJFTEVBU0VfQVNT
RVJUKGV4ZWMtPnZtKCkuYXRvbWljU3RyaW5nVGFibGUoKSA9PSB3dGZUaHJlYWREYXRhKCkuYXRv
bWljU3RyaW5nVGFibGUoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWV4ZWMtPnZtKCkuaXNDb2xs
ZWN0b3JCdXN5KCkpOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMt
PnZtRW50cnlHbG9iYWxPYmplY3QoKTsKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5tb2R1bGVM
b2FkZXIoKS0+bGlua0FuZEV2YWx1YXRlTW9kdWxlKGV4ZWMsIGlkZW50aWZpZXJUb0pTVmFsdWUo
ZXhlYy0+dm0oKSwgbW9kdWxlS2V5KSk7CisgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+bW9kdWxl
TG9hZGVyKCktPmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBpZGVudGlmaWVyVG9KU1ZhbHVl
KGV4ZWMtPnZtKCksIG1vZHVsZUtleSksIGluaXRpYXRvcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCmluZGV4IGYx
MzFjYzVhZTU3MWNiNmJlMGI2ZDNjYjAxNWU4OTkxYTIyNDBiNTcuLmIzNDEwODA4NmY3MDE2NDAw
NGM0NzFhOWVhM2FlZTE1YTM4ZDUzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbXBsZXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21wbGV0aW9uLmgKQEAgLTU4LDE1ICs1OCwxNSBAQCBpbmxpbmUgSlNWYWx1ZSBwcm9maWxl
ZEV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYywgUHJvZmlsaW5nUmVhc29uIHJlYXNvbiwgY29uc3Qg
UwogSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihF
eGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3QqIHNjb3BlRXh0ZW5zaW9uLCBO
YWtlZFB0cjxFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlvbik7CiAKIC8vIExvYWQgdGhlIG1v
ZHVsZSBzb3VyY2UgYW5kIGV2YWx1YXRlIGl0LgotSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5h
bFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IG1vZHVsZU5hbWUpOwotSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRB
bmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CitKU19FWFBP
UlRfUFJJVkFURSBKU0ludGVybmFsUHJvbWlzZSogbG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgSlNWYWx1ZSBpbml0aWF0b3IgPSBqc1Vu
ZGVmaW5lZCgpKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTSW50ZXJuYWxQcm9taXNlKiBsb2FkQW5k
RXZhbHVhdGVNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTVmFsdWUgaW5p
dGlhdG9yID0ganNVbmRlZmluZWQoKSk7CiAKIC8vIEZldGNoIHRoZSBtb2R1bGUgc291cmNlLCBh
bmQgaW5zdGFudGlhdGUgdGhlIG1vZHVsZSByZWNvcmQuCi1KU19FWFBPUlRfUFJJVkFURSBKU0lu
dGVybmFsUHJvbWlzZSogbG9hZE1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIG1vZHVs
ZU5hbWUpOwotSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUo
RXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNJbnRl
cm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBtb2R1bGVO
YW1lLCBKU1ZhbHVlIGluaXRpYXRvciA9IGpzVW5kZWZpbmVkKCkpOworSlNfRVhQT1JUX1BSSVZB
VEUgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNl
Q29kZSYsIEpTVmFsdWUgaW5pdGlhdG9yID0ganNVbmRlZmluZWQoKSk7CiAKIC8vIExpbmsgYW5k
IGV2YWx1YXRlIHRoZSBhbHJlYWR5IGxpbmtlZCBtb2R1bGUuCi1KU19FWFBPUlRfUFJJVkFURSBK
U0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIG1vZHVsZUtleSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0ludGVybmFsUHJv
bWlzZSogbGlua0FuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IG1vZHVsZUtleSwgSlNWYWx1ZSBpbml0aWF0b3IgPSBqc1VuZGVmaW5lZCgpKTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCmluZGV4IGY1NjcxMTYwZjJjZjhjMGMzNmNkNTc4MzZiZTJjNDRiMGVmMzlkOWUu
Ljc4MzdhYzZhZGZhOGZhZGJjOWJjZDA0MWE0MDdmOGRhOGFkZDAwODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTY2LDE5ICsxNjYs
MTkgQEAgc3RydWN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHsKICAgICB0eXBlZGVmIGJvb2wg
KCpTaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0UHRyKShjb25zdCBKU0dsb2JhbE9i
amVjdCopOwogICAgIFNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXRQdHIgc2hvdWxk
SW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dDsKIAotICAgIHR5cGVkZWYgSlNJbnRlcm5hbFBy
b21pc2UqICgqTW9kdWxlTG9hZGVyUmVzb2x2ZVB0cikoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3Rh
dGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOworICAgIHR5cGVkZWYgSlNJ
bnRlcm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyUmVzb2x2ZVB0cikoSlNHbG9iYWxPYmplY3Qq
LCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUsIEpTVmFsdWUp
OwogICAgIE1vZHVsZUxvYWRlclJlc29sdmVQdHIgbW9kdWxlTG9hZGVyUmVzb2x2ZTsKIAotICAg
IHR5cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyRmV0Y2hQdHIpKEpTR2xv
YmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNNb2R1bGVMb2FkZXIqLCBKU1ZhbHVlKTsKKyAgICB0
eXBlZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlckZldGNoUHRyKShKU0dsb2Jh
bE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSk7
CiAgICAgTW9kdWxlTG9hZGVyRmV0Y2hQdHIgbW9kdWxlTG9hZGVyRmV0Y2g7CiAKLSAgICB0eXBl
ZGVmIEpTSW50ZXJuYWxQcm9taXNlKiAoKk1vZHVsZUxvYWRlclRyYW5zbGF0ZVB0cikoSlNHbG9i
YWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUp
OworICAgIHR5cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9kdWxlTG9hZGVyVHJhbnNsYXRl
UHRyKShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1
ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiAgICAgTW9kdWxlTG9hZGVyVHJhbnNsYXRlUHRyIG1vZHVs
ZUxvYWRlclRyYW5zbGF0ZTsKIAotICAgIHR5cGVkZWYgSlNJbnRlcm5hbFByb21pc2UqICgqTW9k
dWxlTG9hZGVySW5zdGFudGlhdGVQdHIpKEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNN
b2R1bGVMb2FkZXIqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKKyAgICB0eXBlZGVmIEpTSW50ZXJuYWxQ
cm9taXNlKiAoKk1vZHVsZUxvYWRlckluc3RhbnRpYXRlUHRyKShKU0dsb2JhbE9iamVjdCosIEV4
ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiAg
ICAgTW9kdWxlTG9hZGVySW5zdGFudGlhdGVQdHIgbW9kdWxlTG9hZGVySW5zdGFudGlhdGU7CiAK
LSAgICB0eXBlZGVmIEpTVmFsdWUgKCpNb2R1bGVMb2FkZXJFdmFsdWF0ZVB0cikoSlNHbG9iYWxP
YmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUsIEpTVmFsdWUpOwor
ICAgIHR5cGVkZWYgSlNWYWx1ZSAoKk1vZHVsZUxvYWRlckV2YWx1YXRlUHRyKShKU0dsb2JhbE9i
amVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNW
YWx1ZSk7CiAgICAgTW9kdWxlTG9hZGVyRXZhbHVhdGVQdHIgbW9kdWxlTG9hZGVyRXZhbHVhdGU7
CiAKICAgICB0eXBlZGVmIFN0cmluZyAoKkRlZmF1bHRMYW5ndWFnZUZ1bmN0aW9uUHRyKSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCmlu
ZGV4IGQzYjVhNmE0NmY1YmQ0MTczNjBiMzJkMTU2NWU5ZDY1MWY0NDIxMTEuLjRlYWViZDc1ZDVh
YmNjNThlZDM3ODMzZGEyMTcwMDhkZWZhOTgwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgSlNWYWx1
ZSBKU01vZHVsZUxvYWRlcjo6cHJvdmlkZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBT
dGF0dXMgc3RhdHVzLCBjb24KICAgICByZXR1cm4gY2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5
cGUsIGNhbGxEYXRhLCB0aGlzLCBhcmd1bWVudHMpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSog
SlNNb2R1bGVMb2FkZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK0pTSW50ZXJuYWxQcm9taXNlKiBK
U01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBtb2R1bGVOYW1lLCBKU1ZhbHVlIHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcikKIHsK
ICAgICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZXhlYywgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmJ1aWx0aW5OYW1lcygpLmxvYWRBbmRFdmFsdWF0ZU1vZHVsZVB1
YmxpY05hbWUoKSkpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpAQCAtOTYsMTEgKzk2LDEyIEBA
IEpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1l
bnRzOwogICAgIGFyZ3VtZW50cy5hcHBlbmQobW9kdWxlTmFtZSk7CiAgICAgYXJndW1lbnRzLmFw
cGVuZChyZWZlcnJlcik7CisgICAgYXJndW1lbnRzLmFwcGVuZChpbml0aWF0b3IpOwogCiAgICAg
cmV0dXJuIGpzQ2FzdDxKU0ludGVybmFsUHJvbWlzZSo+KGNhbGwoZXhlYywgZnVuY3Rpb24sIGNh
bGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJndW1lbnRzKSk7CiB9CiAKLUpTSW50ZXJuYWxQcm9t
aXNlKiBKU01vZHVsZUxvYWRlcjo6bG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
bW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZlcnJlcikKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVs
ZUxvYWRlcjo6bG9hZE1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlTmFtZSwg
SlNWYWx1ZSByZWZlcnJlciwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNPYmplY3QqIGZ1
bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5idWlsdGluTmFtZXMoKS5sb2FkTW9kdWxlUHVibGljTmFtZSgpKSk7CiAgICAgQ2FsbERhdGEg
Y2FsbERhdGE7CkBAIC0xMTAsMTEgKzExMSwxMiBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1
bGVMb2FkZXI6OmxvYWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG1vZHVsZU5hbQog
ICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5k
KG1vZHVsZU5hbWUpOwogICAgIGFyZ3VtZW50cy5hcHBlbmQocmVmZXJyZXIpOworICAgIGFyZ3Vt
ZW50cy5hcHBlbmQoaW5pdGlhdG9yKTsKIAogICAgIHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFBy
b21pc2UqPihjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFy
Z3VtZW50cykpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OmxpbmtB
bmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlS2V5KQorSlNJ
bnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIG1vZHVsZUtleSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAg
ICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGV4ZWMsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5idWlsdGluTmFtZXMoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGVQdWJs
aWNOYW1lKCkpKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKQEAgLTEyMywzMSArMTI1LDMyIEBA
IEpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1
bWVudHM7CiAgICAgYXJndW1lbnRzLmFwcGVuZChtb2R1bGVLZXkpOworICAgIGFyZ3VtZW50cy5h
cHBlbmQoaW5pdGlhdG9yKTsKIAogICAgIHJldHVybiBqc0Nhc3Q8SlNJbnRlcm5hbFByb21pc2Uq
PihjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3VtZW50
cykpOwogfQogCi1KU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIG5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpCitKU0ludGVybmFs
UHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IG5hbWUsIEpTVmFsdWUgcmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIGlmIChP
cHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0YXRlKCkpCiAgICAgICAgIGRhdGFMb2coIkxvYWRl
ciBbcmVzb2x2ZV0gIiwgcHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIG5hbWUpLCAiXG4iKTsKIAog
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCk7CiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+
bW9kdWxlTG9hZGVyUmVzb2x2ZSkKLSAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyUmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4
ZWMsIHRoaXMsIG5hbWUsIHJlZmVycmVyKTsKKyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyUmVzb2x2ZShnbG9iYWxPYmpl
Y3QsIGV4ZWMsIHRoaXMsIG5hbWUsIHJlZmVycmVyLCBpbml0aWF0b3IpOwogICAgIEpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgZGVmZXJyZWQtPnJlc29sdmUoZXhlYywg
bmFtZSk7CiAgICAgcmV0dXJuIGRlZmVycmVkLT5wcm9taXNlKCk7CiB9CiAKLUpTSW50ZXJuYWxQ
cm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtl
eSkKK0pTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgaWYgKE9wdGlvbnM6
OmR1bXBNb2R1bGVMb2FkaW5nU3RhdGUoKSkKICAgICAgICAgZGF0YUxvZygiTG9hZGVyIFtmZXRj
aF0gIiwgcHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIGtleSksICJcbiIpOwogCiAgICAgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAg
ICBpZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2Fk
ZXJGZXRjaCkKLSAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUoKS0+bW9kdWxlTG9hZGVyRmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXkp
OworICAgICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgp
LT5tb2R1bGVMb2FkZXJGZXRjaChnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgaW5pdGlh
dG9yKTsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogICAgIFN0cmlu
ZyBtb2R1bGVLZXkgPSBrZXkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkgewpAQCAtMTYwLDQwICsxNjMsNDAgQEAgSlNJbnRlcm5hbFBy
b21pc2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5
KQogICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQogCi1KU0ludGVybmFsUHJvbWlz
ZSogSlNNb2R1bGVMb2FkZXI6OnRyYW5zbGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5
LCBKU1ZhbHVlIHBheWxvYWQpCitKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnRy
YW5zbGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHBheWxvYWQsIEpT
VmFsdWUgaW5pdGlhdG9yKQogewogICAgIGlmIChPcHRpb25zOjpkdW1wTW9kdWxlTG9hZGluZ1N0
YXRlKCkpCiAgICAgICAgIGRhdGFMb2coIkxvYWRlciBbdHJhbnNsYXRlXSAiLCBwcmludGFibGVN
b2R1bGVLZXkoZXhlYywga2V5KSwgIlxuIik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIGlmIChnbG9iYWxPYmpl
Y3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlclRyYW5zbGF0ZSkKLSAg
ICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9k
dWxlTG9hZGVyVHJhbnNsYXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBwYXlsb2Fk
KTsKKyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUo
KS0+bW9kdWxlTG9hZGVyVHJhbnNsYXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBw
YXlsb2FkLCBpbml0aWF0b3IpOwogICAgIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqIGRlZmVy
cmVkID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVj
dCk7CiAgICAgZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgcGF5bG9hZCk7CiAgICAgcmV0dXJuIGRl
ZmVycmVkLT5wcm9taXNlKCk7CiB9CiAKLUpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRl
cjo6aW5zdGFudGlhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBzb3Vy
Y2UpCitKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6Omluc3RhbnRpYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgc291cmNlLCBKU1ZhbHVlIGluaXRpYXRv
cikKIHsKICAgICBpZiAoT3B0aW9uczo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQogICAgICAg
ICBkYXRhTG9nKCJMb2FkZXIgW2luc3RhbnRpYXRlXSAiLCBwcmludGFibGVNb2R1bGVLZXkoZXhl
Yywga2V5KSwgIlxuIik7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIGlmIChnbG9iYWxPYmplY3QtPmdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRlckluc3RhbnRpYXRlKQotICAgICAgICByZXR1
cm4gZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJJ
bnN0YW50aWF0ZShnbG9iYWxPYmplY3QsIGV4ZWMsIHRoaXMsIGtleSwgc291cmNlKTsKKyAgICAg
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxl
TG9hZGVySW5zdGFudGlhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIHNvdXJjZSwg
aW5pdGlhdG9yKTsKICAgICBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QpOwogICAg
IGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIGpzVW5kZWZpbmVkKCkpOwogICAgIHJldHVybiBkZWZl
cnJlZC0+cHJvbWlzZSgpOwogfQogCi1KU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlKQor
SlNWYWx1ZSBKU01vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IGtleSwgSlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSwgSlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAg
ICAgaWYgKE9wdGlvbnM6OmR1bXBNb2R1bGVMb2FkaW5nU3RhdGUoKSkKICAgICAgICAgZGF0YUxv
ZygiTG9hZGVyIFtldmFsdWF0ZV0gIiwgcHJpbnRhYmxlTW9kdWxlS2V5KGV4ZWMsIGtleSksICJc
biIpOwogCiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKTsKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxPYmplY3RNZXRob2RU
YWJsZSgpLT5tb2R1bGVMb2FkZXJFdmFsdWF0ZSkKLSAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVj
dC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZhbHVhdGUoZ2xvYmFs
T2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIG1vZHVsZVJlY29yZFZhbHVlKTsKKyAgICAgICAgcmV0
dXJuIGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVy
RXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIG1vZHVsZVJlY29yZFZhbHVl
LCBpbml0aWF0b3IpOwogCiAgICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IGpzRHlu
YW1pY0Nhc3Q8SlNNb2R1bGVSZWNvcmQqPihtb2R1bGVSZWNvcmRWYWx1ZSk7CiAgICAgaWYgKCFt
b2R1bGVSZWNvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U01vZHVsZUxvYWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVM
b2FkZXIuaAppbmRleCA0Y2Q1OTA0MDY1ZWY1ZmY1NmRhOWI4NTBlZmJiOWJmMDc0ZTQwNDAzLi5i
ODdiN2FlYjVhOTNkMTk4MDk0YzcxN2U3YzU4YzIwZmEyY2U2NmNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmgKQEAgLTYzLDE4ICs2MywxOCBA
QCBjbGFzcyBKU01vZHVsZUxvYWRlciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIAogICAg
IC8vIEFQSXMgdG8gY29udHJvbCB0aGUgbW9kdWxlIGxvYWRlci4KICAgICBKU1ZhbHVlIHByb3Zp
ZGUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBrZXksIFN0YXR1cywgY29uc3QgU3RyaW5nJik7Ci0gICAg
SlNJbnRlcm5hbFByb21pc2UqIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBKU1Zh
bHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIpOwotICAgIEpTSW50ZXJuYWxQcm9taXNl
KiBsb2FkTW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlTmFtZSwgSlNWYWx1ZSByZWZl
cnJlcik7Ci0gICAgSlNJbnRlcm5hbFByb21pc2UqIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShFeGVj
U3RhdGUqLCBKU1ZhbHVlIG1vZHVsZUtleSk7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGxvYWRB
bmRFdmFsdWF0ZU1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUg
cmVmZXJyZXIsIEpTVmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0ludGVybmFsUHJvbWlzZSogbG9h
ZE1vZHVsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTVmFsdWUgcmVmZXJyZXIs
IEpTVmFsdWUgaW5pdGlhdG9yKTsKKyAgICBKU0ludGVybmFsUHJvbWlzZSogbGlua0FuZEV2YWx1
YXRlTW9kdWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbW9kdWxlS2V5LCBKU1ZhbHVlIGluaXRpYXRv
cik7CiAKICAgICAvLyBQbGF0Zm9ybSBkZXBlbmRlbnQgaG9va2VkIEFQSXMuCi0gICAgSlNJbnRl
cm5hbFByb21pc2UqIHJlc29sdmUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVlIHJl
ZmVycmVyKTsKLSAgICBKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goRXhlY1N0YXRlKiwgSlNWYWx1
ZSBrZXkpOwotICAgIEpTSW50ZXJuYWxQcm9taXNlKiB0cmFuc2xhdGUoRXhlY1N0YXRlKiwgSlNW
YWx1ZSBrZXksIEpTVmFsdWUgcGF5bG9hZCk7Ci0gICAgSlNJbnRlcm5hbFByb21pc2UqIGluc3Rh
bnRpYXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNvdXJjZSk7CisgICAgSlNJ
bnRlcm5hbFByb21pc2UqIHJlc29sdmUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBuYW1lLCBKU1ZhbHVl
IHJlZmVycmVyLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGZl
dGNoKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJ
bnRlcm5hbFByb21pc2UqIHRyYW5zbGF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1
ZSBwYXlsb2FkLCBKU1ZhbHVlIGluaXRpYXRvcik7CisgICAgSlNJbnRlcm5hbFByb21pc2UqIGlu
c3RhbnRpYXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNvdXJjZSwgSlNWYWx1
ZSBpbml0aWF0b3IpOwogCiAgICAgLy8gQWRkaXRpb25hbCBwbGF0Zm9ybSBkZXBlbmRlbnQgaG9v
a2VkIEFQSXMuCi0gICAgSlNWYWx1ZSBldmFsdWF0ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwg
SlNWYWx1ZSBtb2R1bGVSZWNvcmQpOworICAgIEpTVmFsdWUgZXZhbHVhdGUoRXhlY1N0YXRlKiwg
SlNWYWx1ZSBrZXksIEpTVmFsdWUgbW9kdWxlUmVjb3JkLCBKU1ZhbHVlIGluaXRpYXRvcik7CiAK
IHByb3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3Qq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRl
clByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2Fk
ZXJQcm90b3R5cGUuY3BwCmluZGV4IDJhNTYwMGI4YWVjMDdlMGUwZmM0MDc1Y2Y5ZTBhMjJlYTIz
MDczOTIuLjJkOTA0NmY3NDVmZDFiMGI1NGJmMTRmYWNhNDExZjZmZjYxMmZiMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyUHJvdG90
eXBlLmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bW9kdWxlTG9hZGVyUHJvdG90eXBlUmVzb2x2ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1
bGVMb2FkZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50
aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXIt
PnJlc29sdmUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPnJlc29sdmUoZXhlYywgZXhlYy0+YXJn
dW1lbnQoMCksIGV4ZWMtPmFyZ3VtZW50KDEpLCBleGVjLT5hcmd1bWVudCgyKSkpOwogfQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUZldGNoKEV4
ZWNTdGF0ZSogZXhlYykKQEAgLTE5NCw3ICsxOTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUZldGNoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBK
U01vZHVsZUxvYWRlciogbG9hZGVyID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZUxvYWRlcio+KGV4
ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxv
YWRlci0+ZmV0Y2goZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGxvYWRlci0+ZmV0Y2goZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMtPmFy
Z3VtZW50KDEpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9h
ZGVyUHJvdG90eXBlVHJhbnNsYXRlKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTIwNiw3ICsyMDYsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZVRyYW5z
bGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVMb2FkZXIqIGxvYWRlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFs
b2FkZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPnRyYW5zbGF0ZShleGVjLCBleGVjLT5h
cmd1bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGxvYWRlci0+dHJhbnNsYXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1
bWVudCgxKSwgZXhlYy0+YXJndW1lbnQoMikpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZShFeGVjU3RhdGUqIGV4ZWMp
CkBAIC0yMjAsNyArMjIwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVM
b2FkZXJQcm90b3R5cGVJbnN0YW50aWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNNb2R1bGVM
b2FkZXIqIGxvYWRlciA9IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVMb2FkZXIqPihleGVjLT50aGlz
VmFsdWUoKSk7CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmlu
c3RhbnRpYXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9hZGVyLT5pbnN0YW50aWF0ZShleGVjLCBleGVj
LT5hcmd1bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSksIGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiB9
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkaXRpb25hbCBIb29rIEZ1bmN0aW9ucyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIzMyw3ICsyMzMsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBKU01vZHVsZUxvYWRlciogbG9hZGVyID0ganNEeW5hbWljQ2FzdDxKU01vZHVs
ZUxvYWRlcio+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGxvYWRlci0+ZXZhbHVhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIGV4ZWMt
PmFyZ3VtZW50KDEpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2FkZXItPmV2YWx1
YXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBleGVjLT5hcmd1bWVudCgxKSwgZXhlYy0+YXJn
dW1lbnQoMikpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbC5oCmluZGV4IDkzM2EyZTUxODRhYjk5ZmYyNmZjYzEyZjYyMzBiOGQwM2Vl
MTlkODAuLjA1YzcwOTY4Y2Y4OGY1NDRjOWVjMTI1NWQzNzdlZmM4ZWE0NzNlNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFN5
bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgc3RhdGljIFN5bWJvbCogY3JlYXRl
KFZNJik7CiAgICAgc3RhdGljIFN5bWJvbCogY3JlYXRlKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiBk
ZXNjcmlwdGlvbik7Ci0gICAgc3RhdGljIFN5bWJvbCogY3JlYXRlKFZNJiwgU3ltYm9sSW1wbCYg
dWlkKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgU3ltYm9sKiBjcmVhdGUoVk0mLCBT
eW1ib2xJbXBsJiB1aWQpOwogCiAgICAgY29uc3QgUHJpdmF0ZU5hbWUmIHByaXZhdGVOYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9wcml2YXRlTmFtZTsgfQogICAgIFN0cmluZyBkZXNjcmlwdGl2ZVN0
cmluZygpIGNvbnN0OwpAQCAtNjQsNyArNjQsNyBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJs
aWMgSlNDZWxsIHsKIAogICAgIFN5bWJvbChWTSYpOwogICAgIFN5bWJvbChWTSYsIGNvbnN0IFN0
cmluZyYpOwotICAgIFN5bWJvbChWTSYsIFN5bWJvbEltcGwmIHVpZCk7CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgU3ltYm9sKFZNJiwgU3ltYm9sSW1wbCYgdWlkKTsKIAogICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oVk0mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0OWE2OGU2NmIyNjU4Zjlh
MTc1M2IzOGU5NjU5YWYzNmE5NWRiZjQxLi5mOGM2OGZjZDkyOTQxN2M5ZGMzYmM2ZDRlODY4NzY4
MWE5MGZiNmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIwOSw2ICsxMjA5LDggQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGlu
Z3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU01vZHVsZUZl
dGNoZXIuY3BwCisgICAgYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU01vZHVsZUxvYWRlci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2suY3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGMxMWZkZDVkZmZmYjY0Y2Q1ODk0NDMwMTJjYjMyOGJmZDFmNDkyZGEuLjQyYTAwZmM3MThjYWEw
MDA5MTE0YjE1ZWUxODM1NDM2YTNkMjEzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYwNjMsNiArNjA2MywxMCBAQAogCQlF
MUZGNTdBNjBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGNTdBNTBGMDEyNTZCMDA4
OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi87IH07CiAJCUUxRkY4RjZDMTgwREI1QkUw
MDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGOEY2QTE4MERCNUJFMDAxMzI2NzQgLyog
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwICovOyB9OwogCQlFMUZGOEY2RDE4MERCNUJFMDAx
MzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjZCMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeS5oICovOyB9OworCQlFMzRFNDk4NzFENzBBNTRGMDA2NDYxMzkg
LyogSlNNb2R1bGVHcmFwaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzRFNDk4NTFENzBBNTJCMDA2NDYxMzkgLyogSlNNb2R1bGVHcmFwaC5jcHAg
Ki87IH07CisJCUUzNEU0OTg4MUQ3MEE1NTEwMDY0NjEzOSAvKiBKU01vZHVsZUZldGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RTQ5ODMx
RDcwQTUyQjAwNjQ2MTM5IC8qIEpTTW9kdWxlRmV0Y2hlci5jcHAgKi87IH07CisJCUUzNEU0OTg5
MUQ3MEE1NTkwMDY0NjEzOSAvKiBKU01vZHVsZUdyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFNDk4NjFENzBBNTJCMDA2NDYxMzkgLyogSlNN
b2R1bGVHcmFwaC5oICovOyB9OworCQlFMzRFNDk4QTFENzBBNTVDMDA2NDYxMzkgLyogSlNNb2R1
bGVGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzRFNDk4NDFENzBBNTJCMDA2NDYxMzkgLyogSlNNb2R1bGVGZXRjaGVyLmggKi87IH07CiAJ
CUUzODgzODk4MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUxvYWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg4Mzg5NDFCQUQxNDVGMDBE
NjJFRTMgLyogSlNNb2R1bGVMb2FkZXIuY3BwICovOyB9OwogCQlFMzg4Mzg5OTFCQUQxNDVGMDBE
NjJFRTMgLyogSlNNb2R1bGVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBKU01vZHVsZUxvYWRl
ci5oICovOyB9OwogCQlFNDAxQzI3NTE3Q0U1M0VDMDBDNDFBMzUgLyogRWxlbWVudEl0ZXJhdG9y
QXNzZXJ0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQwMUMyNzQxN0NFNTNFQzAwQzQxQTM1IC8qIEVsZW1lbnRJdGVyYXRvckFzc2VydGlvbnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM2
MDgsNiArMTM2MTIsMTAgQEAKIAkJRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTV2ViS2l0
U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29y
aXRobVJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkIx
ODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNEU0OTgzMUQ3MEE1MkIwMDY0NjEzOSAvKiBKU01vZHVs
ZUZldGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2R1
bGVGZXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0RTQ5ODQxRDcw
QTUyQjAwNjQ2MTM5IC8qIEpTTW9kdWxlRmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU01vZHVsZUZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTM0RTQ5ODUxRDcwQTUyQjAwNjQ2MTM5IC8qIEpTTW9kdWxlR3JhcGguY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2R1bGVHcmFwaC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNEU0OTg2MUQ3MEE1MkIwMDY0NjEzOSAvKiBKU01vZHVs
ZUdyYXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW9kdWxlR3JhcGgu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUz
IC8qIEpTTW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTTW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4
ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIEpTTW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW9kdWxlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0MDFDMjc0MTdDRTUzRUMwMEM0MUEzNSAvKiBFbGVtZW50SXRlcmF0b3JBc3Nl
cnRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRJdGVyYXRv
ckFzc2VydGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwODkwLDYgKzIw
ODk4LDEwIEBACiAJCQkJOEY5MzREODQxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4
ZWNTdGF0ZS5jcHAgKi8sCiAJCQkJOEY5MzREODMxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oICovLAogCQkJCUI1NjU3NkU0MTdEQTU5OUYwMEE1NkJEQyAvKiBKU01h
aW5UaHJlYWRFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaCAqLywKKwkJCQlFMzRFNDk4MzFENzBB
NTJCMDA2NDYxMzkgLyogSlNNb2R1bGVGZXRjaGVyLmNwcCAqLywKKwkJCQlFMzRFNDk4NDFENzBB
NTJCMDA2NDYxMzkgLyogSlNNb2R1bGVGZXRjaGVyLmggKi8sCisJCQkJRTM0RTQ5ODUxRDcwQTUy
QjAwNjQ2MTM5IC8qIEpTTW9kdWxlR3JhcGguY3BwICovLAorCQkJCUUzNEU0OTg2MUQ3MEE1MkIw
MDY0NjEzOSAvKiBKU01vZHVsZUdyYXBoLmggKi8sCiAJCQkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYy
RUUzIC8qIEpTTW9kdWxlTG9hZGVyLmNwcCAqLywKIAkJCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJF
RTMgLyogSlNNb2R1bGVMb2FkZXIuaCAqLywKIAkJCQlDNkY0MjBBMDE2QjcxNjRFMDA1MkE5RjIg
LyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLywKQEAgLTI1NDY1LDYgKzI1NDc3LDcgQEAKIAkJ
CQlDRTEyNTI0MTFBMTZCMUI2MDA4NjQ0ODAgLyogTWVkaWFQbGF5ZXJTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRTM4ODM4OTkxQkFEMTQ1RjAwRDYyRUUzIC8qIEpTTW9kdWxl
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBGRTUgLyog
TWVkaWFRdWVyeUV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkUwQTM5REFD
QzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQTk0QTM5
MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NTYxNCw2ICsyNTYyNyw3IEBACiAJCQkJOUJCNzM3NjUxQjQxQzAzNTAwQUUxM0VCIC8qIE5TQXR0
cmlidXRlZFN0cmluZ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFCMzEzREYxQjY5ODhDNTAw
RjJBQUJDIC8qIE5TQnV0dG9uQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxMjUyNTEx
QTFCRUJEODAwODY0NDgwIC8qIE5TQ2FsZW5kYXJEYXRlU1BJLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMzRFNDk4OTFENzBBNTU5MDA2NDYxMzkgLyogSlNNb2R1bGVHcmFwaC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzFERjYzNTcxQUYxODdERDAwNzhGRDkxIC8qIE5TQ29sb3JTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQjlDNEFBMUIzMjMxRjQwMDcwRjI3RiAvKiBOU0V2ZW50U1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRERCOTdGNDE5RjlBRUNBMDAyMDI1RDggLyogTlNFeHRlbnNpb25T
UEkuaCBpbiBIZWFkZXJzICovLApAQCAtMjYwOTcsNiArMjYxMTEsNyBAQAogCQkJCTQxRjA2NkU0
MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzRFNDk4QTFENzBBNTVDMDA2NDYxMzkgLyogSlNNb2R1
bGVGZXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIg
LyogU2NyaXB0U291cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFDNzYwQjEwRURFMDNE
MzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyMjhDMjg0NTEw
RDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4
ODg4LDYgKzI4OTAzLDcgQEAKIAkJCQlCMkZBM0REODBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQ
YXRoU2VnTGluZXRvVmVydGljYWxSZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEREEw
QUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJGQTNEREMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMzRFNDk4ODFENzBBNTUxMDA2NDYxMzkgLyogSlNNb2R1bGVG
ZXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzRERFMEFCNzVBNkYwMDBFNUFDNCAv
KiBKU1NWR1BhdGhTZWdNb3ZldG9SZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERTAw
QUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0dGVybkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODU0MkE3OTYwQUU1Qzk0MjAwREY1OERGIC8qIEpTU1ZHUG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTY3Niw2ICsyOTY5Miw3IEBACiAJCQkJMEZFQTNFODcxOTFCM0JENzAwMEYx
QjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZDNEU0MTIxODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0M0QTQxNjE2MjlERjVBMDBDM0VC
NkUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSBpbiBTb3VyY2VzICov
LAorCQkJCUUzNEU0OTg3MUQ3MEE1NEYwMDY0NjEzOSAvKiBKU01vZHVsZUdyYXBoLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGQzRFNDBGMTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdUcmVl
SU9TLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTU4MDYzMTkzMjdBNjIwMERFMzJFQiAvKiBT
Y3JvbGxpbmdUcmVlTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQUFEREUzMTREQzhDOEYw
MEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDRj
M2FjZDAwYTZlOWE4ZTk4MDEzODY0YzMxYWM5OGFhNzUwNzEyZjcuLmYwZTEyY2E5MDc3NDQ3ZGZi
ZWFlNWRiYjZmNjVmODRhNDczYTk5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMTA4LDYgKzEwOCw4IEBACiAjaW5jbHVk
ZSAiSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZVBvcnRDdXN0b20uY3BwIgorI2luY2x1ZGUg
IkpTTW9kdWxlRmV0Y2hlci5jcHAiCisjaW5jbHVkZSAiSlNNb2R1bGVHcmFwaC5jcHAiCiAjaW5j
bHVkZSAiSlNNb2R1bGVMb2FkZXIuY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5j
cHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDY5MDc0ZjcyMzVj
YWMyZmJlMTQ2NjIzZGUxY2RhZjA2Nzk2MjkyMzEuLmMzNGMxMGM5NjM2YTUyOWIyYWFhZmU2ZDIx
NDcyZDdmMDlmMTEyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcApAQCAtMzIzLDI5ICszMjMsMjkgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6
OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRvdykK
IH0KIAogCi1KU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxv
YWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFs
dWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KQorSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6
SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpT
Qzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcikKIHsK
ICAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRv
d0Jhc2UqPihnbG9iYWxPYmplY3QpOwogICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50
ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1
bWVudC0+bW9kdWxlTG9hZGVyKCktPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVM
b2FkZXIsIG1vZHVsZU5hbWUsIGltcG9ydGVyTW9kdWxlS2V5KTsKKyAgICAgICAgcmV0dXJuIGRv
Y3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIGV4ZWMsIG1vZHVs
ZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1wb3J0ZXJNb2R1bGVLZXksIGluaXRpYXRvcik7CiAgICAg
SlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTQzo6SlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJu
IGRlZmVycmVkLT5yZWplY3QoZXhlYywganNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQzo6SlNJbnRl
cm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01v
ZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5KQorSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpT
Qzo6SlNWYWx1ZSBpbml0aWF0b3IpCiB7CiAgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0
ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAo
UmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVu
dCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLT5mZXRjaChnbG9i
YWxPYmplY3QsIGV4ZWMsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5KTsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1
bGVMb2FkZXIsIG1vZHVsZUtleSwgaW5pdGlhdG9yKTsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChl
eGVjLCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBK
U0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkKQorSlNDOjpK
U1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVs
ZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFs
dWUgbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogewogICAgIEpTRE9NV2lu
ZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2Jh
bE9iamVjdCk7CiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0
LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVM
b2FkZXIoKS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVs
ZUtleSwgbW9kdWxlUmVjb3JkKTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2Fk
ZXIoKS0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBleGVjLCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtl
eSwgbW9kdWxlUmVjb3JkLCBpbml0aWF0b3IpOwogICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVk
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
aW5kZXggODBkOTYwOGZhNjAzMDdlMTYwMGZjMjFjOWFkODZmMmQ3ZDkzMmE0Yi4uZjVmM2JlMDUy
M2U1OTY5YWQyZTM3MTYwZmJlNDBiY2M2NzJkYzM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTc4LDkgKzc4LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBKU0M6OldhdGNocG9pbnRTZXQgbV93aW5kb3dDbG9zZVdhdGNocG9p
bnRzOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIG1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
LSAgICAgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNo
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2Fk
ZXIqLCBKU0M6OkpTVmFsdWUpOwotICAgICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIG1vZHVsZUxv
YWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0
YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVy
RXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01v
ZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwog
CiAgICAgICAgIFJlZlB0cjxET01XaW5kb3c+IG1fd3JhcHBlZDsKICAgICAgICAgSlNET01XaW5k
b3dTaGVsbCogbV9zaGVsbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgKaW5kZXggNTk3Yzc3ZmU4MGVhMzk4ZTBlZDZhMjVkNmJlYWY2
YjViNDcxZTVkMC4uOWI5ZGY5YzRmMDc1MTE1MGZhZGY4NzMxMmY0NzliOGEyMmFlNjcyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmgKQEAgLTkyLDYgKzkyLDI0IEBAIGNsYXNzIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSB7CiAgICAg
ICAgIHRhc2sucnVuKGV4ZWMpOwogICAgIH0KIAorICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlKiBsb2FkTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIG1v
ZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpCisgICAgeworICAgICAgICBKU01haW5U
aHJlYWRFeGVjU3RhdGUgY3VycmVudFN0YXRlKGV4ZWMpOworICAgICAgICByZXR1cm4gSlNDOjps
b2FkTW9kdWxlKGV4ZWMsIG1vZHVsZU5hbWUsIGluaXRpYXRvcik7CisgICAgfQorCisgICAgc3Rh
dGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGxvYWRNb2R1bGUoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEpTQzo6U291cmNlQ29kZSYgc291cmNlQ29kZSwgSlNDOjpKU1ZhbHVlIGluaXRp
YXRvcikKKyAgICB7CisgICAgICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUo
ZXhlYyk7CisgICAgICAgIHJldHVybiBKU0M6OmxvYWRNb2R1bGUoZXhlYywgc291cmNlQ29kZSwg
aW5pdGlhdG9yKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
bGlua0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcikKKyAgICB7CisgICAg
ICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZSBjdXJyZW50U3RhdGUoZXhlYyk7CisgICAgICAgIHJl
dHVybiBKU0M6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShleGVjLCBtb2R1bGVLZXksIGluaXRpYXRv
cik7CisgICAgfQorCiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBp
bnN0cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBKU0M6OkNhbGxU
eXBlLCBjb25zdCBKU0M6OkNhbGxEYXRhJik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSBpbnN0cnVtZW50RnVuY3Rpb25Db25zdHJ1Y3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIEpTQzo6Q29uc3RydWN0VHlwZSwgY29uc3QgSlNDOjpDb25zdHJ1Y3REYXRhJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBkMzdlZWMwOGMyNzVkYzA5ZjBiYzkzNWE5YjMyMjdlMGZlZTc1OTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUZldGNoZXIu
Y3BwCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkpTTW9kdWxlRmV0Y2hlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJET01XcmFwcGVy
V29ybGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgor
I2luY2x1ZGUgIkpTTW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRp
b25zLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNv
dXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU01vZHVsZUZldGNoZXI6OkpT
TW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwm
IHNvdXJjZVVSTCwgSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9j
dW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fc291
cmNlVVJMKHNvdXJjZVVSTCkKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0KQorICAgICwgbV9kZWZlcnJlZChnbG9iYWxPYmplY3QtPnZtKCksIGRl
ZmVycmVkKQoreworfQorCitKU01vZHVsZUZldGNoZXI6On5KU01vZHVsZUZldGNoZXIoKQorewor
ICAgIGlmIChtX2NhY2hlZFNjcmlwdCkgeworICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3Zl
Q2xpZW50KHRoaXMpOworICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG51bGxwdHI7CisgICAgfQor
fQorCitSZWY8SlNNb2R1bGVGZXRjaGVyPiBKU01vZHVsZUZldGNoZXI6OmNyZWF0ZShKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNDOjpKU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCwgRG9jdW1lbnQmIGRvY3VtZW50KQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpTTW9kdWxlRmV0Y2hlcihnbG9iYWxPYmplY3QsIHNv
dXJjZVVSTCwgZGVmZXJyZWQsIGRvY3VtZW50KSk7Cit9CisKK2Jvb2wgSlNNb2R1bGVGZXRjaGVy
OjpydW4oU2NyaXB0RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBtX2NhY2hlZFNjcmlwdCA9IGVs
ZW1lbnQucmVxdWVzdE1vZHVsZVNjcmlwdChtX3NvdXJjZVVSTCk7CisgICAgaWYgKCFtX2NhY2hl
ZFNjcmlwdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gTm90ZTogSWYgdGhlIGNv
bnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMgaW1tZWlkYXRlbHkgY2FsbHMgbm90aWZ5Rmlu
aXNoZWQuCisgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwordm9pZCBKU01vZHVsZUZldGNoZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCByZXNvdXJj
ZSA9PSBtX2NhY2hlZFNjcmlwdCk7CisgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgQVNTRVJUKG1fY2FjaGVkU2NyaXB0KTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCA9IG1fY2FjaGVkU2NyaXB0OworICAg
IG1fY2FjaGVkU2NyaXB0ID0gbnVsbHB0cjsKKworI2lmIEVOQUJMRShOT1NOSUZGKQorICAgIGlm
IChjYWNoZWRTY3JpcHQgJiYgIWNhY2hlZFNjcmlwdC0+bWltZVR5cGVBbGxvd2VkQnlOb3NuaWZm
KCkpIHsKKyAgICAgICAgbV9kb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIlJlZnVzZWQgdG8gZXhlY3V0ZSBzY3Jp
cHQgZnJvbSAnIiArIGNhY2hlZFNjcmlwdC0+dXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRv
TGVuZ3RoKCkgKyAiJyBiZWNhdXNlIGl0cyBNSU1FIHR5cGUgKCciICsgY2FjaGVkU2NyaXB0LT5t
aW1lVHlwZSgpICsgIicpIGlzIG5vdCBleGVjdXRhYmxlLCBhbmQgc3RyaWN0IE1JTUUgdHlwZSBj
aGVja2luZyBpcyBlbmFibGVkLiIpOworICAgICAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVu
dCh0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgUmVmPERvY3Vt
ZW50PiBwcm90ZWN0b3IobV9kb2N1bWVudCk7CisKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9k
b2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sobV9nbG9i
YWxPYmplY3QtPnZtKCkpOworICAgICAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQtPmVycm9yT2Nj
dXJyZWQoKSkgeworICAgICAgICAgICAgLy8gVGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUgaXMg
Y29uc3RydWN0ZWQgYXMgYSBjaGFpbiBvZiBwcm9taXNlcy4KKyAgICAgICAgICAgIC8vIFJlamVj
dGluZyBhIHByb21pc2UgaWYgc29tZSBlcnJvciBvY2N1cnMgaXMgaW1wb3J0YW50IGJlY2F1c2Ug
dGhlIGV4ZWN1dGlvbiBmbG93IG9mCisgICAgICAgICAgICAvLyB0aGUgcHJvbWlzZSBjaGFpbiBp
cyBkcml2ZW4gYnkgInJlamVjdGVkIiBvciAiZnVsZmlsbGVkIiBldmVudHMuCisgICAgICAgICAg
ICAvLyBJZiB0aGUgcHJvbWlzZSBpcyBub3QgcmVqZWN0ZWQgd2hpbGUgZXJyb3Igb2NjdXJzLCBy
ZWplY3QgaGFuZGxlciB3b24ndCBiZSBleGVjdXRlZAorICAgICAgICAgICAgLy8gYW5kIGFsbCB0
aGUgc3Vic2VxdWVudCBwcm9taXNlIGNoYWluIHdpbGwgd2FpdCB0aGUgcmVzdWx0IGZvcmV2ZXIu
CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQXMgYSByZXN1bHQsIGV2ZW4gaWYgdGhl
IGVycm9yIGlzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIGluc3BlY3RvciBlbHNld2hlcmUsCisg
ICAgICAgICAgICAvLyBpdCBzaG91bGQgYmUgcHJvcGFnYXRlZCBpbiB0aGUgcGlwZWxpbmUuIEZv
ciBleGFtcGxlLCB0aGUgZXJyb3Igb2YgbG9hZGluZworICAgICAgICAgICAgLy8gQ2FjaGVkUmVz
b3VyY2UgaXMgYWxyZWFkeSByZXBvcnRlZCB0byB0aGUgaW5zcGVjdG9yIGJ5IHRoZSBsb2FkZXIu
IEJ1dCB3ZSBzdGlsbCBuZWVkCisgICAgICAgICAgICAvLyB0byByZWplY3QgdGhlIHByb21pc2Ug
Ynkgc29tZSBlcnJvci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBOb3QgdG8gcmVw
b3J0IHRoZSBlcnJvciB0d2ljZSwgd2hlbiB3ZSBwcm9wYWdhdGUgdGhlIGVycm9yIHRoYXQgaXMg
YWxyZWFkeSByZXBvcnRlZAorICAgICAgICAgICAgLy8gdG8gdGhlIGluc3BlY3Rvciwgd2UgdGhy
b3cgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wgc3ltYm9sIGluc3RlYWQu
CisgICAgICAgICAgICAvLyBCeSBjb21wYXJpbmcgdGhlIHRocm93biBlcnJvciB3aXRoIHRoaXMg
c3ltYm9sLCB3ZSBjYW4gZGlzdGluZ3Vpc2ggZXJyb3JzIHJhaXNlZAorICAgICAgICAgICAgLy8g
d2hlbiBsaW5raW5nIG9yIGV4ZWN1dGluZyBhIG1vZHVsZSBncmFwaCBmcm9tIGVycm9ycyByZXBv
cnRlZCBhbHJlYWR5LgorICAgICAgICAgICAgLy8gSW4gdGhlIHJlamVjdCBoYW5kbGVyIG9mIHRo
ZSBwcm9taXNlLCB3ZSBvbmx5IHJlcG9ydCBhIGVycm9yIHRoYXQgaXMgbm90IHRoaXMgc3ltYm9s
LgorICAgICAgICAgICAgbV9kZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6U3ltYm9sOjpjcmVh
dGUoZXhlYy0+dm0oKSwgKihmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9y
dGVkRXJyb3JTeW1ib2woKS51aWQoKSkpKTsKKyAgICAgICAgfSBlbHNlIGlmICghY2FjaGVkU2Ny
aXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJj
ZUNvZGUoY2FjaGVkU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIG1fZGVmZXJyZWQtPnJlc29s
dmUoZXhlYywgSlNDOjpqc1N0cmluZyhleGVjLCBzb3VyY2VDb2RlLnNvdXJjZSgpLnRvU3RyaW5n
KCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEEgQ2FjaGVkUmVzb3VyY2VIYW5kbGUg
YWxvbmUgZG9lcyBub3QgcHJldmVudCB0aGUgdW5kZXJseWluZyBDYWNoZWRSZXNvdXJjZQorICAg
IC8vIGZyb20gcHVyZ2luZyBpdHMgZGF0YSBidWZmZXIuIFVudGlsIHdlIGZpbmlzaCB1c2luZyB0
aGUgYmFja2luZyBidWZmZXIgb2YgdGhlCisgICAgLy8gY2FjaGVkIHNjcmlwdCwgd2UgZG9uJ3Qg
cmVtb3ZlIHRoZSBjbGllbnQuCisgICAgY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7
CisKKyAgICBtX2RvY3VtZW50Lm1vZHVsZUxvYWRlcigpLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsK
KyAgICAvLyBBZnRlciBKU01vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQgY2FsbCwgfHRoaXN8
IG1heSBiZSBkZXN0cm95ZWQuCit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTW9kdWxlRmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNb2R1bGVGZXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y5YTllNDUwYTZmYzBlYzU1MTAyNjZiMDYx
YTMyMWU2Yjc2ZGYxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTW9kdWxlRmV0Y2hlci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIEpTTW9kdWxlRmV0Y2hlcl9oCisjZGVmaW5lIEpTTW9kdWxlRmV0Y2hlcl9oCisKKyNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFu
ZGxlLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlVSTC5oIgorI2lu
Y2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRTY3Jp
cHQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgU2Ny
aXB0RWxlbWVudDsKKworY2xhc3MgSlNNb2R1bGVGZXRjaGVyIDogcHVibGljIFJlZkNvdW50ZWQ8
SlNNb2R1bGVGZXRjaGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSlNNb2R1bGVGZXRjaGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxKU01vZHVsZUZldGNoZXI+IGNyZWF0ZShKU0RP
TUdsb2JhbE9iamVjdCosIGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQqLCBEb2N1bWVudCYpOworCisgICAgfkpTTW9kdWxlRmV0Y2hlcigpOworCisg
ICAgYm9vbCBydW4oU2NyaXB0RWxlbWVudCYpOworCisgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRT
Y3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IEpTTW9kdWxlRmV0Y2hlcihKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IFVSTCYgc291cmNlVVJM
LCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQqLCBEb2N1bWVudCYpOworCisgICAgLy8g
Rm9yIENhY2hlZFJlc291cmNlQ2xpZW50LgorICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UqKSBvdmVycmlkZTsKKworICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIFVS
TCBtX3NvdXJjZVVSTDsKKyAgICBKU0M6OlN0cm9uZzxKU0RPTUdsb2JhbE9iamVjdD4gbV9nbG9i
YWxPYmplY3Q7CisgICAgSlNDOjpTdHJvbmc8SlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
PiBtX2RlZmVycmVkOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9j
YWNoZWRTY3JpcHQgeyB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gSlNNb2R1bGVGZXRjaGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTW9kdWxlR3JhcGguY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1
bGVHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTg3NTRjZGI3NGFlNGYwMjQ0NmNhYzIyYjkyYTRiZmJl
MzYyOTk4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TW9kdWxlR3JhcGguY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSlNNb2R1bGVHcmFwaC5oIgorCisjaW5jbHVkZSAiRE9NV3Jh
cHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiSlNNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgorI2luY2x1
ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU01vZHVs
ZUdyYXBoOjpKU01vZHVsZUdyYXBoKEVsZW1lbnQmIGVsZW1lbnQpCisgICAgOiBtX2VsZW1lbnQo
ZWxlbWVudCkKKyAgICAsIG1fd2Vha1B0ckZhY3RvcnkoJmVsZW1lbnQpCit7Cit9CisKK3ZvaWQg
SlNNb2R1bGVHcmFwaDo6bm90aWZ5TG9hZGVkKFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkp
Cit7CisgICAgbV9tb2R1bGVLZXkgPSBtb2R1bGVLZXk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50
KCkuc2NyaXB0UnVubmVyKCktPm5vdGlmeUpTTW9kdWxlR3JhcGhSZWFkeSh0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpKTsKK30KKwordm9pZCBKU01vZHVsZUdyYXBoOjpub3Rp
ZnlFcnJvcmVkKCkKK3sKKyAgICBtX2Vycm9yZWQgPSB0cnVlOworICAgIG1fZWxlbWVudC5kb2N1
bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5ub3RpZnlKU01vZHVsZUdyYXBoUmVhZHkodG9TY3JpcHRF
bGVtZW50SWZQb3NzaWJsZSgmbV9lbGVtZW50KSk7Cit9CisKK3ZvaWQgSlNNb2R1bGVHcmFwaDo6
ZXZhbHVhdGUoKQoreworICAgIGlmIChtX2Vycm9yZWQpCisgICAgICAgIHRvU2NyaXB0RWxlbWVu
dElmUG9zc2libGUoJm1fZWxlbWVudCktPmRpc3BhdGNoRXJyb3JFdmVudCgpOworICAgIGVsc2Ug
aWYgKEZyYW1lKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAg
IGZyYW1lLT5zY3JpcHQoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGUoKnRoaXMsIG1fZWxlbWVudCk7
Cit9CisKK3ZvaWQgSlNNb2R1bGVHcmFwaDo6bm90aWZ5RXZhbHVhdGVkKCkKK3sKKyAgICB0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZtX2VsZW1lbnQpLT5kaXNwYXRjaExvYWRFdmVudCgpOwor
fQorCit2b2lkIEpTTW9kdWxlR3JhcGg6OmxvYWQoY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQor
eworICAgIEFTU0VSVChtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKKyAgICBtX2VsZW1l
bnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5zY3JpcHQoKS5sb2FkTW9kdWxlKCp0aGlzLCBtb2R1bGVO
YW1lLCBtX2VsZW1lbnQpOworfQorCit2b2lkIEpTTW9kdWxlR3JhcGg6OmxvYWQoY29uc3QgU2Ny
aXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50LmRvY3Vt
ZW50KCkuZnJhbWUoKSk7CisgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+c2NyaXB0
KCkubG9hZE1vZHVsZSgqdGhpcywgc291cmNlQ29kZSwgbV9lbGVtZW50KTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVHcmFwaC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViYWRm
MGVmNTlmM2YyNGZiZjc1ZDRjMjI1MDQzOGUxNjY0ZTRkNDMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUdyYXBoLmgKQEAgLTAsMCArMSw3NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgSlNNb2R1bGVHcmFwaF9oCisjZGVmaW5lIEpTTW9kdWxl
R3JhcGhfaAorCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVkZSA8cnVudGlt
ZS9KU0ludGVybmFsUHJvbWlzZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxl
bWVudDsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CisKKy8vIEtlZXAgbGlmZXRpbWUgb2YgYSBK
U01vZHVsZUdyYXBoIHRoZSBzYW1lIHRvIGEgU2NyaXB0RWxlbWVudC4KK2NsYXNzIEpTTW9kdWxl
R3JhcGggeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTTW9kdWxlR3JhcGgpOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBKU01vZHVsZUdyYXBoKEVs
ZW1lbnQmKTsKKworICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0K
KyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgeyByZXR1cm4gbV9tb2R1bGVLZXku
Z2V0KCk7IH0KKworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpOworICAg
IHZvaWQgbG9hZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisgICAgdm9pZCBldmFsdWF0ZSgp
OworCisgICAgV2Vha1B0cjxFbGVtZW50PiB3ZWFrRWxlbWVudFB0cigpCisgICAgeworICAgICAg
ICByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgfQorCisgICAg
dm9pZCBub3RpZnlMb2FkZWQoVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSk7CisgICAgdm9p
ZCBub3RpZnlFcnJvcmVkKCk7CisKKyAgICB2b2lkIG5vdGlmeUV2YWx1YXRlZCgpOworCisgICAg
Ym9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcmVkOyB9CisgICAgYm9v
bCBpc0xvYWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5OyB9CisKK3ByaXZhdGU6CisK
KyAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CisgICAgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiBt
X21vZHVsZUtleTsKKyAgICBXZWFrUHRyRmFjdG9yeTxFbGVtZW50PiBtX3dlYWtQdHJGYWN0b3J5
OworICAgIGJvb2wgbV9lcnJvcmVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEpTTW9kdWxlTG9hZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmNwcAppbmRleCBiYTFlM2VjYzFkZDBjNmVlYWViZTI3
MGViNGNiZjI1ZWU0NzhhNTE5Li41ZjQxMTE5MzA5ZTIzMDFmY2E1NjE3ZTZiN2IxMTJjOTE5ZGEx
ZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vZHVsZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIuY3Bw
CkBAIC0zMCw2ICszMCw5IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNFbGVtZW50
LmgiCisjaW5jbHVkZSAiSlNNb2R1bGVGZXRjaGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
U3RyaW5nLmg+CkBAIC00MiwzNyArNDUsNDYgQEAgSlNNb2R1bGVMb2FkZXI6OkpTTW9kdWxlTG9h
ZGVyKERvY3VtZW50JiBkb2N1bWVudCkKIHsKIH0KIAotSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
SlNNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSBtb2R1bGVOYW1lVmFsdWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKK0pTQzo6
SlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZVZhbHVlLCBKU0M6OkpTVmFsdWUgaW1wb3J0
ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSkKIHsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKIAogICAgIC8vIFdlIHVzZSBhIFN5bWJvbCBhcyBhIHNw
ZWNpYWwgcHVycG9zZTsgSXQgbWVhbnMgdGhpcyBtb2R1bGUgaXMgYW4gaW5saW5lIG1vZHVsZS4K
ICAgICAvLyBTbyB0aGVyZSBpcyBubyBjb3JyZWN0IFVSTCB0byByZXRyaWV2ZSB0aGUgbW9kdWxl
IHNvdXJjZSBjb2RlLiBJZiB0aGUgbW9kdWxlIG5hbWUKICAgICAvLyB2YWx1ZSBpcyBhIFN5bWJv
bCwgaXQgaXMgdXNlZCBkaXJlY3RseSBhcyBhIG1vZHVsZSBrZXkuCi0gICAgLy8KLSAgICAvLyBG
SVhNRTogVXNpbmcgc3ltYm9scyBmb3IgYW4gaW5saW5lIG1vZHVsZSBpcyBhIGN1cnJlbnQgaW1w
bGVtZW50YXRpb24gZGV0YWlscyBvZiBXZWJLaXQuCi0gICAgLy8gT25jZSB0aGUgc3BlYyBvZiB0
aGlzIHBhcnQgaXMgc3BlY2lmaWVkLCB3ZSB3aWxsIHJlY2FzdCB0aGVzZSBwYXJ0LgogICAgIGlm
IChtb2R1bGVOYW1lVmFsdWUuaXNTeW1ib2woKSkKICAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5y
ZXNvbHZlKGV4ZWMsIG1vZHVsZU5hbWVWYWx1ZSk7CiAKKyAgICAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVzb2x2ZS1hLW1vZHVsZS1z
cGVjaWZpZXIKKwogICAgIGlmICghbW9kdWxlTmFtZVZhbHVlLmlzU3RyaW5nKCkpCi0gICAgICAg
IHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6Y3JlYXRlVHlwZUVycm9yKGV4ZWMs
ICJNb2R1bGUgbmFtZSBpcyBub3QgU3ltYm9sIG9yIFN0cmluZy4iKSk7CisgICAgICAgIHJldHVy
biBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIEpTQzo6Y3JlYXRlVHlwZUVycm9yKGV4ZWMsICJNb2R1
bGUgc3BlY2lmaWVyIGlzIG5vdCBTeW1ib2wgb3IgU3RyaW5nLiIpKTsKKworICAgIFN0cmluZyBz
cGVjaWZpZXIgPSBhc1N0cmluZyhtb2R1bGVOYW1lVmFsdWUpLT52YWx1ZShleGVjKTsKKworICAg
IC8vIDEuIEFwcGx5IHRoZSBVUkwgcGFyc2VyIHRvIHNwZWNpZmllci4gSWYgdGhlIHJlc3VsdCBp
cyBub3QgZmFpbHVyZSwgcmV0dXJuIHRoZSByZXN1bHQuCisgICAgVVJMIGFic29sdXRlVXJsKFVS
TCgpLCBzcGVjaWZpZXIpOworICAgIGlmIChhYnNvbHV0ZVVybC5pc1ZhbGlkKCkpCisgICAgICAg
IHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBqc1N0cmluZyhleGVjLCBhYnNvbHV0ZVVy
bC5zdHJpbmcoKSkpOwogCi0gICAgU3RyaW5nIG1vZHVsZU5hbWUgPSBhc1N0cmluZyhtb2R1bGVO
YW1lVmFsdWUpLT52YWx1ZShleGVjKTsKKyAgICAvLyAyLiBJZiBzcGVjaWZpZXIgZG9lcyBub3Qg
c3RhcnQgd2l0aCB0aGUgY2hhcmFjdGVyIFUrMDAyRiBTT0xJRFVTICgvKSwgdGhlIHR3by1jaGFy
YWN0ZXIgc2VxdWVuY2UgVSswMDJFIEZVTEwgU1RPUCwgVSswMDJGIFNPTElEVVMgKC4vKSwKKyAg
ICAvLyAgICBvciB0aGUgdGhyZWUtY2hhcmFjdGVyIHNlcXVlbmNlIFUrMDAyRSBGVUxMIFNUT1As
IFUrMDAyRSBGVUxMIFNUT1AsIFUrMDAyRiBTT0xJRFVTICguLi8pLCByZXR1cm4gZmFpbHVyZSBh
bmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycp
ICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgo
Ii4uLyIpKQorICAgICAgICByZXR1cm4gZGVmZXJyZWQtPnJlamVjdChleGVjLCBKU0M6OmNyZWF0
ZVR5cGVFcnJvcihleGVjLCAiTW9kdWxlIHNwZWNpZmllciBkb2VzIG5vdCBzdGFydCB3aXRoIFwi
L1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIiKSk7CisKKyAgICAvLyAzLiBSZXR1cm4gdGhlIHJlc3Vs
dCBvZiBhcHBseWluZyB0aGUgVVJMIHBhcnNlciB0byBzcGVjaWZpZXIgd2l0aCBzY3JpcHQncyBi
YXNlIFVSTCBhcyB0aGUgYmFzZSBVUkwuCiAKLSAgICAvLyBOb3csIHdlIGNvbnNpZGVyIHRoZSBn
aXZlbiBtb2R1bGVOYW1lIGFzIHRoZSBzYW1lIHRvIHRoZSBgaW1wb3J0ICIuLi4iYCBpbiB0aGUg
bW9kdWxlIGNvZGUuCi0gICAgLy8gV2UgdXNlIHRoZSBjb21wbGV0ZWQgVVJMIGFzIHRoZSB1bmlx
dWUgbW9kdWxlIGtleS4KICAgICBVUkwgY29tcGxldGVkVXJsOwogCiAgICAgaWYgKGltcG9ydGVy
TW9kdWxlS2V5LmlzU3ltYm9sKCkpCi0gICAgICAgIGNvbXBsZXRlZFVybCA9IG1fZG9jdW1lbnQu
Y29tcGxldGVVUkwobW9kdWxlTmFtZSk7CisgICAgICAgIGNvbXBsZXRlZFVybCA9IG1fZG9jdW1l
bnQuY29tcGxldGVVUkwoc3BlY2lmaWVyKTsKICAgICBlbHNlIGlmIChpbXBvcnRlck1vZHVsZUtl
eS5pc1VuZGVmaW5lZCgpKQotICAgICAgICBjb21wbGV0ZWRVcmwgPSBtX2RvY3VtZW50LmNvbXBs
ZXRlVVJMKG1vZHVsZU5hbWUpOworICAgICAgICBjb21wbGV0ZWRVcmwgPSBtX2RvY3VtZW50LmNv
bXBsZXRlVVJMKHNwZWNpZmllcik7CiAgICAgZWxzZSBpZiAoaW1wb3J0ZXJNb2R1bGVLZXkuaXNT
dHJpbmcoKSkgewogICAgICAgICBVUkwgaW1wb3J0ZXJNb2R1bGVVcmwoVVJMKCksIGFzU3RyaW5n
KGltcG9ydGVyTW9kdWxlS2V5KS0+dmFsdWUoZXhlYykpOwogICAgICAgICBpZiAoIWltcG9ydGVy
TW9kdWxlVXJsLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0
KGV4ZWMsIEpTQzo6Y3JlYXRlVHlwZUVycm9yKGV4ZWMsICJJbXBvcnRlciBtb2R1bGUga2V5IGlz
IGFuIGludmFsaWQgVVJMLiIpKTsKLSAgICAgICAgY29tcGxldGVkVXJsID0gbV9kb2N1bWVudC5j
b21wbGV0ZVVSTChtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZVVybCk7CisgICAgICAgIGNvbXBs
ZXRlZFVybCA9IG1fZG9jdW1lbnQuY29tcGxldGVVUkwoc3BlY2lmaWVyLCBpbXBvcnRlck1vZHVs
ZVVybCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHJldHVybiBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMs
IEpTQzo6Y3JlYXRlVHlwZUVycm9yKGV4ZWMsICJJbXBvcnRlciBtb2R1bGUga2V5IGlzIG5vdCBT
eW1ib2wgb3IgU3RyaW5nLiIpKTsKIApAQCAtODIsNyArOTQsNyBAQCBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlKiBKU01vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplYwogICAgIHJldHVybiBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBqc1N0cmluZyhleGVj
LCBjb21wbGV0ZWRVcmwuc3RyaW5nKCkpKTsKIH0KIAotSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
SlNNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUg
bW9kdWxlS2V5VmFsdWUpCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6
ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwg
SlNDOjpKU1ZhbHVlIGluaXRpYXRvcikKIHsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQqIGRlZmVycmVkID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUo
ZXhlYywgZ2xvYmFsT2JqZWN0KTsKIApAQCAtOTIsMTYgKzEwNCwyOCBAQCBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LAogICAgIGlmICghbW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSkKICAgICAgICAg
cmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpjcmVhdGVUeXBlRXJyb3IoZXhlYywg
Ik1vZHVsZSBrZXkgaXMgbm90IFN5bWJvbCBvciBTdHJpbmcuIikpOwogCisgICAgLy8gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEt
c2luZ2xlLW1vZHVsZS1zY3JpcHQKKwogICAgIFVSTCBjb21wbGV0ZWRVcmwoVVJMKCksIGFzU3Ry
aW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoZXhlYykpOwogICAgIGlmICghY29tcGxldGVkVXJs
LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhlYywgSlNDOjpj
cmVhdGVUeXBlRXJyb3IoZXhlYywgIk1vZHVsZSBrZXkgaXMgYW4gaW52YWxpZCBVUkwuIikpOwog
Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGUgbW9kdWxlIGZldGNoZXIuCisgICAgU2NyaXB0
RWxlbWVudCogc2NyaXB0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKGF1dG8qIGVsZW1lbnQg
PSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSkKKyAgICAgICAgc2Ny
aXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJmVsZW1lbnQtPndyYXBwZWQo
KSk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShzY3JpcHRFbGVtZW50LCAiSW5pdGlhdG9yIHNo
b3VsZCBiZSBTY3JpcHRFbGVtZW50LiIpOworCisgICAgUmVmPEpTTW9kdWxlRmV0Y2hlcj4gZmV0
Y2hlciA9IEpTTW9kdWxlRmV0Y2hlcjo6Y3JlYXRlKEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgY29tcGxldGVkVXJsLCBkZWZlcnJlZCwgbV9kb2N1bWVudCk7
CisgICAgbV9mZXRjaGluZ1NldC5hZGQoJmZldGNoZXIuZ2V0KCkpOworICAgIGlmICghZmV0Y2hl
ci0+cnVuKCpzY3JpcHRFbGVtZW50KSkgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbV9k
b2N1bWVudC5mcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVkLT5yZWplY3QoZXhl
YywgSlNDOjpTeW1ib2w6OmNyZWF0ZShleGVjLT52bSgpLCAqKGZyYW1lLT5zY3JpcHQoKS5tb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpLnVpZCgpKSkpOworICAgIH0KIAog
ICAgIHJldHVybiBkZWZlcnJlZC0+cHJvbWlzZSgpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNNb2R1
bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwg
SlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlKQorSlNDOjpKU1ZhbHVlIEpTTW9kdWxlTG9h
ZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUsIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSwgSlNDOjpKU1ZhbHVlKQogewogICAgIC8vIEZJWE1F
OiBDdXJyZW50bHksIHdlIG9ubHkgc3VwcG9ydCBKU01vZHVsZVJlY29yZC4KICAgICAvLyBPbmNl
IHRoZSByZWZsZWN0aXZlIHBhcnQgb2YgdGhlIG1vZHVsZSBsb2FkZXIgaXMgc3VwcG9ydGVkLCB3
ZSB3aWxsIGhhbmRsZSBhcmJpdHJhcnkgdmFsdWVzLgpAQCAtMTIxLDkgKzE0NSwxNCBAQCBKU0M6
OkpTVmFsdWUgSlNNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkV4ZWNTdGF0ZSogZXhlYwogICAgIGlmICghc291cmNlVXJsLmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIEpTQzo6dGhyb3dUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJNb2R1bGUg
a2V5IGlzIGFuIGludmFsaWQgVVJMLiIpKTsKIAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZXZh
bHVhdGluZyBtb2R1bGUgY29kZS4KLQorICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50
LmZyYW1lKCkpCisgICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUo
c291cmNlVXJsLCBtb2R1bGVSZWNvcmQpOwogICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7
CiB9CiAKK3ZvaWQgSlNNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKEpTTW9kdWxlRmV0Y2hl
ciogZmV0Y2hlcikKK3sKKyAgICBtX2ZldGNoaW5nU2V0LnJlbW92ZShmZXRjaGVyKTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2R1bGVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTW9kdWxlTG9hZGVyLmgKaW5kZXggNjlh
NTAxYTVhZTUzYTU2MjE0YzVjYzU5Y2VjYjMxOTAwNzZmZTFmZC4uMmU0NzUwM2E1YzVjYzQ1MDM4
MzJhMjQ0ZjRjZWQzZTk2MzdjZjRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01vZHVsZUxvYWRlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDAsNiArNDEs
NyBAQCBjbGFzcyBKU01vZHVsZUxvYWRlcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RG9jdW1lbnQ7CitjbGFzcyBKU01vZHVsZUZldGNoZXI7CiAKIGNsYXNzIEpTTW9kdWxlTG9hZGVy
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShKU01vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwpAQCAtNDgsMTIgKzUwLDE1IEBAIGNsYXNzIEpTTW9kdWxlTG9hZGVyIHsK
IAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KIAotICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVO
YW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpOwotICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5KTsKLSAgICBKU0M6OkpT
VmFsdWUgZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBt
b2R1bGVSZWNvcmQpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHJlc29sdmUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpT
Qzo6SlNWYWx1ZSBpbml0aWF0b3IpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZldGNo
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNNb2R1bGVMb2Fk
ZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgaW5pdGlhdG9yKTsKKyAg
ICBKU0M6OkpTVmFsdWUgZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBpbml0aWF0b3IpOworCisgICAgdm9p
ZCBub3RpZnlGaW5pc2hlZChKU01vZHVsZUZldGNoZXIqKTsKIAogcHJpdmF0ZToKICAgICBEb2N1
bWVudCYgbV9kb2N1bWVudDsKKyAgICBIYXNoU2V0PFJlZlB0cjxKU01vZHVsZUZldGNoZXI+PiBt
X2ZldGNoaW5nU2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA2ODgzOTdhMDVj
NzgwMTBjY2VhMjQ5NWQyMzAzOTA5NTE3YzRlNjA5Li43Nzk4ZmVmMmM4ZWVmODg0YzZkNDNjZTRl
MThmOTI5YjQzNGY2YTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93
LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNT
dGF0ZS5oIgorI2luY2x1ZGUgIkpTTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJNYWluRnJhbWUu
aCIKICNpbmNsdWRlICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNpbmNsdWRlICJOUF9qc29i
amVjdC5oIgpAQCAtNDEsNiArNDIsNyBAQAogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKKyNp
bmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgog
I2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCkBAIC01Myw3ICs1NSwxMSBAQAogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogCkBAIC04NSw2ICs5MSw3
IEBAIFNjcmlwdENvbnRyb2xsZXI6OlNjcmlwdENvbnRyb2xsZXIoRnJhbWUmIGZyYW1lKQogICAg
IDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fc291cmNlVVJMKDApCiAgICAgLCBtX3BhdXNlZChm
YWxzZSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKQog
I2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV93aW5kb3dTY3JpcHROUE9i
amVjdCgwKQogI2VuZGlmCkBAIC0xNTUsNyArMTYyLDcgQEAgSlNWYWx1ZSBTY3JpcHRDb250cm9s
bGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwg
RE8KICAgICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNlVVJMID0gbV9zb3VyY2VVUkw7CiAgICAg
bV9zb3VyY2VVUkwgPSAmc291cmNlVVJMOwogCi0gICAgUmVmPEZyYW1lPiBwcm90ZWN0KG1fZnJh
bWUpOworICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOwogCiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTCwgc291cmNlQ29kZS5zdGFydExp
bmUoKSk7CiAKQEAgLTE3OSw2ICsxODYsMTIzIEBAIEpTVmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6
ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgRXhjZXB0aW9uCiAg
ICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCBtYWluVGhyZWFkTm9ybWFsV29y
bGQoKSwgZXhjZXB0aW9uRGV0YWlscyk7CiB9CiAKK3N0YXRpYyB2b2lkIGhhbmRsZUpTTW9kdWxl
TG9hZGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGVycm9yLCBjb25zdCBQcml2YXRl
TmFtZSYgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wpCit7CisgICAgLy8g
T25jZSByZXBvcnRlZCBlcnJvciBpcyBtYXJrZWQgYXMgbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9y
dGVkRXJyb3JTeW1ib2wuCisgICAgLy8gRG9uJ3QgcmVwb3J0IGl0IGhlcmUgYWdhaW4uCisgICAg
aWYgKFN5bWJvbCogc3ltYm9sID0ganNEeW5hbWljQ2FzdDxTeW1ib2wqPihlcnJvcikpIHsKKyAg
ICAgICAgaWYgKHN5bWJvbC0+cHJpdmF0ZU5hbWUoKSA9PSBtb2R1bGVMb2FkZXJBbHJlYWR5UmVw
b3J0ZWRFcnJvclN5bWJvbCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBG
SVhNRTogQmVjYXVzZSB3ZSBoYXZlIG5vdCBzdXBwb3J0ZWQgdGhlICJjcm9zc29yaWdpbiIgYXR0
cmlidXRlIGluIHRoZSBtb2R1bGUgdGFnLAorICAgIC8vIHdlIHBhc3MgdGhlIG51bGxwdHIgdG8g
cmVwb3J0RXhjZXB0aW9uJ3MgQ2FjaGVkU2NyaXB0KiBwYXJhbWV0ZXIuIFdoZW4gcGFzc2luZyBu
dWxscHRyCisgICAgLy8gdG8gcmVwb3J0RXhjZXB0aW9uLCBXZWJDb3JlIGRvZXMgbm90IHNob3cg
dGhlIGRldGFpbCBvZiB0aGUgZXJyb3IgaWYgdGhlIFVSTCBvZiB0aGUKKyAgICAvLyBzb3VyY2Ug
ZG9lcyBub3QgcGFzcyB0aGUgc2FtZSBvcmlnaW4gcG9saWN5LiBTbyB0aGUgY3VycmVudCBiZWhh
dmlvciBpcyBjb25zZXJ2YXRpdmU7CisgICAgLy8gb25seSB0aGUgbW9kdWxlIGNvZGUgdGhhdCBV
UkwgaXMgd2l0aGluIHRoZSBzYW1lIG9yaWdpbiBjYW4gcmVwb3J0IHRoZSBkZXRhaWxzIG9mIHRo
ZQorICAgIC8vIGVycm9yLiBPbmNlIHRoZSBzcGVjIGRlc2NyaWJlcyB0aGUgYmVoYXZpb3IsIHdl
IHdpbGwgZm9sbG93IGl0LgorICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBlcnJvciwgbnVsbHB0
cik7Cit9CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZUluV29ybGQoSlNNb2R1
bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCwgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9j
ayh3b3JsZC52bSgpKTsKKworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gd2luZG93U2hl
bGwod29ybGQpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHNoZWxsLT53aW5kb3coKS0+Z2xvYmFs
RXhlYygpOworCisgICAgaW5pdEpTTW9kdWxlR3JhcGgobW9kdWxlR3JhcGgsIEpTTWFpblRocmVh
ZEV4ZWNTdGF0ZTo6bG9hZE1vZHVsZShleGVjLCBtb2R1bGVOYW1lLCB0b0pTKGV4ZWMsIHNoZWxs
LT53aW5kb3coKSwgJmVsZW1lbnQpKSwgd29ybGQpOworfQorCit2b2lkIFNjcmlwdENvbnRyb2xs
ZXI6OmxvYWRNb2R1bGUoSlNNb2R1bGVHcmFwaCYgbW9kdWxlR3JhcGgsIGNvbnN0IFN0cmluZyYg
bW9kdWxlTmFtZSwgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBsb2FkTW9kdWxlSW5Xb3JsZCht
b2R1bGVHcmFwaCwgbW9kdWxlTmFtZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCksIGVsZW1lbnQp
OworfQorCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVJbldvcmxkKEpTTW9kdWxl
R3JhcGgmIG1vZHVsZUdyYXBoLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBE
T01XcmFwcGVyV29ybGQmIHdvcmxkLCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIEpTTG9ja0hv
bGRlciBsb2NrKHdvcmxkLnZtKCkpOworCisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3
aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygp
LT5nbG9iYWxFeGVjKCk7CisKKyAgICBpbml0SlNNb2R1bGVHcmFwaChtb2R1bGVHcmFwaCwgSlNN
YWluVGhyZWFkRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGV4ZWMsIHNvdXJjZUNvZGUuanNTb3VyY2VD
b2RlKCksIHRvSlMoZXhlYywgc2hlbGwtPndpbmRvdygpLCAmZWxlbWVudCkpLCB3b3JsZCk7Cit9
CisKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZShKU01vZHVsZUdyYXBoJiBtb2R1
bGVHcmFwaCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBsb2FkTW9kdWxlSW5Xb3JsZChtb2R1bGVHcmFwaCwgc291cmNlQ29kZSwg
bWFpblRocmVhZE5vcm1hbFdvcmxkKCksIGVsZW1lbnQpOworfQorCit2b2lkIFNjcmlwdENvbnRy
b2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZUluV29ybGQoSlNNb2R1bGVHcmFwaCYgbW9kdWxl
R3JhcGgsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAg
SlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CisKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBz
aGVsbCA9IHdpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBzaGVsbC0+
d2luZG93KCktPmdsb2JhbEV4ZWMoKTsKKworICAgIEpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNl
ID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZXhlYywgSWRl
bnRpZmllcjo6ZnJvbVVpZCgmZXhlYy0+dm0oKSwgbW9kdWxlR3JhcGgubW9kdWxlS2V5KCkpLCB0
b0pTKGV4ZWMsIHNoZWxsLT53aW5kb3coKSwgJmVsZW1lbnQpKTsKKworICAgIFdlYWtQdHI8RWxl
bWVudD4gd2Vha1B0cihtb2R1bGVHcmFwaC53ZWFrRWxlbWVudFB0cigpKTsKKyAgICBKU0Z1bmN0
aW9uKiBmdWxmaWxsSGFuZGxlciA9IEpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52
bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0cmluZygpLCBbd2Vha1B0cl0oRXhlY1N0YXRlKikg
eworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSB3ZWFrUHRyLmdldCgpKQor
ICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9k
dWxlR3JhcGgoKS0+bm90aWZ5RXZhbHVhdGVkKCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBtb2R1bGVM
b2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFkeVJl
cG9ydGVkRXJyb3JTeW1ib2w7CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9IEpTTmF0
aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEsIFN0
cmluZygpLCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQdHJd
KEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQg
PSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShl
bGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXZhbHVhdGVkKCk7CisgICAgICAg
IGhhbmRsZUpTTW9kdWxlTG9hZGVyRXJyb3IoZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIG1vZHVs
ZUxvYWRlckFscmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKTsKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIHByb21pc2UtPnRoZW4o
ZXhlYywgZnVsZmlsbEhhbmRsZXIsIHJlamVjdEhhbmRsZXIpOworfQorCit2b2lkIFNjcmlwdENv
bnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShKU01vZHVsZUdyYXBoJiBtb2R1bGVHcmFw
aCwgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxk
KG1vZHVsZUdyYXBoLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgZWxlbWVudCk7Cit9CisKK0pT
Qzo6SlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNv
dXJjZVVSTCwgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCkKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh3b3JsZC52bSgpKTsKKworICAgIGNvbnN0
IFNvdXJjZUNvZGUmIGpzU291cmNlQ29kZSA9IG1vZHVsZVJlY29yZC0+c291cmNlQ29kZSgpOwor
CisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7CisgICAg
RXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisgICAgY29u
c3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOworICAgIG1fc291cmNlVVJM
ID0gJnNvdXJjZVVSTC5zdHJpbmcoKTsKKworICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJh
bWUpOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVS
TCwganNTb3VyY2VDb2RlLmZpcnN0TGluZSgpKTsKKworICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUg
PSBtb2R1bGVSZWNvcmQtPmV2YWx1YXRlKGV4ZWMpOworICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4g
ZXZhbHVhdGlvbkV4Y2VwdGlvbjsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgIGV2YWx1YXRpb25FeGNlcHRpb24gPSBleGVjLT52bSgpLmV4Y2VwdGlvbigpOworCisgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFdmFsdWF0ZVNjcmlwdChjb29raWUsIG1fZnJh
bWUpOworCisgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pIHsKKyAgICAgICAgcmVwb3J0RXhj
ZXB0aW9uKGV4ZWMsIGV2YWx1YXRpb25FeGNlcHRpb24sIG51bGxwdHIpOworICAgICAgICBtX3Nv
dXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KyAgICB9CisKKyAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOworICAgIHJldHVybiBy
ZXR1cm5WYWx1ZTsKK30KKworSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRl
TW9kdWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3Jk
KQoreworICAgIHJldHVybiBldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsIG1vZHVsZVJlY29yZCwg
bWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCiBSZWY8RE9NV3JhcHBlcldvcmxkPiBTY3Jp
cHRDb250cm9sbGVyOjpjcmVhdGVXb3JsZCgpCiB7CiAgICAgcmV0dXJuIERPTVdyYXBwZXJXb3Js
ZDo6Y3JlYXRlKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKQEAgLTI1OSw2ICszODMsNDEgQEAg
SlNET01XaW5kb3dTaGVsbCogU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdChET01XcmFwcGVy
V29ybGQmIHdvcmxkKQogICAgIHJldHVybiAmd2luZG93U2hlbGw7CiB9CiAKK3N0YXRpYyBJZGVu
dGlmaWVyIGpzVmFsdWVUb01vZHVsZUtleShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUp
Cit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVy
Ojpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFT
U0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhleGVjLCBqc0Nhc3Q8SlNTdHJpbmcqPih2YWx1ZSktPnZhbHVlKGV4ZWMpKTsKK30KKwordm9p
ZCBTY3JpcHRDb250cm9sbGVyOjppbml0SlNNb2R1bGVHcmFwaChKU01vZHVsZUdyYXBoJiBtb2R1
bGVHcmFwaCwgSlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UsIERPTVdyYXBwZXJXb3JsZCYgd29y
bGQpCit7CisgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSB3aW5kb3dTaGVsbCh3b3JsZCk7
CisgICAgRXhlY1N0YXRlKiBleGVjID0gc2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CisK
KyAgICBXZWFrUHRyPEVsZW1lbnQ+IHdlYWtQdHIobW9kdWxlR3JhcGgud2Vha0VsZW1lbnRQdHIo
KSk7CisgICAgSlNGdW5jdGlvbiogZnVsZmlsbEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0aW9u
OjpjcmVhdGUoZXhlYy0+dm0oKSwgc2hlbGwtPndpbmRvdygpLCAxLCBTdHJpbmcoKSwgW3dlYWtQ
dHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICAvLyBKU01vZHVsZUdyYXBoLCBzY3JpcHQg
ZWxlbWVudCBhbmQgZG9jdW1lbnQgbWF5IGJlIGRlc3Ryb3llZCBkdXJpbmcgbG9hZGluZyB0aGUg
bW9kdWxlLgorICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBub3QgZXhlY3V0ZSBt
b2R1bGUgYm9keS4KKyAgICAgICAgaWYgKFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gd2Vha1B0
ci5nZXQoKSkgeworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9N
b2R1bGVLZXkoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgdG9TY3JpcHRF
bGVtZW50SWZQb3NzaWJsZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5TG9h
ZGVkKG1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBQcml2YXRlTmFtZSBtb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCA9IG1fbW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2w7CisgICAgSlNGdW5jdGlvbiogcmVqZWN0SGFuZGxlciA9IEpT
TmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBzaGVsbC0+d2luZG93KCksIDEs
IFN0cmluZygpLCBbbW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2wsIHdlYWtQ
dHJdKEV4ZWNTdGF0ZSogZXhlYykgeworICAgICAgICBpZiAoUmVmUHRyPEVsZW1lbnQ+IGVsZW1l
bnQgPSB3ZWFrUHRyLmdldCgpKQorICAgICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJs
ZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+bm90aWZ5RXJyb3JlZCgpOworICAgICAg
ICBoYW5kbGVKU01vZHVsZUxvYWRlckVycm9yKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCBtb2R1
bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCk7CisgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBwcm9taXNlLT50aGVu
KGV4ZWMsIGZ1bGZpbGxIYW5kbGVyLCByZWplY3RIYW5kbGVyKTsKK30KKwogVGV4dFBvc2l0aW9u
IFNjcmlwdENvbnRyb2xsZXI6OmV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3QKIHsKICAgICAv
LyBGSVhNRTogSWYgd2UgYXJlIG5vdCBjdXJyZW50bHkgcGFyc2luZywgd2Ugc2hvdWxkIHVzZSBv
dXIgY3VycmVudCBsb2NhdGlvbgpAQCAtNTIwLDcgKzY3OSw3IEBAIEpTVmFsdWUgU2NyaXB0Q29u
dHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2Rl
LCBFeGNlCiAgICAgaWYgKCFjYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkg
fHwgaXNQYXVzZWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsgLy8gRklYTUU6IFdvdWxkIGpzTnVs
bCBiZSBiZXR0ZXI/CiAKLSAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7IC8vIFNjcmlw
dCBleGVjdXRpb24gY2FuIGRlc3Ryb3kgdGhlIGZyYW1lLCBhbmQgdGh1cyB0aGUgU2NyaXB0Q29u
dHJvbGxlci4KKyAgICBSZWY8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1lKTsgLy8gU2NyaXB0IGV4
ZWN1dGlvbiBjYW4gZGVzdHJveSB0aGUgZnJhbWUsIGFuZCB0aHVzIHRoZSBTY3JpcHRDb250cm9s
bGVyLgogCiAgICAgcmV0dXJuIGV2YWx1YXRlKHNvdXJjZUNvZGUsIGV4Y2VwdGlvbkRldGFpbHMp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCmlu
ZGV4IGEwYzcxZjI2MDgxMmIwZDMyMTE5MTY4NjgxMTlkNzBiZjY3MTc2MmYuLjBjZDRkZDc0ODRk
NTQxNjEwNDUwZDQ5OTU5MThhMWUzMTdkY2Y5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTQ0LDYgKzQ0LDggQEAgY2xhc3MgU2NyaXB0
VmFsdWU7CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CitjbGFzcyBK
U01vZHVsZVJlY29yZDsKK2NsYXNzIEpTSW50ZXJuYWxQcm9taXNlOwogY2xhc3MgRXhlY1N0YXRl
OwogCiBuYW1lc3BhY2UgQmluZGluZ3MgewpAQCAtNTcsNiArNTksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxEb2N1bWVudDsKIGNsYXNzIEhUTUxQbHVn
SW5FbGVtZW50OworY2xhc3MgSlNNb2R1bGVHcmFwaDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7
CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdpZGdldDsKQEAgLTExNSw2ICsxMTgsMTcg
QEAgY2xhc3MgU2NyaXB0Q29udHJvbGxlciB7CiAgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlKGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBFeGNlcHRpb25EZXRhaWxzKiA9IG51bGxwdHIpOwogICAg
IEpTQzo6SlNWYWx1ZSBldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIERP
TVdyYXBwZXJXb3JsZCYsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CiAKKyAgICB2b2lk
IGxvYWRNb2R1bGVJbldvcmxkKEpTTW9kdWxlR3JhcGgmLCBjb25zdCBTdHJpbmcmIG1vZHVsZU5h
bWUsIERPTVdyYXBwZXJXb3JsZCYsIEVsZW1lbnQmKTsKKyAgICB2b2lkIGxvYWRNb2R1bGUoSlNN
b2R1bGVHcmFwaCYsIGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSwgRWxlbWVudCYpOworICAgIHZv
aWQgbG9hZE1vZHVsZUluV29ybGQoSlNNb2R1bGVHcmFwaCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmLCBET01XcmFwcGVyV29ybGQmLCBFbGVtZW50Jik7CisgICAgdm9pZCBsb2FkTW9kdWxlKEpT
TW9kdWxlR3JhcGgmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgRWxlbWVudCYpOworCisgICAg
dm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGVJbldvcmxkKEpTTW9kdWxlR3JhcGgmICwgRE9NV3Jh
cHBlcldvcmxkJiwgRWxlbWVudCYpOworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKEpT
TW9kdWxlR3JhcGgmLCBFbGVtZW50Jik7CisKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1
bGUoY29uc3QgVVJMJiwgSlNDOjpKU01vZHVsZVJlY29yZCosIERPTVdyYXBwZXJXb3JsZCYpOwor
ICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmLCBKU0M6OkpTTW9kdWxl
UmVjb3JkKik7CisKICAgICBXVEY6OlRleHRQb3NpdGlvbiBldmVudEhhbmRsZXJQb3NpdGlvbigp
IGNvbnN0OwogCiAgICAgdm9pZCBlbmFibGVFdmFsKCk7CkBAIC0xMzUsNiArMTQ5LDggQEAgY2xh
c3MgU2NyaXB0Q29udHJvbGxlciB7CiAKICAgICBjb25zdCBTdHJpbmcqIHNvdXJjZVVSTCgpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9IC8vIDAgaWYgd2UgYXJlIG5vdCBldmFsdWF0aW5n
IGFueSBzY3JpcHQKIAorICAgIGNvbnN0IEpTQzo6UHJpdmF0ZU5hbWUmIG1vZHVsZUxvYWRlckFs
cmVhZHlSZXBvcnRlZEVycm9yU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVMb2FkZXJB
bHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsgfQorCiAgICAgdm9pZCBjbGVhcldpbmRvd1NoZWxs
KERPTVdpbmRvdyogbmV3RE9NV2luZG93LCBib29sIGdvaW5nSW50b1BhZ2VDYWNoZSk7CiAgICAg
dm9pZCB1cGRhdGVEb2N1bWVudCgpOwogCkBAIC0xNjcsNiArMTgzLDcgQEAgY2xhc3MgU2NyaXB0
Q29udHJvbGxlciB7CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3dT
aGVsbCogaW5pdFNjcmlwdChET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGluaXRKU01vZHVs
ZUdyYXBoKEpTTW9kdWxlR3JhcGgmLCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiwgRE9NV3JhcHBl
cldvcmxkJik7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsK
IApAQCAtMTc1LDYgKzE5Miw3IEBAIGNsYXNzIFNjcmlwdENvbnRyb2xsZXIgewogICAgIGNvbnN0
IFN0cmluZyogbV9zb3VyY2VVUkw7CiAKICAgICBib29sIG1fcGF1c2VkOworICAgIEpTQzo6UHJp
dmF0ZU5hbWUgbV9tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbDsKIAogICAg
IC8vIFRoZSByb290IG9iamVjdCB1c2VkIGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhlIGNv
bnRleHQgb2YgYSBwbHVnaW4sIHN1Y2gKICAgICAvLyBhcyBOUEFQSSBwbHVnaW5zLiBUaGUgcGx1
Z2lucyB1c2luZyB0aGVzZSBvYmplY3RzIHByZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVk
IHNvIHRoZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDRkMDMwOGQ3YTM3NzhmZDNhNGQ4
NDI0NWM4MGVmNmNlM2Y4ZDY2NWIuLjAzOWY5MjU2OThkMjcxZGUyMDgzYzU2MTJkZDllMGViMWE2
MTIxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTAzLDYgKzEwMyw3IEBACiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1
ZGUgIkpTTW9kdWxlRmV0Y2hlci5oIgogI2luY2x1ZGUgIkpTTW9kdWxlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDdlMzhkOGZkYTFlYWIwZDY0ZmU0NTJkMjA4ZWY1YWUwNGM0ZTUxODYuLmE2
NzM2MGM2YjA4MmQwOWUwMzBmNWNkMzkxNjc3NTg1OTE5YzliM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0xMzMsNiArMTMzLDcgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNsYXNz
IE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNz
IE1lZGlhUXVlcnlNYXRjaGVyOworY2xhc3MgSlNNb2R1bGVMb2FkZXI7CiBjbGFzcyBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRGbG93Q29sbGVjdGlvbjsKIGNsYXNz
IE5vZGVGaWx0ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZjE4NzEx
MTViMzI4YTZmMTI2MzA5MzZlODVlYjA5YWI3YTFmMzU3Yy4uYjRlNGViOWI4YTc3MjE0ODVhZGZk
ODJkMDYyYjRiNzlhMDM2YmE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQ
YXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNy
ZW1lbnRlci5oIgorI2luY2x1ZGUgIkpTTW9kdWxlR3JhcGguaCIKICNpbmNsdWRlICJNSU1FVHlw
ZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBA
IC0xNjUsMTIgKzE2NiwxMiBAQCBPcHRpb25hbDxTY3JpcHRFbGVtZW50OjpTY3JpcHRUeXBlPiBT
Y3JpcHRFbGVtZW50OjpkZXRlcm1pbmVTY3JpcHRUeXBlKExlZ2FjeVR5cAogICAgICAgICByZXR1
cm4gU2NyaXB0VHlwZTo6Q2xhc3NpYzsKICAgICBpZiAoc3VwcG9ydExlZ2FjeVR5cGVzID09IEFs
bG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSAmJiBpc0xlZ2FjeVN1cHBvcnRlZEphdmFTY3Jp
cHRMYW5ndWFnZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIFNjcmlwdFR5cGU6OkNsYXNzaWM7Ci0j
aWYgRU5BQkxFKEVTNl9NT0RVTEVTKQorLy8gI2lmIEVOQUJMRShFUzZfTU9EVUxFUykKICAgICAv
LyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNh
dHRyLXNjcmlwdC10eXBlCiAgICAgLy8gU2V0dGluZyB0aGUgYXR0cmlidXRlIHRvIGFuIEFTQ0lJ
IGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yIHRoZSBzdHJpbmcgIm1vZHVsZSIgbWVhbnMgdGhh
dCB0aGUgc2NyaXB0IGlzIGEgbW9kdWxlIHNjcmlwdC4KICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UodHlwZSwgIm1vZHVsZSIpKQogICAgICAgICByZXR1cm4gU2NyaXB0VHlw
ZTo6TW9kdWxlOwotI2VuZGlmCisvLyAjZW5kaWYKICAgICByZXR1cm4gTnVsbG9wdDsKIH0KIApA
QCAtMTk3LDcgKzE5OCwxMCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29u
c3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAgIGlmICghbV9l
bGVtZW50LmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFk
ZXRlcm1pbmVTY3JpcHRUeXBlKHN1cHBvcnRMZWdhY3lUeXBlcykpCisgICAgU2NyaXB0VHlwZSBz
Y3JpcHRUeXBlID0gU2NyaXB0VHlwZTo6Q2xhc3NpYzsKKyAgICBpZiAoT3B0aW9uYWw8U2NyaXB0
VHlwZT4gcmVzdWx0ID0gZGV0ZXJtaW5lU2NyaXB0VHlwZShzdXBwb3J0TGVnYWN5VHlwZXMpKQor
ICAgICAgICBzY3JpcHRUeXBlID0gcmVzdWx0LnZhbHVlKCk7CisgICAgZWxzZQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBpZiAod2FzUGFyc2VySW5zZXJ0ZWQpIHsKQEAgLTIxOSwzNCAr
MjIzLDUxIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9z
aXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgaWYgKCFkb2N1bWVudC5mcmFt
ZSgpLT5zY3JpcHQoKS5jYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghaXNTY3JpcHRGb3JFdmVudFN1cHBvcnRl
ZCgpKQorICAgIGlmIChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMgJiYgIWlzU2Ny
aXB0Rm9yRXZlbnRTdXBwb3J0ZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYg
KCFjaGFyc2V0QXR0cmlidXRlVmFsdWUoKS5pc0VtcHR5KCkpCisgICAgaWYgKCFjaGFyc2V0QXR0
cmlidXRlVmFsdWUoKS5pc0VtcHR5KCkgJiYgc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFz
c2ljKQogICAgICAgICBtX2NoYXJhY3RlckVuY29kaW5nID0gY2hhcnNldEF0dHJpYnV0ZVZhbHVl
KCk7CiAgICAgZWxzZQogICAgICAgICBtX2NoYXJhY3RlckVuY29kaW5nID0gZG9jdW1lbnQuY2hh
cnNldCgpOwogCi0gICAgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKQotICAgICAgICBpZiAoIXJl
cXVlc3RTY3JpcHQoc291cmNlQXR0cmlidXRlVmFsdWUoKSkpCisgICAgaWYgKHNjcmlwdFR5cGUg
PT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CisgICAgICAgIGlmICghbG9hZE1vZHVsZShzY3JpcHRT
dGFydFBvc2l0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBp
ZiAoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGlmIChoYXNT
b3VyY2VBdHRyaWJ1dGUoKSkgeworICAgICAgICAgICAgaWYgKCFyZXF1ZXN0U2NyaXB0KHNjcmlw
dFR5cGUsIHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KIAotICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSAm
JiBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNBdHRy
aWJ1dGVWYWx1ZSgpKSB7CisgICAgaWYgKChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNz
aWMgJiYgaGFzU291cmNlQXR0cmlidXRlKCkgJiYgZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpICYmIG1f
cGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSkgfHwgKHNjcmlwdFR5cGUg
PT0gU2NyaXB0VHlwZTo6TW9kdWxlICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5jQXR0cmli
dXRlVmFsdWUoKSkpIHsKICAgICAgICAgbV93aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVk
UGFyc2luZyA9IHRydWU7CiAgICAgICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwot
ICAgIH0gZWxzZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAm
JiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpKQorICAgIH0gZWxzZSBpZiAoc2NyaXB0VHlwZSA9PSBT
Y3JpcHRUeXBlOjpDbGFzc2ljICYmIGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5z
ZXJ0ZWQgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSkgeworICAgICAgICBBU1NFUlQoc2NyaXB0
VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKTsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVj
dXRlZCA9IHRydWU7Ci0gICAgZWxzZSBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFy
c2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKSB7CisgICAg
fSBlbHNlIGlmICgoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljICYmIGhhc1NvdXJj
ZUF0dHJpYnV0ZSgpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykg
fHwgKHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlICYmICFhc3luY0F0dHJpYnV0ZVZh
bHVlKCkgJiYgIW1fZm9yY2VBc3luYykpIHsKKyAgICAgICAgbV93aWxsRXhlY3V0ZUluT3JkZXIg
PSB0cnVlOworICAgICAgICAvLyBGSVhNRQorICAgICAgICBpZiAoc2NyaXB0VHlwZSA9PSBTY3Jp
cHRUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIoKS0+
cXVldWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5l
cjo6SU5fT1JERVJfRVhFQ1VUSU9OKTsKKyAgICAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRD
bGllbnQodGhpcyk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0
ZSgpIHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CisgICAgICAgIC8vIEZJ
WE1FCisgICAgICAgIGlmIChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMpIHsKKyAg
ICAgICAgICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlw
dEZvckV4ZWN1dGlvbih0aGlzLCBtX2NhY2hlZFNjcmlwdCwgU2NyaXB0UnVubmVyOjpBU1lOQ19F
WEVDVVRJT04pOworICAgICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsK
KyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFy
c2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKSB7CisgICAg
ICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMpOwogICAgICAgICBt
X3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKICAgICAgICAgbV9yZWFkeVRvQmVQYXJzZXJF
eGVjdXRlZCA9IHRydWU7Ci0gICAgfSBlbHNlIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiAh
YXN5bmNBdHRyaWJ1dGVWYWx1ZSgpICYmICFtX2ZvcmNlQXN5bmMpIHsKLSAgICAgICAgbV93aWxs
RXhlY3V0ZUluT3JkZXIgPSB0cnVlOwotICAgICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIoKS0+
cXVldWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5l
cjo6SU5fT1JERVJfRVhFQ1VUSU9OKTsKLSAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVu
dCh0aGlzKTsKLSAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKSB7Ci0gICAgICAg
IG1fZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1
dGlvbih0aGlzLCBtX2NhY2hlZFNjcmlwdCwgU2NyaXB0UnVubmVyOjpBU1lOQ19FWEVDVVRJT04p
OwotICAgICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOwogICAgIH0gZWxzZSB7
CisgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMpOwogICAg
ICAgICAvLyBSZXNldCBsaW5lIG51bWJlcmluZyBmb3IgbmVzdGVkIHdyaXRlcy4KICAgICAgICAg
VGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gZG9jdW1lbnQuaXNJbkRvY3VtZW50V3JpdGUoKSA/IFRl
eHRQb3NpdGlvbigpIDogc2NyaXB0U3RhcnRQb3NpdGlvbjsKICAgICAgICAgZXhlY3V0ZVNjcmlw
dChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQudXJsKCksIHBvc2l0
aW9uKSk7CkBAIC0yNTUsNyArMjc2LDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2Ny
aXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0
IFN0cmluZyYgc291cmNlVXJsKQorYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KFNj
cmlwdFR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogewogICAgIFJlZjxEb2N1bWVudD4g
b3JpZ2luYWxEb2N1bWVudChtX2VsZW1lbnQuZG9jdW1lbnQoKSk7CiAgICAgaWYgKCFtX2VsZW1l
bnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKQEAgLTI5Niw2ICszMTcsMzAg
QEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNl
VXJsKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U2NyaXB0PiBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KFVSTCBzb3VyY2VVcmwp
Cit7CisgICAgYm9vbCBoYXNLbm93bk5vbmNlID0gbV9lbGVtZW50LmRvY3VtZW50KCkuY29udGVu
dFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0V2l0aE5vbmNlKG1fZWxlbWVudC5hdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6bm9uY2VBdHRyKSwgbV9lbGVtZW50
LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOworICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBv
cHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKTsKKyAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBoYXNL
bm93bk5vbmNlID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNo
ZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjazsKKwor
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChzb3VyY2VV
cmwpLCBvcHRpb25zKTsKKworICAgIG1fZWxlbWVudC5kb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0
eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdC5tdXRhYmxl
UmVzb3VyY2VSZXF1ZXN0KCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0
VHlwZTo6TG9hZCk7CisKKyAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gbV9lbGVtZW50LmF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIp
OworICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CisgICAgICAgIG1fcmVxdWVz
dFVzZXNBY2Nlc3NDb250cm9sID0gdHJ1ZTsKKyAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxs
b3dDcmVkZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2lu
TW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90
QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKKyAgICAgICAgQVNTRVJUKG1fZWxlbWVudC5kb2N1bWVu
dCgpLnNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29u
dHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgKm1fZWxlbWVudC5kb2N1bWVu
dCgpLnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOworICAgIH0KKworICAgIHJl
cXVlc3Quc2V0Q2hhcnNldChzY3JpcHRDaGFyc2V0KCkpOworICAgIHJlcXVlc3Quc2V0SW5pdGlh
dG9yKCZlbGVtZW50KCkpOworCisgICAgcmV0dXJuIG1fZWxlbWVudC5kb2N1bWVudCgpLmNhY2hl
ZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKK30KKwogdm9pZCBTY3Jp
cHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNv
ZGUpCiB7CiAgICAgQVNTRVJUKG1fYWxyZWFkeVN0YXJ0ZWQpOwpAQCAtMzI4LDYgKzM3Myw5IEBA
IHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
JiBzb3VyY2VDb2RlKQogICAgICAgICAvLyBOb3RlOiBUaGlzIGlzIHdoZXJlIHRoZSBzY3JpcHQg
aXMgY29tcGlsZWQgYW5kIGFjdHVhbGx5IGV4ZWN1dGVkLgogICAgICAgICBmcmFtZS0+c2NyaXB0
KCkuZXZhbHVhdGUoc291cmNlQ29kZSk7CiAgICAgfQorICAgIC8vIEZJWE1FOiBUaGUgbW9kdWxl
IGxvYWRlciBzaG91bGQgaGF2ZSB0aGUgbWVjaGFuaXNtIHRvIHN0b3AgbG9hZGluZy4KKyAgICAv
LyBUaGUgY3VycmVudCBsb2FkZXIgc3BlYyBkb2VzIG5vdCBoYXZlIHRoaXMuIE9uY2UgaXQgaXMg
c3BlY2lmaWVkCisgICAgLy8gd2Ugd2lsbCBpbnRyb2R1Y2UgdGhpcyBmZWF0dXJlLgogfQogCiB2
b2lkIFNjcmlwdEVsZW1lbnQ6OnN0b3BMb2FkUmVxdWVzdCgpCkBAIC0zNTIsNiArNDAwLDY0IEBA
IHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkK
ICAgICBjYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKIH0KIAorYm9vbCBTY3JpcHRF
bGVtZW50Ojpsb2FkTW9kdWxlKGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlv
bikKK3sKKyAgICAvLyBUaGUgYnJvd3NlciBtb2R1bGUgbG9hZGVyIGxvYWRzIHRoZSBtb2R1bGUg
c291cmNlcy4KKyAgICAvLyBTaW5jZSB0aGUgbW9kdWxlIGludm9sdmVzIGxvYWRpbmcgb2YgdGhl
IGRlcGVuZGVudCBtb2R1bGVzIGFuZCB0aGUgZGVwZW5kZW50IG1vZHVsZXMgZG9lcyBub3QgaGF2
ZSBjb3JyZXNwb25kaW5nIHNjcmlwdCBlbGVtZW50cywKKyAgICAvLyB0aGUgZnVuY3Rpb25hbGl0
eSBvZiBsb2FkaW5nIG1vZHVsZXMgaXMgc2VwYXJhdGVkIGZyb20gdGhlIHNjcmlwdCBlbGVtZW50
LgorICAgIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkgeworICAgICAgICBTdHJpbmcgc291cmNl
VXJsID0gc291cmNlQXR0cmlidXRlVmFsdWUoKTsKKyAgICAgICAgUmVmPERvY3VtZW50PiBvcmln
aW5hbERvY3VtZW50KG1fZWxlbWVudC5kb2N1bWVudCgpKTsKKyAgICAgICAgaWYgKCFtX2VsZW1l
bnQuZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICAvLyBTY3JpcHQgZWxlbWVudCBtYXkgYmUgZGV0YWNoZWQgYW5k
IGF0dGFjaGVkIHRvIGEgZGlmZmVyZW50IGRvY3VtZW50IHdoaWxlIGV4ZWN1dGluZyB0aGUgZXZl
bnQgbGlzdGVuZXIuCisgICAgICAgIGlmICghbV9lbGVtZW50LmluRG9jdW1lbnQoKSB8fCAmbV9l
bGVtZW50LmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudC5wdHIoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1M
U3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaEVycm9y
RXZlbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAg
IC8vIEZJWE1FOiBTaG91bGQgc3VwcG9ydCBjcm9zcy1vcmlnaW4gbW9kZSBpbiB0aGUgbW9kdWxl
IHRhZy4KKyAgICAgICAgLy8gSG93ZXZlciB3ZSBkb24ndCBoYXZlIHRoZSBwb2xpY3kgdG8gYXBw
bHkgdGhpcyBtb2RlIHRvIHRoZSByZXNvdXJjZXMgb2YgdGhlIGRlcGVuZGVudCBtb2R1bGVzLgor
ICAgICAgICAvLyBQcm92aWRlZCBtdWx0aXBsZSBtb2R1bGUgdGFncywKKyAgICAgICAgLy8KKyAg
ICAgICAgLy8gICBBOiA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIuLi4iIGNyb3Nzb3JpZ2lu
PSJhbm9ueW1vdXMiPjwvc2NyaXB0PgorICAgICAgICAvLyAgIEI6IDxzY3JpcHQgdHlwZT0ibW9k
dWxlIiBzcmM9Ii4uLiI+PC9zY3JpcHQ+CisgICAgICAgIC8vCisgICAgICAgIC8vICdBJyBoYXMg
dGhlICJjcm9zc29yaWdpbiIgYXR0cmlidXRlLiBCdXQgJ0InIGRvZXMgbm90IGhhdmUgaXQuCisg
ICAgICAgIC8vIEhvd2V2ZXIsIEVTNiBtb2R1bGVzIGFsbG93ICdBJyBhbmQgJ0InIHRvIGxvYWQg
dGhlIHNhbWUgbW9kdWxlIGFuZCBpdCB3aWxsIGJlIGNhY2hlZCBpbiB0aGUKKyAgICAgICAgLy8g
bW9kdWxlIGxvYWRlci4gSW4gdGhhdCBjYXNlLCBpdCBpcyBjb250cm92ZXJzaWFsIHRoYXQgd2hp
Y2ggImNyb3Nzb3JpZ2luIiBhdHRyaWJ1dGUgd2lsbCBiZQorICAgICAgICAvLyBhcHBsaWVkIHRv
IHRoZSBtb2R1bGUgbG9hZGVkIGJ5IHRoZSBib3RoLiBPbmNlIHRoZSBzcGVjIG9mIHRoZSBtb2R1
bGUgbG9hZGVyIGlzIGZpeGVkLCB3ZQorICAgICAgICAvLyBzaG91bGQgZm9sbG93IGl0LgorCisg
ICAgICAgIG1faXNFeHRlcm5hbFNjcmlwdCA9IHRydWU7CisgICAgICAgIG1fbW9kdWxlR3JhcGgg
PSBzdGQ6Om1ha2VfdW5pcXVlPEpTTW9kdWxlR3JhcGg+KG1fZWxlbWVudCk7CisgICAgICAgIG1f
ZWxlbWVudC5kb2N1bWVudCgpLnNjcmlwdFJ1bm5lcigpLT5xdWV1ZUpTTW9kdWxlR3JhcGhGb3JF
eGVjdXRpb24odGhpcywgKm1fbW9kdWxlR3JhcGgpOworICAgICAgICBtX21vZHVsZUdyYXBoLT5s
b2FkKHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICAvLyBSZXNldCBsaW5lIG51bWJlcmluZyBmb3IgbmVzdGVkIHdyaXRlcy4KKyAgICBU
ZXh0UG9zaXRpb24gcG9zaXRpb24gPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5pc0luRG9jdW1lbnRX
cml0ZSgpID8gVGV4dFBvc2l0aW9uKCkgOiBzY3JpcHRTdGFydFBvc2l0aW9uOworICAgIFNjcmlw
dFNvdXJjZUNvZGUgc291cmNlQ29kZShzY3JpcHRDb250ZW50KCksIG1fZWxlbWVudC5kb2N1bWVu
dCgpLnVybCgpLCBwb3NpdGlvbik7CisKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2VsZW1lbnQu
ZG9jdW1lbnQoKS5jb250ZW50U2VjdXJpdHlQb2xpY3koKSk7CisgICAgICAgIGNvbnN0IENvbnRl
bnRTZWN1cml0eVBvbGljeSYgY29udGVudFNlY3VyaXR5UG9saWN5ID0gKm1fZWxlbWVudC5kb2N1
bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpOworICAgICAgICBib29sIGhhc0tub3duTm9u
Y2UgPSBjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dTY3JpcHRXaXRoTm9uY2UobV9lbGVtZW50
LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpub25jZUF0dHIpLCBt
X2VsZW1lbnQuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSk7CisgICAgICAgIGlmICghY29udGVu
dFNlY3VyaXR5UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgpLnVy
bCgpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29kZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhv
dXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgbV9tb2R1bGVHcmFwaCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNNb2R1bGVHcmFw
aD4obV9lbGVtZW50KTsKKyAgICBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zY3JpcHRSdW5uZXIoKS0+
cXVldWVKU01vZHVsZUdyYXBoRm9yRXhlY3V0aW9uKHRoaXMsICptX21vZHVsZUdyYXBoKTsKKyAg
ICBtX21vZHVsZUdyYXBoLT5sb2FkKHNvdXJjZUNvZGUpOworICAgIHJldHVybiB0cnVlOworfQor
CiB2b2lkIFNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSkKIHsKICAgICBBU1NFUlQoIW1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmgKaW5kZXggMWFhNGYyZTgzYjMxMTE3MTI0NmEyMzBlNjU4ODA2MmY5
Y2YzZDA4NC4uOTJkMTUzN2RmNzJiZWE1OGM0ZjMwNGMyYzQ2Y2UyMGU0MjBiMDg2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
VGV4dFBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTMy
LDYgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xh
c3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIEVsZW1lbnQ7CitjbGFzcyBKU01vZHVsZUdyYXBoOwog
Y2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiAKQEAgLTU5LDYg
KzYxLDE0IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQgOiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xp
ZW50IHsKICAgICBib29sIHJlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKCkgY29uc3QgeyByZXR1cm4g
bV9yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZDsgfQogICAgIGJvb2wgd2lsbEV4ZWN1dGVXaGVuRG9j
dW1lbnRGaW5pc2hlZFBhcnNpbmcoKSBjb25zdCB7IHJldHVybiBtX3dpbGxFeGVjdXRlV2hlbkRv
Y3VtZW50RmluaXNoZWRQYXJzaW5nOyB9CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U2NyaXB0PiBjYWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdDsgfQorICAgIEpT
TW9kdWxlR3JhcGgqIG1vZHVsZUdyYXBoKCkgeyByZXR1cm4gbV9tb2R1bGVHcmFwaC5nZXQoKTsg
fQorCisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiByZXF1ZXN0TW9kdWxl
U2NyaXB0KFVSTCk7CisKKyAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9zY3JpcHRpbmcuaHRtbCNjb25jZXB0LXNjcmlwdC10eXBlCisgICAgZW51bSBjbGFzcyBT
Y3JpcHRUeXBlIHsgQ2xhc3NpYywgTW9kdWxlIH07CisKKyAgICBTY3JpcHRUeXBlIHNjcmlwdFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX2lzQ2xhc3NpY1NjcmlwdCA/IFNjcmlwdFR5cGU6OkNsYXNz
aWMgOiBTY3JpcHRUeXBlOjpNb2R1bGU7IH0KIAogcHJvdGVjdGVkOgogICAgIFNjcmlwdEVsZW1l
bnQoRWxlbWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyLCBib29sIGlzRXZhbHVhdGVkKTsKQEAg
LTc2LDEzICs4NiwxMyBAQCBjbGFzcyBTY3JpcHRFbGVtZW50IDogcHJpdmF0ZSBDYWNoZWRSZXNv
dXJjZUNsaWVudCB7CiAgICAgdm9pZCBoYW5kbGVBc3luY0F0dHJpYnV0ZSgpOwogCiBwcml2YXRl
OgotICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGlu
Zy5odG1sI2NvbmNlcHQtc2NyaXB0LXR5cGUKLSAgICBlbnVtIGNsYXNzIFNjcmlwdFR5cGUgeyBD
bGFzc2ljLCBNb2R1bGUgfTsKICAgICBPcHRpb25hbDxTY3JpcHRUeXBlPiBkZXRlcm1pbmVTY3Jp
cHRUeXBlKExlZ2FjeVR5cGVTdXBwb3J0KSBjb25zdDsKICAgICBib29sIGlnbm9yZXNMb2FkUmVx
dWVzdCgpIGNvbnN0OwogICAgIGJvb2wgaXNTY3JpcHRGb3JFdmVudFN1cHBvcnRlZCgpIGNvbnN0
OwogCi0gICAgYm9vbCByZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKTsKKyAg
ICBib29sIGxvYWRNb2R1bGUoY29uc3QgVGV4dFBvc2l0aW9uJik7CisKKyAgICBib29sIHJlcXVl
c3RTY3JpcHQoU2NyaXB0VHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOwogICAgIHZvaWQg
c3RvcExvYWRSZXF1ZXN0KCk7CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291
cmNlKikgb3ZlcnJpZGU7CkBAIC0xMTAsOCArMTIwLDEwIEBAIGNsYXNzIFNjcmlwdEVsZW1lbnQg
OiBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBib29sIG1fZm9yY2VBc3luYyA6
IDE7CiAgICAgYm9vbCBtX3dpbGxFeGVjdXRlSW5PcmRlciA6IDE7CiAgICAgYm9vbCBtX3JlcXVl
c3RVc2VzQWNjZXNzQ29udHJvbCA6IDE7CisgICAgYm9vbCBtX2lzQ2xhc3NpY1NjcmlwdCA6IDE7
CiAgICAgU3RyaW5nIG1fY2hhcmFjdGVyRW5jb2Rpbmc7CiAgICAgU3RyaW5nIG1fZmFsbGJhY2tD
aGFyYWN0ZXJFbmNvZGluZzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNNb2R1bGVHcmFwaD4gbV9t
b2R1bGVHcmFwaDsKIH07CiAKIC8vIEZJWE1FOiByZXBsYWNlIHdpdGggZG93bmNhc3Q8U2NyaXB0
RWxlbWVudD4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCmluZGV4IGQyNjA1YmRkYjdi
NWI2MmI5MTQ1MzhlZjYyNjJhY2I3YjNkNTAwMmUuLjJiZWI0MGVmZTY1MzIyZGFjN2JkNmJkMzU4
YWY4ZmEzOTdhOGJhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJFbGVtZW50
LmgiCisjaW5jbHVkZSAiSlNNb2R1bGVHcmFwaC5oIgogI2luY2x1ZGUgIlBlbmRpbmdTY3JpcHQu
aCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKQEAgLTQ3LDYgKzQ4LDEwIEBAIFNjcmlw
dFJ1bm5lcjo6flNjcmlwdFJ1bm5lcigpCiAgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9h
ZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BlbmRp
bmdBc3luY1NjcmlwdHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50
TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9tb2R1
bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9j
dW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5zaXplKCk7ICsraSkKKyAg
ICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiB9CiAKIHZv
aWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBz
Y3JpcHRFbGVtZW50LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNj
cmlwdCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQpAQCAtNzAsNiArNzUsMTggQEAgdm9p
ZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNj
cmlwdEVsZW1lbnQsIENhY2hlZFIKICAgICB9CiB9CiAKK3ZvaWQgU2NyaXB0UnVubmVyOjpxdWV1
ZUpTTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwg
SlNNb2R1bGVHcmFwaCYpCit7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOworCisgICAgRWxl
bWVudCYgZWxlbWVudCA9IHNjcmlwdEVsZW1lbnQtPmVsZW1lbnQoKTsKKyAgICBBU1NFUlQoZWxl
bWVudC5pbkRvY3VtZW50KCkpOworCisgICAgbV9kb2N1bWVudC5pbmNyZW1lbnRMb2FkRXZlbnRE
ZWxheUNvdW50KCk7CisKKyAgICBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5hZGQoJmVs
ZW1lbnQpOworfQorCiB2b2lkIFNjcmlwdFJ1bm5lcjo6c3VzcGVuZCgpCiB7CiAgICAgbV90aW1l
ci5zdG9wKCk7CkBAIC05Niw2ICsxMTMsMjYgQEAgdm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeVNj
cmlwdFJlYWR5KFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIEV4ZWN1dGlvblR5cGUKICAg
ICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAordm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlm
eUpTTW9kdWxlR3JhcGhSZWFkeShTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50KQoreworICAg
IEFTU0VSVF9VTlVTRUQoc2NyaXB0RWxlbWVudCwgbV9wZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVu
dHMuY29udGFpbnMoJnNjcmlwdEVsZW1lbnQtPmVsZW1lbnQoKSkpOworCisgICAgLy8gTGlzdEhh
c2hTZXQgY29ycmVjdGx5IHByZXNlcnZlcyB0aGUgaW5zZXJ0aW9uIG9yZGVyLgorICAgIC8vIEFu
ZCBpdCBhbGxvdyB1cyB0byByZW1vdmUgZWxlbWVudCBkdXJpbmcgaXRlcmF0aW9uLgorICAgIGF1
dG8gaXRlcmF0b3IgPSBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5iZWdpbigpOworICAg
IHdoaWxlIChpdGVyYXRvciAhPSBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5lbmQoKSkg
eworICAgICAgICBKU01vZHVsZUdyYXBoKiBtb2R1bGVHcmFwaCA9IHRvU2NyaXB0RWxlbWVudElm
UG9zc2libGUoaXRlcmF0b3ItPmdldCgpKS0+bW9kdWxlR3JhcGgoKTsKKyAgICAgICAgaWYgKCFt
b2R1bGVHcmFwaC0+ZXJyb3JPY2N1cnJlZCgpICYmICFtb2R1bGVHcmFwaC0+aXNMb2FkZWQoKSkK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBhdXRvIHByZXZpb3VzID0gaXRlcmF0b3I7Cisg
ICAgICAgICsraXRlcmF0b3I7CisgICAgICAgIG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1
dGVTb29uLmFwcGVuZCgqcHJldmlvdXMpOworICAgICAgICBtX3BlbmRpbmdNb2R1bGVTY3JpcHRF
bGVtZW50cy5yZW1vdmUocHJldmlvdXMpOworICAgIH0KKyAgICBpZiAoIW1fbW9kdWxlU2NyaXB0
RWxlbWVudHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSkKKyAgICAgICAgbV90aW1lci5zdGFydE9u
ZVNob3QoMCk7Cit9CisKIHZvaWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKCkKIHsKICAgICBS
ZWY8RG9jdW1lbnQ+IHByb3RlY3QobV9kb2N1bWVudCk7CkBAIC0xMTksNiArMTU2LDIwIEBAIHZv
aWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKCkKICAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZShlbGVtZW50LmdldCgpKS0+ZXhlY3V0ZShjYWNoZWRTY3JpcHQpOwogICAgICAgICBt
X2RvY3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICB9CisKKyAgICBW
ZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBtb2R1bGVTY3JpcHRFbGVtZW50czsKKyAgICBtb2R1bGVT
Y3JpcHRFbGVtZW50cy5zd2FwKG1fbW9kdWxlU2NyaXB0RWxlbWVudHNUb0V4ZWN1dGVTb29uKTsK
KworICAgIGZvciAoUmVmUHRyPEVsZW1lbnQ+JiBwZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudCA6
IG1vZHVsZVNjcmlwdEVsZW1lbnRzKSB7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50
OworICAgICAgICBwZW5kaW5nTW9kdWxlU2NyaXB0RWxlbWVudC5zd2FwKGVsZW1lbnQpOworICAg
ICAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgICAgIC8vIFBhcGVyIG92ZXIgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA1MAorICAgICAgICBpZiAoIWVsZW1lbnQp
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJs
ZShlbGVtZW50LmdldCgpKS0+bW9kdWxlR3JhcGgoKS0+ZXZhbHVhdGUoKTsKKyAgICAgICAgbV9k
b2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgfQogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0UnVubmVyLmgKaW5kZXggOGNkMzMyYTU3MzRjMWNiOTJmMmE1ZmY1ZmM0
Y2NhMTU4ZmUzYmM0MS4uODJjZjVlN2IzZjQ2OTc4MTJhNmY4YmViODEzOWIxNmU1MGY2MjBlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtMzYsNiArMzcs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERv
Y3VtZW50OworY2xhc3MgRWxlbWVudDsKK2NsYXNzIEpTTW9kdWxlR3JhcGg7CiBjbGFzcyBQZW5k
aW5nU2NyaXB0OwogY2xhc3MgU2NyaXB0RWxlbWVudDsKIApAQCAtNDcsMTEgKzUwLDE0IEBAIGNs
YXNzIFNjcmlwdFJ1bm5lciB7CiAKICAgICBlbnVtIEV4ZWN1dGlvblR5cGUgeyBBU1lOQ19FWEVD
VVRJT04sIElOX09SREVSX0VYRUNVVElPTiB9OwogICAgIHZvaWQgcXVldWVTY3JpcHRGb3JFeGVj
dXRpb24oU2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4s
IEV4ZWN1dGlvblR5cGUpOwotICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJl
dHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhl
Y3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0eSgp
OyB9CisgICAgdm9pZCBxdWV1ZUpTTW9kdWxlR3JhcGhGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVu
dCosIEpTTW9kdWxlR3JhcGgmKTsKKyAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3Qg
eyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNU
b0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmlzRW1w
dHkoKSB8fCAhbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8
ICFtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50cy5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHN1
c3BlbmQoKTsKICAgICB2b2lkIHJlc3VtZSgpOwogICAgIHZvaWQgbm90aWZ5U2NyaXB0UmVhZHko
U2NyaXB0RWxlbWVudCosIEV4ZWN1dGlvblR5cGUpOwogCisgICAgdm9pZCBub3RpZnlKU01vZHVs
ZUdyYXBoUmVhZHkoU2NyaXB0RWxlbWVudCopOworCiBwcml2YXRlOgogICAgIHZvaWQgdGltZXJG
aXJlZCgpOwogCkBAIC01OSw2ICs2NSw4IEBAIGNsYXNzIFNjcmlwdFJ1bm5lciB7CiAgICAgVmVj
dG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXI7CiAgICAgVmVjdG9y
PFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb247IC8vIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3NldC1vZi1zY3JpcHRzLXRoYXQt
d2lsbC1leGVjdXRlLWFzLXNvb24tYXMtcG9zc2libGUKICAgICBIYXNoTWFwPFNjcmlwdEVsZW1l
bnQqLCBQZW5kaW5nU2NyaXB0PiBtX3BlbmRpbmdBc3luY1NjcmlwdHM7CisgICAgVmVjdG9yPFJl
ZlB0cjxFbGVtZW50Pj4gbV9tb2R1bGVTY3JpcHRFbGVtZW50c1RvRXhlY3V0ZVNvb247CisgICAg
TGlzdEhhc2hTZXQ8UmVmUHRyPEVsZW1lbnQ+PiBtX3BlbmRpbmdNb2R1bGVTY3JpcHRFbGVtZW50
czsKICAgICBUaW1lciBtX3RpbWVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggZWExNWRlMDRlNGQxZWU1Y2I5MzFl
NTQ2OGNmMDgxYzFmZjczZTlhMC4uNjhiYjM4MjlkMjA3NDdjOTkzNWQ3NzU3MWRkYzU0OTRlOWI4
Zjg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRT
Y2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNj
YW5uZXIuY3BwCkBAIC0xMDEsNiArMTAxLDcgQEAgY2xhc3MgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6
U3RhcnRUYWdTY2FubmVyIHsKICAgICAgICAgLCBtX2xpbmtJc1N0eWxlU2hlZXQoZmFsc2UpCiAg
ICAgICAgICwgbV9tZXRhSXNWaWV3cG9ydChmYWxzZSkKICAgICAgICAgLCBtX2lucHV0SXNJbWFn
ZShmYWxzZSkKKyAgICAgICAgLCBtX2lucHV0SXNNb2R1bGVTY3JpcHQoZmFsc2UpCiAgICAgICAg
ICwgbV9kZXZpY2VTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3RvcikKICAgICB7CiAgICAgfQpA
QCAtMTYxLDcgKzE2Miw3IEBAIGNsYXNzIFRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nh
bm5lciB7CiAgICAgICAgICAgICBzZXRVcmxUb0xvYWQoYXR0cmlidXRlVmFsdWUpOwogICAgICAg
ICBlbHNlIGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBjcm9zc29yaWdpbkF0dHIpKQogICAgICAg
ICAgICAgbV9jcm9zc09yaWdpbk1vZGUgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFj
ZXMoYXR0cmlidXRlVmFsdWUpOwotICAgICAgICBlbHNlIGlmIChtYXRjaChhdHRyaWJ1dGVOYW1l
LCBjaGFyc2V0QXR0cikpCisgICAgICAgIGVsc2UgaWYgKG1hdGNoKGF0dHJpYnV0ZU5hbWUsIGNo
YXJzZXRBdHRyKSAmJiAhbV9pbnB1dElzTW9kdWxlU2NyaXB0KQogICAgICAgICAgICAgbV9jaGFy
c2V0ID0gYXR0cmlidXRlVmFsdWU7CiAgICAgfQogCkBAIC0yMDMsNyArMjA0LDExIEBAIGNsYXNz
IFRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nhbm5lciB7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUYWdJZDo6U2NyaXB0OgotICAgICAgICAg
ICAgcHJvY2Vzc0ltYWdlQW5kU2NyaXB0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0
ZVZhbHVlKTsKKyAgICAgICAgICAgIGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCB0eXBlQXR0cikg
JiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoYXR0cmlidXRlVmFsdWUsICJtb2R1bGUi
KSkgeworICAgICAgICAgICAgICAgIG1faW5wdXRJc01vZHVsZVNjcmlwdCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgbV9jaGFyc2V0ID0gU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICBwcm9jZXNzSW1hZ2VBbmRTY3JpcHRBdHRyaWJ1dGUoYXR0cmlidXRlTmFt
ZSwgYXR0cmlidXRlVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVGFn
SWQ6Okxpbms6CiAgICAgICAgICAgICBpZiAobWF0Y2goYXR0cmlidXRlTmFtZSwgaHJlZkF0dHIp
KQpAQCAtMzE1LDYgKzMyMCw3IEBAIGNsYXNzIFRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFn
U2Nhbm5lciB7CiAgICAgU3RyaW5nIG1fbWV0YUNvbnRlbnQ7CiAgICAgYm9vbCBtX21ldGFJc1Zp
ZXdwb3J0OwogICAgIGJvb2wgbV9pbnB1dElzSW1hZ2U7CisgICAgYm9vbCBtX2lucHV0SXNNb2R1
bGVTY3JpcHQ7CiAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3RvcjsKIH07CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBj
NmQ4Y2Y5ODRkYzU3YmJkNmRhZDk4YTllZmQzOGMyNzRmM2QyNTI3Li45MTc3ZTJiYmRkMWY1ODdk
MGYxMDM2NTFkYjFlNjMwZWUzMGY0MWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTYtMDgt
MjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VT
Nl0gSW50ZWdyYXRlIEVTNiBNb2R1bGVzIGludG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxl
LXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1v
ZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRv
LW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4
ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlu
bGluZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1vcmRl
ci1taXhlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
aW5jb3JyZWN0LXJlbGF0aXZlLXNwZWNpZmllci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtaW5jb3JyZWN0LXJlbGF0aXZlLXNwZWNpZmllci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1pbmxpbmUtZHluYW1pYy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJl
bnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpz
L2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1k
eW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1v
ZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRy
eS1wb2ludC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUt
bm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRo
LXNyYy1hbmQtaW1wb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtbm90
LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL21vZHVsZS1zcmMtc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9tb2R1bGUtdHlwZS1jYXNlLWluc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS10eXBlLWNhc2UtaW5zZW5zaXRpdmUuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9y
ZWxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUt
ZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3ItdGhyb3cuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91
bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qczogQWRkZWQuCisg
ICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVk
LWNhcHB1Y2Npbm8uanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qczogQWRkZWQuCisgICAgICAgICoganMv
ZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qczog
QWRkZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVs
ZS1pbmxpbmUtZHluYW1pYy5qczogQWRkZWQuCisgICAgICAgIChleHBvcnQuZGVmYXVsdC5Db2Nv
YS5wcm90b3R5cGUudGFzdGUpOgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EpOgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUuanM6IEFkZGVk
LgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAg
ICAgKGV4cG9ydC5kZWZhdWx0LkNvY29hKToKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
c2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC5qczogQWRkZWQuCisgICAg
ICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanM6IEFk
ZGVkLgorICAgICAgICAoQ29jb2EucHJvdG90eXBlLnRhc3RlKToKKyAgICAgICAgKENvY29hKToK
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy5qczogQWRk
ZWQuCisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1jb2Nv
YS5qczogQWRkZWQuCisgICAgICAgIChDb2NvYS5wcm90b3R5cGUudGFzdGUpOgorICAgICAgICAo
Q29jb2EpOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUu
anM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmly
ZS1iZWZvcmVsb2FkLmpzOiBBZGRlZC4KKwogMjAxNi0wOC0yNSAgSmlld2VuIFRhbiAgPGppZXdl
bl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlYmFzZSBpT1Mgc2ltdWxh
dG9yIFdLMSBpbXBvcnRlZC93M2MgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDUyZTIzZWFm
M2E5OTFhYmExNmNhZWVlYWM1YjA1NGNkY2U2Njg2MWUuLmI1NTlmZTIyY2ExODUxOTZhZWU3MTQx
MzExNzYyMTdkNjg2NzA2YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI0NSwzICsxMjQ1LDIx
IEBAIHdlYmtpdC5vcmcvYi8xNTk3NTUgZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTYwMDE3IGpzL3JlZ3Jlc3MtMTM5NTQ4Lmh0
bWwgWyBTbG93IF0KIAogd2Via2l0Lm9yZy9iLzE2MTA4OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZy9yZXNvdXJjZS10aW1pbmcuaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCisKKyMgRVM2IE1vZHVsZXMgYXJlIG5vdCB5ZXQgZW5hYmxlZCBieSBkZWZhdWx0OiBF
TkFCTEUoRVM2X01PRFVMRVMpCisjIGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lk
ZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbCBb
IFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFn
YXRlZC10by1vbmVycm9yLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1leGVjdXRpb24t
b3JkZXItaW5saW5lLmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItbWl4ZWQuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLWlubGluZS1keW5hbWljLmh0
bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwgWyBTa2lwIF0K
KyMganMvZG9tL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmh0bWwgWyBTa2lwIF0KKyMganMv
ZG9tL21vZHVsZS1sb2FkLWV2ZW50Lmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMuaHRtbCBbIFNr
aXAgXQorIyBqcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50
cnktcG9pbnQuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1l
dmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwgWyBTa2lwIF0KKyMganMvZG9tL21vZHVsZS1u
b3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9k
dWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC5odG1sIFsgU2tpcCBdCisjIGpzL2RvbS9tb2R1bGUt
c3JjLWR5bmFtaWMuaHRtbCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLXNyYy1zaW1wbGUuaHRt
bCBbIFNraXAgXQorIyBqcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVy
cm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJy
b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJy
b3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJv
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJkYjI3NWEyZmI4MzQ4OTY0ZmJlOGRlYjgyNTUz
YjRiOWRiOWE1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
ZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdh
dGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qgd2luZG93
Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBkZXBlbmRlbnQgbW9kdWxlIHRocm93IGFu
IGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBl
eGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgdGhlIGRlcGVuZGVudCBtb2R1bGUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1v
ZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUtZGVwZW5kZW50LW1vZHVsZS1zaG91
bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTc3YjVkZDc2NGRi
ZTI0MzQyM2QxYzM4ZTM3NGNjMGZkZGMyNDM3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxl
LXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuaHRtbApAQCAtMCwwICsxLDIyIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB3aW5kb3cu
b25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGRlcGVuZGVudCBtb2R1bGUgdGhyb3cgYW4g
ZXJyb3IuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVk
IHlldC4nKTsKK3dpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitpbXBvcnQgInNjcmlw
dC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNo
b3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMiCit0ZXN0RmFpbGVkKCJleGVjdXRlZCIp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVy
cm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVy
cm9yLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE1ZGY3MDI4ZjM1NDkzNjY5MjkyMmVmZTYxYTJkZmJhNWYxZjA5MzUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQt
YmUtcHJvcGFnYXRlZC10by1vbmVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitU
ZXN0IHdpbmRvdy5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgaW5saW5lZCBtb2R1bGUg
dGhyb3dzIGFuIGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgdGhlIG1vZHVsZS4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1zaG91bGQtYmUtcHJvcGFnYXRl
ZC10by1vbmVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1l
cnJvci1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ0
NjJmMzdlZDgxNzMwNjFmN2Y5OTUzNmM0MmQyOTk1YzI1MjcyOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLXNob3VsZC1iZS1wcm9w
YWdhdGVkLXRvLW9uZXJyb3IuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJl
IGZpcmVkIHdoZW4gdGhlIGlubGluZWQgbW9kdWxlIHRocm93cyBhbiBlcnJvci4nKTsKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOword2luZG93
Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2RlYnVnKCdFeGVjdXRpbmcgdGhlIG1vZHVsZS4n
KTsKK3Rocm93IG5ldyBFcnJvcigibW9kdWxlIGlzIGV4ZWN1dGVkLiIpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4
ZWN1dGlvbi1vcmRlci1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmZk
ZjMzOTc1N2E0YTM3OTY0ZTg4OWFlYzY5YWZjYzU5OWFiNzhmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2Vl
biBpbmxpbmVkIG1vZHVsZSB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIGNvdW50KysgaXMgMAorUEFTUyBjb3Vu
dCsrIGlzIDEKK1BBU1MgY291bnQrKyBpcyAyCitQQVNTIGNvdW50KysgaXMgMworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGluZS5odG1sIGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItaW5saW5lLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTUyNWU3NjkwOGNmYjZmZWEwMTA3ZjRkYWFkZDFkMjkzMWJmM2NlNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLWlubGlu
ZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRpb24gb3JkZXIgYmV0d2VlbiBpbmxpbmVk
IG1vZHVsZSB0YWdzLicpOword2luZG93LmNvdW50ID0gMDsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4
ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVi
dWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworc2hvdWxkQmUoImNvdW50KysiLCAi
MCIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CitzaG91bGRCZSgiY291bnQr
KyIsICIxIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJj
b3VudCsrIiwgIjIiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgorc2hvdWxk
QmUoImNvdW50KysiLCAiMyIpOworZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0aW9u
LW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhl
Y3V0aW9uLW9yZGVyLW1peGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzdmNTI0ZjUzMTkw
NWQ4YTUzZjQ0YTMzYWI2ZmZiNDAwMTIxMDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTggQEAKK1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIG1peGVkIHRh
Z3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitXZSBrZWVwIHRoZSBleGVjdXRp
b24gb3JkZXIgYmV0d2VlbiBtb2R1bGVzLgorTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQ
QVNTIGNvdW50KysgaXMgMAorUEFTUyBjb3VudCsrIGlzIDEKK1BBU1MgY291bnQrKyBpcyAyCitQ
QVNTIGNvdW50KysgaXMgMworUEFTUyBjb3VudCsrIGlzIDQKK1BBU1MgY291bnQrKyBpcyA1CitQ
QVNTIGNvdW50KysgaXMgNgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLW1peGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWV4ZWN1dGlv
bi1vcmRlci1taXhlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxOTFkMzAzZWRkNzU3NzM4MTI4ZGQ5ZDE1
YmI0MGM3ZTc2YzJjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IG1vZHVsZSBleGVjdXRp
b24gb3JkZXIgYmV0d2VlbiBtaXhlZCB0YWdzLicpOworZGVidWcoJ1dlIGtlZXAgdGhlIGV4ZWN1
dGlvbiBvcmRlciBiZXR3ZWVuIG1vZHVsZXMuJyk7Cit3aW5kb3cuY291bnQgPSAwOworCisvLyBN
b2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic2NyaXB0LXRlc3RzL21vZHVsZS1leGVj
dXRpb24tb3JkZXItbWl4ZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgor
c2hvdWxkQmUoImNvdW50KysiLCAiNCIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVs
ZSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK3Nob3VsZEJlKCJjb3VudCsrIiwgIjYi
KTsKK2ZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWluY29ycmVjdC1yZWxhdGl2ZS1zcGVjaWZp
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmNvcnJlY3QtcmVs
YXRpdmUtc3BlY2lmaWVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjcxM2UwNDM5NzUxYWFk
MTYyMzRlNzk3YWRmMDRhNmJjMjM0N2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS1pbmNvcnJlY3QtcmVsYXRpdmUtc3BlY2lmaWVyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE1IEBACitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogTW9kdWxlIHNwZWNp
ZmllciBkb2VzIG5vdCBzdGFydCB3aXRoICIvIiwgIi4vIiwgb3IgIi4uLyIKK0NPTlNPTEUgTUVT
U0FHRTogVHlwZUVycm9yOiBNb2R1bGUgc3BlY2lmaWVyIGRvZXMgbm90IHN0YXJ0IHdpdGggIi8i
LCAiLi8iLCBvciAiLi4vIgorVGVzdCB3aW5kb3cub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4g
dGhlIGluY29ycmVjdCByZWxhdGl2ZSBzcGVjaWZpZXIgaXMgc3BlY2lmaWVkLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCiswCisx
CisyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmNvcnJlY3QtcmVsYXRpdmUt
c3BlY2lmaWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWluY29ycmVjdC1yZWxh
dGl2ZS1zcGVjaWZpZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTk4NzVlYjA0ZjNhODBlYzNhYzgzNDBh
NjAzNTFkNjRjODMxNjhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1pbmNvcnJlY3QtcmVsYXRpdmUtc3BlY2lmaWVyLmh0bWwKQEAgLTAsMCArMSwzNSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Qgd2luZG93
Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBpbmNvcnJlY3QgcmVsYXRpdmUgc3BlY2lm
aWVyIGlzIHNwZWNpZmllZC4nKTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJv
bm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBu
b3QgZXhlY3V0ZWQgeWV0LicpOwordmFyIGNvdW50ID0gMDsKK3dpbmRvdy5vbmVycm9yID0gZnVu
Y3Rpb24gKCkgeworICAgIHZhciBjdXJyZW50ID0gY291bnQrKzsKKyAgICBkZWJ1ZyhgJHtjdXJy
ZW50fWApOworICAgIGlmIChjb3VudCA9PT0gMykKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cit9
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1wb3J0IEluY29ycmVjdCBm
cm9tICJpbmNvcnJlY3QiCis8L3NjcmlwdD4KKworPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgoraW1w
b3J0IEluY29ycmVjdCBmcm9tICIkaGVsbG8iCis8L3NjcmlwdD4KKworPHNjcmlwdCB0eXBlPSJt
b2R1bGUiPgoraW1wb3J0IEluY29ycmVjdCBmcm9tICIuLi4vdGVzdCIKKzwvc2NyaXB0PgorCis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlu
bGluZS1keW5hbWljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtaW5s
aW5lLWR5bmFtaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjOTM5YWFmMGE1MDE1ZjQ3OTM4
NmNkMzE5NWFhNTlkZDE2OTA5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWlubGluZS1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0IGlubGluZWQgbW9kdWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW9k
dWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGlu
IHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVk
IgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAib2JqZWN0IgorUEFTUyBleHBvcnRlZENv
Y29hLnRhc3RlKCkgaXMgImF3ZXNvbWUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1pbmxpbmUtZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUt
ZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4YzBlMjU5YWIyOTFlZmZjNGJlZTc4YWU2NWMzNDE3
YzExZDA1ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlu
bGluZS1keW5hbWljLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgaW5saW5lZCBtb2R1bGUuJyk7CisKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LicpOworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSBgCisg
ICAgICAgIGltcG9ydCBDb2NvYSBmcm9tICIuL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLWR5
bmFtaWMuanMiOworICAgICAgICB2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworICAgICAgICBk
ZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0aGUgbW9kdWxlIGVudmlyb25t
ZW50LiIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1
bmRlZmluZWQiKTsKKworICAgICAgICB3aW5kb3cuZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVj
dCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9ydGVkQ29jb2EudGFzdGUo
KSIsICJhd2Vzb21lIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIGA7CisgICAgZWxl
bWVudC50eXBlID0gIm1vZHVsZSI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKK30gKCkpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YzkzOWFhZjBhNTAxNWY0NzkzODZjZDMxOTVhYTU5ZGQxNjkwOTc1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IGlubGluZWQgbW9kdWxlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitNb2R1bGUg
ZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuCitQQVNTIHR5
cGVvZiBjb2NvYSBpcyAidW5kZWZpbmVkIgorUEFTUyB0eXBlb2YgZXhwb3J0ZWRDb2NvYSBpcyAi
b2JqZWN0IgorUEFTUyBleHBvcnRlZENvY29hLnRhc3RlKCkgaXMgImF3ZXNvbWUiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLWlubGluZS1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGJjZjA2MGQx
YmQ2OTQ1YjA4OTE2ZWJhMTUyOWE1NThmZTZiMmQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1pbmxpbmUtc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwzMCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgaW5saW5l
ZCBtb2R1bGUuJyk7CisKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5
Lgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVi
dWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9Im1vZHVsZSI+CitpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlu
bGluZS1zaW1wbGUuanMiOwordmFyIGNvY29hID0gbmV3IENvY29hKCk7CisKK2RlYnVnKCJNb2R1
bGUgZXhlY3V0aW9uIGlzIGNvbmZpbmVkIGluIHRoZSBtb2R1bGUgZW52aXJvbm1lbnQuIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb2NvYSIsICJ1bmRlZmluZWQiKTsKKword2lu
ZG93LmV4cG9ydGVkQ29jb2EgPSBjb2NvYTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9m
IGV4cG9ydGVkQ29jb2EiLCAib2JqZWN0Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cG9y
dGVkQ29jb2EudGFzdGUoKSIsICJhd2Vzb21lIik7CitmaW5pc2hKU1Rlc3QoKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9h
ZC1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg2MjY2ODAyZGE1N2M3NThjZTNlNGEy
ZjMxZDc4OTBkMGU1YjdkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbG9hZC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBtb2R1
bGUgZXhlY3V0aW9uIG9yZGVyIGJldHdlZW4gdGFncy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorRXhlY3V0aW5nIGFuIGlubGlu
ZWQgbW9kdWxlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13
aXRoLXNyYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZl
bnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YTJmOWI5OTYxNmZmNDcwYWVl
MmE0NWU3MmJiZGE2ZWZhY2Q0MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK1Rlc3Qgc2NyaXB0Lm9ubG9hZCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG1vZHVsZSB0YWcg
d2l0aCBzcmMgbG9hZHMgYW5kIGV4ZWN1dGVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitFeGVjdXRpbmcgYSBtb2R1bGUgd2l0
aCBzcmMgYXR0cmlidXRlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1l
dmVudC13aXRoLXNyYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2ZW50
LXdpdGgtc3JjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk0YTRhMzA3MGE5NmU2ZGFjYmQ4Yjc0NmE3N2Mw
NTdhNDJjNTZhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUt
bG9hZC1ldmVudC13aXRoLXNyYy5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHNjcmlwdC5vbmxvYWQgd2lsbCBi
ZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFnIHdpdGggc3JjIGxvYWRzIGFuZCBleGVjdXRlcy4n
KTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Licp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgb25sb2FkPSJmaW5pc2hKU1Rlc3Qo
KSIgc3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtZXZlbnQtd2l0aC1zcmMuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1sb2FkLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtZXZl
bnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYmI4YzgwOWYyZDQ1Y2QzZjMxNzg5YWZlMmRmN2IzMGRjZTFm
NDVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLWV2
ZW50Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oJ1Rlc3QgbW9kdWxlIGV4ZWN1dGlvbiBvcmRlciBiZXR3ZWVuIHRhZ3Mu
Jyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4n
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIG9ubG9hZD0iZmluaXNoSlNUZXN0
KCkiPgorZGVidWcoJ0V4ZWN1dGluZyBhbiBpbmxpbmVkIG1vZHVsZS4nKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1s
b2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20t
ZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcx
YWI0OWQxNDk3NjI0ZGYyMmUwMzQ3OTdiMzlhYThlYzg2OTRlY2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJl
bnQtZW50cnktcG9pbnQtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorMiBk
aWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUg
ZnJvbSBhIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCB0YWcKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhp
cyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4KK01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LgorRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVy
ZW50LWVudHJ5LXBvaW50LmpzLgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5
LXBvaW50LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1l
LW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjVkNTFlMmI2Y2VhODYxN2JhY2YwYzQwZTMzN2U5MDlhMWQzMWEzOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRp
ZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJzIgZGlmZmVyZW50IG1vZHVs
ZSB0YWcgd2lsbCBhdHRlbXB0IHRvIGxvYWQgdGhlIHNhbWUgbW9kdWxlIGZyb20gYSBkeW5hbWlj
YWxseSBnZW5lcmF0ZWQgdGFnJyk7CitkZWJ1ZygnQ3VycmVudGx5LCB0aGlzIGlzIG5vdCBkZWZp
bmVkIGluIHRoZSBzcGVjLiBUaGlzIGlzc3VlIHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgZnV0dXJl
LicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQu
Jyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KK2ltcG9ydCAic2NyaXB0LXRl
c3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50Lmpz
IgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOwordmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKK2VsZW1lbnQudHlwZSA9ICJtb2R1bGUiOworZWxl
bWVudC5pbm5lclRleHQgPSAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZy
b20tZGlmZmVyZW50LWVudHJ5LXBvaW50LmpzIjsKK2VsZW1lbnQub25lcnJvciA9IGZpbmlzaEpT
VGVzdCgpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1s
b2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVu
dC1lbnRyeS1wb2ludC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmOThmY2NiNmZhZmEwNjQ0
N2UzMDMyZWYwNmQ5ODIwMjdmMjUxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorMiBkaWZmZXJlbnQgbW9kdWxlIHRhZyB3aWxs
IGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK0N1cnJlbnRseSwgdGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgc3BlYy4gVGhp
cyBpc3N1ZSBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZS4KK01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LgorRXhlY3V0aW5nIG1vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlmZmVy
ZW50LWVudHJ5LXBvaW50LmpzLgorRXhlY3V0aW5nIHRoZSBtb2R1bGUuCitFeGVjdXRpbmcgdGhl
IG1vZHVsZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1
bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYwNmQ0ZTBiNjNjZGMwMTI3NDEzM2JlZmQ5Mzg0NDI1NTU1OGIxODcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUt
ZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignMiBkaWZmZXJlbnQgbW9kdWxl
IHRhZyB3aWxsIGF0dGVtcHQgdG8gbG9hZCB0aGUgc2FtZSBtb2R1bGUnKTsKK2RlYnVnKCdDdXJy
ZW50bHksIHRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIHNwZWMuIFRoaXMgaXNzdWUgc2hvdWxk
IGJlIGZpeGVkIGluIHRoZSBmdXR1cmUuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVjdXRlZCBh
c3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVnKCdNb2R1
bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1
bGUiPgoraW1wb3J0ICJzY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1k
aWZmZXJlbnQtZW50cnktcG9pbnQuanMiCitkZWJ1ZygnRXhlY3V0aW5nIHRoZSBtb2R1bGUuJyk7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxlIiBvbmxvYWQ9ImZpbmlzaEpTVGVzdCgp
Ij4KK2ltcG9ydCAic2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlm
ZmVyZW50LWVudHJ5LXBvaW50LmpzIgorZGVidWcoJ0V4ZWN1dGluZyB0aGUgbW9kdWxlLicpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjM4YmEzYzJlNzk5NzdlMmM5Zjc5MzQ4MDk3MzZmZDk4MzdkNzJmOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjog
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgIm5vdC1mb3VuZC5qcyIuIEV4
cGVjdGVkICdmcm9tJyBiZWZvcmUgaW1wb3J0ZWQgbW9kdWxlIG5hbWUuCitUZXN0IHNjcmlwdC5v
bmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgcmVzb3VyY2Ugc3BlY2lmaWVkIGJ5IHRoZSBp
bXBvcnQgZGVjbGFyYXRpb24gaW4gdGhlIGlubGluZWQgbW9kdWxlIGlzIG5vdCBmb3VuZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50
LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzQ4Nzg3NTAxYTEyOTI3NjgxMDkxODc5MDdhZmM0N2RmYjZkMjg5Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVy
cm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNvdXJjZSBz
cGVjaWZpZWQgYnkgdGhlIGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgZGVwZW5kZW50IG1vZHVs
ZSBpcyBub3QgZm91bmQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUg
aXMgbm90IGV4ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5v
dC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGVmMzk4Njg1YWUwNWExMWNlOGExZTBiMjIwOThlOTg1MzFkNjI5
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5k
LWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBzY3JpcHQu
b25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSB0aGUg
aW1wb3J0IGRlY2xhcmF0aW9uIGluIHRoZSBkZXBlbmRlbnQgbW9kdWxlIGlzIG5vdCBmb3VuZC4n
KTsKKy8vIE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworZGVidWcoJ01vZHVsZSBpcyBub3QgZXhlY3V0ZWQgeWV0Licp
OworZnVuY3Rpb24gb25FcnJvcigpCit7CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
KyAgICBmaW5pc2hKU1Rlc3QoKQorfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIg
c3JjPSJzY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1h
bmQtaW1wb3J0LmpzIiBvbmVycm9yPSJvbkVycm9yKCkiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJy
b3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI4MGQxNWRmZTZkMDliZmM2Yjg1ODNhNDhkZWM2ZGNiMWI1YjE0MTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRo
LXNyYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBzY3JpcHQub25lcnJvciB3
aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNwZWNpZmllZCBieSAic3JjIiBpcyBub3Qg
Zm91bmQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNb2R1bGUgaXMgbm90IGV4
ZWN1dGVkIHlldC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3Qt
Zm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmE0N2Y2MTA2OWFm
ZWNiY2IzOGIwYTk1NzU2MjVjZTgyZGY0ODE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMuaHRtbApAQCAt
MCwwICsxLDIxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIHJlc291cmNlIHNw
ZWNpZmllZCBieSAic3JjIiBpcyBub3QgZm91bmQuJyk7CisvLyBNb2R1bGUgd2lsbCBiZSBleGVj
dXRlZCBhc3luY2hyb25vdXNseS4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2RlYnVn
KCdNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKK2Z1bmN0aW9uIG9uRXJyb3IoKQorewor
ICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCkKK30KKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ibm90LWZvdW5kLmpzIiBvbmVycm9y
PSJvbkVycm9yKCkiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQuaHRtbCBiL0xheW91
dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmNiNTk0YzY0NjgzOGU0YzM1ZTM3NTYxZjZkY2UzZDgzNzcwYjc3MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50Lmh0
bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oJ1Rlc3Qgc2NyaXB0Lm9uZXJyb3Igd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSByZXNv
dXJjZSBzcGVjaWZpZWQgYnkgdGhlIGltcG9ydCBkZWNsYXJhdGlvbiBpbiB0aGUgaW5saW5lZCBt
b2R1bGUgaXMgbm90IGZvdW5kLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNo
cm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxlIGlz
IG5vdCBleGVjdXRlZCB5ZXQuJyk7CitmdW5jdGlvbiBvbkVycm9yKCkKK3sKKyAgICBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpCit9Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0ibW9kdWxlIiBvbmVycm9yPSJvbkVycm9yKCkiPgoraW1wb3J0IGZyb20gIm5v
dC1mb3VuZC5qcyI7Cit0ZXN0RmFpbGVkKCdleGVjdXRlZCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1keW5h
bWljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkOGIwMDYyNDkwZWM3MjI5NWNmZjUwNjFhMDgzOWU0
MDAyMGNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNy
Yy1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IG1vZHVsZSB3aXRo
ICJzcmMiIGF0dHJpYnV0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVs
ZSBpcyBub3QgZXhlY3V0ZWQgeWV0LgorTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5lZCBpbiB0
aGUgbW9kdWxlIGVudmlyb25tZW50LgorUEFTUyB0eXBlb2YgY29jb2EgaXMgInVuZGVmaW5lZCIK
K1BBU1MgdHlwZW9mIGV4cG9ydGVkQ29jb2EgaXMgIm9iamVjdCIKK1BBU1MgZXhwb3J0ZWRDb2Nv
YS50YXN0ZSgpIGlzICJuaWNlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3Jj
LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLWR5bmFtaWMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zODRmZjQyNjRmOTgxZmU5NjQ5ZWQzYTcyMWIxY2ZhNGZhNWU5MWNlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS1zcmMtZHluYW1pYy5o
dG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCdUZXN0IG1vZHVsZSB3aXRoICJzcmMiIGF0dHJpYnV0ZS4nKTsKKworLy8gTW9k
dWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZWJ1ZygnTW9kdWxlIGlzIG5vdCBleGVj
dXRlZCB5ZXQuJyk7CisoZnVuY3Rpb24gKCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgZWxlbWVudC50eXBlID0gJ21vZHVsZSc7Cisg
ICAgZWxlbWVudC5zcmMgPSAnLi9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzJzsK
KyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworfSgpKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZS1zcmMtc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3Jj
LXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q4YjAwNjI0OTBlYzcyMjk1Y2ZmNTA2
MWEwODM5ZTQwMDIwY2Q4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGUtc3JjLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBtb2R1
bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitNb2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4KK01vZHVsZSBleGVjdXRpb24gaXMgY29uZmlu
ZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4KK1BBU1MgdHlwZW9mIGNvY29hIGlzICJ1bmRl
ZmluZWQiCitQQVNTIHR5cGVvZiBleHBvcnRlZENvY29hIGlzICJvYmplY3QiCitQQVNTIGV4cG9y
dGVkQ29jb2EudGFzdGUoKSBpcyAibmljZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9k
dWxlLXNyYy1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtc3JjLXNpbXBs
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNmNzNiMGM1NGEyNWE0Zjc2YzE0YTNiNWRjMzE3M2ZlODkzY2Iz
Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXNyYy1zaW1w
bGUuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGVzdCBtb2R1bGUgd2l0aCAic3JjIiBhdHRyaWJ1dGUuJyk7CisKKy8v
IE1vZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVidWcoJ01vZHVsZSBpcyBub3Qg
ZXhlY3V0ZWQgeWV0LicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSIu
L3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXR5cGUtY2FzZS1p
bnNlbnNpdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXR5cGUt
Y2FzZS1pbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc2ODAxOTNkM2UyNWY4
MzAzYzFkMDI2NzEwYTg4ZTllOWM3ZTlhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL2RvbS9tb2R1bGUtdHlwZS1jYXNlLWluc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitUZXN0IHRoYXQgdHlwZT0ibW9kdWxlIiBzaG91bGQgYmUgY2FzZS1pbnNlbnNp
dGl2ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK01vZHVsZSBpcyBub3QgZXhl
Y3V0ZWQgeWV0LgorTW9kdWxlIGlzIGxvYWRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
bW9kdWxlLXR5cGUtY2FzZS1pbnNlbnNpdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL21v
ZHVsZS10eXBlLWNhc2UtaW5zZW5zaXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWYxNDZiMTc0NmJm
MTIxZmNjZWZlOGI3MDk3YTczMjRhNDFiYzk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS10eXBlLWNhc2UtaW5zZW5zaXRpdmUuaHRtbApAQCAtMCwwICsxLDM5
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB0
aGF0IHR5cGU9Im1vZHVsZSIgc2hvdWxkIGJlIGNhc2UtaW5zZW5zaXRpdmUuJyk7CisKKy8vIE1v
ZHVsZSB3aWxsIGJlIGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5Lgord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitQcm9taXNlLmFsbChbCisgICAgbmV3IFByb21pc2UoZnVuY3Rpb24gKHJl
c29sdmUpIHsKKyAgICAgICAgd2luZG93LnJlc29sdmUxID0gcmVzb2x2ZTsKKyAgICB9KSwKKyAg
ICBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgeworICAgICAgICB3aW5kb3cucmVzb2x2
ZTIgPSByZXNvbHZlOworICAgIH0pLAorXSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgZGVidWco
J01vZHVsZSBpcyBsb2FkZWQuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKK2RlYnVnKCdN
b2R1bGUgaXMgbm90IGV4ZWN1dGVkIHlldC4nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHR5cGU9
Ik1vRHVMZSI+CitpbXBvcnQgQ29jb2EgZnJvbSAiLi9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGlu
ZS1zaW1wbGUuanMiOword2luZG93LnJlc29sdmUxKCk7Cis8L3NjcmlwdD4KKworPHNjcmlwdCB0
eXBlPSJNT0RVTEUiPgoraW1wb3J0IENvY29hIGZyb20gIi4vc2NyaXB0LXRlc3RzL21vZHVsZS1p
bmxpbmUtc2ltcGxlLmpzIjsKK3dpbmRvdy5yZXNvbHZlMigpOworPC9zY3JpcHQ+CisKKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1m
aXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZS13
aWxsLWZpcmUtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4ZDk3MDhkYjNl
MDVjNGIwMTAzYmU3ZGNlYjBjMDA3MTE3NWM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9tb2R1bGUtd2lsbC1maXJlLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1Rlc3Qgc2NyaXB0LmJlZm9yZWxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRo
ZSBtb2R1bGUgdGFnIHdpdGggc3JjIGlzIHByZXBhcmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworTW9kdWxlIGlzIG5vdCBleGVjdXRlZCB5ZXQuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMv
anMvZG9tL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYmZm
MTY1M2QwNmMwNmUxZDc0MTc5ZDAxMTAwMzZlMTQ5ZDg2OTAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmh0bWwKQEAgLTAs
MCArMSwxNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
J1Rlc3Qgc2NyaXB0LmJlZm9yZWxvYWQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBtb2R1bGUgdGFn
IHdpdGggc3JjIGlzIHByZXBhcmVkLicpOworLy8gTW9kdWxlIHdpbGwgYmUgZXhlY3V0ZWQgYXN5
bmNocm9ub3VzbHkuCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZWJ1ZygnTW9kdWxl
IGlzIG5vdCBleGVjdXRlZCB5ZXQuJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0ibW9kdWxl
IiBvbmJlZm9yZWxvYWQ9ImZpbmlzaEpTVGVzdCgpIiBzcmM9InNjcmlwdC10ZXN0cy9tb2R1bGUt
d2lsbC1maXJlLWJlZm9yZWxvYWQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9u
LWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9u
ZXJyb3ItdGhyb3cuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1l
eGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0
ZWQtdG8tb25lcnJvci10aHJvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmMxNWFmMjE0MmI0ODAyNjAyZWFk
MDM3MDBmOGJiZTAxYmMyYmVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9k
dWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItdGhyb3cuanMKQEAgLTAsMCArMSwy
IEBACitkZWJ1ZygiRXhlY3V0aW5nIHRoZSBkZXBlbmRlbnQgbW9kdWxlIik7Cit0aHJvdyBuZXcg
RXJyb3IoIm91dCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1i
ZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxk
LWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmM3Y2E0NzliMjU4ODli
MDBjYTI0Y2Q1YmJlMzMxZGFhNjVmNzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRl
bnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3IuanMKQEAgLTAsMCArMSwy
IEBACitpbXBvcnQgIm1vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1
bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci10aHJvdy5qcyIKK3Rlc3RGYWlsZWQo
ImV4ZWN1dGVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtMi5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC0yLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUzM2I5ZDM1MmFlYzU3YjA2MWRkYmUwMGI3Y2Y5NGVhNTc0YWVjNDkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3Jk
ZXItbWl4ZWQtMi5qcwpAQCAtMCwwICsxIEBACitzaG91bGRCZSgiY291bnQrKyIsICI1Iik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRp
b24tb3JkZXItbWl4ZWQtY2FwcHVjY2luby5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYzMTQ2ZmQ3NjZlNTVhMDJhZTc4YmFmOWRkNjMzOThlYjg1YTg5MGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24t
b3JkZXItbWl4ZWQtY2FwcHVjY2luby5qcwpAQCAtMCwwICsxLDMgQEAKK2ltcG9ydCAibW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMiCisKK3Nob3VsZEJlKCJjb3VudCsrIiwg
IjIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jb2NvYS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNThkNzMyNDNmZWYzMGEwYjQ5NDlkYmE3ZmJmODUzNGVlYmE5ZjczCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9y
ZGVyLW1peGVkLWNvY29hLmpzCkBAIC0wLDAgKzEsMyBAQAoraW1wb3J0ICJtb2R1bGUtZXhlY3V0
aW9uLW9yZGVyLW1peGVkLW1hdGNoYS5qcyI7CisKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjEiKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1
dGlvbi1vcmRlci1taXhlZC1tYXRjaGEuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtbWF0Y2hhLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMy
ZTE1ZDdjZjBjZmY0ZWFhMWEwYjVhMWVlODNkY2NlMzI0YTI1ZTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1leGVjdXRpb24tb3JkZXIt
bWl4ZWQtbWF0Y2hhLmpzCkBAIC0wLDAgKzEgQEAKK3Nob3VsZEJlKCJjb3VudCsrIiwgIjAiKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWV4ZWN1
dGlvbi1vcmRlci1taXhlZC5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9k
dWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDM4NmZiYjg2ODFjYmY3
ZTU5YzQ3Mzc2MzdlODdiZTM4Y2ZmNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtZXhlY3V0aW9uLW9yZGVyLW1peGVkLmpzCkBAIC0w
LDAgKzEsNCBAQAoraW1wb3J0ICIuL21vZHVsZS1leGVjdXRpb24tb3JkZXItbWl4ZWQtY29jb2Eu
anMiCitpbXBvcnQgIi4vbW9kdWxlLWV4ZWN1dGlvbi1vcmRlci1taXhlZC1jYXBwdWNjaW5vLmpz
IgorCitzaG91bGRCZSgiY291bnQrKyIsICIzIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1pYy5qcyBiL0xheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1keW5hbWljLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI0MzYwYTdiZmU3ZTA1YTBjYjI1Mzg0MTM2N2U3MWRjMWU5M2I1YzcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1pbmxpbmUtZHluYW1p
Yy5qcwpAQCAtMCwwICsxLDUgQEAKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvY29hIHsKKyAgICB0
YXN0ZSgpIHsKKyAgICAgICAgcmV0dXJuICJhd2Vzb21lIjsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtaW5saW5lLXNpbXBsZS5q
cyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWlubGluZS1zaW1wbGUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjQzNjBhN2JmZTdlMDVhMGNiMjUzODQxMzY3ZTcxZGMxZTkzYjVjNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxl
LWlubGluZS1zaW1wbGUuanMKQEAgLTAsMCArMSw1IEBACitleHBvcnQgZGVmYXVsdCBjbGFzcyBD
b2NvYSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVybiAiYXdlc29tZSI7CisgICAgfQor
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxv
YWQtZXZlbnQtd2l0aC1zcmMuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21v
ZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiODcwMjkwZDNlYzdlMDgw
YzA1ZjlmNjY2ODQ0Y2QwNjc1MjlmZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1sb2FkLWV2ZW50LXdpdGgtc3JjLmpzCkBAIC0wLDAg
KzEgQEAKK2RlYnVnKCdFeGVjdXRpbmcgYSBtb2R1bGUgd2l0aCBzcmMgYXR0cmlidXRlLicpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtbG9hZC1z
YW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcyBiL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQt
ZW50cnktcG9pbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVhZDc3ZjgwMDgwNDM4MWJmNGYxZWFkYjUxN2Y1
NjBmMGM0ZWI2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJvbS1kaWZmZXJlbnQtZW50cnktcG9pbnQu
anMKQEAgLTAsMCArMSBAQAorZGVidWcoJ0V4ZWN1dGluZyBtb2R1bGUtbG9hZC1zYW1lLW1vZHVs
ZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC5qcy4nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRo
LXNyYy1hbmQtaW1wb3J0LmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1
bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGMxYjQ3MTQ4MTM4YTBlYzQ1MjJjMjI3MjMzYTNjNzQxMzM3MTI5OQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLW5vdC1mb3VuZC1l
cnJvci1ldmVudC13aXRoLXNyYy1hbmQtaW1wb3J0LmpzCkBAIC0wLDAgKzEgQEAKK2ltcG9ydCAi
bm90LWZvdW5kLmpzIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1zcmMtZHluYW1pYy1jb2NvYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Nzk1OTJkYzUx
M2NmMjU5ODQxZmY5ZDQ2MzkwNDUxMmIwZWNiNzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMtY29jb2EuanMKQEAg
LTAsMCArMSw3IEBACitjbGFzcyBDb2NvYSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVy
biAibmljZSI7CisgICAgfQorfQorCitleHBvcnQgZGVmYXVsdCBDb2NvYTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1keW5hbWljLmpzIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLWR5bmFtaWMuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjUxYTdiZTZiNGYxMjkzYWY1OTY4NmZlM2U1NzgwMWQyZTA5NmMzNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1k
eW5hbWljLmpzCkBAIC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBDb2NvYSBmcm9tICIuL21vZHVsZS1z
cmMtZHluYW1pYy1jb2NvYS5qcyI7Cit2YXIgY29jb2EgPSBuZXcgQ29jb2EoKTsKKworZGVidWco
Ik1vZHVsZSBleGVjdXRpb24gaXMgY29uZmluZWQgaW4gdGhlIG1vZHVsZSBlbnZpcm9ubWVudC4i
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIGNvY29hIiwgInVuZGVmaW5lZCIpOwor
Cit3aW5kb3cuZXhwb3J0ZWRDb2NvYSA9IGNvY29hOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0
eXBlb2YgZXhwb3J0ZWRDb2NvYSIsICJvYmplY3QiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
ZXhwb3J0ZWRDb2NvYS50YXN0ZSgpIiwgIm5pY2UiKTsKK2ZpbmlzaEpTVGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9tb2R1bGUtc3JjLXNpbXBsZS1j
b2NvYS5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1w
bGUtY29jb2EuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc5NTkyZGM1MTNjZjI1OTg0MWZmOWQ0NjM5MDQ1MTJi
MGVjYjc0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvbW9kdWxlLXNyYy1zaW1wbGUtY29jb2EuanMKQEAgLTAsMCArMSw3IEBACitjbGFzcyBDb2Nv
YSB7CisgICAgdGFzdGUoKSB7CisgICAgICAgIHJldHVybiAibmljZSI7CisgICAgfQorfQorCitl
eHBvcnQgZGVmYXVsdCBDb2NvYTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvbW9kdWxlLXNyYy1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkOWM3NzRmZDllN2E1Yzlk
MTg1OTI0MDQ0ZTdhMjc4YWQ3MzM3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS1zcmMtc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTAgQEAK
K2ltcG9ydCBDb2NvYSBmcm9tICIuL21vZHVsZS1zcmMtc2ltcGxlLWNvY29hLmpzIjsKK3ZhciBj
b2NvYSA9IG5ldyBDb2NvYSgpOworCitkZWJ1ZygiTW9kdWxlIGV4ZWN1dGlvbiBpcyBjb25maW5l
ZCBpbiB0aGUgbW9kdWxlIGVudmlyb25tZW50LiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0
eXBlb2YgY29jb2EiLCAidW5kZWZpbmVkIik7CisKK3dpbmRvdy5leHBvcnRlZENvY29hID0gY29j
b2E7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBleHBvcnRlZENvY29hIiwgIm9iamVj
dCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBvcnRlZENvY29hLnRhc3RlKCkiLCAibmlj
ZSIpOworZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUtYmVmb3JlbG9hZC5qcyBiL0xheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvbW9kdWxlLXdpbGwtZmlyZS1iZWZvcmVsb2FkLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYwYTM5MzgzNTYzM2FlYzU1ZTVlNTk1NzI5ZGE2OTE5ZTljMzIwM2IKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL21vZHVsZS13aWxsLWZpcmUt
YmVmb3JlbG9hZC5qcwpAQCAtMCwwICsxIEBACit0ZXN0RmFpbGVkKCJleGVjdXRlZCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>287175</attachid>
            <date>2016-08-26 17:07:38 -0700</date>
            <delta_ts>2016-08-28 23:37:35 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews114 for mac-yosemite</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1606574</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
Pj7ruT8sOTsptej1pAljf4oZ8Onqlyb80Jlt0zYfrFl/dN5Ts5ti+/t/XpgwlRpscZLP3Zjw42w+
37Zqcs7pzVMmTCUZs7J6S/eEsVe+hW3X82V6vkzPl+n5Mj1fpufL9HyZni/T82V6vkzPl+n/D8t0
CJ1z/ZbK8e0iaNEk7Ne6NR+8X7v6k8P/D1BLAwQUAAIACABsgRpJSItCRXwAAACICAAAPAAcAGNv
bXBvc2l0aW5nL21hc2tzL2NvbXBvc2l0aW5nLWNsaXAtcGF0aC1tYXNrLWNoYW5nZS1kaWZmLnBu
Z1VUCQADm8zAV5vMwFd1eAsAAQT1AQAABBQAAADrDPBz5+WS4mJgYOD19HAJYmBgVmBgYIrgAAow
7Je9u4aBgcPf08UxpILx7QVHXgYGHibDP69nHpj5wDlIRMa3h4GRiYVDQMGhYZQxyhhxjMbSxmj7
BfNHA2OUMcoYZYwyCDIcAh8wMu9l2PrptIcRqInh6ernss4poQkAUEsDBBQAAgAIAGyBGknmZjD/
lgUAAEQSAAA+ABwAY29tcG9zaXRpbmcvbWFza3MvY29tcG9zaXRpbmctY2xpcC1wYXRoLW1hc2st
Y2hhbmdlLWRpZmZzLmh0bWxVVAkAA5vMwFebzMBXdXgLAAEE9QEAAAQUAAAArVhLb+M2EL77V3AN
FJKRSE62N1sxkDoBGiDFFt1ciiAHWqJtIpSoklQcb+H/3uFDEiXLyXazOcQx5/Vx5pshmeTTzZfl
w99/3qLfH/64X4ySrcqZ/iA4gw9FFSOLlOcll1TRYjPNsXyWU28lShktoxKrbaRlUbrFxYbE2k8y
tfajRKq9/kTwE9Mcb8iSFwrTggj0r1nVP9YjL2YIryRnlSLzRpZjsaEgubwoX9tVXikGTuwyAhua
IUnZCxFW52B+D4ZdIJpvvOAZlSXD+xlaMZ4+1+aefQqmgjPp2VhQ0YorxfMZ+txgOwzZrSpQKzzz
Hc3UFrB/JvkbZirzU4SzDHI+QxdeJgbNGF4R5lmuQRCtcU4Z7DHakdUzVZHcS0XySMvmXU1Jv+m0
Xg7FsBupE3HoBV5AqouMplhxMZRfhVeMRClhrA1Z40mh6nkRyRLrUrfyFRcZEZHiJWS5qfSK4bZS
DTyLLpaEkVQRP3mKvKooIykX2NKsKsCrJlDtJJk6oiZT1wArnu11H2jQKGVYyqtxvdWxJXSixKKJ
kahsAbTPeiuu9jS7GpPX0gCLTIXGKMMKR2pfklY0RryArkqfr8ZyR1W6feB3mr2h2lI5GS9unR4y
q8nUen8nLk5VhdlAVCt4L+a10fpfETO6Xg/E08vvRbsBnZOx4C9xKvW0KCuFbKB0S9LnFX8d2/0X
MAEUMZHNiLoaK77ZMHJtBeFkjIwF0RU0fhaJ7aI1F639wunPkqmRDiXhNIp0nwL7O4V2YKoSckTM
npda6T08PU8NKT4Ay2PCh0A5P44zHwDUUOU0nDdgGGtDpWMIlkPwWzf2YjRKMvpS93f3pHDcLQVZ
01fd/O+cfOPFPcd6SMdxnEzBrT7+UkFLtRjRNQp3MB35LlZEqr+qAgJMRnY41d/jrMrLa/kA0yqc
zEejFyxQ2pxbVyjjaZWTQsX/VETsv5o5x0UY9E64oLbV8MHMzsGgJkyAZt5oDIytXoN9MsBvu7EJ
G2+IulZKUGhGEgZeRoIJOkNBw8O4LDbB5Lx1bBKvHTewwdUtI/rP3/Z3WRh0B2JtfLAfgeXST0Zr
nf4AVn+I9pFquv1knNrlD6BsB6+H8eDo4KAQC2bJq0IBOy5Auq6KVB+MtcoSqM6Inowju6ezswFj
e3ZqZg95TtCvkwa6IKoSxbw9q+WW72xO9N4f62I/TazOcbvbdamwUHoFusxIpZYcjndgfVeC1Tsw
BYHtFmRnj5fapRHEcLu6fYE03lO4F0GBwkB7Cc77GekYSZGCRwhiF+0mrawLqnvSEVuxGpkujbF5
gGkI/px4iCJ6XgZ1KroZbDw89RIiiCTqXlNCNuWEUYlCExcugYgWZlK01bIOQfQUGy7FZjzq1MSC
5PwF4NSXrKAXrUUF10Cy4WJ/Y1zbuC3/BYE7YUqWW8qyjqqdZeee6poKqYzixCNQZ1t2veOmDxwK
fBr1Md0cYJ2JuJlw5nDx53C//bonczCJ3Yk5b525AfSdrlxbDDkyE+I73ZgB5Tnx9w4Wy0oIsGD7
r1C9urM0l94hjDfw9BR4gzaumtIvQcs3v3lU+yTyUfYubHVT66gnJ7ZVbvfdBhweI1oCdCKeGi+H
ho05l3Vi7wpFxAtmdzdzrwUGnDu8gw4NdbveoKLusgAkr5dDq2TszuHJeXHR771j716eeiEmneeo
iQVyLHrRWv32TXYMVj+n1tCs2VDpPNihP/NSy7o7N5jf5uG8MTMPQtB/bC80581l4dwdxk+tPuyN
vIK+sYvNty/r0A/uj5Ua2J2zCq35GbqcoF+cD0aKjdq6VuReHrWxskPcaD42np7mx52iNZ9sB3db
YSUIfm4N2rz7uNovJ7Ed0A6mJvF1P13ZfOgb4sAh0kdtzxJ4G7tbLDzJ7Kt4av9Z9B9QSwMEFAAC
AAgAbIEaSQD/uY8TAQAAbgIAAEEAHABjb21wb3NpdGluZy9tYXNrcy9jb21wb3NpdGluZy1jbGlw
LXBhdGgtbWFzay1jaGFuZ2UtZXhwZWN0ZWQuaHRtbFVUCQADm8zAV5vMwFd1eAsAAQT1AQAABBQA
AACFUrFSwzAM3fMVIlO4IyTAFtwswAwDC2xKbBJdHNtnu7Q9jn/HSUrT9tqrFsuS9fSkZ3b1/Pr0
/vH2Aq3vZRlFbDpZK5CXEQRjzm+kmPzBbiu9hp/dFWBF3LcF3Oe5WT/uxVtBTetPJHq0DakC7o7i
FdZdY/VS8bTWUtsCKrkU84vfnTeTqXVvtCMv+AGndCWqjnzqLSr3pW1fwOhK9OIzya8vgEoy5ghx
xhyyqcFhZlJO+CSHhzDJBcweXXcWckgWIEkJtGljkZNQPhkZG7TBvwmrCNs534NlW5lYNknHKs03
g6CcvoH4Im6Q1Ngohlqic4t4S+l/2r1VBonjkmWhtJwBpHbiEOBCZeAykQicxl/1B1BLAwQUAAIA
CABrgRpJML7mcNIuAAB4VAAAQAAcAGNvbXBvc2l0aW5nL21hc2tzL2NvbXBvc2l0aW5nLWNsaXAt
cGF0aC1tYXNrLWNoYW5nZS1leHBlY3RlZC5wbmdVVAkAA5rMwFeazMBXdXgLAAEE9QEAAAQUAAAA
7bx7WFNn9i+ufnWmjtOZfqEM1Vq1VaRoJUVERE1ir16ipAUBIZC0IKQQYwopCOSmTu0URSgFDBjI
nqkCcgkRY4hcklgHQbmlBZJIuKQKJJIQIoQkJCHZZwcrQef3x+95znPOc55z9A+Fvd+svHu97/qs
z2e9a5v1WfD+V/+05k9Llix59eCBj0OWLPmvDUuWLDv2yh+gK5fTzn4N/ePzzSfHvon7Kj6OQE4l
LtmxIz5gh3/Q+18mBCbsCDgeHx8QmLAr/niC/86A7QGBx7erkYd/gz60lByy/8Mltd1rx5cs2bfk
4McfHE1fqhvqSPNHpaz7ZfLSzff+Ouf4q+bMtm1v8T2OMC4kf7ji9X2nrw3ULt1YPS3i/XH1XMZV
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
Y29tcG9zaXRpbmctc3RkZXJyLnR4dFVUCQADoszAV6LMwFd1eAsAAQT1AQAABBQAAADtj7EKwjAU
RXe/IqMONiba2hYcVBQcxELHIuWZPDQaG3mNQv7eioN+gKPbudO5pxJJLkQusyhNp3tmPF6hDY2q
S/QFuRuSD6w1xwasRc2QaDYUcprGrH9Zm+MCWtwdzqj8ishRvWkeYI0Gj3rA+uZ7gWe8dHdSuAR1
Qr50hFvUBj40FHEiIzkZ8U7tnQ83bHlhISDxTvamev76FylmTYNMymzcq/4R/4jfRTwBUEsDBBQA
AgAIAHuBGklOO6d3wgAAAPIGAAA8ABwAY29tcG9zaXRpbmcvc2hvdy1jb21wb3NpdGVkLWlmcmFt
ZS1vbi1iYWNrLWJ1dHRvbi1zdGRlcnIudHh0VVQJAAO6zMBXuszAV3V4CwABBPUBAAAEFAAAAO3P
sYvCMBgF8P3+iow6tGli22sFBy0KDnKCoxzlM/3QaGzK1yjkv9fjhlNwdTjI9t703m8r8rEQ4yyN
RV5+M+3wDL1vVb1BtybbITnPer1vwRhsGBJNIiE/i4wNTgu9n0GPX7sjKjcnslQv2ysY3YDDZsgG
+rGBY3xjL6SwAnVAXlnCFTYa/lIkslzGMk34fdpZ5zvs+dqAR+L3sd9UT3/+xYoZ3SKTshx9bAMi
IN6CKJ8Qle38v1AkRREUQREULxQ3UEsDBAoAAAAAAG2BGkkAAAAAAAAAAAAAAAASABwAY29tcG9z
aXRpbmcvdmlkZW8vVVQJAAOezMBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACABtgRpJvCSy
tMIAAADyBgAAMgAcAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNsaXAtY2hhbmdlLXNyYy1zdGRl
cnIudHh0VVQJAAOezMBXnszAV3V4CwABBPUBAAAEFAAAAO3PvQrCMBQF4N2nyKiDjYm2VsFBi4KD
KDiKlGt60Whsym0U8vb+DeoDOAjZzpnO+TYiGQoxlHGUxoMt0w7PUPtS5Wt0K7IVkvOs1vsSjMGC
IdGoLWQ/jVnzNNP7CdS43B1RuSmRpXxeXsHoAhwWLdbUnw0c42t7IYUZqAPyzBIusNDwTm0RJzKS
vQ6/TzvrfIU1XxnwSPw+9kr5+PEvUszoEpmUg25jExAB8RNEIj8Rma38Xyg6afql6AZFUATFU3ED
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
bfOKJrz418n0GszH5nrSOvfS0h3m8ewNUEsDBAoAAAAAAKOBGkkAAAAAAAAAAAAAAAALABwAZmFz
dC9mb3Jtcy9VVAkAAwHNwFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAKOBGkkuX9jvewEA
APg5AAAzABwAZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXBhdHRlcm5NaXNtYXRjaC1zdGRlcnIu
dHh0VVQJAAMBzcBXAc3AV3V4CwABBPUBAAAEFAAAAO3YTUsDMRAG4Lu/Yk62grjehCCC1gpWirJb
LIIiY3baBnaTNZmt7b83fhwKXvTm4b2EfM1u5jkkIeOyvC0NlbLsG47jTRclJRe8oYfzsiQb2s41
QgvOZU1vTlc0uPZrblxN8SuIZCeq9y2rXeW5HUfxupIkabBX3IembyUVl6xcjOdVMZeXG6dFFfpo
pZjwmisbXaejEKXYcozFjzUd2a4bnhwfkKGktTG9d6+9PHcaTyfVyJiHHGXMxVbFhlruWFWiP6Od
sZ9pmrvo1qxizHeqQxt8UprProypNDq/pP3Dr+ZMNjriJJX45NStnW4Pd78+7Rt1jfMyzb8/2BuD
FrSgBS1oQQta0IIWtKAFLWhBC1rQgha0oP0F7SOxkviawiLjfiYHWMACFrCABez/hm1druTl5Kxa
51k/6k+0CJHsiiPb3E+24YS7ArjBDW5wgxvc4AY3uMENbnCDG6/NoAUtaPF+h4MN3ODGjgxa0IIW
9wgcbOAG99+53wFQSwMECgAAAAAA3IEaSQAAAAAAAAAAAAAAAAwAHABmYXN0L2ZyYW1lcy9VVAkA
A2/NwFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANyBGkko2Xk2sAAAAO4AAAAvABwAZmFz
dC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1zdG9yYWdlLXN0ZGVyci50eHRVVAkAA2/NwFdvzcBX
dXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXge79iTqFQbdAh2luUXSIELT3v6hjCOiPjbtG/T6NO3ebx
vgeTZFmaabiRsQ7BM/ggBEzQUiXYIXnjwATPy4epQuggWgOxB0OAIizxTBXsQoeDOhpvVFLmqkR7
br3KOUiFUzqwoLpwHdzInmjrUVoz4GcyHauq76PNdheDBsvs4DvS+ie07lEali7tkfZUFyht84om
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
dmFsaWRhdGlvbi1zdGRlcnIudHh0VVQJAANFzcBXRc3AV3V4CwABBPUBAAAEFAAAAJ3MsQrCMBCA
4b1PcaMu0mgoEkQodXEQBAcFcYjpNQbCnSQXxbc3voLrz8/XFw/LDlRnlDZqBfjOSulFZGcjJHEJ
n5wkkL/qtm3XN9js8F781kBGGg+Ys/V4DvIYrKDn9DEwoxLjvOn/lgMF+ZGnqgemPU1s4HIcwDER
OqmtPi8bw9h8AVBLAwQKAAAAAADEgRpJAAAAAAAAAAAAAAAAEgAcAGh0dHAvdGVzdHMvY2FudmFz
L1VUCQADP83AV7jPwFd1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAxIEaSQAAAAAAAAAAAAAAABgA
HABodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbC9VVAkAAz/NwFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAMSBGkkiDfMGywAAAN0BAAA7ABwAaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLXN0ZGVyci50eHRVVAkAAz/NwFc/zcBXdXgLAAEE9QEAAAQUAAAA
pZAxb8IwEIXn5lfcCEtEAKXFqipBGECCsWKoOlzsw1iYM7IvQvx7nJatU5XxnvS+d+8tOwvTGqpa
VXM1eQW6paqalz5o9BBFR7qGKI7t12yxeKu/4X3Lx/ChwAdrswxJMEoqy7JY/hu1prazmZVI9pQS
Wtr9UlfZdFaQjZ7MEHD/XBP46GwXUVzgg5NTEy5XT/21QTaeooIG9YkMTIAY25wJLeozsUnDWn0m
iv1ea6dF/WErGBUv40EJbJ7D/fRCIRviPXO5835cPABQSwMECgAAAAAAxYEaSQAAAAAAAAAAAAAA
AC8AHABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L1VUCQAD
Qs3AV7jPwFd1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAxYEaSWXRGYh/AAAAlQAAAFEAHABodHRw
L3Rlc3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVy
LXN0cmlwcGVkLXN0ZGVyci50eHRVVAkAA0LNwFdCzcBXdXgLAAEE9QEAAAQUAAAADYgxDsIwDAB3
XuEP0KQFBMrepQtS4QNp4qqphB3ZrgS/J7rhTreZ1eBcP9w73+jDw3vvEpMhWS5aWYsVpmgW0/Zp
UyPlhb9OUPmQhNpqRUE5bxhzk5qUWjF3u4bhGi63ANMLxnl+zvD+VRxFWAIclHEthBmKArFBJOBl
x2SnP1BLAwQUAAIACADEgRpJZdEZiH8AAACVAAAAagAcAGh0dHAvdGVzdHMvY29udGVudGRpc3Bv
c2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRh
LXJlZmVyZXItYWx3YXlzLXN0ZGVyci50eHRVVAkAA0DNwFdAzcBXdXgLAAEE9QEAAAQUAAAADYgx
DsIwDAB3XuEP0KQFBMrepQtS4QNp4qqphB3ZrgS/J7rhTreZ1eBcP9w73+jDw3vvEpMhWS5aWYsV
pmgW0/ZpUyPlhb9OUPmQhNpqRUE5bxhzk5qUWjF3u4bhGi63ANMLxnl+zvD+VRxFWAIclHEthBmK
ArFBJOBlx2SnP1BLAwQUAAIACADEgRpJZdEZiH8AAACVAAAAawAcAGh0dHAvdGVzdHMvY29udGVu
dGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0
aC1tZXRhLXJlZmVyZXItZGVmYXVsdC1zdGRlcnIudHh0VVQJAANAzcBXQM3AV3V4CwABBPUBAAAE
FAAAAA2IMQ7CMAwAd17hD9CkBQTK3qULUuEDaeKqqYQd2a4Evye64U63mdXgXD/cO9/ow8N77xKT
IVkuWlmLFaZoFtP2aVMj5YW/TlD5kITaakVBOW8Yc5OalFoxd7uG4RoutwDTC8Z5fs7w/lUcRVgC
HJRxLYQZigKxQSTgZcdkpz9QSwMEFAACAAgAxIEaSWXRGYh/AAAAlQAAAGkAHABodHRwL3Rlc3Rz
L2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlw
cGVkLXdpdGgtbWV0YS1yZWZlcmVyLW5ldmVyLXN0ZGVyci50eHRVVAkAA0DNwFdAzcBXdXgLAAEE
9QEAAAQUAAAADYgxDsIwDAB3XuEP0KQFBMrepQtS4QNp4qqphB3ZrgS/J7rhTreZ1eBcP9w73+jD
w3vvEpMhWS5aWYsVpmgW0/ZpUyPlhb9OUPmQhNpqRUE5bxhzk5qUWjF3u4bhGi63ANMLxnl+zvD+
VRxFWAIclHEthBmKArFBJOBlx2SnP1BLAwQUAAIACADFgRpJZdEZiH8AAACVAAAAbwAcAGh0dHAv
dGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXIt
c3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItbm8tcmVmZXJyZXItc3RkZXJyLnR4dFVUCQADQc3A
V0HNwFd1eAsAAQT1AQAABBQAAAANiDEOwjAMAHde4Q/QpAUEyt6lC1LhA2niqqmEHdmuBL8nuuFO
t5nV4Fw/3Dvf6MPDe+8SkyFZLlpZixWmaBbT9mlTI+WFv05Q+ZCE2mpFQTlvGHOTmpRaMXe7huEa
LrcA0wvGeX7O8P5VHEVYAhyUcS2EGYoCsUEk4GXHZKc/UEsDBBQAAgAIAMWBGkll0RmIfwAAAJUA
AAB+ABwAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9yZWZl
cmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci1uby1yZWZlcnJlci13aGVuLWRv
d25ncmFkZS1zdGRlcnIudHh0VVQJAANBzcBXQc3AV3V4CwABBPUBAAAEFAAAAA2IMQ7CMAwAd17h
D9CkBQTK3qULUuEDaeKqqYQd2a4Evye64U63mdXgXD/cO9/ow8N77xKTIVkuWlmLFaZoFtP2aVMj
5YW/TlD5kITaakVBOW8Yc5OalFoxd7uG4RoutwDTC8Z5fs7w/lUcRVgCHJRxLYQZigKxQSTgZcdk
pz9QSwMEFAACAAgAxYEaSWXRGYh/AAAAlQAAAGoAHABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3Np
dGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1y
ZWZlcmVyLW9yaWdpbi1zdGRlcnIudHh0VVQJAANBzcBXQc3AV3V4CwABBPUBAAAEFAAAAA2IMQ7C
MAwAd17hD9CkBQTK3qULUuEDaeKqqYQd2a4Evye64U63mdXgXD/cO9/ow8N77xKTIVkuWlmLFaZo
FtP2aVMj5YW/TlD5kITaakVBOW8Yc5OalFoxd7uG4RoutwDTC8Z5fs7w/lUcRVgCHJRxLYQZigKx
QSTgZcdkpz9QSwMEFAACAAgAxYEaSWXRGYh/AAAAlQAAAG4AHABodHRwL3Rlc3RzL2NvbnRlbnRk
aXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgt
bWV0YS1yZWZlcmVyLXVuc2FmZS11cmwtc3RkZXJyLnR4dFVUCQADQc3AV0HNwFd1eAsAAQT1AQAA
BBQAAAANiDEOwjAMAHde4Q/QpAUEyt6lC1LhA2niqqmEHdmuBL8nuuFOt5nV4Fw/3Dvf6MPDe+8S
kyFZLlpZixWmaBbT9mlTI+WFv05Q+ZCE2mpFQTlvGHOTmpRaMXe7huEaLrcA0wvGeX7O8P5VHEVY
AhyUcS2EGYoCsUEk4GXHZKc/UEsDBAoAAAAAAMSBGkkAAAAAAAAAAAAAAAAPABwAaHR0cC90ZXN0
cy9jc3MvVVQJAANAzcBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACADEgRpJk2YQiYUAAAAa
AQAALgAcAGh0dHAvdGVzdHMvY3NzL2JvcmRlci1pbWFnZS1sb2FkaW5nLXN0ZGVyci50eHRVVAkA
A0DNwFdAzcBXdXgLAAEE9QEAAAQUAAAAzcyxCsIwEIDhvU9xoy5itEQbilDq4iAIDgriENMzHoSL
JBfFt7e+hevPz9cVDwsNShtVm/kK8J2VqmchOhsgiUv4jEmI/WXZNGt9hXaLt+I3BjLysMecrccT
yaO3gj6mj4EJlxCmVfeHMjHJjzyOOkXe8T0aOB96cJEZnYxtfF420FB9AVBLAwQKAAAAAADTgRpJ
AAAAAAAAAAAAAAAAEQAcAGh0dHAvdGVzdHMvbWVkaWEvVVQJAANdzcBXuM/AV3V4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAADJgRpJAAAAAAAAAAAAAAAAGgAcAGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJr
ZXkvVVQJAANJzcBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACADJgRpJquxOk1EBAAB/AwAA
OQAcAGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvY2xlYXIta2V5LWhscy1hZXMxMjgtc3RkZXJy
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
XYISSiihhBJKKKGEEkoooYQSSiihhBJKKKGEEkoooYTy8d53beN9F5RQQgkllFBCCSWUUEKJZxWs
H1UKJZRQQgkllFBCCSWUUEL5bJ/78EQJJZRQQgkllFBCCSWUUOIp6P99rzjE+rH+R1r/N1BLAwQU
AAIACADJgRpJzAs/q8sAAAA3AgAAMgAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQt
cmVmZXJlci1zdGRlcnIudHh0VVQJAANKzcBXSs3AV3V4CwABBPUBAAAEFAAAALWQMWvDMBCF5+ZX
3NguxgrGFFEKiTMkkI4hQ+lwli6KiHoK0pmQfx+5zZapmI734H3v3lsMDuYtqFarRqtXoEtWqqlC
NBggiUl0jkk8u8+mruftF7xt+BDfNYToXJEhCybJVVXNFn9GragfXGFlkg/KGR1tf6nLYjppKMZA
dgp4fK6LfPBuSCg+8t7LsYvf50DjtUa2gZKGDs2RLNRAjH3JhB7Nidjmaa12mdK418ob0Q9sDc+z
p5dJCWzvw/30QiEX07VweQjhP8k3UEsDBBQAAgAIAMqBGkl3CuOS4QAAAKwCAAAqABwAaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1zdGRlcnIudHh0VVQJAANLzcBXS83AV3V4CwABBPUB
AAAEFAAAALWRQUsDQQyFz/ZX5NheZKcsiwwitNtDBYWCiIJ4yM6m06FjpsxkK/57s+LNg+DiMSHv
e8nLavCwbMA01tTWXAG9F2Pqy5gcRsjiMp1SlsD+pa6qZfMK1xvqBn9joRD391QKenoKcmhRyKf8
YWHOQ4yL2erP5MBBRuSD0kPiW94nC8+7FlxiJifa05kzxtBPcCkk3+vfJe91Yq2iowUVRpoEFszS
Jt4HP2Qct/3KJ72dIo3VFrmPlC206A7UQwXE2KkndOiOmmqZdtVjoTxmtglO7A+2/md2sZjk8F9/
/438CVBLAwQUAAIACADLgRpJ19j7IekAAADGAwAAOQAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
cGxheS1zdHJlYW0tY2h1bmtlZC1pY3ktc3RkZXJyLnR4dFVUCQADTc3AV03NwFd1eAsAAQT1AQAA
BBQAAADdk8FKxEAMhs/uU+ToXqRTSsFBhN3uQUFBEFEQD+k0OzvsmFlmUsW3NxVvntbixWNC8v3J
H7IaPdQtmNaaxppzoPdiTHMWk8MIWVymQ8oS2D83VVW3L3CxoX70lxYK8XBLpaCnxyC7DoV8yh8W
TnmMcblY/ZocOMiEvFd6SHzN22Th6a4Dl5jJiea05g1jGGaoFJLv8W+S91qx1qa9BW2MNAssmKVL
vA1+zDhN++VPej1EmqIr5CFSttCh29EAFRBjr5rQo9urq2XeVg+F8uTZJjixP9h6n8XJcpbCX939
KHJt/jn5mC/4BFBLAwQKAAAAAADbgRpJAAAAAAAAAAAAAAAAHgAcAGh0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL1VUCQADbc3AV7jPwFd1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA0IEaSYpL
2atVAQAAlwQAAEIAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1h
cHBlbmQtYnVmZmVyLXN0ZGVyci50eHRVVAkAA1jNwFdYzcBXdXgLAAEE9QEAAAQUAAAAzZNBTyMx
DIXv/ArfKId2kmmbhkocFkoF0lZCW+BSIeQmnjbaTDJyMgvDr2eq1S4XONPb05Nlf8+WN1LN5WRe
6pHS509QMe5WGFwVvX2+a9P+ssuUILldQO/JAjFfDKUSEwWD30v3v/iaOfLzQ6DXhkwmextcXmDG
MxisycRg4bTKXXMKmGMNFExsQyYme9Y7UKxjy4au0OypuIpMK7IOP9RQTlU5KieiuOOYY9+IUrGM
XGO+wWA9cSpW8Y+j4oB0EMs+SE0h/+MbGfAuEEg1FielkGoo9LBU8Df+WI600rBo6+YXBUt8z0Sb
iRCynM/0dDYrn+B2FyK7sIM+Tebo711NW0wEiTJsOzDe9fNgSwbb3v3xuMa68XTZVhXxwqXGY/cT
O2J4wQRobb/NHAEhdcHsOQb3Rvw52kx8jabF96KNv0LT5Xj6vWjqeNH00R5Uy2N4g3dQSwMEFAAC
AAgA0YEaSRLkESs9AQAAegMAAFAAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWJpdHJhdGUtc3RkZXJyLnR4dFVUCQADWs3AV1rN
wFd1eAsAAQT1AQAABBQAAADlkU9PwkAQxe98irkBB+gf2oIkHgQkkkhCBL0QQobdadm43W1mt2r9
9JZE5UNwe3mZzLzfm32UTaNkOoqHaTw+QM5YrNGo3Gp53NTuPGs8OXCqMKg1SSDm+0GUhUkGvfel
+h9+ZLZ8fDX0VZHwJFdG+QV67ENvS8IaCd3cN1UX0NsSyAhbG09Mst86EGxtzYLmKM4UzC3TmqTC
qxpEaRYP4yQMNmy9bReRC5aWS/RPaKQmdsHafigKLpEuYtmClGT8X76hAK0MQZSNws7+Cp3ENwid
3syn4zDKBuFkEGfwi58M07sJLOqyeiEjiXdMtE/CMIqn40k6noQHWBXGsjIFtDSerd6pkk7oCBx5
ODUgtGrvwYkE1q378LbFstI0q/OceKFcpbF5xoYYPtEBStm26S0guMaIM1ujvok7P1BLAwQUAAIA
CADTgRpJoSwoAz0BAAB6AwAAUgAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLXN0ZGVyci50eHRVVAkAA13NwFdd
zcBXdXgLAAEE9QEAAAQUAAAA5ZBPT8JAEMXvfIq5gQdot5S1knhQkEgiCRH0QowZdqewcbvbzG7V
+uktiX8+BLeXl5eZ93s7Iacin47zUTERL1AyHlboTOmtfl034XjbRgoQzMGhtaSBmK+HQqa5hMHb
wvyF75g9vz45+qxJRdJLZ+IcI17AYEPKOw39MrZ1HzD6Csgp37hITPqicyDZ+IYVzVAdKZl5phVp
g/9qKCYyG2V5mqzZR98dopAsPFcY79FpSxySlX83lJwqncSiA6nIxd9+IwXWOAIhx2lv9w8t5RlC
F+m5QGepkMO0GGYSfvDl6EpMYN5U9SM5Tbxlol2epiKbXhZFNh6/wPLgPBt3gI4msrdbU9EeA0Gg
CPsWlDXdP9iTwqZzb543WNWWbpuyJJ6bUFtsH7Alhg8MgFp3a0YPCKF16sjemS/i3jdQSwMEFAAC
AAgA14EaSRWvh4GLAAAAmwAAADkAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1wbGF5LXN0ZGVyci50eHRVVAkAA2XNwFdlzcBXdXgLAAEE9QEAAAQUAAAADcixCoMw
EADQvV9xP2BJJEZxa3EpdGqlS+lwJqcGYiIXpaRfX7fHK4XUhWiKUoPUrVStqs5KV9Dty/qgYIl7
JnorIWTZ1k1VN+IDtylEdmECE8PG0fduoQETQaINhgzGOwqHyOB+7OX1xGX1dN3HkbhzafWY75iJ
4YsJ0FqysEVASDmYmWNwP+LTH1BLAwQUAAIACADZgRpJ1sk666sAAAAHAwAAOwAcAGh0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXJlbW92ZS1zdGRlcnIudHh0VVQJAANp
zcBXac3AV3V4CwABBPUBAAAEFAAAAM3RsQ6CMBSF4d2nuC+AaUsphU3DYuKkxMU4lHLBJtCSFmLw
6eUBZIbt5J++5DBCRURkxARQkVOec3nMYgnF1A83tDX60iM+OSGU5anM4oS84NJa541tQTs7eteV
psdKBYSAI1Qz6M6gXRZqNS319LirfujwPDUN+sKEoVPzVc3o4aMCqLrGGkYHCsJs9ds7a77oD+wf
jdM1WpLKjWl8nSaybWnpbg9NyB5oP1BLAwQUAAIACADbgRpJtPeM0Z4AAADRAQAARgAcAGh0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlci1tb2RlLXN0
ZGVyci50eHRVVAkAA23NwFdtzcBXdXgLAAEE9QEAAAQUAAAAzc4xDoIwFIDh3VO8C2jaCgXZNCwm
TkpcjENpH9iktOQVYurp5QA66/bnnz7BuFyzci0kcFnxrMq3G8YKqOdhPKM3SA0h3jLGuKiKMi/k
7g7H3geyvgcd/ETBNXbAVkWEiBO0CbSz6JdCrebl7q8XNYwOD3PXIdU2jk6lk0pI8FQRlDFoYAqg
ICavHxS8fSGtxCcaZ99pJfstLfsH2htQSwMEFAACAAgAyYEaSahcBxGDAAAAwAAAAEYAHABodHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9Tb3VyY2VCdWZmZXItYWJvcnQtcmVhZHlTdGF0ZS1z
dGRlcnIudHh0VVQJAANKzcBXSs3AV3V4CwABBPUBAAAEFAAAAJ3MsQrCMBCA4b1PcaMu0pRQIYhQ
6uIgCA4K4hDTMz0IF0kuim9vfAXXn59vKB66HlRvlDZqDfjOSulViM4GSOISPmMSYn/Vbau6G2x2
eC9+ayAjTwfM2Xo8k8yjFfQxfQwsuISwbIa/ZWKSH3mqOkXe8yMauBxHcJEZndRWn5cNNDVfUEsD
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
nUCXWXOhihpFo4gHDdpZqaG57QiTa0A/sWYSOaEETNNbTsZCTv2Uq8W6Oq4AG10OlHT8Dbb3QGtl
sbl97q33NMTS9CMNRcla9AdV/2cZL6z6r/yMyZJ+xpdV0mW5Nv1N16ZLd236g3u/B1BLAwQUAAIA
CADPgRpJDtxUL+IAAACsAgAALQAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tZXJyb3ItYWJvcnQt
c3RkZXJyLnR4dFVUCQADVs3AV1bNwFd1eAsAAQT1AQAABBQAAAC1kUFLA0EMhc/2V+RoL7K7XRYc
RKjbQwsVBBEF8ZCdTadDp0mZySr+e2fFk95cPSbkfUneWw4OqgbKxpS1qS6B3lJZ1hdBLAaIaiOd
JKpn91wXRdW8wNWKusFdG0jE/S2lhI4eve5bVHIS3w2c8xDCfLb8Ndmz1xF5n+leeMM7MfB014IV
ZrKae3nmFYPvJ2xJpF/nb8W5PHGTRQcDWRhoElgxaiu8826IOF776Y8cT4HGao3cB4oGWrR76qEA
YuzyTujQHrKradpXD4ni6NnKWzU/2Dmf2dm3dBbFf+X+p+QPUEsDBBQAAgAIANCBGknPqXKDFwEA
APECAAA2ABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1lcnJvci1kb2VzLW5vdC1leGlzdC1zdGRl
cnIudHh0VVQJAANXzcBXV83AV3V4CwABBPUBAAAEFAAAANWOQUsDMRCF7/0Vc2wPu5tsQ61BhKVF
KiiUtUWh9JBupmkwm6xJtuq/N6XqVbwpc5k38+abV/UKygnQCaeMjwnga6CU5cY1woCPjcfO+ait
2jBCyskWrua469U1h4BW3mMIQuGjjoeZiKicf+cwtL0xo0H178n0T5C11fGEfEh07eyt3TsOT8sZ
NM5abGKaJc9RGC0Hmy9+TgnbwmK1Wtb40mOIsNdqEWP3Keda1tigPmKNoXM24EwYsxPNMwd/Xkg4
JH9S5z0wwmCI3jsPGS0vx9MR7FN/MvGioOVFTlJRPiWEFNJhyKyLGb7pEPO2Q/VTuCTnfdvdaCvM
ur6rbErYuoiVlClD4CDODXy/SmfJC703v0jxAVBLAwQUAAIACADQgRpJ1KSOEMQAAAAkAwAALAAc
AGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tbG9hZC10d2ljZS1zdGRlcnIudHh0VVQJAANXzcBXV83A
V3V4CwABBPUBAAAEFAAAAO2RsW4CMQyGZ3gKj+2CLtfTDRFCgmMAqYxVB9TBl5gQkTqnxCfUt29a
dWPriY3Rkv/vk/2vRwd1C6rVqtEvCuialWoWIRoMkMQkGmISz+7YVFXdfsByS/3oVhoyyYFyRkev
0bmysSmhi4YSDGTn6/+DBZN0kU/ejQnFR373cu7i5xDoZ9oh20BJQ4fmTBYqIMa+OKFHcyG2eYqc
5C1T2vMpbr0RfcPW8DSfPU8ysP173O9dKORi+ipcHkOYRn40co9GvgFQSwMEFAACAAgA0IEaSftW
BwXiAAAAbAMAAC8AHABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXBsYXktcHJvZ3Jlc3Mtc3RkZXJy
LnR4dFVUCQADWM3AV1jNwFd1eAsAAQT1AQAABBQAAADVkUFLA0EMhc/2V+RoL7K7LnsYRKjbQwUF
QUoF8ZCdTadDp5kyk1X675sVbx4E96LHhLwvLy+LwUHVQNmYsjbXFdBHLsv6KkSLAZLYRMeYxLN7
rYuiat7gZknd4G4NZOL+kXJGRxsvuxaFXEwnA5c8hDCfLX5N9uxlRD4r3Ue+52008PLUgo3MZEV7
OvOOwfcTtvx///Jl/yE6pxN3KtobUGGgSWDBJG3krXdDwtHtZz7xcAw0VivkPlAy0KLdUQ8FEGOn
O6FDu9dU87Sr1pnSmNnSWzHf2Pqf2cX8T/79J/IZUEsDBBQAAgAIANKBGklYIcTRgwAAAMAAAAA9
ABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5LXN0YWxsLWJlZm9yZS1tZXRhLWRhdGEtc3Rk
ZXJyLnR4dFVUCQADW83AV1vNwFd1eAsAAQT1AQAABBQAAACdzD0KAjEQQOF+TzGlNrKJIUUQYVkb
C0GwUBCLmB2zgTAj+VG8vfEKto/HN1QPUoPQRiizloDvLIRaRXY2Qiou4ZNTCeSvqu+lvsFmh/fq
twYy0nTAnK3HcyjzaAt6Th8DC6oxLrvhbzlQKD/y1PTAtKcHG7gcR3BMhK601p6XjWHqvlBLAwQU
AAIACADSgRpJX6RerLwAAACSAQAAKwAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcXVlcnktdXJs
LXN0ZGVyci50eHRVVAkAA1zNwFdczcBXdXgLAAEE9QEAAAQUAAAApZAxb8IwEIVn8itubJYqhiiD
VSFBGIpEx6pDxXCxL8bCnJF9Eeq/r4vYupHxSfe+T/c2k4NlB6rTqtWrDuiWlWpfQzQYIIlJdI1J
PLvvtmmW3RHedjRMbq0hk3xQzujoEJ0rF9tSOmsoxUC22jwPFkzSRx69mxKKj/zl5dTHyzXQX3pH
toGShh7NiSw0QIxDccKA5kxs8xw5yWemtOcx7rwR/Y+t4aVa1LMMbB/D3f9CIRfTT+HyFEJd/QJQ
SwMEFAACAAgA04EaSZ3i1OLvAAAApAQAACoAHABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlZGly
ZWN0LXN0ZGVyci50eHRVVAkAA13NwFddzcBXdXgLAAEE9QEAAAQUAAAAzZHBSsRADIbP7lPk6F6k
XUsLgwhr96CgIIgoiId0mp0ddkyWmVTx7Z2KN2/WoscZku9P8q0HB6saytqUlTmtgd5SWVYnQSwG
iGojHSSqZ/dUFcWqfoazDXWDOzeQiPsbSgkdPXjdtajkJL4bOOYhhOVi/WOyZ68j8i7TvfAVb8XA
420LVpjJav7LNa8YfD8hJZF+jX8tzuWKi9y0N5AbA00CK0ZthbfeDRHHaT/vIy+HQOPrErkPFA20
aHfUQwHE2OVM6NDu81XTtK3uE8XxZhtv1XxjZz+Lo+WkhP/nvZnLe/OX3pvZvTezef9N8gdQSwME
FAACAAgA04EaSWsifRTeAAAAUgIAACsAHABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXVzZXJhZ2Vu
dC1zdGRlcnIudHh0VVQJAANdzcBXXc3AV3V4CwABBPUBAAAEFAAAAKWRQUvEQAyFz+6vyNG9SLuW
CoMsrN2DgoIgoiAe0ml2dtgxWWZSxX9vKt4ED/aYkPe95GUzBli1ULeubtz5BdBHqevmLInHBFl9
pqNkjRxemqpata9wuaV+DGsHhXi4o1Iw0FPUfYdKQfKng1MeU1ouNv8mR446IR+MHoVveCcOnu87
8MJMXq1nM++Y4jDDpZD+rH8rIdjElYkODkyYaBZYMWsnvIthzDht+52PvB0TTdU18pAoO+jQ72mA
CoixN0/o0R8s1TLvqsdCecpsG726X2z7z+JkOcvh779/AVBLAwQKAAAAAADzgRpJAAAAAAAAAAAA
AAAAEAAcAGh0dHAvdGVzdHMvbWlzYy9VVAkAA5nNwFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIANKBGklehPRp5gAAAGIBAAAtABwAaHR0cC90ZXN0cy9taXNjL2NvcHktcmVzb2x2ZXMtdXJs
cy1zdGRlcnIudHh0VVQJAANczcBXXM3AV3V4CwABBPUBAAAEFAAAAHWNQUvDQBCF7/0Vc5JEpJOK
ogwlINpcFJVE2vN2M0lXkkzYnQj+exMbUQoyp/fe9+Zt8vwlJ8iMa7gEFTDeHtwHQxj2noMM3jJU
4uGg2hPi6vJmmYy3otskSbB1weIPF9BK25sQlu99vcCtNEM7mg9GDW52Be54/+gUi294UvfiGRsx
JXucd9FW+MS1sZ9jfnf0lrbvo+urJAaCoEadhZyrV/Xr+QfRaSWFfyMi69koR1a6oLB7y4gK9a6r
4ezit5Z50/LkHLEtW5U/g89SMpynExC0JKqGzqqTbr0XaSCa23EaL74AUEsDBBQAAgAIANOBGknt
e3RXwwAAAP4AAAA/ABwAaHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFtZS1kdXJpbmctcmVhZHlz
dGF0ZWNoYW5nZS1zdGRlcnIudHh0VVQJAANdzcBXXc3AV3V4CwABBPUBAAAEFAAAAE2OTWvCQBRF
9/6Ku2yhlpmYjhKkG1NXoUg/ViIyJE99mMyElxdL++s7QgteuIsLB+7JjHVTs5hmDtYVNi9m88cn
l6Mcu/6NQkPyIUTb3Bjjivkim2V2h43EnkS/0fKg4HDxLTc4RLm281rAGoO7/hYbUPsQoqKOQT0H
vH5W1f1ke/u6wzIF63K12VfcsVKD5xSs+fi3Sx7OK1+fKDlcOOnt30n/fQq8iCSLL2HlcEQc090V
xoFbeoDKGGqvBI34IYmTX1BLAwQUAAIACADTgRpJsQEbJcQAAAD+AAAAWwAcAGh0dHAvdGVzdHMv
bWlzYy9kZWxldGUtZnJhbWUtZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utd2l0aC1nYy1hZnRlci12
aWRlby1yZW1vdmFsLXN0ZGVyci50eHRVVAkAA13NwFddzcBXdXgLAAEE9QEAAAQUAAAATY5Na8JA
FEX3/oq7tFBlJglRhtKNqatQpB8rERmSp300mQkvL5b213eEFrxwFxcO3JMZWy7MepGVsKWzhctX
y8JmqKZ+eKHQkrwJ0b4wxpRutc7yzB6wkziQ6Dc6HhUcLr7jFqco1/ZeHawxmA+32IjGhxAVTQzq
OeD5va7vZvub1/yAhxRsq83uWHPPSi0eU7Dl89+uePzc+OaDksOFk97xlfTfx+FJJFl8CSuHM+KU
7q4wTtzRPVSm0HglaMQPSZz9AlBLAwQUAAIACADzgRpJFTU1knoAAAC8AAAAKgAcAGh0dHAvdGVz
dHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUCQADmc3AV5nNwFd1eAsAAQT1AQAA
BBQAAACNjkEOwyAMBO95hT9AIO2hFb8hxFUsGYyMkfr8EuUD1V5WO4fZLKURJyOpgKqiET7ECKdZ
i95vj9caZrb4DiH4Qj17xS5DM3b/7WxuT4ej0kTNDaV1bsBUEZ6AjAWrwU2XSeJdIcKoaZ8aE2BJ
x3+6Kn3k87qXLDEvP1BLAwQKAAAAAADrgRpJAAAAAAAAAAAAAAAAFAAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvVVQJAAOJzcBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACADNgRpJYtPM47cAAACS
AQAAVQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS12aWRl
by1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLXN0ZGVyci50eHRVVAkAA1LNwFdSzcBXdXgLAAEE9QEA
AAQUAAAApZCxCgIxDIZn7yky6iJ3cogUEfQcFHQUB3HItbEWayptDvHtreLmplsC+b+P/PPOwmgM
1VhVtcoD3VNV1UMfNHqIoiPdQhTH9lCXZTk5wnRJbWdnChLJllJCS5tgbb5Y5NBFQQ56MsX8d7Bg
lCbwydkuorjAeyfnJlxvnl7bCtl4igoa1GcyUAIxttkJLeoLsUn/yEl2ieKaT2HptKgvtoJ+0Rv8
ZWDzKe79FwrZEB+Zy533g+IJUEsDBBQAAgAIAM6BGkk8jU4x4QAAAKwCAABIABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLXZpZGVvLWxvY2FsaG9zdC1zdGRl
cnIudHh0VVQJAANTzcBXU83AV3V4CwABBPUBAAAEFAAAAM2RQUsDQQyFz/ZX5NheZFeWKoMIdXtQ
UBBEFMRDdjadDp0mZSar+O/NiicFQfbiLROS7715WQ0BTpZQL13dOCvordR1c5zEY4KsPtNBskYO
z01VVWcvcL6mbggXDgpxf0ulYKDHqNsWlYLkdwdzHlJazFb/kBw56oi8N3oUvuaNOHi6a8ELM3m1
ns28Yor9N5XTP/nXL/s3EoJNXNrSzoEtJpoEVszaCm9iGDKObj/zkf0h0fi6Qu4TZQct+i31UAEx
dqYJHfqdpVqm/eqhUB4zW0ev7gfb7jM7WkxS+P3uH1BLAwQUAAIACADOgRpJvgmjjuIAAACsAgAA
RwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS12aWRlby1y
ZWRpcmVjdC1zdGRlcnIudHh0VVQJAANUzcBXVM3AV3V4CwABBPUBAAAEFAAAAM2RQUsDQQyFz/ZX
5GgvsluWWgYR6vagoCCIKIiH7Gw6HTomZSar+O/NiicFQfbiMSH53svLegiwWEK9dHXjFqdAb6Wu
m5MkHhNk9ZkOkjVyeGqqqlo9w9mGuiGcOyjE/Q2VgoEeou5aVAqS3x0c85DSfLb+h+TIUUfkndGj
8BVvxcHjbQtemMmr9WzmFVPsv6ms/uRfv+xfSwg2cWFLewe2mGgSWDFrK7yNYcg4uv3MR14Oicbq
ErlPlB206HfUQwXE2JkmdOj3lmqZdtV9oTxmtole3Q+2/Wd2NJ+k8PvfPwBQSwMECgAAAAAA6IEa
SQAAAAAAAAAAAAAAACoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9VVAkAA4PNwFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAM2BGkkAAAAAAAAAAAAAAAAu
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL1VUCQADUs3A
V7jPwFd1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAzYEaSQAAAAAAAAAAAAAAADgAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvY2hpbGQtc3JjL1VUCQADUs3A
V7jPwFd1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAzYEaSYcoa3+EAAAAGgEAAFwAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvY2hpbGQtc3JjL2ZyYW1lLWFi
b3V0LWJsYW5rLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADUs3AV1LNwFd1eAsAAQT1AQAABBQAAADN
zDEKAjEQheF+TzGlNpJI2CKIsKyNhSBYKIhFzI7ZQJiRZKJ4e+Mt7B4/j2+oAdY96N5qY9vAd9Ha
rBJ7lyCLz/jkLJHC1SilzA02O7zXsLVQkKYDluICnqPMoxMMnD8WFlRTWnbDH8qRovzIU9Mj054e
bOFyHMEzEXpprX1eLsWp+wJQSwMEFAACAAgAzYEaSakuZl3XAAAA+AEAAEsAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hdWRpby1yZWRpcmVjdC1hbGxvd2VkLXN0
ZGVyci50eHRVVAkAA1LNwFdSzcBXdXgLAAEE9QEAAAQUAAAApZBBSwNBDIXP7q/IsV7EraW0gwh1
e1BQEEQUxEN2Jp0OHZMyk1X892bFmzf3lsB73+O9zRBhvoR26dqFs4M+a9suzrJ4zFDUFzpK0cTx
9WK9Xq3e4HJL/RCvHFTSe6oVI91JjKa4NtPBgRkzhWbzf7Bi0U54l+JQUJPwc9J9J+/HTON3gxwy
FQcd+j0FOAdi7C0TevQH4lCnhJM+VSq3vJNt8ur+sB3MmpPTSQkcfof76YVKUcqXcXnIeQo5cdIR
+Wh022ns4ODloQMvzOTH7UzzgTmF5htQSwMEFAACAAgAzYEaSVCwTNfmAAAAQwIAAEwAHABodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hdWRpby1yZWRpcmVjdC1hbGxv
d2VkMi1zdGRlcnIudHh0VVQJAANSzcBXUs3AV3V4CwABBPUBAAAEFAAAAKXQwUoDMRAG4LP7FHPU
y+LWWtogQt0eFBQEEQXxMJtM09A4U5JZxbc3UW+eZI8JmW/y/+vRw2wB3cJ0czM7B/rIXTdvo1iM
kNQmOkjSwP7lbLVaLl/h4oa3cmkgivflGrJi0ty2bbP+N7WhYfTFyqR3lDN6uv1Rr8rQ3kAZjOSm
wPVzvfA2+DGhBuGnoLte3g6R6uka2UVKBnq0O3JwCsQ4lJ0woN0Tuzwt1WOmVPvaBKvmj23guDk6
mbSB3W9x37lQyUv6LC6PMU6RAwet5EPRS081g4Hn+x6sMJOt3ZU37xiDa74AUEsDBBQAAgAIAM2B
GklMOLeOpwAAAIoBAABYABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvYmxvYi11cmwtZG9lcy1ub3QtbWF0Y2gtc291cmNlLXNlbGYtc3RkZXJyLnR4dFVUCQADUs3A
V1LNwFd1eAsAAQT1AQAABBQAAADdj70OgjAURnefoiMOUCk/KomDEk0cjCSMxJBrucFqpeS2mvD2
Yhz0GdzON53zVWGahXEm0kCk0Ykph3ewQyfrEl1BpkdyA7Oq7UBrbBgSrfxQzBcJ82471W7A4vF8
Rem2RIbqffcErRpw2EyZp34XOMZL8yCJOcgL8twQHrBR8CU/TFIRiHjGR7UzbujR8kLDgMRH2Yfq
9bsvkEyrDpkQy2hS/cOJF1BLAwQKAAAAAADQgRpJAAAAAAAAAAAAAAAARAAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMv
VVQJAANXzcBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACADQgRpJ5uAhSO8AAAAmAwAAeQAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1
cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3VyZS1hdWRpby12aWRlby1pbi1tYWluLWZyYW1lLXN0
ZGVyci50eHRVVAkAA1fNwFdXzcBXdXgLAAEE9QEAAAQUAAAAzVG7TgMxEOz5ii2hyJ2dWHfBXXQB
paBAp1BFFI5vEyzO9uEHBV/PJkSIIgkSRYTc7GN2ZuRZ8UpyISe8YPXtMyyWy8cW3zLGBBuz/dE2
AVXCuxB8aLy16JIEdNpnlzBgB8oB7pYSsguo/daZDxq/pDRAwDh4FxEEY1er84qEP7Rz07Wo0bxj
e7hvVN+vlX6VxLhfHOGH670NGPFxVdU3sKF6B5Jlycd1wehxORViUtKVz0FjLBOpFXYQv3mjdp7t
cG+c6p/ah5kjg9YnnHUdkUUJ6quAbyU6Iyzk0P/JxJRdOpJjiv8lkhO/cYFIPgFQSwMECgAAAAAA
0IEaSQAAAAAAAAAAAAAAAD0AHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS91c2VyQWdlbnRTaGFkb3dET00vVVQJAANXzcBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQU
AAIACADOgRpJx6rfANgAAAD4AQAAUwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9hbGxvdy1hdWRpby1zdGRlcnIudHh0VVQJAANU
zcBXVM3AV3V4CwABBPUBAAAEFAAAAKWQwUoDQRBEz9mv6KNewm5YggwSiJuDgoIQJELw0DvTmQwZ
u8NMr8G/d1a8ecseC6peUbUePCyW0CxN05rFHdAlN007j2IxQlKb6CxJA/t9W9d1+wH3G+oHvzKQ
SV8oZ/T0LN4Xx0MJnQyUYCRXra8HKybthA/BDwk1CO+CHjv5PEca1SOyi5QMdGiP5KAGYuxLJ/Ro
T8QuTyknfcuUnvggm2DV/GMbuKlmt5Ma2P0d97sLlbyk78LlIcYp5MBBR+S20MtP4wYD768dWGEm
O35XPF8Yg6t+AFBLAwQUAAIACADPgRpJ6sY3J7cAAACSAQAAUwAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9hbGxvdy12aWRlby1z
dGRlcnIudHh0VVQJAANWzcBXVs3AV3V4CwABBPUBAAAEFAAAAKWQsQoCMRBEa+8rttRG7vSwCCLo
WShoKRZisZesMRg3kuwh/r1R7Oy0HNh5j515Z2E0gWqiqlqNS6B7qqp66INGD1F0pFuI4tge6rIs
6yNMl9R2dqYgkWwpJbS0Cdbmi0UuXRTkoidTzH8HC0ZpAp+c7SKKC7x3cm7C9ebplVbIxlNU0KA+
k4HMZmyzE1rUF2KT/pGT7BLFNZ/C0mlRX2wF/aI3+MvA5jPc+y8UsiE+Mpc77wfFE1BLAwQUAAIA
CADQgRpJT17TA4MAAADAAAAAawAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYWxs
b3dlZC1zdGRlcnIudHh0VVQJAANXzcBXV83AV3V4CwABBPUBAAAEFAAAAJ3MPQoCMRBA4X5PMaU2
kmjYIoiwrI2FIFgoiEXMjnEgzEh+FG9vvILt4/ENNcCyB91bbexKA76z1mYRxbsIqfiET0mFOFyM
UspcYb3FWw0bCxl52mPOLuCJymN0BYOkj4UZ1xjn3fC3TEzlRx6bTsI7vouF82EEL8zoS2vteblI
U/cFUEsDBBQAAgAIAOWBGknTUSE93wAAAFICAABLABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8tcmVkaXJlY3QtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAN9
zcBXfc3AV3V4CwABBPUBAAAEFAAAAKWRT0sDQQzFz/ZT5NhepOuf0h1EaLcHBQVBRKF4yM6m06Fj
Umayit/erHgTPLjHhLzfS15WfYCzBVQLV126eQ30Uarq4jSJxwRZfaajZI0ctud1vVy+wtWG2j5c
OyjE3T2VgoGeo+4bVAqSPx1MuU9pNln9mxw56oB8NHoUvuWdOHh5aMALM3m1ns28Y4rdCJdC+rP+
nYRgE2sTHRyYMNEosGLWRngXQ59x2PY7H3k7JhqqG+QuUXbQoN9TB3MgxtY8oUV/sFTLuKueCuUh
s0306n6x7T+Tk9koh7///gVQSwMEFAACAAgA5YEaSbBuoPwAAQAA+wEAAEwAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxvd2VkMi1z
dGRlcnIudHh0VVQJAAN9zcBXfc3AV3V4CwABBPUBAAAEFAAAAKWQS2vDMBCEz/Wv2GNzaJCSNLFF
CSTOoYUWSkLpweSwlleyiSoFPejj11cN7aVX721hZ76dafhS8FvBqilniyPc5YF6v9keYJ0HlEmh
fybbDVbvyRAGOlAU0LCPlcKy4mzF1IwdYWucPAGDHgNYZ2++yDvwpEC6ZCPMi03SMFvCHw7oPXC+
mGYZGvBRejo7HzOmmVdVWeZXdtQmvRYQKD5RCKjp0WmdLy4sAVloqBtjHNHH2lk16OQxDs6+DrGv
3dvZ0M92j7Yz5AXUKHvqcjqy2GYmtChPuZQwLtVLIP9gldsNMlf631vAdXE1GUWw3W9xl1wYSTv/
mX1tMmZSfANQSwMEFAACAAgA5YEaSdNRIT3fAAAAUgIAAGYAHABodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby13aXRoLWh0dHAtdXJsLWFsbG93ZWQtYnktY3Nw
LW1lZGlhLXNyYy1zdGFyLXN0ZGVyci50eHRVVAkAA33NwFd9zcBXdXgLAAEE9QEAAAQUAAAApZFP
SwNBDMXP9lPk2F6k65/SHURotwcFBUFEoXjIzqbToWNSZrKK396seBM8uMeEvN9LXlZ9gLMFVAtX
Xbp5DfRRquriNInHBFl9pqNkjRy253W9XL7C1YbaPlw7KMTdPZWCgZ6j7htUCpI/HUy5T2k2Wf2b
HDnqgHw0ehS+5Z04eHlowAszebWezbxjit0Il0L6s/6dhGATaxMdHJgw0SiwYtZGeBdDn3HY9jsf
eTsmGqob5C5RdtCg31MHcyDG1jyhRX+wVMu4q54K5SGzTfTqfrHtP5OT2SiHv//+BVBLAwQUAAIA
CADlgRpJClYg8YgAAADAAAAAWQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3dvcmtlci1ibG9iLWluaGVyaXRzLWNzcC1ibG9ja3MtZXZhbC1zdGRlcnIudHh0VVQJ
AAN+zcBXfs3AV3V4CwABBPUBAAAEFAAAAJXMuwrCMBSA4b1PcUZdpPFSmlCEUhcHQXBQEIeYHuOB
cCK5KL69cXN1/fn5+mxh3oBolFipWgK+ohDLmfNGOwjJBHz4kIjteSFl216g2+A127WCiDzuMEZt
8UjpPuiE1oe3ggln56ZV/yuL+g+ZmNKXPBSdPG/55hWc9gMYz4wmlVaep3Y0Vh9QSwMEFAACAAgA
54EaSWOqrGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAOBzcBXgc3AV3V4CwABBPUBAAAEFAAAAC2N
QQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3j
yJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnS
js2vMUSbguxqTdTxmr5QSwMEFAACAAgA6IEaSWOqrGyCAAAAqAAAAFIAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMt
Mi1zdGRlcnIudHh0VVQJAAODzcBXg83AV3V4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mFXhA7vaT4
FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFLdVR/
/vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxqTdTxmr5Q
SwMEFAACAAgAzoEaSRIdlLaEAAAAGgEAADUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9z
dC1yZWRpcmVjdC0zMDEtc3RkZXJyLnR4dFVUCQADVM3AV1TNwFd1eAsAAQT1AQAABBQAAADNzLEK
wjAQgOG9T3GjLtKUUEoQodTFQRAcFMQhpmcMhDtJLopvb3wL15+fbyweuh5Ub5Q23QD4zkrpVWRn
IyRxCZ+cJJC/6LZthyust3grfmMgI817zNl6PAV5TFbQc/oYWFCJcdmMfygHCvIjj1UPTDu6s4Hz
YQLHROiktvq8bAxz8wVQSwMEFAACAAgA1oEaSYbfZ3+2AAAA3AEAADoAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwtYWxsb3dlZC1zdGRlcnIudHh0VVQJAANkzcBXZM3A
V3V4CwABBPUBAAAEFAAAAOXPvwrCQAwG8N2nyCQtqCc4iLeJ1kVEaP0z37WpHFyTkt4pvr2t6OQj
uOUjvw+SLM+PuYYzGesRAkOIQsAEjkrBBikYDyYGnt5NGWMDyRyIAxgCFGFJR+rCPjbYqa0JRmXX
Ql3R7l1QBUcpcUgbFlQHrqLv2QNt1UtrOnxXhmFWtm2yWK5S0GCZPXxKWn+F1i1KzdIcW6Q1VRcU
Vz+TAU9+dTacBuN+c9ppXQRxdINxOsr+6tsXUEsDBBQAAgAIANaBGkko2Xk2sAAAAO4AAAAyABwA
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLXN0ZGVyci50eHRVVAkAA2TN
wFdkzcBXdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXge79iTqFQbdAh2luUXSIELT3v6hjCOiPjbtG/
T6NO3ebxvgeTZFmaabiRsQ7BM/ggBEzQUiXYIXnjwATPy4epQuggWgOxB0OAIizxTBXsQoeDOhpv
VFLmqkR7br3KOUiFUzqwoLpwHdzInmjrUVoz4GcyHauq76PNdheDBsvs4DvS+ie07lEali7tkfZU
Fyht84omvPjXyfQazMfmetI699LSHebx7A1QSwMEFAACAAgA2YEaSa6bHwm6AAAAkgEAAD0AHABo
dHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNvdXJjZS1mcm9tLXJlbW90ZS1zdGRlcnIu
dHh0VVQJAANqzcBXas3AV3V4CwABBPUBAAAEFAAAAKWQMYsCMRCF69tfMaU2siurSDgOvN1CwSvF
QixmkzGGjRNJZpH790axs9PywbzvY95ysDCdQzVXVa1mJdA1VVU98UGjhyg60iVEcWz3dVmWiwN8
t9QN9kdBIvmjlNDSJlibL35zqVeQi55MsXwfLBilCXx0dogoLvDOyakJ54une1ohG09RQYP6RAYy
m7HLTuhQ98QmfSIn2SaKaz6G1mlRL2wFo+Jr/JGBzXO4x18oZEP8z1wevB8XN1BLAwQUAAIACADa
gRpJ76lX3oQAAADAAAAAOgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc3JjLWZy
b20tcmVtb3RlLXN0ZGVyci50eHRVVAkAA2vNwFdrzcBXdXgLAAEE9QEAAAQUAAAAncw9CgIxEEDh
fk8xpTaykbhIEGFZGwtBsFAQi5idjQNhRvKjeHvjFWwfj68vHpYdqM4obVYK8J2U0osgzgaI2UV8
SszE/qrbtl3fYLPDe/FbAwl5PGBK1uOZ8mOwGb3Ej4EZlxDmTf+3TEz5R56qTsJ7nsTA5TiAE2Z0
ubb6vGygsfkCUEsDBAoAAAAAANKBGkkAAAAAAAAAAAAAAAAhABwAaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvVVQJAANbzcBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACADSgRpJ
Yw5jAjABAACnBAAATgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJl
LWF1ZGlvLXZpZGVvLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUCQADW83AV1vNwFd1eAsAAQT1
AQAABBQAAADNlE9LAzEQxc/2U8xRD5Zud7e2QQrt9qCgUFpEofSQzc5mQ+OkJFn/fXpni168lqpz
C8z8XuY9mE0yEkkm0qyfDtMtXHNBsZrN1zDlgtq2oVkiVYb0Ci3KgGuMAjaDt6saJ1mpxpnMB1uY
W6d2MIBGBiBHlx/oHXisQbmWIiS9WathOIJvOcDXkCRZn8ekBR+Vx73zkWU26WQyHvFXFli2eiog
YLzHEKTGO6c1dxy0BPCgxeoYcJQ+Fo5qo1svo3H0aGJTuOe9xe51I6my6AUUUjVY8XZIsmRNKKXa
sSnhuK0eAvpbqt3CKLb0J1vAee/s4igFqr6MO+wlI2rn35lLrbW/R85PlXX+l1nnJ886/yeJnIps
yMQOuWY6J9C5I+BpWfDJIELVpcI9L9KaqvcJUEsDBBQAAgAIANKBGkn+F2kXhAAAAMAAAABCABwA
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtY3NzLWluLWlmcmFtZS1z
dGRlcnIudHh0VVQJAANbzcBXW83AV3V4CwABBPUBAAAEFAAAAJ3MsQrCMBCA4b1PcaMuQmwNNohQ
6uIgCA4K4hDTazwIF0kuim9vfQXXn5+vKx6WGpQ2qjH1CvCdlWoWITobIIlL+IxJiP21btu1vsFm
h/fitwYy8nDAnK3HM8mjt4I+po+BGZcQ5lX3t0xM8iNPk06R9zxGA5djDy4yo5OpTc/LBhqqL1BL
AwQUAAIACADkgRpJKNl5NrAAAADuAAAAPwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvc3RvcmFnZS1i
bG9ja2luZy1sb29zZW5lZC13ZWJzcWwtc3RkZXJyLnR4dFVUCQADe83AV3vNwFd1eAsAAQT1AQAA
BBQAAABlzkELgkAQBeB7v2JOoVBt0CHaW5RdIgQtPe/qGMI6I+Nu0b9Po07d5vG+B5NkWZppuJGx
DsEz+CAETNBSJdgheePABM/Lh6lC6CBaA7EHQ4AiLPFMFexCh4M6Gm9UUuaqRHtuvco5SIVTOrCg
unAd3MieaOtRWjPgZzIdq6rvo812F4MGy+zgO9L6J7TuURqWLu2R9lQXKG3ziia8+NfJ9BrMx+Z6
0jr30tId5vHsDVBLAwQUAAIACADkgRpJKNl5NrAAAADuAAAAQwAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvc3RvcmFnZS1ibG9ja2luZy1zdHJlbmd0aGVuZWQtd2Vic3FsLXN0ZGVyci50eHRVVAkAA3zN
wFd8zcBXdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXge79iTqFQbdAh2luUXSIELT3v6hjCOiPjbtG/
T6NO3ebxvgeTZFmaabiRsQ7BM/ggBEzQUiXYIXnjwATPy4epQuggWgOxB0OAIizxTBXsQoeDOhpv
VFLmqkR7br3KOUiFUzqwoLpwHdzInmjrUVoz4GcyHauq76PNdheDBsvs4DvS+ie07lEali7tkfZU
Fyht84omvPjXyfQazMfmetI699LSHebx7A1QSwMEFAACAAgA5YEaSXA0ltH0AAAAmAQAADkAHABo
dHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1jYWNoaW5nLXN0ZGVyci50eHRV
VAkAA37NwFd+zcBXdXgLAAEE9QEAAAQUAAAA3ZJBSwMxEIXP9lfMsV4kW2rRIELdHhQUBBEF6WE2
maahcVKSWcV/b1a8eZC4evE48OZ7zLy37B3MFtAsdHOs1SnQa26a+VGIBgMkMYn2MYln9zRXSp2s
4WxFXe/ONWSSG8oZHV1H54rioiztNJTFQHay/DlYMEkbeeNdn1B85Acv2zY+7wMN0yWyDZQ0tGi2
ZEEBMXbFEzo0O2Kbx5iT3GdKV7yJK29Ef2FrmE4ODkc5sP183MddKORieitc7kP4B+RGVZA9exmQ
d4Vesh3+ruHxtgUTmckMeRfNCwZvR7jUdLUO/Mtdrb2qvquVDn+V+3fkd1BLAwQUAAIACADlgRpJ
D4WxKxMBAADnAQAAPwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tcG9zdGVyLWNyb3NzLW9y
aWdpbi1jcmFzaDItc3RkZXJyLnR4dFVUCQADfs3AV37NwFd1eAsAAQT1AQAABBQAAACdjk9PAjEQ
xe98ijnCwd12XRAaY7KBGEw0IStGE8KhdIelsUzX/sHw7S0BvRrNXObNvHnzq2ILxQj4SPCh4Azw
03NeZsYqacAF5bCzLmhqVyVjbLyG2xluYnsnwCM1T+i9bPFVh91UBmytOwroUzRm0Kv+naxJh1Pk
c0rXlh5oawW8LaagLBGqkGbJc5BGN73Vd342ZJM1zJfLRY0fEX2ArW7nIXQXOdNNjQr1AWv0nSWP
U2nMRqp3Ae68aGCX/Emd91CyEvronHVwxYvJ9XgA29SfTCLPeXGTsVRcjBN/7lFFp8MxJ0voo9pl
+678DS/JWdx395qkeakfK0qMexuwappE4QXIcwM/z9JZ8kJ05k8cX1BLAwQUAAIACADrgRpJYEtm
EJEAAAD7AQAARQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQt
c2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUCQADic3AV4nNwFd1eAsAAQT1AQAABBQAAADtjjEO
gzAMRXdO4QuEBJZWmWHo0p4BBVMimSSynQpuXzr0Bh2rv76v90LeSqRJY06AzJk9LJEQVtXire36
S+vOdf7qnLOCoXLUw+4iZhjvt3Ewu5CZc6gbJjVf4MHxGVO7bwQUE0IPSPghQPQglBVRm/PpX8hy
uj3kRAd0rYMFJ62MAhMjSC0ls+LchH/oj0PfUEsDBAoAAAAAANKBGkkAAAAAAAAAAAAAAAATABwA
aHR0cC90ZXN0cy9zdG9yYWdlL1VUCQADXM3AV7jPwFd1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
0oEaSSjZeTawAAAA7gAAAEUAHABodHRwL3Rlc3RzL3N0b3JhZ2UvY2FsbGJhY2tzLWFyZS1jYWxs
ZWQtaW4tY29ycmVjdC1jb250ZXh0LXN0ZGVyci50eHRVVAkAA1zNwFdczcBXdXgLAAEE9QEAAAQU
AAAAZc5BC4JAEAXge79iTqFQbdAh2luUXSIELT3v6hjCOiPjbtG/T6NO3ebxvgeTZFmaabiRsQ7B
M/ggBEzQUiXYIXnjwATPy4epQuggWgOxB0OAIizxTBXsQoeDOhpvVFLmqkR7br3KOUiFUzqwoLpw
HdzInmjrUVoz4GcyHauq76PNdheDBsvs4DvS+ie07lEali7tkfZUFyht84omvPjXyfQazMfmetI6
99LSHebx7A1QSwMECgAAAAAA44EaSQAAAAAAAAAAAAAAABoAHABodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L1VUCQADec3AV7jPwFd1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA4oEaSX5/7RexAAAA
AQEAAEEAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUt
YXN5bmMtc3RkZXJyLnR4dFVUCQADeM3AV3jNwFd1eAsAAQT1AQAABBQAAABljbEKwkAQRPt8xVai
oB42ggdWJoJYKImYQiwuySqHudtjs1H8ew0EVCxneDMvSdNdqmHj76a2FazIC3qZHJ4Bx2D7Nhg2
DgUZ3rnFaaSOVLcOGxUbMSrJM5VjsbWiMmq5xC6tiFGF2siF2CmP8iC+qb3hBqve0kmmZQjD2WI+
Ag0FUQ39VOvQoV/ksCTfCOSHtdaZsPVXGIwhxRLtHbkjYDCC00+x/NzFrXPPP/05egFQSwMEFAAC
AAgA44EaSX5/7RexAAAAAQEAAEAAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxv
Yi1jb250ZW50LXR5cGUtc3luYy1zdGRlcnIudHh0VVQJAAN5zcBXec3AV3V4CwABBPUBAAAEFAAA
AGWNsQrCQBBE+3zFVqKgHjaCB1YmglgoiZhCLC7JKoe522OzUfx7DQRULGd4My9J012qYePvprYV
rMgLepkcngHHYPs2GDYOBRneucVppI5Utw4bFRsxKskzlWOxtaIyarnELq2IUYXayIXYKY/yIL6p
veEGq97SSaZlCMPZYj4CDQVRDf1U69ChX+SwJN8I5Ie11pmw9VcYjCHFEu0duSNgMILTT7H83MWt
c88//Tl6AVBLAwQKAAAAAADUgRpJAAAAAAAAAAAAAAAAIgAcAGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3Qvd29ya2Vycy9VVAkAA1/NwFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANSBGkkJ
I3xrhAAAAMAAAABVABwAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL2FjY2Vzcy1j
b250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUtc3RkZXJyLnR4dFVUCQADX83AV1/NwFd1
eAsAAQT1AQAABBQAAACdzLEKwjAQgOG9T3GjLtLUECSIUOriIAgOCuIQ0zMGwp0kF8W3t76C68/P
19cAnQFlrNJ2uQJ8F6X0IrF3CbL4jE/OEilcdNt25grrLd5q2FgoSOMeS3EBT1EegxMMnD8WZlRT
mjf933KkKD/yOOmRaUd3tnA+DOCZCL1MbXpeLsWx+QJQSwMEFAACAAgAZ4EaSVsEWA6iBQAATRAA
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
AAAAAAAAAAAAAC8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL1VUCQADtM3AV7jPwFd1eAsAAQT1AQAABBQAAABQSwMECgAAAAAABYIaSQAAAAAAAAAAAAAA
AEAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvVVQJAAO6zcBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAWghpJAAAA
AAAAAAAAAAAATwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9VVAkAA9zNwFe4z8BXdXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAAKCGkn0TWK78wAAAJcFAABnABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L2V2ZW50X2NhbnBsYXktc3RkZXJyLnR4dFVUCQADtM3AV7TNwFd1eAsAAQT1AQAABBQAAADt08FK
AzEQBuCz+xRztJel25bCBhHq9tBCBUFEQTzMJtM0NE5KMqv49ibqzZP0oEghl4TMl8xPshgsTObQ
zFUe4ynQa2qaWe2DRg9RdKRDiOLYPk7btp08wcWat+FSgQ/W5mVIglFSXdfV4sfUkvrBZiuRXFNK
aGnzqV7lor2CXOjJHAOXy3WBt84OEcUFvney68LzwVOZrZCNp6igQ70jA2Mgxj6fCT3qPbFJx3V1
lyiWvJZOi/pmKzivzkan3H4hNzZfwX30hUI2xLfs8uD9f5BnJ/nPyY6dFPI26/kPlfet4OGmAx2Y
SZd/lfe8oHemegdQSwMEFAACAAgAA4IaSXLyh3LrAAAApAQAAHIAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvZXZlbnRfY2FucGxheV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA7XNwFe1zcBXdXgL
AAEE9QEAAAQUAAAA7ZPBSgMxEEDP9ivm2F5Kt62FDVJotwcFBUGKgvQwm52moXFSklnFv3dWvHmq
exBEyCVh5s3MC7NqHUwXUCyMnskc6C0XxXwcosUASWyiU0zi2T3PyrKc7uBqQ3XrlgYycXNHOaOj
Ry+HCoVcTO8GhtyGMBqsfkz27KVDPijdR77hfTTwdF+BjcxkRd805hWDb3pUySRf7d9G5zRirUlH
A5oYqBdYMEkVee9dm7Dr9tNPfDkF6m7XyE2gZKBCe6AGJkCMtdaEGu1RreZ+U20zpc7Zxlsx39j6
P4OL0b+3X/B2zr5c/nHyOTv+AVBLAwQUAAIACAADghpJRaB8Mu4AAAAMBgAAbgAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQJAAO2zcBXts3A
V3V4CwABBPUBAAAEFAAAAO2UwUoDQQyGz/YpcrQX6da6sEMp1O1BoYIgoiA9ZGfT6dAxU2ayim9v
Vrx50oLsoZDLhOTLJD/JsnMwLaEojdrkCug9F8XsIkSLAZLYRIeYxLN7uayqarqB+Yqazi0MZOL2
jnJGR09edjUKuZg+DJxzF8J4tPwz2bOXHvmgdB/5lrfRwPN9DTYykxX1acwbBt8eUSWTfH9/HZ3T
iGtN2hvQxEDDBAsmqSNvvesS9mP4Gnx8PQTqXzfIbaBkoEa7oxYmQIyN1oQG7V7lysd19Zgp9WKs
vBXzg63Cj87Gp/b+f19O5CGSy0GQf3NLPwFQSwMEFAACAAgABIIaSX9/fkTrAAAApAQAAHkAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxheXRocm91Z2hfbm9hdXRvcGxheS1zdGRl
cnIudHh0VVQJAAO3zcBXt83AV3V4CwABBPUBAAAEFAAAANWTwUoDQQyGz/YpcrQX6VZZ2EGEuj0o
KAgiCuIhO5tOh45Jmckqvr1Z8eZJS8HCXDIkX/78IYshwLyGqnb2ZjXQe6mqs5MkHhNk9Zm2kjVy
eD5tmmb+AudL6oZw4aAQ97dUCgZ6jLpuUSlI/nBwzENK08niz+TIUUfkvdGj8DWvxMHTXQtemMmr
/VnOG6bY79ClkH7Lv5EQLOPSijYOrDDRTmDFrK3wKoYh46j2yx953SYaoyvkPlF20KJfUw8zIMbO
ekKHfmOuln85FelDoTwuYxm9uh+ibfGTo+kB+7bv8fZ2L4dI/s2NfwJQSwMEFAACAAgABIIaSS2C
ZOrrAAAADAYAAGoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkZGF0YS1zdGRl
cnIudHh0VVQJAAO4zcBXuM3AV3V4CwABBPUBAAAEFAAAAO2UwUoDMRBAz/Yr5theSreVlg0i1O2h
goIgoiAeZrPTNDSdlGRW8e+dFW/eXMXLQi4JM29mXkjWrYP5Eoql0TVbAb3lojifhmgxQBKb6BST
eHbPi7Is5y9wsaG6dZcGMnFzSzmjo0cv+wqFXEzvBsbchjAZrX9M9uylQ94r3Ue+5l008HRXgY3M
ZEXPNOYVg296VMkkX+3fROc04kqTDgY0MVAvsGCSKvLOuzZh1+2nn3g8Bep2W+QmUDJQod1TAzMg
xlprQo32oFZzv6keMqXO2cZbMd/Yej+js8ng7R+8/dV7GcgD+Tf+0g9QSwMEFAACAAgABIIaSc2e
uRHpAAAApAQAAHUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkZGF0YV9ub2F1
dG9wbGF5LXN0ZGVyci50eHRVVAkAA7jNwFe4zcBXdXgLAAEE9QEAAAQUAAAA7ZPBSgQxDEDP7lfk
6F5kZ5XFKSKsswcFBUFEQTxkOtlu2ZosbUbx782IN086iAhCLy3JS/JKln2A+QKqhbMzOwZ6KVV1
dJDEY4KsPtNOskYOD4d1Xc8f4WRFbR9OHRTi7opKwUB3UTcNKgXJrw72uU9pOll+mxw56oC8MXoU
vuC1OLi/bsALM3m1N4t5xhS7EVUK6Uf7lxKCRZxZ0taBJSYaBVbM2givY+gzDt2++5GnXaLhdo7c
JcoOGvQb6mAGxNhaTWjRb81qGTfVbaE8OFtFr+4T2/5nsjf99/YL3n5qX/4i+Ss7/gZQSwMEFAAC
AAgABYIaSQC0YjvpAAAApAQAAG4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVk
bWV0YWRhdGEtc3RkZXJyLnR4dFVUCQADuc3AV7nNwFd1eAsAAQT1AQAABBQAAADtk0FLA0EMhc/2
V+RoL9KtUthBhLo9VFAQRBTEQ3Y2nQ6dJmUmq/jvzYo3by5CD8JcZki+l7zHLPsA8wVUC2dnVgO9
l6q6OEviMUFWn+kgWSOHl/O6ruevcLmitg9XDgpxd0elYKCnqNsGlYLkDwen3Kc0nSx/TY4cdUA+
GD0K3/BGHDzfN+CFmbzam9W8YYrdCJVC+j3+rYRgFdfWtHNgjYlGgRWzNsKbGPqMw7Rf/sj+kGi4
rZG7RNlBg35LHcyAGFvThBb9zlwt47Z6LJQHz1bRq/vBtnwmJ9NRCn+V+38ix5fIMfzxT1BLAwQU
AAIACAAGghpJeOBIaegAAACkBAAAeQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2Fk
ZWRtZXRhZGF0YV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA7vNwFe7zcBXdXgLAAEE9QEAAAQU
AAAA7ZNBS0MxDIDP7lfkuF3EN8fgFRHm28HBBoKIgnjI68u6si4dbZ7ivzcVb570ISIIvbQkX5Kv
ZNE7mM6hmptyzoBeclXNTkO0GCCJTXSMSTy7x/O6rqdPcLGktneXBjJxt6Gc0dG9l12DQi6mVwNj
7kOYjBbfJnv2UpC3SveRV7yNBh5uGrCRmazom8Y8Y/DdgCqZ5KP9dXROI640aW9AEwMNAgsmaSJv
vesTlm7f/cTDMVC5XSN3gZKBBu2OOlA2Y6s1oUW7V6t52FR3mVJxtvRWzCe2/s/oZPLv7Re8/dS+
/EXyV3b8DVBLAwQUAAIACAAGghpJLI4OD+sAAACkBAAAaQAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9ldmVudF9sb2Fkc3RhcnQtc3RkZXJyLnR4dFVUCQADvM3AV7zNwFd1eAsAAQT1AQAABBQAAADt
k8FKA0EMhs/2KXJsL+KuUthBhLo9KCgIIgriITubTodOkzKTVXx7Z8STnpYe7KGQy4Tky59/yGJw
UM+hmpsSFdBHqqqL0yAWA0S1kXYS1bN7PW+apn6DyyV1g7sykIj7e0oJHT17Xbeo5CR+GpjyEMJs
sjhAsmevBfmY6V74lldi4OWhBSvMZDXncs07Bt//mlKP0q8/8u/EuVxxnZs2BnJjoL3AilFb4ZV3
Q8Si9tsf2e4CldcNch8oGmjRrqmHMyDGLs+EDu0mu5r22+opUSyeLb1V84ed/2dyMjv69g++jbmX
wyCPucQvUEsDBBQAAgAIAAeCGklJyrjt7QAAAKQEAAB0ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L2V2ZW50X2xvYWRzdGFydF9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA73NwFe9zcBXdXgLAAEE
9QEAAAQUAAAA3ZPBSgNBDIbP9ilytBdxt1LYQYS6PVRQEEQUxEN2Np0OnWbKTFbx7c2IJz2tIqgw
lwzJlz9/yGJwUM+hmpvyaqDnXFUnRyFaDJDEJtrHJJ7dw6xpmvoRTpfUDe7MQCburyhndHTnZdOi
kIvpxcAhDyFMJ4svkz17KcgbpfvIF7yOBu6vW7CRmazon+Y8YfD9hy6zUfrlXf5ldE4zzrVoa0AL
A30LLJikjbz2bkhY1L75E3f7QCVaIfeBkoEW7YZ6OAZi7LQndGi36mr+lVOR3GZKZRlLb8V8Eq2L
nxxM/7BvPz3eqHv57+QxN/4KUEsDBBQAAgAIAAeCGknWdCPA7wAAAAwGAAB8ABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2NhbnBsYXlfY2FucGxheXRocm91Z2gtc3RkZXJyLnR4
dFVUCQADvs3AV77NwFd1eAsAAQT1AQAABBQAAADtlMFKAzEQhs/2KeZoL+K2pbBBhLo9KCgIIgri
YTY7TUPjpCSzim/vRDzpaa3gZSGXhJlv/vnDzKp3MFtCtTTlzIHeclUtTkK0GCCJTbSPSTy7p3ld
17NnOFtT27tzA5m4u6Gc0dGDl22DQi6mdwPH3Icwnax+TfbspSDvlO4jX/EmGni8bcBGZrKibxrz
isF336osBumXL/nX0TmNuNCknQFNDHQQWDBJE3njXZ+wqP30J77sA5XbJXIXKBlo0G6pg1MgxlZr
Qot2p67mw7q6z5SKZ2tvxfxg6/9Mjqajb//g25B5Gckj+S/IQ3bpB1BLAwQUAAIACAAIghpJq3F3
5O8AAAAMBgAAdQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9vcmRlcl9jYW5wbGF5X3Bs
YXlpbmctc3RkZXJyLnR4dFVUCQADwM3AV8DNwFd1eAsAAQT1AQAABBQAAADtlMFKBDEMhs/uU+To
XsRZ14UpIqyzBwUFQURBPGQ62W7Zmi5tRvHtTcWTnsYVvAz00pJ8+fOXZNk7mC2gWphy5kBvuarm
RyFaDJDEJtrFJJ7d00ld17NnOFtR27tzA5m4u6Gc0dGDl02DQi6mdwOH3IcwnSx/TfbspSDvlO4j
X/E6Gni8bcBGZrKibxrzisF336qcDtIvX/Kvo3MacaFJWwOaGGgvsGCSJvLauz5hUfvpT3zZBSq3
S+QuUDLQoN1QB8dAjK3WhBbtVl3N+3V1nykVz1beivnB1v+ZHExH3/7BtyHzMpJH8l+Qh+zSD1BL
AwQUAAIACAAJghpJkGnbkO0AAABmBgAAfwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9v
cmRlcl9sb2FkZWRtZXRhZGF0YV9sb2FkZWRkYXRhLXN0ZGVyci50eHRVVAkAA8HNwFfBzcBXdXgL
AAEE9QEAAAQUAAAA7ZTBSgMxEIbP9inmaC/iVqlsKIW6PSgoCCIVpIfZ7DQNjTMlmVV8e7OlN0+y
FTws5JIw8+XPF5JF62AyhWJqDgPoMxXF9UUQiwGi2kh7ierZvV2VZTlZw2xJdevmBhJx80gpoaOV
122FSk7il4FzbkMYjxb/kOzZa4d8znQvfM8bMfD6VIEVZrKa13LNBwbf9Mqvx/gP4lyuuM1NOwO5
MVAvsGLUSnjjXRuxS3vwI+/7QN3sDrkJFA1UaLfUwCUQY533hBrtLltN/U71kih2zpbeqvnBzvcz
OhsP3k7i7ebP3stAHsinIP/mL/0GUEsDBBQAAgAIAAmCGkmxyE7/7gAAAAwGAAB4ABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRzdGFydF9wcm9ncmVzcy1zdGRlcnIudHh0
VVQJAAPCzcBXws3AV3V4CwABBPUBAAAEFAAAAO2UTUsDQQyGz/ZX5Ggv4rZS3UGEdntQUBBEFMRD
djadDh2TMpNV/PfOiCc9VXvwsDCXDMmTj5dk3juYzKCamfJOgd5SVZ0cBbEYIKqNtJWont3TtK7r
yTOcL6nt3YWBRNzdUEro6MHrukElJ/HdwCH3IYxH81+TPXstyLtM98JXvBIDj7cNWGEmq/kv+7xi
8N23LGc71a9f5V+Lc9ljkYM2BnJgoP8JVozaCK+86yOWMXwOXl62gYp1idwFigYatGvq4BiIsc05
oUW7yXKlv3V1nygWMZbeqvnBzsKPDsZDe/vZl4E8kPdB3uWWfgBQSwMEFAACAAgACoIaSZqqZNDw
AAAAZgYAAGUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGF1c2Utc3RkZXJyLnR4dFVU
CQADw83AV8PNwFd1eAsAAQT1AQAABBQAAADtlMFKBDEMhs/uU+ToXsRZZXGKCOvsQUFBEFGQPWQ6
2W7ZmixtRvHtbcWTnoYV9DDQS0vy5c9fkkXvYDaHam7KOQN6S1V1ehTEYoCoNtJOonp2zyd1Xc9W
cL6ktncXBhJxd0spoaNHr5sGlZzEdwOH3IcwnSz+Idmz14K8z3QvfM1rMfB014AVZrKa33LMKwbf
fatSD9KvX/JvxLkccZmTtgZyYqC9wIpRG+G1d33EovbTH3nZBSq3K+QuUDTQoN1QB8dAjG2uCS3a
bXY17dfVQ6JYPFt6q+YHO//P5GA6+vYHvg2Zl5E8kn+DPGSXfgBQSwMEFAACAAgACoIaSR6hzLXq
AAAA/gQAAHAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGF1c2Vfbm9hdXRvcGxheS1z
dGRlcnIudHh0VVQJAAPEzcBXxM3AV3V4CwABBPUBAAAEFAAAAO2TTUsDQQyGz/ZX5Ggv4q6lsIMU
6vagUEEQURAP2dl0OnTMlJms4r83I17EU9FDKYVcEpInHy+ZDw7qKVRTU6wBes9VNTkL0WKAJDbR
Nibx7J4vmqapX+ByQd3gZgYycX9LOaOjRy/rFoVcTB8GTnkIYTya7yHZs5eCvFe6j3zDq2jg6a4F
G5nJisY05w2D7392qc93ml++x19G5zTjSos2BrQw0H6CBZO0kVfeDQnLGb4OH1+3gYp3jdwHSgZa
tGvqQdmMnfaEDu1G5cp/2+ohUypiLLwV84utwo9Oxsf1/uVfDp68y49/AlBLAwQUAAIACAALghpJ
J9m1ou8AAAAMBgAAZAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5LXN0ZGVyci50
eHRVVAkAA8bNwFfGzcBXdXgLAAEE9QEAAAQUAAAA7ZTBSgMxEEDP9ivmaC/ibqWwQYS6PbRgQRBR
EA+z2Wkamk5KMlvx750Vb550EXso5JIw82bmhWTWOSinUEyNrrIAestFcXURosUASWyifUzi2b1M
qqoqX+F6Tk3nbgxk4nZFOaOjJy+bGoVcTO8GzrkLYTya/Zrs2UuPfFC6j7zkdTTwfF+DjcxkRc80
5oDBtwOqZJKv9u+icxpxq0lbA5oYaBBYMEkdee1dl7Dv9tNP3O0D9bsFchsoGajRbqiFSyDGRmtC
g3arVvOwqR4zpd7Z3Fsx39h6P6Oz8cnbP3j7q/dyIh8juTwK8k/+0g9QSwMEFAACAAgADIIaSZ9C
BqjtAAAApAQAAG8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheV9ub2F1dG9wbGF5
LXN0ZGVyci50eHRVVAkAA8fNwFfHzcBXdXgLAAEE9QEAAAQUAAAA7ZNBSwMxEIXP9lfM0V7E3Uph
gxTq9tBCBUFEQTzMZqdpaDopyaziv3dWvHnSRemhkEvCzPdm3iPzzkE5hWJq9JQl0FsuiquLEC0G
SGITHWISz+55UlVV+QLXC2o6NzOQidtbyhkdPXrZ1ijkYno3cM5dCOPR/Ndkz1565L3SfeQVb6KB
p7sabGQmK/qmNa8YfDtAJZN8jb+OzmnFjTbtDGhjoEFgwSR15I13XcJ+2k9/4v4QqL8tkdtAyUCN
dkstXAIxNqoJDdqdupqHbfWQKfWeLbwV842t+YzOxoMU/ir3UyL/kcjkKMg/+eMfUEsDBBQAAgAI
AAyCGkkFgNGX8AAAAAwGAABnABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlpbmct
c3RkZXJyLnR4dFVUCQADyM3AV8jNwFd1eAsAAQT1AQAABBQAAADtlMFKAzEQQM/2K+ZoL+JuS2GD
CHV7sNCCIKIgHmaz0zQ0TkoyW/HvnRVvnnQReyjkkjDzZuaFZN45KGdQzIyucgL0lotiehGixQBJ
bKJ9TOLZPU+qqipf4GpBTeeuDWTidk05o6NHL9sahVxM7wbOuQthPJr/muzZS4+8V7qPvORNNPB0
V4ONzGRFzzTmgMG3A6pkkq/2V9E5jbjRpJ0BTQw0CCyYpI688a5L2Hf76Se+7gP1u1vkNlAyUKPd
UguXQIyN1oQG7U6t5mFTPWRKvbOFt2K+sfV+Rmfjk7d/8PZX7+VYyNMT+ejIP/lLPwBQSwMEFAAC
AAgADYIaSaZokpT3AAAAwAYAAHIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWlu
Z19ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA8nNwFfJzcBXdXgLAAEE9QEAAAQUAAAA7ZRNSwNB
DIbP9lfk2F7EXWthBxHa7UFBQRBRkB6ys+l06JgpM1nFf29WPCkIxQ8qFOaSIXny5g0z085BOYFi
YvSUY6DnXBTjwxAtBkhiE21iEs/u4biqqnIBp3NqOndmIBO3V5QzOrrzsqpRyMX0YmDIXQijwXQH
yZ699MgbpfvIF7yMBu6va7CRmazoneY8YfDthy4nW+mXd/mX0TnNmGnR2oAWBvoWWDBJHXnpXZew
V/vmT3zcBOqjc+Q2UDJQo11RC0dAjI32hAbtWl3NOzkVyW2m1C9j7q2YT6J18YOD0T/27bfH2+q9
7Ml78k+Q/+ov/Vr/K1BLAwQUAAIACAAOghpJoBu9pOoAAAAMBgAAaAAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9ldmVudF9wcm9ncmVzcy1zdGRlcnIudHh0VVQJAAPLzcBXy83AV3V4CwABBPUBAAAE
FAAAAO2UwUoEMQxAz+5X5OhexFllYYoI6+xBQUEQURAPmU62W7YmS5tR/Hsz4s2bo3gZ6KEtyUv6
SrvqAyyWUC2dDZvQW6mq06MkHhNk9Zn2kjVyeDqp63rxDGdravtw7qAQdzdUCgZ6iLptUClIfndw
yH1K89nqx+TIUQfkndGj8BVvxMHjbQNemMmr7VnMK6bYjahSSL/av5YQLOLCknYOLDHRKLBi1kZ4
E0Ofcej204+87BMNq0vkLlF20KDfUgfHQIyt1YQW/c6slnGnui+UB2fr6NV9Y9v9zA7mk7d/8PZX
72UiT+Tf+Es/AFBLAwQUAAIACAAOghpJWeqXbukAAACkBAAAcwAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9wcm9ncmVzc19ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA8zNwFfMzcBXdXgL
AAEE9QEAAAQUAAAA7ZNBSwQxDIXP7q/I0b2IM8rKFBHW2YOCgiCiIB4ynWy3bE2WNqP4782IN28O
wh6EXlqS7yXv0eUQoF5AtXB26jOg91JVp0dJPCbI6jPtJGvk8HzSNE39Aucr6oZw4aAQ97dUCgZ6
jLppUSlI/nBwyENK89ny1+TIUUfkvdGj8DWvxcHTXQtemMmrvVnNG6bYT1AppN/j30gIVnFpTVsH
1phoElgxayu8jmHIOE775Y+87hKNtyvkPlF20KLfUA/HQIydaUKHfmuulmlbPRTKo2er6NX9YFs+
s4P5JIW/yv0/kf1LZB/++CdQSwMEFAACAAgAD4IaSdy/Cx/vAAAADAYAAGoAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvZXZlbnRfdGltZXVwZGF0ZS1zdGRlcnIudHh0VVQJAAPNzcBXzc3AV3V4CwAB
BPUBAAAEFAAAAO2UwUoDMRBAz/Yr5mgv4q6luEGEuj20oCCIKEgPs9lpGppOSjKr+PfOijdPdhFB
CrkkzLyZeSGZdQ7KKRRTo6u8BHrLRTE5C9FigCQ20T4m8exeLqqqKldwNaemc9cGMnF7Rzmjoycv
mxqFXEzvBk65C2E8mh1M9uylRz4o3Ude8joaeL6vwUZmsqJnGvOKwbcDqmSSr/Zvo3MacaNJWwOa
GGgQWDBJHXntXZew7/bTT9ztA/W7BXIbKBmo0W6ohXMgxkZrQoN2q1bzsKkeM6Xe2dxbMd/Yej+j
k/HR2x94+6338v/J1ZF8IPknf+kHUEsDBBQAAgAIABCCGklzEmVA9wAAAGYGAAB1ABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3RpbWV1cGRhdGVfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJ
AAPPzcBXz83AV3V4CwABBPUBAAAEFAAAAO2UTUsDQQyGz/ZX5Ggv4m5LYQcR6vag0IIgoiAesrPp
dOiYKTPZiv/erHgRQahfKBTmkiF58uYNM9POQTmBYmL0lBXQYy6K8VGIFgMksYk2MYlndzeqqqq8
h5MZNZ07NZCJ2wXljI5uvKxqFHIxPRk45C6E4WD6abJnLz3ySuk+8gUvo4HbyxpsZCYreqc5Wwy+
fdtldLyTfnmVP4/OacaZFq0NaGGgL4EFk9SRl951CXu1L/7Eh02gPjpHbgMlAzXaFbWgbMZGe0KD
dq2u5j85Fcl1ptQvY+atmHeidfGDg+E/9u2nx9vlvezJe/K3kH/rL/1Y/zNQSwMEFAACAAgAEIIa
STy110KEAAAAwAAAAGwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfdm9sdW1lY2hhbmdl
LXN0ZGVyci50eHRVVAkAA8/NwFfPzcBXdXgLAAEE9QEAAAQUAAAAncyxCsIwEMbxvU9xoy5CWikk
iFDq4iAIDgriENMzDYQ7SS6Kb298BeGb/nz8huKh7UH1pq5TgO+s1HoV2dkISVzCJycJ5K+d1rq9
wWaH9+K3BjLSdMCcrcdzkHm0gp7Tx8CCSozLZvhbDhTkR56qHpj29GADl+MIjonQSW3187IxTM0X
UEsDBAoAAAAAAAOCGkkAAAAAAAAAAAAAAABaABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2ludGVy
ZmFjZXMvVVQJAAO2zcBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAEghpJAAAAAAAAAAAA
AAAAZAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9VVAkAA7fN
wFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAAOCGklS/NHsyQAAAN0BAAB5ABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL2FjdGl2ZUN1ZXMtc3RkZXJyLnR4
dFVUCQADts3AV7bNwFd1eAsAAQT1AQAABBQAAAClkDGLwkAQhWvzK6bUJiQSUiwiaCw8uCsPC7GY
7I7r4joruxOO+/duvOusJDDNDLzvzXubwcKyhbpVeaoW6CfVdVP6oNFDFB3pHqI4tsemqurmBKsP
Poe1Ah+szWdIglFSWZbF5m3UjvrBZlYi+aKU0NLnH3WbRVcFWejJTAGPz3WBz84OEcUFPji5dOF2
9zRue2TjKSroUF/IQAXE2GdP6FFfiU2aluo7URz72jkt6oWtYF7MFpMc2PwX98yFQjbE38zlwftF
8QBQSwMEFAACAAgABIIaSVYtX/2HAAAAwAAAAHUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50
ZXJmYWNlcy9UZXh0VHJhY2svYWRkQ3VlLXN0ZGVyci50eHRVVAkAA7fNwFe3zcBXdXgLAAEE9QEA
AAQUAAAAlcyxCgIxEEXRfr9iSm0kkRAhiLCsjYUgWCiIRcyO2UCYSDJR/HtjaSm86vI4ffWw1CC1
aRMa8FWkVIuYnI2Q2WV8pMyB/EUJIdUV1lu8Vb8xUJDGPZZiPZ4CT4Nl9Cm/Dcyoxjjv+h959Ycc
KPCXPDY9JNrRPRk4HwZwiQgdt9Y+TxvD2H0AUEsDBBQAAgAIABCCGkkpAweU4gAAAOQDAAB3ABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL25ldHdvcmtTdGF0ZV9kdXJpbmdfbG9hZHN0YXJ0LXN0ZGVy
ci50eHRVVAkAA9DNwFfQzcBXdXgLAAEE9QEAAAQUAAAA7ZFBSwNBDIXP7q/I0V7E3ZbCDiLU7UHB
giCiIB6yM+l06JiUmWzFf++sePPmIngQcgnkfY+8txo8NEuol6bMvAF6y3W9OItiMUJSm+ggSQP7
53nbts0LXKypH/ylgUy6oZzR0614Xy6uimhvoAgjuWr1c7Bi0k54G/yQUIPwY9BdJ6+HSON2jewi
JQMd2h05OAdi7Isn9Gj3xC5PMSd9yJRueCvrYNV8Yxs4rU5mkxzYfQX3+RcqeUnvhctDjNPI/438
tUZ+ixw46Ii8L/TSwJiOgae7Dqwwkx1bKTdHjMFVH1BLAwQUAAIACAARghpJxDR0LYQAAADAAAAA
bgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9uZXR3b3JrU3RhdGVfaW5pdGlhbC1zdGRlcnIudHh0
VVQJAAPRzcBX0c3AV3V4CwABBPUBAAAEFAAAAJ3MsQrCMBDG8b1PcaMuQlopJIhQ6uIgCA4K4hDT
Mw2EO0kuim9vfAXhm/58/Ibioe1B9aauawHfWan1KrKzEZK4hE9OEshfO611e4PNDu/Fbw1kpOmA
OVuP5yDzaAU9p4+BBZUYl83wtxwoyI88VT0w7enBBi7HERwToZPa6udlY5iaL1BLAwQUAAIACAAR
ghpJ/aJs4OgAAABMBQAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wYXVzZWRfZmFsc2VfZHVy
aW5nX3BsYXktc3RkZXJyLnR4dFVUCQAD0s3AV9LNwFd1eAsAAQT1AQAABBQAAADtk01LA0EMhs/u
r8hRL+J2S2EHEer2UEFBEFEQD9mZdDp0mikzWcV/b1a8eVOKWIRcAsmTvPmYDx4mM6hnRq1pgF5L
XU9PY7IYIYvNtEtZAvunpm3byTOcL6gf/IWBQnJDpaCn6+S9Rlxq0saAJkZy1fz7YMEsXeJV8ENG
CYkfgqy7tN1FGr0lsouUDXRo1+TgDIix15rQo90Qu/KT4ntTRXJfKF/xKi2CFfOlaQPH1dHJH57b
vuUp5XM1H7pQyKf8plweYvwn/w55euDkwEFG5J3S9YfG+zbweNuBTcxkx7/SmBeMwVXvUEsDBBQA
AgAIABKCGkn7v0/97QAAAP4EAAByABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BhdXNlZF90cnVl
X2R1cmluZ19wYXVzZS1zdGRlcnIudHh0VVQJAAPTzcBX083AV3V4CwABBPUBAAAEFAAAAO2TwUoD
QQyGz/YpcrQXcdta2EGEuj1UUCiIWBAP2dl0OnSaKTNZpW9vVjzpaenBIkIuE5Ivf/4hs9bBaArF
1GiMJ0DvuSgmFyFaDJDEJtrHJJ7dy7gsy9ErXM+pbt2NgUzcPFDO6OjZy6ZCIRfTwcA5tyEMB7MT
JHv20iEfle4j3/E6GlgtK7CRmaxoTmveMPjm25SrXvrlS/59dE4rbrVpa0AbAx0FFkxSRV571ybs
1H76E3f7QN1rgdwESgYqtBtq4BKIsdaZUKPdqqv5uK2eMqXOs7m3Yn6w9X8GZ8N/337Btz738tfJ
fW78A1BLAwQKAAAAAAAFghpJAAAAAAAAAAAAAAAAagAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9w
bGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9VVAkAA7rNwFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAAWCGkm07AJ0/QAAAPsBAACRABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmct
dGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1vdmUtdG8tb3RoZXItZG9jdW1lbnQtc3RkZXJyLnR4
dFVUCQADuc3AV7nNwFd1eAsAAQT1AQAABBQAAAClkE1Lw0AQhs/mV8zRHiwbialdpNCmBwUFaREP
oYfNZnYTus6W/cCPX+9Y9OI1w1wGZt5n3rcta8ktlvObuj7AHRc0u/VmDysuMC7H4RmpH8nu0KGK
uMckoRUfC2MWS1XWqFEcYOO8PoKAQUUgT1dfGDwENKB9pgRVsc4Wrmv4wwG+x7Ks5nymHISkA558
SIxpKyHELb+yxS7blYSI6QljVBYfvbW8cWZJ4EOH/RThpEJqPJnR5qDS6Ol1TEPj304Of6Z7Rb3D
IKFResCe3SGpjpnQKX3kUOI0Vy8RwwMZvx01R/pfW8JlcTGbRKD+N7izL5XQ+vDJupSdmxXfUEsD
BBQAAgAIAAWCGkkBX+fWIQEAABUDAACPABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmct
dGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1vdmUtd2l0aGluLWRvY3VtZW50LXN0ZGVyci50eHRV
VAkAA7nNwFe5zcBXdXgLAAEE9QEAAAQUAAAAzZJNSwMxEIbP9lfMUQ+WtNa2G6TQbg8KCqVFFJYe
0uwkGxonJcn69eudLXrxWgSHXBImzzvzzsxbC8MxDMaSjygA39JgMOr7oJWHmHXEQ4jZka1GQojp
Fm6WuGvtTEJCqh8wJWXxyeWmVBltiB8Szqn1/qI3/4dkRy53yA3TXaA7MkHC86oEHYhQZ37jnFfl
Xd2rfvj96XXBDA4o1/PFBmYcYHybmhVXyjpr9KgSbjBLqMT7xJhJMdSmGI/EFhZc1x4ENCoBBbr8
xBggomHNljJcnWRU/vbpPljLGUctCfzRY30KOKuYy0DG2TaqzpbjIMLLwWN3u1VUe4wSSqUbrLk7
JLVjTdgpvWdT0mldPSaM3XCWTrOlv9m8CL2zv1ywL1BLAwQUAAIACAAFghpJlkLdD9wAAAAGAwAA
jwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wYXVz
ZS1yZW1vdmUtZnJvbS1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAO6zcBXus3AV3V4CwABBPUBAAAE
FAAAAM2RwUoDQQyGz/YpctSL7EopMojQbg8VFAQRBfGQnU2nQ6dJmckqvr0Z8ebBw14KuSQkX/78
WY4BrhbQLlyNBuiztO38MonHBFl9pqNkjRze5k3TXL/DzZr6Mdw6KMTDA5WCgV6i7jpUCpK/HJzz
mNLFbHmC5MhRK/LJ6FH4jrfi4PWxAy/M5NVq1vOBKQ6T9Ouv/HsJwTpWNrR3YIOJJoEVs3bC2xjG
jFXtjz9yOCaq2QZ5SJQddOh3NICxGXvbCT36vblapl31XChXz9bRq/vDtv/Mzk7z7/+RvwFQSwME
FAACAAgABYIaSZlnmO+EAAAAGgEAAIEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10
aGUtbWVkaWEtcmVzb3VyY2UvcGxheWJhY2tSYXRlLXN0ZGVyci50eHRVVAkAA7rNwFe6zcBXdXgL
AAEE9QEAAAQUAAAAcyxNVzAyUzA0swIhA4XU8mJDQxO9nPzkxByFopLkotSC/KKSzLz0aBMDAwOL
WAUbl9Sk0nQ7K4Xi1LwU39Ti4sT01PDMkgznxJLU9PyiSisFjbzSnBxNLsdBaHJmXmYJyMhgoOmZ
+XmeeWn5VgoRAc4Kyfl5eanJJUAxoJqyxJzMFC4AUEsDBBQAAgAIABKCGkmjtYJhhAAAAMAAAAB4
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ByZWxvYWRfcmVmbGVjdHNfbm9uZV9hdXRvcGxheS1z
dGRlcnIudHh0VVQJAAPTzcBX083AV3V4CwABBPUBAAAEFAAAAJ3MMQoCMRCF4X5PMaU2QnZ1IUGE
ZW0sBMFCQSxidowDYSLJRPH2xisIr/p5fEPx0PagelPXrQDfWanlIkRnAyRxCZ8xCbG/dFrr9grr
Ld6K3xjIyNMec7YeTySP0Qr6mD4GZlxCmDfD3zIxyY88Vp0i7/geDZwPI7jIjE5qq5+XDTQ1X1BL
AwQUAAIACAASghpJDiI4MeQAAABMBQAAcwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0
YXRlX2R1cmluZ19jYW5wbGF5LXN0ZGVyci50eHRVVAkAA9TNwFfUzcBXdXgLAAEE9QEAAAQUAAAA
7ZNBSwNBDIXP7q/IUS/itrKwgxTq9lBBQRBREA/ZmXQ6dJqUmaziv3dWvHlr8baQS+Dle+SRLAcP
swbqxpSaN0Cfua6vL6NYjJDUJjpI0sD+bd627ewdblbUD35hIJM+UM7o6V68L4rbMrQzUAYjuWp5
PFgxaSe8CX5IqEH4Jei2k/0h0titkV2kZKBDuyUHV0CMffGEHu2O2OVTzEmfM6U73sgqWDV/2AbO
q7OL0xym3I5yYPcb3M9eqOQlfRUuDzFO5In8H+TAQUfkU6GXHxrv28DrYwdWmMmOf1U0HxiDq74B
UEsDBBQAAgAIABOCGknoUGjT8wAAAGYGAAB6ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5
U3RhdGVfZHVyaW5nX2NhbnBsYXl0aHJvdWdoLXN0ZGVyci50eHRVVAkAA9bNwFfWzcBXdXgLAAEE
9QEAAAQUAAAA7ZTBSgNBDIbP9ilytBdx21LdQYS6PbRQQRBREA/Z2XQ6dMyUmazi25sVb966ij0U
5jJD8uXPPySz1sFoCsXU6BlfAL3nopichWgxQBKbaBeTeHbP47IsRy9wNae6ddcGMnFzSzmjo0cv
mwqFXEwfBk65DWE4mO1N9uylQ94r3Ude8joaeLqrwEZmsqJvGvOGwTc9qmSSb/mr6JxG3GjS1oAm
BuoFFkxSRV571ybs1H75E193gbrbArkJlAxUaDfUwDkQY601oUa7VVdzv64eMqXOs7m3Yn6w9X8G
J8Ojb//g21/Ny6GQL4/kgyPvv0t/U/8nUEsDBBQAAgAIABSCGkl9EEuq7wAAAAwGAAB2ABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2xvYWRlZGRhdGEtc3RkZXJyLnR4
dFVUCQAD183AV9fNwFd1eAsAAQT1AQAABBQAAADtlE1LA0EMhs/2V+TYXorbSukOIrTbQwUFQURB
PGRn0+nQaabMZBX/vVnxpKdqDx4W5pIhefLxkixaB5MZFDOjbzoHestFcTEO0WKAJDbRISbx7J6n
ZVlOXuByRXXrrgxk4uaWckZHj162FQq5mN4NDLkNYTRY/Jrs2UuHvFe6j3zNm2jg6a4CG5nJiv6p
zysG33zLUh5Vv3yVfxOdU4+lBu0MaGCg/wkWTFJF3njXJuzG8Dn4uD8E6qw1chMoGajQbqmBcyDG
WnNCjXancuW/dfWQKXVirLwV84Otwg/ORn17p9mXntyTT0E+5pZ+AFBLAwQUAAIACAAUghpJ2KwT
1ekAAACkBAAAegAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmluZ19sb2Fk
ZWRtZXRhZGF0YS1zdGRlcnIudHh0VVQJAAPYzcBX2M3AV3V4CwABBPUBAAAEFAAAAO2TQUsDQQyF
z/ZX5Ggv4tZS2EGEuj1UUBBEFMRDdjadDp0mZSar+O/NijdvLkIPwlxmSL6XvMcs+wCzBVQLZ2d+
DvReqmp+lsRjgqw+00GyRg4vF3Vdz17hckVtH64cFOLujkrBQE9Rtw0qBckfDk65T2k6Wf6aHDnq
gHwwehS+4Y04eL5vwAszebU3q3nDFLsRKoX0e/xbCcEqrq1p58AaE40CK2ZthDcx9BmHab/8kf0h
0XBbI3eJsoMG/ZY6MDZja5rQot+Zq2XcVo+F8uDZKnp1P9iWz+RkOkrhr3L/T+T4EjmGP/4JUEsD
BBQAAgAIABWCGknd69vF7wAAAAwGAABzABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3Rh
dGVfZHVyaW5nX3BsYXlpbmctc3RkZXJyLnR4dFVUCQAD2s3AV9rNwFd1eAsAAQT1AQAABBQAAADt
lMFKAzEQQM/2K+ZoL+KupbBBhLo9WGhBEFEQD7PZaRoaJyWZrfj3zoo3T7pIeyjkkjDzZuaFZNY5
KKdQTI2uSQH0notichGixQBJbKJdTOLZvVxVVVW+wvWcms7dGMjE7YpyRkdPXjY1CrmYPgyccxfC
eDT7M9mzlx75oHQfecHraOD5vgYbmcmKnmnMHoNvB1TJJN/tL6NzGnGrSVsDmhhoEFgwSR157V2X
sO/2y0982wXqd3fIbaBkoEa7oRYugRgbrQkN2q1azcOmesyUemdzb8X8YOv9jM7GJ28H8PZf7+VE
PkZyeRTk3/yln1BLAwQUAAIACAAVghpJuFXZQ4QAAAAaAQAAbAAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9yZWFkeVN0YXRlX2luaXRpYWwtc3RkZXJyLnR4dFVUCQAD2s3AV9rNwFd1eAsAAQT1AQAA
BBQAAADNzLEKwjAQxvG9T3GjLkJqKSSIUOriIAgOCuIQ0zMNhDtJLopvb3wL4Zv+fPyG4qHtQfWm
rmsB31mpbhXZ2QhJXMInJwnkr2utdXuDzQ7vxW8NZKTpgDlbj+cg82gFPaePgQWVGJfN8IdyoCA/
8lT1wLSnBxu4HEdwTIROaqufl41har5QSwMEFAACAAgAFoIaSWcbRC3UAAAAwgIAAIQAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvc3JjX3JlZmxlY3RzX2F0dHJpYnV0ZV9ub3Rfc291cmNlX2VsZW1l
bnRzLXN0ZGVyci50eHRVVAkAA9vNwFfbzcBXdXgLAAEE9QEAAAQUAAAA1VC7bsMwDNz7FRybwZHt
GK6rLWgQZOgQGMkUdFAkuhaqhyvR+f6ycOZuBVqQwx3uCBzvUrWSt9ms665+g8PpdOzxc8ZMMNj3
A9F0pztretRob9hjnmLI+KKcuyr9ISEtgoGR/cwWHZqygUdMKSYoqvp5061gYPxtkkK4qJUbYybZ
dWUpRvJOZPQqkNVZoL+iMWgKHQNhIOHRWFWgQ88siyHGh8vP2ZnuZj/tbVDu3L9uAz/gI+HWGI6Y
JagFQFU/rUueis/YC3NyvxOy/ccFt3+14C9QSwMECgAAAAAABYIaSQAAAAAAAAAAAAAAAFUAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2svVVQJAAO6zcBXuM/AV3V4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAAAFghpJAAAAAAAAAAAAAAAAYwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90
cmFjay1lbGVtZW50L1VUCQADus3AV7jPwFd1eAsAAQT1AQAABBQAAABQSwMEFAACAAgABYIaSe1o
NeUPAQAARgIAAIIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2svdHJhY2stZWxlbWVudC90
cmFjay1hcGktdGV4dHRyYWNrcy1zdGRlcnIudHh0VVQJAAO6zcBXus3AV3V4CwABBPUBAAAEFAAA
AKWRPU/DMBCGZ/IrbqQDkRPSolioUpsOIIGEWiGGqINjX5yoxq78IT5+PZcCCyM93XKW7nnfe90W
C07N6rwu6j3cUkGzXa13sKSC3qQwPKFVo9VbNCgC7jByaNn7Ta/UdVFWYt6xPayNkwdgMIgA1tmr
T/QOPPYgXbIR5tkqaSgX8CsH+BaKosppTRjwUXo8Oh9Jpq0YKyuycm97t+RgnNb0DCEKH0Oe5/9A
bbBLmlgB4yOGIDQ+fFNPtjnQokF1Dngy1zjbjzp5EUdnX8Y4NO71aHCa7oRVBj2HRsgBFQWFVnSk
CZ2QB8o3nHfVc0A/5bUZJf3OXzaHy+xidpaCVT/Bne4SEbXzH8S1yZhZ9gVQSwMEFAACAAgAFoIa
SbqEgHm5AAAA7AEAAGMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fMDA4LXN0ZGVyci50
eHRVVAkAA9zNwFfczcBXdXgLAAEE9QEAAAQUAAAAtZCxCgIxDIZnfYqMuoinIlwRQc9BQUdxEIdc
G2uxptLmEN/eKm5uipAlkP/7yD9rLAzGUIxVntEQ6JaKYtTzQaOHKDrSNURxbPfDsiwHB5gsqG7s
VEEi2VBKaGkdrM0X8xw6K8hBT6Y9+x4sGKUKfHS2iSgu8M7JqQqXq6fntkQ2nqKCCvWJDPSBGOvs
hBr1mdikX+Qk20RxxcewcFrUB1tBp93q/mRg8y7u9RcK2RDvmcuN9/8kPwBQSwMEFAACAAgAFoIa
SU41qSGEAAAAwAAAAGwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fdm9sdW1lX2NoZWNr
LXN0ZGVyci50eHRVVAkAA9zNwFfczcBXdXgLAAEE9QEAAAQUAAAAncyxCsIwEMbxvU9xoy5Caygk
iFDq4iAIDgriENMzDYQ7SS6Kb298BeGb/nz8huKh66HtTZ1SgO/ctmoV2dkISVzCJycJ5K9rrXV3
g80O78VvDWSk6YA5W4/nIPNoBT2nj4EFlRiXzfC3HCjIjzxVPTDt6cEGLscRHBOhk9rq52VjmJov
UEsDBAoAAAAAAAWCGkkAAAAAAAAAAAAAAABSABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hdWRpby1lbGVtZW50L1VU
CQADus3AV7jPwFd1eAsAAQT1AQAABBQAAABQSwMEFAACAAgABYIaSWVuwj8aAQAAggYAAGYAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvdGhlLWF1ZGlvLWVsZW1lbnQvYXVkaW9fMDAxLXN0ZGVyci50eHRVVAkAA7rNwFe6zcBX
dXgLAAEE9QEAAAQUAAAA7Y/PSgMxEIfvfYo5tofun7it7aJCXRV6KBb2oFDKkmbHNBqTZZJV9u1N
KcUefACVhTnMDMM3v2/RSmBTSKf5oRLAT5emWaSt4BrIC8LGkldGbrIkYdkWru5w18qbHByaeoXO
cYlPyu8L7lFa6nIYmlbr0WDxC8nKKH9AloGurFmaF5vD87oAYY1B4cMu3HxwrerB5sSP0sl0C8rj
O3edEVWJfk22QfIdOCUN1xprQKLrccouZxMYvj0oecsdPu5eA/SeyFK1PGKDSz2CoTqfuIe4tC0J
LLjYY1xYwhXWin9345CBRSxL4vDaW9816OK15h1SHJ4du2pxyBcJ0MogMDa/+HcS88m5RGGb7k9Y
JLNZb9Fb9BY/WHwBUEsDBBQAAgAIAAWCGklkgoGe3AAAANACAABuABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hdWRp
by1lbGVtZW50L2F1ZGlvX2NvbnN0cnVjdG9yLXN0ZGVyci50eHRVVAkAA7rNwFe6zcBXdXgLAAEE
9QEAAAQUAAAA1ZCxTgMxDIZ3nsIjDNfkrhUc2Soq1IEBncpUMaSJy0U4yZE4PD85jhkmJJA9+Ld/
S599bK/VnHLVr+Uz7A+HxwHfCmaGs3vZM09fcufsgAbdOw6Ypxgy3mmikzavCtIysDBWf1XLHDZy
A5eYUkzQtN3tur+Cc61nkxKCotE0xsyq76UUI3sSGb0O7EwW6E9oLdrGxMAYWPCIjS7WxQYJ/dzJ
yVwcv8evclf8dO+CpqfhYRvqDT4ybq2tlFmBXgpou5uVrNHWteqFkujXOLv/9eZQiH7i/xN//gT9
AFBLAwQKAAAAAAAGghpJAAAAAAAAAAAAAAAAKgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL1VUCQADvM3AV7jPwFd1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA94Ea
ScIX9RWiAAAATwIAAEYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJmYWN0b3J5X29wZW4xMS1zdGRlcnIudHh0VVQJAAOizcBXos3AV3V4CwABBPUBAAAEFAAA
AO2PsQrCMBRF937FG9vFgIiUbNp2EBWxBTtKmrwhkPaF9KX4+dbSyS9wcLxwzuXeqq5vtYQDM/ae
gQmUmdSgERRo6r1DRgM6hpFCIh7kYo+jKBUrUbWNaLE7WxYNxaDxkwoKKK5kopsxOxh8oTGdGDFM
GERzv1jGU3kslsKN9j7d5nkGEjoiB2uBlDPSLIqUX46U68A02oH3uydnSfU/8SMn3lBLAwQUAAIA
CAD4gRpJvHFs1ZkAAADFAAAAQwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmluZGV4X2NvdW50LXN0ZGVyci50eHRVVAkAA6PNwFejzcBXdXgLAAEE9QEAAAQU
AAAAXY6xCsIwFEX3fsUb28WAiJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5h9u07aOVcGLGITAw
gbazHg2CBkND8MhowaQ4UczEi3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8grnR4get7cWEccYo
1PPmGC/1uVqDOxNCvi/LAiT0RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsDBBQAAgAIAPiBGkm8
cWzVmQAAAMUAAABEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiaW5kZXhfY291bnQyLXN0ZGVyci50eHRVVAkAA6PNwFejzcBXdXgLAAEE9QEAAAQUAAAAXY6x
CsIwFEX3fsUb28WAiJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5h9u07aOVcGLGITAwgbazHg2C
BkND8MhowaQ4UczEi3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8grnR4get7cWEccYo1PPmGC/1
uVqDOxNCvi/LAiT0RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsDBBQAAgAIAPiBGkm8cWzVmQAA
AMUAAABEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5k
ZXhfY291bnQzLXN0ZGVyci50eHRVVAkAA6PNwFejzcBXdXgLAAEE9QEAAAQUAAAAXY6xCsIwFEX3
fsUb28WAiJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5h9u07aOVcGLGITAwgbazHg2CBkND8Mho
waQ4UczEi3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8grnR4get7cWEccYo1PPmGC/1uVqDOxNC
vi/LAiT0RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsDBBQAAgAIAPuBGkm8cWzVmQAAAMUAAABJ
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfY291bnQtc3RkZXJyLnR4dFVUCQADqs3AV6rNwFd1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+
xRvbxYCIlGzadhAVsQE7Spq8IZD2hfSl+PnW0snxwjmH27Tto5VwYsYhMDCBtrMeDYIGQ0PwyGjB
pDhRzMSLfBpwErVmLZpOiQ77q2OhKEWDv1VRRHEnm/yCudHiB63txYRxxijU8+YYL/W5WoM7E0K+
L8sCJPREHraAlAuiVkXKP0fK7WCe3MjHw5uL7AtQSwMEFAACAAgA+4EaSbxxbNWZAAAAxQAAAEoA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9jb3VudDItc3RkZXJyLnR4dFVUCQADqs3AV6rNwFd1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+
xRvbxYCIlGzadhAVsQE7Spq8IZD2hfSl+PnW0snxwjmH27Tto5VwYsYhMDCBtrMeDYIGQ0PwyGjB
pDhRzMSLfBpwErVmLZpOiQ77q2OhKEWDv1VRRHEnm/yCudHiB63txYRxxijU8+YYL/W5WoM7E0K+
L8sCJPREHraAlAuiVkXKP0fK7WCe3MjHw5uL7AtQSwMEFAACAAgA+4EaSQSK6QOfAAAAigEAAEoA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9jb3VudDMtc3RkZXJyLnR4dFVUCQADqs3AV6rNwFd1eAsAAQT1AQAABBQAAADdj7EKwjAURfd+
xRvtYkBESjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eQnOF4493Bv3TT3RsKRGfvAwATaTnowCBoM9cEj
owWT4kgxE0/yqcdRVJq1qFslWuwujoWiFA1+U0kRxY1s8jPmBotvtLYTI8YJo1CPq2M8V6dyEW5N
CJtdUeQgoSPysAqknBG1VKT86Ui5DtwkN/Bh/+I8q//hxAdQSwMEFAACAAgA/YEaSbxxbNWZAAAA
xQAAAEsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9kZWxldGU1LXN0ZGVyci50eHRVVAkAA63NwFetzcBXdXgLAAEE9QEAAAQUAAAAXY6x
CsIwFEX3fsUb28WAiJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5h9u07aOVcGLGITAwgbazHg2C
BkND8MhowaQ4UczEi3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8grnR4get7cWEccYo1PPmGC/1
uVqDOxNCvi/LAiT0RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsDBBQAAgAIAAKCGkm8cWzVmQAA
AMUAAABOABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJh
bnNhY3Rpb24tb25jb21wbGV0ZS1zdGRlcnIudHh0VVQJAAOzzcBXs83AV3V4CwABBPUBAAAEFAAA
AF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwhkPaF9KX4+dbSyfHCOYfbtO2jlXBixiEwMIG2
sx4NggZDQ/DIaMGkOFHMxIt8GnAStWYtmk6JDvurY6EoRYO/VVFEcSeb/IK50eIHre3FhHHGKNTz
5hgv9blagzsTQr4vywIk9EQetoCUC6JWRco/R8rtYJ7cyMfDm4vsC1BLAwQUAAIACAAFghpJBIrp
A58AAACKAQAAWAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3Ry
YW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLXN0ZGVyci50eHRVVAkAA7rNwFe6zcBX
dXgLAAEE9QEAAAQUAAAA3Y+xCsIwFEX3fsUb7WJAREo2bTuIitiAHSVN3hBI+0L6Uvx8a+nkJzhe
OPdwb90090bCkRn7wMAE2k56MAgaDPXBI6MFk+JIMRNP8qnHUVSatahbJVrsLo6FohQNflNJEcWN
bPIz5gaLb7S2EyPGCaNQj6tjPFenchFuTQibXVHkIKEj8rAKpJwRtVSk/OlIuQ7cJDfwYf/iPKv/
4cQHUEsDBBQAAgAIAAaCGkm8cWzVmQAAAMUAAABGABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvd3JpdGVyLXN0YXJ2YXRpb24tc3RkZXJyLnR4dFVUCQADvM3AV7zN
wFd1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+xRvbxYCIlGzadhAVsQE7Spq8IZD2hfSl+PnW0snx
wjmH27Tto5VwYsYhMDCBtrMeDYIGQ0PwyGjBpDhRzMSLfBpwErVmLZpOiQ77q2OhKEWDv1VRRHEn
m/yCudHiB63txYRxxijU8+YYL/W5WoM7E0K+L8sCJPREHraAlAuiVkXKP0fK7WCe3MjHw5uL7AtQ
SwMECgAAAAAAEoIaSQAAAAAAAAAAAAAAAAoAHABpbnNwZWN0b3IvVVQJAAPTzcBXuM/AV3V4CwAB
BPUBAAAEFAAAAFBLAwQKAAAAAAASghpJAAAAAAAAAAAAAAAAEwAcAGluc3BlY3Rvci9kZWJ1Z2dl
ci9VVAkAA9PNwFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIABKCGkl5JyuOigsAAM7hAABB
ABwAaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
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
O9L6J7TuURqWLu2R9lQXKG3ziia8+NfJ9BrMx+Z60jr30tId5vHsDVBLAwQUAAIACABFghpJV7dw
uKcAAADuAAAAYAAcAGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRl
bnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3ItYWN0dWFsLnR4dFVUCQAD
Ms7AVzLOwFd1eAsAAQT1AQAABBQAAABVjUsOgkAQRPdzigprwx2MYSeBBC6ATCEkw7SZT0Zub6tx
4aaT7nr9amRMKJu3UmrxDEGCrs7hRixboEVZ6ZFWwvJBb+kTdrHZUY9BCiaPz1ttTOcR8zwzxhMO
yV9RJDHpDBsjZEHVn4ehwq7UdKeSizgnRZtuB6qxGUZcura/NmNTqdO037ItwksCn5xzUvhgqs1b
9atcsnNHP4WoocIpZBrzpzPmBVBLAwQUAAIACABFghpJNkanguIAAADNAQAAXgAcAGpzL2RvbS9t
b2R1bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1w
cm9wYWdhdGVkLXRvLW9uZXJyb3ItZGlmZi50eHRVVAkAAzLOwFcyzsBXdXgLAAEE9QEAAAQUAAAA
zY7BboMwDIbvPIXv1M2l2q5sK6etGhJoPafEo5lCgmJbgrcfLdWeYfLBkuX/+35EBPOVgo7E5mjF
mvrcmjNd3r081qv64MyRLjqYYJekgkIsmIk1CJsfNi6NZkxOAyHN1Kv4FJFyThl9ZO8IHU0UHUXB
xx9fkwaHF8Ipp8kOVsihJExxy9E8Ub/e9jJLUZbl/2xpe1Eb7h2rCvCwe4bysHuCqirgNqc7BjxD
TAKblRwsJPsC661EHECuBH9u2NwFNC9tC6x9T8zfGsLS2MxreqVJVrrxu7rt4O3z1HzUXV38AlBL
AwQUAAIACABFghpJ0sZ2SrIAAAANAQAAYgAcAGpzL2RvbS9tb2R1bGUtZXhlY3V0aW9uLWVycm9y
LWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9wYWdhdGVkLXRvLW9uZXJyb3It
ZXhwZWN0ZWQudHh0VVQJAAMyzsBXMs7AV3V4CwABBPUBAAAEFAAAAG2OS4rDQBBD93UK4fXgO4TB
uwkx2Bdw3HLS0Oka+kPHt08lYRYD2RSokPQ0Mxc0H522XiNT0mQyBJyJzSc6tCsjypVw/GV0jAU3
dTXQnkkblohXrBc5ReS6rsz5C7vWd1EmsdhNnhm6oRsP09ThZq7lQnNuGoI2I513dPMwzfg+Hcef
YR4665TjG+YzohbwzrUWM+8svQwv5ePl40B5kv4WbTWEfVxStqx1lVQp8o8m8gBQSwMEFAACAAgA
RYIaSUd9DmzXBwAAtxoAAGYAHABqcy9kb20vbW9kdWxlLWV4ZWN1dGlvbi1lcnJvci1pbnNpZGUt
ZGVwZW5kZW50LW1vZHVsZS1zaG91bGQtYmUtcHJvcGFnYXRlZC10by1vbmVycm9yLXByZXR0eS1k
aWZmLmh0bWxVVAkAAzLOwFcyzsBXdXgLAAEE9QEAAAQUAAAAvVltb9s4Ev6eXyEkuAuwiGQ7sVO/
tDlsEwcH3Ha3QILbjwdKpCw2lKgjqcTu3f33G77Jkiw5BnbRLrq2xbdnZp6ZZ6h+zFTO7s4+ZgRh
+MiJQkGSISGJ+nRZqTScX8JjqXaM3J0tGS1eroLlK5VUERz85yyAP4psVYhJwgVSlBfLoOAFWZmh
mAtMRBhzpXi+DCblNsDwneDV2f/O7HZuk4QzLpbBxfhmYcaiR8rIA01TNx6j5GUjeFXg0E9N5/q/
5kH2BMkZxcEFxtiOpbxQYYpyynbLIOcFlyVKHMAciQ0FyBOSB2P7qORgnLFDEAYWvRIDKJt0kN7c
3PTsL1EhQ0kETRuDkn4n5ozmoSEjqVoG42jmn2MqS4ZgE1qAZxzCN4pVBovH4784fAhjWmzqlRab
C43+1o6Og0uLDECpenrGX4noWDSbzVZDzibEuiHSMfkFzpJucco4AjME3WSqHTk96x7MR2CLP4qD
66kCE8cdkxWKGQkTwljLytDs2/LSWwbWhSaGmmpvApV7ZE8k0bEbJI1Z3KZMly6Os97vQKhxubUn
rLclhBf2B9PIVRDpj66Fg/AkxSTe6f8HBupnxpOXr0ioCExdplRIFSYZZXjQsfq4J1h/dWwzQXII
7dU757kzvPst4cJYT2nRbuZZB2xRNEEsRIxuIDcU7zFLEM30v6MCM+Ld4fbRLtS/M2IDuudzUgmp
Q6NhdzMQxRCdykcMzqyJY5PHwDuGosXzQzpsBNmtOsSMZu/Fy7o4iBR/181RKnjecbarj/oM7fVf
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
PHw3dP99jsaqeoWHeKytHF0kQRhIeAzRUqifQq1cX/dORYvCOqlEkD2K+4H2rhfKaI0eBxL8+VGc
nUnx9YwdoaroSllRFP/PiewoSnvzMZ+DmJXvoJiVH2E+z4rl9ke7XTewadp28bV5gP14xsZ75x9g
c1OGwPcw2qAH5TDA4AgCSU9wMXSCvM5LyKu0Os8BR/9K9cvi25qlTI8KGA9cpCEzHEFzCtcbPa7c
gEAODgidtBZVBm/hNxSYUAHJI3exFiQR9mdKFYkn0Il9MdN7YgYZbAcIseswhBJ4JlNdQATJqzfs
3GnId4u2zYFnG+QROVM7a92FbR5GyPdNu4fldrNbN/smr24z+FDO3kDxqXyfhsBtltEnh3Ys2YQJ
YCYiCrUZWMYMkzdmVsF+SgiRD04uWpWuq831JU9Hih6r7Jn1XQ2v2EV+kTAiVZlobtsE8O/fVPUU
XimkrlPRn48TpGeYOlo77qQPyXQA8jHRFq9QZSL7BVBLAwQUAAIACABnghpJpUe19R4BAACvAQAA
TAAcAGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1mcm9tLWRpZmZlcmVudC1lbnRyeS1w
b2ludC1keW5hbWljLWFjdHVhbC50eHRVVAkAA3HOwFdxzsBXdXgLAAEE9QEAAAQUAAAARZBBa8Mw
DIXv/hUi55LBjr2VLhuDdikkf8CN5VTgWMWWaf3vp5COXYww33t6T8f+Z+hPHZy7YTh8dXsY6x27
lDjt4cyuBIR8x4k8YQLHmCGyQBabBB4kN2jemh007fpy0kEn83n4PqkTLeiAi4KWhOIMXgmVk68f
HBGE4Yow2RDQmXdw5D0mjALLtljsrDtCACuCy11WQWDrQG6ayi74B/rEC1hwNdqFVr8KM0ZMVjSA
uhjTR8hlmjDnHVQum21GVFXGRFqLPTSXwzA0sChlZ1TScwj8UI9rhWbshhGO/fly6sauaY0xx5LW
uKHuNBFloO04Dj1FFVHcgur5Whg3IBf9uHEJbq3u6fnP+SIlYWteV3+Z4ROnstaoKLrzF1BLAwQU
AAIACABnghpJ+fgy384BAACEAwAASgAcAGpzL2RvbS9tb2R1bGUtbG9hZC1zYW1lLW1vZHVsZS1m
cm9tLWRpZmZlcmVudC1lbnRyeS1wb2ludC1keW5hbWljLWRpZmYudHh0VVQJAANxzsBXcc7AV3V4
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
XJapUapbkIpzlNIFO5eXMRFhrFNCPY09dH+zVuOrUuMnVdJzjLyd2sHYAfeu7R9mMLo61fnjWUXf
5Equ8E65UYfqt9KXGPd+lFSXFc5SSKl/OqV+AFBLAwQUAAIACAB2ghpJRyGmZvAAAAB1AQAAQgAc
AGpzL2RvbS9tb2R1bGUtbm90LWZvdW5kLWVycm9yLWV2ZW50LXdpdGgtc3JjLWFuZC1pbXBvcnQt
YWN0dWFsLnR4dFVUCQADkM7AV5DOwFd1eAsAAQT1AQAABBQAAABVj8FqwzAMhu9+CuFzye69lWJ2
aZaA8wKprSwGxwqyTZq3n7IwRi9CoE//J927L9s9DLTG2tunucKwr2iYia/Qkq8RIa/owhSQwRNm
SFQgl5ELbKHMoD/0BXRzVGJppFMDZmEch7U0lPBIEzhGeCJMgdHDNmOCMiMwZqrs/i0envvvJCwr
icSjiyOPJVCCcO54XDF5TAWW88JwXjVRTb5RqkuQq3OY8wV2qqc6I8IolYP8QBPo/mathkWo8RuF
nChG2k6/Howd4N61/cMMRkumat9U+EJXi8A7lkYdUX/Kqca49yNnGQpcuKJSb3FK/QBQSwMEFAAC
AAgAdoIaSSvI18hFAQAASQIAAEAAHABqcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVu
dC13aXRoLXNyYy1hbmQtaW1wb3J0LWRpZmYudHh0VVQJAAOQzsBXkM7AV3V4CwABBPUBAAAEFAAA
AMWRwW7CMBBE7/mKUa7BsVB74gSFqIdCQUrUnk28AVcmjux1gb+vSSr1E3pZr7Rrz5uxEALyw9l4
oSA3ipWsPmv5Scc3w7/HSzRWyw0d40ladXeRBVNg4SlEy0F+BandRV6cjpZE71h0LvZakPfOC/qm
nsXV8FkE3wqVBuYyOM+CbgO1TLrkG2dFUfwXh2o5KjtSLJcQ89kTivnsGctlVqz37/V+W2FX1fXq
tVqguQ9UPR5cYDcKISQXpjPkoR0FJF0EVp7x0EIu8xny8lGdT03qMjQJG6H1ZuDS9SNf2rYWR0Jn
PGlcz9SDz4RkzkXf/sloHO/jZKKHptYqr9i4Hma6o2mgXie7mLKAmbDGOMoMGfY9QmxbCmGGFOQk
HoigUvUm2XAd8sOqrnOkDwnqRGmzc9a660SQN1XdYL3fHbZVU+Vl9gNQSwMEFAACAAgAdoIaSbjd
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
QyOLi+aj8K4XdD1Tz6QKvnKSZdm/wrueQ2cmdFlCzPIXZLP8FWWZZMv6s6nXFTZV0yzeqzna25mq
e8ocmykdPqrrQZODsuQRYfDcOcYdgFSmOdLiXq2LQ5wStNEVvnf6zIUdJ6m4bQz2hEE7UrgcaQQf
CfEiG1z/h1HY35BG7xT6QZtOKxIkqEf40PfkfY74lEemJ0IXq9PRzg5It4umSRGf67sDxc3BGmMv
z+C2alos6812XbVVWiS/UEsDBBQAAgAIAHeCGkmBvHAyqgAAAPcAAAA5ABwAanMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0ZWQudHh0VVQJAAORzsBXkc7A
V3V4CwABBPUBAAAEFAAAAFWNQWrDMBRE9zrFoHXxHULwriEG+wKOPGoEqn74X8Lx7aPSZtHNbN7j
zUKrsKDpUQcpVBXFnnLGjYhJuWG/s6DeCaVJ00DYgyHF1NntgDcNHslQpCJKK9vg3LXAWgg0+8Ah
7bdoJNa+mmiQCD+d5tnju1vrF7sZJWfZ/7LLOC84Xy/T57iMvjfdRbaW+b7ik6HVLh+sg/tJvS9j
y/mYVrUOu1y10bl/OedeUEsDBBQAAgAIAHeCGknJ1UHxCggAAEoZAAA9ABwAanMvZG9tL21vZHVs
ZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtcHJldHR5LWRpZmYuaHRtbFVUCQADkc7A
V5HOwFd1eAsAAQT1AQAABBQAAACtWW1v2zgS/p5fQSS4DbCIZDu2e7Hd+tAmzh1w7baAg9uPB0qi
LDaUqCWpxO7u/fcbvsmSLCU57G2xlUQOyWdmnnmh+z5TOVufvc8ITuCRE4VRnGEhifpwWak0uLmE
YakOjKzPlowWj1do+UQlVSRBv58h+E+RvQoSEnOBFeXFEhW8ICszFXGREBFEXCmeL9Gk3KME3kmy
OvvPmd3ObRJzxsUSXYynCzMX3lNG7miauvkIx487wasiCbxoeqP/NA+yJ0jOaIIukiSxcykvVJDi
nLLDEuW84LLEsQOYY7GjAHlCcjS2QyUH5YwegjDQ6IkYQNmkg3Q6nfbsL3EhA0kETRuTkv4g5ozm
oQEjqVqicTj34wmVJcOwCS3AMg7hM01UBovH4784fDhJaLGrV1pszjX6re0dB5cWGYBStXjGn4jo
aDSfz1dDxibEmiHUPvkMZ0m3OGUcgxqC7jLV9pyWugX1Mejij+JgeqpAxXFHZYUjRoKYMNbSMjD7
tqz0nIF2gfGhptqzwOUR2ZbE2neDpDGL25Tp0sVx1tsdCDUu9/aEzb4E98L+oBq5QqF+dDUchCdp
QqKD/hsZqJ8Yjx+/YaFCUHWZUiFVEGeUJYOG1cdtYf3VS5sJkoNrr145z53hzW8JF0RapEW7uWcd
sEXRGLMAM7qD2FC8Ry1BNNP/gYuEEW8Ot482of7OiHXokc9xJaR2jYbdjUAcgXcq7zE4syaODR4D
7yUULZ6f0mEnyGHVIWY4f81f1sQoVPxVM4ep4HnH2C4/6jO01X+p8ogIYBNpssuOeuCnadSxdrFo
JUAfLn1p0EfybDbrTTdN79c5Rm80tyFgw6BO+I4Hjp59FLFwW3SauoTVUNyo2JtwbJEYNMsLSaoU
Ojo1TGdAn00ca7wirViFRYGNVjMF9jSfoIcg+DHQAxYQzfGOtDyzRNe1wSOGtRW1YAypATAAFPeG
unofvXIzWwzm3pSkxwSgaQU71uWxEc09S5M0aS8FZ8th8QVZrF6q6fVOLss0cbioGC7XSXKyAUoI
G15BFq+iGf2MtlVZcqGg0grHZDBqnpNCSfTzCM7Dlcq4tbetxrqZAdYr4GnsPWUWGJmB+l/LaDAY
KGGEfTp754mt0w1m7NYj6JW+trUsx/ugU95z6Avc0PW4rjvdo8HuL55TR3Yd0q1j+nCGvCS2bAbP
JHqkKlBCh521hAWOwmu5aqgxc0pfSIVVJT9VEdTwuh6GOnp64eglinMWYdGe90enjJgIPU7k/Ec9
WienqY1j10fpV98t6PfhlnAoc7zYyh1pkdI9sfu4fDxuqxRi04PYMDut4s8UcoHoUK3e80dAi4Ts
IUm9oNqxEDYg9OnlklGrvN24LFZomC5ge0sTnBfx/atA3x2BTiyJfRGyXwase68rmPusAdedWeto
mgqcW4SdOGm3EY0YuR3ItKe2OUCvyZ9drScMGkfomd9QmN4t7o/0cjV5YNIYoj1Xt5HJaXvcbo7d
HtZ8pxwebAkSn2ftMR99UvBXnXFz9sHXyM6d5N1ffUI7hflCkDRuOzLHtpdv5tyCCxheDWQZp79u
wWTf4VYPH9fjPhGGI8KWOIUIuzpZbsfNJqYgF6DqOfoDna/O6kLcKN/d1QxDh87TQB1K0rvV+SAi
J9i54maEmQRZN6NYN6MDNeoiJ1L6xmPQzn1uaUTH1iTqt5RCKDHQED1RXsnbegSa2R+kuG0Uy746
71uObolpFhedy4G1hgk+t7tvx0SXRKa+Br4JjaMG9DhE6ZholQvX9g00fc06G1UQVUUz7/j6ntCn
ZcpjZ0NeKZ0vmuEXscpUEjcFfEkBC1SwiVekWSzNLtDDPGTEnjRylXYH+LUOiiMFc5GVdlST6Ili
nZPVF8cJABsJ/gwOh04gw7DWNUVUhboJqvWYzV0XX7ci7ttnB93I6v/H7SLqf9Lp9vg5TeCWZRXT
DpL+8t1TUaAP4xI/ge3BAqRTV5o3vZNSF0zCqW2Zjj9++Orf44OLu7u7Rkhf3Nzf3c/ve/MTNJf9
LN5sNn2olyQvIUO1nO/atI5kCK+AtBX5m8XN+MblrZgRLP5t2gN/FdAj5tqUaZH3I/er23sZC1qC
T0X84TxTqpTL0Qh/x/twx/kOFpVUauqasRGjkRx9/60i4jCahLPw2n2E0FqG3+X5GvY1+61Re+eY
JyTQPiTPIPc38LR25ofZTWMJgHI/FEY8OcAD4gFwYyk/XPqbgP69MJusR/8Cf0LOGt1hhUebX7ej
X0n0T6rc41NFWTK6I1G1GwFPwJiBIpBf4fJeMQUayFECKuU8qRgJCg4pw/iHCMFFQJ4gDKBRVlkA
2APoZCrMQrVXgG/ShtX4VejydMbc1ofG9S0eAeE68/r+gto//TghSCqFlzIX/2M3cbn+qYhkuQJT
gtC6JQpB3hSc9MpAob5c3379Zfv18wZ92Wy3H/++WaIHqEUbbZIl+mJMhWRJYppSAJVwIiH8wL1K
K6KthX76reJqNbKPK/cZ1t9wTXJDfsxhAceDBfyjaY0Gjy/XbtrJ/s+2lhlcYV4396umnrzBytfD
Vn4AIiLL+BCylzYvWI8xFBHofwEh1BC4LOnEDHTllYiPZocKcHA2BGbaF0StHwyDw65F/5yq129Q
dTqs6v8XzPQNYGbDYL4WULfiGGraFYKMYG0uCYHGT7cywGaeOtt++7jdOuO6vgjWpFx39E0XPGy2
D+j265dvnzcPG8fsP8PozsMkQUg55p9Q/gtQSwMECgAAAAAAiYIaSQAAAAAAAAAAAAAAAAYAHABt
ZWRpYS9VVAkAA7LOwFe4z8BXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAByCGkl+ljQ25wAAAJ0C
AAAfABwAbWVkaWEvYXVkaW8tZGF0YS11cmwtc3RkZXJyLnR4dFVUCQAD6M3AV+jNwFd1eAsAAQT1
AQAABBQAAADNkbFKBEEMhmv3KVJqs+we5xaDCHd7hYKCIKIgFtmZ3NxwY+aYySq+vRm1s5JrhDQJ
yZf8f1azh8UA/WA0zgeg99L3yzYmixGy2EyHlCWwf152Xbd4gYtr3qZLAzF5r2UogllK27bN6s+o
DU2zV1YhuaVS0NPNN3WtQ3sDOhjJHQOux42Jt8HPGSUkfgyyG9PrIVLNrpBdpGxgRLsjBx0Q46Q7
YUK7J3blOFUPhXL1axOsmF9sA6fNydlRG9j9GPelC4V8yh/K5TnG/0kOHKQi75WuH6juGHi6G8Em
ZrL1K9rzhjG45hNQSwMECgAAAAAAIIIaSQAAAAAAAAAAAAAAAAoAHABtZWRpYS9tYWMvVVQJAAPr
zcBXuM/AV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAgghpJ0FuT78AAAADyBgAAMwAcAG1lZGlh
L21hYy9jb250cm9scy1wYW5lbC1ub3QtY2xpcHBlZC1vdXQtc3RkZXJyLnR4dFVUCQAD683AV+vN
wFd1eAsAAQT1AQAABBQAAADtzzELwjAQBeDdX5FRB5smWq2CgxYFB1FwFClnemg0NuUahfx7Kw46
uDoIgRveTe99OzEYN5ekkRj190w7vELtS5Vv0W3IVkjOs1ofSzAGC4ZEk66QwzRh7ctCH2dQ4/pw
RuXmRJbyZXkHowtwWHRYW39+4Bjf2hspzECdkGeWcIWFhnfqimQgI9mPeVPtrPMV1nxjwCPxpuyV
8ulzX6SY0SUyKUe91i4gAuIXiETEn4jMVv4vFHGaBkVQBMUXxQNQSwMECgAAAAAAJoIaSQAAAAAA
AAAAAAAAABMAHABtZWRpYS9tZWRpYS1zb3VyY2UvVVQJAAP3zcBXuM/AV3V4CwABBPUBAAAEFAAA
AFBLAwQUAAIACAAmghpJEqYN04sAAACbAAAASAAcAG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2Utc3RhbGxlZC1ob2xkcy1zbGVlcC1hc3NlcnRpb24tc3RkZXJyLnR4dFVUCQAD983AV/fN
wFd1eAsAAQT1AQAABBQAAAANyLEOgjAQANDdr7gf0FwbBGHTsJg4KXExDkd7YJPSkivE1K+X7eVp
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
AQAABBQAAABQSwMEFAACAAgAE4MaSVe3cLinAAAA7gAAAGgAHAByZXRyaWVzL2pzL2RvbS9tb2R1
bGUtZXhlY3V0aW9uLWVycm9yLWluc2lkZS1kZXBlbmRlbnQtbW9kdWxlLXNob3VsZC1iZS1wcm9w
YWdhdGVkLXRvLW9uZXJyb3ItYWN0dWFsLnR4dFVUCQADtc/AV7XPwFd1eAsAAQT1AQAABBQAAABV
jUsOgkAQRPdzigprwx2MYSeBBC6ATCEkw7SZT0Zub6tx4aaT7nr9amRMKJu3UmrxDEGCrs7hRixb
oEVZ6ZFWwvJBb+kTdrHZUY9BCiaPz1ttTOcR8zwzxhMOyV9RJDHpDBsjZEHVn4ehwq7UdKeSizgn
RZtuB6qxGUZcura/NmNTqdO037ItwksCn5xzUvhgqs1b9atcsnNHP4WoocIpZBrzpzPmBVBLAwQU
AAIACAATgxpJuRF2xeYAAADdAQAAZgAcAHJldHJpZXMvanMvZG9tL21vZHVsZS1leGVjdXRpb24t
ZXJyb3ItaW5zaWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25l
cnJvci1kaWZmLnR4dFVUCQADtc/AV7XPwFd1eAsAAQT1AQAABBQAAADNjsFugzAMhu88he/UzaXa
rmwrp60aEmg9p8SjmUKCYluCtx8t1Z5h8sGS5e//P0QE85WCjsTmaMWa+tyaM13evTzWq/rgzJEu
Ophgl6SCQiyYiTUIm0yS/Ur/sHFpNGNyGghppl7Fp4iUc8roI3tH6Gii6CgKPv74mjQ4vBBOOU12
sEIOJWGKG0fzRP1628ssRVmW/9vW9qI23F2rCvCwe4bysHuCqirgNqd7DHiGmAS2VnKwkOwLrDeJ
OIBcCf66YesuoHlpW2Dte2L+1hCWxmZe6TVNstItv6vbDt4+T81H3dXFL1BLAwQUAAIACAATgxpJ
0sZ2SrIAAAANAQAAagAcAHJldHJpZXMvanMvZG9tL21vZHVsZS1leGVjdXRpb24tZXJyb3ItaW5z
aWRlLWRlcGVuZGVudC1tb2R1bGUtc2hvdWxkLWJlLXByb3BhZ2F0ZWQtdG8tb25lcnJvci1leHBl
Y3RlZC50eHRVVAkAA7XPwFe1z8BXdXgLAAEE9QEAAAQUAAAAbY5LisNAEEP3dQrh9eA7hMG7CTHY
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
BBQAAgAIAAODGklQBWjIggEAALQCAAAyABwAcmV0cmllcy9qcy9kb20vbW9kdWxlLWxvYWQtZXZl
bnQtd2l0aC1zcmMtZGlmZi50eHRVVAkAA5bPwFeWz8BXdXgLAAEE9QEAAAQUAAAAvVFNj9owEL3n
VzzlGhyLY/cEXdJqVShIibpnJ5mAVyZG9riQf98JLJX6B3qxx9Kb92WlFPQv79KZot4YNrp6r/U7
tT8sf15fk3W93lCbjtqZySdWTJFVoJgcRx2Ig5Xtj6h7f9Zn3ydHynnTK/pNI6ur5ZOKoVN0u1DH
1Jd846woiv+nbDpOxt11Vyuo5WK5RLFcfMFqlRWv+5/1flthV9X1+nv1gma6UBWCDy/Y3TkRxbgd
LAX0niJGz4hsAmNWQK7zBfJyPn2QQaas+LZ+2wqVPVMPcY6rsWzHIwaByL4dpo0fCezREjrjHPUZ
GomH2AV74dKPcxJRcG6GDDYI0/VEI/hEeIQFm+PDg6TEjI8wYw+6UZekqzJDhv2ImLqOYlxASnww
RiIYOecC4Qfkh3Vd55DPiOZIghy8c/4qku2EvKnqBq/73WFbNVV+Z82e3dhHH5+SPSbiMlPV/TkH
Nk+vf30aln9rBSy4WfZpb0jOTQcTorAIK4dEoqP+Ec9U9gdQSwMEFAACAAgAA4MaSVT0OAi6AAAA
GwEAADYAHAByZXRyaWVzL2pzL2RvbS9tb2R1bGUtbG9hZC1ldmVudC13aXRoLXNyYy1leHBlY3Rl
ZC50eHRVVAkAA5bPwFeWz8BXdXgLAAEE9QEAAAQUAAAAVY5BisMwDEX3OsUn65I7lJJdSwPJBRxH
SQyuXSyZNrcfdTod6EYgeLz3RxaF+BLu2uYUs5vxCDFiYiyhsH0bJ+jGuOW5Roa61QjdIMXjxQtc
msFP9lVZWqJrglTvWeSAPde3T5jh7JbAgryg6Y/D0OBmlFvZyCXHmB8WnHY0YzeMOF0v/bkbu8ac
dHnXgyBl/dRm7Kwtdb9fSKsV/lb+L3SqJUzGtvQqfpYtNca9d0XMYU4tlYm+qkQ/UEsDBBQAAgAI
AAODGkl3tqAYwAgAAD8gAAA6ABwAcmV0cmllcy9qcy9kb20vbW9kdWxlLWxvYWQtZXZlbnQtd2l0
aC1zcmMtcHJldHR5LWRpZmYuaHRtbFVUCQADls/AV5bPwFd1eAsAAQT1AQAABBQAAADVWmtv28gV
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
F1BLAwQUAAIACAATgxpJ9aA4JNIBAACUAwAAUgAcAHJldHJpZXMvanMvZG9tL21vZHVsZS1sb2Fk
LXNhbWUtbW9kdWxlLWZyb20tZGlmZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZGlmZi50eHRV
VAkAA7XPwFe1z8BXdXgLAAEE9QEAAAQUAAAAzZLBbtswDIbvfgrCV1s22q0Y1lPSxBuGJUsAB+tZ
sahEhWwFEoXEbz8qTjr0uNsOtimC/Mn/k4UQUP92NvYY6qUkWTevbf2K+5+Gbp+XaKyql7iPh9rK
0UUShIGExxAthdojecPdb6FWrq97p6JFYZ1UIsgexS2hveuFMlqjx4EEP34UJ2c4VuMge9MJvJyw
I1QVXSgriuL/2Ux2FKW97jWbgXgoP0HxUD7BbJYVi82vdrNqYN207fx78wy78YSN984/w/o6AQL7
MtqgB+UwwOAIAklPcDZ0hLzOS8ir9HaeA46y4tv8x4qlTI8K2BicpSEzHEBzCfcbPS7dgEAO9gid
tBZVBo/wbgMmc0DywFOsBUmE/YlSRyIAdOS9mMK9MFEACTfHLDjCAQf0ki8kqWSQwWaAELsOQyiB
cU/CAZH7AibU4DTk23nb5sDXFuQBuVI7a92ZVfYj5Lum3cFis96uml2TV1ecT+VXKL6UnxNOnrKI
PjmwY8lLmgBmIqZQm4FVzDDtzkwr2E0FIXLi6KJVCYc2l791OlL0WGX3u7ip4QW7mKyNSFUmmusx
Af73v6R6Cx8U0tSpidMJxh2ajkx1K31I2wUgH5H9ig9IMpH9AVBLAwQUAAIACAATgxpJXv+5ygQB
AACsAQAAVgAcAHJldHJpZXMvanMvZG9tL21vZHVsZS1sb2FkLXNhbWUtbW9kdWxlLWZyb20tZGlm
ZmVyZW50LWVudHJ5LXBvaW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0VVQJAAO1z8BXtc/AV3V4CwAB
BPUBAAAEFAAAAFWQTW7DIBCF95xi5HVg0RtEkXeNYsm+ADWDQ4XBgkEJt+9QO/2RYMHozeO97w2M
sxYTBoI1muIRSC/wcN6DJsJ1I6AIPmoDdEfIesWX0Ka4ggZTg17drL2vsGDApAlNcxHiFiCXecac
T1Bj2W0zIm9lTA4zRAvdcB7HDlZW6QVZaaP38cEeHxW6qR8nuNyuw3s/9Z0SQlxKanF9PXEil4FP
iAQGrQu85MIedMNZwbQLcuHBPRbPnpzbPX91tlBJqMR173SY4RPn0mpUJCX675cLy9FcNhyyoZDH
oKGQPyQl31TlFl0g9Zn/GrQv9x0lWu8XH1sY36BTbskyUCooxL/uQnwBUEsDBBQAAgAIABODGknV
Mge/EQkAABciAABaABwAcmV0cmllcy9qcy9kb20vbW9kdWxlLWxvYWQtc2FtZS1tb2R1bGUtZnJv
bS1kaWZmZXJlbnQtZW50cnktcG9pbnQtZHluYW1pYy1wcmV0dHktZGlmZi5odG1sVVQJAAO1z8BX
tc/AV3V4CwABBPUBAAAEFAAAANVabW/bOBL+nl9BJLgNsIhkO47T2GlzaBNn73DttoCD248HSqIs
NpToJanE7t399xu+yZIsOS4uW2B30cri68zwmecZavdtpnJ2c/Q2IziBR04URnGGhSTq3Wmp0uDq
FJql2jByczRjtHg8Q7MnKqkiCfr3EYJ/FFmrICExF1hRXsxQwQtybboiLhIigogrxfMZGq3WKIHf
JLk++u+RXc4tEnPGxQydDMdT0xfeU0buaJq6/gjHj0vByyIJ/ND0Sv9b38juIDmjCTpJksT2pbxQ
QYpzyjYzlPOCyxWOnYE5FksKJo9Ijoa2acXBOeOHIAw8eiLGoGzUsnQ8HnesL3EhA0kETWudkn4j
Zo/6pgEjqZqhYTjx7QmVK4ZhEVpAZJyFzzRRGUweDv/i7MNJQotlNdPa5o5G/2qejjOXFhkYparh
GX8iouXRZDK57gs2ITYMoT6Tj7CXdJNTxjG4IegyU82T06NuwX0MvvitOISeKnBx2HJZ4YiRICaM
NbwMzLqNKD1n4F1gzlBD7Vng1dayBYn12fWCxkxuQqYNF4dZH3cA1HC1tjvM1ys4XlgfXCNnKNSP
toe95kmakGij/0bG1A+Mx49fsFAhuDpLqZAqiDPKkt7A6u0WMP9s32KC5HC0Zy/s5/bw4beACyI9
pAG7iUcdoEXRGLMAM7qE3FC8wy1BNNL/houEER8Ot44OoX7PiD3QLZ7jUkh9NNrsdgbiCE6n9CcG
e1bAscljzNtnRQPnu3BYCrK5bgEznLx0XjbEKFT8xTCHqeB5K9iOH/UeOuq/lnlEBKCJ1NFlW73h
uzTqUDudNgjQp0sXDfpMvri46KSb+ulXHKMXmtgUsGlQEb7DgYNnF0SsuQ04jR1h1Rw3LnYSjhWJ
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
LXdpdGgtc3JjLWFjdHVhbC50eHRVVAkAA1rPwFdaz8BXdXgLAAEE9QEAAAQUAAAAVY9BasQwDEX3
PsXH6yHdz24YTDeTJuBcIOPIjcGNgmyT5vZ1mJTSjfigx/vSvfuw3cOgNdbe3s0Vw76SEWG5ouWp
REJayQUfSDAxJSyckfIoGVvIM/SbvkA3x2SpoSY1UKqMk7Dmhhc6bBWOEU+CD0ITtpkW5JkglLiI
+2uZ8NyhkziN8CrzXJapUapbkIpzlNIFO5eXMRFhrFNCPY09dH+zVuOrUuMnVdJzjLyd2sHYAfeu
7R9mMLo61fnjWUXf5Equ8E65UYfqt9KXGPd+lFSXFc5SSKl/OqV+AFBLAwQUAAIACADjghpJRyGm
ZvAAAAB1AQAASgAcAHJldHJpZXMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQt
d2l0aC1zcmMtYW5kLWltcG9ydC1hY3R1YWwudHh0VVQJAANZz8BXWc/AV3V4CwABBPUBAAAEFAAA
AFWPwWrDMAyG734K4XPJ7r2VYnZploDzAqmtLAbHCrJNmrefsjBGL0KgT/8n3bsv2z0MtMba26e5
wrCvaJiJr9CSrxEhr+jCFJDBE2ZIVCCXkQtsocygP/QFdHNUYmmkUwNmYRyHtTSU8EgTOEZ4IkyB
0cM2Y4IyIzBmquz+LR6e++8kLCuJxKOLI48lUIJw7nhcMXlMBZbzwnBeNVFNvlGqS5Crc5jzBXaq
pzojwiiVg/xAE+j+Zq2GRajxG4WcKEbaTr8ejB3g3rX9wwxGS6Zq31T4QleLwDuWRh1Rf8qpxrj3
I2cZCly4olJvcUr9AFBLAwQUAAIACADjghpJXHSSTUkBAABZAgAASAAcAHJldHJpZXMvanMvZG9t
L21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1kaWZmLnR4
dFVUCQADWc/AV1nPwFd1eAsAAQT1AQAABBQAAADFkcFuwjAMhu99il+9ljRC24kTDKodBgOp1XYO
jQuZQlMlzoC3X2gn7RF2sS3Zzv/5jxAC8sPZeKEgN4qVrD5r+UnHN8O/6SUaq+WGjvEkrbq7yIIp
sPAUouUgPbE3afsrSO0u8uJ0tCR6x6JzsdeCvHde0Df1LK6GzyL4VqjUMJfBeRZ0G6hl0iXfOCuK
4r95VMtR2ZFmuYSYz55QzGfPWC6zYr1/r/fbCruqrlev1QLNfaDq8eACu1EIIV1jOkMe2lFA0kVg
5RkPLeQynyEvH9H5VKQqQ5PwEVpvBi5dP/KlaWtxJHTGk8b1TD34TEhHuujbPxmN433sTPTQ1Frl
FRvXw0w7mgbqdToXkxcwE9ZoR5khw75HiG1LIcyQDJ3EAxFUig8z4Trkh1Vd50gfE9SJ0mTnrHXX
iSBvqrrBer87bKumysvsB1BLAwQUAAIACADjghpJuN3a474AAAAgAQAATAAcAHJldHJpZXMvanMv
ZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1leHBl
Y3RlZC50eHRVVAkAA1nPwFdZz8BXdXgLAAEE9QEAAAQUAAAAVY1BasQwDEX3PoXIuuQOpWTXYQLJ
BTz2d8fgWEGSSXP7ug1dzEab9/TfCjXSIHm3kStEWOjIpdADlLIg0vFEJXuCBMpNAkh3hJxyZ4/z
j+RtZzGKCMWLt8yV8vUTsaNGVKONYytdVapslLjVODp3r6QtBKi+0cntSitAvl/JUOJEw/y+LANt
3fJf6GbiUvi4+sM6LSt93G/z57ROQ990t5cUvhGadfmEje536j+ZWinn7EU77LJJg3Mvc879AFBL
AwQUAAIACADjghpJUMIAhyoIAAB8GQAAUAAcAHJldHJpZXMvanMvZG9tL21vZHVsZS1ub3QtZm91
bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtYW5kLWltcG9ydC1wcmV0dHktZGlmZi5odG1sVVQJAANZ
z8BXWc/AV3V4CwABBPUBAAAEFAAAAK1ZbW/bOBL+nl9BJLgNsIgkO7Z7sd360CbOHXDttoCD248H
SqIsNpToJanE7u799xu+yZIsJTnsbbG1RA7JeXlmnqH6PlcFW529zwlO4acgCqMkx0IS9eGyUllw
cwnDUh0YWZ0tGC0fr9DiiUqqSIp+P0PwnyJ7FaQk4QIryssFKnlJlmYq5iIlIoi5UrxYoPFuj1J4
Juny7D9ndju3ScIZFwt0MZrMzVx4Txm5o1nm5mOcPG4Fr8o08KLZjf7TPMieIDmjKbpI09TOZbxU
QYYLyg4LVPCSyx1OnIIFFlsKKo9JgUZ2aMfBOGOHIAwseiJGoXzc0XQymfTsL3EpA0kEzRqTkv4g
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
dPkvUEsDBBQAAgAIAOOCGkmmstrWLgEAABoCAAA9ABwAcmV0cmllcy9qcy9kb20vbW9kdWxlLW5v
dC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNyYy1kaWZmLnR4dFVUCQADWs/AV1rPwFd1eAsAAQT1
AQAABBQAAADFkM1uwjAQhO95ilGuiWOh9sQpFKIeCg1SonLOzwZcmRjZ6wJvXycg9RF6We9hPfPN
CCEgv4z2Z3Jy03Aji0MlD9R+KH4+b17pXm6o9Uepm7vxLJgcC0vOa3bSElsVfn872ZuzPJveaxKj
YTEYP/aCrDVW0A+NLK6KT8LZTtDtQh1Tn/GNoyRJ/gWi6dg3ekbIc4hF+oJkkb4iz6NkXX5W5bbA
rqiq1XuxRH2/UDGpLLGb1eFCBDUosugNOQQzOG4sYzJALOMUcTZNY8MStgh1YIbrrLpwZsYZKlxr
jZYwKEs9ricawSdCSGa87f5serR3xIE7hnq4zdGyCBHKEc53HTmXIpTz0HREaMKcioEZEO9XVRUj
lOyaI4XLwWhtrk/huqhqrMvdflvURZxFv1BLAwQUAAIACADjghpJgbxwMqoAAAD3AAAAQQAcAHJl
dHJpZXMvanMvZG9tL21vZHVsZS1ub3QtZm91bmQtZXJyb3ItZXZlbnQtd2l0aC1zcmMtZXhwZWN0
ZWQudHh0VVQJAANaz8BXWs/AV3V4CwABBPUBAAAEFAAAAFWNQWrDMBRE9zrFoHXxHULwriEG+wKO
PGoEqn74X8Lx7aPSZtHNbN7jzUKrsKDpUQcpVBXFnnLGjYhJuWG/s6DeCaVJ00DYgyHF1NntgDcN
HslQpCJKK9vg3LXAWgg0+8Ah7bdoJNa+mmiQCD+d5tnju1vrF7sZJWfZ/7LLOC84Xy/T57iMvjfd
RbaW+b7ik6HVLh+sg/tJvS9jy/mYVrUOu1y10bl/OedeUEsDBBQAAgAIAOOCGkn4+utLEAgAAFIZ
AABFABwAcmV0cmllcy9qcy9kb20vbW9kdWxlLW5vdC1mb3VuZC1lcnJvci1ldmVudC13aXRoLXNy
Yy1wcmV0dHktZGlmZi5odG1sVVQJAANaz8BXWs/AV3V4CwABBPUBAAAEFAAAAK1ZbW/bOBL+nl9B
JLgNsIgkO7Z7sd360CbOHXDttoCD248HSqIsNpToJanE7u799xu+yZIsJTnsbbG1RA7JZ2aeeaH6
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
AQT1AQAABBQAAADtz8EKgkAQBuC7TzHHvLQQEbK3Ug9RESnkMdbdOQjqyDorPX4mnjr1AHMc+P+f
+fKiuBcajszYDQxMYNxkeotgwFI3tMjowAY/ko/Uk9rQ4agyw0blVakqrC8Nq5KCt/i9UvKobuRC
O8ea3uEbnavViH5Cr8rHtWE8Z6d0GdzaYdjskiQGDTVRC+uA1nOkXCpa/3S0Xh/chKbnw/7FcZQL
QhCCEIQgBCEIQQjib8QHUEsDBBQAAgAIAHSCGkn8/X9eowAAABQDAAAtABwAc3RvcmFnZS9pbmRl
eGVkZGIvaW5kZXgtbXVsdGllbnRyeS1zdGRlcnIudHh0VVQJAAOMzsBXjM7AV3V4CwABBPUBAAAE
FAAAAO2PsQrCMBRF937FG+1iQERKNm07iIrYgh0lTd4QSPtC+lL8fGvp5OzY8cK9h3vKqrpXEo7M
2HkGJlBmVL1GUKCp8w4ZDegYBgqJeJKLHQ6iUKxE2dSiwfZiWdQUg8ZvyimguJGJbqrZ3uAbjWnF
gGHEIOrH1TKei1M+A7fa+80uy1KQ0BI5WABSTpV6nkj5s5FyObiJtufD/sVpUq4Sq8T/JD5QSwME
FAACAAgAdYIaSbxxbNWZAAAAxQAAAC0AHABzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1wb3B1bGF0
aW9uLXN0ZGVyci50eHRVVAkAA43OwFeNzsBXdXgLAAEE9QEAAAQUAAAAXY6xCsIwFEX3fsUb28WA
iJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5h9u07aOVcGLGITAwgbazHg2CBkND8MhowaQ4UczE
i3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8grnR4get7cWEccYo1PPmGC/1uVqDOxNCvi/LAiT0
RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsDBBQAAgAIAHiCGkn+qmlBsgUAAEwwAABFABwAc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLWluLXVwZ3JhZGVuZWVkZWQtcHJpdmF0ZS1z
dGRlcnIudHh0VVQJAAOUzsBXlM7AV3V4CwABBPUBAAAEFAAAAO1aS3PiOBC+55SfoCNUTaqM33Aj
MKnNYYepSWbvsi0Sb4zM2k6Yuexv35aNjWxLsiGwYWo4TNUgd6sf6q+71cr9/PYO+1mc/JxMAhKR
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
sxK9+sm2aKfVXmrIY1ROvajsdDTCniZJuqdqtqwrE1NXRjfHBzbztvIiNZMDCHMufN9viOXiPzB2
sXvUeSCp0IbwK+f95Q2ePU+tym6S1sLK/gGhyvrWLZxOaDBicGYoGYrC99LbmnbVkY4QuwqzBBal
NdcO8UcG5w6nWtY4llbQE/IWxzAIqpoXBMulsUWrdV5nywVSzbFpTiSlNQOh7L+J9PcEAw0dKwhs
sHXU3lFB55wXFkFbmnemEo+omhhnyLtot/OTejG8+kEwT9+3t5w3KOzM7qb6WnYzHzsCmvnYdjPR
dLZtu8nTmsskSu124n7mVlKbK/YYNHrlNE9LfTbQYQd9y32NqEJ4acBUCCeFuVYPBDQrMrMj0pHs
nk9LL58RLu/oa6BSOf44cwB15rATzrwEk9qckYGSzgaDtx2qdGuu5YmqTuRxnWhn/bRxeiG4PPSE
Boepq8IMEVxynncjFeTmgx/CrvKVRgxCIBzBr3ey3DvZls3+up+fYz+/hI3RkLRL3xh7F/R11fyQ
VfOk2fO6n/KWCosOO+zEf8QMdNLAn6rL532AO/vt6oBELColq2FN79VIKKh9Os7AEQe/Ke6YTWHG
4zkJW0Fz4xt1xP7AtewIgPpsDzwd9WNCM3TpHZaH2REpNGNrgWfyoNfMCh3LPGlm7bGb9DDGHKuC
babwnrMe3BMSEe5yQE8ueD4sCJ9sEfqw37WuW8R1i/h0W8QZ4vSBgzUzkRY/g59v7Db0nmP3/3mK
jZNoX7/dAclS56WRrk16XhrptPu1dWv2X656U38at2oZd7B1cEYxFwaEcMD6BVBLAwQUAAIACAB6
ghpJZSvnrukDAACWGAAARQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tdHdvLW9wZW5z
LW5vLXZlcnNpb25zLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADmM7AV5jOwFd1eAsAAQT1AQAABBQA
AADlWE1zmzAQvfvUn8DRnmlnwAiwfUtwM/WhdadJehewjjUFyRUkaS/97RXYBgGSbCfONJkefLDY
L+3bfVppMb+8Bv4AfDZjG6Dzy2/w8x7yIsQ0hjSFZHBLiVhZzC/nuMARzkEnaX2w3g0W/6+9ZCcf
MkohLgijYcrySs5BduCiANkTb+Ih1PfR6MxmcUf/irMsTAnQovTYsYam/mCYYUJHliLwA6aGkqVg
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
Ew6CZfLc3