<?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>200959</bug_id>
          
          <creation_ts>2019-08-20 18:12:50 -0700</creation_ts>
          <short_desc>Web Inspector: use more C++ keywords for defining agents</short_desc>
          <delta_ts>2019-10-10 17:25:50 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>200854</blocked>
    
    <blocked>201435</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1563349</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-20 18:12:50 -0700</bug_when>
    <thetext>Most agents/commands can be declared as `final`, and have an `explicit` constructor with a virtual destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563371</commentid>
    <comment_count>1</comment_count>
      <attachid>376838</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-20 19:45:54 -0700</bug_when>
    <thetext>Created attachment 376838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564822</commentid>
    <comment_count>2</comment_count>
      <attachid>376838</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-24 11:07:58 -0700</bug_when>
    <thetext>Comment on attachment 376838
Patch

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

These changes undoubtably causes more history churn than is necessary and doesn&apos;t really fix any issues. I like the uniformity but some of the change don&apos;t make sense.

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +         - make constructors `explicit` to ensure that they&apos;re called with the right context type

I thought `explicit` only made sense when constructors take one argument to avoid implicit construction. What is the advantage here?

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +         - use `final` wherever possible

If a class is already marked as final there is no need to doubly mark methods as final. The final is clearer.

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +         - add comments to indicate where any virtual functions come from

In general these comments are great, but the additional code movement and `Inspector::` namespacing seem a net negative.

&gt; Source/WebCore/inspector/agents/InspectorCSSAgent.h:86
&gt; +    // Inspector::CSSBackendDispatcherHandler

The `Inspector::` in these actually makes it harder to read.

&gt; Source/WebCore/inspector/agents/WebConsoleAgent.h:49
&gt; +protected:
&gt; +    explicit WebConsoleAgent(WebAgentContext&amp;);

Is this distinction actually important?

&gt; Source/WebCore/inspector/agents/worker/WorkerDebuggerAgent.h:46
&gt; +    void muteConsole() final { }

The class was already marked as final so this feels like code churn.

&gt; Source/WebKit/UIProcess/WebPageInspectorTargetAgent.h:35
&gt; +    explicit WebPageInspectorTargetAgent(Inspector::FrontendRouter&amp;, Inspector::BackendDispatcher&amp;);

The `explicit` keyword doesn&apos;t make sense for constructors with multiple arguments. I see you made this change to all constructors, is there an advantage?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564823</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-24 11:08:58 -0700</bug_when>
    <thetext>&gt; &gt; Source/JavaScriptCore/ChangeLog:11
&gt; &gt; +         - use `final` wherever possible
&gt; 
&gt; If a class is already marked as final there is no need to doubly mark
&gt; methods as final. The final is clearer.

I meant &quot;though final is clearer&quot;, so I&apos;m fine with these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565179</commentid>
    <comment_count>4</comment_count>
      <attachid>376838</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-26 17:10:42 -0700</bug_when>
    <thetext>Comment on attachment 376838
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:8
&gt;&gt; +         - make constructors `explicit` to ensure that they&apos;re called with the right context type
&gt; 
&gt; I thought `explicit` only made sense when constructors take one argument to avoid implicit construction. What is the advantage here?

AFAIU, using `explicit` prevented implicit argument conversion in general, but looking at it more, there&apos;s no real &quot;benefit&quot; to these cases, so I&apos;ll undo this part of the change.

&gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt;&gt; +         - use `final` wherever possible
&gt; 
&gt; If a class is already marked as final there is no need to doubly mark methods as final. The final is clearer.

Good point!  I&apos;ll remove the `override` from this (and those like it).

&gt;&gt; Source/JavaScriptCore/ChangeLog:12
&gt;&gt; +         - add comments to indicate where any virtual functions come from
&gt; 
&gt; In general these comments are great, but the additional code movement and `Inspector::` namespacing seem a net negative.

I&apos;ve found that these comments really help me navigate some of these files, and also generally help with organization.  I think they should be moved at some point, so having it all be in a &quot;neutral&quot; patch seems like a simple and straightforward time to do it.

&gt;&gt; Source/WebCore/inspector/agents/InspectorCSSAgent.h:86
&gt;&gt; +    // Inspector::CSSBackendDispatcherHandler
&gt; 
&gt; The `Inspector::` in these actually makes it harder to read.

Looking at it again after a few days, I agree.

&gt;&gt; Source/WebCore/inspector/agents/WebConsoleAgent.h:49
&gt;&gt; +    explicit WebConsoleAgent(WebAgentContext&amp;);
&gt; 
&gt; Is this distinction actually important?

Technically, no, but given how we have actual subclasses for Page and Worker, I&apos;d think we wouldn&apos;t want this to be directly constructed anywhere.

Alternatively, `WorkerConsoleAgent` doesn&apos;t actually do anything, so we could remove `WorkerConsoleAgent` and just use `WebConsoleAgent` instead.

I&apos;ll put this back in case we decide to do that in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565194</commentid>
    <comment_count>5</comment_count>
      <attachid>377299</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-26 17:23:32 -0700</bug_when>
    <thetext>Created attachment 377299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565223</commentid>
    <comment_count>6</comment_count>
      <attachid>377306</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-26 18:51:41 -0700</bug_when>
    <thetext>Created attachment 377306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565225</commentid>
    <comment_count>7</comment_count>
      <attachid>377307</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-26 18:55:26 -0700</bug_when>
    <thetext>Created attachment 377307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565253</commentid>
    <comment_count>8</comment_count>
      <attachid>377307</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-26 22:00:37 -0700</bug_when>
    <thetext>Comment on attachment 377307
Patch

Clearing flags on attachment: 377307

Committed r249132: &lt;https://trac.webkit.org/changeset/249132&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565254</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-26 22:00:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565256</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-26 22:01:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/54735374&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565369</commentid>
    <comment_count>11</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-08-27 09:27:13 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #4)
&gt; Comment on attachment 376838 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=376838&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt; &gt;&gt; +         - use `final` wherever possible
&gt; &gt; 
&gt; &gt; If a class is already marked as final there is no need to doubly mark methods as final. The final is clearer.
&gt; 
&gt; Good point!  I&apos;ll remove the `override` from this (and those like it).
&gt; 

I don&apos;t know if WebKit is planning to enforce a compiler check that any method which overrides a virtual method has to be explicitly marked with either &apos;override&apos; or &apos;final&apos;. Chromium did enable it at some point and I&apos;ve seen it enforced in other projects too. If there is such a plan this would change go against it.

Marking methods with &apos;override&apos;/&apos;final&apos; even if the class is already marked as &apos;final&apos; will ensure that changes to the method signature in the super class without updating its overrides in subclasses will trigger compilation errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573738</commentid>
    <comment_count>12</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-24 12:11:57 -0700</bug_when>
    <thetext>Each of the methods not marked with override or final now triggers warning during compilation with clang on GTK:

In file included from DerivedSources/WebKit/unified-sources/UnifiedSource-54928a2b-28.cpp:5:
In file included from ../../Source/WebKit/WebProcess/WebPage/WebInspector.cpp:43:
DerivedSources/ForwardingHeaders/WebCore/InspectorPageAgent.h:106:10: warning: &apos;getResourceContent&apos; overrides a member function but is not marked &apos;override&apos; [-Winconsistent-missing-override]
    void getResourceContent(ErrorString&amp;, const String&amp; frameId, const String&amp; url, String* content, bool* base64Encoded);
         ^

Any ideas how to deal with this? I&apos;ve described my point of view in #c11 above and it seems that the check is already enabled at least on some platforms so I believe we should either suppress the warnings or fix them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573750</commentid>
    <comment_count>13</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-24 12:31:26 -0700</bug_when>
    <thetext>(In reply to Yury Semikhatsky from comment #12)
&gt; Each of the methods not marked with override or final now triggers warning
&gt; during compilation with clang on GTK:
&gt; 
&gt; In file included from
&gt; DerivedSources/WebKit/unified-sources/UnifiedSource-54928a2b-28.cpp:5:
&gt; In file included from
&gt; ../../Source/WebKit/WebProcess/WebPage/WebInspector.cpp:43:
&gt; DerivedSources/ForwardingHeaders/WebCore/InspectorPageAgent.h:106:10:
&gt; warning: &apos;getResourceContent&apos; overrides a member function but is not marked
&gt; &apos;override&apos; [-Winconsistent-missing-override]
&gt;     void getResourceContent(ErrorString&amp;, const String&amp; frameId, const
&gt; String&amp; url, String* content, bool* base64Encoded);
&gt;          ^
&gt; 
&gt; Any ideas how to deal with this? I&apos;ve described my point of view in #c11
&gt; above and it seems that the check is already enabled at least on some
&gt; platforms so I believe we should either suppress the warnings or fix them.

They should be marked as either override or final.

I was just trying to not make code churn by turning overrides into final if the class was already final.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573884</commentid>
    <comment_count>14</comment_count>
      <attachid>379512</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-24 16:24:52 -0700</bug_when>
    <thetext>Created attachment 379512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578853</commentid>
    <comment_count>15</comment_count>
      <attachid>379512</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-10-10 14:27:22 -0700</bug_when>
    <thetext>Comment on attachment 379512
Patch

We don&apos;t normally do mass modifies like this (as you&apos;ve seen Ryosuke&apos;s comments on the webkit-dev thread you started). But given this cleans things up so efficiently I&apos;m fine with it. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578860</commentid>
    <comment_count>16</comment_count>
      <attachid>379512</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-10 14:36:32 -0700</bug_when>
    <thetext>Comment on attachment 379512
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        clang-tidy -checks=&apos;-*,modernize-use-override&apos; -header-filter=&apos;.*inspector.*&apos; -fix -p WebKitBuild/Release/

Most of these should be `final` instead of `override`, so I&apos;d change that.  I&apos;m not convinced about marking the destructor as `override`/`final`, but it&apos;s more of a personal preference so I won&apos;t block this on that.  I&apos;d defer to whatever webkit-dev ends up deciding on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578900</commentid>
    <comment_count>17</comment_count>
      <attachid>380699</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-10 16:40:40 -0700</bug_when>
    <thetext>Created attachment 380699
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578909</commentid>
    <comment_count>18</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-10 17:09:09 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #16)
&gt; Comment on attachment 379512 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=379512&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:11
&gt; &gt; +        clang-tidy -checks=&apos;-*,modernize-use-override&apos; -header-filter=&apos;.*inspector.*&apos; -fix -p WebKitBuild/Release/
&gt; 
&gt; Most of these should be `final` instead of `override`, so I&apos;d change that. 

My way of thinking is the following: by default methods are marked as override with rare exceptions of final when there is a strong reason to seal the method. One example is type() that returns constant passed in the class&apos;s constructor. E.g. for protocol handler methods it should usually be allowed to override them in subclasses. Somewhat orthogonal to that is marking class as final to show that there are no descendants. This restriction can be easily lifted later byr removing one keyword from the class declaration if we need to inherit from it. If each method is marked as final you&apos;d have to go through each of them and see if it&apos;s ok to unseal it.

If there is a strong preference toward one way over the other it&apos;d be nice to articulate it in the WebKit style guide so that it&apos;s implemented consistently across the code base. This patch simply fixes violations of https://webkit.org/code-style-guidelines/#override-methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578911</commentid>
    <comment_count>19</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-10 17:11:04 -0700</bug_when>
    <thetext>For posterity, these are the commands I used to prepare the patch:

Tools/Scripts/build-webkit --gtk --cmakeargs=&quot;-GNinja -DCMAKE_CXX_COMPILER=/usr/lib/ccache/clang++ -DCMAKE_C_COMPILER=/usr/lib/ccache/clang -DCMAKE_EXPORT_COMPILE_COMMANDS=ON&quot;

clang-tidy -checks=&apos;-*,modernize-use-override&apos; -header-filter=&apos;.*inspector.*&apos; -fix -p WebKitBuild/Release/  WebKitBuild/Release/DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-84c9f43f-*.cpp WebKitBuild/Release/DerivedSources/WebCore/unified-sources/UnifiedSource-84c9f43f-*.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578921</commentid>
    <comment_count>20</comment_count>
      <attachid>380699</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 17:25:48 -0700</bug_when>
    <thetext>Comment on attachment 380699
Patch for landing

Clearing flags on attachment: 380699

Committed r250996: &lt;https://trac.webkit.org/changeset/250996&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578922</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 17:25:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376838</attachid>
            <date>2019-08-20 19:45:54 -0700</date>
            <delta_ts>2019-08-26 17:23:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200959-20190820194553.patch</filename>
            <type>text/plain</type>
            <size>127086</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGUyZjNiNWJhY2JmNTcwMzBjZTM1YTJkMTcxMDZl
ODQ1OWVkZDhjZDEuLjI4M2MzMjM4Yzg3OGJkMjMxYTgwZTYxMjJjOGRmZjA3ZGJlZGUwODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTA4LTIwICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1
c2UgbW9yZSBDKysga2V5d29yZHMgZm9yIGRlZmluaW5nIGFnZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgIC0gbWFrZSBjb25zdHJ1Y3RvcnMgYGV4
cGxpY2l0YCB0byBlbnN1cmUgdGhhdCB0aGV5J3JlIGNhbGxlZCB3aXRoIHRoZSByaWdodCBjb250
ZXh0IHR5cGUKKyAgICAgICAgIC0gbWFrZSBjb25zdHJ1Y3RvcnMgYHByb3RlY3RlZGAgd2hlbiB0
aGUgYWdlbnQgaXNuJ3QgbWVhbnQgdG8gYmUgY29uc3RydWN0ZWQgZGlyZWN0bHkKKyAgICAgICAg
IC0gYWRkIGB2aXJ0dWFsYCBkZXN0cnVjdG9ycyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSAqLmNw
cCBzbyBmb3J3YXJkLWRlY2xhcmF0aW9ucyB3b3JrCisgICAgICAgICAtIHVzZSBgZmluYWxgIHdo
ZXJldmVyIHBvc3NpYmxlCisgICAgICAgICAtIGFkZCBjb21tZW50cyB0byBpbmRpY2F0ZSB3aGVy
ZSBhbnkgdmlydHVhbCBmdW5jdGlvbnMgY29tZSBmcm9tCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRp
dEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50
LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3BwOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwOgorCiAyMDE5LTA4
LTIwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10g
QXJyYXkucHJvdG90eXBlLnRvU3RyaW5nIHNob3VsZCBub3QgZ2V0ICJqb2luIiBmdW5jdGlvbiBl
YWNoIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NTY3MDhkNjU5NzkwODY4YzIwODA1NWZmNTRhNjQxNmNl
YjA4NjgyLi4zMTlmMTE2ODk5ZjIwZjYyNDk1OTZhMzA5YmFmNDRkNzhjYzRkNDQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIwMTktMDgtMjAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHVzZSBtb3JlIEMrKyBrZXl3b3Jk
cyBmb3IgZGVmaW5pbmcgYWdlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDA5NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAgLSBtYWtlIGNvbnN0cnVjdG9ycyBgZXhwbGljaXRgIHRvIGVuc3VyZSB0
aGF0IHRoZXkncmUgY2FsbGVkIHdpdGggdGhlIHJpZ2h0IGNvbnRleHQgdHlwZQorICAgICAgICAg
LSBtYWtlIGNvbnN0cnVjdG9ycyBgcHJvdGVjdGVkYCB3aGVuIHRoZSBhZ2VudCBpc24ndCBtZWFu
dCB0byBiZSBjb25zdHJ1Y3RlZCBkaXJlY3RseQorICAgICAgICAgLSBhZGQgYHZpcnR1YWxgIGRl
c3RydWN0b3JzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlICouY3BwIHNvIGZvcndhcmQtZGVjbGFy
YXRpb25zIHdvcmsKKyAgICAgICAgIC0gdXNlIGBmaW5hbGAgd2hlcmV2ZXIgcG9zc2libGUKKyAg
ICAgICAgIC0gYWRkIGNvbW1lbnRzIHRvIGluZGljYXRlIHdoZXJlIGFueSB2aXJ0dWFsIGZ1bmN0
aW9ucyBjb21lIGZyb20KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdl
bnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9XZWJIZWFwQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dlYkhlYXBBZ2Vu
dC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmNwcDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvcGFnZS9QYWdlTmV0d29ya0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvcGFn
ZS9QYWdlUnVudGltZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1Nl
cnZpY2VXb3JrZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1Nl
cnZpY2VXb3JrZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyQXVkaXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dv
cmtlckF1ZGl0QWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dv
cmtlckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dv
cmtlckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2Vy
L1dvcmtlck5ldHdvcmtBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2Vy
L1dvcmtlck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3Jr
ZXIvV29ya2VyUnVudGltZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3Jr
ZXIvV29ya2VyUnVudGltZUFnZW50LmNwcDoKKwogMjAxOS0wOC0yMCAgSnVzdGluIEZhbiAgPGp1
c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY29tbWVudCBmb2xsb3ct
dXAgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA3NTIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGFlZWI1YjkwMTk4Y2M5MTMxNmM5ZThlNmQxYzRmMzM2YjBlNGFjOTUuLmViMTcy
ZDdmZGJiMjU0NDNkY2UzM2ZhMTM1ZTI4N2Q0M2QzM2Y2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTktMDgtMjAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHVzZSBtb3JlIEMrKyBrZXl3b3JkcyBmb3IgZGVmaW5pbmcg
YWdlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDA5NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAg
LSBtYWtlIGNvbnN0cnVjdG9ycyBgZXhwbGljaXRgIHRvIGVuc3VyZSB0aGF0IHRoZXkncmUgY2Fs
bGVkIHdpdGggdGhlIHJpZ2h0IGNvbnRleHQgdHlwZQorICAgICAgICAgLSBtYWtlIGNvbnN0cnVj
dG9ycyBgcHJvdGVjdGVkYCB3aGVuIHRoZSBhZ2VudCBpc24ndCBtZWFudCB0byBiZSBjb25zdHJ1
Y3RlZCBkaXJlY3RseQorICAgICAgICAgLSBhZGQgYHZpcnR1YWxgIGRlc3RydWN0b3JzIHRoYXQg
YXJlIGRlZmluZWQgaW4gdGhlICouY3BwIHNvIGZvcndhcmQtZGVjbGFyYXRpb25zIHdvcmsKKyAg
ICAgICAgIC0gdXNlIGBmaW5hbGAgd2hlcmV2ZXIgcG9zc2libGUKKyAgICAgICAgIC0gYWRkIGNv
bW1lbnRzIHRvIGluZGljYXRlIHdoZXJlIGFueSB2aXJ0dWFsIGZ1bmN0aW9ucyBjb21lIGZyb20K
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50LmNwcDoKKwogMjAx
OS0wOC0yMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBb
RlRXXSBGaXggc2Nyb2xsaW5nIGluIG1vZGVybiBXZWJLaXQgdmlld3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNw
cAppbmRleCA0MTdlNzc1ZmI4MDI0OWMwNDAzMTM3YTgyNzgyMTM3MzI3ZDMzMmI0Li42YWFhMjdi
MWJhMDBkNzY5ZmU2ZDVlNDRiZWFhZDBiODFjYjBmZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCkBA
IC00NSw2ICs0NSw4IEBAIEluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JBZ2VudChBZ2VudENvbnRl
eHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckFnZW50Ojp+SW5zcGVjdG9yQWdlbnQoKSA9
IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2Vu
dC5oCmluZGV4IDY4N2JmNzUxMjIyODkwNTE0ZTg0ZDk5YTg4ZGY1Njk4ZWZlYTFmOTEuLmFhMGNk
MjhiNzE3NTc4MTNhMmE5Y2NmYjAzZGUwMTg5MWI5M2ExNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaApAQCAt
NDYsMTcgKzQ2LDIxIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvckFnZW50IGZp
bmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljCiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoSW5zcGVjdG9yQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIEluc3BlY3RvckFnZW50KEFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwg
fkluc3BlY3RvckFnZW50KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IEluc3BlY3RvckFnZW50
KEFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckFnZW50KCk7CiAKLSAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmRE
aXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJh
c2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlcios
IEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAotICAgIHZvaWQgZW5hYmxlKEVy
cm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBpbml0aWFsaXplZChFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAg
IC8vIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVy
cm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7
CisgICAgdm9pZCBpbml0aWFsaXplZChFcnJvclN0cmluZyYpIGZpbmFsOwogCisgICAgLy8gQ29t
bWFuZExpbmVBUEkKICAgICB2b2lkIGluc3BlY3QoUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpS
ZW1vdGVPYmplY3Q+JiYgb2JqZWN0VG9JbnNwZWN0LCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGhp
bnRzKTsKKwogICAgIHZvaWQgZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjb25zdCBTdHJpbmcm
IHNjcmlwdCk7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKaW5kZXggYjcxNzc5NTEwZDJmZjNlMDYwYjQ5NTc5
MGEzODQyOWFlMmU4OTFkMi4uNDk2NTRlOTJhNWQ2NDFjN2E4Y2I1ZjM4OTI3Nzg2NWE5ZmEyNjU0
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQXVkaXRBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKQEAgLTQ4LDYgKzQ4LDggQEAgSW5zcGVj
dG9yQXVkaXRBZ2VudDo6SW5zcGVjdG9yQXVkaXRBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQp
CiB7CiB9CiAKK0luc3BlY3RvckF1ZGl0QWdlbnQ6On5JbnNwZWN0b3JBdWRpdEFnZW50KCkgPSBk
ZWZhdWx0OworCiB2b2lkIEluc3BlY3RvckF1ZGl0QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckF1ZGl0QWdlbnQuaAppbmRleCBhYmFlZjg2MjE0OTVhZWQ2ZDRlNTU5YjI4OTEzM2MyZjlj
ZTdjMzVjLi5kOTIxZTUwNDk0MWRlZDRjMGIxYmI4Y2Y3MWUzNjE1YTA1Mzg2NWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRp
dEFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQXVkaXRBZ2VudC5oCkBAIC00MywxMSArNDMsMTEgQEAgY2xhc3MgSlNfRVhQT1JUX1BS
SVZBVEUgSW5zcGVjdG9yQXVkaXRBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1
YmxpYwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckF1ZGl0QWdlbnQpOwogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgfkluc3BlY3Rv
ckF1ZGl0QWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yQXVkaXRBZ2Vu
dCgpOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJy
aWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJl
YXNvbikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJv
bnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOworICAgIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgZmluYWw7CiAKICAgICAv
LyBBdWRpdEJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgogICAgIHZvaWQgc2V0dXAoRXJyb3JTdHJp
bmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcAppbmRleCA1ZDI0YzY5ZTZiZjQ1ZDcyZmIwYmRhNTNiNGM0NTc1OTg2
MTNjYmNiLi43NjI2MzBkMzIxNzNmYTlhODg0OTA3NDQ5NGJlMDQzYmU3YzUwYjI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25z
b2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTUwLDYgKzUwLDggQEAgSW5zcGVjdG9yQ29u
c29sZUFnZW50OjpJbnNwZWN0b3JDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0KQog
ewogfQogCitJbnNwZWN0b3JDb25zb2xlQWdlbnQ6On5JbnNwZWN0b3JDb25zb2xlQWdlbnQoKSA9
IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmluZGV4IDU1Mzg3YzQ5N2VhZTliMTdiOTI1Y2E3MTNm
NmVjZTgzZDRhODRiN2YuLjJkNGJmNWMxNDYwMGY3OTI3NDg3NjQ2NDdiMjM4NjYwZGRmNDE1YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC01MiwxOSArNTIsMjMgQEAgY2xhc3Mg
SlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yQ29uc29sZUFnZW50IDogcHVibGljIEluc3BlY3Rv
ckFnZW50QmFzZSwgcHVibGkKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JDb25z
b2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIElu
c3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0
b3JDb25zb2xlQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgZXhwbGljaXQgSW5zcGVjdG9yQ29uc29s
ZUFnZW50KEFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckNvbnNvbGVBZ2Vu
dCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0
ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aXNjYXJkVmFsdWVzKCkgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAg
dm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5k
RGlzcGF0Y2hlciopIGZpbmFsOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoRGlzY29ubmVjdFJlYXNvbikgZmluYWw7CisgICAgdm9pZCBkaXNjYXJkVmFsdWVzKCkgZmlu
YWw7CisKKyAgICAvLyBDb25zb2xlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcm
KSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyTWVzc2FnZXMoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGdldExvZ2dpbmdDaGFubmVscyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpB
cnJheU9mPFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsPj4mKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldExvZ2dpbmdDaGFubmVsTGV2ZWwoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNoYW5u
ZWwsIGNvbnN0IFN0cmluZyYgbGV2ZWwpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRJbnNwZWN0
b3JIZWFwQWdlbnQoSW5zcGVjdG9ySGVhcEFnZW50KiBhZ2VudCkgeyBtX2hlYXBBZ2VudCA9IGFn
ZW50OyB9CiAKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZv
aWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2xlYXJNZXNzYWdl
cyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotCiAgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCByZXNldCgpOwogCkBAIC03Nyw5ICs4MSw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiBs
YWJlbCk7CiAgICAgdm9pZCBjb3VudFJlc2V0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiBsYWJlbCk7CiAKLSAgICB2b2lkIGdldExvZ2dpbmdDaGFubmVscyhFcnJvclN0cmluZyYsIFJl
ZlB0cjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsPj4mKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHNldExvZ2dpbmdDaGFubmVsTGV2ZWwoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGNoYW5uZWwsIGNvbnN0IFN0cmluZyYgbGV2ZWwpIG92ZXJyaWRlOwotCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8Q29uc29sZU1l
c3NhZ2U+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCA1ODkxM2M2
MDU5OTUyMjE1OTk0NTIxYmNiYzViY2QzM2UxZjlkN2Y5Li42MWY5N2E1Y2U3NmI0Y2E3OGNhZTg2
N2E1OGY4ZTdhMWRmYWE4OWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApA
QCAtNzEsOSArNzEsNyBAQCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50KEFnZW50Q29udGV4dCYgY29udGV4dCkKICAgICBjbGVhckJyZWFrRGV0YWlscygpOwog
fQogCi1JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp+SW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpCi17
Ci19CitJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp+SW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpID0g
ZGVmYXVsdDsKIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7CkBAIC04
MSw4ICs3OSw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuCiAKIHZvaWQgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNv
biByZWFzb24pCiB7Ci0gICAgYm9vbCBza2lwUmVjb21waWxlID0gcmVhc29uID09IERpc2Nvbm5l
Y3RSZWFzb246Okluc3BlY3RlZFRhcmdldERlc3Ryb3llZDsKLSAgICBkaXNhYmxlKHNraXBSZWNv
bXBpbGUpOworICAgIGRpc2FibGUocmVhc29uID09IERpc2Nvbm5lY3RSZWFzb246Okluc3BlY3Rl
ZFRhcmdldERlc3Ryb3llZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZW5h
YmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCAyM2E4ZGEwMTNkYjk0NWEy
MzM0M2VlMDA1YmNiMjU0MmNmMTkyNjkxLi4yZTUxMzU1NmNiMjMzMWVkZjk0ZDM2ZGVhN2NmYzU0
Zjc5MmUzYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC00OSwxNCArNDks
MTUgQEAgY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogY2xhc3MgU2NyaXB0RGVidWdTZXJ2
ZXI7CiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZB
VEUgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1
YmxpYyBTY3JpcHREZWJ1Z0xpc3RlbmVyLCBwdWJsaWMgRGVidWdnZXJCYWNrZW5kRGlzcGF0Y2hl
ckhhbmRsZXIgeworY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBEZWJ1Z2dlckJhY2tlbmREaXNw
YXRjaGVySGFuZGxlciwgcHVibGljIFNjcmlwdERlYnVnTGlzdGVuZXIgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBiYWNrdHJhY2VPYmpl
Y3RHcm91cDsKLQogICAgIHZpcnR1YWwgfkluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKTsKIAorICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBiYWNrdHJhY2VPYmplY3RHcm91cDsKKworICAgIC8vIEluc3Bl
Y3RvckFnZW50QmFzZQogICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250
ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKICAgICB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCkBAIC04NCw2
ICs4NSwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYXVzZUZvckludGVybmFsU2NyaXB0cyhF
cnJvclN0cmluZyYsIGJvb2wgc2hvdWxkUGF1c2UpIGZpbmFsOwogICAgIHZvaWQgZXZhbHVhdGVP
bkNhbGxGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgY29uc3QgYm9v
bCogaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRp
b25zQW5kTXV0ZUNvbnNvbGUsIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wq
IGdlbmVyYXRlUHJldmlldywgY29uc3QgYm9vbCogc2F2ZVJlc3VsdCwgY29uc3QgYm9vbCogZW11
bGF0ZVVzZXJHZXN0dXJlLCBSZWZQdHI8UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4m
IHJlc3VsdCwgT3B0aW9uYWw8Ym9vbD4mIHdhc1Rocm93biwgT3B0aW9uYWw8aW50PiYgc2F2ZWRS
ZXN1bHRJbmRleCkgb3ZlcnJpZGU7CiAKKyAgICAvLyBTY3JpcHREZWJ1Z0xpc3RlbmVyCisgICAg
dm9pZCBkaWRQYXJzZVNvdXJjZShKU0M6OlNvdXJjZUlELCBjb25zdCBTY3JpcHQmKSBmaW5hbDsK
KyAgICB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgaW50IGVycm9yTGluZSwgY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpIGZpbmFsOworICAgIHZvaWQgd2lsbFJ1bk1pY3JvdGFzaygpIGZpbmFsOwor
ICAgIHZvaWQgZGlkUnVuTWljcm90YXNrKCkgZmluYWw7CisgICAgdm9pZCBkaWRQYXVzZShKU0M6
OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBjYWxsRnJhbWVzLCBKU0M6OkpTVmFsdWUgZXhjZXB0
aW9uT3JDYXVnaHRWYWx1ZSkgZmluYWw7CisgICAgdm9pZCBkaWRDb250aW51ZSgpIGZpbmFsOwor
ICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvblNvdW5kKGludCBicmVha3BvaW50QWN0aW9uSWRlbnRp
ZmllcikgZmluYWw7CisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uUHJvYmUoSlNDOjpFeGVjU3Rh
dGUmLCBjb25zdCBTY3JpcHRCcmVha3BvaW50QWN0aW9uJiwgdW5zaWduZWQgYmF0Y2hJZCwgdW5z
aWduZWQgc2FtcGxlSWQsIEpTQzo6SlNWYWx1ZSBzYW1wbGUpIGZpbmFsOworCiAgICAgYm9vbCBp
c1BhdXNlZCgpIGNvbnN0OwogICAgIGJvb2wgYnJlYWtwb2ludHNBY3RpdmUoKSBjb25zdDsKIApA
QCAtMTIwLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKExpc3Rl
bmVyJiBsaXN0ZW5lcikgeyBtX2xpc3RlbmVycy5yZW1vdmUoJmxpc3RlbmVyKTsgfQogCiBwcm90
ZWN0ZWQ6Ci0gICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudChBZ2VudENvbnRleHQmKTsKKyAgICBl
eHBsaWNpdCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KEFnZW50Q29udGV4dCYpOwogCiAgICAgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyJiBpbmplY3RlZFNjcmlwdE1hbmFnZXIoKSBjb25zdCB7IHJldHVy
biBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsgfQogICAgIHZpcnR1YWwgSW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQpID0gMDsKQEAgLTEzMSw3ICsxNDIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCB2b2lkIHVubXV0ZUNvbnNvbGUoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKCk7
Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUoYm9vbCBza2lwUmVjb21waWxlKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpOwogCiAgICAgdmlydHVhbCBT
dHJpbmcgc291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0IFNjcmlwdCYpOwogCkBAIC0xNDEsMTYg
KzE1Miw2IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgUmVmPEpTT046OkFycmF5T2Y8UHJv
dG9jb2w6OkRlYnVnZ2VyOjpDYWxsRnJhbWU+PiBjdXJyZW50Q2FsbEZyYW1lcyhjb25zdCBJbmpl
Y3RlZFNjcmlwdCYpOwogCi0gICAgLy8gSlNDOjpTY3JpcHREZWJ1Z0xpc3RlbmVyCi0gICAgdm9p
ZCBkaWRQYXJzZVNvdXJjZShKU0M6OlNvdXJjZUlELCBjb25zdCBTY3JpcHQmKSBmaW5hbDsKLSAg
ICB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgaW50IGVycm9yTGluZSwgY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UpIGZpbmFsOwotICAgIHZvaWQgd2lsbFJ1bk1pY3JvdGFzaygpIGZpbmFsOwotICAg
IHZvaWQgZGlkUnVuTWljcm90YXNrKCkgZmluYWw7Ci0gICAgdm9pZCBkaWRQYXVzZShKU0M6OkV4
ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBjYWxsRnJhbWVzLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9u
T3JDYXVnaHRWYWx1ZSkgZmluYWw7Ci0gICAgdm9pZCBkaWRDb250aW51ZSgpIGZpbmFsOwotICAg
IHZvaWQgYnJlYWtwb2ludEFjdGlvblNvdW5kKGludCBicmVha3BvaW50QWN0aW9uSWRlbnRpZmll
cikgZmluYWw7Ci0gICAgdm9pZCBicmVha3BvaW50QWN0aW9uUHJvYmUoSlNDOjpFeGVjU3RhdGUm
LCBjb25zdCBTY3JpcHRCcmVha3BvaW50QWN0aW9uJiwgdW5zaWduZWQgYmF0Y2hJZCwgdW5zaWdu
ZWQgc2FtcGxlSWQsIEpTQzo6SlNWYWx1ZSBzYW1wbGUpIGZpbmFsOwotCiAgICAgdm9pZCByZXNv
bHZlQnJlYWtwb2ludChjb25zdCBTY3JpcHQmLCBKU0M6OkJyZWFrcG9pbnQmKTsKICAgICB2b2lk
IHNldEJyZWFrcG9pbnQoSlNDOjpCcmVha3BvaW50JiwgYm9vbCYgZXhpc3RpbmcpOyAgICAKICAg
ICB2b2lkIGRpZFNldEJyZWFrcG9pbnQoY29uc3QgSlNDOjpCcmVha3BvaW50JiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU2NyaXB0QnJlYWtwb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAK
aW5kZXggYzE0NzM2ODlmYzBmMWI3ZGNiMmY1Y2Y1YTU2YzRiN2U5ZGMzZDJjNy4uMDlkNjRlYjY4
OWMzNzg3NTYzNDRhOTk4MTk3NWZkOWJkMmI4YmIyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQu
Y3BwCkBAIC00OSw2ICs0OSw4IEBAIEluc3BlY3RvckhlYXBBZ2VudDo6SW5zcGVjdG9ySGVhcEFn
ZW50KEFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorSW5zcGVjdG9ySGVhcEFnZW50Ojp+
SW5zcGVjdG9ySGVhcEFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3RvckhlYXBBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERp
c3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaAppbmRleCAyYmI5MTZmMTJkMTFh
MzFiZjAzYjc2ZDkyOGYwNjA3YTY5NGUwZjcwLi41N2M0ZGIwMjE5ZDU5NmY2ZDEzMWFlNjRkMTc2
ZWY1ZmY5NzdhOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaApAQCAtNDYsMTEgKzQ2LDEyIEBA
IGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvckhlYXBBZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBICiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVj
dG9ySGVhcEFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBJbnNwZWN0b3JIZWFwQWdlbnQoQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVj
dG9ySGVhcEFnZW50KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IEluc3BlY3RvckhlYXBBZ2Vu
dChBZ2VudENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JIZWFwQWdlbnQoKTsKIAot
ICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFj
a2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFn
ZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91
dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCiAgICAgLy8gSGVhcEJh
Y2tlbmREaXNwYXRjaGVySGFuZGxlcgogICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3Zl
cnJpZGU7CkBAIC02Miw5ICs2Myw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFByZXZpZXcoRXJy
b3JTdHJpbmcmLCBpbnQgaGVhcE9iamVjdElkLCBPcHRpb25hbDxTdHJpbmc+JiByZXN1bHRTdHJp
bmcsIFJlZlB0cjxQcm90b2NvbDo6RGVidWdnZXI6OkZ1bmN0aW9uRGV0YWlscz4mLCBSZWZQdHI8
UHJvdG9jb2w6OlJ1bnRpbWU6Ok9iamVjdFByZXZpZXc+JikgZmluYWw7CiAgICAgdm9pZCBnZXRS
ZW1vdGVPYmplY3QoRXJyb3JTdHJpbmcmLCBpbnQgaGVhcE9iamVjdElkLCBjb25zdCBTdHJpbmcq
IG9wdGlvbmFsT2JqZWN0R3JvdXAsIFJlZlB0cjxQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2Jq
ZWN0PiYgcmVzdWx0KSBmaW5hbDsKIAotICAgIC8vIEhlYXBPYnNlcnZlcgotICAgIHZvaWQgd2ls
bEdhcmJhZ2VDb2xsZWN0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRHYXJiYWdlQ29sbGVjdChK
U0M6OkNvbGxlY3Rpb25TY29wZSkgb3ZlcnJpZGU7CisgICAgLy8gSlNDOjpIZWFwT2JzZXJ2ZXIK
KyAgICB2b2lkIHdpbGxHYXJiYWdlQ29sbGVjdCgpIGZpbmFsOworICAgIHZvaWQgZGlkR2FyYmFn
ZUNvbGxlY3QoSlNDOjpDb2xsZWN0aW9uU2NvcGUpIGZpbmFsOwogCiBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBjbGVhckhlYXBTbmFwc2hvdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKaW5k
ZXggMTZhN2Q5ZjQ2MjRhNDI3M2FmNjEyZGEyYzU5ODdjNjVhMWZjYTI0Zi4uNjJjZGE1MWYxNjNl
MmM0YTVkMGQ0MzRkN2NhM2Q0ZmFkNDdmZTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50
LmgKQEAgLTUzLDkgKzUzLDExIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvclJ1
bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpCiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+SW5zcGVjdG9yUnVudGltZUFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVj
dG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBmaW5h
bDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFz
b24pIGZpbmFsOwogCisgICAgLy8gUnVudGltZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgogICAg
IHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGUgeyBtX2VuYWJsZWQgPSB0cnVlOyB9
CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGUgeyBtX2VuYWJsZWQgPSBm
YWxzZTsgfQogICAgIHZvaWQgcGFyc2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24sIFByb3RvY29sOjpSdW50aW1lOjpTeW50YXhFcnJvclR5cGUqIHJlc3VsdCwgT3B0aW9u
YWw8U3RyaW5nPiYgbWVzc2FnZSwgUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpFcnJvclJhbmdl
PiYpIGZpbmFsOwpAQCAtNzAsMTUgKzcyLDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHNhdmVSZXN1
bHQoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIGNhbGxBcmd1bWVudCwgY29uc3Qg
aW50KiBleGVjdXRpb25Db250ZXh0SWQsIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5kZXgp
IGZpbmFsOwogICAgIHZvaWQgc2V0U2F2ZWRSZXN1bHRBbGlhcyhFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyogYWxpYXMpIGZpbmFsOwogICAgIHZvaWQgcmVsZWFzZU9iamVjdEdyb3VwKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCkgZmluYWw7Ci0gICAgdm9pZCBnZXRS
dW50aW1lVHlwZXNGb3JWYXJpYWJsZXNBdE9mZnNldHMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09O
OjpBcnJheSYgbG9jYXRpb25zLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6UnVudGlt
ZTo6VHlwZURlc2NyaXB0aW9uPj4mKSBvdmVycmlkZTsKLSAgICB2b2lkIGVuYWJsZVR5cGVQcm9m
aWxlcihFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZVR5cGVQcm9maWxl
cihFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5hYmxlQ29udHJvbEZsb3dQcm9m
aWxlcihFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZUNvbnRyb2xGbG93
UHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldEJhc2ljQmxvY2tz
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBpbl9zb3VyY2VJRCwgUmVmUHRyPEpTT046OkFy
cmF5T2Y8UHJvdG9jb2w6OlJ1bnRpbWU6OkJhc2ljQmxvY2s+PiYgb3V0X2Jhc2ljQmxvY2tzKSBv
dmVycmlkZTsKKyAgICB2b2lkIGdldFJ1bnRpbWVUeXBlc0ZvclZhcmlhYmxlc0F0T2Zmc2V0cyhF
cnJvclN0cmluZyYsIGNvbnN0IEpTT046OkFycmF5JiBsb2NhdGlvbnMsIFJlZlB0cjxKU09OOjpB
cnJheU9mPFByb3RvY29sOjpSdW50aW1lOjpUeXBlRGVzY3JpcHRpb24+PiYpIGZpbmFsOworICAg
IHZvaWQgZW5hYmxlVHlwZVByb2ZpbGVyKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBk
aXNhYmxlVHlwZVByb2ZpbGVyKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBlbmFibGVD
b250cm9sRmxvd1Byb2ZpbGVyKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxl
Q29udHJvbEZsb3dQcm9maWxlcihFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgZ2V0QmFz
aWNCbG9ja3MoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGluX3NvdXJjZUlELCBSZWZQdHI8
SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6UnVudGltZTo6QmFzaWNCbG9jaz4+JiBvdXRfYmFzaWNC
bG9ja3MpIGZpbmFsOwogCiBwcm90ZWN0ZWQ6Ci0gICAgSW5zcGVjdG9yUnVudGltZUFnZW50KEFn
ZW50Q29udGV4dCYpOworICAgIGV4cGxpY2l0IEluc3BlY3RvclJ1bnRpbWVBZ2VudChBZ2VudENv
bnRleHQmKTsKIAogICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciYgaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKCkgeyByZXR1cm4gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJv
ZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcAppbmRleCBjYmFkODFkNjk5NDQwYTczM2Iw
YWYwNDE2OTRhODZjYTllNmU4ZWYwLi40OTFlNDk5NDQ0YzQ0ZjkzNjUzYWUzYTc0YjIxNDljMzI1
YWVkM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcApA
QCAtNDUsOSArNDUsNyBAQCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50OjpJbnNwZWN0b3JT
Y3JpcHRQcm9maWxlckFnZW50KEFnZW50Q29udGV4dCYgY29udGV4dAogewogfQogCi1JbnNwZWN0
b3JTY3JpcHRQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudCgpCi17
Ci19CitJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9yU2NyaXB0UHJvZmls
ZXJBZ2VudCgpID0gZGVmYXVsdDsKIAogdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlz
cGF0Y2hlciopCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmgKaW5k
ZXggOGEyODdkOGM1NjFjNmM3ZmRlYjQyYTY1OGM3ODBmMjM3OTM3M2Y5YS4uYzJhNjViNTMyZDI3
MDdmMTE3MDU3YTJiMTcxZDcxYTQ2MGQxMTBjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlw
dFByb2ZpbGVyQWdlbnQuaApAQCAtNDMsMjAgKzQzLDIxIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklW
QVRFIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9y
QWdlCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2Vu
dCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9y
U2NyaXB0UHJvZmlsZXJBZ2VudChBZ2VudENvbnRleHQmKTsKKyAgICBleHBsaWNpdCBJbnNwZWN0
b3JTY3JpcHRQcm9maWxlckFnZW50KEFnZW50Q29udGV4dCYpOwogICAgIHZpcnR1YWwgfkluc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsK
LSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24p
IG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBm
aW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RS
ZWFzb24pIGZpbmFsOwogCiAgICAgLy8gU2NyaXB0UHJvZmlsZXJCYWNrZW5kRGlzcGF0Y2hlckhh
bmRsZXIKLSAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBp
bmNsdWRlU2FtcGxlcykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmLCBjb25z
dCBib29sKiBpbmNsdWRlU2FtcGxlcykgZmluYWw7CisgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJy
b3JTdHJpbmcmKSBmaW5hbDsKIAotICAgIC8vIERlYnVnZ2VyOjpQcm9maWxpbmdDbGllbnQKLSAg
ICBib29sIGlzQWxyZWFkeVByb2ZpbGluZygpIGNvbnN0IG92ZXJyaWRlOwotICAgIFNlY29uZHMg
d2lsbEV2YWx1YXRlU2NyaXB0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFdmFsdWF0ZVNjcmlw
dChTZWNvbmRzLCBKU0M6OlByb2ZpbGluZ1JlYXNvbikgb3ZlcnJpZGU7CisgICAgLy8gSlNDOjpE
ZWJ1Z2dlcjo6UHJvZmlsaW5nQ2xpZW50CisgICAgYm9vbCBpc0FscmVhZHlQcm9maWxpbmcoKSBj
b25zdCBmaW5hbDsKKyAgICBTZWNvbmRzIHdpbGxFdmFsdWF0ZVNjcmlwdCgpIGZpbmFsOworICAg
IHZvaWQgZGlkRXZhbHVhdGVTY3JpcHQoU2Vjb25kcywgSlNDOjpQcm9maWxpbmdSZWFzb24pIGZp
bmFsOwogCiBwcml2YXRlOgogICAgIHZvaWQgYWRkRXZlbnQoU2Vjb25kcyBzdGFydFRpbWUsIFNl
Y29uZHMgZW5kVGltZSwgSlNDOjpQcm9maWxpbmdSZWFzb24pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0
QWdlbnQuY3BwCmluZGV4IDkzNTA2OGM3YWUxMTk3MTA1NDRjMWY3Njc5ODIyZGZiNjZlNTZiODcu
LmU0M2EzYjhjNWUxYmIyM2I2ZjRkOGU1NjJjMjQ4NDY1NWZmNjJlOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JUYXJnZXRBZ2VudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAgSW5zcGVjdG9yVGFyZ2V0QWdlbnQ6
Okluc3BlY3RvclRhcmdldEFnZW50KEZyb250ZW5kUm91dGVyJiBmcm9udGVuZFJvdXRlciwgQmFj
a2UKIHsKIH0KIAorSW5zcGVjdG9yVGFyZ2V0QWdlbnQ6On5JbnNwZWN0b3JUYXJnZXRBZ2VudCgp
ID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JUYXJnZXRBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKQogewogICAg
IG1faXNDb25uZWN0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50LmgKaW5kZXggYzc5
OGVlZGNlMmVjNGYxZjRhZjVkYmNmNjQwYTk0YmMzYzllNGJiZC4uZWU3YWU1MjU4N2U4Yjg3MzAy
YTczZTNhNTc2ZDhiYzNkZWZmM2I2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oCkBAIC00
MCwxNCArNDAsMTIgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yVGFyZ2V0QWdl
bnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbnNwZWN0b3JUYXJnZXRBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yVGFyZ2V0QWdlbnQoRnJvbnRlbmRSb3V0ZXImLCBC
YWNrZW5kRGlzcGF0Y2hlciYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvclRhcmdldEFnZW50KCkg
PSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkluc3BlY3RvclRhcmdldEFnZW50KCk7CiAKKyAgICAv
LyBJbnNwZWN0b3JBZ2VudEJhc2UKICAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CiAgICAgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAot
ICAgIHZpcnR1YWwgRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwoKSA9IDA7Ci0KICAg
ICAvLyBUYXJnZXRCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGV4aXN0cyhFcnJv
clN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1RhcmdldChFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7
CkBAIC01OSw2ICs1NywxMSBAQCBwdWJsaWM6CiAgICAgLy8gVGFyZ2V0IG1lc3NhZ2VzLgogICAg
IHZvaWQgc2VuZE1lc3NhZ2VGcm9tVGFyZ2V0VG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIHRhcmdl
dElkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQg
SW5zcGVjdG9yVGFyZ2V0QWdlbnQoRnJvbnRlbmRSb3V0ZXImLCBCYWNrZW5kRGlzcGF0Y2hlciYp
OworCisgICAgdmlydHVhbCBGcm9udGVuZENoYW5uZWwmIGZyb250ZW5kQ2hhbm5lbCgpID0gMDsK
KwogcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3RUb1RhcmdldHMoKTsKICAgICB2b2lkIGRpc2Nv
bm5lY3RGcm9tVGFyZ2V0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5jcHAK
aW5kZXggODZlNzY3YmEwZGFmZjE3ZjUzMmQwNzVkYWY2NTVjN2RjZDYxM2Q1OC4uNjlkNzM2ODcx
NWZiZGY3YWMzOGQ5YTdjNDA0YWI2MDZjNjdhMWUxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dEF1ZGl0QWdlbnQuY3BwCkBAIC00NCw2ICs0NCw4IEBAIEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2Vu
dDo6SlNHbG9iYWxPYmplY3RBdWRpdEFnZW50KEpTQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewog
fQogCitKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQ6On5KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQo
KSA9IGRlZmF1bHQ7CisKIEluamVjdGVkU2NyaXB0IEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudDo6
aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgaW50
KiBleGVjdXRpb25Db250ZXh0SWQpCiB7CiAgICAgaWYgKGV4ZWN1dGlvbkNvbnRleHRJZCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9i
YWxPYmplY3RBdWRpdEFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaAppbmRleCBjMWNhZDMyMzY5MGQ3YmFiNmUy
ZjU2MDE5YjRlYmE4MTk3YjQ0ODFjLi4wZTc3Y2IwZWNhMjg5YTY1NDkzZDZkMTExZmIxNmVjMTNh
ZDY0ODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaApAQCAtMzgsOSArMzgs
MTAgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50IGZpbmFsIDogcHVibGljIEluc3Bl
Y3RvckF1ZGl0QWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIGV4cGxpY2l0IEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudChKU0FnZW50Q29udGV4dCYpOwor
ICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudCgpOwogCiBwcml2YXRlOgotICAg
IEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0
IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKKyAgICBJbmplY3RlZFNjcmlwdCBp
bmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNv
bnRleHRJZCkgZmluYWw7CiAKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBtX2dsb2JhbE9iamVj
dDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcAppbmRleCA5
YjNmMzc5ZDVlNWE0OTBkYmUzNzVjNzJhYzk5ZmE3MjBiOWFjY2VmLi5hMzFkNzBjZmQwNDg4ZTU3
YmU4NTE4MTYxMTAxYjYwYTI5YjAwMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0RGVi
dWdnZXJBZ2VudC5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFn
ZW50OjpKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQoSlNBZ2VudENvbnRleHQmIGNvbnRleHQK
IHsKIH0KIAorSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50Ojp+SlNHbG9iYWxPYmplY3REZWJ1
Z2dlckFnZW50KCkgPSBkZWZhdWx0OworCiBJbmplY3RlZFNjcmlwdCBKU0dsb2JhbE9iamVjdERl
YnVnZ2VyQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYgZXJyb3IsIGNv
bnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChleGVjdXRpb25Db250ZXh0
SWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKaW5kZXggZTJmMzlk
YjU5OTgwNDhkYTA3ZmUyZmI3MDk4M2RmMjAxNmRiNmE4Mi4uM2JlMWM3ZjU5YThmODk2YjlkMjEw
MWQ3Y2YzYmI5ODBhZjAyNmUwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFn
ZW50LmgKQEAgLTM1LDE0ICszNSwxNCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdl
bnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50KTsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQo
SlNBZ2VudENvbnRleHQmLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqKTsKLSAgICB2aXJ0dWFsIH5K
U0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQoKSB7IH0KKyAgICBleHBsaWNpdCBKU0dsb2JhbE9i
amVjdERlYnVnZ2VyQWdlbnQoSlNBZ2VudENvbnRleHQmLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQq
KTsKKyAgICB2aXJ0dWFsIH5KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQoKTsKKworICAgIC8v
IFNjcmlwdERlYnVnTGlzdGVuZXIKKyAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpF
eGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBJbmplY3Rl
ZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4
ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7Ci0KLSAgICAvLyBKU0M6OlNjcmlwdERlYnVnTGlz
dGVuZXIKLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUmLCBjb25z
dCBTdHJpbmcmKSBmaW5hbDsKKyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2
YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgZmluYWw7CiAK
ICAgICAvLyBOT1RFOiBKYXZhU2NyaXB0IGluc3BlY3RvciBkb2VzIG5vdCB5ZXQgbmVlZCB0byBt
dXRlIGEgY29uc29sZSBiZWNhdXNlIG5vIG1lc3NhZ2VzCiAgICAgLy8gYXJlIHNlbnQgdG8gdGhl
IGNvbnNvbGUgb3V0c2lkZSBvZiB0aGUgQVBJIGJvdW5kYXJ5IG9yIGNvbnNvbGUgb2JqZWN0Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9i
YWxPYmplY3RSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwCmluZGV4IDNiN2MzZTIxZDMx
YzFjMmY1YjZkMWJhMGMxNmY0ODg4M2U2Y2YzMTcuLjY1ODJkMzA0YTQ3NDc1MDUyYzdlZDEzMDcx
ZjZjNDg3NjIwZThlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5j
cHAKQEAgLTQyLDYgKzQyLDggQEAgSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6OkpTR2xvYmFs
T2JqZWN0UnVudGltZUFnZW50KEpTQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCitKU0ds
b2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6fkpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50KCkgPSBk
ZWZhdWx0OworCiBJbmplY3RlZFNjcmlwdCBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6aW5q
ZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgaW50KiBl
eGVjdXRpb25Db250ZXh0SWQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChleGVjdXRpb25Db250ZXh0
SWQsICFleGVjdXRpb25Db250ZXh0SWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmgKaW5kZXggNjZjZDJkMmFiMWYzY2Q5OGU2OTA0YmEzNjE0ZDBkYmE3ZDhhNWY5NC4uOWE0
NDBhZTYyMzdmNjI5OTMwM2I0OWFiYjNiYmQ2MGJjMWIxMmU4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdl
bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2Jh
bE9iamVjdFJ1bnRpbWVBZ2VudC5oCkBAIC0zOCwxNiArMzgsMTcgQEAgY2xhc3MgSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudCk7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgSlNHbG9iYWxPYmplY3RS
dW50aW1lQWdlbnQoSlNBZ2VudENvbnRleHQmKTsKKyAgICBleHBsaWNpdCBKU0dsb2JhbE9iamVj
dFJ1bnRpbWVBZ2VudChKU0FnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgfkpTR2xvYmFsT2Jq
ZWN0UnVudGltZUFnZW50KCk7CiAKLSAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZv
ckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJp
ZGU7Citwcml2YXRlOgorICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChF
cnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBmaW5hbDsKIAogICAg
IC8vIE5PVEU6IEphdmFTY3JpcHQgaW5zcGVjdG9yIGRvZXMgbm90IHlldCBuZWVkIHRvIG11dGUg
YSBjb25zb2xlIGJlY2F1c2Ugbm8gbWVzc2FnZXMKICAgICAvLyBhcmUgc2VudCB0byB0aGUgY29u
c29sZSBvdXRzaWRlIG9mIHRoZSBBUEkgYm91bmRhcnkgb3IgY29uc29sZSBvYmplY3QuCi0gICAg
dm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgp
IG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSBmaW5hbCB7IH0KKyAgICB2b2lk
IHVubXV0ZUNvbnNvbGUoKSBmaW5hbCB7IH0KIAotcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UnVudGltZUZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAg
UmVmUHRyPFJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKICAg
ICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBtX2dsb2JhbE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmNwcAppbmRleCBmZGYwNDRjNTc5YjM2OGMzMjA1MWI2NWRjNDQwZTM4N2Y2
MDE4ZmI3Li42OTBjYWY2ODMwZGM0NDY1NDA0MTYxNjZhYmJkNTAwMDkyNTA3ZjY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC01MCw2ICs1MCw4IEBAIEluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KFBh
Z2VBZ2VudENvbnRleHQmCiB7CiB9CiAKK0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6
fkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChG
cm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5oCmluZGV4IDM5MjIxNDk0YWM2NjBlOTE1OTE3MzlhNGE0MjZlN2MwOWQz
MTdmOTcuLjdmZjk2NDY3YzFhYmZiN2Q3OGUzNTc3NzhjYjFkY2QwNTM2NzYyODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaApAQCAtNDUsMjMgKzQ1LDI0IEBAIGNsYXNzIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJh
c2UsIHB1YmxpYyBJCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAg
IHZpcnR1YWwgfkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpID0gZGVmYXVsdDsKKyAg
ICBleHBsaWNpdCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoUGFnZUFnZW50Q29udGV4
dCYpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpOwogCi0g
ICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJv
dXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lk
IHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNv
bikgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rv
cjo6QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgZmluYWw7CisKKyAgICAv
LyBJbnNwZWN0b3I6OkFwcGxpY2F0aW9uQ2FjaGVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAg
ICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZShFcnJv
clN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgZ2V0RnJhbWVzV2l0aE1hbmlmZXN0cyhFcnJvclN0
cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0
aW9uQ2FjaGU6OkZyYW1lV2l0aE1hbmlmZXN0Pj4mIHJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBn
ZXRNYW5pZmVzdEZvckZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBT
dHJpbmcqIG1hbmlmZXN0VVJMKSBmaW5hbDsKKyAgICB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVG
b3JGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGU+JikgZmlu
YWw7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHVwZGF0ZUFw
cGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqKTsKICAgICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5n
ZWQoKTsKIAotICAgIC8vIEFwcGxpY2F0aW9uQ2FjaGVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIK
LSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJs
ZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0RnJhbWVzV2l0aE1hbmlmZXN0
cyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFwcGxpY2F0aW9uQ2FjaGU6OkZyYW1lV2l0aE1hbmlmZXN0Pj4mIHJlc3VsdCkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBnZXRNYW5pZmVzdEZvckZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBmcmFtZUlkLCBTdHJpbmcqIG1hbmlmZXN0VVJMKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldEFw
cGxpY2F0aW9uQ2FjaGVGb3JGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0
aW9uQ2FjaGU+Jikgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGU+IGJ1aWxkT2JqZWN0Rm9y
QXBwbGljYXRpb25DYWNoZShjb25zdCBWZWN0b3I8QXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291
cmNlSW5mbz4mLCBjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvJik7CiAgICAg
UmVmPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6
QXBwbGljYXRpb25DYWNoZVJlc291cmNlPj4gYnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZXMoY29uc3QgVmVjdG9yPEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8+
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNQVVByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDUFVQcm9maWxlckFnZW50LmNwcAppbmRleCAxMTYyNGUyNDA5NDY0ZmMxZTFlNjVh
Njk5OGRiZDFiMDY4MmYwYjJjLi5hZmNhZTZlYTEyMGEyN2UwM2Q4OGI0NmEzZDkxYzczYjE0YjI1
ZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNQVVByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAgSW5zcGVj
dG9yQ1BVUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudChQYWdlQWdlbnRD
b250ZXh0JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50Ojp+SW5z
cGVjdG9yQ1BVUHJvZmlsZXJBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JDUFVQ
cm9maWxlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIq
LCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldElu
c3BlY3RvckNQVVByb2ZpbGVyQWdlbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oCmluZGV4
IGE1NDJhYmYxNWY5NGU2ZmIzNjA5ZWJmMTU0ZTkwNzVmNmJkNTk4MjAuLjM4NmJjYzhlZDZlNjI0
NjUxMTU2NDI5MWIwYzgzNjBhYTFlYmRiNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oCkBAIC00
MCwxNSArNDAsMTYgQEAgY2xhc3MgSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudCBmaW5hbCA6IHB1
YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWMKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50KFBhZ2VBZ2Vu
dENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50KCkgPSBk
ZWZhdWx0OworICAgIGV4cGxpY2l0IEluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQoUGFnZUFnZW50
Q29udGV4dCYpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQoKTsKIAot
ICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRS
b3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCi0gICAg
Ly8gQ1BVUHJvZmlsZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHN0YXJ0VHJh
Y2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJv
clN0cmluZyYpIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3Rvcjo6Q1BVUHJvZmlsZXJCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmluZyYpIGZpbmFsOwogCiBwcml2
YXRlOgogICAgIHZvaWQgY29sbGVjdFNhbXBsZShjb25zdCBSZXNvdXJjZVVzYWdlRGF0YSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0Fn
ZW50LmNwcAppbmRleCA0NGU5YzVhYmViNGM5NjZhYmFlYTk0NGE0MGQ1ZTAzZDQ3MmQxMWU4Li4y
ZTdiODJlMTMxOTk1YmY0ZmU5MzAyZjk2ZDM3MTRjZjQ4ZTM1ZDU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAt
MzAyLDYgKzMwMiw4IEBAIEluc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NBZ2VudChXZWJB
Z2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckNTU0FnZW50Ojp+SW5zcGVj
dG9yQ1NTQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVj
dG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmgKaW5kZXggMWRmNzk1OGExMmMzNWJj
ZTUxMzE1ZmQ2Mjk5YTAxMmEwNDQ5YTk3OS4uNjQ1YjVmODM5OTQyMzgxMzQzN2IzOTM1ZTMwMTBl
NGI0MDQ1N2VjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtNTMsMTMgKzUzLDEzIEBAIGNsYXNzIE5vZGVMaXN0Owog
Y2xhc3MgU3R5bGVSZXNvbHZlcjsKIGNsYXNzIFN0eWxlUnVsZTsKIAotY2xhc3MgSW5zcGVjdG9y
Q1NTQWdlbnQgZmluYWwKLSAgICA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICAsIHB1
YmxpYyBJbnNwZWN0b3I6OkNTU0JhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgICwgcHVibGlj
IEluc3BlY3RvclN0eWxlU2hlZXQ6Okxpc3RlbmVyIHsKK2NsYXNzIEluc3BlY3RvckNTU0FnZW50
IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSAsIHB1YmxpYyBJbnNwZWN0b3I6OkNT
U0JhY2tlbmREaXNwYXRjaGVySGFuZGxlciAsIHB1YmxpYyBJbnNwZWN0b3JTdHlsZVNoZWV0OjpM
aXN0ZW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQ1NTQWdlbnQpOwog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIGV4cGxpY2l0IEluc3Bl
Y3RvckNTU0FnZW50KFdlYkFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckNT
U0FnZW50KCk7CisKICAgICBjbGFzcyBJbmxpbmVTdHlsZU92ZXJyaWRlU2NvcGUgewogICAgIHB1
YmxpYzoKICAgICAgICAgSW5saW5lU3R5bGVPdmVycmlkZVNjb3BlKFNlY3VyaXR5Q29udGV4dCYg
Y29udGV4dCkKQEAgLTc3LDE0ICs3NywzMiBAQCBwdWJsaWM6CiAgICAgICAgIENvbnRlbnRTZWN1
cml0eVBvbGljeSogbV9jb250ZW50U2VjdXJpdHlQb2xpY3k7CiAgICAgfTsKIAotICAgIEluc3Bl
Y3RvckNTU0FnZW50KFdlYkFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvckNT
U0FnZW50KCkgPSBkZWZhdWx0OwotCiAgICAgc3RhdGljIENTU1N0eWxlUnVsZSogYXNDU1NTdHls
ZVJ1bGUoQ1NTUnVsZSYpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIq
KSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNldCgpOworICAg
IC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOworCisgICAgLy8gSW5zcGVjdG9yOjpDU1NC
YWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgZ2V0
Q29tcHV0ZWRTdHlsZUZvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNP
Tjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU0NvbXB1dGVkU3R5bGVQcm9w
ZXJ0eT4+JikgZmluYWw7CisgICAgdm9pZCBnZXRJbmxpbmVTdHlsZXNGb3JOb2RlKEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5
bGU+JiBpbmxpbmVTdHlsZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5
bGU+JiBhdHRyaWJ1dGVzKSBmaW5hbDsKKyAgICB2b2lkIGdldE1hdGNoZWRTdHlsZXNGb3JOb2Rl
KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgYm9vbCogaW5jbHVkZVBzZXVkbywgY29u
c3QgYm9vbCogaW5jbHVkZUluaGVyaXRlZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9y
OjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiYgbWF0Y2hlZENTU1J1bGVzLCBSZWZQdHI8SlNP
Tjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz4+Jiwg
UmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0ZWRT
dHlsZUVudHJ5Pj4mIGluaGVyaXRlZEVudHJpZXMpIGZpbmFsOworICAgIHZvaWQgZ2V0QWxsU3R5
bGVTaGVldHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+PiYgc3R5bGVTaGVldEluZm9zKSBmaW5h
bDsKKyAgICB2b2lkIGdldFN0eWxlU2hlZXQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0
eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVl
dEJvZHk+JiByZXN1bHQpIGZpbmFsOworICAgIHZvaWQgZ2V0U3R5bGVTaGVldFRleHQoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgU3RyaW5nKiByZXN1bHQpIGZpbmFs
OworICAgIHZvaWQgc2V0U3R5bGVTaGVldFRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5nJiB0ZXh0KSBmaW5hbDsKKyAgICB2b2lkIHNldFN0
eWxlVGV4dChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3R5bGVJZCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4m
IHJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBzZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBj
b25zdCBKU09OOjpPYmplY3QmIHJ1bGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4mIHJlc3VsdCkgZmluYWw7CisgICAg
dm9pZCBjcmVhdGVTdHlsZVNoZWV0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlk
LCBTdHJpbmcqIHN0eWxlU2hlZXRJZCkgZmluYWw7CisgICAgdm9pZCBhZGRSdWxlKEVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0SWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3Is
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpIGZpbmFs
OworICAgIHZvaWQgZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmluZyYsIFJlZlB0
cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUHJvcGVydHlJbmZv
Pj4mIHJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBnZXRTdXBwb3J0ZWRTeXN0ZW1Gb250RmFtaWx5
TmFtZXMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0
KSBmaW5hbDsKKyAgICB2b2lkIGZvcmNlUHNldWRvU3RhdGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkLCBjb25zdCBKU09OOjpBcnJheSYgZm9yY2VkUHNldWRvQ2xhc3NlcykgZmluYWw7CisKKyAg
ICAvLyBJbnNwZWN0b3JTdHlsZVNoZWV0OjpMaXN0ZW5lcgorICAgIHZvaWQgc3R5bGVTaGVldENo
YW5nZWQoSW5zcGVjdG9yU3R5bGVTaGVldCopIGZpbmFsOwogCiAgICAgLy8gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkb2N1bWVudERldGFjaGVkKERvY3VtZW50Jik7CkBAIC05
MiwyOCArMTEwLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGFjdGl2ZVN0eWxlU2hlZXRzVXBkYXRl
ZChEb2N1bWVudCYpOwogICAgIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShjb25zdCBFbGVtZW50Jiwg
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7CiAKLSAgICAvLyBDU1NCYWNrZW5kRGlzcGF0
Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0Q29tcHV0
ZWRTdHlsZUZvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJy
YXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU0NvbXB1dGVkU3R5bGVQcm9wZXJ0eT4+
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRJbmxpbmVTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5n
JiwgaW50IG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+
JiBpbmxpbmVTdHlsZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+
JiBhdHRyaWJ1dGVzKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldE1hdGNoZWRTdHlsZXNGb3JOb2Rl
KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgYm9vbCogaW5jbHVkZVBzZXVkbywgY29u
c3QgYm9vbCogaW5jbHVkZUluaGVyaXRlZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9y
OjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiYgbWF0Y2hlZENTU1J1bGVzLCBSZWZQdHI8SlNP
Tjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz4+Jiwg
UmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0ZWRT
dHlsZUVudHJ5Pj4mIGluaGVyaXRlZEVudHJpZXMpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0QWxs
U3R5bGVTaGVldHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+PiYgc3R5bGVTaGVldEluZm9zKSBv
dmVycmlkZTsKLSAgICB2b2lkIGdldFN0eWxlU2hlZXQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5
bGVTaGVldEJvZHk+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0U3R5bGVTaGVldFRl
eHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgU3RyaW5nKiByZXN1
bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U3R5bGVTaGVldFRleHQoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5nJiB0ZXh0KSBvdmVycmlkZTsK
LSAgICB2b2lkIHNldFN0eWxlVGV4dChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYg
c3R5bGVJZCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6
Q1NTOjpDU1NTdHlsZT4mIHJlc3VsdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSdWxlU2VsZWN0
b3IoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVJZCwgY29uc3QgU3RyaW5n
JiBzZWxlY3RvciwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4mIHJl
c3VsdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjcmVhdGVTdHlsZVNoZWV0KEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBmcmFtZUlkLCBTdHJpbmcqIHN0eWxlU2hlZXRJZCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBhZGRSdWxlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0SWQs
IGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6
OkNTU1J1bGU+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0U3VwcG9ydGVkQ1NTUHJv
cGVydGllcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNTUzo6Q1NTUHJvcGVydHlJbmZvPj4mIHJlc3VsdCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBnZXRTdXBwb3J0ZWRTeXN0ZW1Gb250RmFtaWx5TmFtZXMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8
SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0KSBvdmVycmlkZTsKLSAgICB2b2lkIGZvcmNl
UHNldWRvU3RhdGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBKU09OOjpBcnJheSYg
Zm9yY2VkUHNldWRvQ2xhc3Nlcykgb3ZlcnJpZGU7Ci0KICAgICAvLyBJbnNwZWN0b3JET01BZ2Vu
dCBob29rcwogICAgIHZvaWQgZGlkUmVtb3ZlRE9NTm9kZShOb2RlJiwgaW50IG5vZGVJZCk7CiAg
ICAgdm9pZCBkaWRNb2RpZnlET01BdHRyKEVsZW1lbnQmKTsKIAorICAgIHZvaWQgcmVzZXQoKTsK
KwogcHJpdmF0ZToKICAgICBjbGFzcyBTdHlsZVNoZWV0QWN0aW9uOwogICAgIGNsYXNzIFNldFN0
eWxlU2hlZXRUZXh0QWN0aW9uOwpAQCAtMTQ1LDggKzE0Nyw2IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBi
dWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxl
Pj4mLCBTdHlsZVJlc29sdmVyJiwgRWxlbWVudCYsIFBzZXVkb0lkKTsKICAgICBSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4gYnVpbGRPYmplY3RGb3JBdHRyaWJ1dGVz
U3R5bGUoU3R5bGVkRWxlbWVudCYpOwogCi0gICAgLy8gSW5zcGVjdG9yQ1NTQWdlbnQ6Okxpc3Rl
bmVyIGltcGxlbWVudGF0aW9uCi0gICAgdm9pZCBzdHlsZVNoZWV0Q2hhbmdlZChJbnNwZWN0b3JT
dHlsZVNoZWV0Kikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlc2V0UHNldWRvU3RhdGVzKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
YW52YXNBZ2VudC5jcHAKaW5kZXggMGU1MGM3NWJhNDg3NTE1NTZlNDEyZGNiOTdhZDE5NjY5NjVh
OTk5MC4uN2M5NTY1MTM5YWQ2NmNiOGZiZTMwOTJkNzE3NWU0MmFhODczNjEzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNB
Z2VudC5jcHAKQEAgLTc5LDYgKzc5LDggQEAgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6Okluc3BlY3Rv
ckNhbnZhc0FnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3Rv
ckNhbnZhc0FnZW50Ojp+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNh
bnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNh
bnZhc0FnZW50LmgKaW5kZXggZmEwZjZjYzIzYjBlNDUxOWFlMTkwMzUyMjdiZjk4ODFiZTFmMTIy
Ny4uZDBlYWExZDYzYTg4MDkxZTcxNDM0ZDkwODJiZTYwNDhjYTVkN2Q2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQu
aApAQCAtNTYsMzEgKzU2LDM3IEBAIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAK
IHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JDYW52YXNBZ2Vu
dCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBDYW52YXNPYnNlcnZl
ciwgcHVibGljIEluc3BlY3Rvcjo6Q2FudmFzQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsKK2Ns
YXNzIEluc3BlY3RvckNhbnZhc0FnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFz
ZSwgcHVibGljIEluc3BlY3Rvcjo6Q2FudmFzQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyLCBwdWJs
aWMgQ2FudmFzT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckNh
bnZhc0FnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBJbnNwZWN0b3JDYW52YXNBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmly
dHVhbCB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+SW5z
cGVjdG9yQ2FudmFzQWdlbnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzY2FyZEFn
ZW50KCkgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgZmluYWw7CisgICAg
dm9pZCBkaXNjYXJkQWdlbnQoKSBmaW5hbDsKIAotICAgIC8vIENhbnZhc0JhY2tlbmREaXNwYXRj
aGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0Tm9k
ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIGludCogbm9kZUlkKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHJlcXVlc3RDb250ZW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBjYW52YXNJZCwgU3RyaW5nKiBjb250ZW50KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RD
U1NDYW52YXNDbGllbnROb2RlcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQs
IFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNvbHZl
Q2FudmFzQ29udGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIGNvbnN0
IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1l
OjpSZW1vdGVPYmplY3Q+Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWNvcmRpbmdBdXRvQ2Fw
dHVyZUZyYW1lQ291bnQoRXJyb3JTdHJpbmcmLCBpbnQgY291bnQpIG92ZXJyaWRlOwotICAgIHZv
aWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBj
b25zdCBpbnQqIGZyYW1lQ291bnQsIGNvbnN0IGludCogbWVtb3J5TGltaXQpIG92ZXJyaWRlOwot
ICAgIHZvaWQgc3RvcFJlY29yZGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFz
SWQpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmlu
ZyopIG92ZXJyaWRlOwotICAgIHZvaWQgdXBkYXRlU2hhZGVyKEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2UpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgZGlzYWJsZWQpIG92ZXJy
aWRlOwotICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgaGlnaGxpZ2h0ZWQpIG92ZXJyaWRlOworICAg
IC8vIEluc3BlY3Rvcjo6Q2FudmFzQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcm
KSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBjYW52YXNJZCwgaW50KiBub2RlSWQpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdENvbnRlbnQo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBTdHJpbmcqIGNvbnRlbnQpIGZp
bmFsOworICAgIHZvaWQgcmVxdWVzdENTU0NhbnZhc0NsaWVudE5vZGVzKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBjYW52YXNJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4mKSBmaW5h
bDsKKyAgICB2b2lkIHJlc29sdmVDYW52YXNDb250ZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBjYW52YXNJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mKSBmaW5hbDsKKyAgICB2b2lkIHNl
dFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudChFcnJvclN0cmluZyYsIGludCBjb3VudCkg
ZmluYWw7CisgICAgdm9pZCBzdGFydFJlY29yZGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgY2FudmFzSWQsIGNvbnN0IGludCogZnJhbWVDb3VudCwgY29uc3QgaW50KiBtZW1vcnlMaW1p
dCkgZmluYWw7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nKEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBjYW52YXNJZCkgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0U2hhZGVyU291cmNlKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlw
ZSwgU3RyaW5nKikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBjb25zdCBT
dHJpbmcmIHNvdXJjZSkgZmluYWw7CisgICAgdm9pZCBzZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBkaXNhYmxlZCkgZmlu
YWw7CisgICAgdm9pZCBzZXRTaGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBoaWdobGlnaHRlZCkgZmluYWw7CisKKyAgICAv
LyBDYW52YXNPYnNlcnZlcgorICAgIHZvaWQgY2FudmFzQ2hhbmdlZChDYW52YXNCYXNlJiwgY29u
c3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBjYW52YXNSZXNpemVkKENhbnZhc0Jhc2Um
KSBmaW5hbCB7IH0KKyAgICB2b2lkIGNhbnZhc0Rlc3Ryb3llZChDYW52YXNCYXNlJikgZmluYWw7
CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGZyYW1lTmF2aWdh
dGVkKEZyYW1lJik7CkBAIC05OSwxMSArMTA1LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNTaGFk
ZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoV2ViR0xQcm9ncmFtJik7CiAjZW5kaWYKIAotICAgIC8vIENh
bnZhc09ic2VydmVyCi0gICAgdm9pZCBjYW52YXNDaGFuZ2VkKENhbnZhc0Jhc2UmLCBjb25zdCBG
bG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNhbnZhc1Jlc2l6ZWQoQ2FudmFzQmFzZSYp
IG92ZXJyaWRlIHsgfQotICAgIHZvaWQgY2FudmFzRGVzdHJveWVkKENhbnZhc0Jhc2UmKSBvdmVy
cmlkZTsKLQogcHJpdmF0ZToKICAgICBzdHJ1Y3QgUmVjb3JkaW5nT3B0aW9ucyB7CiAgICAgICAg
IE9wdGlvbmFsPGxvbmc+IGZyYW1lQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGYwYTI4YzEzMzFjNWJi
MzA4OGQ1M2U3MjQzZGJhZjRlZWI2M2U3YmQuLmQwZTRjOTk5NGFiOTlkNTVkY2I3Y2Q5MjZlZGY2
ZjU5NTBjZDE3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0yOTMsMTEgKzI5Myw3IEBAIEluc3BlY3RvckRP
TUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0LCBJbnNw
ZWN0b3JPdmVybGF5CiB7CiB9CiAKLUluc3BlY3RvckRPTUFnZW50Ojp+SW5zcGVjdG9yRE9NQWdl
bnQoKQotewotICAgIHJlc2V0KCk7Ci0gICAgQVNTRVJUKCFtX3NlYXJjaGluZ0Zvck5vZGUpOwot
fQorSW5zcGVjdG9yRE9NQWdlbnQ6On5JbnNwZWN0b3JET01BZ2VudCgpID0gZGVmYXVsdDsKIAog
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9N
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdl
bnQuaAppbmRleCA3M2ZlMjAzZWQzMmU0NzE2NTE2YWVjNzg1ZmY4OGFkYjEwNGZkNTNiLi41NjEz
ZWYwYWQzYmY2MWMzZTQzMzI4NWYwMTY4ODBiYmNiODU4YjIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC04MSw2MSAr
ODEsNzIgQEAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9y
QWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjpET00KICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShJbnNwZWN0b3JET01BZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgSW5zcGVjdG9yRE9NQWdlbnQoUGFnZUFnZW50Q29udGV4dCYsIEluc3BlY3Rvck92
ZXJsYXkqKTsKKyAgICBleHBsaWNpdCBJbnNwZWN0b3JET01BZ2VudChQYWdlQWdlbnRDb250ZXh0
JiwgSW5zcGVjdG9yT3ZlcmxheSopOwogICAgIHZpcnR1YWwgfkluc3BlY3RvckRPTUFnZW50KCk7
CiAKICAgICBzdGF0aWMgU3RyaW5nIHRvRXJyb3JTdHJpbmcoRXhjZXB0aW9uQ29kZSk7CiAgICAg
c3RhdGljIFN0cmluZyB0b0Vycm9yU3RyaW5nKEV4Y2VwdGlvbiYmKTsKIAotICAgIHZvaWQgZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRl
OworICAgIHN0YXRpYyBTdHJpbmcgZG9jdW1lbnRVUkxTdHJpbmcoRG9jdW1lbnQqKTsKIAotICAg
IFZlY3RvcjxEb2N1bWVudCo+IGRvY3VtZW50cygpOwotICAgIHZvaWQgcmVzZXQoKTsKKyAgICAv
LyBXZSByZXByZXNlbnQgZW1iZWRkZWQgZG9tcyBhcyBhIHBhcnQgb2YgdGhlIHNhbWUgaGllcmFy
Y2h5LiBIZW5jZSB3ZSB0cmVhdCBjaGlsZHJlbiBvZiBmcmFtZSBvd25lcnMgZGlmZmVyZW50bHku
CisgICAgLy8gV2UgYWxzbyBza2lwIHdoaXRlc3BhY2UgdGV4dCBub2RlcyBjb25kaXRpb25hbGx5
LiBGb2xsb3dpbmcgbWV0aG9kcyBlbmNhcHN1bGF0ZSB0aGVzZSBzcGVjaWZpY3MuCisgICAgc3Rh
dGljIE5vZGUqIGlubmVyRmlyc3RDaGlsZChOb2RlKik7CisgICAgc3RhdGljIE5vZGUqIGlubmVy
TmV4dFNpYmxpbmcoTm9kZSopOworICAgIHN0YXRpYyBOb2RlKiBpbm5lclByZXZpb3VzU2libGlu
ZyhOb2RlKik7CisgICAgc3RhdGljIHVuc2lnbmVkIGlubmVyQ2hpbGROb2RlQ291bnQoTm9kZSop
OworICAgIHN0YXRpYyBOb2RlKiBpbm5lclBhcmVudE5vZGUoTm9kZSopOwogCi0gICAgLy8gTWV0
aG9kcyBjYWxsZWQgZnJvbSB0aGUgZnJvbnRlbmQgZm9yIERPTSBub2RlcyBpbnNwZWN0aW9uLgot
ICAgIHZvaWQgcXVlcnlTZWxlY3RvcihFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0
cmluZyYgc2VsZWN0b3JzLCBpbnQqIGVsZW1lbnRJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBxdWVy
eVNlbGVjdG9yQWxsKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxl
Y3RvcnMsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+JiByZXN1bHQpIG92ZXJyaWRlOwotICAg
IHZvaWQgZ2V0RG9jdW1lbnQoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6RE9NOjpOb2RlPiYgcm9vdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0Q2hpbGROb2Rl
cyhFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IGludCogZGVwdGgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgc2V0QXR0cmlidXRlVmFsdWUoRXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVudElkLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0QXR0cmlidXRlc0FzVGV4dChFcnJvclN0cmluZyYsIGludCBlbGVtZW50SWQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nKiBuYW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIHJl
bW92ZUF0dHJpYnV0ZShFcnJvclN0cmluZyYsIGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmluZyYg
bmFtZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXROb2RlTmFtZShFcnJvclN0cmluZyYsIGludCBu
b2RlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgaW50KiBuZXdJZCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBnZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBXVEY6OlN0cmluZyogb3V0
ZXJIVE1MKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldE91dGVySFRNTChFcnJvclN0cmluZyYsIGlu
dCBub2RlSWQsIGNvbnN0IFN0cmluZyYgb3V0ZXJIVE1MKSBvdmVycmlkZTsKLSAgICB2b2lkIGlu
c2VydEFkamFjZW50SFRNTChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYg
cG9zaXRpb24sIGNvbnN0IFN0cmluZyYgaHRtbCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXROb2Rl
VmFsdWUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHZhbHVlKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGdldFN1cHBvcnRlZEV2ZW50TmFtZXMoRXJyb3JTdHJpbmcmLCBSZWZQ
dHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgZXZlbnROYW1lcykgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBnZXREYXRhQmluZGluZ3NGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRy
PEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpEYXRhQmluZGluZz4+JiBk
YXRhQXJyYXkpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0QXNzb2NpYXRlZERhdGFGb3JOb2RlKEVy
cm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgT3B0aW9uYWw8U3RyaW5nPiYgYXNzb2NpYXRlZERhdGEp
IG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5n
JiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6
RE9NOjpFdmVudExpc3RlbmVyPj4mIGxpc3RlbmVyc0FycmF5KSBvdmVycmlkZTsKLSAgICB2b2lk
IHNldEV2ZW50TGlzdGVuZXJEaXNhYmxlZChFcnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVy
SWQsIGJvb2wgZGlzYWJsZWQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QnJlYWtwb2ludEZvckV2
ZW50TGlzdGVuZXIoRXJyb3JTdHJpbmcmLCBpbnQgZXZlbnRMaXN0ZW5lcklkKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlbW92ZUJyZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKEVycm9yU3RyaW5nJiwg
aW50IGV2ZW50TGlzdGVuZXJJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRBY2Nlc3NpYmlsaXR5
UHJvcGVydGllc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6RE9NOjpBY2Nlc3NpYmlsaXR5UHJvcGVydGllcz4mIGF4UHJvcGVydGll
cykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwZXJmb3JtU2VhcmNoKEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBxdWVyeSwgY29uc3QgSlNPTjo6QXJyYXkqIG5vZGVJZHMsIGNvbnN0IGJvb2wqIGNh
c2VTZW5zaXRpdmUsIFN0cmluZyogc2VhcmNoSWQsIGludCogcmVzdWx0Q291bnQpIG92ZXJyaWRl
OwotICAgIHZvaWQgZ2V0U2VhcmNoUmVzdWx0cyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
c2VhcmNoSWQsIGludCBmcm9tSW5kZXgsIGludCB0b0luZGV4LCBSZWZQdHI8SlNPTjo6QXJyYXlP
ZjxpbnQ+PiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzY2FyZFNlYXJjaFJlc3VsdHMoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHNlYXJjaElkKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc29s
dmVOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91
cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJl
c3VsdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRBdHRyaWJ1dGVzKEVycm9yU3RyaW5nJiwgaW50
IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8U3RyaW5nPj4mIHJlc3VsdCkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBzZXRJbnNwZWN0TW9kZUVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGVuYWJs
ZWQsIGNvbnN0IEpTT046Ok9iamVjdCogaGlnaGxpZ2h0Q29uZmlnLCBjb25zdCBib29sKiBzaG93
UnVsZXJzKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpIG92ZXJyaWRlOwotICAgIHZvaWQgcHVz
aE5vZGVCeVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBp
bnQqIG5vZGVJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3RyaW5n
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWdobGlnaHRSZWN0KEVycm9yU3RyaW5nJiwgaW50IHgs
IGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGNvbnN0IEpTT046Ok9iamVjdCogY29sb3Is
IGNvbnN0IEpTT046Ok9iamVjdCogb3V0bGluZUNvbG9yLCBjb25zdCBib29sKiB1c2VQYWdlQ29v
cmRpbmF0ZXMpIG92ZXJyaWRlOwotICAgIHZvaWQgaGlnaGxpZ2h0UXVhZChFcnJvclN0cmluZyYs
IGNvbnN0IEpTT046OkFycmF5JiBxdWFkLCBjb25zdCBKU09OOjpPYmplY3QqIGNvbG9yLCBjb25z
dCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xvciwgY29uc3QgYm9vbCogdXNlUGFnZUNvb3JkaW5h
dGVzKSBvdmVycmlkZTsKLSAgICB2b2lkIGhpZ2hsaWdodFNlbGVjdG9yKEVycm9yU3RyaW5nJiwg
Y29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGlnaHRDb25maWcsIGNvbnN0IFN0cmluZyYgc2VsZWN0
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyogZnJhbWVJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWdo
bGlnaHROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGlnaHRDb25m
aWcsIGNvbnN0IGludCogbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdElkKSBvdmVycmlkZTsK
LSAgICB2b2lkIGhpZ2hsaWdodE5vZGVMaXN0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJy
YXkmIG5vZGVJZHMsIGNvbnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmlnKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGhpZ2hsaWdodEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBm
cmFtZUlkLCBjb25zdCBKU09OOjpPYmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91
dGxpbmVDb2xvcikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBtb3ZlVG8oRXJyb3JTdHJpbmcmLCBpbnQg
bm9kZUlkLCBpbnQgdGFyZ2V0Tm9kZUlkLCBjb25zdCBpbnQqIGFuY2hvck5vZGVJZCwgaW50KiBu
ZXdOb2RlSWQpIG92ZXJyaWRlOwotICAgIHZvaWQgdW5kbyhFcnJvclN0cmluZyYpIG92ZXJyaWRl
OwotICAgIHZvaWQgcmVkbyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbWFya1Vu
ZG9hYmxlU3RhdGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGZvY3VzKEVycm9y
U3RyaW5nJiwgaW50IG5vZGVJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRJbnNwZWN0ZWROb2Rl
KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCkgb3ZlcnJpZGU7CisgICAgc3RhdGljIE5vZGUqIHNj
cmlwdFZhbHVlQXNOb2RlKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBu
b2RlQXNTY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYsIE5vZGUqKTsKKworICAgIC8vIEluc3Bl
Y3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgZmlu
YWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24pIGZpbmFsOworCisgICAgLy8gSW5zcGVjdG9yOjpET01CYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIHF1ZXJ5U2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBpbnQg
bm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgaW50KiBlbGVtZW50SWQpIGZpbmFsOwor
ICAgIHZvaWQgcXVlcnlTZWxlY3RvckFsbChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0
IFN0cmluZyYgc2VsZWN0b3JzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYgcmVzdWx0KSBm
aW5hbDsKKyAgICB2b2lkIGdldERvY3VtZW50KEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4mIHJvb3QpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdENo
aWxkTm9kZXMoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBpbnQqIGRlcHRoKSBmaW5h
bDsKKyAgICB2b2lkIHNldEF0dHJpYnV0ZVZhbHVlKEVycm9yU3RyaW5nJiwgaW50IGVsZW1lbnRJ
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKSBmaW5hbDsKKyAgICB2
b2lkIHNldEF0dHJpYnV0ZXNBc1RleHQoRXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVudElkLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyogbmFtZSkgZmluYWw7CisgICAgdm9pZCByZW1v
dmVBdHRyaWJ1dGUoRXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIG5h
bWUpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQp
IGZpbmFsOworICAgIHZvaWQgc2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGludCogbmV3SWQpIGZpbmFsOworICAgIHZvaWQgZ2V0T3V0ZXJI
VE1MKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgV1RGOjpTdHJpbmcqIG91dGVySFRNTCkgZmlu
YWw7CisgICAgdm9pZCBzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25z
dCBTdHJpbmcmIG91dGVySFRNTCkgZmluYWw7CisgICAgdm9pZCBpbnNlcnRBZGphY2VudEhUTUwo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHBvc2l0aW9uLCBjb25zdCBT
dHJpbmcmIGh0bWwpIGZpbmFsOworICAgIHZvaWQgc2V0Tm9kZVZhbHVlKEVycm9yU3RyaW5nJiwg
aW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgZmluYWw7CisgICAgdm9pZCBnZXRTdXBw
b3J0ZWRFdmVudE5hbWVzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8U3RyaW5n
Pj4mIGV2ZW50TmFtZXMpIGZpbmFsOworICAgIHZvaWQgZ2V0RGF0YUJpbmRpbmdzRm9yTm9kZShF
cnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkRPTTo6RGF0YUJpbmRpbmc+PiYgZGF0YUFycmF5KSBmaW5hbDsKKyAgICB2b2lk
IGdldEFzc29jaWF0ZWREYXRhRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIE9wdGlv
bmFsPFN0cmluZz4mIGFzc29jaWF0ZWREYXRhKSBmaW5hbDsKKyAgICB2b2lkIGdldEV2ZW50TGlz
dGVuZXJzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJh
eU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5lcj4+JiBsaXN0ZW5lcnNB
cnJheSkgZmluYWw7CisgICAgdm9pZCBzZXRFdmVudExpc3RlbmVyRGlzYWJsZWQoRXJyb3JTdHJp
bmcmLCBpbnQgZXZlbnRMaXN0ZW5lcklkLCBib29sIGRpc2FibGVkKSBmaW5hbDsKKyAgICB2b2lk
IHNldEJyZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKEVycm9yU3RyaW5nJiwgaW50IGV2ZW50TGlz
dGVuZXJJZCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVCcmVha3BvaW50Rm9yRXZlbnRMaXN0ZW5l
cihFcnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQpIGZpbmFsOworICAgIHZvaWQgZ2V0
QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwg
UmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6QWNjZXNzaWJpbGl0eVByb3BlcnRpZXM+
JiBheFByb3BlcnRpZXMpIGZpbmFsOworICAgIHZvaWQgcGVyZm9ybVNlYXJjaChFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IEpTT046OkFycmF5KiBub2RlSWRzLCBjb25z
dCBib29sKiBjYXNlU2Vuc2l0aXZlLCBTdHJpbmcqIHNlYXJjaElkLCBpbnQqIHJlc3VsdENvdW50
KSBmaW5hbDsKKyAgICB2b2lkIGdldFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHNlYXJjaElkLCBpbnQgZnJvbUluZGV4LCBpbnQgdG9JbmRleCwgUmVmUHRyPEpTT046
OkFycmF5T2Y8aW50Pj4mKSBmaW5hbDsKKyAgICB2b2lkIGRpc2NhcmRTZWFyY2hSZXN1bHRzKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzZWFyY2hJZCkgZmluYWw7CisgICAgdm9pZCByZXNv
bHZlTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3Jv
dXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiBy
ZXN1bHQpIGZpbmFsOworICAgIHZvaWQgZ2V0QXR0cmlidXRlcyhFcnJvclN0cmluZyYsIGludCBu
b2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0cmluZz4+JiByZXN1bHQpIGZpbmFsOworICAg
IHZvaWQgc2V0SW5zcGVjdE1vZGVFbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBj
b25zdCBKU09OOjpPYmplY3QqIGhpZ2hsaWdodENvbmZpZywgY29uc3QgYm9vbCogc2hvd1J1bGVy
cykgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0SWQsIGludCogbm9kZUlkKSBmaW5hbDsKKyAgICB2b2lkIHB1c2hOb2RlQnlQYXRo
VG9Gcm9udGVuZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGF0aCwgaW50KiBub2RlSWQp
IGZpbmFsOworICAgIHZvaWQgaGlkZUhpZ2hsaWdodChFcnJvclN0cmluZyYpIGZpbmFsOworICAg
IHZvaWQgaGlnaGxpZ2h0UmVjdChFcnJvclN0cmluZyYsIGludCB4LCBpbnQgeSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0LCBjb25zdCBKU09OOjpPYmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmpl
Y3QqIG91dGxpbmVDb2xvciwgY29uc3QgYm9vbCogdXNlUGFnZUNvb3JkaW5hdGVzKSBmaW5hbDsK
KyAgICB2b2lkIGhpZ2hsaWdodFF1YWQoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYg
cXVhZCwgY29uc3QgSlNPTjo6T2JqZWN0KiBjb2xvciwgY29uc3QgSlNPTjo6T2JqZWN0KiBvdXRs
aW5lQ29sb3IsIGNvbnN0IGJvb2wqIHVzZVBhZ2VDb29yZGluYXRlcykgZmluYWw7CisgICAgdm9p
ZCBoaWdobGlnaHRTZWxlY3RvcihFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgaGln
aGxpZ2h0Q29uZmlnLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yU3RyaW5nLCBjb25zdCBTdHJpbmcq
IGZyYW1lSWQpIGZpbmFsOworICAgIHZvaWQgaGlnaGxpZ2h0Tm9kZShFcnJvclN0cmluZyYsIGNv
bnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmlnLCBjb25zdCBpbnQqIG5vZGVJZCwgY29u
c3QgU3RyaW5nKiBvYmplY3RJZCkgZmluYWw7CisgICAgdm9pZCBoaWdobGlnaHROb2RlTGlzdChF
cnJvclN0cmluZyYsIGNvbnN0IEpTT046OkFycmF5JiBub2RlSWRzLCBjb25zdCBKU09OOjpPYmpl
Y3QmIGhpZ2hsaWdodENvbmZpZykgZmluYWw7CisgICAgdm9pZCBoaWdobGlnaHRGcmFtZShFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgSlNPTjo6T2JqZWN0KiBjb2xv
ciwgY29uc3QgSlNPTjo6T2JqZWN0KiBvdXRsaW5lQ29sb3IpIGZpbmFsOworICAgIHZvaWQgbW92
ZVRvKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgaW50IHRhcmdldE5vZGVJZCwgY29uc3QgaW50
KiBhbmNob3JOb2RlSWQsIGludCogbmV3Tm9kZUlkKSBmaW5hbDsKKyAgICB2b2lkIHVuZG8oRXJy
b3JTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHJlZG8oRXJyb3JTdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIG1hcmtVbmRvYWJsZVN0YXRlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBm
b2N1cyhFcnJvclN0cmluZyYsIGludCBub2RlSWQpIGZpbmFsOworICAgIHZvaWQgc2V0SW5zcGVj
dGVkTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpIGZpbmFsOwogCiAgICAgLy8gSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgaW50IGlkZW50aWZpZXJGb3JOb2RlKE5vZGUmKTsKQEAg
LTE3MCw4ICsxODEsNiBAQCBwdWJsaWM6CiAgICAgTm9kZSogbm9kZUZvcklkKGludCBub2RlSWQp
OwogICAgIGludCBib3VuZE5vZGVJZChjb25zdCBOb2RlKik7CiAKLSAgICBzdGF0aWMgU3RyaW5n
IGRvY3VtZW50VVJMU3RyaW5nKERvY3VtZW50Kik7Ci0KICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiByZXNvbHZlTm9kZShOb2RlKiwgY29uc3Qg
U3RyaW5nJiBvYmplY3RHcm91cCk7CiAgICAgYm9vbCBoYW5kbGVNb3VzZVByZXNzKCk7CiAgICAg
dm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWdu
ZWQgbW9kaWZpZXJGbGFncyk7CkBAIC0xNzksMjIgKzE4OCwxMyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBmb2N1c05vZGUoKTsKIAogICAgIEluc3BlY3Rvckhpc3RvcnkqIGhpc3RvcnkoKSB7IHJldHVy
biBtX2hpc3RvcnkuZ2V0KCk7IH0KLQotICAgIC8vIFdlIHJlcHJlc2VudCBlbWJlZGRlZCBkb21z
IGFzIGEgcGFydCBvZiB0aGUgc2FtZSBoaWVyYXJjaHkuIEhlbmNlIHdlIHRyZWF0IGNoaWxkcmVu
IG9mIGZyYW1lIG93bmVycyBkaWZmZXJlbnRseS4KLSAgICAvLyBXZSBhbHNvIHNraXAgd2hpdGVz
cGFjZSB0ZXh0IG5vZGVzIGNvbmRpdGlvbmFsbHkuIEZvbGxvd2luZyBtZXRob2RzIGVuY2Fwc3Vs
YXRlIHRoZXNlIHNwZWNpZmljcy4KLSAgICBzdGF0aWMgTm9kZSogaW5uZXJGaXJzdENoaWxkKE5v
ZGUqKTsKLSAgICBzdGF0aWMgTm9kZSogaW5uZXJOZXh0U2libGluZyhOb2RlKik7Ci0gICAgc3Rh
dGljIE5vZGUqIGlubmVyUHJldmlvdXNTaWJsaW5nKE5vZGUqKTsKLSAgICBzdGF0aWMgdW5zaWdu
ZWQgaW5uZXJDaGlsZE5vZGVDb3VudChOb2RlKik7Ci0gICAgc3RhdGljIE5vZGUqIGlubmVyUGFy
ZW50Tm9kZShOb2RlKik7CisgICAgVmVjdG9yPERvY3VtZW50Kj4gZG9jdW1lbnRzKCk7CisgICAg
dm9pZCByZXNldCgpOwogCiAgICAgTm9kZSogYXNzZXJ0Tm9kZShFcnJvclN0cmluZyYsIGludCBu
b2RlSWQpOwogICAgIEVsZW1lbnQqIGFzc2VydEVsZW1lbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkKTsKICAgICBEb2N1bWVudCogYXNzZXJ0RG9jdW1lbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkKTsKIAotICAgIHN0YXRpYyBOb2RlKiBzY3JpcHRWYWx1ZUFzTm9kZShKU0M6OkpTVmFsdWUp
OwotICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3Rh
dGUmLCBOb2RlKik7Ci0KICAgICBib29sIGhhc0JyZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKEV2
ZW50VGFyZ2V0JiwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwg
Ym9vbCBjYXB0dXJlKTsKICAgICBpbnQgaWRGb3JFdmVudExpc3RlbmVyKEV2ZW50VGFyZ2V0Jiwg
Y29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0dXJl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNDVlMmZhOWE4ZGExMjA4NjdiODdl
MThkMzgxYzJhZmI1MzljMTkwNy4uZWI0N2FlMTk2MWQyYWZmYmJiNTdhZmIzMTg2NjdlYTY5Njcy
YjIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCkBAIC03NCwxMSArNzQsNyBAQCBJbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50OjpJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KFdlYkFnZW50
Q29udGV4dCYgY29udGV4dCwgSQogICAgIG1fZGVidWdnZXJBZ2VudC0+YWRkTGlzdGVuZXIoKnRo
aXMpOwogfQogCi1JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp+SW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudCgpCi17Ci0gICAgQVNTRVJUKCFtX2RlYnVnZ2VyQWdlbnQpOwotICAgIEFTU0VSVCgh
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoKSk7Ci19CitJ
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp+SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpID0g
ZGVmYXVsdDsKIAogLy8gQnJvd3NlciBkZWJ1Z2dlciBhZ2VudCBlbmFibGVkIG9ubHkgd2hlbiBK
UyBkZWJ1Z2dlciBpcyBlbmFibGVkLgogdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojpk
ZWJ1Z2dlcldhc0VuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAppbmRleCBkMjhlNDdkNGM4
NTY4YWQ2MDkxOTJlMmFkZjBhMDk1MDdjMWUzYTJmLi41YjM0N2Y0YjY5ZmQxYTg0ZDM5YThmOWQ5
MTdlNmM1NzA4ZWYwZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaApAQCAtNTIsMTQgKzUyLDE5
IEBAIGNsYXNzIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyOwogCiB0eXBlZGVmIFN0cmluZyBFcnJv
clN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ6Okxpc3RlbmVyLCBwdWJsaWMgSW5zcGVjdG9yOjpET01EZWJ1Z2dlckJhY2tlbmREaXNw
YXRjaGVySGFuZGxlciB7CitjbGFzcyBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50IGZpbmFsIDog
cHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6RE9NRGVidWdnZXJC
YWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIsIHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6Okxpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KFdlYkFnZW50Q29udGV4dCYsIEluc3BlY3Rv
cjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudCopOworICAgIGV4cGxpY2l0IEluc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50Kik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpOwogCi0g
ICAgLy8gRE9NRGVidWdnZXIgQVBJCisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9p
ZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgZmluYWw7
CisgICAgdm9pZCBkaXNjYXJkQWdlbnQoKSBmaW5hbDsKKworICAgIC8vIEluc3BlY3Rvcjo6RE9N
RGVidWdnZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIHNldFVSTEJyZWFrcG9p
bnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogb3B0aW9uYWxJ
c1JlZ2V4KSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZVVSTEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIHVybCkgZmluYWw7CiAgICAgdm9pZCBzZXRFdmVudEJyZWFrcG9pbnQo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRUeXBlLCBjb25zdCBTdHJpbmcq
IGV2ZW50TmFtZSkgZmluYWw7CkBAIC02Nyw2ICs3MiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRET01CcmVha3BvaW50KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0
eXBlKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZURPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBp
bnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHR5cGUpIGZpbmFsOwogCisgICAgLy8gSW5zcGVjdG9y
OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpMaXN0ZW5lcgorICAgIHZvaWQgZGVidWdnZXJXYXNF
bmFibGVkKCkgZmluYWw7CisgICAgdm9pZCBkZWJ1Z2dlcldhc0Rpc2FibGVkKCkgZmluYWw7CisK
ICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHdpbGxJbnNlcnRET01O
b2RlKE5vZGUmIHBhcmVudCk7CiAgICAgdm9pZCB3aWxsSW52YWxpZGF0ZVN0eWxlQXR0cihFbGVt
ZW50Jik7CkBAIC04MywxNiArOTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRmlyZUFuaW1h
dGlvbkZyYW1lKCk7CiAgICAgdm9pZCBtYWluRnJhbWVET01Db250ZW50TG9hZGVkKCk7CiAKLSAg
ICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91
dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwotICAgIHZvaWQgd2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBm
aW5hbDsKLSAgICB2b2lkIGRpc2NhcmRBZ2VudCgpIGZpbmFsOwotCi1wcml2YXRlOgotICAgIC8v
IEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVuZXIgaW1wbGVtZW50YXRp
b24uCi0gICAgdm9pZCBkZWJ1Z2dlcldhc0VuYWJsZWQoKSBmaW5hbDsKLSAgICB2b2lkIGRlYnVn
Z2VyV2FzRGlzYWJsZWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc2FibGUoKTsKIAorcHJpdmF0ZToK
ICAgICBlbnVtIGNsYXNzIFVSTEJyZWFrcG9pbnRTb3VyY2UgeyBGZXRjaCwgWEhSIH07CiAgICAg
dm9pZCBicmVha09uVVJMSWZOZWVkZWQoY29uc3QgU3RyaW5nJiB1cmwsIFVSTEJyZWFrcG9pbnRT
b3VyY2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggODFmMTRkYzE3YmZhMDQ3NDdl
M2QyM2U0NTNmNWU0YWY4ZDA5ZmQ4My4uODIyMTEyMDcyZjQwMTgwYWNhYjlmNWE4OGUxMGNjMjdk
NTAxNzBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcApAQCAtNjIsNiArNjIsOCBAQCBJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChQYWdlQWdlbnRD
b250ZXh0JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6On5JbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVu
ZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmgKaW5kZXggZmFhMWE4MzIzZjJlMGE2OGYxNWQ3YTU5MDk4MTViNTdlNTAyNzNmYS4u
ZmNiNmRiZmUzYWRmMmI4ODI1NjI0YzZkMTc3NWFmNTQxY2U2ZWMwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudC5oCkBAIC01MSwyNiArNTEsMjcgQEAgY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3QKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQpOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChQ
YWdlQWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZy
b250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwot
ICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lk
IGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwg
SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOworICAgIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsK
IAotICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCi0gICAgdm9pZCBlbmFibGUoRXJy
b3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGdldERPTVN0b3JhZ2VJdGVtcyhFcnJvclN0cmluZyYsIGNvbnN0IEpT
T046Ok9iamVjdCYgc3RvcmFnZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxKU09OOjpBcnJheU9m
PFN0cmluZz4+PiYgaXRlbXMpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RE9NU3RvcmFnZUl0ZW0o
RXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlRE9N
U3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCwg
Y29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwotCi0gICAgLy8gQ2FsbGVkIGZyb20gdGhlIGlu
amVjdGVkIHNjcmlwdC4KLSAgICBzdGF0aWMgU3RyaW5nIHN0b3JhZ2VJZChTdG9yYWdlJik7Ci0g
ICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpET01TdG9yYWdlOjpTdG9yYWdl
SWQ+IHN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiosIGJvb2wgaXNMb2NhbFN0b3JhZ2UpOworICAg
IC8vIEluc3BlY3Rvcjo6RE9NU3RvcmFnZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZv
aWQgZW5hYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3Ry
aW5nJikgZmluYWw7CisgICAgdm9pZCBnZXRET01TdG9yYWdlSXRlbXMoRXJyb3JTdHJpbmcmLCBj
b25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SlNPTjo6
QXJyYXlPZjxTdHJpbmc+Pj4mIGl0ZW1zKSBmaW5hbDsKKyAgICB2b2lkIHNldERPTVN0b3JhZ2VJ
dGVtKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBzdG9yYWdlSWQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZURP
TVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBzdG9yYWdlSWQs
IGNvbnN0IFN0cmluZyYga2V5KSBmaW5hbDsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbgogICAgIHZvaWQgZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBr
ZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0b3Jh
Z2VUeXBlLCBTZWN1cml0eU9yaWdpbiopOwogCisgICAgLy8gQ29tbWFuZExpbmVBUEkKKyAgICBz
dGF0aWMgU3RyaW5nIHN0b3JhZ2VJZChTdG9yYWdlJik7CisgICAgc3RhdGljIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpET01TdG9yYWdlOjpTdG9yYWdlSWQ+IHN0b3JhZ2VJZChTZWN1cml0
eU9yaWdpbiosIGJvb2wgaXNMb2NhbFN0b3JhZ2UpOworCiBwcml2YXRlOgogICAgIFJlZlB0cjxT
dG9yYWdlQXJlYT4gZmluZFN0b3JhZ2VBcmVhKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2Jq
ZWN0JiwgRnJhbWUqJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCmluZGV4IDM1OGE4NTY1MTJlYTRk
NzE5NjMzMmEyMDY5OTBkZTMyNTAwNDEwYmYuLmE2Y2Y5YWMzY2QxZjIxMDM4ZmI3ZTA4MjM0Nzc3
ODVkN2QyMzJkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcApAQCAtMjIyLDYgKzIyMiw4IEBAIElu
c3BlY3RvckRhdGFiYXNlQWdlbnQ6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQoV2ViQWdlbnRDb250
ZXh0JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JEYXRhYmFzZUFnZW50Ojp+SW5zcGVjdG9y
RGF0YWJhc2VBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaAppbmRl
eCA1Yzc5MDJmZTBiNmI2NTBmZWMzMTk3ZGYzYjcyMGIxODk4Nzg3MzZjLi5jZmU4MDE4ZmIwMzI0
NTE1OTEwZTc2YjUyMTAxNWI1MWFkNjc1NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaApAQCAtNDgsMjUg
KzQ4LDI1IEBAIGNsYXNzIEluc3BlY3RvckRhdGFiYXNlQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5z
cGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yCiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudChXZWJB
Z2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JEYXRhYmFzZUFnZW50KCkgPSBk
ZWZhdWx0OworICAgIHZpcnR1YWwgfkluc3BlY3RvckRhdGFiYXNlQWdlbnQoKTsKIAorICAgIC8v
IEluc3BlY3RvckFnZW50QmFzZQogICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCi0KLSAgICAvLyBDYWxsZWQgZnJv
bSB0aGUgZnJvbnQtZW5kLgorICAgIC8vIEluc3BlY3Rvcjo6RGF0YWJhc2VCYWNrZW5kRGlzcGF0
Y2hlckhhbmRsZXIKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0RGF0YWJh
c2VUYWJsZU5hbWVzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkLCBSZWZQ
dHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgbmFtZXMpIG92ZXJyaWRlOwogICAgIHZvaWQgZXhl
Y3V0ZVNRTChjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYgcXVlcnksIFJl
ZjxFeGVjdXRlU1FMQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogCi0gICAgLy8gQ2FsbGVkIGZyb20g
dGhlIGluamVjdGVkIHNjcmlwdC4KLSAgICBTdHJpbmcgZGF0YWJhc2VJZChEYXRhYmFzZSYpOwot
CiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkaWRDb21taXRMb2Fk
KCk7CiAgICAgdm9pZCBkaWRPcGVuRGF0YWJhc2UoRGF0YWJhc2UmKTsKIAorICAgIC8vIENvbW1h
bmRMaW5lQVBJCisgICAgU3RyaW5nIGRhdGFiYXNlSWQoRGF0YWJhc2UmKTsKKwogcHJpdmF0ZToK
ICAgICBEYXRhYmFzZSogZGF0YWJhc2VGb3JJZChjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWQpOwog
ICAgIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UqIGZpbmRCeUZpbGVOYW1lKGNvbnN0IFN0cmlu
ZyYgZmlsZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBkZDcxNWNiZDhjYTExYjlj
MWQwODVhNjZiNTQxNmQ5ZjJlOTVhN2QyLi40ZmU4YzAzMDZkN2NjY2M5YjIyZDAzZWU2ZWFjZTM4
ZjM5MDc5YzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTI3LDYgKzUyNyw4IEBAIElu
c3BlY3RvckluZGV4ZWREQkFnZW50OjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudChQYWdlQWdlbnRD
b250ZXh0JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6fkluc3Bl
Y3RvckluZGV4ZWREQkFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3RvckluZGV4ZWRE
QkFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJv
dXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5oCmluZGV4IDQ1ZmViOTE3ODEwMjgwNmZkYzJmODZjNjdjMjdlZDRjNTJkYWZhYTIuLjkzMmJm
ZjRjYTAzNmM3MTAxMDc2M2ZiMDYxYzEwZWIyNDAxMWVmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgK
QEAgLTUxLDE5ICs1MSwyMCBAQCBjbGFzcyBJbnNwZWN0b3JJbmRleGVkREJBZ2VudCBmaW5hbCA6
IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0bwogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEluc3BlY3RvckluZGV4ZWREQkFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JJbmRleGVkREJBZ2VudChQYWdlQWdl
bnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQoKSA9IGRl
ZmF1bHQ7CisgICAgZXhwbGljaXQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQoUGFnZUFnZW50Q29u
dGV4dCYpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckluZGV4ZWREQkFnZW50KCk7CiAKLSAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVy
KiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpC
YWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAotICAgIC8vIElu
ZGV4ZWREQkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3Ry
aW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCByZXF1ZXN0RGF0YWJhc2VOYW1lcyhjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3Jp
Z2luLCBSZWY8UmVxdWVzdERhdGFiYXNlTmFtZXNDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCByZXF1ZXN0RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZU5hbWUsIFJlZjxSZXF1ZXN0RGF0YWJhc2VDYWxsYmFjaz4mJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0RGF0YShjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2lu
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5h
bWUsIGNvbnN0IFN0cmluZyYgaW5kZXhOYW1lLCBpbnQgc2tpcENvdW50LCBpbnQgcGFnZVNpemUs
IGNvbnN0IEpTT046Ok9iamVjdCoga2V5UmFuZ2UsIFJlZjxSZXF1ZXN0RGF0YUNhbGxiYWNrPiYm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBpbl9z
ZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBpbl9kYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmlu
ZyYgaW5fb2JqZWN0U3RvcmVOYW1lLCBSZWY8Q2xlYXJPYmplY3RTdG9yZUNhbGxiYWNrPiYmKSBv
dmVycmlkZTsKKyAgICAvLyBJbnNwZWN0b3I6OkluZGV4ZWREQkJhY2tlbmREaXNwYXRjaGVySGFu
ZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaXNh
YmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RGF0YWJhc2VOYW1lcyhj
b25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLCBSZWY8UmVxdWVzdERhdGFiYXNlTmFtZXNDYWxs
YmFjaz4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBz
ZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFJlZjxSZXF1ZXN0RGF0
YWJhc2VDYWxsYmFjaz4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RGF0YShjb25zdCBTdHJp
bmcmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3Ry
aW5nJiBvYmplY3RTdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYgaW5kZXhOYW1lLCBpbnQgc2tpcENv
dW50LCBpbnQgcGFnZVNpemUsIGNvbnN0IEpTT046Ok9iamVjdCoga2V5UmFuZ2UsIFJlZjxSZXF1
ZXN0RGF0YUNhbGxiYWNrPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29u
c3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNv
bnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lLCBSZWY8Q2xlYXJPYmplY3RTdG9yZUNhbGxiYWNr
PiYmKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFu
YWdlciYgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4
IGI1OTgyY2VlMzdlMzc0NDcwNTM5NDZiY2Y0YzQzNGI0MzFlZjlhOTguLmU3NmJlNDQ3N2EwMWNm
NGFlODg3OGVhNjU0NDgyYWFhZDY4NzAxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC01
MywxMCArNTMsNyBAQCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6SW5zcGVjdG9yTGF5ZXJUcmVl
QWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCi1JbnNwZWN0b3JMYXllclRy
ZWVBZ2VudDo6fkluc3BlY3RvckxheWVyVHJlZUFnZW50KCkKLXsKLSAgICByZXNldCgpOwotfQor
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6On5JbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpID0gZGVm
YXVsdDsKIAogdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmRE
aXNwYXRjaGVyKikKIHsKQEAgLTg1LDYgKzgyLDggQEAgdm9pZCBJbnNwZWN0b3JMYXllclRyZWVB
Z2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJikKIHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6
OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudChudWxscHRyKTsKKworICAgIHJlc2V0KCk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmxheWVyVHJlZURpZENoYW5nZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJl
ZUFnZW50LmgKaW5kZXggYzM5YjBmNjQ3ZTFlY2VmZDQ0MDRjMmMxMjk4NzdiY2YxZGJhMWViYi4u
OWNhZGUyOGNlYWU0MzVjNGI0ZTQ3YTI5MmUyZTE0N2ZiNzRiODEyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQuaApAQCAtNTEsMjAgKzUxLDIxIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBJbnNwZWN0b3JM
YXllclRyZWVBZ2VudChXZWJBZ2VudENvbnRleHQmKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JM
YXllclRyZWVBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIq
KSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNldCgpOworICAg
IC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOworCisgICAgLy8gSW5zcGVjdG9yOjpMYXll
clRyZWVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmlu
ZyYpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZv
aWQgbGF5ZXJzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpB
cnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkxheWVyVHJlZTo6TGF5ZXI+PiYpIGZpbmFsOwor
ICAgIHZvaWQgcmVhc29uc0ZvckNvbXBvc2l0aW5nTGF5ZXIoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGxheWVySWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpMYXllclRyZWU6OkNv
bXBvc2l0aW5nUmVhc29ucz4mKSBmaW5hbDsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbgogICAgIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlKCk7CiAgICAgdm9pZCByZW5kZXJMYXll
ckRlc3Ryb3llZChjb25zdCBSZW5kZXJMYXllciYpOwogICAgIHZvaWQgcHNldWRvRWxlbWVudERl
c3Ryb3llZChQc2V1ZG9FbGVtZW50Jik7Ci0KLSAgICAvLyBDYWxsZWQgZnJvbSB0aGUgZnJvbnQt
ZW5kLgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYXllcnNGb3JOb2RlKEVy
cm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6TGF5ZXJUcmVlOjpMYXllcj4+Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZWFzb25z
Rm9yQ29tcG9zaXRpbmdMYXllcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgbGF5ZXJJZCwg
UmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkxheWVyVHJlZTo6Q29tcG9zaXRpbmdSZWFzb25z
PiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzZXQoKTsKIAogcHJpdmF0ZToKICAgICAvLyBSZW5k
ZXJMYXllci1yZWxhdGVkIG1ldGhvZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IDI4MzI5NTFmNTM4
MDEyMWZhNDUyYmZhOGQ0NzBmNGQzNWU3ODliMTYuLjY5YTc4OTBiNzgzMzU1ZjkzZmU3NjYyMzJk
MjFlNmFmMTU2Y2FlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCkBAIC00NSw2ICs0NSw4IEBAIEluc3Bl
Y3Rvck1lbW9yeUFnZW50OjpJbnNwZWN0b3JNZW1vcnlBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBj
b250ZXh0KQogewogfQogCitJbnNwZWN0b3JNZW1vcnlBZ2VudDo6fkluc3BlY3Rvck1lbW9yeUFn
ZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3Rvck1lbW9yeUFnZW50OjpkaWRDcmVhdGVG
cm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ck1lbW9yeUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ck1lbW9yeUFnZW50LmgKaW5kZXggNWMxNDcxMTE1NDBlNWNmNDM1MWJiOGVkZTQwMGU3ZTg0NmVh
NDY1OS4uZGQ3YmIwYjMyNWE5MzI5ZWM0NjhiMjk5OGNhNDNkODJhYWFjMWE1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuaApAQCAtNDEsMTcgKzQxLDE4IEBAIGNsYXNzIEluc3BlY3Rvck1lbW9yeUFnZW50IGZpbmFs
IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yTWVtb3J5QWdlbnQpOwogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEluc3BlY3Rvck1lbW9yeUFnZW50KFBhZ2VBZ2Vu
dENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JNZW1vcnlBZ2VudCgpID0gZGVmYXVs
dDsKKyAgICBleHBsaWNpdCBJbnNwZWN0b3JNZW1vcnlBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7
CisgICAgdmlydHVhbCB+SW5zcGVjdG9yTWVtb3J5QWdlbnQoKTsKIAotICAgIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwor
ICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNw
YXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCi0gICAgLy8gTWVtb3J5QmFja2Vu
ZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0
YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BUcmFja2lu
ZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3Rvcjo6TWVtb3J5QmFja2Vu
ZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0VHJh
Y2tpbmcoRXJyb3JTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0
cmluZyYpIGZpbmFsOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9p
ZCBkaWRIYW5kbGVNZW1vcnlQcmVzc3VyZShDcml0aWNhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKaW5k
ZXggNWQwODE2MzgwY2RjNjZjN2Q3OTYwYzEyZDM0OGEwZmJmM2Y3YjExOC4uODA5ODA3NTAzYzhl
MDEzMTIxZGExNTBmNWZkYTQ5YzNjZDQwYzU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcApAQCAtMTc5
LDYgKzE3OSw4IEBAIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6SW5zcGVjdG9yTmV0d29ya0FnZW50
KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorSW5zcGVjdG9yTmV0d29ya0FnZW50
Ojp+SW5zcGVjdG9yTmV0d29ya0FnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3Rvck5l
dHdvcmtBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRl
bmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KQEAgLTM5MCwx
NSArMzkyLDYgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OkNhY2hlZFJlc291
cmNlPiBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmJ1aWxkT2IKICAgICByZXR1cm4gcmVzb3VyY2VP
YmplY3Q7CiB9CiAKLUluc3BlY3Rvck5ldHdvcmtBZ2VudDo6fkluc3BlY3Rvck5ldHdvcmtBZ2Vu
dCgpCi17Ci0gICAgaWYgKG1fZW5hYmxlZCkgewotICAgICAgICBFcnJvclN0cmluZyB1bnVzZWQ7
Ci0gICAgICAgIGRpc2FibGUodW51c2VkKTsKLSAgICB9Ci0gICAgQVNTRVJUKCFtX2luc3RydW1l
bnRpbmdBZ2VudHMuaW5zcGVjdG9yTmV0d29ya0FnZW50KCkpOwotfQotCiBkb3VibGUgSW5zcGVj
dG9yTmV0d29ya0FnZW50Ojp0aW1lc3RhbXAoKQogewogICAgIHJldHVybiBtX2Vudmlyb25tZW50
LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpLnNlY29uZHMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5oCmluZGV4IDU4ZDhjZGVmMWI4ZGYzNTY0ODllZWM3ZjNmNjFiNDg0NzhlYmQ1YTcuLjBjMWJj
NGNhMWI5M2U0MjIwZjlhNGVmYjIzYjVmNzEzYWFlOGUyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaApAQCAt
NjgsNyArNjgsNiBAQCBjbGFzcyBJbnNwZWN0b3JOZXR3b3JrQWdlbnQgOiBwdWJsaWMgSW5zcGVj
dG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjpOZXR3bwogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEluc3BlY3Rvck5ldHdvcmtBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgSW5zcGVjdG9yTmV0d29ya0FnZW50KFdlYkFnZW50
Q29udGV4dCYpOwogICAgIHZpcnR1YWwgfkluc3BlY3Rvck5ldHdvcmtBZ2VudCgpOwogCiAgICAg
c3RhdGljIGJvb2wgc2hvdWxkVHJlYXRBc1RleHQoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CkBA
IC03Niw4ICs3NSwxOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIE9wdGlvbmFsPFN0cmluZz4gdGV4
dENvbnRlbnRGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSYpOwogICAgIHN0YXRpYyBi
b29sIGNhY2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSYsIFN0cmluZyogcmVzdWx0
LCBib29sKiBiYXNlNjRFbmNvZGVkKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNw
YXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3Rv
ckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7
CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nv
bm5lY3RSZWFzb24pIGZpbmFsOworCisgICAgLy8gSW5zcGVjdG9yOjpOZXR3b3JrQmFja2VuZERp
c3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHNldEV4dHJhSFRU
UEhlYWRlcnMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIGhlYWRlcnMpIGZpbmFs
OworICAgIHZvaWQgZ2V0UmVzcG9uc2VCb2R5KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0SWQsIFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCkgZmluYWw7Cisg
ICAgdm9pZCBzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZGlz
YWJsZWQpIGZpbmFsOworICAgIHZvaWQgbG9hZFJlc291cmNlKGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCwgY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxMb2FkUmVzb3VyY2VDYWxsYmFjaz4mJikgZmluYWw7
CisgICAgdm9pZCBnZXRTZXJpYWxpemVkQ2VydGlmaWNhdGUoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHJlcXVlc3RJZCwgU3RyaW5nKiBzZXJpYWxpemVkQ2VydGlmaWNhdGUpIGZpbmFsOwor
ICAgIHZvaWQgcmVzb2x2ZVdlYlNvY2tldChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVx
dWVzdElkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYpIGZpbmFsOwogCiAgICAgLy8gSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCB3aWxsUmVjYWxjdWxhdGVTdHlsZSgpOwpAQCAtMTA4
LDE1ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZWFyY2hPdGhlclJlcXVlc3RzKGNvbnN0
IEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24mLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpQYWdlOjpTZWFyY2hSZXN1bHQ+PiYpOwogICAgIHZvaWQgc2VhcmNo
SW5SZXF1ZXN0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIGNvbnN0IFN0
cmluZyYgcXVlcnksIGJvb2wgY2FzZVNlbnNpdGl2ZSwgYm9vbCBpc1JlZ2V4LCBSZWZQdHI8SlNP
Tjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpHZW5lcmljVHlwZXM6OlNlYXJjaE1hdGNo
Pj4mKTsKIAotICAgIC8vIENhbGxlZCBmcm9tIGZyb250ZW5kLgotICAgIHZvaWQgZW5hYmxlKEVy
cm9yU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7
Ci0gICAgdm9pZCBzZXRFeHRyYUhUVFBIZWFkZXJzKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6
T2JqZWN0JiBoZWFkZXJzKSBmaW5hbDsKLSAgICB2b2lkIGdldFJlc3BvbnNlQm9keShFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJh
c2U2NEVuY29kZWQpIGZpbmFsOwotICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQo
RXJyb3JTdHJpbmcmLCBib29sIGRpc2FibGVkKSBmaW5hbDsKLSAgICB2b2lkIGxvYWRSZXNvdXJj
ZShjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8TG9hZFJlc291
cmNlQ2FsbGJhY2s+JiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0U2VyaWFsaXplZENlcnRpZmljYXRl
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIFN0cmluZyogc2VyaWFsaXpl
ZENlcnRpZmljYXRlKSBmaW5hbDsKLSAgICB2b2lkIHJlc29sdmVXZWJTb2NrZXQoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwg
UmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mKSBmaW5h
bDsKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQoV2ViQWdl
bnRDb250ZXh0Jik7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBsb2FkZXJJZGVudGlmaWVyKERvY3Vt
ZW50TG9hZGVyKikgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGZyYW1lSWRlbnRpZmllcihEb2N1
bWVudExvYWRlciopID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBjNjQxYTZhMDQ4NDE5MzI2OGUyOWU5
MGZmMDEyNmFiOTExYzkzMGRmLi5lNDY0MDc2MDE1YzQ2NWFlODg5ZTg1MTY4MDM2Y2MxOGNhZTYx
ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0zNDEsNiArMzQxLDggQEAgSW5zcGVjdG9yUGFnZUFnZW50
OjpJbnNwZWN0b3JQYWdlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCwgSW5zcGVjdG9y
Q2xpZW4KIHsKIH0KIAorSW5zcGVjdG9yUGFnZUFnZW50Ojp+SW5zcGVjdG9yUGFnZUFnZW50KCkg
PSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmRE
aXNwYXRjaGVyKikKIHsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0SW5zcGVjdG9yUGFn
ZUFnZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggMTFkNDk5ZmIyMTBkZjdkMzEzMWEyOWFmNjk5MWJm
ZjRhYmFjNTRjNy4uY2RkNjFmNTQ5NmZkYmU1MGU1OGVkMTNiNDhhOTVlZjM4MjczMDgyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VB
Z2VudC5oCkBAIC01Niw3ICs1Niw4IEBAIGNsYXNzIEluc3BlY3RvclBhZ2VBZ2VudCBmaW5hbCA6
IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6OlBhCiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yUGFnZUFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JQYWdlQWdlbnQoUGFnZUFnZW50Q29u
dGV4dCYsIEluc3BlY3RvckNsaWVudCosIEluc3BlY3Rvck92ZXJsYXkqKTsKKyAgICBleHBsaWNp
dCBJbnNwZWN0b3JQYWdlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYsIEluc3BlY3RvckNsaWVudCos
IEluc3BlY3Rvck92ZXJsYXkqKTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JQYWdlQWdlbnQoKTsK
IAogICAgIGVudW0gUmVzb3VyY2VUeXBlIHsKICAgICAgICAgRG9jdW1lbnRSZXNvdXJjZSwKQEAg
LTg3LDcgKzg4LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRnJhbWUqIGZpbmRGcmFtZVdpdGhT
ZWN1cml0eU9yaWdpbihQYWdlJiwgY29uc3QgU3RyaW5nJiBvcmlnaW5SYXdTdHJpbmcpOwogICAg
IHN0YXRpYyBEb2N1bWVudExvYWRlciogYXNzZXJ0RG9jdW1lbnRMb2FkZXIoRXJyb3JTdHJpbmcm
LCBGcmFtZSopOwogCi0gICAgLy8gUGFnZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIC8v
IEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
KikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkRpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOworCisgICAgLy8gSW5zcGVjdG9yOjpQYWdlQmFj
a2VuZERpc3BhdGNoZXJIYW5kbGVyCiAgICAgdm9pZCByZWxvYWQoRXJyb3JTdHJpbmcmLCBjb25z
dCBib29sKiBvcHRpb25hbFJlbG9hZEZyb21PcmlnaW4sIGNvbnN0IGJvb2wqIG9wdGlvbmFsUmV2
YWxpZGF0ZUFsbFJlc291cmNlcykgZmluYWw7CiAgICAgdm9pZCBuYXZpZ2F0ZShFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgdXJsKSBmaW5hbDsKICAgICB2b2lkIG92ZXJyaWRlVXNlckFnZW50
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nKiB2YWx1ZSkgZmluYWw7CkBAIC0xMjYsMTEgKzEz
MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFNjcm9sbCgpOwogICAgIHZvaWQgZGlkUmVjYWxj
dWxhdGVTdHlsZSgpOwogCi0gICAgLy8gSW5zcGVjdG9yIENvbnRyb2xsZXIgQVBJCi0gICAgdm9p
ZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKLSAgICB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgZmluYWw7
Ci0KLSAgICAvLyBDcm9zcy1hZ2VudHMgQVBJCiAgICAgRnJhbWUqIGZyYW1lRm9ySWQoY29uc3Qg
U3RyaW5nJiBmcmFtZUlkKTsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZnJhbWVJZChGcmFt
ZSopOwogICAgIFN0cmluZyBsb2FkZXJJZChEb2N1bWVudExvYWRlciopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKaW5kZXggMzBkODZjNzQ2M2M0N2Y1YjNhZDJiMzhjZjVkZTI0OWQ0NGViOWE1ZC4uYzA5
ZDA5ZDg4MTI5NjE3M2FkMmE2MjkzMTA5OGY3NGViYmY4MzA5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwCkBAIC02MTgsMTEgKzYxOCw2IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dG9n
Z2xlVGltZWxpbmVJbnN0cnVtZW50KEluc3RydW1lbnRTdGF0ZSBzdGF0ZSkKICAgICAgICAgaW50
ZXJuYWxTdG9wKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tbWl0
TG9hZCgpCi17Ci0gICAgY2xlYXJSZWNvcmRTdGFjaygpOwotfQotCiB2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZFJlcXVlc3RBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJZCwgRnJh
bWUqIGZyYW1lKQogewogICAgIGFwcGVuZFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUFuaW1hdGlvbkZyYW1lRGF0YShjYWxsYmFja0lkKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUsIHRydWUsIGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXgg
OWZkYmE0ZjI3NDZjM2Q1N2VlMjAyYmZmY2U5NTZlMTEwYTYwMjkxMC4uMjlhZmI3MDg4MzVkYjJi
Mjc4OTZiMzE5MWZiY2JmN2RjNWIzNWJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTgxLDIwICs4
MSwxOCBAQCBlbnVtIGNsYXNzIFRpbWVsaW5lUmVjb3JkVHlwZSB7CiAgICAgT2JzZXJ2ZXJDYWxs
YmFjaywKIH07CiAKLWNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgZmluYWwKLSAgICA6IHB1
YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICAsIHB1YmxpYyBJbnNwZWN0b3I6OlRpbWVsaW5l
QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgLCBwdWJsaWMgSW5zcGVjdG9yOjpTY3JpcHRE
ZWJ1Z0xpc3RlbmVyIHsKK2NsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yQWdlbnRCYXNlICwgcHVibGljIEluc3BlY3Rvcjo6VGltZWxpbmVCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIgLCBwdWJsaWMgSW5zcGVjdG9yOjpTY3JpcHREZWJ1Z0xpc3RlbmVy
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JUaW1lbGluZUFnZW50KTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKKyAgICBleHBsaWNpdCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KCk7CiAKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKICAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwogICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAotICAgIC8v
IFRpbWVsaW5lQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgLy8gSW5zcGVjdG9yOjpUaW1l
bGluZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgogICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
JikgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CiAgICAgdm9p
ZCBzdGFydChFcnJvclN0cmluZyYsIGNvbnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGggPSBudWxs
cHRyKSBmaW5hbDsKQEAgLTEwMiwxMyArMTAwLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF1
dG9DYXB0dXJlRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wpIGZpbmFsOwogICAgIHZvaWQgc2V0
SW5zdHJ1bWVudHMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYpIGZpbmFsOwogCi0g
ICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotCi0gICAgdm9pZCBkaWRDb21taXRM
b2FkKCk7Ci0KLSAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIFdlYkNvcmUuCi0gICAgdm9pZCBz
dGFydEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0g
ICAgdm9pZCBzdG9wRnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKTsKKyAgICAvLyBJbnNwZWN0b3I6OlNjcmlwdERlYnVnTGlzdGVuZXIKKyAgICB2b2lkIGRp
ZFBhcnNlU291cmNlKEpTQzo6U291cmNlSUQsIGNvbnN0IFNjcmlwdCYpIGZpbmFsIHsgfQorICAg
IHZvaWQgZmFpbGVkVG9QYXJzZVNvdXJjZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBp
bnQsIGludCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9pZCB3aWxsUnVuTWljcm90
YXNrKCkgZmluYWwgeyB9CisgICAgdm9pZCBkaWRSdW5NaWNyb3Rhc2soKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIGRpZFBhdXNlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpIGZpbmFsIHsgfQorICAgIHZvaWQgZGlkQ29udGludWUoKSBmaW5hbCB7IH0KKyAgICB2b2lk
IGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKSBmaW5h
bCB7IH0KKyAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChpbnQpIGZpbmFsIHsgfQorICAg
IHZvaWQgYnJlYWtwb2ludEFjdGlvblByb2JlKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgSW5zcGVj
dG9yOjpTY3JpcHRCcmVha3BvaW50QWN0aW9uJiwgdW5zaWduZWQgYmF0Y2hJZCwgdW5zaWduZWQg
c2FtcGxlSWQsIEpTQzo6SlNWYWx1ZSByZXN1bHQpIGZpbmFsOwogCiAgICAgLy8gSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkaWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIFNl
Y29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBGcmFtZSopOwpAQCAtMTQzLDE4ICsxNDQs
MTMgQEAgcHVibGljOgogICAgIHZvaWQgbWFpbkZyYW1lU3RhcnRlZExvYWRpbmcoKTsKICAgICB2
b2lkIG1haW5GcmFtZU5hdmlnYXRlZCgpOwogCi1wcml2YXRlOgotICAgIC8vIEpTQzo6U2NyaXB0
RGVidWdMaXN0ZW5lcgotICAgIHZvaWQgZGlkUGFyc2VTb3VyY2UoSlNDOjpTb3VyY2VJRCwgY29u
c3QgU2NyaXB0JikgZmluYWwgeyB9Ci0gICAgdm9pZCBmYWlsZWRUb1BhcnNlU291cmNlKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGludCwgaW50LCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7
IH0KLSAgICB2b2lkIHdpbGxSdW5NaWNyb3Rhc2soKSBmaW5hbCB7IH0KLSAgICB2b2lkIGRpZFJ1
bk1pY3JvdGFzaygpIGZpbmFsIHsgfQotICAgIHZvaWQgZGlkUGF1c2UoSlNDOjpFeGVjU3RhdGUm
LCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSkgZmluYWwgeyB9Ci0gICAgdm9pZCBkaWRDb250
aW51ZSgpIGZpbmFsIHsgfQotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNT
dGF0ZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlv
blNvdW5kKGludCkgZmluYWwgeyB9Ci0gICAgdm9pZCBicmVha3BvaW50QWN0aW9uUHJvYmUoSlND
OjpFeGVjU3RhdGUmLCBjb25zdCBJbnNwZWN0b3I6OlNjcmlwdEJyZWFrcG9pbnRBY3Rpb24mLCB1
bnNpZ25lZCBiYXRjaElkLCB1bnNpZ25lZCBzYW1wbGVJZCwgSlNDOjpKU1ZhbHVlIHJlc3VsdCkg
ZmluYWw7CisgICAgLy8gQ29uc29sZQorICAgIHZvaWQgc3RhcnRGcm9tQ29uc29sZShKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgc3RvcEZyb21Db25zb2xl
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAKKyAgICBpbnQgaWQoKSBj
b25zdCB7IHJldHVybiBtX2lkOyB9CisKK3ByaXZhdGU6CiAgICAgdm9pZCBzdGFydFByb2dyYW1t
YXRpY0NhcHR1cmUoKTsKICAgICB2b2lkIHN0b3BQcm9ncmFtbWF0aWNDYXB0dXJlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2Vy
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5jcHAKaW5kZXggMWUzOThlZGQxYTllYTNlZjI2YmUwOWVjMDNkNmM2YzJjZDM5OGRl
OC4uYzIxYjgwZDNmOTFhMzAzNjBmOWNkMmVmNmY1ZDQyNzhlZTQ0ODExMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5jcHAKQEAgLTQyLDYgKzQyLDggQEAgSW5zcGVjdG9yV29ya2VyQWdlbnQ6Okluc3BlY3Rvcldv
cmtlckFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3Rvcldv
cmtlckFnZW50Ojp+SW5zcGVjdG9yV29ya2VyQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5z
cGVjdG9yV29ya2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJv
dXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMu
c2V0SW5zcGVjdG9yV29ya2VyQWdlbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKaW5kZXggNWUwNDBjOTU0
ZDRiNTE0YTE0OTAzYzA3MjA3MGJlY2RlMDYwY2JkMC4uMGNlMDcxNzIyZWM2MDM2M2ZlNThhNWNk
OGQ3YjU3NjIyZGNiMmE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAtNDEsMjAgKzQxLDIxIEBAIGNsYXNz
IEluc3BlY3RvcldvcmtlckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwg
cHVibGljIEluc3BlY3Rvcjo6CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yV29y
a2VyQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIElu
c3BlY3RvcldvcmtlckFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNw
ZWN0b3JXb3JrZXJBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBleHBsaWNpdCBJbnNwZWN0b3JXb3Jr
ZXJBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yV29ya2Vy
QWdlbnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAg
IHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0
ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIGZp
bmFsOwogCi0gICAgLy8gV29ya2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJp
bmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGluaXRpYWxpemVkKEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiB3b3JrZXJJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2Vy
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB3b3JrZXJJZCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKSBvdmVycmlkZTsKKyAgICAvLyBJbnNwZWN0b3I6OldvcmtlckJhY2tlbmREaXNwYXRjaGVy
SGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBk
aXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBpbml0aWFsaXplZChFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgd29ya2VySWQpIGZpbmFsOworICAgIHZvaWQgc2VuZE1lc3Nh
Z2VUb1dvcmtlcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgd29ya2VySWQsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkgZmluYWw7CiAKLSAgICAvLyBQYWdlQ2hhbm5lbAotICAgIHZvaWQgc2Vu
ZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSosIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgLy8gV29ya2VySW5zcGVjdG9yUHJveHk6
OlBhZ2VDaGFubmVsCisgICAgdm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdv
cmtlckluc3BlY3RvclByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKIAogICAg
IC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIGJvb2wgc2hvdWxkV2FpdEZvckRlYnVn
Z2VyT25TdGFydCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCmluZGV4IGMyMDk0Yjk5MmQzNTQxNjBmMTdlZTI4ZjY0
MTBhNzkzZGNkZTlmMzQuLmYxNWJkMTE3MGQwMGJjNTNiN2E2YmJmZmEyOTdkMzIxOTZlNTZiNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVB
Z2VudC5jcHAKQEAgLTQzLDExICs0MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKLVdlYkNvbnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50
KEFnZW50Q29udGV4dCYgY29udGV4dCkKK1dlYkNvbnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50
KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKICAgICA6IEluc3BlY3RvckNvbnNvbGVBZ2VudChj
b250ZXh0KQogewogfQogCitXZWJDb25zb2xlQWdlbnQ6On5XZWJDb25zb2xlQWdlbnQoKSA9IGRl
ZmF1bHQ7CisKIHZvaWQgV2ViQ29uc29sZUFnZW50OjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01X
aW5kb3cqIHdpbmRvdykKIHsKICAgICBpZiAoIW1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3Bl
Y3RvckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmgKaW5kZXggNTliZTgx
MmQ1OTIyM2Q0MGU0YzAxNjQ5MjExNWQ4OWE3MjQ3YTM3MC4uN2M4NGFkMjFlMDg0NzVlN2E3ZDdk
Njk5ZGI4YjJiNzg5MzA0ZTUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5oCkBAIC0zOCwxMyArMzgsMTUgQEAgY2xhc3MgV2ViQ29u
c29sZUFnZW50IDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50IHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJDb25zb2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdlYkNvbnNvbGVBZ2VudChJbnNwZWN0b3I6OkFn
ZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfldlYkNvbnNvbGVBZ2VudCgpID0gZGVmYXVsdDsK
KyAgICB2aXJ0dWFsIH5XZWJDb25zb2xlQWdlbnQoKTsKIAorICAgIC8vIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbgogICAgIHZvaWQgZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9NV2luZG93Kik7Ci0K
ICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CisK
K3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBXZWJDb25zb2xlQWdlbnQoV2ViQWdlbnRDb250ZXh0
Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBjYWJlNDk1OTc2
NGMwODk2N2MxNzk0NDA2YzcyYTEwYmU1YjFiNjQwLi43ODQ0ZjY4YzhjMGY5YmU1YzNiYzViNDFk
YmRkMGViYjdmNmI5MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL1dlYkRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvV2ViRGVidWdnZXJBZ2VudC5jcHAKQEAgLTM5LDYgKzM5LDggQEAgV2ViRGVidWdnZXJB
Z2VudDo6V2ViRGVidWdnZXJBZ2VudChXZWJBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAK
K1dlYkRlYnVnZ2VyQWdlbnQ6On5XZWJEZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lk
IFdlYkRlYnVnZ2VyQWdlbnQ6OmVuYWJsZSgpCiB7CiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6ZW5hYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L1dlYkRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2Vi
RGVidWdnZXJBZ2VudC5oCmluZGV4IDQ2MDQ3NWQ5Y2QzNTYyMzg4NjRhZTY5NTEwNWI4ODgxNWU2
MTg3MzYuLjIxNGI4ZTE3MzlmMTc0NDA5ODkzZGMzMjc3Yzg5ZTBiZDE3NzIwZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCkBA
IC0zNywxMCArMzcsMTEgQEAgY2xhc3MgV2ViRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0
b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdl
YkRlYnVnZ2VyQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIFdlYkRlYnVnZ2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+V2Vi
RGVidWdnZXJBZ2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5XZWJEZWJ1Z2dlckFnZW50
KCk7CiAKIHByb3RlY3RlZDoKKyAgICBleHBsaWNpdCBXZWJEZWJ1Z2dlckFnZW50KFdlYkFnZW50
Q29udGV4dCYpOworCiAgICAgdm9pZCBlbmFibGUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc2Fi
bGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQuY3BwCmluZGV4IDg2NWJiZDA3YjZmMDk4
Y2E3ZTY2NTBkOGFmZWZiY2Y2ZWYwNTE5MjguLjNjYmZiODM3NWU2ZmZkNzZjMDc2NTlkNzFiOWEx
OWI0YTFhYmFlM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
V2ViSGVhcEFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dl
YkhlYXBBZ2VudC5jcHAKQEAgLTEwMSwxMCArMTAxLDcgQEAgV2ViSGVhcEFnZW50OjpXZWJIZWFw
QWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCi1XZWJIZWFwQWdlbnQ6On5X
ZWJIZWFwQWdlbnQoKQotewotICAgIG1fc2VuZEdhcmJhZ2VDb2xsZWN0aW9uRXZlbnRzVGFzay0+
cmVzZXQoKTsKLX0KK1dlYkhlYXBBZ2VudDo6fldlYkhlYXBBZ2VudCgpID0gZGVmYXVsdDsKIAog
dm9pZCBXZWJIZWFwQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQuaAppbmRleCBi
YTk2M2I1ZGEyNTNmNmJlZWRiODNhOWNhYWM1YzU4ZWNkY2IwZmZiLi4zZjYxMzA5YmJkYzQzZGQ3
OWExZTU3YjUyNjA2ZmM0N2QwN2Q2MDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvV2ViSGVhcEFnZW50LmgKQEAgLTQwLDE1ICs0MCwxNSBAQCBjbGFzcyBXZWJIZWFw
QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JIZWFwQWdlbnQgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIGZyaWVuZCBjbGFzcyBTZW5kR2FyYmFnZUNvbGxlY3Rp
b25FdmVudHNUYXNrOwogcHVibGljOgotICAgIFdlYkhlYXBBZ2VudChXZWJBZ2VudENvbnRleHQm
KTsKKyAgICBleHBsaWNpdCBXZWJIZWFwQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7CiAgICAgdmly
dHVhbCB+V2ViSGVhcEFnZW50KCk7CiAKLXByb3RlY3RlZDoKKyAgICAvLyBJbnNwZWN0b3I6Okhl
YXBCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogCi0g
ICAgdm9pZCBkaXNwYXRjaEdhcmJhZ2VDb2xsZWN0ZWRFdmVudChJbnNwZWN0b3I6OlByb3RvY29s
OjpIZWFwOjpHYXJiYWdlQ29sbGVjdGlvbjo6VHlwZSwgU2Vjb25kcyBzdGFydFRpbWUsIFNlY29u
ZHMgZW5kVGltZSkgb3ZlcnJpZGU7Ci0KK3Byb3RlY3RlZDoKKyAgICB2b2lkIGRpc3BhdGNoR2Fy
YmFnZUNvbGxlY3RlZEV2ZW50KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkhlYXA6OkdhcmJhZ2VDb2xs
ZWN0aW9uOjpUeXBlLCBTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUaW1lKSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoR2FyYmFnZUNvbGxlY3Rpb25FdmVudHNBZnRlckRlbGF5KFZlY3Rv
cjxHYXJiYWdlQ29sbGVjdGlvbkRhdGE+JiYgY29sbGVjdGlvbnMpOwogCiAgICAgSW5zdHJ1bWVu
dGluZ0FnZW50cyYgbV9pbnN0cnVtZW50aW5nQWdlbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5jcHAKaW5kZXggNWU1
MDJmNmJmOGE2M2IzOTMzM2VlYTc0YzhkODBmYTA2OWFlY2M0ZC4uNWI2YmZkMGI2OTA5OWY4OWFm
MzliMmZjMGY1ZjM4NDE3ODAxYWQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwCkBAIC01NCw2ICs1NCw4IEBA
IFBhZ2VBdWRpdEFnZW50OjpQYWdlQXVkaXRBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0
KQogewogfQogCitQYWdlQXVkaXRBZ2VudDo6flBhZ2VBdWRpdEFnZW50KCkgPSBkZWZhdWx0Owor
CiBJbmplY3RlZFNjcmlwdCBQYWdlQXVkaXRBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKGNv
bnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChleGVjdXRpb25Db250ZXh0
SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFn
ZUF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdl
QXVkaXRBZ2VudC5oCmluZGV4IGFjNDZmNGZlYzNjYTE3OWZhMjgwYTdlMDRlNjVlZmJhZjk4ZWIw
NzEuLjAxODIxNWIxYWU3ZjlhMTZlN2ZhNDY2Y2U3OTI0ODk2ZmViNzcxZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5o
CkBAIC0zNywxNSArMzcsMTYgQEAgY2xhc3MgUGFnZUF1ZGl0QWdlbnQgZmluYWwgOiBwdWJsaWMg
SW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQYWdlQXVkaXRBZ2VudChQYWdlQWdlbnRDb250
ZXh0Jik7CisgICAgdmlydHVhbCB+UGFnZUF1ZGl0QWdlbnQoKTsKIAogcHJpdmF0ZToKICAgICBJ
bnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChjb25zdCBpbnQq
IGV4ZWN1dGlvbkNvbnRleHRJZCk7Ci0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmpl
Y3RlZFNjcmlwdEZvckV2YWwoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhl
Y3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0Rm9yRXZhbChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgaW50
KiBleGVjdXRpb25Db250ZXh0SWQpIGZpbmFsOwogCi0gICAgdm9pZCBwb3B1bGF0ZUF1ZGl0T2Jq
ZWN0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mIGF1ZGl0T2Jq
ZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIHBvcHVsYXRlQXVkaXRPYmplY3QoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYgYXVkaXRPYmplY3QpIGZpbmFsOwogCi0g
ICAgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgp
IG92ZXJyaWRlOworICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSBmaW5hbDsKKyAgICB2b2lkIHVubXV0
ZUNvbnNvbGUoKSBmaW5hbDsKIAogICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNv
bGVBZ2VudC5jcHAKaW5kZXggNmVlZWMwYWNjNDJjMWRhNDAxNGJiN2U0MzZlMDlhOGU0OGQwMzI1
Ni4uYTAxYjc2OTYxNTAwNzk0YTI2ZGEyM2Y1MGVlNzQ5OTQxMmQ0MjRiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFn
ZW50LmNwcApAQCAtNTIsNiArNTIsOCBAQCBQYWdlQ29uc29sZUFnZW50OjpQYWdlQ29uc29sZUFn
ZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK1BhZ2VDb25zb2xlQWdlbnQ6
On5QYWdlQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIFBhZ2VDb25zb2xlQWdlbnQ6
OmNsZWFyTWVzc2FnZXMoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogewogICAgIGlmIChhdXRv
KiBkb21BZ2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01BZ2VudCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25z
b2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29u
c29sZUFnZW50LmgKaW5kZXggZGVhMjQ5NGE3NzVmNTdlZjIzYjRlYTE3NDQ1NjMxZWM0YzdkNGUx
Yi4uNDBhYzkzMzE1ZTc1N2QwODk3MmJlODQ5NzljNTI0YjlmODc1MGQxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2Vu
dC5oCkBAIC00MCwxNSArNDAsMTUgQEAgY2xhc3MgUGFnZUNvbnNvbGVBZ2VudCBmaW5hbCA6IHB1
YmxpYyBXZWJDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25z
b2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFBh
Z2VDb25zb2xlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflBhZ2VDb25z
b2xlQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgZXhwbGljaXQgUGFnZUNvbnNvbGVBZ2VudChQYWdl
QWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVhbCB+UGFnZUNvbnNvbGVBZ2VudCgpOwogCisgICAg
Ly8gSW5zcGVjdG9yOjpDb25zb2xlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBj
bGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBnZXRMb2dnaW5nQ2hh
bm5lbHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDb25zb2xlOjpDaGFubmVsPj4mKSBmaW5hbDsKICAgICB2b2lkIHNldExvZ2dpbmdDaGFu
bmVsTGV2ZWwoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNoYW5uZWwsIGNvbnN0IFN0cmlu
ZyYgbGV2ZWwpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJv
clN0cmluZyYpIG92ZXJyaWRlOwotCiAgICAgSW5zdHJ1bWVudGluZ0FnZW50cyYgbV9pbnN0cnVt
ZW50aW5nQWdlbnRzOwogICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFn
ZW50LmNwcAppbmRleCBiMzg4NWZiNThjYmFhZTNiYWUwNzI1ZjY3MTRmYmY3YWI5NmZmZjNkLi43
ZjdkN2IwMmVhZGI2YmRkODYyNTY2ZTQ2YWUzYTY1Mzg4ZmJkNmQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2Vu
dC5jcHAKQEAgLTY1LDYgKzY1LDggQEAgUGFnZURlYnVnZ2VyQWdlbnQ6OlBhZ2VEZWJ1Z2dlckFn
ZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK1BhZ2VEZWJ1Z2dlckFnZW50
Ojp+UGFnZURlYnVnZ2VyQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgUGFnZURlYnVnZ2VyQWdl
bnQ6OmV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmlu
Zyogb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3Qg
Ym9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBib29sKiBy
ZXR1cm5CeVZhbHVlLCBjb25zdCBib29sKiBnZW5lcmF0ZVByZXZpZXcsIGNvbnN0IGJvb2wqIHNh
dmVSZXN1bHQsIGNvbnN0IGJvb2wqIGVtdWxhdGVVc2VyR2VzdHVyZSwgUmVmUHRyPFByb3RvY29s
OjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIE9wdGlvbmFsPGJvb2w+JiB3YXNUaHJv
d24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5kZXgpCiB7CiAgICAgYXV0byYgcGFnZUNo
cm9tZUNsaWVudCA9IG1faW5zcGVjdGVkUGFnZS5jaHJvbWUoKS5jbGllbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFn
ZW50LmgKaW5kZXggMjU3NTBmYzJlMzkzZGM3OGQ4MGVjMDE2YzdhMzE3NGVkNDhmYWY4Yy4uMGZm
NDYxNzJiNmI2ODEwZmMxNTU1ZmQzMTFiNDk2MzQ5NDBjMWJmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmgK
QEAgLTQ2LDEyICs0NiwxNSBAQCBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBXZWJEZWJ1Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlRGVidWdn
ZXJBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUGFn
ZURlYnVnZ2VyQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflBhZ2VEZWJ1
Z2dlckFnZW50KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFBhZ2VEZWJ1Z2dlckFnZW50KFBh
Z2VBZ2VudENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5QYWdlRGVidWdnZXJBZ2VudCgpOwogCi0g
ICAgLy8gRGVidWdnZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICAvLyBJbnNwZWN0b3I6
OkRlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCiAgICAgdm9pZCBldmFsdWF0ZU9uQ2Fs
bEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3Ry
aW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBp
bmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNB
bmRNdXRlQ29uc29sZSwgY29uc3QgYm9vbCogcmV0dXJuQnlWYWx1ZSwgY29uc3QgYm9vbCogZ2Vu
ZXJhdGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZlUmVzdWx0LCBjb25zdCBib29sKiBlbXVsYXRl
VXNlckdlc3R1cmUsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVP
YmplY3Q+JiByZXN1bHQsIE9wdGlvbmFsPGJvb2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4m
IHNhdmVkUmVzdWx0SW5kZXgpIGZpbmFsOwogCisgICAgLy8gSW5zcGVjdG9yOjpTY3JpcHREZWJ1
Z0xpc3RlbmVyCisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwg
Y29uc3QgU3RyaW5nJikgZmluYWw7CisKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24K
ICAgICB2b2lkIGRpZENsZWFyTWFpbkZyYW1lV2luZG93T2JqZWN0KCk7CiAgICAgdm9pZCBtYWlu
RnJhbWVTdGFydGVkTG9hZGluZygpOwpAQCAtNjgsMjIgKzcxLDE4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHdpbGxEaXNwYXRjaFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYpOwogICAgIHZvaWQg
ZGlkRGlzcGF0Y2hQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmKTsKIAotcHJvdGVjdGVkOgot
ICAgIHZvaWQgZW5hYmxlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKGJvb2wgaXNCZWlu
Z0Rlc3Ryb3llZCkgb3ZlcnJpZGU7Ci0KLSAgICBTdHJpbmcgc291cmNlTWFwVVJMRm9yU2NyaXB0
KGNvbnN0IFNjcmlwdCYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBkaWRDbGVhckFzeW5jU3RhY2tU
cmFjZURhdGEoKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKLSAgICB2b2lkIG11dGVDb25zb2xlKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBl
bmFibGUoKSBmaW5hbDsKKyAgICB2b2lkIGRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBm
aW5hbDsKIAotICAgIC8vIEpTQzo6U2NyaXB0RGVidWdMaXN0ZW5lcgotICAgIHZvaWQgYnJlYWtw
b2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIFN0cmluZyBzb3VyY2VNYXBVUkxGb3JTY3JpcHQoY29uc3QgU2NyaXB0JikgZmluYWw7CiAK
LSAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJv
clN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZENsZWFyQXN5bmNTdGFja1RyYWNlRGF0YSgpIGZpbmFsOworCisgICAgdm9pZCBtdXRl
Q29uc29sZSgpIGZpbmFsOworICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIGZpbmFsOworCisgICAg
SW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJp
bmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgZmluYWw7CiAKICAgICBQYWdlJiBt
X2luc3BlY3RlZFBhZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlSGVhcEFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlSGVhcEFnZW50LmNwcAppbmRleCA3NjI2YjNkZDM0NzE4OTcxZjY3ODM1
Y2E4YmI0ZWMyYTk5ZjVkNWJhLi5mNjJmNmViMDVjZTlmYjM2NGQwY2VmNDg0MTljOGQzNjNiODRk
NTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFn
ZUhlYXBBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdl
L1BhZ2VIZWFwQWdlbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBAIFBhZ2VIZWFwQWdlbnQ6OlBhZ2VI
ZWFwQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorUGFnZUhlYXBBZ2Vu
dDo6flBhZ2VIZWFwQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgUGFnZUhlYXBBZ2VudDo6ZW5h
YmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKIHsKICAgICBXZWJIZWFwQWdlbnQ6OmVuYWJs
ZShlcnJvclN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VIZWFwQWdlbnQuaAppbmRleCA4ZDEwMTc3Yjk5ZGU2NjA4NGMzNGM2YzkxNjdj
ODM5NGM4MTNlODU0Li4xZDhjZjc4YjA3NmQ3YTNkNDg0YjZmNWU0NTBhOTUyMTdkNTJjNjU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUhlYXBB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVh
cEFnZW50LmgKQEAgLTM3LDEyICszNywxNCBAQCBjbGFzcyBQYWdlSGVhcEFnZW50IGZpbmFsIDog
cHVibGljIFdlYkhlYXBBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUhlYXBB
Z2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUGFnZUhl
YXBBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+UGFnZUhlYXBBZ2VudCgp
ID0gZGVmYXVsdDsKKyAgICBleHBsaWNpdCBQYWdlSGVhcEFnZW50KFBhZ2VBZ2VudENvbnRleHQm
KTsKKyAgICB2aXJ0dWFsIH5QYWdlSGVhcEFnZW50KCk7CiAKLSAgICB2b2lkIGVuYWJsZShFcnJv
clN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJy
aWRlOworICAgIC8vIEluc3BlY3Rvcjo6SGVhcEJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAg
IHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlKEVycm9y
U3RyaW5nJikgZmluYWw7CiAKKyAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2
b2lkIG1haW5GcmFtZU5hdmlnYXRlZCgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuY3BwCmlu
ZGV4IDk4MGFkODJhNTI1ZjAyZTFmZTg2M2I3MmE5MTRiYWQyZDY2ZTYxZTAuLmJiOWE0MWQyZmQ4
ZWMwZGJiNjQzNzRhMzY0MzRkYjM2YjcxYzk1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5jcHAKQEAgLTQ2
LDYgKzQ2LDggQEAgUGFnZU5ldHdvcmtBZ2VudDo6UGFnZU5ldHdvcmtBZ2VudChQYWdlQWdlbnRD
b250ZXh0JiBjb250ZXh0KQogewogfQogCitQYWdlTmV0d29ya0FnZW50Ojp+UGFnZU5ldHdvcmtB
Z2VudCgpID0gZGVmYXVsdDsKKwogU3RyaW5nIFBhZ2VOZXR3b3JrQWdlbnQ6OmxvYWRlcklkZW50
aWZpZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICBpZiAobG9hZGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0Fn
ZW50LmgKaW5kZXggNWExOWQ5YWFkMzE2ZDhhNDlmOGRlNjZjNjgwMjlhNGRkYjRiODNhYi4uYzNl
YzA3MjZmNzA3NWRjYjhhYzdhY2I2ZTIwY2I0NGY0NjJmZjJmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5oCkBA
IC0zNSw4ICszNSw4IEBAIGNsYXNzIFBhZ2VOZXR3b3JrQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5z
cGVjdG9yTmV0d29ya0FnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlTmV0d29y
a0FnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBQYWdl
TmV0d29ya0FnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5QYWdlTmV0d29y
a0FnZW50KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFBhZ2VOZXR3b3JrQWdlbnQoUGFnZUFn
ZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgflBhZ2VOZXR3b3JrQWdlbnQoKTsKIAogcHJpdmF0
ZToKICAgICBTdHJpbmcgbG9hZGVySWRlbnRpZmllcihEb2N1bWVudExvYWRlciopIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50
aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VS
dW50aW1lQWdlbnQuY3BwCmluZGV4IDg5ODViYzk0NWZlNzVlMGU4NTFhMzZkZTM1ODRhYjA0NzFj
MGZkZmYuLmExMDk3YzUwMzQyNDQ3Yzg4Y2IyMWVjNDlhN2Y0NTIyYmNmMWJlN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRp
bWVBZ2VudC5jcHAKQEAgLTY0LDYgKzY0LDggQEAgUGFnZVJ1bnRpbWVBZ2VudDo6UGFnZVJ1bnRp
bWVBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCitQYWdlUnVudGltZUFn
ZW50Ojp+UGFnZVJ1bnRpbWVBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBQYWdlUnVudGltZUFn
ZW50OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogewogICAgIGJvb2wgZW5hYmxl
ZCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlUnVudGltZUFnZW50KCkgPT0gdGhpczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGlt
ZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRp
bWVBZ2VudC5oCmluZGV4IDkzYTc2Y2MxMWQyZjU3YTA5YmVjMDJmY2QzZWU4ZjMwMTA3YWQ2ZDAu
LmZjOWFiY2I2ZDYxMTBmZTg5NGZhYmVmMzVlNjBkODEwM2RhZGU1NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQu
aApAQCAtNTAsMjEgKzUwLDIxIEBAIGNsYXNzIFBhZ2VSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBhZ2VSdW50aW1lQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIFBhZ2VSdW50aW1lQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZp
cnR1YWwgflBhZ2VSdW50aW1lQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgZXhwbGljaXQgUGFnZVJ1
bnRpbWVBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVhbCB+UGFnZVJ1bnRpbWVB
Z2VudCgpOwogCi0gICAgLy8gUnVudGltZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZv
aWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9y
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVjdG9yOjpSdW50aW1lQmFja2VuZERpc3Bh
dGNoZXJIYW5kbGVyCisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIGV2YWx1YXRlKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9iamVjdEdy
b3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGRvTm90
UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgaW50KiBleGVjdXRpb25Db250
ZXh0SWQsIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRlUHJl
dmlldywgY29uc3QgYm9vbCogc2F2ZVJlc3VsdCwgY29uc3QgYm9vbCogZW11bGF0ZVVzZXJHZXN0
dXJlLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYg
cmVzdWx0LCBPcHRpb25hbDxib29sPiYgd2FzVGhyb3duLCBPcHRpb25hbDxpbnQ+JiBzYXZlZFJl
c3VsdEluZGV4KSBmaW5hbDsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAg
IHZvaWQgZGlkQ3JlYXRlTWFpbldvcmxkQ29udGV4dChGcmFtZSYpOwogCiBwcml2YXRlOgotICAg
IEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3Ry
aW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOwotICAgIHZvaWQg
bXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlk
ZTsKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChF
cnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBmaW5hbDsKKyAgICB2
b2lkIG11dGVDb25zb2xlKCkgZmluYWw7CisgICAgdm9pZCB1bm11dGVDb25zb2xlKCkgZmluYWw7
CiAgICAgdm9pZCByZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKTsKICAgICB2b2lkIG5v
dGlmeUNvbnRleHRDcmVhdGVkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgSlNDOjpFeGVjU3RhdGUq
LCBTZWN1cml0eU9yaWdpbiosIGJvb2wgaXNQYWdlQ29udGV4dCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2Vy
QWdlbnQuY3BwCmluZGV4IDJlZDU1Y2Y1Njc5OWY2NTMwOWNkNmVlMjk2YmM1YmI2Mzg5MGEyY2Qu
LjQ3YTljNWFjZGZlY2E1NzFlZjVmMGJkNTI5M2EyZTNjMDFlMWFiMGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdv
cmtlckFnZW50LmNwcApAQCAtNDQsNiArNDQsOCBAQCBTZXJ2aWNlV29ya2VyQWdlbnQ6OlNlcnZp
Y2VXb3JrZXJBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmIGNvbnRleHQpCiAgICAgQVNTRVJUKGNv
bnRleHQud29ya2VyR2xvYmFsU2NvcGUuaXNDb250ZXh0VGhyZWFkKCkpOwogfQogCitTZXJ2aWNl
V29ya2VyQWdlbnQ6On5TZXJ2aWNlV29ya2VyQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgU2Vy
dmljZVdvcmtlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpG
cm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdv
cmtlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9TZXJ2
aWNlV29ya2VyQWdlbnQuaAppbmRleCA0MTY4ZDlkMDcwZGQzODg3N2U1YmQyMzRiMmYzM2RlZDA3
YjFiZDgyLi5iNjJmYjE1Y2I0MjVhYWQ4NjFhZGNiNjc2NzM0NDA0YjYzZDI2YTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2Vy
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9TZXJ2
aWNlV29ya2VyQWdlbnQuaApAQCAtNDEsMTIgKzQxLDEzIEBAIGNsYXNzIFNlcnZpY2VXb3JrZXJB
Z2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6
OlNlCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
U2VydmljZVdvcmtlckFnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflNl
cnZpY2VXb3JrZXJBZ2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5TZXJ2aWNlV29ya2Vy
QWdlbnQoKTsKIAorICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQogICAgIHZvaWQgZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6
OkJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CiAgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCi0gICAgLy8g
U2VydmljZVdvcmtlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIC8vIEluc3BlY3Rvcjo6
U2VydmljZVdvcmtlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgogICAgIHZvaWQgZ2V0SW5pdGlh
bGl6YXRpb25JbmZvKEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlNl
cnZpY2VXb3JrZXI6OkNvbmZpZ3VyYXRpb24+JikgZmluYWw7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJBdWRpdEFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckF1
ZGl0QWdlbnQuY3BwCmluZGV4IDkxNTA0YTBlNGZlYmQyZmVlNDViMGYxNjhjNjM0NWYzOGIzOWUy
ZTIuLjRiOTUyNDFjZmExMjNjZWQ4ZmRiOTNlZjIxMDlkZWJkM2U3MzgxOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckF1
ZGl0QWdlbnQuY3BwCkBAIC00Niw2ICs0Niw4IEBAIFdvcmtlckF1ZGl0QWdlbnQ6OldvcmtlckF1
ZGl0QWdlbnQoV29ya2VyQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIEFTU0VSVChjb250ZXh0
Lndvcmtlckdsb2JhbFNjb3BlLmlzQ29udGV4dFRocmVhZCgpKTsKIH0KIAorV29ya2VyQXVkaXRB
Z2VudDo6fldvcmtlckF1ZGl0QWdlbnQoKSA9IGRlZmF1bHQ7CisKIEluamVjdGVkU2NyaXB0IFdv
cmtlckF1ZGl0QWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChleGVjdXRp
b25Db250ZXh0SWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQuaAppbmRleCAxYjhkOWZmNzU5NDE1NGU2Y2M5
NGM2M2M0MmUzOTI4OGRhM2UyN2UzLi42ZDcwYTA2MTVkOTUxODNlYjBmNTViODc4NzM0YzBkODg0
ZWQxMzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtl
ci9Xb3JrZXJBdWRpdEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5oCkBAIC0zNyw5ICszNywxMCBAQCBjbGFzcyBXb3Jr
ZXJBdWRpdEFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yQXVkaXRBZ2Vu
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
V29ya2VyQXVkaXRBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5Xb3Jr
ZXJBdWRpdEFnZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlw
dCBpbmplY3RlZFNjcmlwdEZvckV2YWwoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IGlu
dCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKKyAgICBJbnNwZWN0b3I6OkluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29u
c3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIGZpbmFsOwogCiAgICAgV29ya2VyR2xvYmFsU2Nv
cGUmIG1fd29ya2VyR2xvYmFsU2NvcGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAKaW5k
ZXggMzgxZjU3MmU5MTI5NmM2Yjk0ZTE4MzY0NmUwMThmN2UyMmE5MDgwMS4uZWFkNDJkYzMzZDY4
N2YwNDNlZDU2N2UzYjhmNGIxNTgwNzY5NjY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuY3Bw
CkBAIC0zOCw0ICszOCw2IEBAIFdvcmtlckNvbnNvbGVBZ2VudDo6V29ya2VyQ29uc29sZUFnZW50
KFdvcmtlckFnZW50Q29udGV4dCYgY29udGV4dCkKICAgICBBU1NFUlQoY29udGV4dC53b3JrZXJH
bG9iYWxTY29wZS5pc0NvbnRleHRUaHJlYWQoKSk7CiB9CiAKK1dvcmtlckNvbnNvbGVBZ2VudDo6
fldvcmtlckNvbnNvbGVBZ2VudCgpID0gZGVmYXVsdDsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29y
a2VyQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtl
ci9Xb3JrZXJDb25zb2xlQWdlbnQuaAppbmRleCA3YTJkNjk1OTcyNTBlMzlmYTRiYzgxNWZlZjYw
MDgxNDI1ZjU3YWE3Li5kM2I1Y2EyNmVlNzg4NTFhODk1OTU2Yzc3ZDM4MjAwZTBhODA2ODU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJD
b25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtl
ci9Xb3JrZXJDb25zb2xlQWdlbnQuaApAQCAtMzQsOCArMzQsOCBAQCBjbGFzcyBXb3JrZXJDb25z
b2xlQWdlbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShXb3JrZXJDb25zb2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIFdvcmtlckNvbnNvbGVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQm
KTsKLSAgICB+V29ya2VyQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFdv
cmtlckNvbnNvbGVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5Xb3Jr
ZXJDb25zb2xlQWdlbnQoKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRlYnVnZ2Vy
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRl
YnVnZ2VyQWdlbnQuaAppbmRleCBlOTEzMTQ3YThlYzcxNGRjMDkwYjMzYWMyOTJjYTEwNDk4MDc5
YzdmLi41ZTMwZGMyNmVlMDJiMzcwZTQ0YjE1MGZhMzY2OGE5YjM1NTdjY2I1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJEZWJ1Z2dlckFn
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
RGVidWdnZXJBZ2VudC5oCkBAIC0zNSwxOCArMzUsMTggQEAgY2xhc3MgV29ya2VyRGVidWdnZXJB
Z2VudCBmaW5hbCA6IHB1YmxpYyBXZWJEZWJ1Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShXb3JrZXJEZWJ1Z2dlckFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBXb3JrZXJEZWJ1Z2dlckFnZW50KFdvcmtlckFnZW50Q29udGV4dCYp
OwotICAgIH5Xb3JrZXJEZWJ1Z2dlckFnZW50KCk7CisgICAgZXhwbGljaXQgV29ya2VyRGVidWdn
ZXJBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5Xb3JrZXJEZWJ1Z2dl
ckFnZW50KCk7CisKKyAgICAvLyBJbnNwZWN0b3I6OlNjcmlwdERlYnVnTGlzdGVuZXIKKyAgICB2
b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKSBm
aW5hbDsKIAogcHJpdmF0ZToKICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBm
b3Igd29ya2Vycy4KLSAgICB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGUgeyB9Ci0gICAgdm9p
ZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBtdXRlQ29uc29sZSgpIGZp
bmFsIHsgfQorICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIGZpbmFsIHsgfQogCi0gICAgLy8gSlND
OjpTY3JpcHREZWJ1Z0xpc3RlbmVyCi0gICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpTQzo6
RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Ci0KLSAgICBJbnNwZWN0b3I6Oklu
amVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGlu
dCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKKyAgICBJbnNwZWN0b3I6OkluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhl
Y3V0aW9uQ29udGV4dElkKSBmaW5hbDsKIAogICAgIFdvcmtlckdsb2JhbFNjb3BlJiBtX3dvcmtl
ckdsb2JhbFNjb3BlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuY3BwCmluZGV4IGNmYzVjZDI4
MzQyNTE2MzQ1M2E2OGQ2ODhjZTgyMzYxM2Q5ZThlYzYuLjY4ZDNjZjljOWYwYzNhMDJiYWY0NWE3
OGJiYWIyMWE0ZDRjYjgwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyTmV0d29ya0FnZW50LmNwcApAQCAtNDEsNiAr
NDEsOCBAQCBXb3JrZXJOZXR3b3JrQWdlbnQ6Oldvcmtlck5ldHdvcmtBZ2VudChXb3JrZXJBZ2Vu
dENvbnRleHQmIGNvbnRleHQpCiAgICAgQVNTRVJUKGNvbnRleHQud29ya2VyR2xvYmFsU2NvcGUu
aXNDb250ZXh0VGhyZWFkKCkpOwogfQogCitXb3JrZXJOZXR3b3JrQWdlbnQ6On5Xb3JrZXJOZXR3
b3JrQWdlbnQoKSA9IGRlZmF1bHQ7CisKIFN0cmluZyBXb3JrZXJOZXR3b3JrQWdlbnQ6OmxvYWRl
cklkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKQogewogICAgIHJldHVybiB7IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3Jr
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlck5l
dHdvcmtBZ2VudC5oCmluZGV4IDg2NWUyMmIxOWZlNzYwM2QyOTZkMTgxMjk1OGU1MmNkNTQ5NTcx
OTAuLmU1MDc3N2M3ZWExMjVkMzI4YjEzYTQ2ZjQ1YzcyZGE3MjkyZDhjYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlck5l
dHdvcmtBZ2VudC5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFdvcmtlck5ldHdvcmtBZ2VudCBm
aW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JOZXR3b3JrQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IFdvcmtlck5ldHdvcmtBZ2VudChXb3Jr
ZXJBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5Xb3JrZXJOZXR3b3JrQWdlbnQoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+V29ya2VyTmV0d29ya0FnZW50KCk7CiAKIHByaXZhdGU6CiAg
ICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlclJ1bnRp
bWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3Jr
ZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDFiMGY3ZDA5MmJjYTFmNTE5NDM1ZDgzMDM0Y2I3NjMy
OTdhY2Y3ZDcuLmMwOWY4ZDA5MDhhMjg4OTBlZmVlN2I2MDM4ODllYjFlOGEwZTQwN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlclJ1bnRp
bWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyUnVudGltZUFnZW50LmNwcApAQCAtNDksNiArNDksOCBAQCBXb3JrZXJSdW50aW1lQWdl
bnQ6OldvcmtlclJ1bnRpbWVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmIGNvbnRleHQpCiAgICAg
QVNTRVJUKGNvbnRleHQud29ya2VyR2xvYmFsU2NvcGUuaXNDb250ZXh0VGhyZWFkKCkpOwogfQog
CitXb3JrZXJSdW50aW1lQWdlbnQ6On5Xb3JrZXJSdW50aW1lQWdlbnQoKSA9IGRlZmF1bHQ7CisK
IEluamVjdGVkU2NyaXB0IFdvcmtlclJ1bnRpbWVBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFs
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQp
CiB7CiAgICAgaWYgKGV4ZWN1dGlvbkNvbnRleHRJZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJSdW50aW1lQWdlbnQuaApp
bmRleCBlNzVmYzliNWVlNzJjNzUyYmM2OTMyN2E0MTQzZDAxMTc2OTIwZGJkLi42OTBlOWYwYTg5
YTU2MjViMmE4MWU0NTg5ODFkZDUwZTg0ODljMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJSdW50aW1lQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJSdW50aW1lQWdlbnQuaApA
QCAtNDMsMTUgKzQzLDE1IEBAIGNsYXNzIFdvcmtlclJ1bnRpbWVBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBJbnNwZWN0b3I6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV29ya2VyUnVudGltZUFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBXb3JrZXJSdW50aW1lQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7Ci0g
ICAgfldvcmtlclJ1bnRpbWVBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBleHBsaWNpdCBXb3JrZXJS
dW50aW1lQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVhbCB+V29ya2VyUnVu
dGltZUFnZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBp
bmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNv
bnRleHRJZCkgb3ZlcnJpZGU7CisgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3Rl
ZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJ
ZCkgZmluYWw7CiAKICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29y
a2Vycy4KLSAgICB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB1bm11
dGVDb25zb2xlKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBtdXRlQ29uc29sZSgpIGZpbmFsIHsg
fQorICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIGZpbmFsIHsgfQogCiAgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6UnVudGltZUJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwogICAg
IFdvcmtlckdsb2JhbFNjb3BlJiBtX3dvcmtlckdsb2JhbFNjb3BlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5jcHAKaW5k
ZXggNGNmYzM5MGE1ZGNjNjUzMWNjM2YzZGRhZmMxYzQ2OGZmZTBjMDhiYy4uYmEwMDFjMDhkMDJm
N2VkNmMwMDg1NjZmN2FmODlhMzgxY2RlZDIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwCkBAIC0zNCw2ICsz
NCw4IEBAIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudDo6V2ViUGFnZUluc3BlY3RvclRhcmdl
dEFnZW50KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0CiB7CiB9CiAKK1dlYlBhZ2VJbnNwZWN0b3JU
YXJnZXRBZ2VudDo6fldlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudCgpID0gZGVmYXVsdDsKKwog
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudDo6
ZnJvbnRlbmRDaGFubmVsKCkKIHsKICAgICByZXR1cm4gKnRoaXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5oCmluZGV4IDkz
OGJmZDAwYTlhMGVkNDlhMjliYTM1MjM1NzNkNTQ2NDA2YmM4YmUuLjBkZDRhYTY3ZTQ2Y2MwMTll
ODY5NmI5OTcyNDc2YzU3OTM3YTliNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5oCkBAIC0zMiwxMCArMzIsOSBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50IGZp
bmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0QWdlbnQsIHB1YmxpYyBJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCB7CiBwdWJsaWM6Ci0gICAgV2ViUGFnZUluc3BlY3RvclRh
cmdldEFnZW50KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXImLCBJbnNwZWN0b3I6OkJhY2tlbmRE
aXNwYXRjaGVyJik7Ci0gICAgdmlydHVhbCB+V2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50KCkg
PSBkZWZhdWx0OworICAgIGV4cGxpY2l0IFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudChJbnNw
ZWN0b3I6OkZyb250ZW5kUm91dGVyJiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciYpOwor
ICAgIHZpcnR1YWwgfldlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudCgpOwogCi1wcml2YXRlOgog
ICAgIC8vIEluc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0QWdlbnQKICAgICBJbnNwZWN0b3I6OkZy
b250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsKCkgZmluYWw7CiAKQEAgLTQzLDYgKzQyLDcg
QEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5
cGUgY29ubmVjdGlvblR5cGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9G
cm9udGVuZChjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAorcHJpdmF0ZToKICAgICBJbnNwZWN0b3I6
OkZyb250ZW5kUm91dGVyJiBtX3JvdXRlcjsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377299</attachid>
            <date>2019-08-26 17:23:32 -0700</date>
            <delta_ts>2019-08-26 18:51:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200959-20190826172331.patch</filename>
            <type>text/plain</type>
            <size>130581</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJhYWI4NmI0ZWRkYzMzYzRiODczMDg5ZjlhZjBm
ZmI2OTM3NWY0YTQuLjM2NmQ2MzA0NGY0NzY0MWYxM2FhOWQxN2IwODU0NjUzMzYwMjkzNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA4LTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1
c2UgbW9yZSBDKysga2V5d29yZHMgZm9yIGRlZmluaW5nIGFnZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICAtIG1ha2UgY29uc3RydWN0b3JzIGBw
cm90ZWN0ZWRgIHdoZW4gdGhlIGFnZW50IGlzbid0IG1lYW50IHRvIGJlIGNvbnN0cnVjdGVkIGRp
cmVjdGx5CisgICAgICAgICAtIGFkZCBgdmlydHVhbGAgZGVzdHJ1Y3RvcnMgdGhhdCBhcmUgZGVm
aW5lZCBpbiB0aGUgKi5jcHAgc28gZm9yd2FyZC1kZWNsYXJhdGlvbnMgd29yaworICAgICAgICAg
LSB1c2UgYGZpbmFsYCB3aGVyZXZlciBwb3NzaWJsZQorICAgICAgICAgLSBhZGQgY29tbWVudHMg
dG8gaW5kaWNhdGUgd2hlcmUgYW55IHZpcnR1YWwgZnVuY3Rpb25zIGNvbWUgZnJvbQorCisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQXVkaXRBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2Vu
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3Bw
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50
LmNwcDoKKwogMjAxOS0wOC0yNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5j
b20+CiAKICAgICAgICAgW0pTQ10gRW5zdXJlIHg/LnkgPz8geiBpcyBmYXN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYTQ1NzFiYzRkNmJkZGVmZGI0NjQwYzYyZTY4YjA4ZTg5MjZiZWI2Yy4uNmY5YjdkMjNiNWZi
M2ZhNjYwNWQ3OTA5OTU1NjBkYWQyMWYzMDMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBA
CisyMDE5LTA4LTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiB1c2UgbW9yZSBDKysga2V5d29yZHMgZm9yIGRlZmluaW5nIGFnZW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICAtIG1h
a2UgY29uc3RydWN0b3JzIGBwcm90ZWN0ZWRgIHdoZW4gdGhlIGFnZW50IGlzbid0IG1lYW50IHRv
IGJlIGNvbnN0cnVjdGVkIGRpcmVjdGx5CisgICAgICAgICAtIGFkZCBgdmlydHVhbGAgZGVzdHJ1
Y3RvcnMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgKi5jcHAgc28gZm9yd2FyZC1kZWNsYXJhdGlv
bnMgd29yaworICAgICAgICAgLSB1c2UgYGZpbmFsYCB3aGVyZXZlciBwb3NzaWJsZQorICAgICAg
ICAgLSBhZGQgY29tbWVudHMgdG8gaW5kaWNhdGUgd2hlcmUgYW55IHZpcnR1YWwgZnVuY3Rpb25z
IGNvbWUgZnJvbQorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDUFVQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDUFVQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
U1NBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNB
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQu
Y3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHA6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1l
bGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dl
YkhlYXBBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50LmNw
cDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VOZXR3b3JrQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2Uv
UGFnZU5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1
bnRpbWVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2Vydmlj
ZVdvcmtlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2Vydmlj
ZVdvcmtlckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3Jr
ZXJBdWRpdEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
QXVkaXRBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
Q29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
Q29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29y
a2VyTmV0d29ya0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29y
a2VyTmV0d29ya0FnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9X
b3JrZXJSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9X
b3JrZXJSdW50aW1lQWdlbnQuY3BwOgorCiAyMDE5LTA4LTI2ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGltaXplIGNvbXB1dGF0aW9uIG9mIEFi
c29sdXRlQ2xpcFJlY3RzIGNsaXAgcmVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWVhYWMxOTEyYmQ0YzIyZTYz
ZjljZjMxODkzOTczZTk3MDcyNjUyOC4uMmY0YzJlYmZiNjhhNTA4ODY4Y2ZjYWI2ZjJiZWI4Mzlj
YjY3ZWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0wOC0yNiAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlIG1v
cmUgQysrIGtleXdvcmRzIGZvciBkZWZpbmluZyBhZ2VudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDk1OQorCisgICAgICAgIFJldmlld2VkIGJ5
IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICAgLSBtYWtlIGNvbnN0cnVjdG9ycyBgcHJvdGVj
dGVkYCB3aGVuIHRoZSBhZ2VudCBpc24ndCBtZWFudCB0byBiZSBjb25zdHJ1Y3RlZCBkaXJlY3Rs
eQorICAgICAgICAgLSBhZGQgYHZpcnR1YWxgIGRlc3RydWN0b3JzIHRoYXQgYXJlIGRlZmluZWQg
aW4gdGhlICouY3BwIHNvIGZvcndhcmQtZGVjbGFyYXRpb25zIHdvcmsKKyAgICAgICAgIC0gdXNl
IGBmaW5hbGAgd2hlcmV2ZXIgcG9zc2libGUKKyAgICAgICAgIC0gYWRkIGNvbW1lbnRzIHRvIGlu
ZGljYXRlIHdoZXJlIGFueSB2aXJ0dWFsIGZ1bmN0aW9ucyBjb21lIGZyb20KKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50LmNwcDoKKwogMjAxOS0wOC0yNiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChpT1MgMTMpOiBUZXN0cyB0aGF0IHNpbXVsYXRlIG11bHRpcGxlIGJhY2stdG8tYmFjayBzaW5n
bGUgdGFwcyBmYWlsIG9yIHRpbWUgb3V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggNDE3ZTc3NWZi
ODAyNDljMDQwMzEzN2E4Mjc4MjEzNzMyN2QzMzJiNC4uNmFhYTI3YjFiYTAwZDc2OWZlNmQ1ZTQ0
YmVhYWQwYjgxY2IwZmU5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcApAQCAtNDUsNiArNDUsOCBAQCBJ
bnNwZWN0b3JBZ2VudDo6SW5zcGVjdG9yQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewog
fQogCitJbnNwZWN0b3JBZ2VudDo6fkluc3BlY3RvckFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lk
IEluc3BlY3RvckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0
ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaAppbmRleCA2ODdiZjc1
MTIyMjg5MDUxNGU4NGQ5OWE4OGRmNTY5OGVmZWExZjkxLi44YzRmOGNjZjNlYTdkOTExYmFmYzNi
ZDg2N2NkNGVmYzBkNmJmNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmgKQEAgLTQ3LDE2ICs0NywyMCBAQCBj
bGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNw
ZWN0b3JBZ2VudEJhc2UsIHB1YmxpYwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIEluc3BlY3RvckFnZW50KEFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfklu
c3BlY3RvckFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkluc3BlY3RvckFnZW50KCk7
CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlcios
IEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICAvLyBJbnNwZWN0
b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVu
ZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKTsKIAotICAgIHZvaWQgZW5hYmxlKEVycm9y
U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBpbml0aWFsaXplZChFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIC8v
IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9y
U3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBpbml0
aWFsaXplZChFcnJvclN0cmluZyYpOwogCisgICAgLy8gQ29tbWFuZExpbmVBUEkKICAgICB2b2lk
IGluc3BlY3QoUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiYgb2JqZWN0
VG9JbnNwZWN0LCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGhpbnRzKTsKKwogICAgIHZvaWQgZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjb25zdCBTdHJpbmcmIHNjcmlwdCk7CiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2Vu
dC5jcHAKaW5kZXggYjcxNzc5NTEwZDJmZjNlMDYwYjQ5NTc5MGEzODQyOWFlMmU4OTFkMi4uNDk2
NTRlOTJhNWQ2NDFjN2E4Y2I1ZjM4OTI3Nzg2NWE5ZmEyNjU0NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVk
aXRBZ2VudC5jcHAKQEAgLTQ4LDYgKzQ4LDggQEAgSW5zcGVjdG9yQXVkaXRBZ2VudDo6SW5zcGVj
dG9yQXVkaXRBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckF1
ZGl0QWdlbnQ6On5JbnNwZWN0b3JBdWRpdEFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3Bl
Y3RvckF1ZGl0QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRl
ciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuaAppbmRl
eCBhYmFlZjg2MjE0OTVhZWQ2ZDRlNTU5YjI4OTEzM2MyZjljZTdjMzVjLi5hNTYxNGM1ZTdiNGM3
MDcxZDU2ZTZhY2JmYTM1MGM4NTdiNDU2NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oCkBA
IC00MywxMSArNDMsMTEgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yQXVkaXRB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYwogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEluc3BlY3RvckF1ZGl0QWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgfkluc3BlY3RvckF1ZGl0QWdlbnQoKSA9IGRlZmF1
bHQ7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yQXVkaXRBZ2VudCgpOwogCiAgICAgLy8gSW5zcGVj
dG9yQWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRl
bmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5k
RGlzcGF0Y2hlciopIGZpbmFsOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoRGlzY29ubmVjdFJlYXNvbikgZmluYWw7CiAKICAgICAvLyBBdWRpdEJhY2tlbmREaXNwYXRj
aGVySGFuZGxlcgogICAgIHZvaWQgc2V0dXAoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1
dGlvbkNvbnRleHRJZCkgZmluYWw7CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBib29s
IGhhc0FjdGl2ZUF1ZGl0KCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBJbnNw
ZWN0b3JBdWRpdEFnZW50KEFnZW50Q29udGV4dCYpOworICAgIEluc3BlY3RvckF1ZGl0QWdlbnQo
QWdlbnRDb250ZXh0Jik7CiAKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXImIGluamVjdGVkU2Ny
aXB0TWFuYWdlcigpIHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCmluZGV4IDVkMjRjNjllNmJmNDVkNzJmYjBiZGE1M2I0
YzQ1NzU5ODYxM2NiY2IuLjc2MjYzMGQzMjE3M2ZhOWE4ODQ5MDc0NDk0YmUwNDNiZTdjNTBiMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcApAQCAtNTAsNiArNTAsOCBAQCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmIGNv
bnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckNvbnNvbGVBZ2VudDo6fkluc3BlY3RvckNvbnNvbGVB
Z2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikK
IHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggNTUzODdjNDk3ZWFlOWIxN2I5
MjVjYTcxM2Y2ZWNlODNkNGE4NGI3Zi4uYzg1N2NkZGZlYmQ3NzEzM2Q5MzIxZDBiY2ZhYzk3ZjBh
MTIyMzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTUzLDE4ICs1MywyMiBA
QCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JDb25zb2xlQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaQogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JDb25zb2xlQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+
SW5zcGVjdG9yQ29uc29sZUFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRpc2NhcmRWYWx1ZXMoKSBvdmVycmlkZTsKKyAgICAvLyBJbnNw
ZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9u
dGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKKyAgICB2b2lk
IGRpc2NhcmRWYWx1ZXMoKSBmaW5hbDsKKworICAgIC8vIENvbnNvbGVCYWNrZW5kRGlzcGF0Y2hl
ckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZvaWQg
ZGlzYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJv
clN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0TG9nZ2luZ0NoYW5uZWxzKEVycm9yU3Ry
aW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWw+PiYp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TG9nZ2luZ0NoYW5uZWxMZXZlbChFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgY2hhbm5lbCwgY29uc3QgU3RyaW5nJiBsZXZlbCkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHNldEluc3BlY3RvckhlYXBBZ2VudChJbnNwZWN0b3JIZWFwQWdlbnQqIGFnZW50
KSB7IG1faGVhcEFnZW50ID0gYWdlbnQ7IH0KIAotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0KICAgICBib29s
IGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KICAgICB2b2lkIHJlc2V0KCk7
CiAKQEAgLTc3LDkgKzgxLDYgQEAgcHVibGljOgogICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKICAgICB2b2lkIGNvdW50UmVzZXQoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKIAotICAgIHZvaWQgZ2V0TG9nZ2luZ0NoYW5u
ZWxzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNvbnNvbGU6
OkNoYW5uZWw+PiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0TG9nZ2luZ0NoYW5uZWxMZXZlbChF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2hhbm5lbCwgY29uc3QgU3RyaW5nJiBsZXZlbCkg
b3ZlcnJpZGU7Ci0KIHByb3RlY3RlZDoKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6
dW5pcXVlX3B0cjxDb25zb2xlTWVzc2FnZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuY3BwCmluZGV4IDU4OTEzYzYwNTk5NTIyMTU5OTQ1MjFiY2JjNWJjZDMzZTFmOWQ3ZjkuLjYx
Zjk3YTVjZTc2YjRjYTc4Y2FlODY3YTU4ZjhlN2ExZGZhYTg5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC03MSw5ICs3MSw3IEBAIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIGNs
ZWFyQnJlYWtEZXRhaWxzKCk7CiB9CiAKLUluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6On5JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KCkKLXsKLX0KK0luc3BlY3RvckRlYnVnZ2VyQWdlbnQ6On5JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OwogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmRE
aXNwYXRjaGVyKikKIHsKQEAgLTgxLDggKzc5LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW4K
IAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKLSAgICBib29sIHNraXBSZWNvbXBpbGUg
PSByZWFzb24gPT0gRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkOwot
ICAgIGRpc2FibGUoc2tpcFJlY29tcGlsZSk7CisgICAgZGlzYWJsZShyZWFzb24gPT0gRGlzY29u
bmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjplbmFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmlu
ZGV4IDIzYThkYTAxM2RiOTQ1YTIzMzQzZWUwMDViY2IyNTQyY2YxOTI2OTEuLmFjZDRkY2Q0NWI1
N2FmZjg2MGViNjk4ODNiY2JhOGMwYjlmM2UwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmgKQEAgLTQ5LDE0ICs0OSwxNSBAQCBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiBj
bGFzcyBTY3JpcHREZWJ1Z1NlcnZlcjsKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1j
bGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50IDogcHVibGljIElu
c3BlY3RvckFnZW50QmFzZSwgcHVibGljIFNjcmlwdERlYnVnTGlzdGVuZXIsIHB1YmxpYyBEZWJ1
Z2dlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlciB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGlj
IERlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyLCBwdWJsaWMgU2NyaXB0RGVidWdMaXN0
ZW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCk7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
IGNoYXIqIGJhY2t0cmFjZU9iamVjdEdyb3VwOwotCiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRGVi
dWdnZXJBZ2VudCgpOwogCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGJhY2t0cmFjZU9iamVjdEdy
b3VwOworCisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCiAgICAgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFs
OwogICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNv
bikgZmluYWw7CiAKQEAgLTg0LDYgKzg1LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhdXNl
Rm9ySW50ZXJuYWxTY3JpcHRzKEVycm9yU3RyaW5nJiwgYm9vbCBzaG91bGRQYXVzZSkgZmluYWw7
CiAgICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9i
amVjdEdyb3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wq
IGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgYm9vbCogcmV0dXJu
QnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZlUmVz
dWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUsIFJlZlB0cjxQcm90b2NvbDo6UnVu
dGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxib29sPiYgd2FzVGhyb3duLCBP
cHRpb25hbDxpbnQ+JiBzYXZlZFJlc3VsdEluZGV4KSBvdmVycmlkZTsKIAorICAgIC8vIFNjcmlw
dERlYnVnTGlzdGVuZXIKKyAgICB2b2lkIGRpZFBhcnNlU291cmNlKEpTQzo6U291cmNlSUQsIGNv
bnN0IFNjcmlwdCYpIGZpbmFsOworICAgIHZvaWQgZmFpbGVkVG9QYXJzZVNvdXJjZShjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBkYXRhLCBpbnQgZmlyc3RMaW5lLCBpbnQgZXJyb3JM
aW5lLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgZmluYWw7CisgICAgdm9pZCB3aWxsUnVu
TWljcm90YXNrKCkgZmluYWw7CisgICAgdm9pZCBkaWRSdW5NaWNyb3Rhc2soKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFBhdXNlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlIGNhbGxGcmFtZXMs
IEpTQzo6SlNWYWx1ZSBleGNlcHRpb25PckNhdWdodFZhbHVlKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZENvbnRpbnVlKCkgZmluYWw7CisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uU291bmQoaW50IGJy
ZWFrcG9pbnRBY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGJyZWFrcG9pbnRBY3Rp
b25Qcm9iZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFNjcmlwdEJyZWFrcG9pbnRBY3Rpb24mLCB1
bnNpZ25lZCBiYXRjaElkLCB1bnNpZ25lZCBzYW1wbGVJZCwgSlNDOjpKU1ZhbHVlIHNhbXBsZSkg
ZmluYWw7CisKICAgICBib29sIGlzUGF1c2VkKCkgY29uc3Q7CiAgICAgYm9vbCBicmVha3BvaW50
c0FjdGl2ZSgpIGNvbnN0OwogCkBAIC0xMzEsNyArMTQyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGVuYWJs
ZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKGJvb2wgc2tpcFJlY29tcGlsZSk7CisgICAg
dmlydHVhbCB2b2lkIGRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKTsKIAogICAgIHZpcnR1
YWwgU3RyaW5nIHNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQmKTsKIApAQCAtMTQx
LDE2ICsxNTIsNiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFJlZjxKU09OOjpBcnJheU9m
PFByb3RvY29sOjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lPj4gY3VycmVudENhbGxGcmFtZXMoY29uc3Qg
SW5qZWN0ZWRTY3JpcHQmKTsKIAotICAgIC8vIEpTQzo6U2NyaXB0RGVidWdMaXN0ZW5lcgotICAg
IHZvaWQgZGlkUGFyc2VTb3VyY2UoSlNDOjpTb3VyY2VJRCwgY29uc3QgU2NyaXB0JikgZmluYWw7
Ci0gICAgdm9pZCBmYWlsZWRUb1BhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIGRhdGEsIGludCBmaXJzdExpbmUsIGludCBlcnJvckxpbmUsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKSBmaW5hbDsKLSAgICB2b2lkIHdpbGxSdW5NaWNyb3Rhc2soKSBmaW5hbDsK
LSAgICB2b2lkIGRpZFJ1bk1pY3JvdGFzaygpIGZpbmFsOwotICAgIHZvaWQgZGlkUGF1c2UoSlND
OjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUgY2FsbEZyYW1lcywgSlNDOjpKU1ZhbHVlIGV4Y2Vw
dGlvbk9yQ2F1Z2h0VmFsdWUpIGZpbmFsOwotICAgIHZvaWQgZGlkQ29udGludWUoKSBmaW5hbDsK
LSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChpbnQgYnJlYWtwb2ludEFjdGlvbklkZW50
aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvblByb2JlKEpTQzo6RXhlY1N0
YXRlJiwgY29uc3QgU2NyaXB0QnJlYWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIGJhdGNoSWQsIHVu
c2lnbmVkIHNhbXBsZUlkLCBKU0M6OkpTVmFsdWUgc2FtcGxlKSBmaW5hbDsKLQogICAgIHZvaWQg
cmVzb2x2ZUJyZWFrcG9pbnQoY29uc3QgU2NyaXB0JiwgSlNDOjpCcmVha3BvaW50Jik7CiAgICAg
dm9pZCBzZXRCcmVha3BvaW50KEpTQzo6QnJlYWtwb2ludCYsIGJvb2wmIGV4aXN0aW5nKTsgICAg
CiAgICAgdm9pZCBkaWRTZXRCcmVha3BvaW50KGNvbnN0IEpTQzo6QnJlYWtwb2ludCYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFNjcmlwdEJyZWFrcG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQu
Y3BwCmluZGV4IGMxNDczNjg5ZmMwZjFiN2RjYjJmNWNmNWE1NmM0YjdlOWRjM2QyYzcuLjA5ZDY0
ZWI2ODljMzc4NzU2MzQ0YTk5ODE5NzVmZDliZDJiOGJiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFn
ZW50LmNwcApAQCAtNDksNiArNDksOCBAQCBJbnNwZWN0b3JIZWFwQWdlbnQ6Okluc3BlY3Rvckhl
YXBBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckhlYXBBZ2Vu
dDo6fkluc3BlY3RvckhlYXBBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JIZWFw
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tl
bmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKaW5kZXggMmJiOTE2ZjEy
ZDExYTMxYmYwM2I3NmQ5MjhmMDYwN2E2OTRlMGY3MC4uOWM5MzY2NzNmYjNlNzcwMGRmMTQ4ZTdh
ZmJkMjg3YTVmMmNiOGM3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKQEAgLTQ3LDEwICs0Nywx
MSBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JIZWFwQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIEluc3BlY3RvckhlYXBBZ2VudChBZ2VudENvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JIZWFwQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+SW5z
cGVjdG9ySGVhcEFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7Cisg
ICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBm
aW5hbDsKIAogICAgIC8vIEhlYXBCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGVu
YWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwpAQCAtNjIsOSArNjMsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBnZXRQcmV2aWV3KEVycm9yU3RyaW5nJiwgaW50IGhlYXBPYmplY3RJZCwgT3B0aW9u
YWw8U3RyaW5nPiYgcmVzdWx0U3RyaW5nLCBSZWZQdHI8UHJvdG9jb2w6OkRlYnVnZ2VyOjpGdW5j
dGlvbkRldGFpbHM+JiwgUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpPYmplY3RQcmV2aWV3PiYp
IGZpbmFsOwogICAgIHZvaWQgZ2V0UmVtb3RlT2JqZWN0KEVycm9yU3RyaW5nJiwgaW50IGhlYXBP
YmplY3RJZCwgY29uc3QgU3RyaW5nKiBvcHRpb25hbE9iamVjdEdyb3VwLCBSZWZQdHI8UHJvdG9j
b2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkgZmluYWw7CiAKLSAgICAvLyBIZWFw
T2JzZXJ2ZXIKLSAgICB2b2lkIHdpbGxHYXJiYWdlQ29sbGVjdCgpIG92ZXJyaWRlOwotICAgIHZv
aWQgZGlkR2FyYmFnZUNvbGxlY3QoSlNDOjpDb2xsZWN0aW9uU2NvcGUpIG92ZXJyaWRlOworICAg
IC8vIEpTQzo6SGVhcE9ic2VydmVyCisgICAgdm9pZCB3aWxsR2FyYmFnZUNvbGxlY3QoKSBmaW5h
bDsKKyAgICB2b2lkIGRpZEdhcmJhZ2VDb2xsZWN0KEpTQzo6Q29sbGVjdGlvblNjb3BlKSBmaW5h
bDsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJIZWFwU25hcHNob3RzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IDE2YTdkOWY0NjI0YTQyNzNhZjYxMmRhMmM1OTg3YzY1
YTFmY2EyNGYuLmZhMWM0MGM4MTcyYzJlYTAyODRiMDM4NTM0YTVlMGQ4ZTJjNmJmNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC01Myw5ICs1MywxMSBAQCBjbGFzcyBKU19FWFBP
UlRfUFJJVkFURSBJbnNwZWN0b3JSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRC
YXNlLCBwdWJsaQogcHVibGljOgogICAgIHZpcnR1YWwgfkluc3BlY3RvclJ1bnRpbWVBZ2VudCgp
OwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9u
dGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAorICAgIC8vIFJ1bnRpbWVCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRl
IHsgbV9lbmFibGVkID0gdHJ1ZTsgfQogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92
ZXJyaWRlIHsgbV9lbmFibGVkID0gZmFsc2U7IH0KICAgICB2b2lkIHBhcnNlKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBQcm90b2NvbDo6UnVudGltZTo6U3ludGF4RXJy
b3JUeXBlKiByZXN1bHQsIE9wdGlvbmFsPFN0cmluZz4mIG1lc3NhZ2UsIFJlZlB0cjxQcm90b2Nv
bDo6UnVudGltZTo6RXJyb3JSYW5nZT4mKSBmaW5hbDsKQEAgLTcwLDEyICs3MiwxMiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzYXZlUmVzdWx0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0
JiBjYWxsQXJndW1lbnQsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkLCBPcHRpb25hbDxp
bnQ+JiBzYXZlZFJlc3VsdEluZGV4KSBmaW5hbDsKICAgICB2b2lkIHNldFNhdmVkUmVzdWx0QWxp
YXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcqIGFsaWFzKSBmaW5hbDsKICAgICB2b2lkIHJl
bGVhc2VPYmplY3RHcm91cChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAp
IGZpbmFsOwotICAgIHZvaWQgZ2V0UnVudGltZVR5cGVzRm9yVmFyaWFibGVzQXRPZmZzZXRzKEVy
cm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkmIGxvY2F0aW9ucywgUmVmUHRyPEpTT046OkFy
cmF5T2Y8UHJvdG9jb2w6OlJ1bnRpbWU6OlR5cGVEZXNjcmlwdGlvbj4+Jikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBlbmFibGVUeXBlUHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpc2FibGVUeXBlUHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGVuYWJsZUNvbnRyb2xGbG93UHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpc2FibGVDb250cm9sRmxvd1Byb2ZpbGVyKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBnZXRCYXNpY0Jsb2NrcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaW5fc291
cmNlSUQsIFJlZlB0cjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpSdW50aW1lOjpCYXNpY0Jsb2Nr
Pj4mIG91dF9iYXNpY0Jsb2Nrcykgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRSdW50aW1lVHlwZXNG
b3JWYXJpYWJsZXNBdE9mZnNldHMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYgbG9j
YXRpb25zLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6UnVudGltZTo6VHlwZURlc2Ny
aXB0aW9uPj4mKSBmaW5hbDsKKyAgICB2b2lkIGVuYWJsZVR5cGVQcm9maWxlcihFcnJvclN0cmlu
ZyYpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZVR5cGVQcm9maWxlcihFcnJvclN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgZW5hYmxlQ29udHJvbEZsb3dQcm9maWxlcihFcnJvclN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgZGlzYWJsZUNvbnRyb2xGbG93UHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGdldEJhc2ljQmxvY2tzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBpbl9zb3VyY2VJRCwgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OlJ1bnRpbWU6OkJh
c2ljQmxvY2s+PiYgb3V0X2Jhc2ljQmxvY2tzKSBmaW5hbDsKIAogcHJvdGVjdGVkOgogICAgIElu
c3BlY3RvclJ1bnRpbWVBZ2VudChBZ2VudENvbnRleHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdl
bnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
U2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggY2JhZDgxZDY5OTQ0MGE3MzNiMGFmMDQxNjk0
YTg2Y2E5ZTZlOGVmMC4uNDkxZTQ5OTQ0NGM0NGY5MzY1M2FlM2E3NGIyMTQ5YzMyNWFlZDNjMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAKQEAgLTQ1LDkg
KzQ1LDcgQEAgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9yU2NyaXB0UHJv
ZmlsZXJBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQKIHsKIH0KIAotSW5zcGVjdG9yU2NyaXB0
UHJvZmlsZXJBZ2VudDo6fkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQoKQotewotfQorSW5z
cGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDo6fkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQo
KSA9IGRlZmF1bHQ7CiAKIHZvaWQgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIq
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oCmluZGV4IDhhMjg3
ZDhjNTYxYzZjN2ZkZWI0MmE2NThjNzgwZjIzNzkzNzNmOWEuLjZkNDMyN2YzNDMwYzEzOGY2ZDll
NzQyMGJkNTliOWQ0YzhhNzhiZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmgKQEAgLTQ2LDE3ICs0NiwxOCBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yU2NyaXB0
UHJvZmlsZXJBZ2VudChBZ2VudENvbnRleHQmKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JTY3Jp
cHRQcm9maWxlckFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKTsKIAogICAg
IC8vIFNjcmlwdFByb2ZpbGVyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBzdGFy
dFRyYWNraW5nKEVycm9yU3RyaW5nJiwgY29uc3QgYm9vbCogaW5jbHVkZVNhbXBsZXMpIG92ZXJy
aWRlOwotICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBzdGFydFRyYWNraW5nKEVycm9yU3RyaW5nJiwgY29uc3QgYm9vbCogaW5jbHVkZVNhbXBs
ZXMpOworICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJik7CiAKLSAgICAvLyBEZWJ1
Z2dlcjo6UHJvZmlsaW5nQ2xpZW50Ci0gICAgYm9vbCBpc0FscmVhZHlQcm9maWxpbmcoKSBjb25z
dCBvdmVycmlkZTsKLSAgICBTZWNvbmRzIHdpbGxFdmFsdWF0ZVNjcmlwdCgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZGlkRXZhbHVhdGVTY3JpcHQoU2Vjb25kcywgSlNDOjpQcm9maWxpbmdSZWFzb24p
IG92ZXJyaWRlOworICAgIC8vIEpTQzo6RGVidWdnZXI6OlByb2ZpbGluZ0NsaWVudAorICAgIGJv
b2wgaXNBbHJlYWR5UHJvZmlsaW5nKCkgY29uc3Q7CisgICAgU2Vjb25kcyB3aWxsRXZhbHVhdGVT
Y3JpcHQoKTsKKyAgICB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0KFNlY29uZHMsIEpTQzo6UHJvZmls
aW5nUmVhc29uKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFkZEV2ZW50KFNlY29uZHMgc3RhcnRU
aW1lLCBTZWNvbmRzIGVuZFRpbWUsIEpTQzo6UHJvZmlsaW5nUmVhc29uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFn
ZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clRhcmdldEFnZW50LmNwcAppbmRleCA5MzUwNjhjN2FlMTE5NzEwNTQ0YzFmNzY3OTgyMmRmYjY2
ZTU2Yjg3Li5lNDNhM2I4YzVlMWJiMjNiNmY0ZDhlNTYyYzI0ODQ2NTVmZjYyZTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJn
ZXRBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBAIEluc3BlY3RvclRhcmdl
dEFnZW50OjpJbnNwZWN0b3JUYXJnZXRBZ2VudChGcm9udGVuZFJvdXRlciYgZnJvbnRlbmRSb3V0
ZXIsIEJhY2tlCiB7CiB9CiAKK0luc3BlY3RvclRhcmdldEFnZW50Ojp+SW5zcGVjdG9yVGFyZ2V0
QWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yVGFyZ2V0QWdlbnQ6OmRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikK
IHsKICAgICBtX2lzQ29ubmVjdGVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oCmlu
ZGV4IGM3OThlZWRjZTJlYzRmMWY0YWY1ZGJjZjY0MGE5NGJjM2M5ZTRiYmQuLjAwZmMzYjAyMTcz
NDRiZTRjZGZmNzkxMWMyMTM3MThjNWI5NWNlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQu
aApAQCAtNDAsMTQgKzQwLDEyIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvclRh
cmdldEFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljCiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yVGFyZ2V0QWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIEluc3BlY3RvclRhcmdldEFnZW50KEZyb250ZW5kUm91
dGVyJiwgQmFja2VuZERpc3BhdGNoZXImKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JUYXJnZXRB
Z2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JUYXJnZXRBZ2VudCgpOwog
CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCiAgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwogICAg
IHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgZmlu
YWw7CiAKLSAgICB2aXJ0dWFsIEZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsKCkgPSAw
OwotCiAgICAgLy8gVGFyZ2V0QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCiAgICAgdm9pZCBleGlz
dHMoRXJyb3JTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9UYXJnZXQoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHRhcmdldElkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IGZpbmFsOwpAQCAtNTksNiArNTcsMTEgQEAgcHVibGljOgogICAgIC8vIFRhcmdldCBtZXNzYWdl
cy4KICAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVRhcmdldFRvRnJvbnRlbmQoY29uc3QgU3RyaW5n
JiB0YXJnZXRJZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKIAorcHJvdGVjdGVkOgorICAgIElu
c3BlY3RvclRhcmdldEFnZW50KEZyb250ZW5kUm91dGVyJiwgQmFja2VuZERpc3BhdGNoZXImKTsK
KworICAgIHZpcnR1YWwgRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwoKSA9IDA7CisK
IHByaXZhdGU6CiAgICAgdm9pZCBjb25uZWN0VG9UYXJnZXRzKCk7CiAgICAgdm9pZCBkaXNjb25u
ZWN0RnJvbVRhcmdldHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuY3BwCmlu
ZGV4IDg2ZTc2N2JhMGRhZmYxN2Y1MzJkMDc1ZGFmNjU1YzdkY2Q2MTNkNTguLjY5ZDczNjg3MTVm
YmRmN2FjMzhkOWE3YzQwNGFiNjA2YzY3YTFlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RB
dWRpdEFnZW50LmNwcApAQCAtNDQsNiArNDQsOCBAQCBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQ6
OkpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudChKU0FnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0K
IAorSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50Ojp+SlNHbG9iYWxPYmplY3RBdWRpdEFnZW50KCkg
PSBkZWZhdWx0OworCiBJbmplY3RlZFNjcmlwdCBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQ6Omlu
amVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChleGVjdXRpb25Db250ZXh0SWQpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFs
T2JqZWN0QXVkaXRBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmgKaW5kZXggYzFjYWQzMjM2OTBkN2JhYjZlMmY1
NjAxOWI0ZWJhODE5N2I0NDgxYy4uYzdkYTE5M2U4OGQzNzI1MDVkNzhjYzZiZjkyNDVlNWQ4MzFi
Yzk1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmgKQEAgLTM3LDEwICszNywx
MSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVj
dG9yQXVkaXRBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNHbG9iYWxPYmplY3RB
dWRpdEFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoSlNBZ2VudENvbnRleHQmKTsKKyAgICBK
U0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoSlNBZ2VudENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5K
U0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBJbmplY3RlZFNjcmlw
dCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlv
bkNvbnRleHRJZCkgb3ZlcnJpZGU7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRG
b3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwogCiAg
ICAgSlNDOjpKU0dsb2JhbE9iamVjdCYgbV9nbG9iYWxPYmplY3Q7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1
Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pT
R2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5jcHAKaW5kZXggOWIzZjM3OWQ1ZTVhNDkwZGJlMzc1
YzcyYWM5OWZhNzIwYjlhY2NlZi4uYTMxZDcwY2ZkMDQ4OGU1N2JlODUxODE2MTEwMWI2MGEyOWIw
MDI0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwCkBAIC00
NSw2ICs0NSw4IEBAIEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudDo6SlNHbG9iYWxPYmplY3RE
ZWJ1Z2dlckFnZW50KEpTQWdlbnRDb250ZXh0JiBjb250ZXh0CiB7CiB9CiAKK0pTR2xvYmFsT2Jq
ZWN0RGVidWdnZXJBZ2VudDo6fkpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudCgpID0gZGVmYXVs
dDsKKwogSW5qZWN0ZWRTY3JpcHQgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50OjppbmplY3Rl
ZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmIGVycm9yLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNv
bnRleHRJZCkKIHsKICAgICBpZiAoZXhlY3V0aW9uQ29udGV4dElkKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVn
Z2VyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xv
YmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCmluZGV4IGUyZjM5ZGI1OTk4MDQ4ZGEwN2ZlMmZiNzA5
ODNkZjIwMTZkYjZhODIuLmE0NmI3NmEzZWI2ZDNjMzQzNzQwZGQzNzg2YzQ5NWFiYzNjZjJjYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xv
YmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCkBAIC0zNiwxOCArMzYs
MTggQEAgY2xhc3MgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50IGZpbmFsIDogcHVibGljIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudChKU0FnZW50Q29udGV4dCYsIElu
c3BlY3RvckNvbnNvbGVBZ2VudCopOwotICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0RGVidWdn
ZXJBZ2VudCgpIHsgfQorICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudCgp
OworCisgICAgLy8gU2NyaXB0RGVidWdMaXN0ZW5lcgorICAgIHZvaWQgYnJlYWtwb2ludEFjdGlv
bkxvZyhKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYpOwogCiBwcml2YXRlOgotICAgIElu
amVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGlu
dCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKLQotICAgIC8vIEpTQzo6U2NyaXB0RGVi
dWdMaXN0ZW5lcgotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSYs
IGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0
Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKTsKIAog
ICAgIC8vIE5PVEU6IEphdmFTY3JpcHQgaW5zcGVjdG9yIGRvZXMgbm90IHlldCBuZWVkIHRvIG11
dGUgYSBjb25zb2xlIGJlY2F1c2Ugbm8gbWVzc2FnZXMKICAgICAvLyBhcmUgc2VudCB0byB0aGUg
Y29uc29sZSBvdXRzaWRlIG9mIHRoZSBBUEkgYm91bmRhcnkgb3IgY29uc29sZSBvYmplY3QuCi0g
ICAgdm9pZCBtdXRlQ29uc29sZSgpIGZpbmFsIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgp
IGZpbmFsIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSB7IH0KKyAgICB2b2lkIHVubXV0ZUNv
bnNvbGUoKSB7IH0KIAogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudCogbV9jb25zb2xlQWdlbnQg
eyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3Bw
CmluZGV4IDNiN2MzZTIxZDMxYzFjMmY1YjZkMWJhMGMxNmY0ODg4M2U2Y2YzMTcuLjY1ODJkMzA0
YTQ3NDc1MDUyYzdlZDEzMDcxZjZjNDg3NjIwZThlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9i
amVjdFJ1bnRpbWVBZ2VudC5jcHAKQEAgLTQyLDYgKzQyLDggQEAgSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQ6OkpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50KEpTQWdlbnRDb250ZXh0JiBjb250
ZXh0KQogewogfQogCitKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6fkpTR2xvYmFsT2JqZWN0
UnVudGltZUFnZW50KCkgPSBkZWZhdWx0OworCiBJbmplY3RlZFNjcmlwdCBKU0dsb2JhbE9iamVj
dFJ1bnRpbWVBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiBlcnJvclN0
cmluZywgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RChleGVjdXRpb25Db250ZXh0SWQsICFleGVjdXRpb25Db250ZXh0SWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xv
YmFsT2JqZWN0UnVudGltZUFnZW50LmgKaW5kZXggNjZjZDJkMmFiMWYzY2Q5OGU2OTA0YmEzNjE0
ZDBkYmE3ZDhhNWY5NC4uZWE4NTc0ZTVhZWY4ZjIyZDcxMTVlMzEzNWFhNmZiZDU5MjRiYTQyOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9i
YWxPYmplY3RSdW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oCkBAIC0zOSwxNSArMzksMTYg
QEAgY2xhc3MgSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVj
dG9yUnVudGltZUFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudChKU0FnZW50Q29udGV4dCYpOworICAgIHZp
cnR1YWwgfkpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50KCk7CiAKLSAgICBJbmplY3RlZFNjcmlw
dCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlv
bkNvbnRleHRJZCkgb3ZlcnJpZGU7Citwcml2YXRlOgorICAgIEluamVjdGVkU2NyaXB0IGluamVj
dGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4
dElkKTsKIAogICAgIC8vIE5PVEU6IEphdmFTY3JpcHQgaW5zcGVjdG9yIGRvZXMgbm90IHlldCBu
ZWVkIHRvIG11dGUgYSBjb25zb2xlIGJlY2F1c2Ugbm8gbWVzc2FnZXMKICAgICAvLyBhcmUgc2Vu
dCB0byB0aGUgY29uc29sZSBvdXRzaWRlIG9mIHRoZSBBUEkgYm91bmRhcnkgb3IgY29uc29sZSBv
YmplY3QuCi0gICAgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdW5t
dXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSB7IH0KKyAg
ICB2b2lkIHVubXV0ZUNvbnNvbGUoKSB7IH0KIAotcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UnVudGltZUZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAg
UmVmUHRyPFJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKICAg
ICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBtX2dsb2JhbE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmNwcAppbmRleCBlYzE2NWI3ZDk3ZDE0YjkwMGU5NzdkMDNlNWQ3NzU0Nzc5
YjhlOWZiLi42NDRhMmRmYjdlMzkxZDcwZmU5Yjk1Y2U1YjJmNmMxMDMxNWZmYzEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC01MCw2ICs1MCw4IEBAIEluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KFBh
Z2VBZ2VudENvbnRleHQmCiB7CiB9CiAKK0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6
fkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChG
cm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5oCmluZGV4IDM5MjIxNDk0YWM2NjBlOTE1OTE3MzlhNGE0MjZlN2MwOWQz
MTdmOTcuLmYxNjE4NGZhNjQ3NDQ5N2JiZjRhYTM4MDFlYjY5ZDk3NGVkMWIzM2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaApAQCAtNDYsMjIgKzQ2LDIzIEBAIGNsYXNzIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJh
c2UsIHB1YmxpYyBJCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAg
dmlydHVhbCB+SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCk7CiAKLSAgICB2b2lkIGRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5k
RGlzcGF0Y2hlciopOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKworICAgIC8vIEFwcGxpY2F0aW9uQ2FjaGVCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZ2V0RnJhbWVzV2l0aE1hbmlm
ZXN0cyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkZyYW1lV2l0aE1hbmlmZXN0Pj4mIHJlc3VsdCk7CisgICAg
dm9pZCBnZXRNYW5pZmVzdEZvckZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFt
ZUlkLCBTdHJpbmcqIG1hbmlmZXN0VVJMKTsKKyAgICB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVG
b3JGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGU+Jik7CiAK
ICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0
aW9uQ2FjaGVTdGF0dXMoRnJhbWUqKTsKICAgICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsK
IAotICAgIC8vIEFwcGxpY2F0aW9uQ2FjaGVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2
b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJv
clN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0RnJhbWVzV2l0aE1hbmlmZXN0cyhFcnJv
clN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxp
Y2F0aW9uQ2FjaGU6OkZyYW1lV2l0aE1hbmlmZXN0Pj4mIHJlc3VsdCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBnZXRNYW5pZmVzdEZvckZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFt
ZUlkLCBTdHJpbmcqIG1hbmlmZXN0VVJMKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldEFwcGxpY2F0
aW9uQ2FjaGVGb3JGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgUmVm
UHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2Fj
aGU+Jikgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGU+IGJ1aWxkT2JqZWN0Rm9yQXBwbGlj
YXRpb25DYWNoZShjb25zdCBWZWN0b3I8QXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5m
bz4mLCBjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvJik7CiAgICAgUmVmPEpT
T046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGlj
YXRpb25DYWNoZVJlc291cmNlPj4gYnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZXMoY29uc3QgVmVjdG9yPEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8+Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNQVVBy
b2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDUFVQcm9maWxlckFnZW50LmNwcAppbmRleCAxMTYyNGUyNDA5NDY0ZmMxZTFlNjVhNjk5OGRi
ZDFiMDY4MmYwYjJjLi5hZmNhZTZlYTEyMGEyN2UwM2Q4OGI0NmEzZDkxYzczYjE0YjI1ZmI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNQVVBy
b2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAgSW5zcGVjdG9yQ1BV
UHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudChQYWdlQWdlbnRDb250ZXh0
JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9y
Q1BVUHJvZmlsZXJBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JDUFVQcm9maWxl
ckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNr
ZW5kRGlzcGF0Y2hlciopCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldEluc3BlY3Rv
ckNQVVByb2ZpbGVyQWdlbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oCmluZGV4IGE1NDJh
YmYxNWY5NGU2ZmIzNjA5ZWJmMTU0ZTkwNzVmNmJkNTk4MjAuLjViZmFiZmFhMzQxNzRlM2VmYmY4
YjFiZjk2ODA4NzY0MTU4YTVkNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oCkBAIC00MSwxNCAr
NDEsMTUgQEAgY2xhc3MgSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJ
bnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWMKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50KFBhZ2VBZ2VudENv
bnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50KCkgPSBkZWZh
dWx0OworICAgIHZpcnR1YWwgfkluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQoKTsKIAotICAgIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIq
LCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwogCiAgICAgLy8gQ1BVUHJvZmlsZXJCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcm
KSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRl
OworICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpOworICAgIHZvaWQgc3RvcFRy
YWNraW5nKEVycm9yU3RyaW5nJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb2xsZWN0U2FtcGxl
KGNvbnN0IFJlc291cmNlVXNhZ2VEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGY0YzNmZjViNjQ3M2Yw
MmYyYTExM2VmOTM5Njc4OGYzYTI4MTI2ZGMuLjdmNzEzY2YyMjFmOThkODE3OTJlZmY0NjY3NGIz
OWIzZDcxMjM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC0zMDIsNiArMzAyLDggQEAgSW5zcGVjdG9yQ1NT
QWdlbnQ6Okluc3BlY3RvckNTU0FnZW50KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0K
IAorSW5zcGVjdG9yQ1NTQWdlbnQ6On5JbnNwZWN0b3JDU1NBZ2VudCgpID0gZGVmYXVsdDsKKwog
dm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NT
QWdlbnQuaAppbmRleCAxZGY3OTU4YTEyYzM1YmNlNTEzMTVmZDYyOTlhMDEyYTA0NDlhOTc5Li41
NmRjZmEzMzBjNGI5MzEyNGYzMjZmNGJhYjI3OTRlZDgyNThiZGFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oCkBAIC01Mywx
MyArNTMsMTMgQEAgY2xhc3MgTm9kZUxpc3Q7CiBjbGFzcyBTdHlsZVJlc29sdmVyOwogY2xhc3Mg
U3R5bGVSdWxlOwogCi1jbGFzcyBJbnNwZWN0b3JDU1NBZ2VudCBmaW5hbAotICAgIDogcHVibGlj
IEluc3BlY3RvckFnZW50QmFzZQotICAgICwgcHVibGljIEluc3BlY3Rvcjo6Q1NTQmFja2VuZERp
c3BhdGNoZXJIYW5kbGVyCi0gICAgLCBwdWJsaWMgSW5zcGVjdG9yU3R5bGVTaGVldDo6TGlzdGVu
ZXIgeworY2xhc3MgSW5zcGVjdG9yQ1NTQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdl
bnRCYXNlICwgcHVibGljIEluc3BlY3Rvcjo6Q1NTQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyICwg
cHVibGljIEluc3BlY3RvclN0eWxlU2hlZXQ6Okxpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbnNwZWN0b3JDU1NBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CisgICAgSW5zcGVjdG9yQ1NTQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7CisgICAg
dmlydHVhbCB+SW5zcGVjdG9yQ1NTQWdlbnQoKTsKKwogICAgIGNsYXNzIElubGluZVN0eWxlT3Zl
cnJpZGVTY29wZSB7CiAgICAgcHVibGljOgogICAgICAgICBJbmxpbmVTdHlsZU92ZXJyaWRlU2Nv
cGUoU2VjdXJpdHlDb250ZXh0JiBjb250ZXh0KQpAQCAtNzcsMTQgKzc3LDMyIEBAIHB1YmxpYzoK
ICAgICAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeTsK
ICAgICB9OwogCi0gICAgSW5zcGVjdG9yQ1NTQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7Ci0gICAg
dmlydHVhbCB+SW5zcGVjdG9yQ1NTQWdlbnQoKSA9IGRlZmF1bHQ7Ci0KICAgICBzdGF0aWMgQ1NT
U3R5bGVSdWxlKiBhc0NTU1N0eWxlUnVsZShDU1NSdWxlJik7CiAKLSAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHJlc2V0KCk7CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CisKKyAgICAvLyBDU1NCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZUZv
ck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU0NvbXB1dGVkU3R5bGVQcm9wZXJ0eT4+Jik7CisgICAg
dm9pZCBnZXRJbmxpbmVTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVm
UHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+JiBpbmxpbmVTdHlsZSwgUmVm
UHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+JiBhdHRyaWJ1dGVzKTsKKyAg
ICB2b2lkIGdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwg
Y29uc3QgYm9vbCogaW5jbHVkZVBzZXVkbywgY29uc3QgYm9vbCogaW5jbHVkZUluaGVyaXRlZCwg
UmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+
PiYgbWF0Y2hlZENTU1J1bGVzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz4+JiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVj
dG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0ZWRTdHlsZUVudHJ5Pj4mIGluaGVyaXRlZEVudHJp
ZXMpOworICAgIHZvaWQgZ2V0QWxsU3R5bGVTaGVldHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNP
Tjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+
PiYgc3R5bGVTaGVldEluZm9zKTsKKyAgICB2b2lkIGdldFN0eWxlU2hlZXQoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNTUzo6Q1NTU3R5bGVTaGVldEJvZHk+JiByZXN1bHQpOworICAgIHZvaWQgZ2V0U3R5bGVTaGVl
dFRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgU3RyaW5nKiBy
ZXN1bHQpOworICAgIHZvaWQgc2V0U3R5bGVTaGVldFRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKyAgICB2b2lkIHNldFN0
eWxlVGV4dChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3R5bGVJZCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4m
IHJlc3VsdCk7CisgICAgdm9pZCBzZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBjb25zdCBK
U09OOjpPYmplY3QmIHJ1bGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4mIHJlc3VsdCk7CisgICAgdm9pZCBjcmVhdGVT
dHlsZVNoZWV0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBTdHJpbmcqIHN0
eWxlU2hlZXRJZCk7CisgICAgdm9pZCBhZGRSdWxlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBzdHlsZVNoZWV0SWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0cjxJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpOworICAgIHZvaWQgZ2V0U3VwcG9ydGVk
Q1NTUHJvcGVydGllcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNTUzo6Q1NTUHJvcGVydHlJbmZvPj4mIHJlc3VsdCk7CisgICAgdm9pZCBn
ZXRTdXBwb3J0ZWRTeXN0ZW1Gb250RmFtaWx5TmFtZXMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNP
Tjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0KTsKKyAgICB2b2lkIGZvcmNlUHNldWRvU3RhdGUo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBKU09OOjpBcnJheSYgZm9yY2VkUHNldWRv
Q2xhc3Nlcyk7CisKKyAgICAvLyBJbnNwZWN0b3JTdHlsZVNoZWV0OjpMaXN0ZW5lcgorICAgIHZv
aWQgc3R5bGVTaGVldENoYW5nZWQoSW5zcGVjdG9yU3R5bGVTaGVldCopOwogCiAgICAgLy8gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkb2N1bWVudERldGFjaGVkKERvY3VtZW50
Jik7CkBAIC05MiwyOCArMTEwLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGFjdGl2ZVN0eWxlU2hl
ZXRzVXBkYXRlZChEb2N1bWVudCYpOwogICAgIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShjb25zdCBF
bGVtZW50JiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7CiAKLSAgICAvLyBDU1NCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJy
aWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQg
Z2V0Q29tcHV0ZWRTdHlsZUZvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8
SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU0NvbXB1dGVkU3R5bGVQ
cm9wZXJ0eT4+Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRJbmxpbmVTdHlsZXNGb3JOb2RlKEVy
cm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6
Q1NTU3R5bGU+JiBpbmxpbmVTdHlsZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6
Q1NTU3R5bGU+JiBhdHRyaWJ1dGVzKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldE1hdGNoZWRTdHls
ZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgYm9vbCogaW5jbHVkZVBz
ZXVkbywgY29uc3QgYm9vbCogaW5jbHVkZUluaGVyaXRlZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiYgbWF0Y2hlZENTU1J1bGVzLCBS
ZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0
Y2hlcz4+JiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJ
bmhlcml0ZWRTdHlsZUVudHJ5Pj4mIGluaGVyaXRlZEVudHJpZXMpIG92ZXJyaWRlOwotICAgIHZv
aWQgZ2V0QWxsU3R5bGVTaGVldHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+PiYgc3R5bGVTaGVl
dEluZm9zKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldFN0eWxlU2hlZXQoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNT
Uzo6Q1NTU3R5bGVTaGVldEJvZHk+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0U3R5
bGVTaGVldFRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgU3Ry
aW5nKiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U3R5bGVTaGVldFRleHQoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5nJiB0ZXh0KSBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFN0eWxlVGV4dChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046
Ok9iamVjdCYgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBSZWZQdHI8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIHJlc3VsdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRS
dWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVJZCwgY29u
c3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NT
UnVsZT4mIHJlc3VsdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjcmVhdGVTdHlsZVNoZWV0KEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBTdHJpbmcqIHN0eWxlU2hlZXRJZCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBhZGRSdWxlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzdHls
ZVNoZWV0SWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0U3VwcG9y
dGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUHJvcGVydHlJbmZvPj4mIHJlc3VsdCkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBnZXRTdXBwb3J0ZWRTeXN0ZW1Gb250RmFtaWx5TmFtZXMoRXJyb3JTdHJpbmcm
LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0KSBvdmVycmlkZTsKLSAgICB2
b2lkIGZvcmNlUHNldWRvU3RhdGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBKU09O
OjpBcnJheSYgZm9yY2VkUHNldWRvQ2xhc3Nlcykgb3ZlcnJpZGU7Ci0KICAgICAvLyBJbnNwZWN0
b3JET01BZ2VudCBob29rcwogICAgIHZvaWQgZGlkUmVtb3ZlRE9NTm9kZShOb2RlJiwgaW50IG5v
ZGVJZCk7CiAgICAgdm9pZCBkaWRNb2RpZnlET01BdHRyKEVsZW1lbnQmKTsKIAorICAgIHZvaWQg
cmVzZXQoKTsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBTdHlsZVNoZWV0QWN0aW9uOwogICAgIGNs
YXNzIFNldFN0eWxlU2hlZXRUZXh0QWN0aW9uOwpAQCAtMTQ1LDggKzE0Nyw2IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxl
TWF0Y2g+PiBidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8
U3R5bGVSdWxlPj4mLCBTdHlsZVJlc29sdmVyJiwgRWxlbWVudCYsIFBzZXVkb0lkKTsKICAgICBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4gYnVpbGRPYmplY3RGb3JB
dHRyaWJ1dGVzU3R5bGUoU3R5bGVkRWxlbWVudCYpOwogCi0gICAgLy8gSW5zcGVjdG9yQ1NTQWdl
bnQ6Okxpc3RlbmVyIGltcGxlbWVudGF0aW9uCi0gICAgdm9pZCBzdHlsZVNoZWV0Q2hhbmdlZChJ
bnNwZWN0b3JTdHlsZVNoZWV0Kikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlc2V0UHNldWRvU3Rh
dGVzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggMGU1MGM3NWJhNDg3NTE1NTZlNDEyZGNiOTdh
ZDE5NjY5NjVhOTk5MC4uN2M5NTY1MTM5YWQ2NmNiOGZiZTMwOTJkNzE3NWU0MmFhODczNjEzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52
YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAKQEAgLTc5LDYgKzc5LDggQEAgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6
Okluc3BlY3RvckNhbnZhc0FnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAK
K0luc3BlY3RvckNhbnZhc0FnZW50Ojp+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKSA9IGRlZmF1bHQ7
CisKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hl
ciopCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNhbnZhc0FnZW50LmgKaW5kZXggZmEwZjZjYzIzYjBlNDUxOWFlMTkwMzUyMjdiZjk4
ODFiZTFmMTIyNy4uYTFmMzlmYWI4YzUxNTYzMDJmZGRkOTRjMmNlOTdiMTY5ZTgwZWY4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaApAQCAtNTYsMzEgKzU2LDM3IEBAIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JD
YW52YXNBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBDYW52
YXNPYnNlcnZlciwgcHVibGljIEluc3BlY3Rvcjo6Q2FudmFzQmFja2VuZERpc3BhdGNoZXJIYW5k
bGVyIHsKK2NsYXNzIEluc3BlY3RvckNhbnZhc0FnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rv
ckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6Q2FudmFzQmFja2VuZERpc3BhdGNoZXJIYW5k
bGVyLCBwdWJsaWMgQ2FudmFzT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElu
c3BlY3RvckNhbnZhc0FnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBleHBsaWNpdCBJbnNwZWN0b3JDYW52YXNBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7
Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgSW5z
cGVjdG9yQ2FudmFzQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgfkluc3Bl
Y3RvckNhbnZhc0FnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hl
ciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2NhcmRBZ2Vu
dCgpIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlzY2FyZEFn
ZW50KCk7CiAKICAgICAvLyBDYW52YXNCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lk
IGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0
cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGNhbnZhc0lkLCBpbnQqIG5vZGVJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1
ZXN0Q29udGVudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIFN0cmluZyog
Y29udGVudCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0Q1NTQ2FudmFzQ2xpZW50Tm9kZXMo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBSZWZQdHI8SlNPTjo6QXJyYXlP
ZjxpbnQ+PiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzb2x2ZUNhbnZhc0NvbnRleHQoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3Vw
LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYpIG92
ZXJyaWRlOwotICAgIHZvaWQgc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KEVycm9y
U3RyaW5nJiwgaW50IGNvdW50KSBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCwgY29uc3QgaW50KiBmcmFtZUNvdW50
LCBjb25zdCBpbnQqIG1lbW9yeUxpbWl0KSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BSZWNvcmRp
bmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkKSBvdmVycmlkZTsKLSAgICB2
b2lkIHJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dy
YW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBTdHJpbmcqKSBvdmVycmlkZTsKLSAgICB2
b2lkIHVwZGF0ZVNoYWRlcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBj
b25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlKSBvdmVycmlkZTsK
LSAgICB2b2lkIHNldFNoYWRlclByb2dyYW1EaXNhYmxlZChFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgcHJvZ3JhbUlkLCBib29sIGRpc2FibGVkKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFNo
YWRlclByb2dyYW1IaWdobGlnaHRlZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3Jh
bUlkLCBib29sIGhpZ2hsaWdodGVkKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0
cmluZyYpOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgcmVxdWVz
dE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBpbnQqIG5vZGVJZCk7
CisgICAgdm9pZCByZXF1ZXN0Q29udGVudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2Fu
dmFzSWQsIFN0cmluZyogY29udGVudCk7CisgICAgdm9pZCByZXF1ZXN0Q1NTQ2FudmFzQ2xpZW50
Tm9kZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBSZWZQdHI8SlNPTjo6
QXJyYXlPZjxpbnQ+PiYpOworICAgIHZvaWQgcmVzb2x2ZUNhbnZhc0NvbnRleHQoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYpOworICAg
IHZvaWQgc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KEVycm9yU3RyaW5nJiwgaW50
IGNvdW50KTsKKyAgICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBjYW52YXNJZCwgY29uc3QgaW50KiBmcmFtZUNvdW50LCBjb25zdCBpbnQqIG1lbW9yeUxp
bWl0KTsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IGNhbnZhc0lkKTsKKyAgICB2b2lkIHJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBTdHJpbmcq
KTsKKyAgICB2b2lkIHVwZGF0ZVNoYWRlcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJv
Z3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlKTsK
KyAgICB2b2lkIHNldFNoYWRlclByb2dyYW1EaXNhYmxlZChFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgcHJvZ3JhbUlkLCBib29sIGRpc2FibGVkKTsKKyAgICB2b2lkIHNldFNoYWRlclByb2dy
YW1IaWdobGlnaHRlZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBib29s
IGhpZ2hsaWdodGVkKTsKKworICAgIC8vIENhbnZhc09ic2VydmVyCisgICAgdm9pZCBjYW52YXND
aGFuZ2VkKENhbnZhc0Jhc2UmLCBjb25zdCBGbG9hdFJlY3QmKTsKKyAgICB2b2lkIGNhbnZhc1Jl
c2l6ZWQoQ2FudmFzQmFzZSYpIHsgfQorICAgIHZvaWQgY2FudmFzRGVzdHJveWVkKENhbnZhc0Jh
c2UmKTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgZnJhbWVO
YXZpZ2F0ZWQoRnJhbWUmKTsKQEAgLTk5LDExICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChXZWJHTFByb2dyYW0mKTsKICNlbmRpZgogCi0gICAg
Ly8gQ2FudmFzT2JzZXJ2ZXIKLSAgICB2b2lkIGNhbnZhc0NoYW5nZWQoQ2FudmFzQmFzZSYsIGNv
bnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2FudmFzUmVzaXplZChDYW52YXNC
YXNlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBjYW52YXNEZXN0cm95ZWQoQ2FudmFzQmFzZSYp
IG92ZXJyaWRlOwotCiBwcml2YXRlOgogICAgIHN0cnVjdCBSZWNvcmRpbmdPcHRpb25zIHsKICAg
ICAgICAgT3B0aW9uYWw8bG9uZz4gZnJhbWVDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGRmMDQ1NDg1
NTllMTQwNjNiOTQyYjdjMTFlY2NkM2I0NmU3MGI3OS4uMDA2YzdhOTJkNWFjNzhiYzFlMDhiYjIx
YjJmNDUxMzdkNDRiMzBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTI5MywxMSArMjkzLDcgQEAgSW5zcGVj
dG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQs
IEluc3BlY3Rvck92ZXJsYXkKIHsKIH0KIAotSW5zcGVjdG9yRE9NQWdlbnQ6On5JbnNwZWN0b3JE
T01BZ2VudCgpCi17Ci0gICAgcmVzZXQoKTsKLSAgICBBU1NFUlQoIW1fc2VhcmNoaW5nRm9yTm9k
ZSk7Ci19CitJbnNwZWN0b3JET01BZ2VudDo6fkluc3BlY3RvckRPTUFnZW50KCkgPSBkZWZhdWx0
OwogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIq
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
T01BZ2VudC5oCmluZGV4IDczZmUyMDNlZDMyZTQ3MTY1MTZhZWM3ODVmZjg4YWRiMTA0ZmQ1M2Iu
LjgwNGYyYmNiMjg5NmZjOTAxYzM1NTRhZDY4MzRhYzFiYWFhNDUzYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTg3
LDU1ICs4Nyw2NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyB0b0Vycm9yU3RyaW5nKEV4
Y2VwdGlvbkNvZGUpOwogICAgIHN0YXRpYyBTdHJpbmcgdG9FcnJvclN0cmluZyhFeGNlcHRpb24m
Jik7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZy
b250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwot
ICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICBzdGF0aWMgU3RyaW5nIGRvY3VtZW50VVJMU3RyaW5n
KERvY3VtZW50Kik7CiAKLSAgICBWZWN0b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsKLSAgICB2
b2lkIHJlc2V0KCk7CisgICAgLy8gV2UgcmVwcmVzZW50IGVtYmVkZGVkIGRvbXMgYXMgYSBwYXJ0
IG9mIHRoZSBzYW1lIGhpZXJhcmNoeS4gSGVuY2Ugd2UgdHJlYXQgY2hpbGRyZW4gb2YgZnJhbWUg
b3duZXJzIGRpZmZlcmVudGx5LgorICAgIC8vIFdlIGFsc28gc2tpcCB3aGl0ZXNwYWNlIHRleHQg
bm9kZXMgY29uZGl0aW9uYWxseS4gRm9sbG93aW5nIG1ldGhvZHMgZW5jYXBzdWxhdGUgdGhlc2Ug
c3BlY2lmaWNzLgorICAgIHN0YXRpYyBOb2RlKiBpbm5lckZpcnN0Q2hpbGQoTm9kZSopOworICAg
IHN0YXRpYyBOb2RlKiBpbm5lck5leHRTaWJsaW5nKE5vZGUqKTsKKyAgICBzdGF0aWMgTm9kZSog
aW5uZXJQcmV2aW91c1NpYmxpbmcoTm9kZSopOworICAgIHN0YXRpYyB1bnNpZ25lZCBpbm5lckNo
aWxkTm9kZUNvdW50KE5vZGUqKTsKKyAgICBzdGF0aWMgTm9kZSogaW5uZXJQYXJlbnROb2RlKE5v
ZGUqKTsKIAotICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gdGhlIGZyb250ZW5kIGZvciBET00g
bm9kZXMgaW5zcGVjdGlvbi4KLSAgICB2b2lkIHF1ZXJ5U2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBp
bnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgaW50KiBlbGVtZW50SWQpIG92ZXJy
aWRlOwotICAgIHZvaWQgcXVlcnlTZWxlY3RvckFsbChFcnJvclN0cmluZyYsIGludCBub2RlSWQs
IGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYgcmVz
dWx0KSBvdmVycmlkZTsKLSAgICB2b2lkIGdldERvY3VtZW50KEVycm9yU3RyaW5nJiwgUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4mIHJvb3QpIG92ZXJyaWRlOwotICAgIHZv
aWQgcmVxdWVzdENoaWxkTm9kZXMoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBpbnQq
IGRlcHRoKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEF0dHJpYnV0ZVZhbHVlKEVycm9yU3RyaW5n
JiwgaW50IGVsZW1lbnRJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVl
KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEF0dHJpYnV0ZXNBc1RleHQoRXJyb3JTdHJpbmcmLCBp
bnQgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyogbmFtZSkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoRXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVu
dElkLCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlTm9kZShF
cnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0Tm9kZU5hbWUo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGludCogbmV3SWQp
IG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJ
ZCwgV1RGOjpTdHJpbmcqIG91dGVySFRNTCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRPdXRlckhU
TUwoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIG91dGVySFRNTCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBpbnNlcnRBZGphY2VudEhUTUwoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkLCBjb25zdCBTdHJpbmcmIHBvc2l0aW9uLCBjb25zdCBTdHJpbmcmIGh0bWwpIG92ZXJyaWRl
OwotICAgIHZvaWQgc2V0Tm9kZVZhbHVlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRTdXBwb3J0ZWRFdmVudE5hbWVz
KEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8U3RyaW5nPj4mIGV2ZW50TmFtZXMp
IG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0RGF0YUJpbmRpbmdzRm9yTm9kZShFcnJvclN0cmluZyYs
IGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRP
TTo6RGF0YUJpbmRpbmc+PiYgZGF0YUFycmF5KSBvdmVycmlkZTsKLSAgICB2b2lkIGdldEFzc29j
aWF0ZWREYXRhRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIE9wdGlvbmFsPFN0cmlu
Zz4mIGFzc29jaWF0ZWREYXRhKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldEV2ZW50TGlzdGVuZXJz
Rm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5lcj4+JiBsaXN0ZW5lcnNBcnJheSkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRFdmVudExpc3RlbmVyRGlzYWJsZWQoRXJyb3JTdHJpbmcm
LCBpbnQgZXZlbnRMaXN0ZW5lcklkLCBib29sIGRpc2FibGVkKSBvdmVycmlkZTsKLSAgICB2b2lk
IHNldEJyZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKEVycm9yU3RyaW5nJiwgaW50IGV2ZW50TGlz
dGVuZXJJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVCcmVha3BvaW50Rm9yRXZlbnRMaXN0
ZW5lcihFcnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQpIG92ZXJyaWRlOwotICAgIHZv
aWQgZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6QWNjZXNzaWJpbGl0eVByb3Bl
cnRpZXM+JiBheFByb3BlcnRpZXMpIG92ZXJyaWRlOwotICAgIHZvaWQgcGVyZm9ybVNlYXJjaChF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IEpTT046OkFycmF5KiBub2Rl
SWRzLCBjb25zdCBib29sKiBjYXNlU2Vuc2l0aXZlLCBTdHJpbmcqIHNlYXJjaElkLCBpbnQqIHJl
c3VsdENvdW50KSBvdmVycmlkZTsKLSAgICB2b2lkIGdldFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHNlYXJjaElkLCBpbnQgZnJvbUluZGV4LCBpbnQgdG9JbmRleCwg
UmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2NhcmRT
ZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzZWFyY2hJZCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCByZXNvbHZlTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0
IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1l
OjpSZW1vdGVPYmplY3Q+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0QXR0cmlidXRl
cyhFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0cmluZz4+
JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0SW5zcGVjdE1vZGVFbmFibGVkKEVycm9y
U3RyaW5nJiwgYm9vbCBlbmFibGVkLCBjb25zdCBKU09OOjpPYmplY3QqIGhpZ2hsaWdodENvbmZp
ZywgY29uc3QgYm9vbCogc2hvd1J1bGVycykgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0Tm9k
ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGludCogbm9kZUlkKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgcGF0aCwgaW50KiBub2RlSWQpIG92ZXJyaWRlOwotICAgIHZvaWQgaGlkZUhp
Z2hsaWdodChFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgaGlnaGxpZ2h0UmVjdChF
cnJvclN0cmluZyYsIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBjb25zdCBK
U09OOjpPYmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xvciwgY29u
c3QgYm9vbCogdXNlUGFnZUNvb3JkaW5hdGVzKSBvdmVycmlkZTsKLSAgICB2b2lkIGhpZ2hsaWdo
dFF1YWQoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYgcXVhZCwgY29uc3QgSlNPTjo6
T2JqZWN0KiBjb2xvciwgY29uc3QgSlNPTjo6T2JqZWN0KiBvdXRsaW5lQ29sb3IsIGNvbnN0IGJv
b2wqIHVzZVBhZ2VDb29yZGluYXRlcykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWdobGlnaHRTZWxl
Y3RvcihFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmlnLCBj
b25zdCBTdHJpbmcmIHNlbGVjdG9yU3RyaW5nLCBjb25zdCBTdHJpbmcqIGZyYW1lSWQpIG92ZXJy
aWRlOwotICAgIHZvaWQgaGlnaGxpZ2h0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9i
amVjdCYgaGlnaGxpZ2h0Q29uZmlnLCBjb25zdCBpbnQqIG5vZGVJZCwgY29uc3QgU3RyaW5nKiBv
YmplY3RJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWdobGlnaHROb2RlTGlzdChFcnJvclN0cmlu
ZyYsIGNvbnN0IEpTT046OkFycmF5JiBub2RlSWRzLCBjb25zdCBKU09OOjpPYmplY3QmIGhpZ2hs
aWdodENvbmZpZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWdobGlnaHRGcmFtZShFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgSlNPTjo6T2JqZWN0KiBjb2xvciwgY29u
c3QgSlNPTjo6T2JqZWN0KiBvdXRsaW5lQ29sb3IpIG92ZXJyaWRlOwotICAgIHZvaWQgbW92ZVRv
KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgaW50IHRhcmdldE5vZGVJZCwgY29uc3QgaW50KiBh
bmNob3JOb2RlSWQsIGludCogbmV3Tm9kZUlkKSBvdmVycmlkZTsKLSAgICB2b2lkIHVuZG8oRXJy
b3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlZG8oRXJyb3JTdHJpbmcmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIG1hcmtVbmRvYWJsZVN0YXRlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBmb2N1cyhFcnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0SW5zcGVjdGVkTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlOwor
ICAgIHN0YXRpYyBOb2RlKiBzY3JpcHRWYWx1ZUFzTm9kZShKU0M6OkpTVmFsdWUpOworICAgIHN0
YXRpYyBKU0M6OkpTVmFsdWUgbm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBOb2Rl
Kik7CisKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNr
ZW5kRGlzcGF0Y2hlciopOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKworICAgIC8vIERPTUJhY2tlbmREaXNwYXRj
aGVySGFuZGxlcgorICAgIHZvaWQgcXVlcnlTZWxlY3RvcihFcnJvclN0cmluZyYsIGludCBub2Rl
SWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBpbnQqIGVsZW1lbnRJZCk7CisgICAgdm9pZCBx
dWVyeVNlbGVjdG9yQWxsKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBz
ZWxlY3RvcnMsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+JiByZXN1bHQpOworICAgIHZvaWQg
Z2V0RG9jdW1lbnQoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9N
OjpOb2RlPiYgcm9vdCk7CisgICAgdm9pZCByZXF1ZXN0Q2hpbGROb2RlcyhFcnJvclN0cmluZyYs
IGludCBub2RlSWQsIGNvbnN0IGludCogZGVwdGgpOworICAgIHZvaWQgc2V0QXR0cmlidXRlVmFs
dWUoRXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgc2V0QXR0cmlidXRlc0FzVGV4dChFcnJvclN0cmlu
ZyYsIGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nKiBuYW1l
KTsKKyAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShFcnJvclN0cmluZyYsIGludCBlbGVtZW50SWQs
IGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCByZW1vdmVOb2RlKEVycm9yU3RyaW5nJiwg
aW50IG5vZGVJZCk7CisgICAgdm9pZCBzZXROb2RlTmFtZShFcnJvclN0cmluZyYsIGludCBub2Rl
SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgaW50KiBuZXdJZCk7CisgICAgdm9pZCBnZXRPdXRlckhU
TUwoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBXVEY6OlN0cmluZyogb3V0ZXJIVE1MKTsKKyAg
ICB2b2lkIHNldE91dGVySFRNTChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmlu
ZyYgb3V0ZXJIVE1MKTsKKyAgICB2b2lkIGluc2VydEFkamFjZW50SFRNTChFcnJvclN0cmluZyYs
IGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgaHRtbCk7
CisgICAgdm9pZCBzZXROb2RlVmFsdWUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBT
dHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIGdldFN1cHBvcnRlZEV2ZW50TmFtZXMoRXJyb3JTdHJp
bmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgZXZlbnROYW1lcyk7CisgICAgdm9p
ZCBnZXREYXRhQmluZGluZ3NGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRy
PEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpEYXRhQmluZGluZz4+JiBk
YXRhQXJyYXkpOworICAgIHZvaWQgZ2V0QXNzb2NpYXRlZERhdGFGb3JOb2RlKEVycm9yU3RyaW5n
JiwgaW50IG5vZGVJZCwgT3B0aW9uYWw8U3RyaW5nPiYgYXNzb2NpYXRlZERhdGEpOworICAgIHZv
aWQgZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVm
UHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVudExpc3RlbmVy
Pj4mIGxpc3RlbmVyc0FycmF5KTsKKyAgICB2b2lkIHNldEV2ZW50TGlzdGVuZXJEaXNhYmxlZChF
cnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQsIGJvb2wgZGlzYWJsZWQpOworICAgIHZv
aWQgc2V0QnJlYWtwb2ludEZvckV2ZW50TGlzdGVuZXIoRXJyb3JTdHJpbmcmLCBpbnQgZXZlbnRM
aXN0ZW5lcklkKTsKKyAgICB2b2lkIHJlbW92ZUJyZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKEVy
cm9yU3RyaW5nJiwgaW50IGV2ZW50TGlzdGVuZXJJZCk7CisgICAgdm9pZCBnZXRBY2Nlc3NpYmls
aXR5UHJvcGVydGllc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6RE9NOjpBY2Nlc3NpYmlsaXR5UHJvcGVydGllcz4mIGF4UHJvcGVy
dGllcyk7CisgICAgdm9pZCBwZXJmb3JtU2VhcmNoKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBxdWVyeSwgY29uc3QgSlNPTjo6QXJyYXkqIG5vZGVJZHMsIGNvbnN0IGJvb2wqIGNhc2VTZW5z
aXRpdmUsIFN0cmluZyogc2VhcmNoSWQsIGludCogcmVzdWx0Q291bnQpOworICAgIHZvaWQgZ2V0
U2VhcmNoUmVzdWx0cyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc2VhcmNoSWQsIGludCBm
cm9tSW5kZXgsIGludCB0b0luZGV4LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYpOworICAg
IHZvaWQgZGlzY2FyZFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHNl
YXJjaElkKTsKKyAgICB2b2lkIHJlc29sdmVOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwg
Y29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1
bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCk7CisgICAgdm9pZCBnZXRBdHRyaWJ1dGVzKEVy
cm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8U3RyaW5nPj4mIHJl
c3VsdCk7CisgICAgdm9pZCBzZXRJbnNwZWN0TW9kZUVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29s
IGVuYWJsZWQsIGNvbnN0IEpTT046Ok9iamVjdCogaGlnaGxpZ2h0Q29uZmlnLCBjb25zdCBib29s
KiBzaG93UnVsZXJzKTsKKyAgICB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpOworICAgIHZvaWQgcHVzaE5vZGVCeVBhdGhU
b0Zyb250ZW5kKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5vZGVJZCk7
CisgICAgdm9pZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBoaWdobGln
aHRSZWN0KEVycm9yU3RyaW5nJiwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQs
IGNvbnN0IEpTT046Ok9iamVjdCogY29sb3IsIGNvbnN0IEpTT046Ok9iamVjdCogb3V0bGluZUNv
bG9yLCBjb25zdCBib29sKiB1c2VQYWdlQ29vcmRpbmF0ZXMpOworICAgIHZvaWQgaGlnaGxpZ2h0
UXVhZChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046OkFycmF5JiBxdWFkLCBjb25zdCBKU09OOjpP
YmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xvciwgY29uc3QgYm9v
bCogdXNlUGFnZUNvb3JkaW5hdGVzKTsKKyAgICB2b2lkIGhpZ2hsaWdodFNlbGVjdG9yKEVycm9y
U3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGlnaHRDb25maWcsIGNvbnN0IFN0cmlu
ZyYgc2VsZWN0b3JTdHJpbmcsIGNvbnN0IFN0cmluZyogZnJhbWVJZCk7CisgICAgdm9pZCBoaWdo
bGlnaHROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGlnaHRDb25m
aWcsIGNvbnN0IGludCogbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdElkKTsKKyAgICB2b2lk
IGhpZ2hsaWdodE5vZGVMaXN0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkmIG5vZGVJ
ZHMsIGNvbnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmlnKTsKKyAgICB2b2lkIGhpZ2hs
aWdodEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBKU09O
OjpPYmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xvcik7CisgICAg
dm9pZCBtb3ZlVG8oRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBpbnQgdGFyZ2V0Tm9kZUlkLCBj
b25zdCBpbnQqIGFuY2hvck5vZGVJZCwgaW50KiBuZXdOb2RlSWQpOworICAgIHZvaWQgdW5kbyhF
cnJvclN0cmluZyYpOworICAgIHZvaWQgcmVkbyhFcnJvclN0cmluZyYpOworICAgIHZvaWQgbWFy
a1VuZG9hYmxlU3RhdGUoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGZvY3VzKEVycm9yU3RyaW5n
JiwgaW50IG5vZGVJZCk7CisgICAgdm9pZCBzZXRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nJiwg
aW50IG5vZGVJZCk7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICBpbnQg
aWRlbnRpZmllckZvck5vZGUoTm9kZSYpOwpAQCAtMTcwLDggKzE4MSw2IEBAIHB1YmxpYzoKICAg
ICBOb2RlKiBub2RlRm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJvdW5kTm9kZUlkKGNvbnN0
IE5vZGUqKTsKIAotICAgIHN0YXRpYyBTdHJpbmcgZG9jdW1lbnRVUkxTdHJpbmcoRG9jdW1lbnQq
KTsKLQogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmpl
Y3Q+IHJlc29sdmVOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKTsKICAgICBi
b29sIGhhbmRsZU1vdXNlUHJlc3MoKTsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKQEAgLTE3OSwy
MiArMTg4LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGZvY3VzTm9kZSgpOwogCiAgICAgSW5zcGVj
dG9ySGlzdG9yeSogaGlzdG9yeSgpIHsgcmV0dXJuIG1faGlzdG9yeS5nZXQoKTsgfQotCi0gICAg
Ly8gV2UgcmVwcmVzZW50IGVtYmVkZGVkIGRvbXMgYXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGhpZXJh
cmNoeS4gSGVuY2Ugd2UgdHJlYXQgY2hpbGRyZW4gb2YgZnJhbWUgb3duZXJzIGRpZmZlcmVudGx5
LgotICAgIC8vIFdlIGFsc28gc2tpcCB3aGl0ZXNwYWNlIHRleHQgbm9kZXMgY29uZGl0aW9uYWxs
eS4gRm9sbG93aW5nIG1ldGhvZHMgZW5jYXBzdWxhdGUgdGhlc2Ugc3BlY2lmaWNzLgotICAgIHN0
YXRpYyBOb2RlKiBpbm5lckZpcnN0Q2hpbGQoTm9kZSopOwotICAgIHN0YXRpYyBOb2RlKiBpbm5l
ck5leHRTaWJsaW5nKE5vZGUqKTsKLSAgICBzdGF0aWMgTm9kZSogaW5uZXJQcmV2aW91c1NpYmxp
bmcoTm9kZSopOwotICAgIHN0YXRpYyB1bnNpZ25lZCBpbm5lckNoaWxkTm9kZUNvdW50KE5vZGUq
KTsKLSAgICBzdGF0aWMgTm9kZSogaW5uZXJQYXJlbnROb2RlKE5vZGUqKTsKKyAgICBWZWN0b3I8
RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsKKyAgICB2b2lkIHJlc2V0KCk7CiAKICAgICBOb2RlKiBh
c3NlcnROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCk7CiAgICAgRWxlbWVudCogYXNzZXJ0
RWxlbWVudChFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogICAgIERvY3VtZW50KiBhc3NlcnRE
b2N1bWVudChFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogCi0gICAgc3RhdGljIE5vZGUqIHNj
cmlwdFZhbHVlQXNOb2RlKEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBu
b2RlQXNTY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYsIE5vZGUqKTsKLQogICAgIGJvb2wgaGFz
QnJlYWtwb2ludEZvckV2ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQmLCBjb25zdCBBdG9tU3RyaW5n
JiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOwogICAgIGludCBpZEZv
ckV2ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUs
IEV2ZW50TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNw
cAppbmRleCA0NWUyZmE5YThkYTEyMDg2N2I4N2UxOGQzODFjMmFmYjUzOWMxOTA3Li5lYjQ3YWUx
OTYxZDJhZmZiYmI1N2FmYjMxODY2N2VhNjk2NzJiMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5jcHAKQEAgLTc0LDExICs3NCw3IEBAIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Okluc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0LCBJCiAgICAgbV9k
ZWJ1Z2dlckFnZW50LT5hZGRMaXN0ZW5lcigqdGhpcyk7CiB9CiAKLUluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ6On5JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KCkKLXsKLSAgICBBU1NFUlQoIW1f
ZGVidWdnZXJBZ2VudCk7Ci0gICAgQVNTRVJUKCFtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudCgpKTsKLX0KK0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6On5J
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OwogCiAvLyBCcm93c2VyIGRlYnVn
Z2VyIGFnZW50IGVuYWJsZWQgb25seSB3aGVuIEpTIGRlYnVnZ2VyIGlzIGVuYWJsZWQuCiB2b2lk
IEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyV2FzRW5hYmxlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVi
dWdnZXJBZ2VudC5oCmluZGV4IGQyOGU0N2Q0Yzg1NjhhZDYwOTE5MmUyYWRmMGEwOTUwN2MxZTNh
MmYuLjU1NzYzMjZiMjFlZWIxNDc5NjIwMTU1NWM0MDkwNjY4OGIzZWMyM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVi
dWdnZXJBZ2VudC5oCkBAIC01MiwyMCArNTIsMjkgQEAgY2xhc3MgUmVnaXN0ZXJlZEV2ZW50TGlz
dGVuZXI7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGlj
IEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVuZXIsIHB1YmxpYyBJbnNw
ZWN0b3I6OkRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsKK2NsYXNzIEluc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBw
dWJsaWMgSW5zcGVjdG9yOjpET01EZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlciwgcHVi
bGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVuZXIgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQpOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQoV2ViQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Kik7
CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpOwogCi0gICAgLy8gRE9N
RGVidWdnZXIgQVBJCi0gICAgdm9pZCBzZXRVUkxCcmVha3BvaW50KEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNSZWdleCkgZmluYWw7Ci0gICAg
dm9pZCByZW1vdmVVUkxCcmVha3BvaW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwp
IGZpbmFsOwotICAgIHZvaWQgc2V0RXZlbnRCcmVha3BvaW50KEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBicmVha3BvaW50VHlwZSwgY29uc3QgU3RyaW5nKiBldmVudE5hbWUpIGZpbmFsOwot
ICAgIHZvaWQgcmVtb3ZlRXZlbnRCcmVha3BvaW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBicmVha3BvaW50VHlwZSwgY29uc3QgU3RyaW5nKiBldmVudE5hbWUpIGZpbmFsOwotICAgIHZv
aWQgc2V0RE9NQnJlYWtwb2ludChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmlu
ZyYgdHlwZSkgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVET01CcmVha3BvaW50KEVycm9yU3RyaW5n
JiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0eXBlKSBmaW5hbDsKKyAgICAvLyBJbnNwZWN0
b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOworICAg
IHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKTsKKyAgICB2b2lkIGRpc2NhcmRBZ2VudCgpOworCisgICAgLy8gRE9NRGVidWdnZXJC
YWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIHNldFVSTEJyZWFrcG9pbnQoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1JlZ2V4KTsK
KyAgICB2b2lkIHJlbW92ZVVSTEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHVybCk7CisgICAgdm9pZCBzZXRFdmVudEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGJyZWFrcG9pbnRUeXBlLCBjb25zdCBTdHJpbmcqIGV2ZW50TmFtZSk7CisgICAgdm9p
ZCByZW1vdmVFdmVudEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyZWFr
cG9pbnRUeXBlLCBjb25zdCBTdHJpbmcqIGV2ZW50TmFtZSk7CisgICAgdm9pZCBzZXRET01CcmVh
a3BvaW50KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAg
ICB2b2lkIHJlbW92ZURPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25z
dCBTdHJpbmcmIHR5cGUpOworCisgICAgLy8gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVu
ZXIKKyAgICB2b2lkIGRlYnVnZ2VyV2FzRW5hYmxlZCgpOworICAgIHZvaWQgZGVidWdnZXJXYXNE
aXNhYmxlZCgpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCB3
aWxsSW5zZXJ0RE9NTm9kZShOb2RlJiBwYXJlbnQpOwpAQCAtODMsMTYgKzkyLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgd2lsbEZpcmVBbmltYXRpb25GcmFtZSgpOwogICAgIHZvaWQgbWFpbkZyYW1l
RE9NQ29udGVudExvYWRlZCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNo
ZXIqKSBmaW5hbDsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgZmluYWw7Ci0gICAgdm9pZCBkaXNjYXJkQWdlbnQoKSBm
aW5hbDsKLQotcHJpdmF0ZToKLSAgICAvLyBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6Okxpc3RlbmVyIGltcGxlbWVudGF0aW9uLgotICAgIHZvaWQgZGVidWdnZXJXYXNFbmFibGVk
KCkgZmluYWw7Ci0gICAgdm9pZCBkZWJ1Z2dlcldhc0Rpc2FibGVkKCkgZmluYWw7CiAgICAgdm9p
ZCBkaXNhYmxlKCk7CiAKK3ByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBVUkxCcmVha3BvaW50U291
cmNlIHsgRmV0Y2gsIFhIUiB9OwogICAgIHZvaWQgYnJlYWtPblVSTElmTmVlZGVkKGNvbnN0IFN0
cmluZyYgdXJsLCBVUkxCcmVha3BvaW50U291cmNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
CmluZGV4IDgxZjE0ZGMxN2JmYTA0NzQ3ZTNkMjNlNDUzZjVlNGFmOGQwOWZkODMuLjgyMjExMjA3
MmY0MDE4MGFjYWI5ZjVhODhlMTBjYzI3ZDUwMTcwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5j
cHAKQEAgLTYyLDYgKzYyLDggQEAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50Ojp+SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCkgPSBkZWZhdWx0
OworCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNw
YXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCmluZGV4IGZhYTFhODMyM2YyZTBhNjhm
MTVkN2E1OTA5ODE1YjU3ZTUwMjczZmEuLmRjMWE5OWE4YzQzNmFlZGMwZWRiNzFlY2E4Mjc2Yzdj
YzdlODM0NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaApAQCAtNTIsMjUgKzUyLDI2IEBAIGNsYXNz
IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJh
c2UsIHB1YmxpYyBJbnNwZWN0CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVh
bCB+SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNr
ZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICAvLyBJ
bnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciop
OworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNj
b25uZWN0UmVhc29uKTsKIAotICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCi0gICAg
dm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGUoRXJy
b3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldERPTVN0b3JhZ2VJdGVtcyhFcnJvclN0
cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlP
ZjxKU09OOjpBcnJheU9mPFN0cmluZz4+PiYgaXRlbXMpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0
RE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJ
ZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOwotICAg
IHZvaWQgcmVtb3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmpl
Y3QmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwotCi0gICAgLy8gQ2Fs
bGVkIGZyb20gdGhlIGluamVjdGVkIHNjcmlwdC4KLSAgICBzdGF0aWMgU3RyaW5nIHN0b3JhZ2VJ
ZChTdG9yYWdlJik7Ci0gICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpET01T
dG9yYWdlOjpTdG9yYWdlSWQ+IHN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiosIGJvb2wgaXNMb2Nh
bFN0b3JhZ2UpOworICAgIC8vIERPTVN0b3JhZ2VCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAg
ICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmlu
ZyYpOworICAgIHZvaWQgZ2V0RE9NU3RvcmFnZUl0ZW1zKEVycm9yU3RyaW5nJiwgY29uc3QgSlNP
Tjo6T2JqZWN0JiBzdG9yYWdlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEpTT046OkFycmF5T2Y8
U3RyaW5nPj4+JiBpdGVtcyk7CisgICAgdm9pZCBzZXRET01TdG9yYWdlSXRlbShFcnJvclN0cmlu
ZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSk7CisgICAgdm9pZCByZW1vdmVET01TdG9yYWdlSXRlbShFcnJvclN0
cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSk7
CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRpZERpc3BhdGNo
RE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qKTsK
IAorICAgIC8vIENvbW1hbmRMaW5lQVBJCisgICAgc3RhdGljIFN0cmluZyBzdG9yYWdlSWQoU3Rv
cmFnZSYpOworICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NU3RvcmFn
ZTo6U3RvcmFnZUlkPiBzdG9yYWdlSWQoU2VjdXJpdHlPcmlnaW4qLCBib29sIGlzTG9jYWxTdG9y
YWdlKTsKKwogcHJpdmF0ZToKICAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IGZpbmRTdG9yYWdlQXJl
YShFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYsIEZyYW1lKiYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEYXRhYmFz
ZUFnZW50LmNwcAppbmRleCAzNThhODU2NTEyZWE0ZDcxOTYzMzJhMjA2OTkwZGUzMjUwMDQxMGJm
Li5hNmNmOWFjM2NkMWYyMTAzOGZiN2UwODIzNDc3Nzg1ZDdkMjMyZDUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VB
Z2VudC5jcHAKQEAgLTIyMiw2ICsyMjIsOCBAQCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpJbnNw
ZWN0b3JEYXRhYmFzZUFnZW50KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6fkluc3BlY3RvckRhdGFiYXNlQWdlbnQoKSA9IGRlZmF1bHQ7
CisKIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXggNWM3OTAyZmUwYjZiNjUwZmVjMzE5N2Rm
M2I3MjBiMTg5ODc4NzM2Yy4uMmRlYmEzMTkwZTg4OGE3NWE1OGI4YzIwMDljMjE5MTk2NjIzZTY1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
YXRhYmFzZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JEYXRhYmFzZUFnZW50LmgKQEAgLTQ3LDI2ICs0NywyNiBAQCBjbGFzcyBJbnNwZWN0b3JE
YXRhYmFzZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIElu
c3BlY3RvcgogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckRhdGFiYXNlQWdlbnQp
OwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IElu
c3BlY3RvckRhdGFiYXNlQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBJbnNwZWN0b3JEYXRhYmFzZUFn
ZW50KFdlYkFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckRhdGFiYXNlQWdl
bnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIq
LCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwogCi0KLSAgICAv
LyBDYWxsZWQgZnJvbSB0aGUgZnJvbnQtZW5kLgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBnZXREYXRhYmFzZVRhYmxlTmFtZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0cmluZz4+JiBuYW1lcykgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBleGVjdXRlU1FMKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZCwgY29uc3Qg
U3RyaW5nJiBxdWVyeSwgUmVmPEV4ZWN1dGVTUUxDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0KLSAg
ICAvLyBDYWxsZWQgZnJvbSB0aGUgaW5qZWN0ZWQgc2NyaXB0LgotICAgIFN0cmluZyBkYXRhYmFz
ZUlkKERhdGFiYXNlJik7CisgICAgLy8gRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIK
KyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0
cmluZyYpOworICAgIHZvaWQgZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgbmFt
ZXMpOworICAgIHZvaWQgZXhlY3V0ZVNRTChjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWQsIGNvbnN0
IFN0cmluZyYgcXVlcnksIFJlZjxFeGVjdXRlU1FMQ2FsbGJhY2s+JiYpOwogCiAgICAgLy8gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkaWRDb21taXRMb2FkKCk7CiAgICAgdm9p
ZCBkaWRPcGVuRGF0YWJhc2UoRGF0YWJhc2UmKTsKIAorICAgIC8vIENvbW1hbmRMaW5lQVBJCisg
ICAgU3RyaW5nIGRhdGFiYXNlSWQoRGF0YWJhc2UmKTsKKwogcHJpdmF0ZToKICAgICBEYXRhYmFz
ZSogZGF0YWJhc2VGb3JJZChjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWQpOwogICAgIEluc3BlY3Rv
ckRhdGFiYXNlUmVzb3VyY2UqIGZpbmRCeUZpbGVOYW1lKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBkZDcxNWNiZDhjYTExYjljMWQwODVhNjZiNTQx
NmQ5ZjJlOTVhN2QyLi40ZmU4YzAzMDZkN2NjY2M5YjIyZDAzZWU2ZWFjZTM4ZjM5MDc5YzllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4
ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTI3LDYgKzUyNyw4IEBAIEluc3BlY3RvckluZGV4
ZWREQkFnZW50OjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250
ZXh0KQogewogfQogCitJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6fkluc3BlY3RvckluZGV4ZWRE
QkFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCmluZGV4IDQ1
ZmViOTE3ODEwMjgwNmZkYzJmODZjNjdjMjdlZDRjNTJkYWZhYTIuLmI0OWUwYzBlNDczNDU0MDQ0
ZDk3MDVlYTcwMTc4MDY4OTVlZmQ2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKQEAgLTUyLDE4ICs1
MiwxOSBAQCBjbGFzcyBJbnNwZWN0b3JJbmRleGVkREJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNw
ZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0bwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIEluc3BlY3RvckluZGV4ZWREQkFnZW50KFBhZ2VBZ2VudENvbnRl
eHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JJbmRleGVkREJBZ2VudCgpID0gZGVmYXVsdDsK
KyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JJbmRleGVkREJBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7
CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXIqKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CiAKICAgICAvLyBJbmRleGVkREJCYWNrZW5kRGlzcGF0
Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdERh
dGFiYXNlTmFtZXMoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgUmVmPFJlcXVlc3REYXRh
YmFzZU5hbWVzQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdERhdGFiYXNl
KGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1l
LCBSZWY8UmVxdWVzdERhdGFiYXNlQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVx
dWVzdERhdGEoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lLCBjb25zdCBTdHJpbmcmIGlu
ZGV4TmFtZSwgaW50IHNraXBDb3VudCwgaW50IHBhZ2VTaXplLCBjb25zdCBKU09OOjpPYmplY3Qq
IGtleVJhbmdlLCBSZWY8UmVxdWVzdERhdGFDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgaW5fc2VjdXJpdHlPcmlnaW4sIGNvbnN0
IFN0cmluZyYgaW5fZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGluX29iamVjdFN0b3JlTmFt
ZSwgUmVmPENsZWFyT2JqZWN0U3RvcmVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKTsKKyAg
ICB2b2lkIHJlcXVlc3REYXRhYmFzZU5hbWVzKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4s
IFJlZjxSZXF1ZXN0RGF0YWJhc2VOYW1lc0NhbGxiYWNrPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RE
YXRhYmFzZShjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIGRhdGFi
YXNlTmFtZSwgUmVmPFJlcXVlc3REYXRhYmFzZUNhbGxiYWNrPiYmKTsKKyAgICB2b2lkIHJlcXVl
c3REYXRhKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VOYW1lLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSwgY29uc3QgU3RyaW5nJiBpbmRl
eE5hbWUsIGludCBza2lwQ291bnQsIGludCBwYWdlU2l6ZSwgY29uc3QgSlNPTjo6T2JqZWN0KiBr
ZXlSYW5nZSwgUmVmPFJlcXVlc3REYXRhQ2FsbGJhY2s+JiYpOworICAgIHZvaWQgY2xlYXJPYmpl
Y3RTdG9yZShjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIGRhdGFi
YXNlTmFtZSwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUsIFJlZjxDbGVhck9iamVjdFN0
b3JlQ2FsbGJhY2s+JiYpOwogCiBwcml2YXRlOgogICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAK
aW5kZXggYjU5ODJjZWUzN2UzNzQ0NzA1Mzk0NmJjZjRjNDM0YjQzMWVmOWE5OC4uZTc2YmU0NDc3
YTAxY2Y0YWU4ODc4ZWE2NTQ0ODJhYWFkNjg3MDFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAK
QEAgLTUzLDEwICs1Myw3IEBAIEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpJbnNwZWN0b3JMYXll
clRyZWVBZ2VudChXZWJBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKLUluc3BlY3Rvckxh
eWVyVHJlZUFnZW50Ojp+SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKQotewotICAgIHJlc2V0KCk7
Ci19CitJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6fkluc3BlY3RvckxheWVyVHJlZUFnZW50KCkg
PSBkZWZhdWx0OwogCiB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFj
a2VuZERpc3BhdGNoZXIqKQogewpAQCAtODUsNiArODIsOCBAQCB2b2lkIEluc3BlY3RvckxheWVy
VHJlZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogdm9pZCBJbnNwZWN0b3JMYXllclRyZWVB
Z2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyYpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRz
LnNldEluc3BlY3RvckxheWVyVHJlZUFnZW50KG51bGxwdHIpOworCisgICAgcmVzZXQoKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6bGF5ZXJUcmVlRGlkQ2hhbmdlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5
ZXJUcmVlQWdlbnQuaAppbmRleCBjMzliMGY2NDdlMWVjZWZkNDQwNGMyYzEyOTg3N2JjZjFkYmEx
ZWJiLi4zYTA2Mjk3ZGIyZjY0YzIyZmQ5MDIyOTIzODk1MWE3ODdlNmE4Y2E2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRy
ZWVBZ2VudC5oCkBAIC00OCwyMyArNDgsMjQgQEAgY2xhc3MgSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG8KICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JMYXllclRyZWVBZ2VudCk7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgSW5zcGVjdG9yTGF5
ZXJUcmVlQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7CisgICAgSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQoV2ViQWdlbnRDb250ZXh0Jik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXQoKTsKKyAgICAvLyBJbnNwZWN0
b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOworICAg
IHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKTsKKworICAgIC8vIExheWVyVHJlZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAg
IHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5n
Jik7CisgICAgdm9pZCBsYXllcnNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVm
UHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpMYXllcj4+
Jik7CisgICAgdm9pZCByZWFzb25zRm9yQ29tcG9zaXRpbmdMYXllcihFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgbGF5ZXJJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkxheWVyVHJl
ZTo6Q29tcG9zaXRpbmdSZWFzb25zPiYpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uCiAgICAgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2UoKTsKICAgICB2b2lkIHJlbmRlckxheWVy
RGVzdHJveWVkKGNvbnN0IFJlbmRlckxheWVyJik7CiAgICAgdm9pZCBwc2V1ZG9FbGVtZW50RGVz
dHJveWVkKFBzZXVkb0VsZW1lbnQmKTsKLQotICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1l
bmQuCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
c2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGxheWVyc0Zvck5vZGUoRXJy
b3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpMYXllclRyZWU6OkxheWVyPj4mKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlYXNvbnNG
b3JDb21wb3NpdGluZ0xheWVyKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBsYXllcklkLCBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpDb21wb3NpdGluZ1JlYXNvbnM+
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXNldCgpOwogCiBwcml2YXRlOgogICAgIC8vIFJlbmRl
ckxheWVyLXJlbGF0ZWQgbWV0aG9kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggMjgzMjk1MWY1Mzgw
MTIxZmE0NTJiZmE4ZDQ3MGY0ZDM1ZTc4OWIxNi4uNjlhNzg5MGI3ODMzNTVmOTNmZTc2NjIzMmQy
MWU2YWYxNTZjYWUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAgSW5zcGVj
dG9yTWVtb3J5QWdlbnQ6Okluc3BlY3Rvck1lbW9yeUFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNv
bnRleHQpCiB7CiB9CiAKK0luc3BlY3Rvck1lbW9yeUFnZW50Ojp+SW5zcGVjdG9yTWVtb3J5QWdl
bnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
TWVtb3J5QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
TWVtb3J5QWdlbnQuaAppbmRleCA1YzE0NzExMTU0MGU1Y2Y0MzUxYmI4ZWRlNDAwZTdlODQ2ZWE0
NjU5Li5mMzEyY2ZjOGQxYmY0MjEyMDk5MjcxNWI4MTUxMDc5ZTFjN2MwN2ZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2Vu
dC5oCkBAIC00MiwxNiArNDIsMTcgQEAgY2xhc3MgSW5zcGVjdG9yTWVtb3J5QWdlbnQgZmluYWwg
OiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjoKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JNZW1vcnlBZ2VudChQ
YWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yTWVtb3J5QWdlbnQoKSA9
IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yTWVtb3J5QWdlbnQoKTsKIAotICAgIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIq
LCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwogCiAgICAgLy8gTWVtb3J5QmFja2VuZERp
c3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0
VHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BUcmFja2luZyhF
cnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7Cisg
ICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBzdGFydFRyYWNraW5nKEVy
cm9yU3RyaW5nJik7CisgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKTsKIAogICAg
IC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgZGlkSGFuZGxlTWVtb3J5UHJl
c3N1cmUoQ3JpdGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDVkMDgxNjM4MGNkYzY2Yzdk
Nzk2MGMxMmQzNDhhMGZiZjNmN2IxMTguLjgwOTgwNzUwM2M4ZTAxMzEyMWRhMTUwZjVmZGE0OWMz
Y2Q0MGM1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTE3OSw2ICsxNzksOCBAQCBJbnNwZWN0
b3JOZXR3b3JrQWdlbnQ6Okluc3BlY3Rvck5ldHdvcmtBZ2VudChXZWJBZ2VudENvbnRleHQmIGNv
bnRleHQpCiB7CiB9CiAKK0luc3BlY3Rvck5ldHdvcmtBZ2VudDo6fkluc3BlY3Rvck5ldHdvcmtB
Z2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiB9CkBAIC0zOTAsMTUgKzM5Miw2IEBAIFJlZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gSW5zcGVjdG9yTmV0d29y
a0FnZW50OjpidWlsZE9iCiAgICAgcmV0dXJuIHJlc291cmNlT2JqZWN0OwogfQogCi1JbnNwZWN0
b3JOZXR3b3JrQWdlbnQ6On5JbnNwZWN0b3JOZXR3b3JrQWdlbnQoKQotewotICAgIGlmIChtX2Vu
YWJsZWQpIHsKLSAgICAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwotICAgICAgICBkaXNhYmxlKHVu
dXNlZCk7Ci0gICAgfQotICAgIEFTU0VSVCghbV9pbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3Rv
ck5ldHdvcmtBZ2VudCgpKTsKLX0KLQogZG91YmxlIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6dGlt
ZXN0YW1wKCkKIHsKICAgICByZXR1cm4gbV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2go
KS0+ZWxhcHNlZFRpbWUoKS5zZWNvbmRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaAppbmRleCA1OGQ4Y2RlZjFi
OGRmMzU2NDg5ZWVjN2YzZjYxYjQ4NDc4ZWJkNWE3Li41Mjk4YjA5MWUwMDhmMzE5NTljNThkZjMw
NDg2ZThhODc0YmViMWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKQEAgLTY4LDcgKzY4LDYgQEAgY2xhc3Mg
SW5zcGVjdG9yTmV0d29ya0FnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGlj
IEluc3BlY3Rvcjo6TmV0d28KICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JOZXR3
b3JrQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4
cGxpY2l0IEluc3BlY3Rvck5ldHdvcmtBZ2VudChXZWJBZ2VudENvbnRleHQmKTsKICAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JOZXR3b3JrQWdlbnQoKTsKIAogICAgIHN0YXRpYyBib29sIHNob3VsZFRy
ZWF0QXNUZXh0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwpAQCAtNzYsOCArNzUsMTkgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBPcHRpb25hbDxTdHJpbmc+IHRleHRDb250ZW50Rm9yQ2FjaGVkUmVz
b3VyY2UoQ2FjaGVkUmVzb3VyY2UmKTsKICAgICBzdGF0aWMgYm9vbCBjYWNoZWRSZXNvdXJjZUNv
bnRlbnQoQ2FjaGVkUmVzb3VyY2UmLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCogYmFzZTY0RW5jb2Rl
ZCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZy
b250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwot
ICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lk
IGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwg
SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOworICAgIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsK
KworICAgIC8vIE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIGVuYWJs
ZShFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgc2V0RXh0cmFIVFRQSGVhZGVycyhFcnJvclN0cmluZyYsIGNvbnN0IEpT
T046Ok9iamVjdCYgaGVhZGVycykgZmluYWw7CisgICAgdm9pZCBnZXRSZXNwb25zZUJvZHkoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCwgU3RyaW5nKiBjb250ZW50LCBib29s
KiBiYXNlNjRFbmNvZGVkKSBmaW5hbDsKKyAgICB2b2lkIHNldFJlc291cmNlQ2FjaGluZ0Rpc2Fi
bGVkKEVycm9yU3RyaW5nJiwgYm9vbCBkaXNhYmxlZCkgZmluYWw7CisgICAgdm9pZCBsb2FkUmVz
b3VyY2UoY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgUmVmPExvYWRS
ZXNvdXJjZUNhbGxiYWNrPiYmKSBmaW5hbDsKKyAgICB2b2lkIGdldFNlcmlhbGl6ZWRDZXJ0aWZp
Y2F0ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBTdHJpbmcqIHNlcmlh
bGl6ZWRDZXJ0aWZpY2F0ZSkgZmluYWw7CisgICAgdm9pZCByZXNvbHZlV2ViU29ja2V0KEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3Jv
dXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+Jikg
ZmluYWw7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHdpbGxS
ZWNhbGN1bGF0ZVN0eWxlKCk7CkBAIC0xMDgsMTUgKzExOCw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNlYXJjaE90aGVyUmVxdWVzdHMoY29uc3QgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiYs
IFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OlNlYXJjaFJl
c3VsdD4+Jik7CiAgICAgdm9pZCBzZWFyY2hJblJlcXVlc3QoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgYm9vbCBjYXNlU2Vuc2l0aXZl
LCBib29sIGlzUmVnZXgsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkdlbmVyaWNUeXBlczo6U2VhcmNoTWF0Y2g+PiYpOwogCi0gICAgLy8gQ2FsbGVkIGZyb20gZnJv
bnRlbmQuCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIGRp
c2FibGUoRXJyb3JTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIHNldEV4dHJhSFRUUEhlYWRlcnMo
RXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIGhlYWRlcnMpIGZpbmFsOwotICAgIHZv
aWQgZ2V0UmVzcG9uc2VCb2R5KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQs
IFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCkgZmluYWw7Ci0gICAgdm9pZCBz
ZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZGlzYWJsZWQpIGZp
bmFsOwotICAgIHZvaWQgbG9hZFJlc291cmNlKGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3Qg
U3RyaW5nJiB1cmwsIFJlZjxMb2FkUmVzb3VyY2VDYWxsYmFjaz4mJikgZmluYWw7Ci0gICAgdm9p
ZCBnZXRTZXJpYWxpemVkQ2VydGlmaWNhdGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHJl
cXVlc3RJZCwgU3RyaW5nKiBzZXJpYWxpemVkQ2VydGlmaWNhdGUpIGZpbmFsOwotICAgIHZvaWQg
cmVzb2x2ZVdlYlNvY2tldChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBj
b25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVu
dGltZTo6UmVtb3RlT2JqZWN0PiYpIGZpbmFsOworcHJvdGVjdGVkOgorICAgIEluc3BlY3Rvck5l
dHdvcmtBZ2VudChXZWJBZ2VudENvbnRleHQmKTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIGxvYWRl
cklkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZnJh
bWVJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGJmZWE2
ZDE2MjIxZGIyYzZhMTQwODUxMmViNGI1YmE1MTU4Y2I3NDYuLjE3NGExZmM0YjM0ZDIzOGIwZmI5
Y2EzNmEzZDVlNTI3NDA2ODFhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTM0MSw2ICszNDEsOCBAQCBJ
bnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBj
b250ZXh0LCBJbnNwZWN0b3JDbGllbgogewogfQogCitJbnNwZWN0b3JQYWdlQWdlbnQ6On5JbnNw
ZWN0b3JQYWdlQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIElu
c3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggM2VlZDAxOWM5
ZmVlNDYzYjRlYWZmMTM3MGZiMGVhZTEyMDE3NDgxZi4uYzQ2MGRhMTBmYmY2ODc2N2UyZmMwM2Qx
ZGY2MDQ5ZTEyMTA0ZGNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIEluc3Bl
Y3RvclBhZ2VBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJ
bnNwZWN0b3I6OlBhCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
SW5zcGVjdG9yUGFnZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmLCBJbnNwZWN0b3JDbGllbnQqLCBJ
bnNwZWN0b3JPdmVybGF5Kik7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yUGFnZUFnZW50KCk7CiAK
ICAgICBlbnVtIFJlc291cmNlVHlwZSB7CiAgICAgICAgIERvY3VtZW50UmVzb3VyY2UsCkBAIC04
NywyOCArODgsMzIgQEAgcHVibGljOgogICAgIHN0YXRpYyBGcmFtZSogZmluZEZyYW1lV2l0aFNl
Y3VyaXR5T3JpZ2luKFBhZ2UmLCBjb25zdCBTdHJpbmcmIG9yaWdpblJhd1N0cmluZyk7CiAgICAg
c3RhdGljIERvY3VtZW50TG9hZGVyKiBhc3NlcnREb2N1bWVudExvYWRlcihFcnJvclN0cmluZyYs
IEZyYW1lKik7CiAKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKwogICAgIC8vIFBhZ2VCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOwot
ICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgcmVsb2FkKEVy
cm9yU3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxSZWxvYWRGcm9tT3JpZ2luLCBjb25zdCBi
b29sKiBvcHRpb25hbFJldmFsaWRhdGVBbGxSZXNvdXJjZXMpIGZpbmFsOwotICAgIHZvaWQgbmF2
aWdhdGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCkgZmluYWw7Ci0gICAgdm9pZCBv
dmVycmlkZVVzZXJBZ2VudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyogdmFsdWUpIGZpbmFs
OwotICAgIHZvaWQgb3ZlcnJpZGVTZXR0aW5nKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBz
ZXR0aW5nLCBjb25zdCBib29sKiB2YWx1ZSkgZmluYWw7Ci0gICAgdm9pZCBnZXRDb29raWVzKEVy
cm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFn
ZTo6Q29va2llPj4mIGNvb2tpZXMpIGZpbmFsOwotICAgIHZvaWQgZGVsZXRlQ29va2llKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lLCBjb25zdCBTdHJpbmcmIHVybCkgZmlu
YWw7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZVRyZWUoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6UGFnZTo6RnJhbWVSZXNvdXJjZVRyZWU+JikgZmluYWw7Ci0gICAgdm9p
ZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQs
IGNvbnN0IFN0cmluZyYgdXJsLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJhc2U2NEVuY29kZWQp
IGZpbmFsOwotICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNv
bnN0IGJvb2wqIG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1Jl
Z2V4LCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6QXJyYXlP
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpHZW5lcmljVHlwZXM6OlNlYXJjaE1hdGNoPj4mKSBmaW5h
bDsKLSAgICB2b2lkIHNlYXJjaEluUmVzb3VyY2VzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgYm9vbCogY2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogaXNSZWdleCwgUmVmUHRy
PEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6U2VhcmNoUmVzdWx0Pj4m
KSBmaW5hbDsKLSAgICB2b2lkIHNldFNob3dSdWxlcnMoRXJyb3JTdHJpbmcmLCBib29sKSBmaW5h
bDsKLSAgICB2b2lkIHNldFNob3dQYWludFJlY3RzKEVycm9yU3RyaW5nJiwgYm9vbCBzaG93KSBm
aW5hbDsKLSAgICB2b2lkIHNldEVtdWxhdGVkTWVkaWEoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKSBmaW5hbDsKLSAgICB2b2lkIHNldEZvcmNlZEFwcGVhcmFuY2UoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIGdldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2li
bGUoRXJyb3JTdHJpbmcmLCBib29sKiBvdXRfcGFyYW0pIGZpbmFsOwotICAgIHZvaWQgc2V0Q29t
cG9zaXRpbmdCb3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyYsIGJvb2wpIGZpbmFsOwotICAgIHZv
aWQgc25hcHNob3ROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgU3RyaW5nKiBvdXREYXRh
VVJMKSBmaW5hbDsKLSAgICB2b2lkIHNuYXBzaG90UmVjdChFcnJvclN0cmluZyYsIGludCB4LCBp
bnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBjb25zdCBTdHJpbmcmIGNvb3JkaW5hdGVTeXN0
ZW0sIFN0cmluZyogb3V0RGF0YVVSTCkgZmluYWw7Ci0gICAgdm9pZCBhcmNoaXZlKEVycm9yU3Ry
aW5nJiwgU3RyaW5nKiBkYXRhKSBmaW5hbDsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYp
OworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgcmVsb2FkKEVycm9y
U3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxSZWxvYWRGcm9tT3JpZ2luLCBjb25zdCBib29s
KiBvcHRpb25hbFJldmFsaWRhdGVBbGxSZXNvdXJjZXMpOworICAgIHZvaWQgbmF2aWdhdGUoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCk7CisgICAgdm9pZCBvdmVycmlkZVVzZXJBZ2Vu
dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyogdmFsdWUpOworICAgIHZvaWQgb3ZlcnJpZGVT
ZXR0aW5nKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzZXR0aW5nLCBjb25zdCBib29sKiB2
YWx1ZSk7CisgICAgdm9pZCBnZXRDb29raWVzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFy
cmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6Q29va2llPj4mIGNvb2tpZXMpOworICAg
IHZvaWQgZGVsZXRlQ29va2llKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1l
LCBjb25zdCBTdHJpbmcmIHVybCk7CisgICAgdm9pZCBnZXRSZXNvdXJjZVRyZWUoRXJyb3JTdHJp
bmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6RnJhbWVSZXNvdXJjZVRyZWU+
Jik7CisgICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJh
c2U2NEVuY29kZWQpOworICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcXVl
cnksIGNvbnN0IGJvb2wqIG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogb3B0aW9u
YWxJc1JlZ2V4LCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6
QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpHZW5lcmljVHlwZXM6OlNlYXJjaE1hdGNoPj4m
KTsKKyAgICB2b2lkIHNlYXJjaEluUmVzb3VyY2VzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgYm9vbCogY2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogaXNSZWdleCwgUmVmUHRy
PEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6U2VhcmNoUmVzdWx0Pj4m
KTsKKyAgICB2b2lkIHNldFNob3dSdWxlcnMoRXJyb3JTdHJpbmcmLCBib29sKTsKKyAgICB2b2lk
IHNldFNob3dQYWludFJlY3RzKEVycm9yU3RyaW5nJiwgYm9vbCBzaG93KTsKKyAgICB2b2lkIHNl
dEVtdWxhdGVkTWVkaWEoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNl
dEZvcmNlZEFwcGVhcmFuY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lk
IGdldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoRXJyb3JTdHJpbmcmLCBib29sKiBvdXRfcGFy
YW0pOworICAgIHZvaWQgc2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyYs
IGJvb2wpOworICAgIHZvaWQgc25hcHNob3ROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwg
U3RyaW5nKiBvdXREYXRhVVJMKTsKKyAgICB2b2lkIHNuYXBzaG90UmVjdChFcnJvclN0cmluZyYs
IGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBjb25zdCBTdHJpbmcmIGNvb3Jk
aW5hdGVTeXN0ZW0sIFN0cmluZyogb3V0RGF0YVVSTCk7CisgICAgdm9pZCBhcmNoaXZlKEVycm9y
U3RyaW5nJiwgU3RyaW5nKiBkYXRhKTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bgogICAgIHZvaWQgZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKQEAgLTEyOCwxMSArMTMzLDYgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkU2Nyb2xsKCk7CiAgICAgdm9pZCBkaWRSZWNhbGN1bGF0ZVN0
eWxlKCk7CiAKLSAgICAvLyBJbnNwZWN0b3IgQ29udHJvbGxlciBBUEkKLSAgICB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVj
dG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKLQotICAg
IC8vIENyb3NzLWFnZW50cyBBUEkKICAgICBGcmFtZSogZnJhbWVGb3JJZChjb25zdCBTdHJpbmcm
IGZyYW1lSWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBmcmFtZUlkKEZyYW1lKik7CiAg
ICAgU3RyaW5nIGxvYWRlcklkKERvY3VtZW50TG9hZGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApp
bmRleCBlMGU4NjBkODY2MDZlOTUxYjNlNDYwMDdiMTlkMjI1OWJlYjU3YmJjLi41MGE4YmI5ZjQ3
YTk3YmQ5NDdmNjMzYjRlYjQ2NWM0MGYyMDU3OTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAg
LTYxOCwxMSArNjE4LDYgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0b2dnbGVUaW1l
bGluZUluc3RydW1lbnQoSW5zdHJ1bWVudFN0YXRlIHN0YXRlKQogICAgICAgICBpbnRlcm5hbFN0
b3AoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21taXRMb2FkKCkK
LXsKLSAgICBjbGVhclJlY29yZFN0YWNrKCk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkLCBGcmFtZSogZnJh
bWUpCiB7CiAgICAgYXBwZW5kUmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlQW5p
bWF0aW9uRnJhbWVEYXRhKGNhbGxiYWNrSWQpLCBUaW1lbGluZVJlY29yZFR5cGU6OlJlcXVlc3RB
bmltYXRpb25GcmFtZSwgdHJ1ZSwgZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA5ZmRiYTRm
Mjc0NmMzZDU3ZWUyMDJiZmZjZTk1NmUxMTBhNjAyOTEwLi5kMTFiOTBiMDJmY2Q5N2MyNTM1MGQ2
OTNkN2EyM2RjNTE3MzNkMDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtODEsMzQgKzgxLDM1IEBA
IGVudW0gY2xhc3MgVGltZWxpbmVSZWNvcmRUeXBlIHsKICAgICBPYnNlcnZlckNhbGxiYWNrLAog
fTsKIAotY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCBmaW5hbAotICAgIDogcHVibGljIElu
c3BlY3RvckFnZW50QmFzZQotICAgICwgcHVibGljIEluc3BlY3Rvcjo6VGltZWxpbmVCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKLSAgICAsIHB1YmxpYyBJbnNwZWN0b3I6OlNjcmlwdERlYnVnTGlz
dGVuZXIgeworY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNw
ZWN0b3JBZ2VudEJhc2UgLCBwdWJsaWMgSW5zcGVjdG9yOjpUaW1lbGluZUJhY2tlbmREaXNwYXRj
aGVySGFuZGxlciAsIHB1YmxpYyBJbnNwZWN0b3I6OlNjcmlwdERlYnVnTGlzdGVuZXIgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclRpbWVsaW5lQWdlbnQpOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQo
UGFnZUFnZW50Q29udGV4dCYpOwogICAgIHZpcnR1YWwgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQo
KTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJv
bnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7Ci0gICAg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pIGZpbmFsOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwogCiAgICAgLy8gVGltZWxpbmVC
YWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIGZp
bmFsOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgc3Rh
cnQoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIG1heENhbGxTdGFja0RlcHRoID0gbnVsbHB0cikg
ZmluYWw7Ci0gICAgdm9pZCBzdG9wKEVycm9yU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCBzZXRB
dXRvQ2FwdHVyZUVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sKSBmaW5hbDsKLSAgICB2b2lkIHNl
dEluc3RydW1lbnRzKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkmKSBmaW5hbDsKKyAg
ICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmlu
ZyYpOworICAgIHZvaWQgc3RhcnQoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIG1heENhbGxTdGFj
a0RlcHRoID0gbnVsbHB0cik7CisgICAgdm9pZCBzdG9wKEVycm9yU3RyaW5nJik7CisgICAgdm9p
ZCBzZXRBdXRvQ2FwdHVyZUVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sKTsKKyAgICB2b2lkIHNl
dEluc3RydW1lbnRzKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkmKTsKIAotICAgIGlu
dCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KLQotICAgIHZvaWQgZGlkQ29tbWl0TG9hZCgp
OwotCi0gICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSBXZWJDb3JlLgotICAgIHZvaWQgc3RhcnRG
cm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHZv
aWQgc3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7
CisgICAgLy8gU2NyaXB0RGVidWdMaXN0ZW5lcgorICAgIHZvaWQgZGlkUGFyc2VTb3VyY2UoSlND
OjpTb3VyY2VJRCwgY29uc3QgU2NyaXB0JikgeyB9CisgICAgdm9pZCBmYWlsZWRUb1BhcnNlU291
cmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGludCwgaW50LCBjb25zdCBTdHJpbmcm
KSB7IH0KKyAgICB2b2lkIHdpbGxSdW5NaWNyb3Rhc2soKSB7IH0KKyAgICB2b2lkIGRpZFJ1bk1p
Y3JvdGFzaygpIHsgfQorICAgIHZvaWQgZGlkUGF1c2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpT
VmFsdWUsIEpTQzo6SlNWYWx1ZSkgeyB9CisgICAgdm9pZCBkaWRDb250aW51ZSgpIHsgfQorICAg
IHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYp
IHsgfQorICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvblNvdW5kKGludCkgeyB9CisgICAgdm9pZCBi
cmVha3BvaW50QWN0aW9uUHJvYmUoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBJbnNwZWN0b3I6OlNj
cmlwdEJyZWFrcG9pbnRBY3Rpb24mLCB1bnNpZ25lZCBiYXRjaElkLCB1bnNpZ25lZCBzYW1wbGVJ
ZCwgSlNDOjpKU1ZhbHVlIHJlc3VsdCk7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24KICAgICB2b2lkIGRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0
LCBib29sIHNpbmdsZVNob3QsIEZyYW1lKik7CkBAIC0xNDMsMTggKzE0NCwxMyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBtYWluRnJhbWVTdGFydGVkTG9hZGluZygpOwogICAgIHZvaWQgbWFpbkZyYW1l
TmF2aWdhdGVkKCk7CiAKLXByaXZhdGU6Ci0gICAgLy8gSlNDOjpTY3JpcHREZWJ1Z0xpc3RlbmVy
Ci0gICAgdm9pZCBkaWRQYXJzZVNvdXJjZShKU0M6OlNvdXJjZUlELCBjb25zdCBTY3JpcHQmKSBm
aW5hbCB7IH0KLSAgICB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiwgaW50LCBpbnQsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQotICAgIHZvaWQg
d2lsbFJ1bk1pY3JvdGFzaygpIGZpbmFsIHsgfQotICAgIHZvaWQgZGlkUnVuTWljcm90YXNrKCkg
ZmluYWwgeyB9Ci0gICAgdm9pZCBkaWRQYXVzZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU1ZhbHVlKSBmaW5hbCB7IH0KLSAgICB2b2lkIGRpZENvbnRpbnVlKCkgZmluYWwg
eyB9Ci0gICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwgY29uc3Qg
U3RyaW5nJikgZmluYWwgeyB9Ci0gICAgdm9pZCBicmVha3BvaW50QWN0aW9uU291bmQoaW50KSBm
aW5hbCB7IH0KLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Qcm9iZShKU0M6OkV4ZWNTdGF0ZSYs
IGNvbnN0IEluc3BlY3Rvcjo6U2NyaXB0QnJlYWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIGJhdGNo
SWQsIHVuc2lnbmVkIHNhbXBsZUlkLCBKU0M6OkpTVmFsdWUgcmVzdWx0KSBmaW5hbDsKKyAgICAv
LyBDb25zb2xlCisgICAgdm9pZCBzdGFydEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CisgICAgdm9pZCBzdG9wRnJvbUNvbnNvbGUoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKIAorICAgIGludCBpZCgpIGNvbnN0IHsgcmV0dXJu
IG1faWQ7IH0KKworcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UHJvZ3JhbW1hdGljQ2FwdHVyZSgp
OwogICAgIHZvaWQgc3RvcFByb2dyYW1tYXRpY0NhcHR1cmUoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmNwcApp
bmRleCAxZTM5OGVkZDFhOWVhM2VmMjZiZTA5ZWMwM2Q2YzZjMmNkMzk4ZGU4Li5jMjFiODBkM2Y5
MWEzMDM2MGY5Y2QyZWY2ZjVkNDI3OGVlNDQ4MTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmNwcApAQCAtNDIs
NiArNDIsOCBAQCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6SW5zcGVjdG9yV29ya2VyQWdlbnQoUGFn
ZUFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorSW5zcGVjdG9yV29ya2VyQWdlbnQ6On5J
bnNwZWN0b3JXb3JrZXJBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JXb3JrZXJB
Z2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2Vu
ZERpc3BhdGNoZXIqKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRJbnNwZWN0b3JX
b3JrZXJBZ2VudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCA1ZTA0MGM5NTRkNGI1MTRhMTQ5MDNj
MDcyMDcwYmVjZGUwNjBjYmQwLi4yMjExYjNiNjM3MzVlNGExM2YwMzJiZWU4NGVkY2E3Mjg0ZDhl
ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
cldvcmtlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5oCkBAIC00MiwxOSArNDIsMjAgQEAgY2xhc3MgSW5zcGVjdG9yV29y
a2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVj
dG9yOjoKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0
b3JXb3JrZXJBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9y
V29ya2VyQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yV29ya2VyQWdl
bnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nv
bm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIq
LCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwogCiAgICAgLy8g
V29ya2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJp
bmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGluaXRpYWxpemVkKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB3b3JrZXJJ
ZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2VyKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiB3b3JrZXJJZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBvdmVycmlkZTsK
KyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0
cmluZyYpOworICAgIHZvaWQgaW5pdGlhbGl6ZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHdvcmtlcklkKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlVG9Xb3JrZXIoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIHdvcmtlcklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCi0gICAgLy8g
UGFnZUNoYW5uZWwKLSAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29y
a2VySW5zcGVjdG9yUHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlOworICAg
IC8vIFdvcmtlckluc3BlY3RvclByb3h5OjpQYWdlQ2hhbm5lbAorICAgIHZvaWQgc2VuZE1lc3Nh
Z2VGcm9tV29ya2VyVG9Gcm9udGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSosIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSk7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICBib29s
IHNob3VsZFdhaXRGb3JEZWJ1Z2dlck9uU3RhcnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAppbmRleCBjMjA5NGI5
OTJkMzU0MTYwZjE3ZWUyOGY2NDEwYTc5M2RjZGU5ZjM0Li5mMTViZDExNzBkMDBiYzUzYjdhNmJi
ZmZhMjk3ZDMyMTk2ZTU2YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCkBAIC00MywxMSArNDMsMTMgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCi1XZWJDb25zb2xlQWdl
bnQ6OldlYkNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQpCitXZWJDb25zb2xlQWdl
bnQ6OldlYkNvbnNvbGVBZ2VudChXZWJBZ2VudENvbnRleHQmIGNvbnRleHQpCiAgICAgOiBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQoY29udGV4dCkKIHsKIH0KIAorV2ViQ29uc29sZUFnZW50Ojp+V2Vi
Q29uc29sZUFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIFdlYkNvbnNvbGVBZ2VudDo6ZnJhbWVX
aW5kb3dEaXNjYXJkZWQoRE9NV2luZG93KiB3aW5kb3cpCiB7CiAgICAgaWYgKCFtX2luamVjdGVk
U2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJs
ZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29u
c29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVB
Z2VudC5oCmluZGV4IDU5YmU4MTJkNTkyMjNkNDBlNGMwMTY0OTIxMTVkODlhNzI0N2EzNzAuLjk5
MzA4YzhhNmQ1ZTVmYTNmMjg3ZWIzMDU4OTI3NWUwZTE3MTM2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaApAQCAtMzgsMTMgKzM4
LDE1IEBAIGNsYXNzIFdlYkNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3Rv
ckNvbnNvbGVBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViQ29uc29sZUFnZW50
KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXZWJDb25zb2xl
QWdlbnQoSW5zcGVjdG9yOjpBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5XZWJDb25zb2xl
QWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgV2ViQ29uc29sZUFnZW50KFdlYkFnZW50Q29udGV4dCYp
OworICAgIHZpcnR1YWwgfldlYkNvbnNvbGVBZ2VudCgpOwogCisgICAgLy8gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uCiAgICAgdm9pZCBmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqKTsK
LQogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkaW5n
KHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsK
KworcHJvdGVjdGVkOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5jcHAKaW5kZXgg
Y2FiZTQ5NTk3NjRjMDg5NjdjMTc5NDQwNmM3MmExMGJlNWIxYjY0MC4uNzg0NGY2OGM4YzBmOWJl
NWMzYmM1YjQxZGJkZDBlYmI3ZjZiOTM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zOSw2ICszOSw4IEBAIFdl
YkRlYnVnZ2VyQWdlbnQ6OldlYkRlYnVnZ2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0
KQogewogfQogCitXZWJEZWJ1Z2dlckFnZW50Ojp+V2ViRGVidWdnZXJBZ2VudCgpID0gZGVmYXVs
dDsKKwogdm9pZCBXZWJEZWJ1Z2dlckFnZW50OjplbmFibGUoKQogewogICAgIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OmVuYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuaAppbmRleCA0NjA0NzVkOWNkMzU2MjM4ODY0YWU2OTUx
MDViODg4MTVlNjE4NzM2Li5mYThhMjZjN2ZmY2M0OWE2NWZiNzQ3YzQ2Nzc3NGE2NGFjMzU4MDI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2Vy
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2Vy
QWdlbnQuaApAQCAtMzcsMTAgKzM3LDExIEBAIGNsYXNzIFdlYkRlYnVnZ2VyQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShXZWJEZWJ1Z2dlckFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBXZWJEZWJ1Z2dlckFnZW50KFdlYkFnZW50Q29udGV4dCYpOwotICAgIHZp
cnR1YWwgfldlYkRlYnVnZ2VyQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+V2ViRGVi
dWdnZXJBZ2VudCgpOwogCiBwcm90ZWN0ZWQ6CisgICAgV2ViRGVidWdnZXJBZ2VudChXZWJBZ2Vu
dENvbnRleHQmKTsKKwogICAgIHZvaWQgZW5hYmxlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNh
YmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50LmNwcAppbmRleCA4NjViYmQwN2I2ZjA5
OGNhN2U2NjUwZDhhZmVmYmNmNmVmMDUxOTI4Li4zY2JmYjgzNzVlNmZmZDc2YzA3NjU5ZDcxYjlh
MTliNGExYWJhZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L1dlYkhlYXBBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9X
ZWJIZWFwQWdlbnQuY3BwCkBAIC0xMDEsMTAgKzEwMSw3IEBAIFdlYkhlYXBBZ2VudDo6V2ViSGVh
cEFnZW50KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAotV2ViSGVhcEFnZW50Ojp+
V2ViSGVhcEFnZW50KCkKLXsKLSAgICBtX3NlbmRHYXJiYWdlQ29sbGVjdGlvbkV2ZW50c1Rhc2st
PnJlc2V0KCk7Ci19CitXZWJIZWFwQWdlbnQ6On5XZWJIZWFwQWdlbnQoKSA9IGRlZmF1bHQ7CiAK
IHZvaWQgV2ViSGVhcEFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50LmgKaW5kZXgg
YmE5NjNiNWRhMjUzZjZiZWVkYjgzYTljYWFjNWM1OGVjZGNiMGZmYi4uODhlZjQ1YWYyN2FiYzRm
NWU0NTdmMTI2ZDc4ZWQ1OWUxYzE1MWExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5oCkBAIC00MywxMiArNDMsMTIgQEAgcHVibGljOgogICAg
IFdlYkhlYXBBZ2VudChXZWJBZ2VudENvbnRleHQmKTsKICAgICB2aXJ0dWFsIH5XZWJIZWFwQWdl
bnQoKTsKIAotcHJvdGVjdGVkOgorICAgIC8vIEhlYXBCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIK
ICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzYWJs
ZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaXNwYXRjaEdhcmJhZ2VDb2xs
ZWN0ZWRFdmVudChJbnNwZWN0b3I6OlByb3RvY29sOjpIZWFwOjpHYXJiYWdlQ29sbGVjdGlvbjo6
VHlwZSwgU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVGltZSkgb3ZlcnJpZGU7Ci0KK3By
b3RlY3RlZDoKKyAgICB2b2lkIGRpc3BhdGNoR2FyYmFnZUNvbGxlY3RlZEV2ZW50KEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkhlYXA6OkdhcmJhZ2VDb2xsZWN0aW9uOjpUeXBlLCBTZWNvbmRzIHN0YXJ0
VGltZSwgU2Vjb25kcyBlbmRUaW1lKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoR2FyYmFnZUNv
bGxlY3Rpb25FdmVudHNBZnRlckRlbGF5KFZlY3RvcjxHYXJiYWdlQ29sbGVjdGlvbkRhdGE+JiYg
Y29sbGVjdGlvbnMpOwogCiAgICAgSW5zdHJ1bWVudGluZ0FnZW50cyYgbV9pbnN0cnVtZW50aW5n
QWdlbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdl
L1BhZ2VBdWRpdEFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFn
ZS9QYWdlQXVkaXRBZ2VudC5jcHAKaW5kZXggNWU1MDJmNmJmOGE2M2IzOTMzM2VlYTc0YzhkODBm
YTA2OWFlY2M0ZC4uNWI2YmZkMGI2OTA5OWY4OWFmMzliMmZjMGY1ZjM4NDE3ODAxYWQ4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1
ZGl0QWdlbnQuY3BwCkBAIC01NCw2ICs1NCw4IEBAIFBhZ2VBdWRpdEFnZW50OjpQYWdlQXVkaXRB
Z2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCitQYWdlQXVkaXRBZ2VudDo6
flBhZ2VBdWRpdEFnZW50KCkgPSBkZWZhdWx0OworCiBJbmplY3RlZFNjcmlwdCBQYWdlQXVkaXRB
Z2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElk
KQogewogICAgIGlmIChleGVjdXRpb25Db250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5oCmluZGV4IGFjNDZmNGZl
YzNjYTE3OWZhMjgwYTdlMDRlNjVlZmJhZjk4ZWIwNzEuLjBkNTE0MTQ2Y2Y2NDc2MzE2MjczOWRh
ZTZjYjJhZGE0ZDQ0NGUyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5oCkBAIC0zNiwxNiArMzYsMTcgQEAgY2xhc3Mg
UGFnZUF1ZGl0QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFn
ZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQXVkaXRBZ2VudCk7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUGFnZUF1ZGl0QWdl
bnQoUGFnZUFnZW50Q29udGV4dCYpOworICAgIFBhZ2VBdWRpdEFnZW50KFBhZ2VBZ2VudENvbnRl
eHQmKTsKKyAgICB2aXJ0dWFsIH5QYWdlQXVkaXRBZ2VudCgpOwogCiBwcml2YXRlOgogICAgIElu
c3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkKTsKLSAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVj
dGVkU2NyaXB0Rm9yRXZhbChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVj
dXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOworICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBpbnQq
IGV4ZWN1dGlvbkNvbnRleHRJZCk7CiAKLSAgICB2b2lkIHBvcHVsYXRlQXVkaXRPYmplY3QoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYgYXVkaXRPYmplY3QpIG92
ZXJyaWRlOworICAgIHZvaWQgcG9wdWxhdGVBdWRpdE9iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiBhdWRpdE9iamVjdCk7CiAKLSAgICB2b2lkIG11dGVD
b25zb2xlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBtdXRlQ29uc29sZSgpOworICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpOwogCiAgICAg
UGFnZSYgbV9pbnNwZWN0ZWRQYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcAppbmRleCA2ZWVlYzBh
Y2M0MmMxZGE0MDE0YmI3ZTQzNmUwOWE4ZTQ4ZDAzMjU2Li5hMDFiNzY5NjE1MDA3OTRhMjZkYTIz
ZjUwZWU3NDk5NDEyZDQyNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwCkBAIC01Miw2ICs1Miw4IEBA
IFBhZ2VDb25zb2xlQWdlbnQ6OlBhZ2VDb25zb2xlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29u
dGV4dCkKIHsKIH0KIAorUGFnZUNvbnNvbGVBZ2VudDo6flBhZ2VDb25zb2xlQWdlbnQoKSA9IGRl
ZmF1bHQ7CisKIHZvaWQgUGFnZUNvbnNvbGVBZ2VudDo6Y2xlYXJNZXNzYWdlcyhFcnJvclN0cmlu
ZyYgZXJyb3JTdHJpbmcpCiB7CiAgICAgaWYgKGF1dG8qIGRvbUFnZW50ID0gbV9pbnN0cnVtZW50
aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuaAppbmRleCBkZWEyNDk0
YTc3NWY1N2VmMjNiNGVhMTc0NDU2MzFlYzRjN2Q0ZTFiLi5lZTQ3NDcyNTNiM2Y3NDg3NTQ3MjA2
NWZjZjhjZjFlYzJmNWYxODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmgKQEAgLTQxLDE0ICs0MSwxNCBAQCBj
bGFzcyBQYWdlQ29uc29sZUFnZW50IGZpbmFsIDogcHVibGljIFdlYkNvbnNvbGVBZ2VudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUGFnZUNvbnNvbGVBZ2Vu
dChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+UGFnZUNvbnNvbGVBZ2VudCgpID0g
ZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZUFnZW50KCk7CiAKLSAgICB2b2lkIGdl
dExvZ2dpbmdDaGFubmVscyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWw+PiYpIGZpbmFsOwotICAgIHZvaWQgc2V0
TG9nZ2luZ0NoYW5uZWxMZXZlbChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2hhbm5lbCwg
Y29uc3QgU3RyaW5nJiBsZXZlbCkgZmluYWw7CisgICAgLy8gQ29uc29sZUJhY2tlbmREaXNwYXRj
aGVySGFuZGxlcgorICAgIHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyYpOworICAgIHZv
aWQgZ2V0TG9nZ2luZ0NoYW5uZWxzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbD4+Jik7CisgICAgdm9pZCBzZXRM
b2dnaW5nQ2hhbm5lbExldmVsKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjaGFubmVsLCBj
b25zdCBTdHJpbmcmIGxldmVsKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGNsZWFyTWVzc2FnZXMo
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLQogICAgIEluc3RydW1lbnRpbmdBZ2VudHMmIG1faW5z
dHJ1bWVudGluZ0FnZW50czsKICAgICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdn
ZXJBZ2VudC5jcHAKaW5kZXggYjM4ODVmYjU4Y2JhYWUzYmFlMDcyNWY2NzE0ZmJmN2FiOTZmZmYz
ZC4uN2Y3ZDdiMDJlYWRiNmJkZDg2MjU2NmU0NmFlM2E2NTM4OGZiZDZkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwCkBAIC02NSw2ICs2NSw4IEBAIFBhZ2VEZWJ1Z2dlckFnZW50OjpQYWdlRGVidWdn
ZXJBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCitQYWdlRGVidWdnZXJB
Z2VudDo6flBhZ2VEZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIFBhZ2VEZWJ1Z2dl
ckFnZW50OjpldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBT
dHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNv
bnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgYm9v
bCogcmV0dXJuQnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29s
KiBzYXZlUmVzdWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUsIFJlZlB0cjxQcm90
b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxib29sPiYgd2Fz
VGhyb3duLCBPcHRpb25hbDxpbnQ+JiBzYXZlZFJlc3VsdEluZGV4KQogewogICAgIGF1dG8mIHBh
Z2VDaHJvbWVDbGllbnQgPSBtX2luc3BlY3RlZFBhZ2UuY2hyb21lKCkuY2xpZW50KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2Vy
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdn
ZXJBZ2VudC5oCmluZGV4IDI1NzUwZmMyZTM5M2RjNzhkODBlYzAxNmM3YTMxNzRlZDQ4ZmFmOGMu
LmUyNDM2NGY1MDdmYTU4ZDhkODQyOWNkYjg1ZmM4ZjQ4YzFjMTA0MGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2Vu
dC5oCkBAIC00NywxMCArNDcsMTMgQEAgY2xhc3MgUGFnZURlYnVnZ2VyQWdlbnQgZmluYWwgOiBw
dWJsaWMgV2ViRGVidWdnZXJBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgUGFnZURlYnVnZ2VyQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZp
cnR1YWwgflBhZ2VEZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflBhZ2VE
ZWJ1Z2dlckFnZW50KCk7CiAKICAgICAvLyBEZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVySGFuZGxl
cgotICAgIHZvaWQgZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBv
YmplY3RHcm91cCwgY29uc3QgYm9vbCogaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29s
KiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIGNvbnN0IGJvb2wqIHJldHVy
bkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRlUHJldmlldywgY29uc3QgYm9vbCogc2F2ZVJl
c3VsdCwgY29uc3QgYm9vbCogZW11bGF0ZVVzZXJHZXN0dXJlLCBSZWZQdHI8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxib29sPiYg
d2FzVGhyb3duLCBPcHRpb25hbDxpbnQ+JiBzYXZlZFJlc3VsdEluZGV4KSBmaW5hbDsKKyAgICB2
b2lkIGV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbGxG
cmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3Jv
dXAsIGNvbnN0IGJvb2wqIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQ
YXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBib29sKiByZXR1cm5CeVZhbHVl
LCBjb25zdCBib29sKiBnZW5lcmF0ZVByZXZpZXcsIGNvbnN0IGJvb2wqIHNhdmVSZXN1bHQsIGNv
bnN0IGJvb2wqIGVtdWxhdGVVc2VyR2VzdHVyZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgT3B0aW9uYWw8Ym9vbD4mIHdhc1Rocm93
biwgT3B0aW9uYWw8aW50PiYgc2F2ZWRSZXN1bHRJbmRleCk7CisKKyAgICAvLyBTY3JpcHREZWJ1
Z0xpc3RlbmVyCisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwg
Y29uc3QgU3RyaW5nJik7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2
b2lkIGRpZENsZWFyTWFpbkZyYW1lV2luZG93T2JqZWN0KCk7CkBAIC02OCwyMiArNzEsMTggQEAg
cHVibGljOgogICAgIHZvaWQgd2lsbERpc3BhdGNoUG9zdE1lc3NhZ2UoY29uc3QgVGltZXJCYXNl
Jik7CiAgICAgdm9pZCBkaWREaXNwYXRjaFBvc3RNZXNzYWdlKGNvbnN0IFRpbWVyQmFzZSYpOwog
Ci1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBlbmFibGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2Fi
bGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKLQotICAgIFN0cmluZyBzb3VyY2VN
YXBVUkxGb3JTY3JpcHQoY29uc3QgU2NyaXB0Jikgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGRpZENs
ZWFyQXN5bmNTdGFja1RyYWNlRGF0YSgpIG92ZXJyaWRlOwotCiBwcml2YXRlOgotICAgIHZvaWQg
bXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVuYWJsZSgpOworICAgIHZvaWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0
cm95ZWQpOwogCi0gICAgLy8gSlNDOjpTY3JpcHREZWJ1Z0xpc3RlbmVyCi0gICAgdm9pZCBicmVh
a3BvaW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgU3RyaW5nIHNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQmKTsKIAotICAg
IEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3Ry
aW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkQ2xlYXJBc3luY1N0YWNrVHJhY2VEYXRhKCk7CisKKyAgICB2b2lkIG11dGVDb25zb2xlKCk7
CisgICAgdm9pZCB1bm11dGVDb25zb2xlKCk7CisKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2Ny
aXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0
aW9uQ29udGV4dElkKTsKIAogICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuY3Bw
CmluZGV4IDc2MjZiM2RkMzQ3MTg5NzFmNjc4MzVjYThiYjRlYzJhOTlmNWQ1YmEuLmY2MmY2ZWIw
NWNlOWZiMzY0ZDBjZWY0ODQxOWM4ZDM2M2I4NGQ1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5jcHAKQEAgLTM3LDYg
KzM3LDggQEAgUGFnZUhlYXBBZ2VudDo6UGFnZUhlYXBBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBj
b250ZXh0KQogewogfQogCitQYWdlSGVhcEFnZW50Ojp+UGFnZUhlYXBBZ2VudCgpID0gZGVmYXVs
dDsKKwogdm9pZCBQYWdlSGVhcEFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
KQogewogICAgIFdlYkhlYXBBZ2VudDo6ZW5hYmxlKGVycm9yU3RyaW5nKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5oCmluZGV4
IDhkMTAxNzdiOTlkZTY2MDg0YzM0YzZjOTE2N2M4Mzk0YzgxM2U4NTQuLjc1NmZjYTBmMWVmOGQ5
YmRkNTJiYTA5YWM1MDYzMzIxZTA4MjI5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuaApAQCAtMzgsMTEgKzM4LDEzIEBA
IGNsYXNzIFBhZ2VIZWFwQWdlbnQgZmluYWwgOiBwdWJsaWMgV2ViSGVhcEFnZW50IHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdlSGVhcEFnZW50KFBhZ2VB
Z2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5QYWdlSGVhcEFnZW50KCkgPSBkZWZhdWx0Owor
ICAgIHZpcnR1YWwgflBhZ2VIZWFwQWdlbnQoKTsKIAotICAgIHZvaWQgZW5hYmxlKEVycm9yU3Ry
aW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgLy8gSGVhcEJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVy
cm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CiAKKyAgICAvLyBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIG1haW5GcmFtZU5hdmlnYXRlZCgpOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuY3BwCmluZGV4IGNjOGNkNDFjZGY4YmI0Zjk3MGQzZWM1
NmMwY2M2ZWU5M2ZjYzk1ZmIuLjU4MGE1MGEzNTQ5NWFkZWM1NTVkZjI3ODA0NDE1ZTVkZTExMjVi
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdl
TmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3Bh
Z2UvUGFnZU5ldHdvcmtBZ2VudC5jcHAKQEAgLTQ2LDYgKzQ2LDggQEAgUGFnZU5ldHdvcmtBZ2Vu
dDo6UGFnZU5ldHdvcmtBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCitQ
YWdlTmV0d29ya0FnZW50Ojp+UGFnZU5ldHdvcmtBZ2VudCgpID0gZGVmYXVsdDsKKwogU3RyaW5n
IFBhZ2VOZXR3b3JrQWdlbnQ6OmxvYWRlcklkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKIHsKICAgICBpZiAobG9hZGVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuaAppbmRleCA1YTE5ZDlhYWQzMTZk
OGE0OWY4ZGU2NmM2ODAyOWE0ZGRiNGI4M2FiLi40ZThmNTQxOWI2YjJmMDgwYjBiNzJkMjhjOTM0
NmRmY2E3ODc4ZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmgKQEAgLTM2LDE1ICszNiwxNSBAQCBjbGFzcyBQ
YWdlTmV0d29ya0FnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rvck5ldHdvcmtBZ2VudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUGFnZU5ldHdvcmtBZ2Vu
dChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+UGFnZU5ldHdvcmtBZ2VudCgpID0g
ZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5QYWdlTmV0d29ya0FnZW50KCk7CiAKIHByaXZhdGU6Ci0g
ICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsKLSAgICBT
dHJpbmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKikgZmluYWw7Ci0gICAgVmVjdG9y
PFdlYlNvY2tldCo+IGFjdGl2ZVdlYlNvY2tldHMoY29uc3QgTG9ja0hvbGRlciYpIGZpbmFsOwot
ICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoYm9vbCkgZmluYWw7Ci0gICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dChFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgZnJhbWVJZCkgZmluYWw7Ci0gICAgYm9vbCBzaG91bGRGb3JjZUJ1ZmZl
cmluZ05ldHdvcmtSZXNvdXJjZURhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIFN0cmluZyBsb2FkZXJJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKik7CisgICAgU3RyaW5n
IGZyYW1lSWRlbnRpZmllcihEb2N1bWVudExvYWRlciopOworICAgIFZlY3RvcjxXZWJTb2NrZXQq
PiBhY3RpdmVXZWJTb2NrZXRzKGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICB2b2lkIHNldFJlc291
cmNlQ2FjaGluZ0Rpc2FibGVkKGJvb2wpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQp
OworICAgIGJvb2wgc2hvdWxkRm9yY2VCdWZmZXJpbmdOZXR3b3JrUmVzb3VyY2VEYXRhKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRp
bWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1
bnRpbWVBZ2VudC5jcHAKaW5kZXggMjg0ZDI4Njg1Y2Q5YTEyZTg1MGFkZmU0ZGJmMmYyNzE2MzQ3
MDk4Mi4uOWExYjg2YTBkOWY5ZDBhZTI2YjczNTRkY2VjMTViMjI0N2E2ZjhmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGlt
ZUFnZW50LmNwcApAQCAtNjQsNiArNjQsOCBAQCBQYWdlUnVudGltZUFnZW50OjpQYWdlUnVudGlt
ZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK1BhZ2VSdW50aW1lQWdl
bnQ6On5QYWdlUnVudGltZUFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIFBhZ2VSdW50aW1lQWdl
bnQ6OmVuYWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiB7CiAgICAgYm9vbCBlbmFibGVk
ID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VSdW50aW1lQWdlbnQoKSA9PSB0aGlzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1l
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGlt
ZUFnZW50LmgKaW5kZXggOTNhNzZjYzExZDJmNTdhMDliZWMwMmZjZDNlZThmMzAxMDdhZDZkMC4u
MGMxMWQyODQzYzU1M2I5MDIyMzY2YmJmZmJlY2Y4NDkwN2YyMzYyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5o
CkBAIC01MSwyMCArNTEsMjAgQEAgY2xhc3MgUGFnZVJ1bnRpbWVBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBJbnNwZWN0b3I6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUGFnZVJ1bnRpbWVBZ2VudChQYWdlQWdlbnRDb250ZXh0
Jik7Ci0gICAgdmlydHVhbCB+UGFnZVJ1bnRpbWVBZ2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0
dWFsIH5QYWdlUnVudGltZUFnZW50KCk7CiAKICAgICAvLyBSdW50aW1lQmFja2VuZERpc3BhdGNo
ZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGV2YWx1YXRlKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9iamVj
dEdyb3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGRv
Tm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQsIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRl
UHJldmlldywgY29uc3QgYm9vbCogc2F2ZVJlc3VsdCwgY29uc3QgYm9vbCogZW11bGF0ZVVzZXJH
ZXN0dXJlLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0
PiYgcmVzdWx0LCBPcHRpb25hbDxib29sPiYgd2FzVGhyb3duLCBPcHRpb25hbDxpbnQ+JiBzYXZl
ZFJlc3VsdEluZGV4KSBmaW5hbDsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAs
IGNvbnN0IGJvb2wqIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQYXVz
ZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJ
ZCwgY29uc3QgYm9vbCogcmV0dXJuQnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3
LCBjb25zdCBib29sKiBzYXZlUmVzdWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUs
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1
bHQsIE9wdGlvbmFsPGJvb2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0
SW5kZXgpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkaWRD
cmVhdGVNYWluV29ybGRDb250ZXh0KEZyYW1lJik7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9y
OjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25z
dCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBtdXRlQ29uc29s
ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOworICAgIElu
c3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5n
JiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOworICAgIHZvaWQgbXV0ZUNvbnNvbGUo
KTsKKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKTsKICAgICB2b2lkIHJlcG9ydEV4ZWN1dGlvbkNv
bnRleHRDcmVhdGlvbigpOwogICAgIHZvaWQgbm90aWZ5Q29udGV4dENyZWF0ZWQoY29uc3QgU3Ry
aW5nJiBmcmFtZUlkLCBKU0M6OkV4ZWNTdGF0ZSosIFNlY3VyaXR5T3JpZ2luKiwgYm9vbCBpc1Bh
Z2VDb250ZXh0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvd29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5jcHAKaW5kZXggMmVkNTVjZjU2Nzk5
ZjY1MzA5Y2Q2ZWUyOTZiYzViYjYzODkwYTJjZC4uNDdhOWM1YWNkZmVjYTU3MWVmNWYwYmQ1Mjkz
YTJlM2MwMWUxYWIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2VyQWdlbnQuY3BwCkBAIC00NCw2ICs0NCw4
IEBAIFNlcnZpY2VXb3JrZXJBZ2VudDo6U2VydmljZVdvcmtlckFnZW50KFdvcmtlckFnZW50Q29u
dGV4dCYgY29udGV4dCkKICAgICBBU1NFUlQoY29udGV4dC53b3JrZXJHbG9iYWxTY29wZS5pc0Nv
bnRleHRUaHJlYWQoKSk7CiB9CiAKK1NlcnZpY2VXb3JrZXJBZ2VudDo6flNlcnZpY2VXb3JrZXJB
Z2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBTZXJ2aWNlV29ya2VyQWdlbnQ6OmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpC
YWNrZW5kRGlzcGF0Y2hlciopCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5oCmluZGV4IDQxNjhk
OWQwNzBkZDM4ODc3ZTViZDIzNGIyZjMzZGVkMDdiMWJkODIuLjA5MmRlOGZiZGFmZWFmZGM2MDIx
NGU2YTExZTEwNTc2NjJlYWNiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvd29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5oCkBAIC00MCwxNCAr
NDAsMTUgQEAgY2xhc3MgU2VydmljZVdvcmtlckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rv
ckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6U2UKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShTZXJ2aWNlV29ya2VyQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIGV4cGxpY2l0IFNlcnZpY2VXb3JrZXJBZ2VudChXb3JrZXJBZ2VudENvbnRleHQm
KTsKLSAgICB2aXJ0dWFsIH5TZXJ2aWNlV29ya2VyQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgU2Vy
dmljZVdvcmtlckFnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgflNlcnZp
Y2VXb3JrZXJBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIq
KSBmaW5hbDsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RGlzY29ubmVjdFJlYXNvbikgZmluYWw7CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisg
ICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJv
dXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKKyAgICB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CiAKICAg
ICAvLyBTZXJ2aWNlV29ya2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBnZXRJ
bml0aWFsaXphdGlvbkluZm8oRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6U2VydmljZVdvcmtlcjo6Q29uZmlndXJhdGlvbj4mKSBmaW5hbDsKKyAgICB2b2lkIGdldElu
aXRpYWxpemF0aW9uSW5mbyhFcnJvclN0cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpTZXJ2aWNlV29ya2VyOjpDb25maWd1cmF0aW9uPiYpOwogCiBwcml2YXRlOgogICAgIFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSYgbV9zZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJBdWRpdEFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckF1
ZGl0QWdlbnQuY3BwCmluZGV4IDkxNTA0YTBlNGZlYmQyZmVlNDViMGYxNjhjNjM0NWYzOGIzOWUy
ZTIuLjRiOTUyNDFjZmExMjNjZWQ4ZmRiOTNlZjIxMDlkZWJkM2U3MzgxOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckF1
ZGl0QWdlbnQuY3BwCkBAIC00Niw2ICs0Niw4IEBAIFdvcmtlckF1ZGl0QWdlbnQ6OldvcmtlckF1
ZGl0QWdlbnQoV29ya2VyQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIEFTU0VSVChjb250ZXh0
Lndvcmtlckdsb2JhbFNjb3BlLmlzQ29udGV4dFRocmVhZCgpKTsKIH0KIAorV29ya2VyQXVkaXRB
Z2VudDo6fldvcmtlckF1ZGl0QWdlbnQoKSA9IGRlZmF1bHQ7CisKIEluamVjdGVkU2NyaXB0IFdv
cmtlckF1ZGl0QWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChleGVjdXRp
b25Db250ZXh0SWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQuaAppbmRleCAxYjhkOWZmNzU5NDE1NGU2Y2M5
NGM2M2M0MmUzOTI4OGRhM2UyN2UzLi5lNDZiZjVmZjU3OTcyYWE4ZGIyZDMwOGY4ZDliNzFlYjFi
NjQzNmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtl
ci9Xb3JrZXJBdWRpdEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5oCkBAIC0zNiwxMCArMzYsMTEgQEAgY2xhc3MgV29y
a2VyQXVkaXRBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckF1ZGl0QWdl
bnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlckF1ZGl0QWdlbnQpOwogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFdvcmtlckF1ZGl0
QWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7CisgICAgV29ya2VyQXVkaXRBZ2VudChXb3JrZXJB
Z2VudENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5Xb3JrZXJBdWRpdEFnZW50KCk7CiAKIHByaXZh
dGU6Ci0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwo
SW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBv
dmVycmlkZTsKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9y
RXZhbChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0
SWQpOwogCiAgICAgV29ya2VyR2xvYmFsU2NvcGUmIG1fd29ya2VyR2xvYmFsU2NvcGU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
Q29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2Vy
L1dvcmtlckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggMzgxZjU3MmU5MTI5NmM2Yjk0ZTE4MzY0NmUw
MThmN2UyMmE5MDgwMS4uZWFkNDJkYzMzZDY4N2YwNDNlZDU2N2UzYjhmNGIxNTgwNzY5NjY3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
Q29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dv
cmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCkBAIC0zOCw0ICszOCw2IEBAIFdvcmtlckNvbnNv
bGVBZ2VudDo6V29ya2VyQ29uc29sZUFnZW50KFdvcmtlckFnZW50Q29udGV4dCYgY29udGV4dCkK
ICAgICBBU1NFUlQoY29udGV4dC53b3JrZXJHbG9iYWxTY29wZS5pc0NvbnRleHRUaHJlYWQoKSk7
CiB9CiAKK1dvcmtlckNvbnNvbGVBZ2VudDo6fldvcmtlckNvbnNvbGVBZ2VudCgpID0gZGVmYXVs
dDsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuaAppbmRleCA3
YTJkNjk1OTcyNTBlMzlmYTRiYzgxNWZlZjYwMDgxNDI1ZjU3YWE3Li5hMjI3YWRjMjI3MmM0ZGFj
N2JlMjcwNzAzZDc5YmI4NTM5ZmU1MThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuaApAQCAtMzUs
NyArMzUsNyBAQCBjbGFzcyBXb3JrZXJDb25zb2xlQWdlbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29u
c29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBX
b3JrZXJDb25zb2xlQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7Ci0gICAgfldvcmtlckNvbnNv
bGVBZ2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5Xb3JrZXJDb25zb2xlQWdlbnQoKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRlYnVnZ2VyQWdlbnQuaAppbmRl
eCBlOTEzMTQ3YThlYzcxNGRjMDkwYjMzYWMyOTJjYTEwNDk4MDc5YzdmLi5iMjU5YmI0MmJhNjA1
MjFmNzQ4MDlmMTgzOTFmNzQ5MjIxOTU5M2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyRGVidWdnZXJBZ2VudC5oCkBA
IC0zNiwxNyArMzYsMTcgQEAgY2xhc3MgV29ya2VyRGVidWdnZXJBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBXZWJEZWJ1Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBXb3JrZXJEZWJ1Z2dlckFnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOwotICAgIH5X
b3JrZXJEZWJ1Z2dlckFnZW50KCk7CisgICAgdmlydHVhbCB+V29ya2VyRGVidWdnZXJBZ2VudCgp
OworCisgICAgLy8gU2NyaXB0RGVidWdMaXN0ZW5lcgorICAgIHZvaWQgYnJlYWtwb2ludEFjdGlv
bkxvZyhKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYpOwogCiBwcml2YXRlOgogICAgIC8v
IFdlIGRvbid0IG5lZWQgdG8gbXV0ZSBjb25zb2xlIGZvciB3b3JrZXJzLgotICAgIHZvaWQgbXV0
ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlk
ZSB7IH0KKyAgICB2b2lkIG11dGVDb25zb2xlKCkgeyB9CisgICAgdm9pZCB1bm11dGVDb25zb2xl
KCkgeyB9CiAKLSAgICAvLyBKU0M6OlNjcmlwdERlYnVnTGlzdGVuZXIKLSAgICB2b2lkIGJyZWFr
cG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
LQotICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVy
cm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOworICAg
IEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3Ry
aW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwogCiAgICAgV29ya2VyR2xvYmFs
U2NvcGUmIG1fd29ya2VyR2xvYmFsU2NvcGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyTmV0d29ya0FnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2VudC5jcHAK
aW5kZXggY2ZjNWNkMjgzNDI1MTYzNDUzYTY4ZDY4OGNlODIzNjEzZDllOGVjNi4uNjhkM2NmOWM5
ZjBjM2EwMmJhZjQ1YTc4YmJhYjIxYTRkNGNiODAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyTmV0d29ya0FnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQu
Y3BwCkBAIC00MSw2ICs0MSw4IEBAIFdvcmtlck5ldHdvcmtBZ2VudDo6V29ya2VyTmV0d29ya0Fn
ZW50KFdvcmtlckFnZW50Q29udGV4dCYgY29udGV4dCkKICAgICBBU1NFUlQoY29udGV4dC53b3Jr
ZXJHbG9iYWxTY29wZS5pc0NvbnRleHRUaHJlYWQoKSk7CiB9CiAKK1dvcmtlck5ldHdvcmtBZ2Vu
dDo6fldvcmtlck5ldHdvcmtBZ2VudCgpID0gZGVmYXVsdDsKKwogU3RyaW5nIFdvcmtlck5ldHdv
cmtBZ2VudDo6bG9hZGVySWRlbnRpZmllcihEb2N1bWVudExvYWRlciopCiB7CiAgICAgcmV0dXJu
IHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2Vy
L1dvcmtlck5ldHdvcmtBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93
b3JrZXIvV29ya2VyTmV0d29ya0FnZW50LmgKaW5kZXggODY1ZTIyYjE5ZmU3NjAzZDI5NmQxODEy
OTU4ZTUyY2Q1NDk1NzE5MC4uYzNhODY2OTYyNDg0NTRhMWQyYTg5ZWYyNDY3OTQzYzUxYjkxMmU0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29y
a2VyTmV0d29ya0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93
b3JrZXIvV29ya2VyTmV0d29ya0FnZW50LmgKQEAgLTMzLDE2ICszMywxNiBAQCBjbGFzcyBXb3Jr
ZXJOZXR3b3JrQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yTmV0d29ya0FnZW50IHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJOZXR3b3JrQWdlbnQpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFdvcmtlck5ldHdvcmtBZ2Vu
dChXb3JrZXJBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5Xb3JrZXJOZXR3b3JrQWdlbnQo
KSA9IGRlZmF1bHQ7CisgICAgV29ya2VyTmV0d29ya0FnZW50KFdvcmtlckFnZW50Q29udGV4dCYp
OworICAgIHZpcnR1YWwgfldvcmtlck5ldHdvcmtBZ2VudCgpOwogCiBwcml2YXRlOgotICAgIFN0
cmluZyBsb2FkZXJJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKikgZmluYWw7Ci0gICAgU3RyaW5n
IGZyYW1lSWRlbnRpZmllcihEb2N1bWVudExvYWRlciopIGZpbmFsOwotICAgIFZlY3RvcjxXZWJT
b2NrZXQqPiBhY3RpdmVXZWJTb2NrZXRzKGNvbnN0IExvY2tIb2xkZXImKSBmaW5hbDsKLSAgICB2
b2lkIHNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKGJvb2wpIGZpbmFsOwotICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGZyYW1lSWQpIGZpbmFsOwotICAgIGJvb2wgc2hvdWxkRm9yY2VCdWZmZXJpbmdO
ZXR3b3JrUmVzb3VyY2VEYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFN0
cmluZyBsb2FkZXJJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKik7CisgICAgU3RyaW5nIGZyYW1l
SWRlbnRpZmllcihEb2N1bWVudExvYWRlciopOworICAgIFZlY3RvcjxXZWJTb2NrZXQqPiBhY3Rp
dmVXZWJTb2NrZXRzKGNvbnN0IExvY2tIb2xkZXImKTsKKyAgICB2b2lkIHNldFJlc291cmNlQ2Fj
aGluZ0Rpc2FibGVkKGJvb2wpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpOworICAg
IGJvb2wgc2hvdWxkRm9yY2VCdWZmZXJpbmdOZXR3b3JrUmVzb3VyY2VEYXRhKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogCiAgICAgV29ya2VyR2xvYmFsU2NvcGUmIG1fd29ya2VyR2xvYmFsU2Nv
cGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3Jr
ZXIvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvd29ya2VyL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggMWIwZjdkMDkyYmNhMWY1MTk0
MzVkODMwMzRjYjc2MzI5N2FjZjdkNy4uYzA5ZjhkMDkwOGEyODg5MGVmZWU3YjYwMzg4OWViMWU4
YTBlNDA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3Jr
ZXIvV29ya2VyUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3dvcmtlci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCkBAIC00OSw2ICs0OSw4IEBAIFdv
cmtlclJ1bnRpbWVBZ2VudDo6V29ya2VyUnVudGltZUFnZW50KFdvcmtlckFnZW50Q29udGV4dCYg
Y29udGV4dCkKICAgICBBU1NFUlQoY29udGV4dC53b3JrZXJHbG9iYWxTY29wZS5pc0NvbnRleHRU
aHJlYWQoKSk7CiB9CiAKK1dvcmtlclJ1bnRpbWVBZ2VudDo6fldvcmtlclJ1bnRpbWVBZ2VudCgp
ID0gZGVmYXVsdDsKKwogSW5qZWN0ZWRTY3JpcHQgV29ya2VyUnVudGltZUFnZW50OjppbmplY3Rl
ZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBpbnQqIGV4ZWN1
dGlvbkNvbnRleHRJZCkKIHsKICAgICBpZiAoZXhlY3V0aW9uQ29udGV4dElkKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJSdW50aW1l
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlclJ1
bnRpbWVBZ2VudC5oCmluZGV4IGU3NWZjOWI1ZWU3MmM3NTJiYzY5MzI3YTQxNDNkMDExNzY5MjBk
YmQuLmUyOTIzYjlmNzVkODE4ZDk5ODRhMmU0NWRkY2ZmNTZiNjhlYmJlZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlclJ1bnRpbWVBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlclJ1
bnRpbWVBZ2VudC5oCkBAIC00NCwxNCArNDQsMTQgQEAgY2xhc3MgV29ya2VyUnVudGltZUFnZW50
IGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yUnVudGltZUFnZW50IHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXb3JrZXJSdW50aW1lQWdlbnQo
V29ya2VyQWdlbnRDb250ZXh0Jik7Ci0gICAgfldvcmtlclJ1bnRpbWVBZ2VudCgpID0gZGVmYXVs
dDsKKyAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBJ
bnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmlu
ZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKKyAgICBJbnNwZWN0
b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNv
bnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKTsKIAogICAgIC8vIFdlIGRvbid0IG5lZWQgdG8g
bXV0ZSBjb25zb2xlIGZvciB3b3JrZXJzLgotICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlk
ZSB7IH0KLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIG11
dGVDb25zb2xlKCkgeyB9CisgICAgdm9pZCB1bm11dGVDb25zb2xlKCkgeyB9CiAKICAgICBSZWZQ
dHI8SW5zcGVjdG9yOjpSdW50aW1lQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNo
ZXI7CiAgICAgV29ya2VyR2xvYmFsU2NvcGUmIG1fd29ya2VyR2xvYmFsU2NvcGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50
LmNwcAppbmRleCA0Y2ZjMzkwYTVkY2M2NTMxY2MzZjNkZGFmYzFjNDY4ZmZlMGMwOGJjLi5iYTAw
MWMwOGQwMmY3ZWQ2YzAwODU2NmY3YWY4OWEzODFjZGVkMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5jcHAKQEAg
LTM0LDYgKzM0LDggQEAgV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50OjpXZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0QWdlbnQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXQKIHsKIH0KIAorV2ViUGFnZUlu
c3BlY3RvclRhcmdldEFnZW50Ojp+V2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50KCkgPSBkZWZh
dWx0OworCiBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgV2ViUGFnZUluc3BlY3RvclRhcmdl
dEFnZW50Ojpmcm9udGVuZENoYW5uZWwoKQogewogICAgIHJldHVybiAqdGhpczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50LmgK
aW5kZXggOTM4YmZkMDBhOWEwZWQ0OWEyOWJhMzUyMzU3M2Q1NDY0MDZiYzhiZS4uOTYzZjljM2Nj
Y2VhNTQ4N2E0Y2UyOTNlYzVlMDgzYThjYzhiNTE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50LmgKQEAgLTMzLDE2ICsz
MywxNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRB
Z2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvclRhcmdldEFnZW50LCBwdWJs
aWMgSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwgewogcHVibGljOgogICAgIFdlYlBhZ2VJbnNw
ZWN0b3JUYXJnZXRBZ2VudChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyJiwgSW5zcGVjdG9yOjpC
YWNrZW5kRGlzcGF0Y2hlciYpOwotICAgIHZpcnR1YWwgfldlYlBhZ2VJbnNwZWN0b3JUYXJnZXRB
Z2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdl
bnQoKTsKKworICAgIC8vIEluc3BlY3RvclRhcmdldEFnZW50CisgICAgSW5zcGVjdG9yOjpGcm9u
dGVuZENoYW5uZWwmIGZyb250ZW5kQ2hhbm5lbCgpOworCisgICAgLy8gRnJvbnRlbmRDaGFubmVs
CisgICAgSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWw6OkNvbm5lY3Rpb25UeXBlIGNvbm5lY3Rp
b25UeXBlKCkgY29uc3Q7CisgICAgdm9pZCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3Ry
aW5nJik7CiAKIHByaXZhdGU6Ci0gICAgLy8gSW5zcGVjdG9yOjpJbnNwZWN0b3JUYXJnZXRBZ2Vu
dAotICAgIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwoKSBmaW5h
bDsKLQotICAgIC8vIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsCi0gICAgSW5zcGVjdG9yOjpG
cm9udGVuZENoYW5uZWw6OkNvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBlKCkgY29uc3QgZmlu
YWw7Ci0gICAgdm9pZCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJikgZmluYWw7
Ci0KICAgICBJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyJiBtX3JvdXRlcjsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377306</attachid>
            <date>2019-08-26 18:51:41 -0700</date>
            <delta_ts>2019-08-26 18:55:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200959-20190826185140.patch</filename>
            <type>text/plain</type>
            <size>130610</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJhYWI4NmI0ZWRkYzMzYzRiODczMDg5ZjlhZjBm
ZmI2OTM3NWY0YTQuLjM2NmQ2MzA0NGY0NzY0MWYxM2FhOWQxN2IwODU0NjUzMzYwMjkzNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA4LTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1
c2UgbW9yZSBDKysga2V5d29yZHMgZm9yIGRlZmluaW5nIGFnZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICAtIG1ha2UgY29uc3RydWN0b3JzIGBw
cm90ZWN0ZWRgIHdoZW4gdGhlIGFnZW50IGlzbid0IG1lYW50IHRvIGJlIGNvbnN0cnVjdGVkIGRp
cmVjdGx5CisgICAgICAgICAtIGFkZCBgdmlydHVhbGAgZGVzdHJ1Y3RvcnMgdGhhdCBhcmUgZGVm
aW5lZCBpbiB0aGUgKi5jcHAgc28gZm9yd2FyZC1kZWNsYXJhdGlvbnMgd29yaworICAgICAgICAg
LSB1c2UgYGZpbmFsYCB3aGVyZXZlciBwb3NzaWJsZQorICAgICAgICAgLSBhZGQgY29tbWVudHMg
dG8gaW5kaWNhdGUgd2hlcmUgYW55IHZpcnR1YWwgZnVuY3Rpb25zIGNvbWUgZnJvbQorCisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQXVkaXRBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2Vu
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3Bw
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50
LmNwcDoKKwogMjAxOS0wOC0yNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5j
b20+CiAKICAgICAgICAgW0pTQ10gRW5zdXJlIHg/LnkgPz8geiBpcyBmYXN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNjZiN2U5YmI5Nzg0MzQ5ODUzYzgyMzE1MDExNGEyY2NjOTYzYjVjYy4uMzY4ZTVmM2FhNzlk
YmM4NWI1NGI1OTZkYmE5MzAzNmZmYThjYTJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBA
CisyMDE5LTA4LTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiB1c2UgbW9yZSBDKysga2V5d29yZHMgZm9yIGRlZmluaW5nIGFnZW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICAtIG1h
a2UgY29uc3RydWN0b3JzIGBwcm90ZWN0ZWRgIHdoZW4gdGhlIGFnZW50IGlzbid0IG1lYW50IHRv
IGJlIGNvbnN0cnVjdGVkIGRpcmVjdGx5CisgICAgICAgICAtIGFkZCBgdmlydHVhbGAgZGVzdHJ1
Y3RvcnMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgKi5jcHAgc28gZm9yd2FyZC1kZWNsYXJhdGlv
bnMgd29yaworICAgICAgICAgLSB1c2UgYGZpbmFsYCB3aGVyZXZlciBwb3NzaWJsZQorICAgICAg
ICAgLSBhZGQgY29tbWVudHMgdG8gaW5kaWNhdGUgd2hlcmUgYW55IHZpcnR1YWwgZnVuY3Rpb25z
IGNvbWUgZnJvbQorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDUFVQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDUFVQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
U1NBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNB
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQu
Y3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHA6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1l
bGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dl
YkhlYXBBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50LmNw
cDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VOZXR3b3JrQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2Uv
UGFnZU5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1
bnRpbWVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2Vydmlj
ZVdvcmtlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2Vydmlj
ZVdvcmtlckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3Jr
ZXJBdWRpdEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
QXVkaXRBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
Q29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
Q29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29y
a2VyTmV0d29ya0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29y
a2VyTmV0d29ya0FnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9X
b3JrZXJSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9X
b3JrZXJSdW50aW1lQWdlbnQuY3BwOgorCiAyMDE5LTA4LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbjogSVRQIHN0YXJ0ZWQgZG9pbmcgYSBs
b3QgbW9yZSBJUEMgYWZ0ZXIgaXRzIGxvZ2ljIHdhcyBtb3ZlZCB0byB0aGUgbmV0d29yayBwcm9j
ZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGZiNWNkZGE4MzdkYTdkYmFjNTIwOTgwMGFmODE3Mjg5NzFjNmM1ZmIu
LjU2MDU3ZDhhZjRmNjEwOTE2NWEwOTU0ZTdiMTNmZjU3OWYwOTE1ZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTktMDgtMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHVzZSBtb3JlIEMrKyBrZXl3b3JkcyBmb3IgZGVm
aW5pbmcgYWdlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDA5NTkKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAg
ICAgICAgIC0gbWFrZSBjb25zdHJ1Y3RvcnMgYHByb3RlY3RlZGAgd2hlbiB0aGUgYWdlbnQgaXNu
J3QgbWVhbnQgdG8gYmUgY29uc3RydWN0ZWQgZGlyZWN0bHkKKyAgICAgICAgIC0gYWRkIGB2aXJ0
dWFsYCBkZXN0cnVjdG9ycyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSAqLmNwcCBzbyBmb3J3YXJk
LWRlY2xhcmF0aW9ucyB3b3JrCisgICAgICAgICAtIHVzZSBgZmluYWxgIHdoZXJldmVyIHBvc3Np
YmxlCisgICAgICAgICAtIGFkZCBjb21tZW50cyB0byBpbmRpY2F0ZSB3aGVyZSBhbnkgdmlydHVh
bCBmdW5jdGlvbnMgY29tZSBmcm9tCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZUluc3Bl
Y3RvclRhcmdldEFnZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JU
YXJnZXRBZ2VudC5jcHA6CisKIDIwMTktMDgtMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uOiBJVFAgc3RhcnRlZCBkb2luZyBhIGxvdCBtb3Jl
IElQQyBhZnRlciBpdHMgbG9naWMgd2FzIG1vdmVkIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckFnZW50LmNwcAppbmRleCA0MTdlNzc1ZmI4MDI0OWMwNDAzMTM3YTgyNzgyMTM3MzI3ZDMz
MmI0Li42YWFhMjdiMWJhMDBkNzY5ZmU2ZDVlNDRiZWFhZDBiODFjYjBmZTkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuY3BwCkBAIC00NSw2ICs0NSw4IEBAIEluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JBZ2Vu
dChBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckFnZW50Ojp+SW5zcGVj
dG9yQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBZ2VudC5oCmluZGV4IDY4N2JmNzUxMjIyODkwNTE0ZTg0ZDk5YTg4ZGY1Njk4ZWZl
YTFmOTEuLjhjNGY4Y2NmM2VhN2Q5MTFiYWZjM2JkODY3Y2Q0ZWZjMGQ2YmY1NWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuaApAQCAtNDcsMTYgKzQ3LDIwIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3Bl
Y3RvckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljCiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQWdlbnQoQWdl
bnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yQWdlbnQoKSA9IGRlZmF1bHQ7Cisg
ICAgdmlydHVhbCB+SW5zcGVjdG9yQWdlbnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIq
KTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFz
b24pOwogCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGluaXRpYWxpemVkKEVy
cm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJI
YW5kbGVyCisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGRpc2FibGUo
RXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGluaXRpYWxpemVkKEVycm9yU3RyaW5nJik7CiAKKyAg
ICAvLyBDb21tYW5kTGluZUFQSQogICAgIHZvaWQgaW5zcGVjdChSZWZQdHI8UHJvdG9jb2w6OlJ1
bnRpbWU6OlJlbW90ZU9iamVjdD4mJiBvYmplY3RUb0luc3BlY3QsIFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYgaGludHMpOworCiAgICAgdm9pZCBldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNvbnN0
IFN0cmluZyYgc2NyaXB0KTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmNwcAppbmRleCBiNzE3Nzk1MTBkMmZmM2Uw
NjBiNDk1NzkwYTM4NDI5YWUyZTg5MWQyLi40OTY1NGU5MmE1ZDY0MWM3YThjYjVmMzg5Mjc3ODY1
YTlmYTI2NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmNwcApAQCAtNDgsNiArNDgsOCBA
QCBJbnNwZWN0b3JBdWRpdEFnZW50OjpJbnNwZWN0b3JBdWRpdEFnZW50KEFnZW50Q29udGV4dCYg
Y29udGV4dCkKIHsKIH0KIAorSW5zcGVjdG9yQXVkaXRBZ2VudDo6fkluc3BlY3RvckF1ZGl0QWdl
bnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yQXVkaXRBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQXVkaXRBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oCmluZGV4IGFiYWVmODYyMTQ5NWFlZDZkNGU1NTliMjg5
MTMzYzJmOWNlN2MzNWMuLmE1NjE0YzVlN2I0YzcwNzFkNTZlNmFjYmZhMzUwYzg1N2I0NTY0NTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckF1ZGl0QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmgKQEAgLTQzLDExICs0MywxMSBAQCBjbGFzcyBKU19F
WFBPUlRfUFJJVkFURSBJbnNwZWN0b3JBdWRpdEFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50
QmFzZSwgcHVibGljCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQXVkaXRBZ2Vu
dCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+
SW5zcGVjdG9yQXVkaXRBZ2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JB
dWRpdEFnZW50KCk7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVy
Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNj
b25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsK
IAogICAgIC8vIEF1ZGl0QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCiAgICAgdm9pZCBzZXR1cChF
cnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBmaW5hbDsKQEAgLTU3
LDcgKzU3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQWN0aXZlQXVkaXQoKSBjb25zdDsKIAog
cHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEluc3BlY3RvckF1ZGl0QWdlbnQoQWdlbnRDb250ZXh0
Jik7CisgICAgSW5zcGVjdG9yQXVkaXRBZ2VudChBZ2VudENvbnRleHQmKTsKIAogICAgIEluamVj
dGVkU2NyaXB0TWFuYWdlciYgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKCkgeyByZXR1cm4gbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5k
ZXggNWQyNGM2OWU2YmY0NWQ3MmZiMGJkYTUzYjRjNDU3NTk4NjEzY2JjYi4uNzYyNjMwZDMyMTcz
ZmE5YTg4NDkwNzQ0OTRiZTA0M2JlN2M1MGIyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCkBAIC01MCw2ICs1MCw4IEBAIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6SW5zcGVjdG9y
Q29uc29sZUFnZW50KEFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorSW5zcGVjdG9yQ29u
c29sZUFnZW50Ojp+SW5zcGVjdG9yQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIElu
c3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5k
Um91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuaAppbmRleCA1NTM4N2M0OTdlYWU5YjE3YjkyNWNhNzEzZjZlY2U4M2Q0YTg0YjdmLi5jODU3
Y2RkZmViZDc3MTMzZDkzMjFkMGJjZmFjOTdmMGExMjIzOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25z
b2xlQWdlbnQuaApAQCAtNTMsMTggKzUzLDIyIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIElu
c3BlY3RvckNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpCiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQ29uc29s
ZUFnZW50KEFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvckNvbnNvbGVBZ2Vu
dCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDb25zb2xlQWdlbnQoKTsKIAot
ICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFj
a2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzY2FyZFZh
bHVlcygpIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNo
ZXIqKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nv
bm5lY3RSZWFzb24pIGZpbmFsOworICAgIHZvaWQgZGlzY2FyZFZhbHVlcygpIGZpbmFsOworCisg
ICAgLy8gQ29uc29sZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVy
cm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7
CisgICAgdm9pZCBjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBnZXRMb2dnaW5nQ2hhbm5lbHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxQ
cm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbD4+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRMb2dn
aW5nQ2hhbm5lbExldmVsKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjaGFubmVsLCBjb25z
dCBTdHJpbmcmIGxldmVsKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0SW5zcGVjdG9ySGVhcEFn
ZW50KEluc3BlY3RvckhlYXBBZ2VudCogYWdlbnQpIHsgbV9oZWFwQWdlbnQgPSBhZ2VudDsgfQog
Ci0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2Fi
bGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyTWVzc2FnZXMoRXJyb3JT
dHJpbmcmKSBvdmVycmlkZTsKLQogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5hYmxlZDsgfQogICAgIHZvaWQgcmVzZXQoKTsKIApAQCAtNzcsOSArODEsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwpOwog
ICAgIHZvaWQgY291bnRSZXNldChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgbGFiZWwp
OwogCi0gICAgdm9pZCBnZXRMb2dnaW5nQ2hhbm5lbHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNP
Tjo6QXJyYXlPZjxQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbD4+Jikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBzZXRMb2dnaW5nQ2hhbm5lbExldmVsKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBj
aGFubmVsLCBjb25zdCBTdHJpbmcmIGxldmVsKSBvdmVycmlkZTsKLQogcHJvdGVjdGVkOgogICAg
IHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPENvbnNvbGVNZXNzYWdlPik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNTg5MTNjNjA1OTk1MjIx
NTk5NDUyMWJjYmM1YmNkMzNlMWY5ZDdmOS4uNjFmOTdhNWNlNzZiNGNhNzhjYWU4NjdhNThmOGU3
YTFkZmFhODllZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTcxLDkg
KzcxLDcgQEAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudChB
Z2VudENvbnRleHQmIGNvbnRleHQpCiAgICAgY2xlYXJCcmVha0RldGFpbHMoKTsKIH0KIAotSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6fkluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKQotewotfQorSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6fkluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSA9IGRlZmF1bHQ7
CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKQogewpAQCAtODEsOCArNzks
NyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbgogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhc29u
KQogewotICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBEaXNjb25uZWN0UmVhc29u
OjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7Ci0gICAgZGlzYWJsZShza2lwUmVjb21waWxlKTsK
KyAgICBkaXNhYmxlKHJlYXNvbiA9PSBEaXNjb25uZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXRE
ZXN0cm95ZWQpOwogfQogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggMjNhOGRhMDEzZGI5NDVhMjMzNDNlZTAw
NWJjYjI1NDJjZjE5MjY5MS4uYWNkNGRjZDQ1YjU3YWZmODYwZWI2OTg4M2JjYmE4YzBiOWYzZTBm
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtNDksMTQgKzQ5LDE1IEBAIGNs
YXNzIEluamVjdGVkU2NyaXB0TWFuYWdlcjsKIGNsYXNzIFNjcmlwdERlYnVnU2VydmVyOwogdHlw
ZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgU2Ny
aXB0RGVidWdMaXN0ZW5lciwgcHVibGljIERlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVy
IHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgRGVidWdnZXJCYWNrZW5kRGlzcGF0Y2hlckhh
bmRsZXIsIHB1YmxpYyBTY3JpcHREZWJ1Z0xpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgY2hhciogYmFja3RyYWNlT2JqZWN0R3JvdXA7
Ci0KICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCk7CiAKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogYmFja3RyYWNlT2JqZWN0R3JvdXA7CisKKyAgICAvLyBJbnNwZWN0b3JBZ2Vu
dEJhc2UKICAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRl
ciosIEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CiAgICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIApAQCAtODQsNiArODUsMTYg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UGF1c2VGb3JJbnRlcm5hbFNjcmlwdHMoRXJyb3JTdHJp
bmcmLCBib29sIHNob3VsZFBhdXNlKSBmaW5hbDsKICAgICB2b2lkIGV2YWx1YXRlT25DYWxsRnJh
bWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcm
IGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGluY2x1
ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11
dGVDb25zb2xlLCBjb25zdCBib29sKiByZXR1cm5CeVZhbHVlLCBjb25zdCBib29sKiBnZW5lcmF0
ZVByZXZpZXcsIGNvbnN0IGJvb2wqIHNhdmVSZXN1bHQsIGNvbnN0IGJvb2wqIGVtdWxhdGVVc2Vy
R2VzdHVyZSwgUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQs
IE9wdGlvbmFsPGJvb2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5k
ZXgpIG92ZXJyaWRlOwogCisgICAgLy8gU2NyaXB0RGVidWdMaXN0ZW5lcgorICAgIHZvaWQgZGlk
UGFyc2VTb3VyY2UoSlNDOjpTb3VyY2VJRCwgY29uc3QgU2NyaXB0JikgZmluYWw7CisgICAgdm9p
ZCBmYWlsZWRUb1BhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGRh
dGEsIGludCBmaXJzdExpbmUsIGludCBlcnJvckxpbmUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxSdW5NaWNyb3Rhc2soKSBmaW5hbDsKKyAgICB2b2lk
IGRpZFJ1bk1pY3JvdGFzaygpIGZpbmFsOworICAgIHZvaWQgZGlkUGF1c2UoSlNDOjpFeGVjU3Rh
dGUmLCBKU0M6OkpTVmFsdWUgY2FsbEZyYW1lcywgSlNDOjpKU1ZhbHVlIGV4Y2VwdGlvbk9yQ2F1
Z2h0VmFsdWUpIGZpbmFsOworICAgIHZvaWQgZGlkQ29udGludWUoKSBmaW5hbDsKKyAgICB2b2lk
IGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChpbnQgYnJlYWtwb2ludEFjdGlvbklkZW50aWZpZXIpIGZp
bmFsOworICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvblByb2JlKEpTQzo6RXhlY1N0YXRlJiwgY29u
c3QgU2NyaXB0QnJlYWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIGJhdGNoSWQsIHVuc2lnbmVkIHNh
bXBsZUlkLCBKU0M6OkpTVmFsdWUgc2FtcGxlKSBmaW5hbDsKKwogICAgIGJvb2wgaXNQYXVzZWQo
KSBjb25zdDsKICAgICBib29sIGJyZWFrcG9pbnRzQWN0aXZlKCkgY29uc3Q7CiAKQEAgLTEzMSw3
ICsxNDIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSA9
IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Fi
bGUoYm9vbCBza2lwUmVjb21waWxlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShib29sIGlz
QmVpbmdEZXN0cm95ZWQpOwogCiAgICAgdmlydHVhbCBTdHJpbmcgc291cmNlTWFwVVJMRm9yU2Ny
aXB0KGNvbnN0IFNjcmlwdCYpOwogCkBAIC0xNDEsMTYgKzE1Miw2IEBAIHByb3RlY3RlZDoKIHBy
aXZhdGU6CiAgICAgUmVmPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkRlYnVnZ2VyOjpDYWxsRnJh
bWU+PiBjdXJyZW50Q2FsbEZyYW1lcyhjb25zdCBJbmplY3RlZFNjcmlwdCYpOwogCi0gICAgLy8g
SlNDOjpTY3JpcHREZWJ1Z0xpc3RlbmVyCi0gICAgdm9pZCBkaWRQYXJzZVNvdXJjZShKU0M6OlNv
dXJjZUlELCBjb25zdCBTY3JpcHQmKSBmaW5hbDsKLSAgICB2b2lkIGZhaWxlZFRvUGFyc2VTb3Vy
Y2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwg
aW50IGVycm9yTGluZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIGZpbmFsOwotICAgIHZv
aWQgd2lsbFJ1bk1pY3JvdGFzaygpIGZpbmFsOwotICAgIHZvaWQgZGlkUnVuTWljcm90YXNrKCkg
ZmluYWw7Ci0gICAgdm9pZCBkaWRQYXVzZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBj
YWxsRnJhbWVzLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uT3JDYXVnaHRWYWx1ZSkgZmluYWw7Ci0g
ICAgdm9pZCBkaWRDb250aW51ZSgpIGZpbmFsOwotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvblNv
dW5kKGludCBicmVha3BvaW50QWN0aW9uSWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBicmVh
a3BvaW50QWN0aW9uUHJvYmUoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTY3JpcHRCcmVha3BvaW50
QWN0aW9uJiwgdW5zaWduZWQgYmF0Y2hJZCwgdW5zaWduZWQgc2FtcGxlSWQsIEpTQzo6SlNWYWx1
ZSBzYW1wbGUpIGZpbmFsOwotCiAgICAgdm9pZCByZXNvbHZlQnJlYWtwb2ludChjb25zdCBTY3Jp
cHQmLCBKU0M6OkJyZWFrcG9pbnQmKTsKICAgICB2b2lkIHNldEJyZWFrcG9pbnQoSlNDOjpCcmVh
a3BvaW50JiwgYm9vbCYgZXhpc3RpbmcpOyAgICAKICAgICB2b2lkIGRpZFNldEJyZWFrcG9pbnQo
Y29uc3QgSlNDOjpCcmVha3BvaW50JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU2NyaXB0QnJlYWtw
b2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAKaW5kZXggYzE0NzM2ODlmYzBmMWI3ZGNi
MmY1Y2Y1YTU2YzRiN2U5ZGMzZDJjNy4uMDlkNjRlYjY4OWMzNzg3NTYzNDRhOTk4MTk3NWZkOWJk
MmI4YmIyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3BwCkBAIC00OSw2ICs0OSw4IEBAIElu
c3BlY3RvckhlYXBBZ2VudDo6SW5zcGVjdG9ySGVhcEFnZW50KEFnZW50Q29udGV4dCYgY29udGV4
dCkKIHsKIH0KIAorSW5zcGVjdG9ySGVhcEFnZW50Ojp+SW5zcGVjdG9ySGVhcEFnZW50KCkgPSBk
ZWZhdWx0OworCiB2b2lkIEluc3BlY3RvckhlYXBBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVh
cEFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JIZWFwQWdlbnQuaAppbmRleCAyYmI5MTZmMTJkMTFhMzFiZjAzYjc2ZDkyOGYwNjA3YTY5NGUw
ZjcwLi45YzkzNjY3M2ZiM2U3NzAwZGYxNDhlN2FmYmQyODdhNWYyY2I4YzcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdl
bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JIZWFwQWdlbnQuaApAQCAtNDcsMTAgKzQ3LDExIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRF
IEluc3BlY3RvckhlYXBBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBI
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9ySGVh
cEFnZW50KEFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvckhlYXBBZ2VudCgp
ID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JIZWFwQWdlbnQoKTsKIAotICAgIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERp
c3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFz
ZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwg
QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCiAgICAgLy8gSGVhcEJhY2tlbmRE
aXNwYXRjaGVySGFuZGxlcgogICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7
CkBAIC02Miw5ICs2Myw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFByZXZpZXcoRXJyb3JTdHJp
bmcmLCBpbnQgaGVhcE9iamVjdElkLCBPcHRpb25hbDxTdHJpbmc+JiByZXN1bHRTdHJpbmcsIFJl
ZlB0cjxQcm90b2NvbDo6RGVidWdnZXI6OkZ1bmN0aW9uRGV0YWlscz4mLCBSZWZQdHI8UHJvdG9j
b2w6OlJ1bnRpbWU6Ok9iamVjdFByZXZpZXc+JikgZmluYWw7CiAgICAgdm9pZCBnZXRSZW1vdGVP
YmplY3QoRXJyb3JTdHJpbmcmLCBpbnQgaGVhcE9iamVjdElkLCBjb25zdCBTdHJpbmcqIG9wdGlv
bmFsT2JqZWN0R3JvdXAsIFJlZlB0cjxQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYg
cmVzdWx0KSBmaW5hbDsKIAotICAgIC8vIEhlYXBPYnNlcnZlcgotICAgIHZvaWQgd2lsbEdhcmJh
Z2VDb2xsZWN0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRHYXJiYWdlQ29sbGVjdChKU0M6OkNv
bGxlY3Rpb25TY29wZSkgb3ZlcnJpZGU7CisgICAgLy8gSlNDOjpIZWFwT2JzZXJ2ZXIKKyAgICB2
b2lkIHdpbGxHYXJiYWdlQ29sbGVjdCgpIGZpbmFsOworICAgIHZvaWQgZGlkR2FyYmFnZUNvbGxl
Y3QoSlNDOjpDb2xsZWN0aW9uU2NvcGUpIGZpbmFsOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBj
bGVhckhlYXBTbmFwc2hvdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKaW5kZXggMTZh
N2Q5ZjQ2MjRhNDI3M2FmNjEyZGEyYzU5ODdjNjVhMWZjYTI0Zi4uZmExYzQwYzgxNzJjMmVhMDI4
NGIwMzg1MzRhNWUwZDhlMmM2YmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKQEAg
LTUzLDkgKzUzLDExIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvclJ1bnRpbWVB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpCiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SW5zcGVjdG9yUnVudGltZUFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNr
ZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVjdG9yQWdl
bnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpG
cm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKKyAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIGZp
bmFsOwogCisgICAgLy8gUnVudGltZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgogICAgIHZvaWQg
ZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGUgeyBtX2VuYWJsZWQgPSB0cnVlOyB9CiAgICAg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGUgeyBtX2VuYWJsZWQgPSBmYWxzZTsg
fQogICAgIHZvaWQgcGFyc2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24s
IFByb3RvY29sOjpSdW50aW1lOjpTeW50YXhFcnJvclR5cGUqIHJlc3VsdCwgT3B0aW9uYWw8U3Ry
aW5nPiYgbWVzc2FnZSwgUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpFcnJvclJhbmdlPiYpIGZp
bmFsOwpAQCAtNzAsMTIgKzcyLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNhdmVSZXN1bHQoRXJy
b3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIGNhbGxBcmd1bWVudCwgY29uc3QgaW50KiBl
eGVjdXRpb25Db250ZXh0SWQsIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5kZXgpIGZpbmFs
OwogICAgIHZvaWQgc2V0U2F2ZWRSZXN1bHRBbGlhcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyogYWxpYXMpIGZpbmFsOwogICAgIHZvaWQgcmVsZWFzZU9iamVjdEdyb3VwKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCkgZmluYWw7Ci0gICAgdm9pZCBnZXRSdW50aW1l
VHlwZXNGb3JWYXJpYWJsZXNBdE9mZnNldHMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJh
eSYgbG9jYXRpb25zLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6UnVudGltZTo6VHlw
ZURlc2NyaXB0aW9uPj4mKSBvdmVycmlkZTsKLSAgICB2b2lkIGVuYWJsZVR5cGVQcm9maWxlcihF
cnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZVR5cGVQcm9maWxlcihFcnJv
clN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5hYmxlQ29udHJvbEZsb3dQcm9maWxlcihF
cnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZUNvbnRyb2xGbG93UHJvZmls
ZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldEJhc2ljQmxvY2tzKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBpbl9zb3VyY2VJRCwgUmVmUHRyPEpTT046OkFycmF5T2Y8
UHJvdG9jb2w6OlJ1bnRpbWU6OkJhc2ljQmxvY2s+PiYgb3V0X2Jhc2ljQmxvY2tzKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGdldFJ1bnRpbWVUeXBlc0ZvclZhcmlhYmxlc0F0T2Zmc2V0cyhFcnJvclN0
cmluZyYsIGNvbnN0IEpTT046OkFycmF5JiBsb2NhdGlvbnMsIFJlZlB0cjxKU09OOjpBcnJheU9m
PFByb3RvY29sOjpSdW50aW1lOjpUeXBlRGVzY3JpcHRpb24+PiYpIGZpbmFsOworICAgIHZvaWQg
ZW5hYmxlVHlwZVByb2ZpbGVyKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxl
VHlwZVByb2ZpbGVyKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBlbmFibGVDb250cm9s
Rmxvd1Byb2ZpbGVyKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlQ29udHJv
bEZsb3dQcm9maWxlcihFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgZ2V0QmFzaWNCbG9j
a3MoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGluX3NvdXJjZUlELCBSZWZQdHI8SlNPTjo6
QXJyYXlPZjxQcm90b2NvbDo6UnVudGltZTo6QmFzaWNCbG9jaz4+JiBvdXRfYmFzaWNCbG9ja3Mp
IGZpbmFsOwogCiBwcm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50KEFnZW50Q29u
dGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcAppbmRl
eCBjYmFkODFkNjk5NDQwYTczM2IwYWYwNDE2OTRhODZjYTllNmU4ZWYwLi40OTFlNDk5NDQ0YzQ0
ZjkzNjUzYWUzYTc0YjIxNDljMzI1YWVkM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3Jp
cHRQcm9maWxlckFnZW50LmNwcApAQCAtNDUsOSArNDUsNyBAQCBJbnNwZWN0b3JTY3JpcHRQcm9m
aWxlckFnZW50OjpJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KEFnZW50Q29udGV4dCYgY29u
dGV4dAogewogfQogCi1JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9yU2Ny
aXB0UHJvZmlsZXJBZ2VudCgpCi17Ci19CitJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp+
SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudCgpID0gZGVmYXVsdDsKIAogdm9pZCBJbnNwZWN0
b3JTY3JpcHRQcm9maWxlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRl
bmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3Jp
cHRQcm9maWxlckFnZW50LmgKaW5kZXggOGEyODdkOGM1NjFjNmM3ZmRlYjQyYTY1OGM3ODBmMjM3
OTM3M2Y5YS4uNmQ0MzI3ZjM0MzBjMTM4ZjZkOWU3NDIwYmQ1OWI5ZDRjOGE3OGJmMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2Ny
aXB0UHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaApAQCAtNDYsMTcgKzQ2LDE4IEBA
IHB1YmxpYzoKICAgICBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KEFnZW50Q29udGV4dCYp
OwogICAgIHZpcnR1YWwgfkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQoKTsKIAotICAgIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERp
c3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFz
ZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwg
QmFja2VuZERpc3BhdGNoZXIqKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pOwogCiAgICAgLy8gU2NyaXB0UHJvZmlsZXJCYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmLCBjb25z
dCBib29sKiBpbmNsdWRlU2FtcGxlcykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wVHJhY2tpbmco
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJp
bmcmLCBjb25zdCBib29sKiBpbmNsdWRlU2FtcGxlcyk7CisgICAgdm9pZCBzdG9wVHJhY2tpbmco
RXJyb3JTdHJpbmcmKTsKIAotICAgIC8vIERlYnVnZ2VyOjpQcm9maWxpbmdDbGllbnQKLSAgICBi
b29sIGlzQWxyZWFkeVByb2ZpbGluZygpIGNvbnN0IG92ZXJyaWRlOwotICAgIFNlY29uZHMgd2ls
bEV2YWx1YXRlU2NyaXB0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdChT
ZWNvbmRzLCBKU0M6OlByb2ZpbGluZ1JlYXNvbikgb3ZlcnJpZGU7CisgICAgLy8gSlNDOjpEZWJ1
Z2dlcjo6UHJvZmlsaW5nQ2xpZW50CisgICAgYm9vbCBpc0FscmVhZHlQcm9maWxpbmcoKSBjb25z
dDsKKyAgICBTZWNvbmRzIHdpbGxFdmFsdWF0ZVNjcmlwdCgpOworICAgIHZvaWQgZGlkRXZhbHVh
dGVTY3JpcHQoU2Vjb25kcywgSlNDOjpQcm9maWxpbmdSZWFzb24pOwogCiBwcml2YXRlOgogICAg
IHZvaWQgYWRkRXZlbnQoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMgZW5kVGltZSwgSlNDOjpQ
cm9maWxpbmdSZWFzb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwCmluZGV4IDkzNTA2
OGM3YWUxMTk3MTA1NDRjMWY3Njc5ODIyZGZiNjZlNTZiODcuLmU0M2EzYjhjNWUxYmIyM2I2ZjRk
OGU1NjJjMjQ4NDY1NWZmNjJlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5jcHAKQEAg
LTM3LDYgKzM3LDggQEAgSW5zcGVjdG9yVGFyZ2V0QWdlbnQ6Okluc3BlY3RvclRhcmdldEFnZW50
KEZyb250ZW5kUm91dGVyJiBmcm9udGVuZFJvdXRlciwgQmFja2UKIHsKIH0KIAorSW5zcGVjdG9y
VGFyZ2V0QWdlbnQ6On5JbnNwZWN0b3JUYXJnZXRBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJ
bnNwZWN0b3JUYXJnZXRBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5k
Um91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKQogewogICAgIG1faXNDb25uZWN0ZWQgPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yVGFyZ2V0QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvclRhcmdldEFnZW50LmgKaW5kZXggYzc5OGVlZGNlMmVjNGYxZjRhZjVkYmNm
NjQwYTk0YmMzYzllNGJiZC4uMDBmYzNiMDIxNzM0NGJlNGNkZmY3OTExYzIxMzcxOGM1Yjk1Y2Vl
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yVGFyZ2V0QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oCkBAIC00MCwxNCArNDAsMTIgQEAgY2xhc3Mg
SlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yVGFyZ2V0QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9y
QWdlbnRCYXNlLCBwdWJsaWMKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JUYXJn
ZXRBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgSW5z
cGVjdG9yVGFyZ2V0QWdlbnQoRnJvbnRlbmRSb3V0ZXImLCBCYWNrZW5kRGlzcGF0Y2hlciYpOwot
ICAgIHZpcnR1YWwgfkluc3BlY3RvclRhcmdldEFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1
YWwgfkluc3BlY3RvclRhcmdldEFnZW50KCk7CiAKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UK
ICAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJh
Y2tlbmREaXNwYXRjaGVyKikgZmluYWw7CiAgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgRnJvbnRlbmRD
aGFubmVsJiBmcm9udGVuZENoYW5uZWwoKSA9IDA7Ci0KICAgICAvLyBUYXJnZXRCYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGV4aXN0cyhFcnJvclN0cmluZyYpIGZpbmFsOwogICAg
IHZvaWQgc2VuZE1lc3NhZ2VUb1RhcmdldChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdGFy
Z2V0SWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7CkBAIC01OSw2ICs1NywxMSBAQCBw
dWJsaWM6CiAgICAgLy8gVGFyZ2V0IG1lc3NhZ2VzLgogICAgIHZvaWQgc2VuZE1lc3NhZ2VGcm9t
VGFyZ2V0VG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIHRhcmdldElkLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOwogCitwcm90ZWN0ZWQ6CisgICAgSW5zcGVjdG9yVGFyZ2V0QWdlbnQoRnJvbnRlbmRS
b3V0ZXImLCBCYWNrZW5kRGlzcGF0Y2hlciYpOworCisgICAgdmlydHVhbCBGcm9udGVuZENoYW5u
ZWwmIGZyb250ZW5kQ2hhbm5lbCgpID0gMDsKKwogcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3RU
b1RhcmdldHMoKTsKICAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tVGFyZ2V0cygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RB
dWRpdEFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pT
R2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5jcHAKaW5kZXggODZlNzY3YmEwZGFmZjE3ZjUzMmQwNzVk
YWY2NTVjN2RjZDYxM2Q1OC4uNjlkNzM2ODcxNWZiZGY3YWMzOGQ5YTdjNDA0YWI2MDZjNjdhMWUx
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNH
bG9iYWxPYmplY3RBdWRpdEFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuY3BwCkBAIC00NCw2ICs0NCw4
IEBAIEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudDo6SlNHbG9iYWxPYmplY3RBdWRpdEFnZW50KEpT
QWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCitKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQ6
On5KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoKSA9IGRlZmF1bHQ7CisKIEluamVjdGVkU2NyaXB0
IEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3Ry
aW5nJiBlcnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpCiB7CiAgICAg
aWYgKGV4ZWN1dGlvbkNvbnRleHRJZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQu
aAppbmRleCBjMWNhZDMyMzY5MGQ3YmFiNmUyZjU2MDE5YjRlYmE4MTk3YjQ0ODFjLi5jN2RhMTkz
ZTg4ZDM3MjUwNWQ3OGNjNmJmOTI0NWU1ZDgzMWJjOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dEF1ZGl0QWdlbnQuaApAQCAtMzcsMTAgKzM3LDExIEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0QXVk
aXRBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBdWRpdEFnZW50IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQpOwogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IEpTR2xvYmFsT2JqZWN0QXVkaXRB
Z2VudChKU0FnZW50Q29udGV4dCYpOworICAgIEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudChKU0Fn
ZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudCgpOwog
CiBwcml2YXRlOgotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJv
clN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKKyAgICBJ
bmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBp
bnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CiAKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBtX2ds
b2JhbE9iamVjdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNw
cAppbmRleCA5YjNmMzc5ZDVlNWE0OTBkYmUzNzVjNzJhYzk5ZmE3MjBiOWFjY2VmLi5hMzFkNzBj
ZmQwNDg4ZTU3YmU4NTE4MTYxMTAxYjYwYTI5YjAwMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFs
T2JqZWN0RGVidWdnZXJBZ2VudC5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAgSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dlckFnZW50OjpKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQoSlNBZ2VudENvbnRleHQm
IGNvbnRleHQKIHsKIH0KIAorSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50Ojp+SlNHbG9iYWxP
YmplY3REZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OworCiBJbmplY3RlZFNjcmlwdCBKU0dsb2Jh
bE9iamVjdERlYnVnZ2VyQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYg
ZXJyb3IsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChleGVjdXRp
b25Db250ZXh0SWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKaW5k
ZXggZTJmMzlkYjU5OTgwNDhkYTA3ZmUyZmI3MDk4M2RmMjAxNmRiNmE4Mi4uYTQ2Yjc2YTNlYjZk
M2MzNDM3NDBkZDM3ODZjNDk1YWJjM2NmMmNjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dlckFnZW50LmgKQEAgLTM2LDE4ICszNiwxOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdERl
YnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3REZWJ1
Z2dlckFnZW50KEpTQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yQ29uc29sZUFnZW50Kik7Ci0gICAg
dmlydHVhbCB+SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50KCkgeyB9CisgICAgdmlydHVhbCB+
SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50KCk7CisKKyAgICAvLyBTY3JpcHREZWJ1Z0xpc3Rl
bmVyCisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwgY29uc3Qg
U3RyaW5nJik7CiAKIHByaXZhdGU6Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRG
b3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJy
aWRlOwotCi0gICAgLy8gSlNDOjpTY3JpcHREZWJ1Z0xpc3RlbmVyCi0gICAgdm9pZCBicmVha3Bv
aW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAg
SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3Qg
aW50KiBleGVjdXRpb25Db250ZXh0SWQpOwogCiAgICAgLy8gTk9URTogSmF2YVNjcmlwdCBpbnNw
ZWN0b3IgZG9lcyBub3QgeWV0IG5lZWQgdG8gbXV0ZSBhIGNvbnNvbGUgYmVjYXVzZSBubyBtZXNz
YWdlcwogICAgIC8vIGFyZSBzZW50IHRvIHRoZSBjb25zb2xlIG91dHNpZGUgb2YgdGhlIEFQSSBi
b3VuZGFyeSBvciBjb25zb2xlIG9iamVjdC4KLSAgICB2b2lkIG11dGVDb25zb2xlKCkgZmluYWwg
eyB9Ci0gICAgdm9pZCB1bm11dGVDb25zb2xlKCkgZmluYWwgeyB9CisgICAgdm9pZCBtdXRlQ29u
c29sZSgpIHsgfQorICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIHsgfQogCiAgICAgSW5zcGVjdG9y
Q29uc29sZUFnZW50KiBtX2NvbnNvbGVBZ2VudCB7IG51bGxwdHIgfTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1
bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9K
U0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggM2I3YzNlMjFkMzFjMWMyZjViNmQx
YmEwYzE2ZjQ4ODgzZTZjZjMxNy4uNjU4MmQzMDRhNDc0NzUwNTJjN2VkMTMwNzFmNmM0ODc2MjBl
OGUyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcApAQCAtNDIs
NiArNDIsOCBAQCBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6SlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQoSlNBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0pTR2xvYmFsT2JqZWN0
UnVudGltZUFnZW50Ojp+SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQoKSA9IGRlZmF1bHQ7CisK
IEluamVjdGVkU2NyaXB0IEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50OjppbmplY3RlZFNjcmlw
dEZvckV2YWwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNv
bnRleHRJZCkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWN1dGlvbkNvbnRleHRJZCwgIWV4ZWN1
dGlvbkNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaAppbmRl
eCA2NmNkMmQyYWIxZjNjZDk4ZTY5MDRiYTM2MTRkMGRiYTdkOGE1Zjk0Li5lYTg1NzRlNWFlZjhm
MjJkNzExNWUzMTM1YWE2ZmJkNTkyNGJhNDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50LmgKQEAgLTM5LDE1ICszOSwxNiBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdFJ1bnRp
bWVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JSdW50aW1lQWdlbnQgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50KEpTQWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVhbCB+SlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQoKTsKIAotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJv
clN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKK3ByaXZh
dGU6CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5n
JiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwogCiAgICAgLy8gTk9URTogSmF2YVNj
cmlwdCBpbnNwZWN0b3IgZG9lcyBub3QgeWV0IG5lZWQgdG8gbXV0ZSBhIGNvbnNvbGUgYmVjYXVz
ZSBubyBtZXNzYWdlcwogICAgIC8vIGFyZSBzZW50IHRvIHRoZSBjb25zb2xlIG91dHNpZGUgb2Yg
dGhlIEFQSSBib3VuZGFyeSBvciBjb25zb2xlIG9iamVjdC4KLSAgICB2b2lkIG11dGVDb25zb2xl
KCkgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGUgeyB9Cisg
ICAgdm9pZCBtdXRlQ29uc29sZSgpIHsgfQorICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIHsgfQog
Ci1wcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxSdW50aW1lRnJvbnRlbmREaXNwYXRjaGVy
PiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8UnVudGltZUJhY2tlbmREaXNwYXRj
aGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOwogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xv
YmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IGVjMTY1
YjdkOTdkMTRiOTAwZTk3N2QwM2U1ZDc3NTQ3NzliOGU5ZmIuLjY0NGEyZGZiN2UzOTFkNzBmZTli
OTVjZTViMmY2YzEwMzE1ZmZjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5j
cHAKQEAgLTUwLDYgKzUwLDggQEAgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYKIHsKIH0KIAorSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp+SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6
ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3Bh
dGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKaW5kZXggMzkyMjE0
OTRhYzY2MGU5MTU5MTczOWE0YTQyNmU3YzA5ZDMxN2Y5Ny4uZjE2MTg0ZmE2NDc0NDk3YmJmNGFh
MzgwMWViNjlkOTc0ZWQxYjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCkBA
IC00NiwyMiArNDYsMjMgQEAgY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50IGZp
bmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEkKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFz
ZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRl
bmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwor
CisgICAgLy8gQXBwbGljYXRpb25DYWNoZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZv
aWQgZW5hYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7
CisgICAgdm9pZCBnZXRGcmFtZXNXaXRoTWFuaWZlc3RzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpT
T046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6RnJhbWVX
aXRoTWFuaWZlc3Q+PiYgcmVzdWx0KTsKKyAgICB2b2lkIGdldE1hbmlmZXN0Rm9yRnJhbWUoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIFN0cmluZyogbWFuaWZlc3RVUkwpOwor
ICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZUZvckZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBmcmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25D
YWNoZTo6QXBwbGljYXRpb25DYWNoZT4mKTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbgogICAgIHZvaWQgdXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhGcmFtZSopOwogICAg
IHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogCi0gICAgLy8gQXBwbGljYXRpb25DYWNoZUJh
Y2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBnZXRGcmFtZXNXaXRoTWFuaWZlc3RzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5
T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6RnJhbWVXaXRoTWFuaWZl
c3Q+PiYgcmVzdWx0KSBvdmVycmlkZTsKLSAgICB2b2lkIGdldE1hbmlmZXN0Rm9yRnJhbWUoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIFN0cmluZyogbWFuaWZlc3RVUkwpIG92
ZXJyaWRlOwotICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZUZvckZyYW1lKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBw
bGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZT4mKSBvdmVycmlkZTsKLQogcHJpdmF0ZToK
ICAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRp
b25DYWNoZT4gYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IFZlY3RvcjxBcHBs
aWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvPiYsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVI
b3N0OjpDYWNoZUluZm8mKTsKICAgICBSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBcHBsaWNhdGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U+PiBidWlsZEFy
cmF5Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlcyhjb25zdCBWZWN0b3I8QXBwbGljYXRpb25D
YWNoZUhvc3Q6OlJlc291cmNlSW5mbz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQuY3BwCmluZGV4
IDExNjI0ZTI0MDk0NjRmYzFlMWU2NWE2OTk4ZGJkMWIwNjgyZjBiMmMuLmFmY2FlNmVhMTIwYTI3
ZTAzZDg4YjQ2YTNkOTFjNzNiMTRiMjVmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50LmNwcApA
QCAtNDQsNiArNDQsOCBAQCBJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50OjpJbnNwZWN0b3JDUFVQ
cm9maWxlckFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3Rv
ckNQVVByb2ZpbGVyQWdlbnQ6On5JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50KCkgPSBkZWZhdWx0
OworCiB2b2lkIEluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsKICAgICBtX2lu
c3RydW1lbnRpbmdBZ2VudHMuc2V0SW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudCh0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJv
ZmlsZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
UFVQcm9maWxlckFnZW50LmgKaW5kZXggYTU0MmFiZjE1Zjk0ZTZmYjM2MDllYmYxNTRlOTA3NWY2
YmQ1OTgyMC4uNWJmYWJmYWEzNDE3NGUzZWZiZjhiMWJmOTY4MDg3NjQxNThhNWQ0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxl
ckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
UFVQcm9maWxlckFnZW50LmgKQEAgLTQxLDE0ICs0MSwxNSBAQCBjbGFzcyBJbnNwZWN0b3JDUFVQ
cm9maWxlckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIElu
c3BlYwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3Rv
ckNQVVByb2ZpbGVyQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3Bl
Y3RvckNQVVByb2ZpbGVyQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+SW5zcGVjdG9y
Q1BVUHJvZmlsZXJBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNo
ZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVjdG9yQWdl
bnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpG
cm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKKyAgICB2b2lk
IHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNv
bik7CiAKICAgICAvLyBDUFVQcm9maWxlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZv
aWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcFRy
YWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydFRyYWNraW5nKEVy
cm9yU3RyaW5nJik7CisgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKTsKIAogcHJp
dmF0ZToKICAgICB2b2lkIGNvbGxlY3RTYW1wbGUoY29uc3QgUmVzb3VyY2VVc2FnZURhdGEmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NT
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAKaW5kZXggZjRjM2ZmNWI2NDczZjAyZjJhMTEzZWY5Mzk2Nzg4ZjNhMjgxMjZkYy4u
N2Y3MTNjZjIyMWY5OGQ4MTc5MmVmZjQ2Njc0YjM5YjNkNzEyMzZlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAg
LTMwMiw2ICszMDIsOCBAQCBJbnNwZWN0b3JDU1NBZ2VudDo6SW5zcGVjdG9yQ1NTQWdlbnQoV2Vi
QWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JDU1NBZ2VudDo6fkluc3Bl
Y3RvckNTU0FnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IDFkZjc5NThhMTJjMzVi
Y2U1MTMxNWZkNjI5OWEwMTJhMDQ0OWE5NzkuLjU2ZGNmYTMzMGM0YjkzMTI0ZjMyNmY0YmFiMjc5
NGVkODI1OGJkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTUzLDEzICs1MywxMyBAQCBjbGFzcyBOb2RlTGlzdDsK
IGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBTdHlsZVJ1bGU7CiAKLWNsYXNzIEluc3BlY3Rv
ckNTU0FnZW50IGZpbmFsCi0gICAgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlCi0gICAgLCBw
dWJsaWMgSW5zcGVjdG9yOjpDU1NCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICAsIHB1Ymxp
YyBJbnNwZWN0b3JTdHlsZVNoZWV0OjpMaXN0ZW5lciB7CitjbGFzcyBJbnNwZWN0b3JDU1NBZ2Vu
dCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UgLCBwdWJsaWMgSW5zcGVjdG9yOjpD
U1NCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIgLCBwdWJsaWMgSW5zcGVjdG9yU3R5bGVTaGVldDo6
TGlzdGVuZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckNTU0FnZW50KTsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBJbnNwZWN0b3JDU1NB
Z2VudChXZWJBZ2VudENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDU1NBZ2VudCgp
OworCiAgICAgY2xhc3MgSW5saW5lU3R5bGVPdmVycmlkZVNjb3BlIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIElubGluZVN0eWxlT3ZlcnJpZGVTY29wZShTZWN1cml0eUNvbnRleHQmIGNvbnRleHQp
CkBAIC03NywxNCArNzcsMzIgQEAgcHVibGljOgogICAgICAgICBDb250ZW50U2VjdXJpdHlQb2xp
Y3kqIG1fY29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIH07CiAKLSAgICBJbnNwZWN0b3JDU1NB
Z2VudChXZWJBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDU1NBZ2VudCgp
ID0gZGVmYXVsdDsKLQogICAgIHN0YXRpYyBDU1NTdHlsZVJ1bGUqIGFzQ1NTU3R5bGVSdWxlKENT
U1J1bGUmKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXQoKTsKKyAgICAvLyBJbnNw
ZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOwor
ICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKTsKKworICAgIC8vIENTU0JhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZv
aWQgZW5hYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7
CisgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2Rl
SWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTQ29t
cHV0ZWRTdHlsZVByb3BlcnR5Pj4mKTsKKyAgICB2b2lkIGdldElubGluZVN0eWxlc0Zvck5vZGUo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpDU1NTdHlsZT4mIGlubGluZVN0eWxlLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpDU1NTdHlsZT4mIGF0dHJpYnV0ZXMpOworICAgIHZvaWQgZ2V0TWF0Y2hlZFN0eWxlc0Zvck5v
ZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBib29sKiBpbmNsdWRlUHNldWRvLCBj
b25zdCBib29sKiBpbmNsdWRlSW5oZXJpdGVkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0
b3I6OlByb3RvY29sOjpDU1M6OlJ1bGVNYXRjaD4+JiBtYXRjaGVkQ1NTUnVsZXMsIFJlZlB0cjxK
U09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UHNldWRvSWRNYXRjaGVzPj4m
LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkluaGVyaXRl
ZFN0eWxlRW50cnk+PiYgaW5oZXJpdGVkRW50cmllcyk7CisgICAgdm9pZCBnZXRBbGxTdHlsZVNo
ZWV0cyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcj4+JiBzdHlsZVNoZWV0SW5mb3MpOworICAgIHZv
aWQgZ2V0U3R5bGVTaGVldChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElk
LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZVNoZWV0Qm9keT4mIHJl
c3VsdCk7CisgICAgdm9pZCBnZXRTdHlsZVNoZWV0VGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgc3R5bGVTaGVldElkLCBTdHJpbmcqIHJlc3VsdCk7CisgICAgdm9pZCBzZXRTdHlsZVNo
ZWV0VGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBjb25zdCBT
dHJpbmcmIHRleHQpOworICAgIHZvaWQgc2V0U3R5bGVUZXh0KEVycm9yU3RyaW5nJiwgY29uc3Qg
SlNPTjo6T2JqZWN0JiBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHRleHQsIFJlZlB0cjxJbnNwZWN0
b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiYgcmVzdWx0KTsKKyAgICB2b2lkIHNldFJ1bGVT
ZWxlY3RvcihFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZUlkLCBjb25zdCBT
dHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxl
PiYgcmVzdWx0KTsKKyAgICB2b2lkIGNyZWF0ZVN0eWxlU2hlZXQoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGZyYW1lSWQsIFN0cmluZyogc3R5bGVTaGVldElkKTsKKyAgICB2b2lkIGFkZFJ1
bGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5n
JiBzZWxlY3RvciwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4mIHJl
c3VsdCk7CisgICAgdm9pZCBnZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKEVycm9yU3RyaW5nJiwg
UmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NQcm9wZXJ0
eUluZm8+PiYgcmVzdWx0KTsKKyAgICB2b2lkIGdldFN1cHBvcnRlZFN5c3RlbUZvbnRGYW1pbHlO
YW1lcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0cmluZz4+JiByZXN1bHQp
OworICAgIHZvaWQgZm9yY2VQc2V1ZG9TdGF0ZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNv
bnN0IEpTT046OkFycmF5JiBmb3JjZWRQc2V1ZG9DbGFzc2VzKTsKKworICAgIC8vIEluc3BlY3Rv
clN0eWxlU2hlZXQ6Okxpc3RlbmVyCisgICAgdm9pZCBzdHlsZVNoZWV0Q2hhbmdlZChJbnNwZWN0
b3JTdHlsZVNoZWV0Kik7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2
b2lkIGRvY3VtZW50RGV0YWNoZWQoRG9jdW1lbnQmKTsKQEAgLTkyLDI4ICsxMTAsMTIgQEAgcHVi
bGljOgogICAgIHZvaWQgYWN0aXZlU3R5bGVTaGVldHNVcGRhdGVkKERvY3VtZW50Jik7CiAgICAg
Ym9vbCBmb3JjZVBzZXVkb1N0YXRlKGNvbnN0IEVsZW1lbnQmLCBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NUeXBlKTsKIAotICAgIC8vIENTU0JhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZv
aWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9y
U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9yTm9kZShFcnJv
clN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNTUzo6Q1NTQ29tcHV0ZWRTdHlsZVByb3BlcnR5Pj4mKSBvdmVycmlkZTsKLSAgICB2
b2lkIGdldElubGluZVN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIGlubGluZVN0eWxlLCBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIGF0dHJpYnV0ZXMpIG92ZXJy
aWRlOwotICAgIHZvaWQgZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQg
bm9kZUlkLCBjb25zdCBib29sKiBpbmNsdWRlUHNldWRvLCBjb25zdCBib29sKiBpbmNsdWRlSW5o
ZXJpdGVkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlJ1
bGVNYXRjaD4+JiBtYXRjaGVkQ1NTUnVsZXMsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNTUzo6UHNldWRvSWRNYXRjaGVzPj4mLCBSZWZQdHI8SlNPTjo6QXJyYXlP
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkluaGVyaXRlZFN0eWxlRW50cnk+PiYgaW5oZXJp
dGVkRW50cmllcykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRBbGxTdHlsZVNoZWV0cyhFcnJvclN0
cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NT
U3R5bGVTaGVldEhlYWRlcj4+JiBzdHlsZVNoZWV0SW5mb3MpIG92ZXJyaWRlOwotICAgIHZvaWQg
Z2V0U3R5bGVTaGVldChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZVNoZWV0Qm9keT4mIHJlc3Vs
dCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRTdHlsZVNoZWV0VGV4dChFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBTdHJpbmcqIHJlc3VsdCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBzZXRTdHlsZVNoZWV0VGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVT
aGVldElkLCBjb25zdCBTdHJpbmcmIHRleHQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U3R5bGVU
ZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBzdHlsZUlkLCBjb25zdCBTdHJp
bmcmIHRleHQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiYgcmVz
dWx0KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFJ1bGVTZWxlY3RvcihFcnJvclN0cmluZyYsIGNv
bnN0IEpTT046Ok9iamVjdCYgcnVsZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiYgcmVzdWx0KSBvdmVycmlkZTsKLSAg
ICB2b2lkIGNyZWF0ZVN0eWxlU2hlZXQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1l
SWQsIFN0cmluZyogc3R5bGVTaGVldElkKSBvdmVycmlkZTsKLSAgICB2b2lkIGFkZFJ1bGUoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5nJiBzZWxl
Y3RvciwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4mIHJlc3VsdCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKEVycm9yU3RyaW5n
JiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NQcm9w
ZXJ0eUluZm8+PiYgcmVzdWx0KSBvdmVycmlkZTsKLSAgICB2b2lkIGdldFN1cHBvcnRlZFN5c3Rl
bUZvbnRGYW1pbHlOYW1lcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0cmlu
Zz4+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgZm9yY2VQc2V1ZG9TdGF0ZShFcnJvclN0
cmluZyYsIGludCBub2RlSWQsIGNvbnN0IEpTT046OkFycmF5JiBmb3JjZWRQc2V1ZG9DbGFzc2Vz
KSBvdmVycmlkZTsKLQogICAgIC8vIEluc3BlY3RvckRPTUFnZW50IGhvb2tzCiAgICAgdm9pZCBk
aWRSZW1vdmVET01Ob2RlKE5vZGUmLCBpbnQgbm9kZUlkKTsKICAgICB2b2lkIGRpZE1vZGlmeURP
TUF0dHIoRWxlbWVudCYpOwogCisgICAgdm9pZCByZXNldCgpOworCiBwcml2YXRlOgogICAgIGNs
YXNzIFN0eWxlU2hlZXRBY3Rpb247CiAgICAgY2xhc3MgU2V0U3R5bGVTaGVldFRleHRBY3Rpb247
CkBAIC0xNDUsOCArMTQ3LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlJ1bGVNYXRjaD4+IGJ1aWxkQXJyYXlGb3JNYXRjaGVk
UnVsZUxpc3QoY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGU+PiYsIFN0eWxlUmVzb2x2ZXIm
LCBFbGVtZW50JiwgUHNldWRvSWQpOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpD
U1M6OkNTU1N0eWxlPiBidWlsZE9iamVjdEZvckF0dHJpYnV0ZXNTdHlsZShTdHlsZWRFbGVtZW50
Jik7CiAKLSAgICAvLyBJbnNwZWN0b3JDU1NBZ2VudDo6TGlzdGVuZXIgaW1wbGVtZW50YXRpb24K
LSAgICB2b2lkIHN0eWxlU2hlZXRDaGFuZ2VkKEluc3BlY3RvclN0eWxlU2hlZXQqKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgcmVzZXRQc2V1ZG9TdGF0ZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAppbmRl
eCAwZTUwYzc1YmE0ODc1MTU1NmU0MTJkY2I5N2FkMTk2Njk2NWE5OTkwLi43Yzk1NjUxMzlhZDY2
Y2I4ZmJlMzA5MmQ3MTc1ZTQyYWE4NzM2MTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAtNzksNiAr
NzksOCBAQCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6SW5zcGVjdG9yQ2FudmFzQWdlbnQoUGFnZUFn
ZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorSW5zcGVjdG9yQ2FudmFzQWdlbnQ6On5JbnNw
ZWN0b3JDYW52YXNBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIq
LCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCBm
YTBmNmNjMjNiMGU0NTE5YWUxOTAzNTIyN2JmOTg4MWJlMWYxMjI3Li5hMWYzOWZhYjhjNTE1NjMw
MmZkZGQ5NGMyY2U5N2IxNjllODBlZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC01NiwzMSArNTYsMzcg
QEAgY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIAogdHlwZWRlZiBTdHJpbmcgRXJy
b3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvckNhbnZhc0FnZW50IGZpbmFsIDogcHVibGljIElu
c3BlY3RvckFnZW50QmFzZSwgcHVibGljIENhbnZhc09ic2VydmVyLCBwdWJsaWMgSW5zcGVjdG9y
OjpDYW52YXNCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIgeworY2xhc3MgSW5zcGVjdG9yQ2FudmFz
QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9y
OjpDYW52YXNCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIsIHB1YmxpYyBDYW52YXNPYnNlcnZlciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQ2FudmFzQWdlbnQpOwogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IEluc3BlY3RvckNh
bnZhc0FnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDYW52
YXNBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBJbnNwZWN0b3JDYW52YXNBZ2VudChQYWdlQWdlbnRD
b250ZXh0Jik7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKTsKIAotICAgIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIq
LCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOwotICAgIHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVj
dG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKKyAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbik7CisgICAgdm9pZCBkaXNjYXJkQWdlbnQoKTsKIAogICAgIC8vIENhbnZhc0JhY2tl
bmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBy
ZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIGludCogbm9k
ZUlkKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RDb250ZW50KEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBjYW52YXNJZCwgU3RyaW5nKiBjb250ZW50KSBvdmVycmlkZTsKLSAgICB2b2lk
IHJlcXVlc3RDU1NDYW52YXNDbGllbnROb2RlcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
Y2FudmFzSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+Jikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCByZXNvbHZlQ2FudmFzQ29udGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFz
SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWNvcmRp
bmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQoRXJyb3JTdHJpbmcmLCBpbnQgY291bnQpIG92ZXJyaWRl
OwotICAgIHZvaWQgc3RhcnRSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNh
bnZhc0lkLCBjb25zdCBpbnQqIGZyYW1lQ291bnQsIGNvbnN0IGludCogbWVtb3J5TGltaXQpIG92
ZXJyaWRlOwotICAgIHZvaWQgc3RvcFJlY29yZGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgY2FudmFzSWQpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFNoYWRlclNvdXJjZShFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5
cGUsIFN0cmluZyopIG92ZXJyaWRlOwotICAgIHZvaWQgdXBkYXRlU2hhZGVyKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2UpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbURp
c2FibGVkKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgZGlzYWJs
ZWQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgaGlnaGxpZ2h0ZWQpIG92ZXJy
aWRlOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVy
cm9yU3RyaW5nJik7CisgICAgdm9pZCByZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgY2FudmFzSWQsIGludCogbm9kZUlkKTsKKyAgICB2b2lkIHJlcXVlc3RDb250ZW50KEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCwgU3RyaW5nKiBjb250ZW50KTsKKyAg
ICB2b2lkIHJlcXVlc3RDU1NDYW52YXNDbGllbnROb2RlcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgY2FudmFzSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+Jik7CisgICAgdm9pZCBy
ZXNvbHZlQ2FudmFzQ29udGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQs
IGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpS
dW50aW1lOjpSZW1vdGVPYmplY3Q+Jik7CisgICAgdm9pZCBzZXRSZWNvcmRpbmdBdXRvQ2FwdHVy
ZUZyYW1lQ291bnQoRXJyb3JTdHJpbmcmLCBpbnQgY291bnQpOworICAgIHZvaWQgc3RhcnRSZWNv
cmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBjb25zdCBpbnQqIGZy
YW1lQ291bnQsIGNvbnN0IGludCogbWVtb3J5TGltaXQpOworICAgIHZvaWQgc3RvcFJlY29yZGlu
ZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQpOworICAgIHZvaWQgcmVxdWVz
dFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25z
dCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmluZyopOworICAgIHZvaWQgdXBkYXRlU2hhZGVyKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVy
VHlwZSwgY29uc3QgU3RyaW5nJiBzb3VyY2UpOworICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbURp
c2FibGVkKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgZGlzYWJs
ZWQpOworICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgaGlnaGxpZ2h0ZWQpOworCisgICAgLy8gQ2Fu
dmFzT2JzZXJ2ZXIKKyAgICB2b2lkIGNhbnZhc0NoYW5nZWQoQ2FudmFzQmFzZSYsIGNvbnN0IEZs
b2F0UmVjdCYpOworICAgIHZvaWQgY2FudmFzUmVzaXplZChDYW52YXNCYXNlJikgeyB9CisgICAg
dm9pZCBjYW52YXNEZXN0cm95ZWQoQ2FudmFzQmFzZSYpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uCiAgICAgdm9pZCBmcmFtZU5hdmlnYXRlZChGcmFtZSYpOwpAQCAtOTksMTEg
KzEwNSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKFdl
YkdMUHJvZ3JhbSYpOwogI2VuZGlmCiAKLSAgICAvLyBDYW52YXNPYnNlcnZlcgotICAgIHZvaWQg
Y2FudmFzQ2hhbmdlZChDYW52YXNCYXNlJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBjYW52YXNSZXNpemVkKENhbnZhc0Jhc2UmKSBvdmVycmlkZSB7IH0KLSAgICB2b2lk
IGNhbnZhc0Rlc3Ryb3llZChDYW52YXNCYXNlJikgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CiAgICAg
c3RydWN0IFJlY29yZGluZ09wdGlvbnMgewogICAgICAgICBPcHRpb25hbDxsb25nPiBmcmFtZUNv
dW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAppbmRleCAwZGYwNDU0ODU1OWUxNDA2M2I5NDJiN2MxMWVjY2QzYjQ2ZTcw
Yjc5Li4wMDZjN2E5MmQ1YWM3OGJjMWUwOGJiMjFiMmY0NTEzN2Q0NGIzMGEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNw
cApAQCAtMjkzLDExICsyOTMsNyBAQCBJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdl
bnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCwgSW5zcGVjdG9yT3ZlcmxheQogewogfQogCi1J
bnNwZWN0b3JET01BZ2VudDo6fkluc3BlY3RvckRPTUFnZW50KCkKLXsKLSAgICByZXNldCgpOwot
ICAgIEFTU0VSVCghbV9zZWFyY2hpbmdGb3JOb2RlKTsKLX0KK0luc3BlY3RvckRPTUFnZW50Ojp+
SW5zcGVjdG9yRE9NQWdlbnQoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwg
SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggNzNmZTIwM2VkMzJl
NDcxNjUxNmFlYzc4NWZmODhhZGIxMDRmZDUzYi4uODA0ZjJiY2IyODk2ZmM5MDFjMzU1NGFkNjgz
NGFjMWJhYWE0NTNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtODcsNTUgKzg3LDY2IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgU3RyaW5nIHRvRXJyb3JTdHJpbmcoRXhjZXB0aW9uQ29kZSk7CiAgICAgc3RhdGljIFN0
cmluZyB0b0Vycm9yU3RyaW5nKEV4Y2VwdGlvbiYmKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIHN0
YXRpYyBTdHJpbmcgZG9jdW1lbnRVUkxTdHJpbmcoRG9jdW1lbnQqKTsKIAotICAgIFZlY3RvcjxE
b2N1bWVudCo+IGRvY3VtZW50cygpOwotICAgIHZvaWQgcmVzZXQoKTsKKyAgICAvLyBXZSByZXBy
ZXNlbnQgZW1iZWRkZWQgZG9tcyBhcyBhIHBhcnQgb2YgdGhlIHNhbWUgaGllcmFyY2h5LiBIZW5j
ZSB3ZSB0cmVhdCBjaGlsZHJlbiBvZiBmcmFtZSBvd25lcnMgZGlmZmVyZW50bHkuCisgICAgLy8g
V2UgYWxzbyBza2lwIHdoaXRlc3BhY2UgdGV4dCBub2RlcyBjb25kaXRpb25hbGx5LiBGb2xsb3dp
bmcgbWV0aG9kcyBlbmNhcHN1bGF0ZSB0aGVzZSBzcGVjaWZpY3MuCisgICAgc3RhdGljIE5vZGUq
IGlubmVyRmlyc3RDaGlsZChOb2RlKik7CisgICAgc3RhdGljIE5vZGUqIGlubmVyTmV4dFNpYmxp
bmcoTm9kZSopOworICAgIHN0YXRpYyBOb2RlKiBpbm5lclByZXZpb3VzU2libGluZyhOb2RlKik7
CisgICAgc3RhdGljIHVuc2lnbmVkIGlubmVyQ2hpbGROb2RlQ291bnQoTm9kZSopOworICAgIHN0
YXRpYyBOb2RlKiBpbm5lclBhcmVudE5vZGUoTm9kZSopOwogCi0gICAgLy8gTWV0aG9kcyBjYWxs
ZWQgZnJvbSB0aGUgZnJvbnRlbmQgZm9yIERPTSBub2RlcyBpbnNwZWN0aW9uLgotICAgIHZvaWQg
cXVlcnlTZWxlY3RvcihFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgc2Vs
ZWN0b3JzLCBpbnQqIGVsZW1lbnRJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBxdWVyeVNlbGVjdG9y
QWxsKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIFJl
ZlB0cjxKU09OOjpBcnJheU9mPGludD4+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0
RG9jdW1lbnQoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpO
b2RlPiYgcm9vdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0Q2hpbGROb2RlcyhFcnJvclN0
cmluZyYsIGludCBub2RlSWQsIGNvbnN0IGludCogZGVwdGgpIG92ZXJyaWRlOwotICAgIHZvaWQg
c2V0QXR0cmlidXRlVmFsdWUoRXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QXR0
cmlidXRlc0FzVGV4dChFcnJvclN0cmluZyYsIGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgU3RyaW5nKiBuYW1lKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZUF0dHJp
YnV0ZShFcnJvclN0cmluZyYsIGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmluZyYgbmFtZSkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCByZW1vdmVOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXROb2RlTmFtZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgaW50KiBuZXdJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRPdXRl
ckhUTUwoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBXVEY6OlN0cmluZyogb3V0ZXJIVE1MKSBv
dmVycmlkZTsKLSAgICB2b2lkIHNldE91dGVySFRNTChFcnJvclN0cmluZyYsIGludCBub2RlSWQs
IGNvbnN0IFN0cmluZyYgb3V0ZXJIVE1MKSBvdmVycmlkZTsKLSAgICB2b2lkIGluc2VydEFkamFj
ZW50SFRNTChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgcG9zaXRpb24s
IGNvbnN0IFN0cmluZyYgaHRtbCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXROb2RlVmFsdWUoRXJy
b3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHZhbHVlKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGdldFN1cHBvcnRlZEV2ZW50TmFtZXMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6
QXJyYXlPZjxTdHJpbmc+PiYgZXZlbnROYW1lcykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXREYXRh
QmluZGluZ3NGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFy
cmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpEYXRhQmluZGluZz4+JiBkYXRhQXJyYXkp
IG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0QXNzb2NpYXRlZERhdGFGb3JOb2RlKEVycm9yU3RyaW5n
JiwgaW50IG5vZGVJZCwgT3B0aW9uYWw8U3RyaW5nPiYgYXNzb2NpYXRlZERhdGEpIG92ZXJyaWRl
OwotICAgIHZvaWQgZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVu
dExpc3RlbmVyPj4mIGxpc3RlbmVyc0FycmF5KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEV2ZW50
TGlzdGVuZXJEaXNhYmxlZChFcnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQsIGJvb2wg
ZGlzYWJsZWQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QnJlYWtwb2ludEZvckV2ZW50TGlzdGVu
ZXIoRXJyb3JTdHJpbmcmLCBpbnQgZXZlbnRMaXN0ZW5lcklkKSBvdmVycmlkZTsKLSAgICB2b2lk
IHJlbW92ZUJyZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKEVycm9yU3RyaW5nJiwgaW50IGV2ZW50
TGlzdGVuZXJJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGll
c0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6RE9NOjpBY2Nlc3NpYmlsaXR5UHJvcGVydGllcz4mIGF4UHJvcGVydGllcykgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBwZXJmb3JtU2VhcmNoKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBx
dWVyeSwgY29uc3QgSlNPTjo6QXJyYXkqIG5vZGVJZHMsIGNvbnN0IGJvb2wqIGNhc2VTZW5zaXRp
dmUsIFN0cmluZyogc2VhcmNoSWQsIGludCogcmVzdWx0Q291bnQpIG92ZXJyaWRlOwotICAgIHZv
aWQgZ2V0U2VhcmNoUmVzdWx0cyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc2VhcmNoSWQs
IGludCBmcm9tSW5kZXgsIGludCB0b0luZGV4LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYp
IG92ZXJyaWRlOwotICAgIHZvaWQgZGlzY2FyZFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIHNlYXJjaElkKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc29sdmVOb2RlKEVy
cm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBnZXRBdHRyaWJ1dGVzKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwg
UmVmUHRyPEpTT046OkFycmF5T2Y8U3RyaW5nPj4mIHJlc3VsdCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBzZXRJbnNwZWN0TW9kZUVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGVuYWJsZWQsIGNvbnN0
IEpTT046Ok9iamVjdCogaGlnaGxpZ2h0Q29uZmlnLCBjb25zdCBib29sKiBzaG93UnVsZXJzKSBv
dmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwgaW50KiBub2RlSWQpIG92ZXJyaWRlOwotICAgIHZvaWQgcHVzaE5vZGVCeVBh
dGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5vZGVJ
ZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBoaWdobGlnaHRSZWN0KEVycm9yU3RyaW5nJiwgaW50IHgsIGludCB5LCBp
bnQgd2lkdGgsIGludCBoZWlnaHQsIGNvbnN0IEpTT046Ok9iamVjdCogY29sb3IsIGNvbnN0IEpT
T046Ok9iamVjdCogb3V0bGluZUNvbG9yLCBjb25zdCBib29sKiB1c2VQYWdlQ29vcmRpbmF0ZXMp
IG92ZXJyaWRlOwotICAgIHZvaWQgaGlnaGxpZ2h0UXVhZChFcnJvclN0cmluZyYsIGNvbnN0IEpT
T046OkFycmF5JiBxdWFkLCBjb25zdCBKU09OOjpPYmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpP
YmplY3QqIG91dGxpbmVDb2xvciwgY29uc3QgYm9vbCogdXNlUGFnZUNvb3JkaW5hdGVzKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGhpZ2hsaWdodFNlbGVjdG9yKEVycm9yU3RyaW5nJiwgY29uc3QgSlNP
Tjo6T2JqZWN0JiBoaWdobGlnaHRDb25maWcsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3JTdHJpbmcs
IGNvbnN0IFN0cmluZyogZnJhbWVJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWdobGlnaHROb2Rl
KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGlnaHRDb25maWcsIGNvbnN0
IGludCogbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdElkKSBvdmVycmlkZTsKLSAgICB2b2lk
IGhpZ2hsaWdodE5vZGVMaXN0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkmIG5vZGVJ
ZHMsIGNvbnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmlnKSBvdmVycmlkZTsKLSAgICB2
b2lkIGhpZ2hsaWdodEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBj
b25zdCBKU09OOjpPYmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xv
cikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBtb3ZlVG8oRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBp
bnQgdGFyZ2V0Tm9kZUlkLCBjb25zdCBpbnQqIGFuY2hvck5vZGVJZCwgaW50KiBuZXdOb2RlSWQp
IG92ZXJyaWRlOwotICAgIHZvaWQgdW5kbyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZv
aWQgcmVkbyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbWFya1VuZG9hYmxlU3Rh
dGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGZvY3VzKEVycm9yU3RyaW5nJiwg
aW50IG5vZGVJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRJbnNwZWN0ZWROb2RlKEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCkgb3ZlcnJpZGU7CisgICAgc3RhdGljIE5vZGUqIHNjcmlwdFZhbHVl
QXNOb2RlKEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBub2RlQXNTY3Jp
cHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYsIE5vZGUqKTsKKworICAgIC8vIEluc3BlY3RvckFnZW50
QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJv
bnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24p
OworCisgICAgLy8gRE9NQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBxdWVyeVNl
bGVjdG9yKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMs
IGludCogZWxlbWVudElkKTsKKyAgICB2b2lkIHF1ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcm
LCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgUmVmUHRyPEpTT046OkFycmF5
T2Y8aW50Pj4mIHJlc3VsdCk7CisgICAgdm9pZCBnZXREb2N1bWVudChFcnJvclN0cmluZyYsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+JiByb290KTsKKyAgICB2b2lkIHJl
cXVlc3RDaGlsZE5vZGVzKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgaW50KiBkZXB0
aCk7CisgICAgdm9pZCBzZXRBdHRyaWJ1dGVWYWx1ZShFcnJvclN0cmluZyYsIGludCBlbGVtZW50
SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisgICAgdm9pZCBz
ZXRBdHRyaWJ1dGVzQXNUZXh0KEVycm9yU3RyaW5nJiwgaW50IGVsZW1lbnRJZCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcqIG5hbWUpOworICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRl
KEVycm9yU3RyaW5nJiwgaW50IGVsZW1lbnRJZCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2
b2lkIHJlbW92ZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKKyAgICB2b2lkIHNldE5v
ZGVOYW1lKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQq
IG5ld0lkKTsKKyAgICB2b2lkIGdldE91dGVySFRNTChFcnJvclN0cmluZyYsIGludCBub2RlSWQs
IFdURjo6U3RyaW5nKiBvdXRlckhUTUwpOworICAgIHZvaWQgc2V0T3V0ZXJIVE1MKEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBvdXRlckhUTUwpOworICAgIHZvaWQgaW5z
ZXJ0QWRqYWNlbnRIVE1MKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBw
b3NpdGlvbiwgY29uc3QgU3RyaW5nJiBodG1sKTsKKyAgICB2b2lkIHNldE5vZGVWYWx1ZShFcnJv
clN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgZ2V0
U3VwcG9ydGVkRXZlbnROYW1lcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0
cmluZz4+JiBldmVudE5hbWVzKTsKKyAgICB2b2lkIGdldERhdGFCaW5kaW5nc0Zvck5vZGUoRXJy
b3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpET006OkRhdGFCaW5kaW5nPj4mIGRhdGFBcnJheSk7CisgICAgdm9pZCBnZXRBc3Nv
Y2lhdGVkRGF0YUZvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBPcHRpb25hbDxTdHJp
bmc+JiBhc3NvY2lhdGVkRGF0YSk7CisgICAgdm9pZCBnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpET006OkV2ZW50TGlzdGVuZXI+PiYgbGlzdGVuZXJzQXJyYXkpOworICAgIHZv
aWQgc2V0RXZlbnRMaXN0ZW5lckRpc2FibGVkKEVycm9yU3RyaW5nJiwgaW50IGV2ZW50TGlzdGVu
ZXJJZCwgYm9vbCBkaXNhYmxlZCk7CisgICAgdm9pZCBzZXRCcmVha3BvaW50Rm9yRXZlbnRMaXN0
ZW5lcihFcnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQpOworICAgIHZvaWQgcmVtb3Zl
QnJlYWtwb2ludEZvckV2ZW50TGlzdGVuZXIoRXJyb3JTdHJpbmcmLCBpbnQgZXZlbnRMaXN0ZW5l
cklkKTsKKyAgICB2b2lkIGdldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZShFcnJvclN0
cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkFjY2Vz
c2liaWxpdHlQcm9wZXJ0aWVzPiYgYXhQcm9wZXJ0aWVzKTsKKyAgICB2b2lkIHBlcmZvcm1TZWFy
Y2goRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBKU09OOjpBcnJheSog
bm9kZUlkcywgY29uc3QgYm9vbCogY2FzZVNlbnNpdGl2ZSwgU3RyaW5nKiBzZWFyY2hJZCwgaW50
KiByZXN1bHRDb3VudCk7CisgICAgdm9pZCBnZXRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBzZWFyY2hJZCwgaW50IGZyb21JbmRleCwgaW50IHRvSW5kZXgsIFJlZlB0
cjxKU09OOjpBcnJheU9mPGludD4+Jik7CisgICAgdm9pZCBkaXNjYXJkU2VhcmNoUmVzdWx0cyhF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc2VhcmNoSWQpOworICAgIHZvaWQgcmVzb2x2ZU5v
ZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0
KTsKKyAgICB2b2lkIGdldEF0dHJpYnV0ZXMoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQ
dHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0KTsKKyAgICB2b2lkIHNldEluc3BlY3RN
b2RlRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCwgY29uc3QgSlNPTjo6T2JqZWN0
KiBoaWdobGlnaHRDb25maWcsIGNvbnN0IGJvb2wqIHNob3dSdWxlcnMpOworICAgIHZvaWQgcmVx
dWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJ
ZCk7CisgICAgdm9pZCBwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIHBhdGgsIGludCogbm9kZUlkKTsKKyAgICB2b2lkIGhpZGVIaWdobGlnaHQoRXJy
b3JTdHJpbmcmKTsKKyAgICB2b2lkIGhpZ2hsaWdodFJlY3QoRXJyb3JTdHJpbmcmLCBpbnQgeCwg
aW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgY29uc3QgSlNPTjo6T2JqZWN0KiBjb2xvciwg
Y29uc3QgSlNPTjo6T2JqZWN0KiBvdXRsaW5lQ29sb3IsIGNvbnN0IGJvb2wqIHVzZVBhZ2VDb29y
ZGluYXRlcyk7CisgICAgdm9pZCBoaWdobGlnaHRRdWFkKEVycm9yU3RyaW5nJiwgY29uc3QgSlNP
Tjo6QXJyYXkmIHF1YWQsIGNvbnN0IEpTT046Ok9iamVjdCogY29sb3IsIGNvbnN0IEpTT046Ok9i
amVjdCogb3V0bGluZUNvbG9yLCBjb25zdCBib29sKiB1c2VQYWdlQ29vcmRpbmF0ZXMpOworICAg
IHZvaWQgaGlnaGxpZ2h0U2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3Qm
IGhpZ2hsaWdodENvbmZpZywgY29uc3QgU3RyaW5nJiBzZWxlY3RvclN0cmluZywgY29uc3QgU3Ry
aW5nKiBmcmFtZUlkKTsKKyAgICB2b2lkIGhpZ2hsaWdodE5vZGUoRXJyb3JTdHJpbmcmLCBjb25z
dCBKU09OOjpPYmplY3QmIGhpZ2hsaWdodENvbmZpZywgY29uc3QgaW50KiBub2RlSWQsIGNvbnN0
IFN0cmluZyogb2JqZWN0SWQpOworICAgIHZvaWQgaGlnaGxpZ2h0Tm9kZUxpc3QoRXJyb3JTdHJp
bmcmLCBjb25zdCBKU09OOjpBcnJheSYgbm9kZUlkcywgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdo
bGlnaHRDb25maWcpOworICAgIHZvaWQgaGlnaGxpZ2h0RnJhbWUoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IEpTT046Ok9iamVjdCogY29sb3IsIGNvbnN0IEpTT046
Ok9iamVjdCogb3V0bGluZUNvbG9yKTsKKyAgICB2b2lkIG1vdmVUbyhFcnJvclN0cmluZyYsIGlu
dCBub2RlSWQsIGludCB0YXJnZXROb2RlSWQsIGNvbnN0IGludCogYW5jaG9yTm9kZUlkLCBpbnQq
IG5ld05vZGVJZCk7CisgICAgdm9pZCB1bmRvKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCByZWRv
KEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBtYXJrVW5kb2FibGVTdGF0ZShFcnJvclN0cmluZyYp
OworICAgIHZvaWQgZm9jdXMoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKKyAgICB2b2lkIHNl
dEluc3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKIAogICAgIC8vIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbgogICAgIGludCBpZGVudGlmaWVyRm9yTm9kZShOb2RlJik7CkBA
IC0xNzAsOCArMTgxLDYgQEAgcHVibGljOgogICAgIE5vZGUqIG5vZGVGb3JJZChpbnQgbm9kZUlk
KTsKICAgICBpbnQgYm91bmROb2RlSWQoY29uc3QgTm9kZSopOwogCi0gICAgc3RhdGljIFN0cmlu
ZyBkb2N1bWVudFVSTFN0cmluZyhEb2N1bWVudCopOwotCiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gcmVzb2x2ZU5vZGUoTm9kZSosIGNvbnN0
IFN0cmluZyYgb2JqZWN0R3JvdXApOwogICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzcygpOwogICAg
IHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2ln
bmVkIG1vZGlmaWVyRmxhZ3MpOwpAQCAtMTc5LDIyICsxODgsMTMgQEAgcHVibGljOgogICAgIHZv
aWQgZm9jdXNOb2RlKCk7CiAKICAgICBJbnNwZWN0b3JIaXN0b3J5KiBoaXN0b3J5KCkgeyByZXR1
cm4gbV9oaXN0b3J5LmdldCgpOyB9Ci0KLSAgICAvLyBXZSByZXByZXNlbnQgZW1iZWRkZWQgZG9t
cyBhcyBhIHBhcnQgb2YgdGhlIHNhbWUgaGllcmFyY2h5LiBIZW5jZSB3ZSB0cmVhdCBjaGlsZHJl
biBvZiBmcmFtZSBvd25lcnMgZGlmZmVyZW50bHkuCi0gICAgLy8gV2UgYWxzbyBza2lwIHdoaXRl
c3BhY2UgdGV4dCBub2RlcyBjb25kaXRpb25hbGx5LiBGb2xsb3dpbmcgbWV0aG9kcyBlbmNhcHN1
bGF0ZSB0aGVzZSBzcGVjaWZpY3MuCi0gICAgc3RhdGljIE5vZGUqIGlubmVyRmlyc3RDaGlsZChO
b2RlKik7Ci0gICAgc3RhdGljIE5vZGUqIGlubmVyTmV4dFNpYmxpbmcoTm9kZSopOwotICAgIHN0
YXRpYyBOb2RlKiBpbm5lclByZXZpb3VzU2libGluZyhOb2RlKik7Ci0gICAgc3RhdGljIHVuc2ln
bmVkIGlubmVyQ2hpbGROb2RlQ291bnQoTm9kZSopOwotICAgIHN0YXRpYyBOb2RlKiBpbm5lclBh
cmVudE5vZGUoTm9kZSopOworICAgIFZlY3RvcjxEb2N1bWVudCo+IGRvY3VtZW50cygpOworICAg
IHZvaWQgcmVzZXQoKTsKIAogICAgIE5vZGUqIGFzc2VydE5vZGUoRXJyb3JTdHJpbmcmLCBpbnQg
bm9kZUlkKTsKICAgICBFbGVtZW50KiBhc3NlcnRFbGVtZW50KEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCk7CiAgICAgRG9jdW1lbnQqIGFzc2VydERvY3VtZW50KEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCk7CiAKLSAgICBzdGF0aWMgTm9kZSogc2NyaXB0VmFsdWVBc05vZGUoSlNDOjpKU1ZhbHVl
KTsKLSAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIG5vZGVBc1NjcmlwdFZhbHVlKEpTQzo6RXhlY1N0
YXRlJiwgTm9kZSopOwotCiAgICAgYm9vbCBoYXNCcmVha3BvaW50Rm9yRXZlbnRMaXN0ZW5lcihF
dmVudFRhcmdldCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYs
IGJvb2wgY2FwdHVyZSk7CiAgICAgaW50IGlkRm9yRXZlbnRMaXN0ZW5lcihFdmVudFRhcmdldCYs
IGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGJvb2wgY2FwdHVy
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDQ1ZTJmYTlhOGRhMTIwODY3Yjg3
ZTE4ZDM4MWMyYWZiNTM5YzE5MDcuLmViNDdhZTE5NjFkMmFmZmJiYjU3YWZiMzE4NjY3ZWE2OTY3
MmIyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcApAQCAtNzQsMTEgKzc0LDcgQEAgSW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChXZWJBZ2Vu
dENvbnRleHQmIGNvbnRleHQsIEkKICAgICBtX2RlYnVnZ2VyQWdlbnQtPmFkZExpc3RlbmVyKCp0
aGlzKTsKIH0KIAotSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6fkluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQoKQotewotICAgIEFTU0VSVCghbV9kZWJ1Z2dlckFnZW50KTsKLSAgICBBU1NFUlQo
IW1faW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KCkpOwotfQor
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6fkluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoKSA9
IGRlZmF1bHQ7CiAKIC8vIEJyb3dzZXIgZGVidWdnZXIgYWdlbnQgZW5hYmxlZCBvbmx5IHdoZW4g
SlMgZGVidWdnZXIgaXMgZW5hYmxlZC4KIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6
ZGVidWdnZXJXYXNFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKaW5kZXggZDI4ZTQ3ZDRj
ODU2OGFkNjA5MTkyZTJhZGYwYTA5NTA3YzFlM2EyZi4uNTU3NjMyNmIyMWVlYjE0Nzk2MjAxNTU1
YzQwOTA2Njg4YjNlYzIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKQEAgLTUyLDIwICs1Miwy
OSBAQCBjbGFzcyBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcjsKIAogdHlwZWRlZiBTdHJpbmcgRXJy
b3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OjpMaXN0ZW5lciwgcHVibGljIEluc3BlY3Rvcjo6RE9NRGVidWdnZXJCYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXIgeworY2xhc3MgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCBmaW5hbCA6
IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6OkRPTURlYnVnZ2Vy
QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyLCBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpMaXN0ZW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChXZWJBZ2VudENvbnRleHQmLCBJbnNwZWN0
b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQqKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50KCk7CiAKLSAgICAvLyBET01EZWJ1Z2dlciBBUEkKLSAgICB2b2lkIHNldFVS
TEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCog
b3B0aW9uYWxJc1JlZ2V4KSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZVVSTEJyZWFrcG9pbnQoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCkgZmluYWw7Ci0gICAgdm9pZCBzZXRFdmVudEJy
ZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRUeXBlLCBjb25z
dCBTdHJpbmcqIGV2ZW50TmFtZSkgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVFdmVudEJyZWFrcG9p
bnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRUeXBlLCBjb25zdCBTdHJp
bmcqIGV2ZW50TmFtZSkgZmluYWw7Ci0gICAgdm9pZCBzZXRET01CcmVha3BvaW50KEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0eXBlKSBmaW5hbDsKLSAgICB2b2lkIHJl
bW92ZURPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcm
IHR5cGUpIGZpbmFsOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlzY2FyZEFn
ZW50KCk7CisKKyAgICAvLyBET01EZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAg
IHZvaWQgc2V0VVJMQnJlYWtwb2ludChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBib29sKiBvcHRpb25hbElzUmVnZXgpOworICAgIHZvaWQgcmVtb3ZlVVJMQnJlYWtwb2lu
dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2b2lkIHNldEV2ZW50QnJl
YWtwb2ludChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJlYWtwb2ludFR5cGUsIGNvbnN0
IFN0cmluZyogZXZlbnROYW1lKTsKKyAgICB2b2lkIHJlbW92ZUV2ZW50QnJlYWtwb2ludChFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJlYWtwb2ludFR5cGUsIGNvbnN0IFN0cmluZyogZXZl
bnROYW1lKTsKKyAgICB2b2lkIHNldERPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkLCBjb25zdCBTdHJpbmcmIHR5cGUpOworICAgIHZvaWQgcmVtb3ZlRE9NQnJlYWtwb2ludChF
cnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgdHlwZSk7CisKKyAgICAvLyBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpMaXN0ZW5lcgorICAgIHZvaWQgZGVidWdnZXJXYXNFbmFi
bGVkKCk7CisgICAgdm9pZCBkZWJ1Z2dlcldhc0Rpc2FibGVkKCk7CiAKICAgICAvLyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHdpbGxJbnNlcnRET01Ob2RlKE5vZGUmIHBhcmVu
dCk7CkBAIC04MywxNiArOTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRmlyZUFuaW1hdGlv
bkZyYW1lKCk7CiAgICAgdm9pZCBtYWluRnJhbWVET01Db250ZW50TG9hZGVkKCk7CiAKLSAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVy
KiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwotICAgIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBmaW5h
bDsKLSAgICB2b2lkIGRpc2NhcmRBZ2VudCgpIGZpbmFsOwotCi1wcml2YXRlOgotICAgIC8vIElu
c3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVuZXIgaW1wbGVtZW50YXRpb24u
Ci0gICAgdm9pZCBkZWJ1Z2dlcldhc0VuYWJsZWQoKSBmaW5hbDsKLSAgICB2b2lkIGRlYnVnZ2Vy
V2FzRGlzYWJsZWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc2FibGUoKTsKIAorcHJpdmF0ZToKICAg
ICBlbnVtIGNsYXNzIFVSTEJyZWFrcG9pbnRTb3VyY2UgeyBGZXRjaCwgWEhSIH07CiAgICAgdm9p
ZCBicmVha09uVVJMSWZOZWVkZWQoY29uc3QgU3RyaW5nJiB1cmwsIFVSTEJyZWFrcG9pbnRTb3Vy
Y2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggODFmMTRkYzE3YmZhMDQ3NDdlM2Qy
M2U0NTNmNWU0YWY4ZDA5ZmQ4My4uODIyMTEyMDcyZjQwMTgwYWNhYjlmNWE4OGUxMGNjMjdkNTAx
NzBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcApAQCAtNjIsNiArNjIsOCBAQCBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChQYWdlQWdlbnRDb250
ZXh0JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6On5JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJv
dXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50LmgKaW5kZXggZmFhMWE4MzIzZjJlMGE2OGYxNWQ3YTU5MDk4MTViNTdlNTAyNzNmYS4uZGMx
YTk5YThjNDM2YWVkYzBlZGI3MWVjYTgyNzZjN2NjN2U4MzQ2OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oCkBAIC01MiwyNSArNTIsMjYgQEAgY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50IGZp
bmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3QKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQo
KTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJv
bnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQg
ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwogCi0gICAgLy8gQ2Fs
bGVkIGZyb20gdGhlIGZyb250LWVuZC4KLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92
ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZv
aWQgZ2V0RE9NU3RvcmFnZUl0ZW1zKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBz
dG9yYWdlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEpTT046OkFycmF5T2Y8U3RyaW5nPj4+JiBp
dGVtcykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyYs
IGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVET01TdG9yYWdlSXRlbShF
cnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcm
IGtleSkgb3ZlcnJpZGU7Ci0KLSAgICAvLyBDYWxsZWQgZnJvbSB0aGUgaW5qZWN0ZWQgc2NyaXB0
LgotICAgIHN0YXRpYyBTdHJpbmcgc3RvcmFnZUlkKFN0b3JhZ2UmKTsKLSAgICBzdGF0aWMgUmVm
UHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTVN0b3JhZ2U6OlN0b3JhZ2VJZD4gc3RvcmFnZUlk
KFNlY3VyaXR5T3JpZ2luKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSk7CisgICAgLy8gRE9NU3RvcmFn
ZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7
CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBnZXRET01TdG9yYWdl
SXRlbXMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCwgUmVmUHRy
PEpTT046OkFycmF5T2Y8SlNPTjo6QXJyYXlPZjxTdHJpbmc+Pj4mIGl0ZW1zKTsKKyAgICB2b2lk
IHNldERPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBzdG9y
YWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lk
IHJlbW92ZURPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBz
dG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5KTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbgogICAgIHZvaWQgZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0
b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiopOwogCisgICAgLy8gQ29tbWFuZExpbmVBUEkKKyAg
ICBzdGF0aWMgU3RyaW5nIHN0b3JhZ2VJZChTdG9yYWdlJik7CisgICAgc3RhdGljIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpET01TdG9yYWdlOjpTdG9yYWdlSWQ+IHN0b3JhZ2VJZChTZWN1
cml0eU9yaWdpbiosIGJvb2wgaXNMb2NhbFN0b3JhZ2UpOworCiBwcml2YXRlOgogICAgIFJlZlB0
cjxTdG9yYWdlQXJlYT4gZmluZFN0b3JhZ2VBcmVhKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6
T2JqZWN0JiwgRnJhbWUqJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCmluZGV4IDM1OGE4NTY1MTJl
YTRkNzE5NjMzMmEyMDY5OTBkZTMyNTAwNDEwYmYuLmE2Y2Y5YWMzY2QxZjIxMDM4ZmI3ZTA4MjM0
Nzc3ODVkN2QyMzJkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcApAQCAtMjIyLDYgKzIyMiw4IEBA
IEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQoV2ViQWdlbnRD
b250ZXh0JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JEYXRhYmFzZUFnZW50Ojp+SW5zcGVj
dG9yRGF0YWJhc2VBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFn
ZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRl
ciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaApp
bmRleCA1Yzc5MDJmZTBiNmI2NTBmZWMzMTk3ZGYzYjcyMGIxODk4Nzg3MzZjLi4yZGViYTMxOTBl
ODg4YTc1YTU4YjhjMjAwOWMyMTkxOTY2MjNlNjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaApAQCAtNDcs
MjYgKzQ3LDI2IEBAIGNsYXNzIEluc3BlY3RvckRhdGFiYXNlQWdlbnQgZmluYWwgOiBwdWJsaWMg
SW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yCiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudChXZWJBZ2Vu
dENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JEYXRhYmFzZUFnZW50KCkgPSBkZWZh
dWx0OworICAgIEluc3BlY3RvckRhdGFiYXNlQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7CisgICAg
dmlydHVhbCB+SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAg
Ly8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNo
ZXIqKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlYXNvbik7CiAKLQotICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQu
Ci0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2Fi
bGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldERhdGFiYXNlVGFibGVOYW1l
cyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZCwgUmVmUHRyPEpTT046OkFy
cmF5T2Y8U3RyaW5nPj4mIG5hbWVzKSBvdmVycmlkZTsKLSAgICB2b2lkIGV4ZWN1dGVTUUwoY29u
c3QgU3RyaW5nJiBkYXRhYmFzZUlkLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBSZWY8RXhlY3V0ZVNR
TENhbGxiYWNrPiYmKSBvdmVycmlkZTsKLQotICAgIC8vIENhbGxlZCBmcm9tIHRoZSBpbmplY3Rl
ZCBzY3JpcHQuCi0gICAgU3RyaW5nIGRhdGFiYXNlSWQoRGF0YWJhc2UmKTsKKyAgICAvLyBEYXRh
YmFzZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Jik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBnZXREYXRhYmFz
ZVRhYmxlTmFtZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWQsIFJlZlB0
cjxKU09OOjpBcnJheU9mPFN0cmluZz4+JiBuYW1lcyk7CisgICAgdm9pZCBleGVjdXRlU1FMKGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgUmVmPEV4ZWN1dGVT
UUxDYWxsYmFjaz4mJik7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2
b2lkIGRpZENvbW1pdExvYWQoKTsKICAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShEYXRhYmFzZSYp
OwogCisgICAgLy8gQ29tbWFuZExpbmVBUEkKKyAgICBTdHJpbmcgZGF0YWJhc2VJZChEYXRhYmFz
ZSYpOworCiBwcml2YXRlOgogICAgIERhdGFiYXNlKiBkYXRhYmFzZUZvcklkKGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VJZCk7CiAgICAgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZSogZmluZEJ5Rmls
ZU5hbWUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4
IGRkNzE1Y2JkOGNhMTFiOWMxZDA4NWE2NmI1NDE2ZDlmMmU5NWE3ZDIuLjRmZThjMDMwNmQ3Y2Nj
YzliMjJkMDNlZTZlYWNlMzhmMzkwNzljOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC01
MjcsNiArNTI3LDggQEAgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6Okluc3BlY3RvckluZGV4ZWRE
QkFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckluZGV4
ZWREQkFnZW50Ojp+SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQg
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopCiB7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmgKaW5kZXggNDVmZWI5MTc4MTAyODA2ZmRjMmY4NmM2N2MyN2Vk
NGM1MmRhZmFhMi4uYjQ5ZTBjMGU0NzM0NTQwNDRkOTcwNWVhNzAxNzgwNjg5NWVmZDZhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVk
REJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuaApAQCAtNTIsMTggKzUyLDE5IEBAIGNsYXNzIEluc3BlY3RvckluZGV4
ZWREQkFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3Bl
Y3RvCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3Rv
ckluZGV4ZWREQkFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkluc3BlY3RvckluZGV4
ZWREQkFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92
ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UK
KyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5k
Um91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOworICAgIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKIAog
ICAgIC8vIEluZGV4ZWREQkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxl
KEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0RGF0YWJhc2VOYW1lcyhjb25zdCBTdHJpbmcmIHNl
Y3VyaXR5T3JpZ2luLCBSZWY8UmVxdWVzdERhdGFiYXNlTmFtZXNDYWxsYmFjaz4mJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCByZXF1ZXN0RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdp
biwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFJlZjxSZXF1ZXN0RGF0YWJhc2VDYWxsYmFj
az4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0RGF0YShjb25zdCBTdHJpbmcmIHNlY3Vy
aXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBvYmpl
Y3RTdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYgaW5kZXhOYW1lLCBpbnQgc2tpcENvdW50LCBpbnQg
cGFnZVNpemUsIGNvbnN0IEpTT046Ok9iamVjdCoga2V5UmFuZ2UsIFJlZjxSZXF1ZXN0RGF0YUNh
bGxiYWNrPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgU3Ry
aW5nJiBpbl9zZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBpbl9kYXRhYmFzZU5hbWUsIGNv
bnN0IFN0cmluZyYgaW5fb2JqZWN0U3RvcmVOYW1lLCBSZWY8Q2xlYXJPYmplY3RTdG9yZUNhbGxi
YWNrPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAgIHZv
aWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgcmVxdWVzdERhdGFiYXNlTmFtZXMo
Y29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgUmVmPFJlcXVlc3REYXRhYmFzZU5hbWVzQ2Fs
bGJhY2s+JiYpOworICAgIHZvaWQgcmVxdWVzdERhdGFiYXNlKGNvbnN0IFN0cmluZyYgc2VjdXJp
dHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBSZWY8UmVxdWVzdERhdGFiYXNl
Q2FsbGJhY2s+JiYpOworICAgIHZvaWQgcmVxdWVzdERhdGEoY29uc3QgU3RyaW5nJiBzZWN1cml0
eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgb2JqZWN0
U3RvcmVOYW1lLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSwgaW50IHNraXBDb3VudCwgaW50IHBh
Z2VTaXplLCBjb25zdCBKU09OOjpPYmplY3QqIGtleVJhbmdlLCBSZWY8UmVxdWVzdERhdGFDYWxs
YmFjaz4mJik7CisgICAgdm9pZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgc2VjdXJp
dHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIG9iamVj
dFN0b3JlTmFtZSwgUmVmPENsZWFyT2JqZWN0U3RvcmVDYWxsYmFjaz4mJik7CiAKIHByaXZhdGU6
CiAgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcAppbmRleCBiNTk4MmNlZTM3ZTM3NDQ3MDUzOTQ2
YmNmNGM0MzRiNDMxZWY5YTk4Li5lNzZiZTQ0NzdhMDFjZjRhZTg4NzhlYTY1NDQ4MmFhYWQ2ODcw
MWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcApAQCAtNTMsMTAgKzUzLDcgQEAgSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQ6Okluc3BlY3RvckxheWVyVHJlZUFnZW50KFdlYkFnZW50Q29udGV4dCYg
Y29udGV4dCkKIHsKIH0KIAotSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6On5JbnNwZWN0b3JMYXll
clRyZWVBZ2VudCgpCi17Ci0gICAgcmVzZXQoKTsKLX0KK0luc3BlY3RvckxheWVyVHJlZUFnZW50
Ojp+SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZy
b250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopCiB7CkBAIC04NSw2
ICs4Miw4IEBAIHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmVuYWJsZShFcnJvclN0cmlu
ZyYpCiB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikK
IHsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQo
bnVsbHB0cik7CisKKyAgICByZXNldCgpOwogfQogCiB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFn
ZW50OjpsYXllclRyZWVEaWRDaGFuZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCmluZGV4IGMzOWIwZjY0
N2UxZWNlZmQ0NDA0YzJjMTI5ODc3YmNmMWRiYTFlYmIuLjNhMDYyOTdkYjJmNjRjMjJmZDkwMjI5
MjM4OTUxYTc4N2U2YThjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKQEAgLTQ4LDIzICs0OCwyNCBA
QCBjbGFzcyBJbnNwZWN0b3JMYXllclRyZWVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JB
Z2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0bwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3Bl
Y3RvckxheWVyVHJlZUFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBleHBsaWNpdCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudChXZWJBZ2VudENvbnRleHQm
KTsKKyAgICBJbnNwZWN0b3JMYXllclRyZWVBZ2VudChXZWJBZ2VudENvbnRleHQmKTsKICAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCByZXNldCgpOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworCisgICAgLy8gTGF5ZXJUcmVl
QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsK
KyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGxheWVyc0Zvck5vZGUo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpMYXllclRyZWU6OkxheWVyPj4mKTsKKyAgICB2b2lkIHJlYXNvbnNGb3JDb21w
b3NpdGluZ0xheWVyKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBsYXllcklkLCBSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpDb21wb3NpdGluZ1JlYXNvbnM+Jik7CiAK
ICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGxheWVyVHJlZURpZENo
YW5nZSgpOwogICAgIHZvaWQgcmVuZGVyTGF5ZXJEZXN0cm95ZWQoY29uc3QgUmVuZGVyTGF5ZXIm
KTsKICAgICB2b2lkIHBzZXVkb0VsZW1lbnREZXN0cm95ZWQoUHNldWRvRWxlbWVudCYpOwotCi0g
ICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVuZC4KLSAgICB2b2lkIGVuYWJsZShFcnJvclN0
cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRl
OwotICAgIHZvaWQgbGF5ZXJzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0
cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkxheWVyVHJlZTo6TGF5ZXI+PiYp
IG92ZXJyaWRlOwotICAgIHZvaWQgcmVhc29uc0ZvckNvbXBvc2l0aW5nTGF5ZXIoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIGxheWVySWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpM
YXllclRyZWU6OkNvbXBvc2l0aW5nUmVhc29ucz4mKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc2V0
KCk7CiAKIHByaXZhdGU6CiAgICAgLy8gUmVuZGVyTGF5ZXItcmVsYXRlZCBtZXRob2RzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9y
eUFnZW50LmNwcAppbmRleCAyODMyOTUxZjUzODAxMjFmYTQ1MmJmYThkNDcwZjRkMzVlNzg5YjE2
Li42OWE3ODkwYjc4MzM1NWY5M2ZlNzY2MjMyZDIxZTZhZjE1NmNhZTE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFnZW50
LmNwcApAQCAtNDUsNiArNDUsOCBAQCBJbnNwZWN0b3JNZW1vcnlBZ2VudDo6SW5zcGVjdG9yTWVt
b3J5QWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorSW5zcGVjdG9yTWVt
b3J5QWdlbnQ6On5JbnNwZWN0b3JNZW1vcnlBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNw
ZWN0b3JNZW1vcnlBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91
dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCmluZGV4IDVjMTQ3MTEx
NTQwZTVjZjQzNTFiYjhlZGU0MDBlN2U4NDZlYTQ2NTkuLmYzMTJjZmM4ZDFiZjQyMTIwOTkyNzE1
YjgxNTEwNzllMWM3YzA3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKQEAgLTQyLDE2ICs0MiwxNyBAQCBjbGFz
cyBJbnNwZWN0b3JNZW1vcnlBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2Us
IHB1YmxpYyBJbnNwZWN0b3I6OgogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIEluc3BlY3Rvck1lbW9yeUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JNZW1vcnlBZ2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNw
ZWN0b3JNZW1vcnlBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNo
ZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVjdG9yQWdl
bnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpG
cm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKKyAgICB2b2lk
IHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNv
bik7CiAKICAgICAvLyBNZW1vcnlCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVu
YWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmlu
ZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJy
aWRlOwotICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcm
KTsKKyAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIHN0b3BU
cmFja2luZyhFcnJvclN0cmluZyYpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
CiAgICAgdm9pZCBkaWRIYW5kbGVNZW1vcnlQcmVzc3VyZShDcml0aWNhbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAKaW5kZXggNWQwODE2MzgwY2RjNjZjN2Q3OTYwYzEyZDM0OGEwZmJmM2Y3YjExOC4uODA5
ODA3NTAzYzhlMDEzMTIxZGExNTBmNWZkYTQ5YzNjZDQwYzU3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNw
cApAQCAtMTc5LDYgKzE3OSw4IEBAIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6SW5zcGVjdG9yTmV0
d29ya0FnZW50KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorSW5zcGVjdG9yTmV0
d29ya0FnZW50Ojp+SW5zcGVjdG9yTmV0d29ya0FnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIElu
c3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0K
QEAgLTM5MCwxNSArMzkyLDYgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OkNh
Y2hlZFJlc291cmNlPiBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmJ1aWxkT2IKICAgICByZXR1cm4g
cmVzb3VyY2VPYmplY3Q7CiB9CiAKLUluc3BlY3Rvck5ldHdvcmtBZ2VudDo6fkluc3BlY3Rvck5l
dHdvcmtBZ2VudCgpCi17Ci0gICAgaWYgKG1fZW5hYmxlZCkgewotICAgICAgICBFcnJvclN0cmlu
ZyB1bnVzZWQ7Ci0gICAgICAgIGRpc2FibGUodW51c2VkKTsKLSAgICB9Ci0gICAgQVNTRVJUKCFt
X2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yTmV0d29ya0FnZW50KCkpOwotfQotCiBkb3Vi
bGUgSW5zcGVjdG9yTmV0d29ya0FnZW50Ojp0aW1lc3RhbXAoKQogewogICAgIHJldHVybiBtX2Vu
dmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpLnNlY29uZHMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0
d29ya0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5l
dHdvcmtBZ2VudC5oCmluZGV4IDU4ZDhjZGVmMWI4ZGYzNTY0ODllZWM3ZjNmNjFiNDg0NzhlYmQ1
YTcuLjUyOThiMDkxZTAwOGYzMTk1OWM1OGRmMzA0ODZlOGE4NzRiZWIxYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdl
bnQuaApAQCAtNjgsNyArNjgsNiBAQCBjbGFzcyBJbnNwZWN0b3JOZXR3b3JrQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjpOZXR3bwogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEluc3BlY3Rvck5ldHdvcmtBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgSW5zcGVjdG9yTmV0d29ya0FnZW50
KFdlYkFnZW50Q29udGV4dCYpOwogICAgIHZpcnR1YWwgfkluc3BlY3Rvck5ldHdvcmtBZ2VudCgp
OwogCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRBc1RleHQoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSk7CkBAIC03Niw4ICs3NSwxOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIE9wdGlvbmFsPFN0
cmluZz4gdGV4dENvbnRlbnRGb3JDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSYpOwogICAg
IHN0YXRpYyBib29sIGNhY2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSYsIFN0cmlu
ZyogcmVzdWx0LCBib29sKiBiYXNlNjRFbmNvZGVkKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8v
IEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
KikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkRpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOworCisgICAgLy8gTmV0d29ya0JhY2tlbmREaXNw
YXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRFeHRyYUhUVFBI
ZWFkZXJzKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBoZWFkZXJzKSBmaW5hbDsK
KyAgICB2b2lkIGdldFJlc3BvbnNlQm9keShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVx
dWVzdElkLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJhc2U2NEVuY29kZWQpIGZpbmFsOworICAg
IHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGRpc2Fi
bGVkKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRSZXNvdXJjZShjb25zdCBTdHJpbmcmIGZyYW1lSWQs
IGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8TG9hZFJlc291cmNlQ2FsbGJhY2s+JiYpIGZpbmFsOwor
ICAgIHZvaWQgZ2V0U2VyaWFsaXplZENlcnRpZmljYXRlKEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiByZXF1ZXN0SWQsIFN0cmluZyogc2VyaWFsaXplZENlcnRpZmljYXRlKSBmaW5hbDsKKyAg
ICB2b2lkIHJlc29sdmVXZWJTb2NrZXQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHJlcXVl
c3RJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mKSBmaW5hbDsKIAogICAgIC8vIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbgogICAgIHZvaWQgd2lsbFJlY2FsY3VsYXRlU3R5bGUoKTsKQEAgLTEwOCwx
NSArMTE4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2VhcmNoT3RoZXJSZXF1ZXN0cyhjb25zdCBK
U0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVj
dG9yOjpQcm90b2NvbDo6UGFnZTo6U2VhcmNoUmVzdWx0Pj4mKTsKICAgICB2b2lkIHNlYXJjaElu
UmVxdWVzdChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBjb25zdCBTdHJp
bmcmIHF1ZXJ5LCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgaXNSZWdleCwgUmVmUHRyPEpTT046
OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6R2VuZXJpY1R5cGVzOjpTZWFyY2hNYXRjaD4+
Jik7CiAKLSAgICAvLyBDYWxsZWQgZnJvbSBmcm9udGVuZC4KLSAgICB2b2lkIGVuYWJsZShFcnJv
clN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOwot
ICAgIHZvaWQgc2V0RXh0cmFIVFRQSGVhZGVycyhFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9i
amVjdCYgaGVhZGVycykgZmluYWw7Ci0gICAgdm9pZCBnZXRSZXNwb25zZUJvZHkoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCwgU3RyaW5nKiBjb250ZW50LCBib29sKiBiYXNl
NjRFbmNvZGVkKSBmaW5hbDsKLSAgICB2b2lkIHNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKEVy
cm9yU3RyaW5nJiwgYm9vbCBkaXNhYmxlZCkgZmluYWw7Ci0gICAgdm9pZCBsb2FkUmVzb3VyY2Uo
Y29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgUmVmPExvYWRSZXNvdXJj
ZUNhbGxiYWNrPiYmKSBmaW5hbDsKLSAgICB2b2lkIGdldFNlcmlhbGl6ZWRDZXJ0aWZpY2F0ZShF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBTdHJpbmcqIHNlcmlhbGl6ZWRD
ZXJ0aWZpY2F0ZSkgZmluYWw7Ci0gICAgdm9pZCByZXNvbHZlV2ViU29ja2V0KEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JikgZmluYWw7
Citwcm90ZWN0ZWQ6CisgICAgSW5zcGVjdG9yTmV0d29ya0FnZW50KFdlYkFnZW50Q29udGV4dCYp
OwogCiAgICAgdmlydHVhbCBTdHJpbmcgbG9hZGVySWRlbnRpZmllcihEb2N1bWVudExvYWRlciop
ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBmcmFtZUlkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIq
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggYmZlYTZkMTYyMjFkYjJjNmExNDA4NTEyZWI0YjViYTUx
NThjYjc0Ni4uMTc0YTFmYzRiMzRkMjM4YjBmYjljYTM2YTNkNWU1Mjc0MDY4MWFjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcApAQCAtMzQxLDYgKzM0MSw4IEBAIEluc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9y
UGFnZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQsIEluc3BlY3RvckNsaWVuCiB7CiB9
CiAKK0luc3BlY3RvclBhZ2VBZ2VudDo6fkluc3BlY3RvclBhZ2VBZ2VudCgpID0gZGVmYXVsdDsK
Kwogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciop
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JQYWdlQWdlbnQuaAppbmRleCAzZWVkMDE5YzlmZWU0NjNiNGVhZmYxMzcwZmIwZWFlMTIwMTc0
ODFmLi5jNDYwZGExMGZiZjY4NzY3ZTJmYzAzZDFkZjYwNDllMTIxMDRkY2NhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmgK
QEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50IGZpbmFsIDogcHVibGlj
IEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6UGEKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQoUGFnZUFnZW50
Q29udGV4dCYsIEluc3BlY3RvckNsaWVudCosIEluc3BlY3Rvck92ZXJsYXkqKTsKKyAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JQYWdlQWdlbnQoKTsKIAogICAgIGVudW0gUmVzb3VyY2VUeXBlIHsKICAg
ICAgICAgRG9jdW1lbnRSZXNvdXJjZSwKQEAgLTg3LDI4ICs4OCwzMiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIEZyYW1lKiBmaW5kRnJhbWVXaXRoU2VjdXJpdHlPcmlnaW4oUGFnZSYsIGNvbnN0IFN0
cmluZyYgb3JpZ2luUmF3U3RyaW5nKTsKICAgICBzdGF0aWMgRG9jdW1lbnRMb2FkZXIqIGFzc2Vy
dERvY3VtZW50TG9hZGVyKEVycm9yU3RyaW5nJiwgRnJhbWUqKTsKIAorICAgIC8vIEluc3BlY3Rv
ckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pOworCiAgICAgLy8gUGFnZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQg
ZW5hYmxlKEVycm9yU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5n
JikgZmluYWw7Ci0gICAgdm9pZCByZWxvYWQoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBvcHRp
b25hbFJlbG9hZEZyb21PcmlnaW4sIGNvbnN0IGJvb2wqIG9wdGlvbmFsUmV2YWxpZGF0ZUFsbFJl
c291cmNlcykgZmluYWw7Ci0gICAgdm9pZCBuYXZpZ2F0ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgdXJsKSBmaW5hbDsKLSAgICB2b2lkIG92ZXJyaWRlVXNlckFnZW50KEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nKiB2YWx1ZSkgZmluYWw7Ci0gICAgdm9pZCBvdmVycmlkZVNldHRpbmco
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHNldHRpbmcsIGNvbnN0IGJvb2wqIHZhbHVlKSBm
aW5hbDsKLSAgICB2b2lkIGdldENvb2tpZXMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJy
YXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdlOjpDb29raWU+PiYgY29va2llcykgZmluYWw7
Ci0gICAgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNvb2tp
ZU5hbWUsIGNvbnN0IFN0cmluZyYgdXJsKSBmaW5hbDsKLSAgICB2b2lkIGdldFJlc291cmNlVHJl
ZShFcnJvclN0cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdlOjpGcmFtZVJl
c291cmNlVHJlZT4mKSBmaW5hbDsKLSAgICB2b2lkIGdldFJlc291cmNlQ29udGVudChFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIFN0cmluZyog
Y29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCkgZmluYWw7Ci0gICAgdm9pZCBzZWFyY2hJblJl
c291cmNlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCogb3B0aW9uYWxDYXNlU2Vuc2l0
aXZlLCBjb25zdCBib29sKiBvcHRpb25hbElzUmVnZXgsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxS
ZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkdlbmVy
aWNUeXBlczo6U2VhcmNoTWF0Y2g+PiYpIGZpbmFsOwotICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJj
ZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBib29sKiBjYXNlU2Vuc2l0aXZl
LCBjb25zdCBib29sKiBpc1JlZ2V4LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpQYWdlOjpTZWFyY2hSZXN1bHQ+PiYpIGZpbmFsOwotICAgIHZvaWQgc2V0U2hvd1J1
bGVycyhFcnJvclN0cmluZyYsIGJvb2wpIGZpbmFsOwotICAgIHZvaWQgc2V0U2hvd1BhaW50UmVj
dHMoRXJyb3JTdHJpbmcmLCBib29sIHNob3cpIGZpbmFsOwotICAgIHZvaWQgc2V0RW11bGF0ZWRN
ZWRpYShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgc2V0Rm9y
Y2VkQXBwZWFyYW5jZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIHZv
aWQgZ2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyYsIGJvb2wqIG91dF9w
YXJhbSkgZmluYWw7Ci0gICAgdm9pZCBzZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9y
U3RyaW5nJiwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBzbmFwc2hvdE5vZGUoRXJyb3JTdHJpbmcm
LCBpbnQgbm9kZUlkLCBTdHJpbmcqIG91dERhdGFVUkwpIGZpbmFsOwotICAgIHZvaWQgc25hcHNo
b3RSZWN0KEVycm9yU3RyaW5nJiwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQs
IGNvbnN0IFN0cmluZyYgY29vcmRpbmF0ZVN5c3RlbSwgU3RyaW5nKiBvdXREYXRhVVJMKSBmaW5h
bDsKLSAgICB2b2lkIGFyY2hpdmUoRXJyb3JTdHJpbmcmLCBTdHJpbmcqIGRhdGEpIGZpbmFsOwor
ICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3Ry
aW5nJik7CisgICAgdm9pZCByZWxvYWQoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBvcHRpb25h
bFJlbG9hZEZyb21PcmlnaW4sIGNvbnN0IGJvb2wqIG9wdGlvbmFsUmV2YWxpZGF0ZUFsbFJlc291
cmNlcyk7CisgICAgdm9pZCBuYXZpZ2F0ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJs
KTsKKyAgICB2b2lkIG92ZXJyaWRlVXNlckFnZW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
KiB2YWx1ZSk7CisgICAgdm9pZCBvdmVycmlkZVNldHRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHNldHRpbmcsIGNvbnN0IGJvb2wqIHZhbHVlKTsKKyAgICB2b2lkIGdldENvb2tpZXMo
RXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpQ
YWdlOjpDb29raWU+PiYgY29va2llcyk7CisgICAgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2
b2lkIGdldFJlc291cmNlVHJlZShFcnJvclN0cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpQYWdlOjpGcmFtZVJlc291cmNlVHJlZT4mKTsKKyAgICB2b2lkIGdldFJlc291cmNlQ29u
dGVudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1
cmwsIFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CisgICAgdm9pZCBzZWFy
Y2hJblJlc291cmNlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCogb3B0aW9uYWxDYXNl
U2Vuc2l0aXZlLCBjb25zdCBib29sKiBvcHRpb25hbElzUmVnZXgsIGNvbnN0IFN0cmluZyogb3B0
aW9uYWxSZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkdlbmVyaWNUeXBlczo6U2VhcmNoTWF0Y2g+PiYpOworICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJj
ZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBib29sKiBjYXNlU2Vuc2l0aXZl
LCBjb25zdCBib29sKiBpc1JlZ2V4LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpQYWdlOjpTZWFyY2hSZXN1bHQ+PiYpOworICAgIHZvaWQgc2V0U2hvd1J1bGVycyhF
cnJvclN0cmluZyYsIGJvb2wpOworICAgIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoRXJyb3JTdHJp
bmcmLCBib29sIHNob3cpOworICAgIHZvaWQgc2V0RW11bGF0ZWRNZWRpYShFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2V0Rm9yY2VkQXBwZWFyYW5jZShFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZ2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJs
ZShFcnJvclN0cmluZyYsIGJvb2wqIG91dF9wYXJhbSk7CisgICAgdm9pZCBzZXRDb21wb3NpdGlu
Z0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nJiwgYm9vbCk7CisgICAgdm9pZCBzbmFwc2hvdE5v
ZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBTdHJpbmcqIG91dERhdGFVUkwpOworICAgIHZv
aWQgc25hcHNob3RSZWN0KEVycm9yU3RyaW5nJiwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQsIGNvbnN0IFN0cmluZyYgY29vcmRpbmF0ZVN5c3RlbSwgU3RyaW5nKiBvdXREYXRh
VVJMKTsKKyAgICB2b2lkIGFyY2hpdmUoRXJyb3JTdHJpbmcmLCBTdHJpbmcqIGRhdGEpOwogCiAg
ICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkb21Db250ZW50RXZlbnRG
aXJlZCgpOwpAQCAtMTI4LDExICsxMzMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTY3JvbGwo
KTsKICAgICB2b2lkIGRpZFJlY2FsY3VsYXRlU3R5bGUoKTsKIAotICAgIC8vIEluc3BlY3RvciBD
b250cm9sbGVyIEFQSQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgZmlu
YWw7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24pIGZpbmFsOwotCi0gICAgLy8gQ3Jvc3MtYWdlbnRzIEFQSQogICAgIEZy
YW1lKiBmcmFtZUZvcklkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGZyYW1lSWQoRnJhbWUqKTsKICAgICBTdHJpbmcgbG9hZGVySWQoRG9jdW1lbnRM
b2FkZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IGUwZTg2MGQ4NjYwNmU5NTFiM2U0NjAw
N2IxOWQyMjU5YmViNTdiYmMuLjUwYThiYjlmNDdhOTdiZDk0N2Y2MzNiNGViNDY1YzQwZjIwNTc5
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtNjE4LDExICs2MTgsNiBAQCB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnRvZ2dsZVRpbWVsaW5lSW5zdHJ1bWVudChJbnN0cnVtZW50U3Rh
dGUgc3RhdGUpCiAgICAgICAgIGludGVybmFsU3RvcCgpOwogfQogCi12b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZENvbW1pdExvYWQoKQotewotICAgIGNsZWFyUmVjb3JkU3RhY2soKTsK
LX0KLQogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoaW50IGNhbGxiYWNrSWQsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBhcHBlbmRSZWNvcmQoVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCks
IFRpbWVsaW5lUmVjb3JkVHlwZTo6UmVxdWVzdEFuaW1hdGlvbkZyYW1lLCB0cnVlLCBmcmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oCmluZGV4IDlmZGJhNGYyNzQ2YzNkNTdlZTIwMmJmZmNlOTU2ZTExMGE2
MDI5MTAuLmQxMWI5MGIwMmZjZDk3YzI1MzUwZDY5M2Q3YTIzZGM1MTczM2QwMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oCkBAIC04MSwzNCArODEsMzUgQEAgZW51bSBjbGFzcyBUaW1lbGluZVJlY29yZFR5
cGUgewogICAgIE9ic2VydmVyQ2FsbGJhY2ssCiB9OwogCi1jbGFzcyBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50IGZpbmFsCi0gICAgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlCi0gICAgLCBwdWJs
aWMgSW5zcGVjdG9yOjpUaW1lbGluZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgICwgcHVi
bGljIEluc3BlY3Rvcjo6U2NyaXB0RGVidWdMaXN0ZW5lciB7CitjbGFzcyBJbnNwZWN0b3JUaW1l
bGluZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSAsIHB1YmxpYyBJbnNw
ZWN0b3I6OlRpbWVsaW5lQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyICwgcHVibGljIEluc3BlY3Rv
cjo6U2NyaXB0RGVidWdMaXN0ZW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVj
dG9yVGltZWxpbmVBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7CiAgICAgdmly
dHVhbCB+SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFj
a2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgZmluYWw7CisgICAgLy8gSW5zcGVj
dG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKKyAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbik7CiAKICAgICAvLyBUaW1lbGluZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAg
IHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9y
U3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCBzdGFydChFcnJvclN0cmluZyYsIGNvbnN0IGludCog
bWF4Q2FsbFN0YWNrRGVwdGggPSBudWxscHRyKSBmaW5hbDsKLSAgICB2b2lkIHN0b3AoRXJyb3JT
dHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIHNldEF1dG9DYXB0dXJlRW5hYmxlZChFcnJvclN0cmlu
ZyYsIGJvb2wpIGZpbmFsOwotICAgIHZvaWQgc2V0SW5zdHJ1bWVudHMoRXJyb3JTdHJpbmcmLCBj
b25zdCBKU09OOjpBcnJheSYpIGZpbmFsOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7
CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBzdGFydChFcnJvclN0
cmluZyYsIGNvbnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGggPSBudWxscHRyKTsKKyAgICB2b2lk
IHN0b3AoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIHNldEF1dG9DYXB0dXJlRW5hYmxlZChFcnJv
clN0cmluZyYsIGJvb2wpOworICAgIHZvaWQgc2V0SW5zdHJ1bWVudHMoRXJyb3JTdHJpbmcmLCBj
b25zdCBKU09OOjpBcnJheSYpOwogCi0gICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsg
fQotCi0gICAgdm9pZCBkaWRDb21taXRMb2FkKCk7Ci0KLSAgICAvLyBNZXRob2RzIGNhbGxlZCBm
cm9tIFdlYkNvcmUuCi0gICAgdm9pZCBzdGFydEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgdm9pZCBzdG9wRnJvbUNvbnNvbGUoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICAvLyBTY3JpcHREZWJ1Z0xpc3RlbmVy
CisgICAgdm9pZCBkaWRQYXJzZVNvdXJjZShKU0M6OlNvdXJjZUlELCBjb25zdCBTY3JpcHQmKSB7
IH0KKyAgICB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgaW50LCBpbnQsIGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZvaWQgd2lsbFJ1bk1pY3Jv
dGFzaygpIHsgfQorICAgIHZvaWQgZGlkUnVuTWljcm90YXNrKCkgeyB9CisgICAgdm9pZCBkaWRQ
YXVzZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKSB7IH0KKyAg
ICB2b2lkIGRpZENvbnRpbnVlKCkgeyB9CisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpT
Qzo6RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJikgeyB9CisgICAgdm9pZCBicmVha3BvaW50QWN0
aW9uU291bmQoaW50KSB7IH0KKyAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Qcm9iZShKU0M6OkV4
ZWNTdGF0ZSYsIGNvbnN0IEluc3BlY3Rvcjo6U2NyaXB0QnJlYWtwb2ludEFjdGlvbiYsIHVuc2ln
bmVkIGJhdGNoSWQsIHVuc2lnbmVkIHNhbXBsZUlkLCBKU0M6OkpTVmFsdWUgcmVzdWx0KTsKIAog
ICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVy
KGludCB0aW1lcklkLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsK
QEAgLTE0MywxOCArMTQ0LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIG1haW5GcmFtZVN0YXJ0ZWRM
b2FkaW5nKCk7CiAgICAgdm9pZCBtYWluRnJhbWVOYXZpZ2F0ZWQoKTsKIAotcHJpdmF0ZToKLSAg
ICAvLyBKU0M6OlNjcmlwdERlYnVnTGlzdGVuZXIKLSAgICB2b2lkIGRpZFBhcnNlU291cmNlKEpT
Qzo6U291cmNlSUQsIGNvbnN0IFNjcmlwdCYpIGZpbmFsIHsgfQotICAgIHZvaWQgZmFpbGVkVG9Q
YXJzZVNvdXJjZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBpbnQsIGludCwgY29uc3Qg
U3RyaW5nJikgZmluYWwgeyB9Ci0gICAgdm9pZCB3aWxsUnVuTWljcm90YXNrKCkgZmluYWwgeyB9
Ci0gICAgdm9pZCBkaWRSdW5NaWNyb3Rhc2soKSBmaW5hbCB7IH0KLSAgICB2b2lkIGRpZFBhdXNl
KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpIGZpbmFsIHsgfQot
ICAgIHZvaWQgZGlkQ29udGludWUoKSBmaW5hbCB7IH0KLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rp
b25Mb2coSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KLSAgICB2b2lk
IGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChpbnQpIGZpbmFsIHsgfQotICAgIHZvaWQgYnJlYWtwb2lu
dEFjdGlvblByb2JlKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgSW5zcGVjdG9yOjpTY3JpcHRCcmVh
a3BvaW50QWN0aW9uJiwgdW5zaWduZWQgYmF0Y2hJZCwgdW5zaWduZWQgc2FtcGxlSWQsIEpTQzo6
SlNWYWx1ZSByZXN1bHQpIGZpbmFsOworICAgIC8vIENvbnNvbGUKKyAgICB2b2lkIHN0YXJ0RnJv
bUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICB2b2lk
IHN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwog
CisgICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorCitwcml2YXRlOgogICAgIHZv
aWQgc3RhcnRQcm9ncmFtbWF0aWNDYXB0dXJlKCk7CiAgICAgdm9pZCBzdG9wUHJvZ3JhbW1hdGlj
Q2FwdHVyZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IDFlMzk4ZWRkMWE5ZWEzZWYyNmJlMDll
YzAzZDZjNmMyY2QzOThkZTguLmMyMWI4MGQzZjkxYTMwMzYwZjljZDJlZjZmNWQ0Mjc4ZWU0NDgx
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
V29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC00Miw2ICs0Miw4IEBAIEluc3BlY3RvcldvcmtlckFn
ZW50OjpJbnNwZWN0b3JXb3JrZXJBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewog
fQogCitJbnNwZWN0b3JXb3JrZXJBZ2VudDo6fkluc3BlY3RvcldvcmtlckFnZW50KCkgPSBkZWZh
dWx0OworCiB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiAgICAgbV9pbnN0
cnVtZW50aW5nQWdlbnRzLnNldEluc3BlY3RvcldvcmtlckFnZW50KHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5o
CmluZGV4IDVlMDQwYzk1NGQ0YjUxNGExNDkwM2MwNzIwNzBiZWNkZTA2MGNiZDAuLjIyMTFiM2I2
MzczNWU0YTEzZjAzMmJlZTg0ZWRjYTcyODRkOGVlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTQyLDE5
ICs0MiwyMCBAQCBjbGFzcyBJbnNwZWN0b3JXb3JrZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNw
ZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6OgogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvcldvcmtlckFnZW50KFBhZ2VBZ2VudENvbnRl
eHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JXb3JrZXJBZ2VudCgpID0gZGVmYXVsdDsKKyAg
ICB2aXJ0dWFsIH5JbnNwZWN0b3JXb3JrZXJBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAg
Ly8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNo
ZXIqKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlYXNvbik7CiAKICAgICAvLyBXb3JrZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRs
ZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlz
YWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW5pdGlhbGl6ZWQoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHdvcmtlcklkKSBvdmVycmlkZTsKLSAgICB2b2lkIHNlbmRN
ZXNzYWdlVG9Xb3JrZXIoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHdvcmtlcklkLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Jik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBpbml0aWFsaXpl
ZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgd29ya2VySWQpOworICAgIHZvaWQgc2VuZE1l
c3NhZ2VUb1dvcmtlcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgd29ya2VySWQsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7CiAKLSAgICAvLyBQYWdlQ2hhbm5lbAotICAgIHZvaWQgc2VuZE1l
c3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSosIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgLy8gV29ya2VySW5zcGVjdG9yUHJveHk6OlBh
Z2VDaGFubmVsCisgICAgdm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtl
ckluc3BlY3RvclByb3h5KiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKIAogICAgIC8vIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbgogICAgIGJvb2wgc2hvdWxkV2FpdEZvckRlYnVnZ2VyT25TdGFy
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9X
ZWJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJD
b25zb2xlQWdlbnQuY3BwCmluZGV4IGMyMDk0Yjk5MmQzNTQxNjBmMTdlZTI4ZjY0MTBhNzkzZGNk
ZTlmMzQuLmYxNWJkMTE3MGQwMGJjNTNiN2E2YmJmZmEyOTdkMzIxOTZlNTZiNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAK
QEAgLTQzLDExICs0MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBJbnNwZWN0b3I7CiAKLVdlYkNvbnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50KEFnZW50Q29u
dGV4dCYgY29udGV4dCkKK1dlYkNvbnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50KFdlYkFnZW50
Q29udGV4dCYgY29udGV4dCkKICAgICA6IEluc3BlY3RvckNvbnNvbGVBZ2VudChjb250ZXh0KQog
ewogfQogCitXZWJDb25zb2xlQWdlbnQ6On5XZWJDb25zb2xlQWdlbnQoKSA9IGRlZmF1bHQ7CisK
IHZvaWQgV2ViQ29uc29sZUFnZW50OjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqIHdp
bmRvdykKIHsKICAgICBpZiAoIW1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3BlY3RvckVudmly
b25tZW50KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmgKaW5kZXggNTliZTgxMmQ1OTIyM2Q0
MGU0YzAxNjQ5MjExNWQ4OWE3MjQ3YTM3MC4uOTkzMDhjOGE2ZDVlNWZhM2YyODdlYjMwNTg5Mjc1
ZTBlMTcxMzYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9X
ZWJDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dl
YkNvbnNvbGVBZ2VudC5oCkBAIC0zOCwxMyArMzgsMTUgQEAgY2xhc3MgV2ViQ29uc29sZUFnZW50
IDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShXZWJDb25zb2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIFdlYkNvbnNvbGVBZ2VudChJbnNwZWN0b3I6OkFnZW50Q29udGV4
dCYpOwotICAgIHZpcnR1YWwgfldlYkNvbnNvbGVBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBXZWJD
b25zb2xlQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVhbCB+V2ViQ29uc29sZUFn
ZW50KCk7CiAKKyAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGZyYW1l
V2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyopOwotCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOworCitwcm90ZWN0ZWQ6CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL1dlYkRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9XZWJEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBjYWJlNDk1OTc2NGMwODk2N2MxNzk0NDA2Yzcy
YTEwYmU1YjFiNjQwLi43ODQ0ZjY4YzhjMGY5YmU1YzNiYzViNDFkYmRkMGViYjdmNmI5MzQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJB
Z2VudC5jcHAKQEAgLTM5LDYgKzM5LDggQEAgV2ViRGVidWdnZXJBZ2VudDo6V2ViRGVidWdnZXJB
Z2VudChXZWJBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK1dlYkRlYnVnZ2VyQWdlbnQ6
On5XZWJEZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIFdlYkRlYnVnZ2VyQWdlbnQ6
OmVuYWJsZSgpCiB7CiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZW5hYmxlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCmlu
ZGV4IDQ2MDQ3NWQ5Y2QzNTYyMzg4NjRhZTY5NTEwNWI4ODgxNWU2MTg3MzYuLmZhOGEyNmM3ZmZj
YzQ5YTY1ZmI3NDdjNDY3Nzc0YTY0YWMzNTgwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCkBAIC0zNywxMCArMzcsMTEgQEAg
Y2xhc3MgV2ViRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVn
Z2VyQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkRlYnVnZ2VyQWdlbnQpOwog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdlYkRlYnVnZ2VyQWdl
bnQoV2ViQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+V2ViRGVidWdnZXJBZ2VudCgpID0g
ZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5XZWJEZWJ1Z2dlckFnZW50KCk7CiAKIHByb3RlY3RlZDoK
KyAgICBXZWJEZWJ1Z2dlckFnZW50KFdlYkFnZW50Q29udGV4dCYpOworCiAgICAgdm9pZCBlbmFi
bGUoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9X
ZWJIZWFwQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFw
QWdlbnQuY3BwCmluZGV4IDg2NWJiZDA3YjZmMDk4Y2E3ZTY2NTBkOGFmZWZiY2Y2ZWYwNTE5Mjgu
LjNjYmZiODM3NWU2ZmZkNzZjMDc2NTlkNzFiOWExOWI0YTFhYmFlM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5jcHAKQEAgLTEwMSwxMCAr
MTAxLDcgQEAgV2ViSGVhcEFnZW50OjpXZWJIZWFwQWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250
ZXh0KQogewogfQogCi1XZWJIZWFwQWdlbnQ6On5XZWJIZWFwQWdlbnQoKQotewotICAgIG1fc2Vu
ZEdhcmJhZ2VDb2xsZWN0aW9uRXZlbnRzVGFzay0+cmVzZXQoKTsKLX0KK1dlYkhlYXBBZ2VudDo6
fldlYkhlYXBBZ2VudCgpID0gZGVmYXVsdDsKIAogdm9pZCBXZWJIZWFwQWdlbnQ6OmVuYWJsZShF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9XZWJIZWFwQWdlbnQuaAppbmRleCBiYTk2M2I1ZGEyNTNmNmJlZWRiODNhOWNhYWM1
YzU4ZWNkY2IwZmZiLi44OGVmNDVhZjI3YWJjNGY1ZTQ1N2YxMjZkNzhlZDU5ZTFjMTUxYTFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50LmgKQEAg
LTQzLDEyICs0MywxMiBAQCBwdWJsaWM6CiAgICAgV2ViSGVhcEFnZW50KFdlYkFnZW50Q29udGV4
dCYpOwogICAgIHZpcnR1YWwgfldlYkhlYXBBZ2VudCgpOwogCi1wcm90ZWN0ZWQ6CisgICAgLy8g
SGVhcEJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgogICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIGRpc3BhdGNoR2FyYmFnZUNvbGxlY3RlZEV2ZW50KEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkhlYXA6OkdhcmJhZ2VDb2xsZWN0aW9uOjpUeXBlLCBTZWNvbmRzIHN0YXJ0VGltZSwgU2Vj
b25kcyBlbmRUaW1lKSBvdmVycmlkZTsKLQorcHJvdGVjdGVkOgorICAgIHZvaWQgZGlzcGF0Y2hH
YXJiYWdlQ29sbGVjdGVkRXZlbnQoSW5zcGVjdG9yOjpQcm90b2NvbDo6SGVhcDo6R2FyYmFnZUNv
bGxlY3Rpb246OlR5cGUsIFNlY29uZHMgc3RhcnRUaW1lLCBTZWNvbmRzIGVuZFRpbWUpIGZpbmFs
OwogICAgIHZvaWQgZGlzcGF0Y2hHYXJiYWdlQ29sbGVjdGlvbkV2ZW50c0FmdGVyRGVsYXkoVmVj
dG9yPEdhcmJhZ2VDb2xsZWN0aW9uRGF0YT4mJiBjb2xsZWN0aW9ucyk7CiAKICAgICBJbnN0cnVt
ZW50aW5nQWdlbnRzJiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmNwcAppbmRleCA1
ZTUwMmY2YmY4YTYzYjM5MzMzZWVhNzRjOGQ4MGZhMDY5YWVjYzRkLi41YjZiZmQwYjY5MDk5Zjg5
YWYzOWIyZmMwZjVmMzg0MTc4MDFhZDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5jcHAKQEAgLTU0LDYgKzU0LDgg
QEAgUGFnZUF1ZGl0QWdlbnQ6OlBhZ2VBdWRpdEFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRl
eHQpCiB7CiB9CiAKK1BhZ2VBdWRpdEFnZW50Ojp+UGFnZUF1ZGl0QWdlbnQoKSA9IGRlZmF1bHQ7
CisKIEluamVjdGVkU2NyaXB0IFBhZ2VBdWRpdEFnZW50OjppbmplY3RlZFNjcmlwdEZvckV2YWwo
Y29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpCiB7CiAgICAgaWYgKGV4ZWN1dGlvbkNvbnRl
eHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9Q
YWdlQXVkaXRBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VBdWRpdEFnZW50LmgKaW5kZXggYWM0NmY0ZmVjM2NhMTc5ZmEyODBhN2UwNGU2NWVmYmFmOThl
YjA3MS4uMGQ1MTQxNDZjZjY0NzYzMTYyNzM5ZGFlNmNiMmFkYTRkNDQ0ZTJkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50
LmgKQEAgLTM2LDE2ICszNiwxNyBAQCBjbGFzcyBQYWdlQXVkaXRBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBJbnNwZWN0b3I6Okluc3BlY3RvckF1ZGl0QWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFBhZ2VBdWRpdEFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBleHBsaWNpdCBQYWdlQXVkaXRBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7CisgICAg
UGFnZUF1ZGl0QWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgflBhZ2VBdWRp
dEFnZW50KCk7CiAKIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmpl
Y3RlZFNjcmlwdEZvckV2YWwoY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwotICAgIElu
c3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7Cisg
ICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoSW5zcGVj
dG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKTsKIAotICAg
IHZvaWQgcG9wdWxhdGVBdWRpdE9iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6U3Ryb25nPEpT
Qzo6SlNPYmplY3Q+JiBhdWRpdE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwb3B1bGF0ZUF1
ZGl0T2JqZWN0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mIGF1
ZGl0T2JqZWN0KTsKIAotICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKLSAgICB2b2lk
IHVubXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKKyAgICB2b2lkIG11dGVDb25zb2xlKCk7CisgICAg
dm9pZCB1bm11dGVDb25zb2xlKCk7CiAKICAgICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25z
b2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VD
b25zb2xlQWdlbnQuY3BwCmluZGV4IDZlZWVjMGFjYzQyYzFkYTQwMTRiYjdlNDM2ZTA5YThlNDhk
MDMyNTYuLmEwMWI3Njk2MTUwMDc5NGEyNmRhMjNmNTBlZTc0OTk0MTJkNDI0YmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNv
bGVBZ2VudC5jcHAKQEAgLTUyLDYgKzUyLDggQEAgUGFnZUNvbnNvbGVBZ2VudDo6UGFnZUNvbnNv
bGVBZ2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCitQYWdlQ29uc29sZUFn
ZW50Ojp+UGFnZUNvbnNvbGVBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBQYWdlQ29uc29sZUFn
ZW50OjpjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKIHsKICAgICBpZiAo
YXV0byogZG9tQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdl
Q29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFn
ZUNvbnNvbGVBZ2VudC5oCmluZGV4IGRlYTI0OTRhNzc1ZjU3ZWYyM2I0ZWExNzQ0NTYzMWVjNGM3
ZDRlMWIuLmVlNDc0NzI1M2IzZjc0ODc1NDcyMDY1ZmNmOGNmMWVjMmY1ZjE4MDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xl
QWdlbnQuaApAQCAtNDEsMTQgKzQxLDE0IEBAIGNsYXNzIFBhZ2VDb25zb2xlQWdlbnQgZmluYWwg
OiBwdWJsaWMgV2ViQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBQYWdlQ29uc29sZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5QYWdlQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflBhZ2VD
b25zb2xlQWdlbnQoKTsKIAotICAgIHZvaWQgZ2V0TG9nZ2luZ0NoYW5uZWxzKEVycm9yU3RyaW5n
JiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hh
bm5lbD4+JikgZmluYWw7Ci0gICAgdm9pZCBzZXRMb2dnaW5nQ2hhbm5lbExldmVsKEVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBjaGFubmVsLCBjb25zdCBTdHJpbmcmIGxldmVsKSBmaW5hbDsK
KyAgICAvLyBDb25zb2xlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBjbGVhck1l
c3NhZ2VzKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBnZXRMb2dnaW5nQ2hhbm5lbHMoRXJyb3JT
dHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDb25zb2xl
OjpDaGFubmVsPj4mKTsKKyAgICB2b2lkIHNldExvZ2dpbmdDaGFubmVsTGV2ZWwoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIGNoYW5uZWwsIGNvbnN0IFN0cmluZyYgbGV2ZWwpOwogCiBwcml2
YXRlOgotICAgIHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotCiAg
ICAgSW5zdHJ1bWVudGluZ0FnZW50cyYgbV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAgIFBhZ2Um
IG1faW5zcGVjdGVkUGFnZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBiMzg4NWZiNThj
YmFhZTNiYWUwNzI1ZjY3MTRmYmY3YWI5NmZmZjNkLi43ZjdkN2IwMmVhZGI2YmRkODYyNTY2ZTQ2
YWUzYTY1Mzg4ZmJkNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAgLTY1LDYgKzY1LDggQEAg
UGFnZURlYnVnZ2VyQWdlbnQ6OlBhZ2VEZWJ1Z2dlckFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNv
bnRleHQpCiB7CiB9CiAKK1BhZ2VEZWJ1Z2dlckFnZW50Ojp+UGFnZURlYnVnZ2VyQWdlbnQoKSA9
IGRlZmF1bHQ7CisKIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OmV2YWx1YXRlT25DYWxsRnJhbWUo
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25z
dCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGJv
b2wqIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0
aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBib29sKiByZXR1cm5CeVZhbHVlLCBjb25zdCBib29s
KiBnZW5lcmF0ZVByZXZpZXcsIGNvbnN0IGJvb2wqIHNhdmVSZXN1bHQsIGNvbnN0IGJvb2wqIGVt
dWxhdGVVc2VyR2VzdHVyZSwgUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+
JiByZXN1bHQsIE9wdGlvbmFsPGJvb2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNhdmVk
UmVzdWx0SW5kZXgpCiB7CiAgICAgYXV0byYgcGFnZUNocm9tZUNsaWVudCA9IG1faW5zcGVjdGVk
UGFnZS5jaHJvbWUoKS5jbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmgKaW5kZXggMjU3NTBmYzJlMzkz
ZGM3OGQ4MGVjMDE2YzdhMzE3NGVkNDhmYWY4Yy4uZTI0MzY0ZjUwN2ZhNThkOGQ4NDI5Y2RiODVm
YzhmNDhjMWMxMDQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmgKQEAgLTQ3LDEwICs0NywxMyBAQCBjbGFz
cyBQYWdlRGVidWdnZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBXZWJEZWJ1Z2dlckFnZW50IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdlRGVidWdnZXJBZ2Vu
dChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+UGFnZURlYnVnZ2VyQWdlbnQoKSA9
IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UGFnZURlYnVnZ2VyQWdlbnQoKTsKIAogICAgIC8vIERl
YnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZy
YW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRN
dXRlQ29uc29sZSwgY29uc3QgYm9vbCogcmV0dXJuQnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJh
dGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZlUmVzdWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNl
ckdlc3R1cmUsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmpl
Y3Q+JiByZXN1bHQsIE9wdGlvbmFsPGJvb2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNh
dmVkUmVzdWx0SW5kZXgpIGZpbmFsOworICAgIHZvaWQgZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVz
c2lvbiwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogaW5jbHVkZUNvbW1h
bmRMaW5lQVBJLCBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNv
bGUsIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRlUHJldmll
dywgY29uc3QgYm9vbCogc2F2ZVJlc3VsdCwgY29uc3QgYm9vbCogZW11bGF0ZVVzZXJHZXN0dXJl
LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVz
dWx0LCBPcHRpb25hbDxib29sPiYgd2FzVGhyb3duLCBPcHRpb25hbDxpbnQ+JiBzYXZlZFJlc3Vs
dEluZGV4KTsKKworICAgIC8vIFNjcmlwdERlYnVnTGlzdGVuZXIKKyAgICB2b2lkIGJyZWFrcG9p
bnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIC8vIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgZGlkQ2xlYXJNYWluRnJhbWVXaW5kb3dP
YmplY3QoKTsKQEAgLTY4LDIyICs3MSwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRGlzcGF0
Y2hQb3N0TWVzc2FnZShjb25zdCBUaW1lckJhc2UmKTsKICAgICB2b2lkIGRpZERpc3BhdGNoUG9z
dE1lc3NhZ2UoY29uc3QgVGltZXJCYXNlJik7CiAKLXByb3RlY3RlZDoKLSAgICB2b2lkIGVuYWJs
ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpIG92
ZXJyaWRlOwotCi0gICAgU3RyaW5nIHNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQm
KSBvdmVycmlkZTsKLQotICAgIHZvaWQgZGlkQ2xlYXJBc3luY1N0YWNrVHJhY2VEYXRhKCkgb3Zl
cnJpZGU7Ci0KIHByaXZhdGU6Ci0gICAgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlOwotICAg
IHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlKCk7CisgICAg
dm9pZCBkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCk7CiAKLSAgICAvLyBKU0M6OlNjcmlw
dERlYnVnTGlzdGVuZXIKLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3Rh
dGUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBTdHJpbmcgc291cmNlTWFwVVJMRm9y
U2NyaXB0KGNvbnN0IFNjcmlwdCYpOwogCi0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBp
bmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNv
bnRleHRJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDbGVhckFzeW5jU3RhY2tUcmFjZURhdGEo
KTsKKworICAgIHZvaWQgbXV0ZUNvbnNvbGUoKTsKKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKTsK
KworICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVy
cm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwogCiAgICAgUGFnZSYg
bV9pbnNwZWN0ZWRQYWdlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5jcHAKaW5kZXggNzYyNmIzZGQzNDcxODk3MWY2Nzgz
NWNhOGJiNGVjMmE5OWY1ZDViYS4uZjYyZjZlYjA1Y2U5ZmIzNjRkMGNlZjQ4NDE5YzhkMzYzYjg0
ZDUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VIZWFwQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFn
ZS9QYWdlSGVhcEFnZW50LmNwcApAQCAtMzcsNiArMzcsOCBAQCBQYWdlSGVhcEFnZW50OjpQYWdl
SGVhcEFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK1BhZ2VIZWFwQWdl
bnQ6On5QYWdlSGVhcEFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIFBhZ2VIZWFwQWdlbnQ6OmVu
YWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiB7CiAgICAgV2ViSGVhcEFnZW50OjplbmFi
bGUoZXJyb3JTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvcGFnZS9QYWdlSGVhcEFnZW50LmgKaW5kZXggOGQxMDE3N2I5OWRlNjYwODRjMzRjNmM5MTY3
YzgzOTRjODEzZTg1NC4uNzU2ZmNhMGYxZWY4ZDliZGQ1MmJhMDlhYzUwNjMzMjFlMDgyMjkyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFw
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUhl
YXBBZ2VudC5oCkBAIC0zOCwxMSArMzgsMTMgQEAgY2xhc3MgUGFnZUhlYXBBZ2VudCBmaW5hbCA6
IHB1YmxpYyBXZWJIZWFwQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIFBhZ2VIZWFwQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwg
flBhZ2VIZWFwQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UGFnZUhlYXBBZ2VudCgp
OwogCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
c2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICAvLyBIZWFwQmFja2VuZERpc3BhdGNo
ZXJIYW5kbGVyCisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGRpc2Fi
bGUoRXJyb3JTdHJpbmcmKTsKIAorICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAg
IHZvaWQgbWFpbkZyYW1lTmF2aWdhdGVkKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5jcHAK
aW5kZXggY2M4Y2Q0MWNkZjhiYjRmOTcwZDNlYzU2YzBjYzZlZTkzZmNjOTVmYi4uNTgwYTUwYTM1
NDk1YWRlYzU1NWRmMjc4MDQ0MTVlNWRlMTEyNWJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmNwcApAQCAt
NDYsNiArNDYsOCBAQCBQYWdlTmV0d29ya0FnZW50OjpQYWdlTmV0d29ya0FnZW50KFBhZ2VBZ2Vu
dENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK1BhZ2VOZXR3b3JrQWdlbnQ6On5QYWdlTmV0d29y
a0FnZW50KCkgPSBkZWZhdWx0OworCiBTdHJpbmcgUGFnZU5ldHdvcmtBZ2VudDo6bG9hZGVySWRl
bnRpZmllcihEb2N1bWVudExvYWRlciogbG9hZGVyKQogewogICAgIGlmIChsb2FkZXIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlTmV0d29y
a0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdv
cmtBZ2VudC5oCmluZGV4IDVhMTlkOWFhZDMxNmQ4YTQ5ZjhkZTY2YzY4MDI5YTRkZGI0YjgzYWIu
LjRlOGY1NDE5YjZiMmYwODBiMGI3MmQyOGM5MzQ2ZGZjYTc4NzhkMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQu
aApAQCAtMzYsMTUgKzM2LDE1IEBAIGNsYXNzIFBhZ2VOZXR3b3JrQWdlbnQgZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yTmV0d29ya0FnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBQYWdlTmV0d29ya0FnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5QYWdlTmV0d29ya0FnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflBhZ2VO
ZXR3b3JrQWdlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBTdHJpbmcgbG9hZGVySWRlbnRpZmllcihE
b2N1bWVudExvYWRlciopIGZpbmFsOwotICAgIFN0cmluZyBmcmFtZUlkZW50aWZpZXIoRG9jdW1l
bnRMb2FkZXIqKSBmaW5hbDsKLSAgICBWZWN0b3I8V2ViU29ja2V0Kj4gYWN0aXZlV2ViU29ja2V0
cyhjb25zdCBMb2NrSG9sZGVyJikgZmluYWw7Ci0gICAgdm9pZCBzZXRSZXNvdXJjZUNhY2hpbmdE
aXNhYmxlZChib29sKSBmaW5hbDsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKSBmaW5h
bDsKLSAgICBib29sIHNob3VsZEZvcmNlQnVmZmVyaW5nTmV0d29ya1Jlc291cmNlRGF0YSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIo
RG9jdW1lbnRMb2FkZXIqKTsKKyAgICBTdHJpbmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50TG9h
ZGVyKik7CisgICAgVmVjdG9yPFdlYlNvY2tldCo+IGFjdGl2ZVdlYlNvY2tldHMoY29uc3QgTG9j
a0hvbGRlciYpOworICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoYm9vbCk7Cisg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dChFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CisgICAgYm9vbCBzaG91bGRGb3JjZUJ1ZmZl
cmluZ05ldHdvcmtSZXNvdXJjZURhdGEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
UGFnZSYgbV9pbnNwZWN0ZWRQYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCAyODRkMjg2
ODVjZDlhMTJlODUwYWRmZTRkYmYyZjI3MTYzNDcwOTgyLi45YTFiODZhMGQ5ZjlkMGFlMjZiNzM1
NGRjZWMxNWIyMjQ3YTZmOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC02NCw2ICs2NCw4IEBA
IFBhZ2VSdW50aW1lQWdlbnQ6OlBhZ2VSdW50aW1lQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29u
dGV4dCkKIHsKIH0KIAorUGFnZVJ1bnRpbWVBZ2VudDo6flBhZ2VSdW50aW1lQWdlbnQoKSA9IGRl
ZmF1bHQ7CisKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZykKIHsKICAgICBib29sIGVuYWJsZWQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMucGFn
ZVJ1bnRpbWVBZ2VudCgpID09IHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuaAppbmRleCA5M2E3NmNjMTFkMmY1
N2EwOWJlYzAyZmNkM2VlOGYzMDEwN2FkNmQwLi4wYzExZDI4NDNjNTUzYjkwMjIzNjZiYmZmYmVj
Zjg0OTA3ZjIzNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmgKQEAgLTUxLDIwICs1MSwyMCBAQCBjbGFzcyBQ
YWdlUnVudGltZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yUnVudGlt
ZUFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdl
UnVudGltZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5QYWdlUnVudGlt
ZUFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflBhZ2VSdW50aW1lQWdlbnQoKTsKIAog
ICAgIC8vIFJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShF
cnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92
ZXJyaWRlOwotICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGluY2x1ZGVD
b21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVD
b25zb2xlLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCwgY29uc3QgYm9vbCogcmV0dXJu
QnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZlUmVz
dWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUsIFJlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIE9wdGlvbmFsPGJvb2w+JiB3
YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5kZXgpIGZpbmFsOworICAgIHZv
aWQgZW5hYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7
CisgICAgdm9pZCBldmFsdWF0ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lv
biwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogaW5jbHVkZUNvbW1hbmRM
aW5lQVBJLCBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUs
IGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkLCBjb25zdCBib29sKiByZXR1cm5CeVZhbHVl
LCBjb25zdCBib29sKiBnZW5lcmF0ZVByZXZpZXcsIGNvbnN0IGJvb2wqIHNhdmVSZXN1bHQsIGNv
bnN0IGJvb2wqIGVtdWxhdGVVc2VyR2VzdHVyZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgT3B0aW9uYWw8Ym9vbD4mIHdhc1Rocm93
biwgT3B0aW9uYWw8aW50PiYgc2F2ZWRSZXN1bHRJbmRleCk7CiAKICAgICAvLyBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRpZENyZWF0ZU1haW5Xb3JsZENvbnRleHQoRnJhbWUm
KTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2Ny
aXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBv
dmVycmlkZTsKLSAgICB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB1bm11
dGVDb25zb2xlKCkgb3ZlcnJpZGU7CisgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmpl
Y3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRl
eHRJZCk7CisgICAgdm9pZCBtdXRlQ29uc29sZSgpOworICAgIHZvaWQgdW5tdXRlQ29uc29sZSgp
OwogICAgIHZvaWQgcmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKCk7CiAgICAgdm9pZCBu
b3RpZnlDb250ZXh0Q3JlYXRlZChjb25zdCBTdHJpbmcmIGZyYW1lSWQsIEpTQzo6RXhlY1N0YXRl
KiwgU2VjdXJpdHlPcmlnaW4qLCBib29sIGlzUGFnZUNvbnRleHQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2VyQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtl
ckFnZW50LmNwcAppbmRleCAyZWQ1NWNmNTY3OTlmNjUzMDljZDZlZTI5NmJjNWJiNjM4OTBhMmNk
Li40N2E5YzVhY2RmZWNhNTcxZWY1ZjBiZDUyOTNhMmUzYzAxZTFhYjBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1NlcnZpY2VX
b3JrZXJBZ2VudC5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAgU2VydmljZVdvcmtlckFnZW50OjpTZXJ2
aWNlV29ya2VyQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIEFTU0VSVChj
b250ZXh0Lndvcmtlckdsb2JhbFNjb3BlLmlzQ29udGV4dFRocmVhZCgpKTsKIH0KIAorU2Vydmlj
ZVdvcmtlckFnZW50Ojp+U2VydmljZVdvcmtlckFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIFNl
cnZpY2VXb3JrZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1NlcnZpY2VX
b3JrZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2Vy
dmljZVdvcmtlckFnZW50LmgKaW5kZXggNDE2OGQ5ZDA3MGRkMzg4NzdlNWJkMjM0YjJmMzNkZWQw
N2IxYmQ4Mi4uMDkyZGU4ZmJkYWZlYWZkYzYwMjE0ZTZhMTFlMTA1NzY2MmVhY2I1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtl
ckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2Vy
dmljZVdvcmtlckFnZW50LmgKQEAgLTQwLDE0ICs0MCwxNSBAQCBjbGFzcyBTZXJ2aWNlV29ya2Vy
QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9y
OjpTZQogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlcnZpY2VXb3JrZXJBZ2VudCk7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2VydmljZVdv
cmtlckFnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflNlcnZpY2VXb3Jr
ZXJBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBTZXJ2aWNlV29ya2VyQWdlbnQoV29ya2VyQWdlbnRD
b250ZXh0Jik7CisgICAgdmlydHVhbCB+U2VydmljZVdvcmtlckFnZW50KCk7CiAKLSAgICB2b2lk
IGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwg
SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwotICAgIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsK
KyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlz
cGF0Y2hlciopOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpEaXNjb25uZWN0UmVhc29uKTsKIAogICAgIC8vIFNlcnZpY2VXb3JrZXJCYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGdldEluaXRpYWxpemF0aW9uSW5mbyhFcnJvclN0cmlu
ZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpTZXJ2aWNlV29ya2VyOjpDb25maWd1cmF0
aW9uPiYpIGZpbmFsOworICAgIHZvaWQgZ2V0SW5pdGlhbGl6YXRpb25JbmZvKEVycm9yU3RyaW5n
JiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlNlcnZpY2VXb3JrZXI6OkNvbmZpZ3VyYXRp
b24+Jik7CiAKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBtX3NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5jcHAKaW5kZXggOTE1MDRhMGU0
ZmViZDJmZWU0NWIwZjE2OGM2MzQ1ZjM4YjM5ZTJlMi4uNGI5NTI0MWNmYTEyM2NlZDhmZGI5M2Vm
MjEwOWRlYmQzZTczODE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5jcHAKQEAgLTQ2LDYgKzQ2LDgg
QEAgV29ya2VyQXVkaXRBZ2VudDo6V29ya2VyQXVkaXRBZ2VudChXb3JrZXJBZ2VudENvbnRleHQm
IGNvbnRleHQpCiAgICAgQVNTRVJUKGNvbnRleHQud29ya2VyR2xvYmFsU2NvcGUuaXNDb250ZXh0
VGhyZWFkKCkpOwogfQogCitXb3JrZXJBdWRpdEFnZW50Ojp+V29ya2VyQXVkaXRBZ2VudCgpID0g
ZGVmYXVsdDsKKwogSW5qZWN0ZWRTY3JpcHQgV29ya2VyQXVkaXRBZ2VudDo6aW5qZWN0ZWRTY3Jp
cHRGb3JFdmFsKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQpCiB7CiAgICAgaWYgKGV4ZWN1dGlvbkNvbnRleHRJZCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVkaXRBZ2Vu
dC5oCmluZGV4IDFiOGQ5ZmY3NTk0MTU0ZTZjYzk0YzYzYzQyZTM5Mjg4ZGEzZTI3ZTMuLmU0NmJm
NWZmNTc5NzJhYThkYjJkMzA4ZjhkOWI3MWViMWI2NDM2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJBdWRpdEFnZW50LmgK
QEAgLTM2LDEwICszNiwxMSBAQCBjbGFzcyBXb3JrZXJBdWRpdEFnZW50IGZpbmFsIDogcHVibGlj
IEluc3BlY3Rvcjo6SW5zcGVjdG9yQXVkaXRBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoV29ya2VyQXVkaXRBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgV29ya2VyQXVkaXRBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsK
KyAgICBXb3JrZXJBdWRpdEFnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwg
fldvcmtlckF1ZGl0QWdlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3I6OkluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29u
c3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOworICAgIEluc3BlY3Rvcjo6SW5q
ZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcm
LCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CiAKICAgICBXb3JrZXJHbG9iYWxTY29w
ZSYgbV93b3JrZXJHbG9iYWxTY29wZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQ29uc29sZUFnZW50LmNwcAppbmRl
eCAzODFmNTcyZTkxMjk2YzZiOTRlMTgzNjQ2ZTAxOGY3ZTIyYTkwODAxLi5lYWQ0MmRjMzNkNjg3
ZjA0M2VkNTY3ZTNiOGY0YjE1ODA3Njk2Njc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAK
QEAgLTM4LDQgKzM4LDYgQEAgV29ya2VyQ29uc29sZUFnZW50OjpXb3JrZXJDb25zb2xlQWdlbnQo
V29ya2VyQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIEFTU0VSVChjb250ZXh0Lndvcmtlckds
b2JhbFNjb3BlLmlzQ29udGV4dFRocmVhZCgpKTsKIH0KIAorV29ya2VyQ29uc29sZUFnZW50Ojp+
V29ya2VyQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3Jr
ZXJDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2Vy
L1dvcmtlckNvbnNvbGVBZ2VudC5oCmluZGV4IDdhMmQ2OTU5NzI1MGUzOWZhNGJjODE1ZmVmNjAw
ODE0MjVmNTdhYTcuLmEyMjdhZGMyMjcyYzRkYWM3YmUyNzA3MDNkNzliYjg1MzlmZTUxOGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNv
bnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2Vy
L1dvcmtlckNvbnNvbGVBZ2VudC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFdvcmtlckNvbnNv
bGVBZ2VudCBmaW5hbCA6IHB1YmxpYyBXZWJDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdvcmtlckNvbnNvbGVBZ2VudChXb3JrZXJBZ2Vu
dENvbnRleHQmKTsKLSAgICB+V29ya2VyQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OworICAgIHZp
cnR1YWwgfldvcmtlckNvbnNvbGVBZ2VudCgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29y
a2VyRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3Jr
ZXIvV29ya2VyRGVidWdnZXJBZ2VudC5oCmluZGV4IGU5MTMxNDdhOGVjNzE0ZGMwOTBiMzNhYzI5
MmNhMTA0OTgwNzljN2YuLmIyNTliYjQyYmE2MDUyMWY3NDgwOWYxODM5MWY3NDkyMjE5NTkzYWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtl
ckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dv
cmtlci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKQEAgLTM2LDE3ICszNiwxNyBAQCBjbGFzcyBXb3Jr
ZXJEZWJ1Z2dlckFnZW50IGZpbmFsIDogcHVibGljIFdlYkRlYnVnZ2VyQWdlbnQgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdvcmtlckRlYnVnZ2VyQWdlbnQo
V29ya2VyQWdlbnRDb250ZXh0Jik7Ci0gICAgfldvcmtlckRlYnVnZ2VyQWdlbnQoKTsKKyAgICB2
aXJ0dWFsIH5Xb3JrZXJEZWJ1Z2dlckFnZW50KCk7CisKKyAgICAvLyBTY3JpcHREZWJ1Z0xpc3Rl
bmVyCisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwgY29uc3Qg
U3RyaW5nJik7CiAKIHByaXZhdGU6CiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNv
bGUgZm9yIHdvcmtlcnMuCi0gICAgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQotICAg
IHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUo
KSB7IH0KKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSB7IH0KIAotICAgIC8vIEpTQzo6U2NyaXB0
RGVidWdMaXN0ZW5lcgotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0
ZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwotCi0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNj
cmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1
dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7CisgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBp
bmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNv
bnRleHRJZCk7CiAKICAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29wZTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9X
b3JrZXJOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93
b3JrZXIvV29ya2VyTmV0d29ya0FnZW50LmNwcAppbmRleCBjZmM1Y2QyODM0MjUxNjM0NTNhNjhk
Njg4Y2U4MjM2MTNkOWU4ZWM2Li42OGQzY2Y5YzlmMGMzYTAyYmFmNDVhNzhiYmFiMjFhNGQ0Y2I4
MDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9X
b3JrZXJOZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2VudC5jcHAKQEAgLTQxLDYgKzQxLDggQEAgV29ya2Vy
TmV0d29ya0FnZW50OjpXb3JrZXJOZXR3b3JrQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0JiBjb250
ZXh0KQogICAgIEFTU0VSVChjb250ZXh0Lndvcmtlckdsb2JhbFNjb3BlLmlzQ29udGV4dFRocmVh
ZCgpKTsKIH0KIAorV29ya2VyTmV0d29ya0FnZW50Ojp+V29ya2VyTmV0d29ya0FnZW50KCkgPSBk
ZWZhdWx0OworCiBTdHJpbmcgV29ya2VyTmV0d29ya0FnZW50Ojpsb2FkZXJJZGVudGlmaWVyKERv
Y3VtZW50TG9hZGVyKikKIHsKICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyTmV0d29ya0FnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuaApp
bmRleCA4NjVlMjJiMTlmZTc2MDNkMjk2ZDE4MTI5NThlNTJjZDU0OTU3MTkwLi5jM2E4NjY5NjI0
ODQ1NGExZDJhODllZjI0Njc5NDNjNTFiOTEyZTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuaApA
QCAtMzMsMTYgKzMzLDE2IEBAIGNsYXNzIFdvcmtlck5ldHdvcmtBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBJbnNwZWN0b3JOZXR3b3JrQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtl
ck5ldHdvcmtBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgV29ya2VyTmV0d29ya0FnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOwotICAg
IHZpcnR1YWwgfldvcmtlck5ldHdvcmtBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBXb3JrZXJOZXR3
b3JrQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVhbCB+V29ya2VyTmV0d29y
a0FnZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIoRG9jdW1l
bnRMb2FkZXIqKSBmaW5hbDsKLSAgICBTdHJpbmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50TG9h
ZGVyKikgZmluYWw7Ci0gICAgVmVjdG9yPFdlYlNvY2tldCo+IGFjdGl2ZVdlYlNvY2tldHMoY29u
c3QgTG9ja0hvbGRlciYpIGZpbmFsOwotICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJs
ZWQoYm9vbCkgZmluYWw7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkgZmluYWw7Ci0g
ICAgYm9vbCBzaG91bGRGb3JjZUJ1ZmZlcmluZ05ldHdvcmtSZXNvdXJjZURhdGEoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIoRG9jdW1l
bnRMb2FkZXIqKTsKKyAgICBTdHJpbmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKik7
CisgICAgVmVjdG9yPFdlYlNvY2tldCo+IGFjdGl2ZVdlYlNvY2tldHMoY29uc3QgTG9ja0hvbGRl
ciYpOworICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoYm9vbCk7CisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dChFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CisgICAgYm9vbCBzaG91bGRGb3JjZUJ1ZmZlcmluZ05l
dHdvcmtSZXNvdXJjZURhdGEoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBXb3JrZXJH
bG9iYWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29wZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50
LmNwcAppbmRleCAxYjBmN2QwOTJiY2ExZjUxOTQzNWQ4MzAzNGNiNzYzMjk3YWNmN2Q3Li5jMDlm
OGQwOTA4YTI4ODkwZWZlZTdiNjAzODg5ZWIxZThhMGU0MDdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlclJ1bnRpbWVB
Z2VudC5jcHAKQEAgLTQ5LDYgKzQ5LDggQEAgV29ya2VyUnVudGltZUFnZW50OjpXb3JrZXJSdW50
aW1lQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIEFTU0VSVChjb250ZXh0
Lndvcmtlckdsb2JhbFNjb3BlLmlzQ29udGV4dFRocmVhZCgpKTsKIH0KIAorV29ya2VyUnVudGlt
ZUFnZW50Ojp+V29ya2VyUnVudGltZUFnZW50KCkgPSBkZWZhdWx0OworCiBJbmplY3RlZFNjcmlw
dCBXb3JrZXJSdW50aW1lQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChl
eGVjdXRpb25Db250ZXh0SWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvd29ya2VyL1dvcmtlclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50LmgKaW5kZXggZTc1ZmM5YjVl
ZTcyYzc1MmJjNjkzMjdhNDE0M2QwMTE3NjkyMGRiZC4uZTI5MjNiOWY3NWQ4MThkOTk4NGEyZTQ1
ZGRjZmY1NmI2OGViYmVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50LmgKQEAgLTQ0LDE0ICs0NCwx
NCBAQCBjbGFzcyBXb3JrZXJSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JSdW50aW1lQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIFdvcmtlclJ1bnRpbWVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKLSAgICB+
V29ya2VyUnVudGltZUFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfldvcmtlclJ1bnRp
bWVBZ2VudCgpOwogCiBwcml2YXRlOgotICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5q
ZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250
ZXh0SWQpIG92ZXJyaWRlOworICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQp
OwogCiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNvbGUgZm9yIHdvcmtlcnMuCi0g
ICAgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29s
ZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSB7IH0KKyAgICB2b2lkIHVu
bXV0ZUNvbnNvbGUoKSB7IH0KIAogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlJ1bnRpbWVCYWNrZW5k
RGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKICAgICBXb3JrZXJHbG9iYWxTY29wZSYg
bV93b3JrZXJHbG9iYWxTY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwCmluZGV4IDRjZmMzOTBhNWRjYzY1MzFj
YzNmM2RkYWZjMWM0NjhmZmUwYzA4YmMuLmJhMDAxYzA4ZDAyZjdlZDZjMDA4NTY2ZjdhZjg5YTM4
MWNkZWQyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNw
ZWN0b3JUYXJnZXRBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZUluc3BlY3RvclRhcmdldEFnZW50LmNwcApAQCAtMzQsNiArMzQsOCBAQCBXZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0QWdlbnQ6OldlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudChJbnNwZWN0b3I6OkZy
b250ZW5kUm91dAogewogfQogCitXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQ6On5XZWJQYWdl
SW5zcGVjdG9yVGFyZ2V0QWdlbnQoKSA9IGRlZmF1bHQ7CisKIEluc3BlY3Rvcjo6RnJvbnRlbmRD
aGFubmVsJiBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQ6OmZyb250ZW5kQ2hhbm5lbCgpCiB7
CiAgICAgcmV0dXJuICp0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaAppbmRleCA5MzhiZmQwMGE5YTBlZDQ5YTI5YmEz
NTIzNTczZDU0NjQwNmJjOGJlLi45NjNmOWMzY2NjZWE1NDg3YTRjZTI5M2VjNWUwODNhOGNjOGI1
MTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9y
VGFyZ2V0QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0QWdlbnQuaApAQCAtMzMsMTYgKzMzLDE2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rv
cjo6SW5zcGVjdG9yVGFyZ2V0QWdlbnQsIHB1YmxpYyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5l
bCB7CiBwdWJsaWM6CiAgICAgV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50KEluc3BlY3Rvcjo6
RnJvbnRlbmRSb3V0ZXImLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyJik7Ci0gICAgdmly
dHVhbCB+V2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1
YWwgfldlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudCgpOworCisgICAgLy8gSW5zcGVjdG9yVGFy
Z2V0QWdlbnQKKyAgICBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVs
KCk7CisKKyAgICAvLyBGcm9udGVuZENoYW5uZWwKKyAgICBJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbDo6Q29ubmVjdGlvblR5cGUgY29ubmVjdGlvblR5cGUoKSBjb25zdDsKKyAgICB2b2lkIHNl
bmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsKIAogcHJpdmF0ZToKLSAgICAvLyBJ
bnNwZWN0b3I6Okluc3BlY3RvclRhcmdldEFnZW50Ci0gICAgSW5zcGVjdG9yOjpGcm9udGVuZENo
YW5uZWwmIGZyb250ZW5kQ2hhbm5lbCgpIGZpbmFsOwotCi0gICAgLy8gSW5zcGVjdG9yOjpGcm9u
dGVuZENoYW5uZWwKLSAgICBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5
cGUgY29ubmVjdGlvblR5cGUoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNlbmRNZXNzYWdlVG9G
cm9udGVuZChjb25zdCBTdHJpbmcmKSBmaW5hbDsKLQogICAgIEluc3BlY3Rvcjo6RnJvbnRlbmRS
b3V0ZXImIG1fcm91dGVyOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377307</attachid>
            <date>2019-08-26 18:55:26 -0700</date>
            <delta_ts>2019-09-24 16:24:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200959-20190826185525.patch</filename>
            <type>text/plain</type>
            <size>130589</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGUxZjVlN2RjMGU3MWNkNzA0OTY3OTg5OTgzOTBm
MGE1MDI0YjFjMjEuLjlhMDQ1Yjg4ZDVmNjMwOTE0NDFjN2RmNDk3NzQ1MTdiYjJjNDIzZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA4LTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1
c2UgbW9yZSBDKysga2V5d29yZHMgZm9yIGRlZmluaW5nIGFnZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICAtIG1ha2UgY29uc3RydWN0b3JzIGBw
cm90ZWN0ZWRgIHdoZW4gdGhlIGFnZW50IGlzbid0IG1lYW50IHRvIGJlIGNvbnN0cnVjdGVkIGRp
cmVjdGx5CisgICAgICAgICAtIGFkZCBgdmlydHVhbGAgZGVzdHJ1Y3RvcnMgdGhhdCBhcmUgZGVm
aW5lZCBpbiB0aGUgKi5jcHAgc28gZm9yd2FyZC1kZWNsYXJhdGlvbnMgd29yaworICAgICAgICAg
LSB1c2UgYGZpbmFsYCB3aGVyZXZlciBwb3NzaWJsZQorICAgICAgICAgLSBhZGQgY29tbWVudHMg
dG8gaW5kaWNhdGUgd2hlcmUgYW55IHZpcnR1YWwgZnVuY3Rpb25zIGNvbWUgZnJvbQorCisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQXVkaXRBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2Vu
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3Bw
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50
LmNwcDoKKwogMjAxOS0wOC0yNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogdW5pZnkgYWdlbnQgY29tbWFuZCBlcnJvciBtZXNzYWdl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDA3NjEyMTE1NzU1YTVjZjg4NjA5NWNiYmI0YTQwMTc2NjU5YTQ1M2Eu
LjhkYTAxNDliOWU4Y2I2OGQzZWI5NWFlZjMxNzQ2YzE3OGY4YzNmM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw3NSBAQAorMjAxOS0wOC0yNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlIG1vcmUgQysrIGtleXdvcmRzIGZvciBk
ZWZpbmluZyBhZ2VudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDk1OQorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKwor
ICAgICAgICAgLSBtYWtlIGNvbnN0cnVjdG9ycyBgcHJvdGVjdGVkYCB3aGVuIHRoZSBhZ2VudCBp
c24ndCBtZWFudCB0byBiZSBjb25zdHJ1Y3RlZCBkaXJlY3RseQorICAgICAgICAgLSBhZGQgYHZp
cnR1YWxgIGRlc3RydWN0b3JzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlICouY3BwIHNvIGZvcndh
cmQtZGVjbGFyYXRpb25zIHdvcmsKKyAgICAgICAgIC0gdXNlIGBmaW5hbGAgd2hlcmV2ZXIgcG9z
c2libGUKKyAgICAgICAgIC0gYWRkIGNvbW1lbnRzIHRvIGluZGljYXRlIHdoZXJlIGFueSB2aXJ0
dWFsIGZ1bmN0aW9ucyBjb21lIGZyb20KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ2FudmFzQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRP
TUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
V29ya2VyQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9XZWJIZWFwQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dl
YkhlYXBBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRp
dEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50
LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuY3BwOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
d29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
d29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
d29ya2VyL1dvcmtlckF1ZGl0QWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
d29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
d29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvV29ya2VyRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50LmNwcDoKKwogMjAxOS0wOC0yNiAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogdW5p
ZnkgYWdlbnQgY29tbWFuZCBlcnJvciBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmYjVjZGRhODM3ZGE3
ZGJhYzUyMDk4MDBhZjgxNzI4OTcxYzZjNWZiLi41NjA1N2Q4YWY0ZjYxMDkxNjVhMDk1NGU3YjEz
ZmY1NzlmMDkxNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA4LTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1
c2UgbW9yZSBDKysga2V5d29yZHMgZm9yIGRlZmluaW5nIGFnZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICAtIG1ha2UgY29uc3RydWN0b3JzIGBw
cm90ZWN0ZWRgIHdoZW4gdGhlIGFnZW50IGlzbid0IG1lYW50IHRvIGJlIGNvbnN0cnVjdGVkIGRp
cmVjdGx5CisgICAgICAgICAtIGFkZCBgdmlydHVhbGAgZGVzdHJ1Y3RvcnMgdGhhdCBhcmUgZGVm
aW5lZCBpbiB0aGUgKi5jcHAgc28gZm9yd2FyZC1kZWNsYXJhdGlvbnMgd29yaworICAgICAgICAg
LSB1c2UgYGZpbmFsYCB3aGVyZXZlciBwb3NzaWJsZQorICAgICAgICAgLSBhZGQgY29tbWVudHMg
dG8gaW5kaWNhdGUgd2hlcmUgYW55IHZpcnR1YWwgZnVuY3Rpb25zIGNvbWUgZnJvbQorCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwOgorCiAyMDE5LTA4LTI2
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbjog
SVRQIHN0YXJ0ZWQgZG9pbmcgYSBsb3QgbW9yZSBJUEMgYWZ0ZXIgaXRzIGxvZ2ljIHdhcyBtb3Zl
ZCB0byB0aGUgbmV0d29yayBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggN2IwZDQ2YWQ5
NmM4NzU4YTg3ZGMwMTUxYzAyZDA3MmE3OGU4MzI2Zi4uMWNhMzgwNGU3ZWE3OTI0MGFkMjIzZTg4
ZjJiYmMzM2Y2ZTlhNTRjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcApAQCAtNDUsNiArNDUsOCBAQCBJ
bnNwZWN0b3JBZ2VudDo6SW5zcGVjdG9yQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewog
fQogCitJbnNwZWN0b3JBZ2VudDo6fkluc3BlY3RvckFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lk
IEluc3BlY3RvckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0
ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaAppbmRleCA2ODdiZjc1
MTIyMjg5MDUxNGU4NGQ5OWE4OGRmNTY5OGVmZWExZjkxLi44YzRmOGNjZjNlYTdkOTExYmFmYzNi
ZDg2N2NkNGVmYzBkNmJmNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmgKQEAgLTQ3LDE2ICs0NywyMCBAQCBj
bGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNw
ZWN0b3JBZ2VudEJhc2UsIHB1YmxpYwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIEluc3BlY3RvckFnZW50KEFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfklu
c3BlY3RvckFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkluc3BlY3RvckFnZW50KCk7
CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlcios
IEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICAvLyBJbnNwZWN0
b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVu
ZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKTsKIAotICAgIHZvaWQgZW5hYmxlKEVycm9y
U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBpbml0aWFsaXplZChFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIC8v
IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgZW5hYmxlKEVycm9y
U3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBpbml0
aWFsaXplZChFcnJvclN0cmluZyYpOwogCisgICAgLy8gQ29tbWFuZExpbmVBUEkKICAgICB2b2lk
IGluc3BlY3QoUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiYgb2JqZWN0
VG9JbnNwZWN0LCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGhpbnRzKTsKKwogICAgIHZvaWQgZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjb25zdCBTdHJpbmcmIHNjcmlwdCk7CiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2Vu
dC5jcHAKaW5kZXggZmY4NTgwOTE5NWY3NDY1M2I2Zjk1MjQ5Mzc1YTQ5NmM1YjJhYmVjNy4uNWI2
ZjM4NmYxZDg2MDQxNDcwN2Y2Y2NjOWRmZDBjZjdhMjhiZWUxMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVk
aXRBZ2VudC5jcHAKQEAgLTQ4LDYgKzQ4LDggQEAgSW5zcGVjdG9yQXVkaXRBZ2VudDo6SW5zcGVj
dG9yQXVkaXRBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckF1
ZGl0QWdlbnQ6On5JbnNwZWN0b3JBdWRpdEFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3Bl
Y3RvckF1ZGl0QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRl
ciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuaAppbmRl
eCBhYmFlZjg2MjE0OTVhZWQ2ZDRlNTU5YjI4OTEzM2MyZjljZTdjMzVjLi5hNTYxNGM1ZTdiNGM3
MDcxZDU2ZTZhY2JmYTM1MGM4NTdiNDU2NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oCkBA
IC00MywxMSArNDMsMTEgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yQXVkaXRB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYwogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEluc3BlY3RvckF1ZGl0QWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgfkluc3BlY3RvckF1ZGl0QWdlbnQoKSA9IGRlZmF1
bHQ7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yQXVkaXRBZ2VudCgpOwogCiAgICAgLy8gSW5zcGVj
dG9yQWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRl
bmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5k
RGlzcGF0Y2hlciopIGZpbmFsOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoRGlzY29ubmVjdFJlYXNvbikgZmluYWw7CiAKICAgICAvLyBBdWRpdEJhY2tlbmREaXNwYXRj
aGVySGFuZGxlcgogICAgIHZvaWQgc2V0dXAoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1
dGlvbkNvbnRleHRJZCkgZmluYWw7CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBib29s
IGhhc0FjdGl2ZUF1ZGl0KCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBJbnNw
ZWN0b3JBdWRpdEFnZW50KEFnZW50Q29udGV4dCYpOworICAgIEluc3BlY3RvckF1ZGl0QWdlbnQo
QWdlbnRDb250ZXh0Jik7CiAKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXImIGluamVjdGVkU2Ny
aXB0TWFuYWdlcigpIHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCmluZGV4IDRiODdjNzg1ZjI1NWEyOTIzYzg1OTM2MmNm
Y2VmNWM2MDZhZDljMDkuLjVhZjQwNDIyNmFkOGZhMmVhMmEwOWNkOWNmNWM3Yjc3NWU4ODY3MzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcApAQCAtNTAsNiArNTAsOCBAQCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmIGNv
bnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckNvbnNvbGVBZ2VudDo6fkluc3BlY3RvckNvbnNvbGVB
Z2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikK
IHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggNTUzODdjNDk3ZWFlOWIxN2I5
MjVjYTcxM2Y2ZWNlODNkNGE4NGI3Zi4uYzg1N2NkZGZlYmQ3NzEzM2Q5MzIxZDBiY2ZhYzk3ZjBh
MTIyMzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTUzLDE4ICs1MywyMiBA
QCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JDb25zb2xlQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaQogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JDb25zb2xlQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+
SW5zcGVjdG9yQ29uc29sZUFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRpc2NhcmRWYWx1ZXMoKSBvdmVycmlkZTsKKyAgICAvLyBJbnNw
ZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9u
dGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKKyAgICB2b2lk
IGRpc2NhcmRWYWx1ZXMoKSBmaW5hbDsKKworICAgIC8vIENvbnNvbGVCYWNrZW5kRGlzcGF0Y2hl
ckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZvaWQg
ZGlzYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJv
clN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0TG9nZ2luZ0NoYW5uZWxzKEVycm9yU3Ry
aW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWw+PiYp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TG9nZ2luZ0NoYW5uZWxMZXZlbChFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgY2hhbm5lbCwgY29uc3QgU3RyaW5nJiBsZXZlbCkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHNldEluc3BlY3RvckhlYXBBZ2VudChJbnNwZWN0b3JIZWFwQWdlbnQqIGFnZW50
KSB7IG1faGVhcEFnZW50ID0gYWdlbnQ7IH0KIAotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0KICAgICBib29s
IGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KICAgICB2b2lkIHJlc2V0KCk7
CiAKQEAgLTc3LDkgKzgxLDYgQEAgcHVibGljOgogICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKICAgICB2b2lkIGNvdW50UmVzZXQoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKIAotICAgIHZvaWQgZ2V0TG9nZ2luZ0NoYW5u
ZWxzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNvbnNvbGU6
OkNoYW5uZWw+PiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0TG9nZ2luZ0NoYW5uZWxMZXZlbChF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2hhbm5lbCwgY29uc3QgU3RyaW5nJiBsZXZlbCkg
b3ZlcnJpZGU7Ci0KIHByb3RlY3RlZDoKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHN0ZDo6
dW5pcXVlX3B0cjxDb25zb2xlTWVzc2FnZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuY3BwCmluZGV4IDhiODU2ODQ2NTc0ZTUyMDAyMWMzYzlhMjM2MWM2ZWE0Mjc0OThjZDkuLjMy
OWU3ODViNzFlNGZhYmIzNmYwNzkyNjg0ZWZhZjUyNzRjMjhlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC03MSw5ICs3MSw3IEBAIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIGNs
ZWFyQnJlYWtEZXRhaWxzKCk7CiB9CiAKLUluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6On5JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KCkKLXsKLX0KK0luc3BlY3RvckRlYnVnZ2VyQWdlbnQ6On5JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OwogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmRE
aXNwYXRjaGVyKikKIHsKQEAgLTgxLDggKzc5LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW4K
IAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKLSAgICBib29sIHNraXBSZWNvbXBpbGUg
PSByZWFzb24gPT0gRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkOwot
ICAgIGRpc2FibGUoc2tpcFJlY29tcGlsZSk7CisgICAgZGlzYWJsZShyZWFzb24gPT0gRGlzY29u
bmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjplbmFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmlu
ZGV4IDIzYThkYTAxM2RiOTQ1YTIzMzQzZWUwMDViY2IyNTQyY2YxOTI2OTEuLmFjZDRkY2Q0NWI1
N2FmZjg2MGViNjk4ODNiY2JhOGMwYjlmM2UwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmgKQEAgLTQ5LDE0ICs0OSwxNSBAQCBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiBj
bGFzcyBTY3JpcHREZWJ1Z1NlcnZlcjsKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1j
bGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50IDogcHVibGljIElu
c3BlY3RvckFnZW50QmFzZSwgcHVibGljIFNjcmlwdERlYnVnTGlzdGVuZXIsIHB1YmxpYyBEZWJ1
Z2dlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlciB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGlj
IERlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyLCBwdWJsaWMgU2NyaXB0RGVidWdMaXN0
ZW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCk7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
IGNoYXIqIGJhY2t0cmFjZU9iamVjdEdyb3VwOwotCiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRGVi
dWdnZXJBZ2VudCgpOwogCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGJhY2t0cmFjZU9iamVjdEdy
b3VwOworCisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCiAgICAgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFs
OwogICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNv
bikgZmluYWw7CiAKQEAgLTg0LDYgKzg1LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhdXNl
Rm9ySW50ZXJuYWxTY3JpcHRzKEVycm9yU3RyaW5nJiwgYm9vbCBzaG91bGRQYXVzZSkgZmluYWw7
CiAgICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9i
amVjdEdyb3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wq
IGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgYm9vbCogcmV0dXJu
QnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZlUmVz
dWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUsIFJlZlB0cjxQcm90b2NvbDo6UnVu
dGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxib29sPiYgd2FzVGhyb3duLCBP
cHRpb25hbDxpbnQ+JiBzYXZlZFJlc3VsdEluZGV4KSBvdmVycmlkZTsKIAorICAgIC8vIFNjcmlw
dERlYnVnTGlzdGVuZXIKKyAgICB2b2lkIGRpZFBhcnNlU291cmNlKEpTQzo6U291cmNlSUQsIGNv
bnN0IFNjcmlwdCYpIGZpbmFsOworICAgIHZvaWQgZmFpbGVkVG9QYXJzZVNvdXJjZShjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBkYXRhLCBpbnQgZmlyc3RMaW5lLCBpbnQgZXJyb3JM
aW5lLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgZmluYWw7CisgICAgdm9pZCB3aWxsUnVu
TWljcm90YXNrKCkgZmluYWw7CisgICAgdm9pZCBkaWRSdW5NaWNyb3Rhc2soKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFBhdXNlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlIGNhbGxGcmFtZXMs
IEpTQzo6SlNWYWx1ZSBleGNlcHRpb25PckNhdWdodFZhbHVlKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZENvbnRpbnVlKCkgZmluYWw7CisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uU291bmQoaW50IGJy
ZWFrcG9pbnRBY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGJyZWFrcG9pbnRBY3Rp
b25Qcm9iZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFNjcmlwdEJyZWFrcG9pbnRBY3Rpb24mLCB1
bnNpZ25lZCBiYXRjaElkLCB1bnNpZ25lZCBzYW1wbGVJZCwgSlNDOjpKU1ZhbHVlIHNhbXBsZSkg
ZmluYWw7CisKICAgICBib29sIGlzUGF1c2VkKCkgY29uc3Q7CiAgICAgYm9vbCBicmVha3BvaW50
c0FjdGl2ZSgpIGNvbnN0OwogCkBAIC0xMzEsNyArMTQyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGVuYWJs
ZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKGJvb2wgc2tpcFJlY29tcGlsZSk7CisgICAg
dmlydHVhbCB2b2lkIGRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKTsKIAogICAgIHZpcnR1
YWwgU3RyaW5nIHNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQmKTsKIApAQCAtMTQx
LDE2ICsxNTIsNiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFJlZjxKU09OOjpBcnJheU9m
PFByb3RvY29sOjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lPj4gY3VycmVudENhbGxGcmFtZXMoY29uc3Qg
SW5qZWN0ZWRTY3JpcHQmKTsKIAotICAgIC8vIEpTQzo6U2NyaXB0RGVidWdMaXN0ZW5lcgotICAg
IHZvaWQgZGlkUGFyc2VTb3VyY2UoSlNDOjpTb3VyY2VJRCwgY29uc3QgU2NyaXB0JikgZmluYWw7
Ci0gICAgdm9pZCBmYWlsZWRUb1BhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIGRhdGEsIGludCBmaXJzdExpbmUsIGludCBlcnJvckxpbmUsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKSBmaW5hbDsKLSAgICB2b2lkIHdpbGxSdW5NaWNyb3Rhc2soKSBmaW5hbDsK
LSAgICB2b2lkIGRpZFJ1bk1pY3JvdGFzaygpIGZpbmFsOwotICAgIHZvaWQgZGlkUGF1c2UoSlND
OjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUgY2FsbEZyYW1lcywgSlNDOjpKU1ZhbHVlIGV4Y2Vw
dGlvbk9yQ2F1Z2h0VmFsdWUpIGZpbmFsOwotICAgIHZvaWQgZGlkQ29udGludWUoKSBmaW5hbDsK
LSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChpbnQgYnJlYWtwb2ludEFjdGlvbklkZW50
aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvblByb2JlKEpTQzo6RXhlY1N0
YXRlJiwgY29uc3QgU2NyaXB0QnJlYWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIGJhdGNoSWQsIHVu
c2lnbmVkIHNhbXBsZUlkLCBKU0M6OkpTVmFsdWUgc2FtcGxlKSBmaW5hbDsKLQogICAgIHZvaWQg
cmVzb2x2ZUJyZWFrcG9pbnQoY29uc3QgU2NyaXB0JiwgSlNDOjpCcmVha3BvaW50Jik7CiAgICAg
dm9pZCBzZXRCcmVha3BvaW50KEpTQzo6QnJlYWtwb2ludCYsIGJvb2wmIGV4aXN0aW5nKTsgICAg
CiAgICAgdm9pZCBkaWRTZXRCcmVha3BvaW50KGNvbnN0IEpTQzo6QnJlYWtwb2ludCYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFNjcmlwdEJyZWFrcG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQu
Y3BwCmluZGV4IDdhYzcyMzY0YjFlZjYxNjYyMmU2ZDQ4NDVlMTcyYmY0ZDg5OGY0ZTYuLjkwYzY5
MzRhNGE4MDdhY2YwNmE2YTYwYjI2ZGVkZGU2ZDI0ZGVjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFn
ZW50LmNwcApAQCAtNDksNiArNDksOCBAQCBJbnNwZWN0b3JIZWFwQWdlbnQ6Okluc3BlY3Rvckhl
YXBBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3RvckhlYXBBZ2Vu
dDo6fkluc3BlY3RvckhlYXBBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JIZWFw
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tl
bmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKaW5kZXggMmJiOTE2ZjEy
ZDExYTMxYmYwM2I3NmQ5MjhmMDYwN2E2OTRlMGY3MC4uOWM5MzY2NzNmYjNlNzcwMGRmMTQ4ZTdh
ZmJkMjg3YTVmMmNiOGM3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKQEAgLTQ3LDEwICs0Nywx
MSBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JIZWFwQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIEluc3BlY3RvckhlYXBBZ2VudChBZ2VudENvbnRleHQmKTsKLSAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JIZWFwQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+SW5z
cGVjdG9ySGVhcEFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7Cisg
ICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBm
aW5hbDsKIAogICAgIC8vIEhlYXBCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGVu
YWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwpAQCAtNjIsOSArNjMsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBnZXRQcmV2aWV3KEVycm9yU3RyaW5nJiwgaW50IGhlYXBPYmplY3RJZCwgT3B0aW9u
YWw8U3RyaW5nPiYgcmVzdWx0U3RyaW5nLCBSZWZQdHI8UHJvdG9jb2w6OkRlYnVnZ2VyOjpGdW5j
dGlvbkRldGFpbHM+JiwgUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpPYmplY3RQcmV2aWV3PiYp
IGZpbmFsOwogICAgIHZvaWQgZ2V0UmVtb3RlT2JqZWN0KEVycm9yU3RyaW5nJiwgaW50IGhlYXBP
YmplY3RJZCwgY29uc3QgU3RyaW5nKiBvcHRpb25hbE9iamVjdEdyb3VwLCBSZWZQdHI8UHJvdG9j
b2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkgZmluYWw7CiAKLSAgICAvLyBIZWFw
T2JzZXJ2ZXIKLSAgICB2b2lkIHdpbGxHYXJiYWdlQ29sbGVjdCgpIG92ZXJyaWRlOwotICAgIHZv
aWQgZGlkR2FyYmFnZUNvbGxlY3QoSlNDOjpDb2xsZWN0aW9uU2NvcGUpIG92ZXJyaWRlOworICAg
IC8vIEpTQzo6SGVhcE9ic2VydmVyCisgICAgdm9pZCB3aWxsR2FyYmFnZUNvbGxlY3QoKSBmaW5h
bDsKKyAgICB2b2lkIGRpZEdhcmJhZ2VDb2xsZWN0KEpTQzo6Q29sbGVjdGlvblNjb3BlKSBmaW5h
bDsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJIZWFwU25hcHNob3RzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IDE2YTdkOWY0NjI0YTQyNzNhZjYxMmRhMmM1OTg3YzY1
YTFmY2EyNGYuLmZhMWM0MGM4MTcyYzJlYTAyODRiMDM4NTM0YTVlMGQ4ZTJjNmJmNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC01Myw5ICs1MywxMSBAQCBjbGFzcyBKU19FWFBP
UlRfUFJJVkFURSBJbnNwZWN0b3JSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRC
YXNlLCBwdWJsaQogcHVibGljOgogICAgIHZpcnR1YWwgfkluc3BlY3RvclJ1bnRpbWVBZ2VudCgp
OwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9u
dGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAorICAgIC8vIFJ1bnRpbWVCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRl
IHsgbV9lbmFibGVkID0gdHJ1ZTsgfQogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92
ZXJyaWRlIHsgbV9lbmFibGVkID0gZmFsc2U7IH0KICAgICB2b2lkIHBhcnNlKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBQcm90b2NvbDo6UnVudGltZTo6U3ludGF4RXJy
b3JUeXBlKiByZXN1bHQsIE9wdGlvbmFsPFN0cmluZz4mIG1lc3NhZ2UsIFJlZlB0cjxQcm90b2Nv
bDo6UnVudGltZTo6RXJyb3JSYW5nZT4mKSBmaW5hbDsKQEAgLTcwLDEyICs3MiwxMiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzYXZlUmVzdWx0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0
JiBjYWxsQXJndW1lbnQsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkLCBPcHRpb25hbDxp
bnQ+JiBzYXZlZFJlc3VsdEluZGV4KSBmaW5hbDsKICAgICB2b2lkIHNldFNhdmVkUmVzdWx0QWxp
YXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcqIGFsaWFzKSBmaW5hbDsKICAgICB2b2lkIHJl
bGVhc2VPYmplY3RHcm91cChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAp
IGZpbmFsOwotICAgIHZvaWQgZ2V0UnVudGltZVR5cGVzRm9yVmFyaWFibGVzQXRPZmZzZXRzKEVy
cm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkmIGxvY2F0aW9ucywgUmVmUHRyPEpTT046OkFy
cmF5T2Y8UHJvdG9jb2w6OlJ1bnRpbWU6OlR5cGVEZXNjcmlwdGlvbj4+Jikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBlbmFibGVUeXBlUHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpc2FibGVUeXBlUHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGVuYWJsZUNvbnRyb2xGbG93UHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpc2FibGVDb250cm9sRmxvd1Byb2ZpbGVyKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBnZXRCYXNpY0Jsb2NrcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaW5fc291
cmNlSUQsIFJlZlB0cjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpSdW50aW1lOjpCYXNpY0Jsb2Nr
Pj4mIG91dF9iYXNpY0Jsb2Nrcykgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRSdW50aW1lVHlwZXNG
b3JWYXJpYWJsZXNBdE9mZnNldHMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYgbG9j
YXRpb25zLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6UnVudGltZTo6VHlwZURlc2Ny
aXB0aW9uPj4mKSBmaW5hbDsKKyAgICB2b2lkIGVuYWJsZVR5cGVQcm9maWxlcihFcnJvclN0cmlu
ZyYpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZVR5cGVQcm9maWxlcihFcnJvclN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgZW5hYmxlQ29udHJvbEZsb3dQcm9maWxlcihFcnJvclN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgZGlzYWJsZUNvbnRyb2xGbG93UHJvZmlsZXIoRXJyb3JTdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGdldEJhc2ljQmxvY2tzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBpbl9zb3VyY2VJRCwgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OlJ1bnRpbWU6OkJh
c2ljQmxvY2s+PiYgb3V0X2Jhc2ljQmxvY2tzKSBmaW5hbDsKIAogcHJvdGVjdGVkOgogICAgIElu
c3BlY3RvclJ1bnRpbWVBZ2VudChBZ2VudENvbnRleHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdl
bnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
U2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggY2JhZDgxZDY5OTQ0MGE3MzNiMGFmMDQxNjk0
YTg2Y2E5ZTZlOGVmMC4uNDkxZTQ5OTQ0NGM0NGY5MzY1M2FlM2E3NGIyMTQ5YzMyNWFlZDNjMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAKQEAgLTQ1LDkg
KzQ1LDcgQEAgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9yU2NyaXB0UHJv
ZmlsZXJBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQKIHsKIH0KIAotSW5zcGVjdG9yU2NyaXB0
UHJvZmlsZXJBZ2VudDo6fkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQoKQotewotfQorSW5z
cGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDo6fkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQo
KSA9IGRlZmF1bHQ7CiAKIHZvaWQgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIq
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oCmluZGV4IDhhMjg3
ZDhjNTYxYzZjN2ZkZWI0MmE2NThjNzgwZjIzNzkzNzNmOWEuLjZkNDMyN2YzNDMwYzEzOGY2ZDll
NzQyMGJkNTliOWQ0YzhhNzhiZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmgKQEAgLTQ2LDE3ICs0NiwxOCBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yU2NyaXB0
UHJvZmlsZXJBZ2VudChBZ2VudENvbnRleHQmKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JTY3Jp
cHRQcm9maWxlckFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKTsKIAogICAg
IC8vIFNjcmlwdFByb2ZpbGVyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBzdGFy
dFRyYWNraW5nKEVycm9yU3RyaW5nJiwgY29uc3QgYm9vbCogaW5jbHVkZVNhbXBsZXMpIG92ZXJy
aWRlOwotICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBzdGFydFRyYWNraW5nKEVycm9yU3RyaW5nJiwgY29uc3QgYm9vbCogaW5jbHVkZVNhbXBs
ZXMpOworICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJik7CiAKLSAgICAvLyBEZWJ1
Z2dlcjo6UHJvZmlsaW5nQ2xpZW50Ci0gICAgYm9vbCBpc0FscmVhZHlQcm9maWxpbmcoKSBjb25z
dCBvdmVycmlkZTsKLSAgICBTZWNvbmRzIHdpbGxFdmFsdWF0ZVNjcmlwdCgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZGlkRXZhbHVhdGVTY3JpcHQoU2Vjb25kcywgSlNDOjpQcm9maWxpbmdSZWFzb24p
IG92ZXJyaWRlOworICAgIC8vIEpTQzo6RGVidWdnZXI6OlByb2ZpbGluZ0NsaWVudAorICAgIGJv
b2wgaXNBbHJlYWR5UHJvZmlsaW5nKCkgY29uc3Q7CisgICAgU2Vjb25kcyB3aWxsRXZhbHVhdGVT
Y3JpcHQoKTsKKyAgICB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0KFNlY29uZHMsIEpTQzo6UHJvZmls
aW5nUmVhc29uKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFkZEV2ZW50KFNlY29uZHMgc3RhcnRU
aW1lLCBTZWNvbmRzIGVuZFRpbWUsIEpTQzo6UHJvZmlsaW5nUmVhc29uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFn
ZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clRhcmdldEFnZW50LmNwcAppbmRleCAzNDQwZDA4OWJjNjQ5YzM2YWExMmNlODM1MTkzM2RiNjAz
ZDZmNzQzLi5jNmM2YmY4MDZlMmUyNmIxNTRiZjljYTcyYzBjY2FlOTRmNTAzY2FhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJn
ZXRBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yVGFyZ2V0QWdlbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBAIEluc3BlY3RvclRhcmdl
dEFnZW50OjpJbnNwZWN0b3JUYXJnZXRBZ2VudChGcm9udGVuZFJvdXRlciYgZnJvbnRlbmRSb3V0
ZXIsIEJhY2tlCiB7CiB9CiAKK0luc3BlY3RvclRhcmdldEFnZW50Ojp+SW5zcGVjdG9yVGFyZ2V0
QWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yVGFyZ2V0QWdlbnQ6OmRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikK
IHsKICAgICBtX2lzQ29ubmVjdGVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oCmlu
ZGV4IGM3OThlZWRjZTJlYzRmMWY0YWY1ZGJjZjY0MGE5NGJjM2M5ZTRiYmQuLjAwZmMzYjAyMTcz
NDRiZTRjZGZmNzkxMWMyMTM3MThjNWI5NWNlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQu
aApAQCAtNDAsMTQgKzQwLDEyIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvclRh
cmdldEFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljCiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yVGFyZ2V0QWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIEluc3BlY3RvclRhcmdldEFnZW50KEZyb250ZW5kUm91
dGVyJiwgQmFja2VuZERpc3BhdGNoZXImKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JUYXJnZXRB
Z2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JUYXJnZXRBZ2VudCgpOwog
CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCiAgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwogICAg
IHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgZmlu
YWw7CiAKLSAgICB2aXJ0dWFsIEZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsKCkgPSAw
OwotCiAgICAgLy8gVGFyZ2V0QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCiAgICAgdm9pZCBleGlz
dHMoRXJyb3JTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9UYXJnZXQoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHRhcmdldElkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IGZpbmFsOwpAQCAtNTksNiArNTcsMTEgQEAgcHVibGljOgogICAgIC8vIFRhcmdldCBtZXNzYWdl
cy4KICAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVRhcmdldFRvRnJvbnRlbmQoY29uc3QgU3RyaW5n
JiB0YXJnZXRJZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKIAorcHJvdGVjdGVkOgorICAgIElu
c3BlY3RvclRhcmdldEFnZW50KEZyb250ZW5kUm91dGVyJiwgQmFja2VuZERpc3BhdGNoZXImKTsK
KworICAgIHZpcnR1YWwgRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwoKSA9IDA7CisK
IHByaXZhdGU6CiAgICAgdm9pZCBjb25uZWN0VG9UYXJnZXRzKCk7CiAgICAgdm9pZCBkaXNjb25u
ZWN0RnJvbVRhcmdldHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuY3BwCmlu
ZGV4IDc0MzU0YmEzMjBhZTFiZmZkMDI5OWNjYjZlMzU2ODI1YjVkODk5MzQuLjdiOTM0YzVmZDBj
ZGUzNTMxMmEzYWZkYzNhZGY5MGExYmJhNzM4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RB
dWRpdEFnZW50LmNwcApAQCAtNDQsNiArNDQsOCBAQCBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQ6
OkpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudChKU0FnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0K
IAorSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50Ojp+SlNHbG9iYWxPYmplY3RBdWRpdEFnZW50KCkg
PSBkZWZhdWx0OworCiBJbmplY3RlZFNjcmlwdCBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQ6Omlu
amVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChleGVjdXRpb25Db250ZXh0SWQpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFs
T2JqZWN0QXVkaXRBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmgKaW5kZXggYzFjYWQzMjM2OTBkN2JhYjZlMmY1
NjAxOWI0ZWJhODE5N2I0NDgxYy4uYzdkYTE5M2U4OGQzNzI1MDVkNzhjYzZiZjkyNDVlNWQ4MzFi
Yzk1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmgKQEAgLTM3LDEwICszNywx
MSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVj
dG9yQXVkaXRBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNHbG9iYWxPYmplY3RB
dWRpdEFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoSlNBZ2VudENvbnRleHQmKTsKKyAgICBK
U0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoSlNBZ2VudENvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5K
U0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBJbmplY3RlZFNjcmlw
dCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlv
bkNvbnRleHRJZCkgb3ZlcnJpZGU7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRG
b3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwogCiAg
ICAgSlNDOjpKU0dsb2JhbE9iamVjdCYgbV9nbG9iYWxPYmplY3Q7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1
Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pT
R2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYTJhZjUxMDVjYmFhYzYwZmQ2YzQw
OGE2ZTBhM2Q0ZTkzMmM0Y2Y1MS4uMjEzZThkOWZmZWU5Y2Y1YzFmNTc3ZGRmNTZjOGU3ZjAyZDIw
YWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwCkBAIC00
NSw2ICs0NSw4IEBAIEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudDo6SlNHbG9iYWxPYmplY3RE
ZWJ1Z2dlckFnZW50KEpTQWdlbnRDb250ZXh0JiBjb250ZXh0CiB7CiB9CiAKK0pTR2xvYmFsT2Jq
ZWN0RGVidWdnZXJBZ2VudDo6fkpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudCgpID0gZGVmYXVs
dDsKKwogSW5qZWN0ZWRTY3JpcHQgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50OjppbmplY3Rl
ZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBpbnQqIGV4ZWN1
dGlvbkNvbnRleHRJZCkKIHsKICAgICBpZiAoZXhlY3V0aW9uQ29udGV4dElkKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dERlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCmluZGV4IGUyZjM5ZGI1OTk4MDQ4ZGEwN2Zl
MmZiNzA5ODNkZjIwMTZkYjZhODIuLmE0NmI3NmEzZWI2ZDNjMzQzNzQwZGQzNzg2YzQ5NWFiYzNj
ZjJjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCkBAIC0zNiwx
OCArMzYsMTggQEAgY2xhc3MgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50IGZpbmFsIDogcHVi
bGljIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudChKU0FnZW50Q29udGV4
dCYsIEluc3BlY3RvckNvbnNvbGVBZ2VudCopOwotICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0
RGVidWdnZXJBZ2VudCgpIHsgfQorICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0RGVidWdnZXJB
Z2VudCgpOworCisgICAgLy8gU2NyaXB0RGVidWdMaXN0ZW5lcgorICAgIHZvaWQgYnJlYWtwb2lu
dEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYpOwogCiBwcml2YXRlOgot
ICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNv
bnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKLQotICAgIC8vIEpTQzo6U2Ny
aXB0RGVidWdMaXN0ZW5lcgotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNT
dGF0ZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVk
U2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElk
KTsKIAogICAgIC8vIE5PVEU6IEphdmFTY3JpcHQgaW5zcGVjdG9yIGRvZXMgbm90IHlldCBuZWVk
IHRvIG11dGUgYSBjb25zb2xlIGJlY2F1c2Ugbm8gbWVzc2FnZXMKICAgICAvLyBhcmUgc2VudCB0
byB0aGUgY29uc29sZSBvdXRzaWRlIG9mIHRoZSBBUEkgYm91bmRhcnkgb3IgY29uc29sZSBvYmpl
Y3QuCi0gICAgdm9pZCBtdXRlQ29uc29sZSgpIGZpbmFsIHsgfQotICAgIHZvaWQgdW5tdXRlQ29u
c29sZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSB7IH0KKyAgICB2b2lkIHVu
bXV0ZUNvbnNvbGUoKSB7IH0KIAogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudCogbV9jb25zb2xl
QWdlbnQgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdl
bnQuY3BwCmluZGV4IDNkOWQ0ODg5MDc2YmE4MzlmNmU5NzdkNTM0YjUyYzJhMjE1NzA3ZGUuLjhm
MWI0ZDEyNjI3ZmU1N2YwMzkwYjllNjAwYzcyOGM3OTdkYjE4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0ds
b2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKQEAgLTQyLDYgKzQyLDggQEAgSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQ6OkpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50KEpTQWdlbnRDb250ZXh0
JiBjb250ZXh0KQogewogfQogCitKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6fkpTR2xvYmFs
T2JqZWN0UnVudGltZUFnZW50KCkgPSBkZWZhdWx0OworCiBJbmplY3RlZFNjcmlwdCBKU0dsb2Jh
bE9iamVjdFJ1bnRpbWVBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiBl
cnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpCiB7CiAgICAgQVNTRVJU
X1VOVVNFRChleGVjdXRpb25Db250ZXh0SWQsICFleGVjdXRpb25Db250ZXh0SWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmgKaW5kZXggNjZjZDJkMmFiMWYzY2Q5OGU2OTA0
YmEzNjE0ZDBkYmE3ZDhhNWY5NC4uZWE4NTc0ZTVhZWY4ZjIyZDcxMTVlMzEzNWFhNmZiZDU5MjRi
YTQyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oCkBAIC0zOSwxNSAr
MzksMTYgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMg
SW5zcGVjdG9yUnVudGltZUFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudChKU0FnZW50Q29udGV4dCYpOwor
ICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50KCk7CiAKLSAgICBJbmplY3Rl
ZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4
ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7Citwcml2YXRlOgorICAgIEluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9u
Q29udGV4dElkKTsKIAogICAgIC8vIE5PVEU6IEphdmFTY3JpcHQgaW5zcGVjdG9yIGRvZXMgbm90
IHlldCBuZWVkIHRvIG11dGUgYSBjb25zb2xlIGJlY2F1c2Ugbm8gbWVzc2FnZXMKICAgICAvLyBh
cmUgc2VudCB0byB0aGUgY29uc29sZSBvdXRzaWRlIG9mIHRoZSBBUEkgYm91bmRhcnkgb3IgY29u
c29sZSBvYmplY3QuCi0gICAgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQotICAgIHZv
aWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSB7
IH0KKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSB7IH0KIAotcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UnVudGltZUZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7
CiAgICAgUmVmUHRyPFJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hl
cjsKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBtX2dsb2JhbE9iamVjdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcAppbmRleCA3MWMwNzRmMTBhZmQ1MDUxMmQ2MGI4ODgzMzA4
ODYxYzVjOWI5ZjIzLi5lZjVhYzY0NDc2ZDg4MTc3NjlhMjUyMzJmMzQ2ODk5Mjc1MGQ1MjA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC01MCw2ICs1MCw4IEBAIElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50KFBhZ2VBZ2VudENvbnRleHQmCiB7CiB9CiAKK0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudDo6fkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9p
ZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5oCmluZGV4IDM5MjIxNDk0YWM2NjBlOTE1OTE3MzlhNGE0MjZl
N2MwOWQzMTdmOTcuLmYxNjE4NGZhNjQ3NDQ5N2JiZjRhYTM4MDFlYjY5ZDk3NGVkMWIzM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaApAQCAtNDYsMjIgKzQ2LDIzIEBAIGNsYXNz
IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JB
Z2VudEJhc2UsIHB1YmxpYyBJCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsK
LSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSA9IGRlZmF1bHQ7
CisgICAgdmlydHVhbCB+SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCk7CiAKLSAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVy
KiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpC
YWNrZW5kRGlzcGF0Y2hlciopOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKworICAgIC8vIEFwcGxpY2F0aW9uQ2Fj
aGVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYp
OworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZ2V0RnJhbWVzV2l0
aE1hbmlmZXN0cyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkZyYW1lV2l0aE1hbmlmZXN0Pj4mIHJlc3VsdCk7
CisgICAgdm9pZCBnZXRNYW5pZmVzdEZvckZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBmcmFtZUlkLCBTdHJpbmcqIG1hbmlmZXN0VVJMKTsKKyAgICB2b2lkIGdldEFwcGxpY2F0aW9u
Q2FjaGVGb3JGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGU+
Jik7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHVwZGF0ZUFw
cGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqKTsKICAgICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5n
ZWQoKTsKIAotICAgIC8vIEFwcGxpY2F0aW9uQ2FjaGVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIK
LSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJs
ZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0RnJhbWVzV2l0aE1hbmlmZXN0
cyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFwcGxpY2F0aW9uQ2FjaGU6OkZyYW1lV2l0aE1hbmlmZXN0Pj4mIHJlc3VsdCkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBnZXRNYW5pZmVzdEZvckZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBmcmFtZUlkLCBTdHJpbmcqIG1hbmlmZXN0VVJMKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldEFw
cGxpY2F0aW9uQ2FjaGVGb3JGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0
aW9uQ2FjaGU+Jikgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGU+IGJ1aWxkT2JqZWN0Rm9y
QXBwbGljYXRpb25DYWNoZShjb25zdCBWZWN0b3I8QXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291
cmNlSW5mbz4mLCBjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvJik7CiAgICAg
UmVmPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6
QXBwbGljYXRpb25DYWNoZVJlc291cmNlPj4gYnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZXMoY29uc3QgVmVjdG9yPEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8+
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNQVVByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDUFVQcm9maWxlckFnZW50LmNwcAppbmRleCAxMTYyNGUyNDA5NDY0ZmMxZTFlNjVh
Njk5OGRiZDFiMDY4MmYwYjJjLi5hZmNhZTZlYTEyMGEyN2UwM2Q4OGI0NmEzZDkxYzczYjE0YjI1
ZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNQVVByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAgSW5zcGVj
dG9yQ1BVUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudChQYWdlQWdlbnRD
b250ZXh0JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50Ojp+SW5z
cGVjdG9yQ1BVUHJvZmlsZXJBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JDUFVQ
cm9maWxlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIq
LCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldElu
c3BlY3RvckNQVVByb2ZpbGVyQWdlbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oCmluZGV4
IGE1NDJhYmYxNWY5NGU2ZmIzNjA5ZWJmMTU0ZTkwNzVmNmJkNTk4MjAuLjViZmFiZmFhMzQxNzRl
M2VmYmY4YjFiZjk2ODA4NzY0MTU4YTVkNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oCkBAIC00
MSwxNCArNDEsMTUgQEAgY2xhc3MgSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudCBmaW5hbCA6IHB1
YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWMKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50KFBhZ2VB
Z2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50KCkg
PSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQoKTsKIAot
ICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRS
b3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwogCiAgICAgLy8gQ1BVUHJvZmls
ZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JT
dHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmluZyYpIG92
ZXJyaWRlOworICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpOworICAgIHZvaWQg
c3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb2xsZWN0
U2FtcGxlKGNvbnN0IFJlc291cmNlVXNhZ2VEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGRlZTg5MTUw
NjYxYTdiMTliYzU3OTE5NDRlMDUyOWNjMDgyYzcyYmUuLjhmMDhkN2E1OTA5NmQ0ZjY5NTM2ZDAw
NzBhOGMxMTcxMWIwOWNkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC0zMDIsNiArMzAyLDggQEAgSW5zcGVj
dG9yQ1NTQWdlbnQ6Okluc3BlY3RvckNTU0FnZW50KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkK
IHsKIH0KIAorSW5zcGVjdG9yQ1NTQWdlbnQ6On5JbnNwZWN0b3JDU1NBZ2VudCgpID0gZGVmYXVs
dDsKKwogdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
KikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ1NTQWdlbnQuaAppbmRleCAxZGY3OTU4YTEyYzM1YmNlNTEzMTVmZDYyOTlhMDEyYTA0NDlh
OTc5Li41NmRjZmEzMzBjNGI5MzEyNGYzMjZmNGJhYjI3OTRlZDgyNThiZGFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oCkBA
IC01MywxMyArNTMsMTMgQEAgY2xhc3MgTm9kZUxpc3Q7CiBjbGFzcyBTdHlsZVJlc29sdmVyOwog
Y2xhc3MgU3R5bGVSdWxlOwogCi1jbGFzcyBJbnNwZWN0b3JDU1NBZ2VudCBmaW5hbAotICAgIDog
cHVibGljIEluc3BlY3RvckFnZW50QmFzZQotICAgICwgcHVibGljIEluc3BlY3Rvcjo6Q1NTQmFj
a2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgLCBwdWJsaWMgSW5zcGVjdG9yU3R5bGVTaGVldDo6
TGlzdGVuZXIgeworY2xhc3MgSW5zcGVjdG9yQ1NTQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVj
dG9yQWdlbnRCYXNlICwgcHVibGljIEluc3BlY3Rvcjo6Q1NTQmFja2VuZERpc3BhdGNoZXJIYW5k
bGVyICwgcHVibGljIEluc3BlY3RvclN0eWxlU2hlZXQ6Okxpc3RlbmVyIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShJbnNwZWN0b3JDU1NBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CisgICAgSW5zcGVjdG9yQ1NTQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7
CisgICAgdmlydHVhbCB+SW5zcGVjdG9yQ1NTQWdlbnQoKTsKKwogICAgIGNsYXNzIElubGluZVN0
eWxlT3ZlcnJpZGVTY29wZSB7CiAgICAgcHVibGljOgogICAgICAgICBJbmxpbmVTdHlsZU92ZXJy
aWRlU2NvcGUoU2VjdXJpdHlDb250ZXh0JiBjb250ZXh0KQpAQCAtNzcsMTQgKzc3LDMyIEBAIHB1
YmxpYzoKICAgICAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBtX2NvbnRlbnRTZWN1cml0eVBv
bGljeTsKICAgICB9OwogCi0gICAgSW5zcGVjdG9yQ1NTQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7
Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yQ1NTQWdlbnQoKSA9IGRlZmF1bHQ7Ci0KICAgICBzdGF0
aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0eWxlUnVsZShDU1NSdWxlJik7CiAKLSAgICB2b2lkIGRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHJlc2V0KCk7CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9p
ZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CisKKyAgICAvLyBD
U1NCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYp
OworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZ2V0Q29tcHV0ZWRT
dHlsZUZvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlP
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU0NvbXB1dGVkU3R5bGVQcm9wZXJ0eT4+Jik7
CisgICAgdm9pZCBnZXRJbmxpbmVTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJ
ZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+JiBpbmxpbmVTdHls
ZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+JiBhdHRyaWJ1dGVz
KTsKKyAgICB2b2lkIGdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCwgY29uc3QgYm9vbCogaW5jbHVkZVBzZXVkbywgY29uc3QgYm9vbCogaW5jbHVkZUluaGVy
aXRlZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxl
TWF0Y2g+PiYgbWF0Y2hlZENTU1J1bGVzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz4+JiwgUmVmUHRyPEpTT046OkFycmF5T2Y8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0ZWRTdHlsZUVudHJ5Pj4mIGluaGVyaXRl
ZEVudHJpZXMpOworICAgIHZvaWQgZ2V0QWxsU3R5bGVTaGVldHMoRXJyb3JTdHJpbmcmLCBSZWZQ
dHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRI
ZWFkZXI+PiYgc3R5bGVTaGVldEluZm9zKTsKKyAgICB2b2lkIGdldFN0eWxlU2hlZXQoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEJvZHk+JiByZXN1bHQpOworICAgIHZvaWQgZ2V0U3R5
bGVTaGVldFRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgU3Ry
aW5nKiByZXN1bHQpOworICAgIHZvaWQgc2V0U3R5bGVTaGVldFRleHQoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKyAgICB2b2lk
IHNldFN0eWxlVGV4dChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3R5bGVJZCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NT
dHlsZT4mIHJlc3VsdCk7CisgICAgdm9pZCBzZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBj
b25zdCBKU09OOjpPYmplY3QmIHJ1bGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4mIHJlc3VsdCk7CisgICAgdm9pZCBj
cmVhdGVTdHlsZVNoZWV0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBTdHJp
bmcqIHN0eWxlU2hlZXRJZCk7CisgICAgdm9pZCBhZGRSdWxlKEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBzdHlsZVNoZWV0SWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpOworICAgIHZvaWQgZ2V0U3Vw
cG9ydGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUHJvcGVydHlJbmZvPj4mIHJlc3VsdCk7CisgICAg
dm9pZCBnZXRTdXBwb3J0ZWRTeXN0ZW1Gb250RmFtaWx5TmFtZXMoRXJyb3JTdHJpbmcmLCBSZWZQ
dHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0KTsKKyAgICB2b2lkIGZvcmNlUHNldWRv
U3RhdGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBKU09OOjpBcnJheSYgZm9yY2Vk
UHNldWRvQ2xhc3Nlcyk7CisKKyAgICAvLyBJbnNwZWN0b3JTdHlsZVNoZWV0OjpMaXN0ZW5lcgor
ICAgIHZvaWQgc3R5bGVTaGVldENoYW5nZWQoSW5zcGVjdG9yU3R5bGVTaGVldCopOwogCiAgICAg
Ly8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkb2N1bWVudERldGFjaGVkKERv
Y3VtZW50Jik7CkBAIC05MiwyOCArMTEwLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGFjdGl2ZVN0
eWxlU2hlZXRzVXBkYXRlZChEb2N1bWVudCYpOwogICAgIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShj
b25zdCBFbGVtZW50JiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7CiAKLSAgICAvLyBD
U1NCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYp
IG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAg
IHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZUZvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBS
ZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU0NvbXB1dGVk
U3R5bGVQcm9wZXJ0eT4+Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRJbmxpbmVTdHlsZXNGb3JO
b2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNTUzo6Q1NTU3R5bGU+JiBpbmxpbmVTdHlsZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNTUzo6Q1NTU3R5bGU+JiBhdHRyaWJ1dGVzKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldE1hdGNo
ZWRTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgYm9vbCogaW5j
bHVkZVBzZXVkbywgY29uc3QgYm9vbCogaW5jbHVkZUluaGVyaXRlZCwgUmVmUHRyPEpTT046OkFy
cmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiYgbWF0Y2hlZENTU1J1
bGVzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlBzZXVk
b0lkTWF0Y2hlcz4+JiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6
Q1NTOjpJbmhlcml0ZWRTdHlsZUVudHJ5Pj4mIGluaGVyaXRlZEVudHJpZXMpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZ2V0QWxsU3R5bGVTaGVldHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJy
YXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+PiYgc3R5
bGVTaGVldEluZm9zKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldFN0eWxlU2hlZXQoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNTUzo6Q1NTU3R5bGVTaGVldEJvZHk+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQg
Z2V0U3R5bGVTaGVldFRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJ
ZCwgU3RyaW5nKiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U3R5bGVTaGVldFRleHQo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5nJiB0
ZXh0KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFN0eWxlVGV4dChFcnJvclN0cmluZyYsIGNvbnN0
IEpTT046Ok9iamVjdCYgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIHJlc3VsdCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBzZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVJ
ZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNT
Uzo6Q1NTUnVsZT4mIHJlc3VsdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjcmVhdGVTdHlsZVNoZWV0
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBTdHJpbmcqIHN0eWxlU2hlZXRJ
ZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhZGRSdWxlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBzdHlsZVNoZWV0SWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0cjxJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0
U3VwcG9ydGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9m
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUHJvcGVydHlJbmZvPj4mIHJlc3VsdCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBnZXRTdXBwb3J0ZWRTeXN0ZW1Gb250RmFtaWx5TmFtZXMoRXJyb3JT
dHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0KSBvdmVycmlkZTsK
LSAgICB2b2lkIGZvcmNlUHNldWRvU3RhdGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25z
dCBKU09OOjpBcnJheSYgZm9yY2VkUHNldWRvQ2xhc3Nlcykgb3ZlcnJpZGU7Ci0KICAgICAvLyBJ
bnNwZWN0b3JET01BZ2VudCBob29rcwogICAgIHZvaWQgZGlkUmVtb3ZlRE9NTm9kZShOb2RlJiwg
aW50IG5vZGVJZCk7CiAgICAgdm9pZCBkaWRNb2RpZnlET01BdHRyKEVsZW1lbnQmKTsKIAorICAg
IHZvaWQgcmVzZXQoKTsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBTdHlsZVNoZWV0QWN0aW9uOwog
ICAgIGNsYXNzIFNldFN0eWxlU2hlZXRUZXh0QWN0aW9uOwpAQCAtMTQ1LDggKzE0Nyw2IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpSdWxlTWF0Y2g+PiBidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KGNvbnN0IFZlY3RvcjxS
ZWZQdHI8U3R5bGVSdWxlPj4mLCBTdHlsZVJlc29sdmVyJiwgRWxlbWVudCYsIFBzZXVkb0lkKTsK
ICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4gYnVpbGRPYmpl
Y3RGb3JBdHRyaWJ1dGVzU3R5bGUoU3R5bGVkRWxlbWVudCYpOwogCi0gICAgLy8gSW5zcGVjdG9y
Q1NTQWdlbnQ6Okxpc3RlbmVyIGltcGxlbWVudGF0aW9uCi0gICAgdm9pZCBzdHlsZVNoZWV0Q2hh
bmdlZChJbnNwZWN0b3JTdHlsZVNoZWV0Kikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlc2V0UHNl
dWRvU3RhdGVzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggMjA0N2MxMmJlOTZmMTdlNDAxMTgz
M2FlMzEwMGVlNGFmMjhhMzE5MS4uY2Y3YWExYjhiNzkxYTdjNTY3NDE1MWFjNGUyNTQyNTc5ZDA1
ZWUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKQEAgLTc5LDYgKzc5LDggQEAgSW5zcGVjdG9yQ2FudmFz
QWdlbnQ6Okluc3BlY3RvckNhbnZhc0FnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7
CiB9CiAKK0luc3BlY3RvckNhbnZhc0FnZW50Ojp+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKSA9IGRl
ZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlz
cGF0Y2hlciopCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKaW5kZXggYzdlMmZkNzI1OTIwZjlkZTE3NWIwZDkz
ZDNjN2Y1Mjc5NzI1MTk1Yy4uNWJjZGU3YjMxM2NmZDFkM2ZiOWZjYWY2ZWZmYjE0YTBlNzgzZmE4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
YW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuaApAQCAtNTYsMzEgKzU2LDM3IEBAIGNsYXNzIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNw
ZWN0b3JDYW52YXNBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1Ymxp
YyBDYW52YXNPYnNlcnZlciwgcHVibGljIEluc3BlY3Rvcjo6Q2FudmFzQmFja2VuZERpc3BhdGNo
ZXJIYW5kbGVyIHsKK2NsYXNzIEluc3BlY3RvckNhbnZhc0FnZW50IGZpbmFsIDogcHVibGljIElu
c3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6Q2FudmFzQmFja2VuZERpc3BhdGNo
ZXJIYW5kbGVyLCBwdWJsaWMgQ2FudmFzT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEluc3BlY3RvckNhbnZhc0FnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBleHBsaWNpdCBJbnNwZWN0b3JDYW52YXNBZ2VudChQYWdlQWdlbnRDb250
ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKSA9IGRlZmF1bHQ7Cisg
ICAgSW5zcGVjdG9yQ2FudmFzQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwg
fkluc3BlY3RvckNhbnZhc0FnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlz
cGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2Nh
cmRBZ2VudCgpIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQg
ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlz
Y2FyZEFnZW50KCk7CiAKICAgICAvLyBDYW52YXNCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAg
ICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShF
cnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBpbnQqIG5vZGVJZCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCByZXF1ZXN0Q29udGVudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIFN0
cmluZyogY29udGVudCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0Q1NTQ2FudmFzQ2xpZW50
Tm9kZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBSZWZQdHI8SlNPTjo6
QXJyYXlPZjxpbnQ+PiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzb2x2ZUNhbnZhc0NvbnRleHQo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBjb25zdCBTdHJpbmcqIG9iamVj
dEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0
PiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50
KEVycm9yU3RyaW5nJiwgaW50IGNvdW50KSBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0UmVjb3Jk
aW5nKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCwgY29uc3QgaW50KiBmcmFt
ZUNvdW50LCBjb25zdCBpbnQqIG1lbW9yeUxpbWl0KSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BS
ZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBTdHJpbmcqKSBvdmVycmlkZTsK
LSAgICB2b2lkIHVwZGF0ZVNoYWRlcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3Jh
bUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNldFNoYWRlclByb2dyYW1EaXNhYmxlZChFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBib29sIGRpc2FibGVkKSBvdmVycmlkZTsKLSAgICB2b2lk
IHNldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
cHJvZ3JhbUlkLCBib29sIGhpZ2hsaWdodGVkKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuYWJsZShF
cnJvclN0cmluZyYpOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQg
cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBpbnQqIG5v
ZGVJZCk7CisgICAgdm9pZCByZXF1ZXN0Q29udGVudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgY2FudmFzSWQsIFN0cmluZyogY29udGVudCk7CisgICAgdm9pZCByZXF1ZXN0Q1NTQ2FudmFz
Q2xpZW50Tm9kZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBSZWZQdHI8
SlNPTjo6QXJyYXlPZjxpbnQ+PiYpOworICAgIHZvaWQgcmVzb2x2ZUNhbnZhc0NvbnRleHQoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdy
b3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYp
OworICAgIHZvaWQgc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KEVycm9yU3RyaW5n
JiwgaW50IGNvdW50KTsKKyAgICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBjYW52YXNJZCwgY29uc3QgaW50KiBmcmFtZUNvdW50LCBjb25zdCBpbnQqIG1l
bW9yeUxpbWl0KTsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGNhbnZhc0lkKTsKKyAgICB2b2lkIHJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBT
dHJpbmcqKTsKKyAgICB2b2lkIHVwZGF0ZVNoYWRlcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgcHJvZ3JhbUlkLCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc291
cmNlKTsKKyAgICB2b2lkIHNldFNoYWRlclByb2dyYW1EaXNhYmxlZChFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBib29sIGRpc2FibGVkKTsKKyAgICB2b2lkIHNldFNoYWRl
clByb2dyYW1IaWdobGlnaHRlZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlk
LCBib29sIGhpZ2hsaWdodGVkKTsKKworICAgIC8vIENhbnZhc09ic2VydmVyCisgICAgdm9pZCBj
YW52YXNDaGFuZ2VkKENhbnZhc0Jhc2UmLCBjb25zdCBGbG9hdFJlY3QmKTsKKyAgICB2b2lkIGNh
bnZhc1Jlc2l6ZWQoQ2FudmFzQmFzZSYpIHsgfQorICAgIHZvaWQgY2FudmFzRGVzdHJveWVkKENh
bnZhc0Jhc2UmKTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQg
ZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmKTsKQEAgLTk5LDExICsxMDUsNiBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1NoYWRlclByb2dyYW1IaWdobGlnaHRlZChXZWJHTFByb2dyYW0mKTsKICNlbmRpZgog
Ci0gICAgLy8gQ2FudmFzT2JzZXJ2ZXIKLSAgICB2b2lkIGNhbnZhc0NoYW5nZWQoQ2FudmFzQmFz
ZSYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2FudmFzUmVzaXplZChD
YW52YXNCYXNlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBjYW52YXNEZXN0cm95ZWQoQ2FudmFz
QmFzZSYpIG92ZXJyaWRlOwotCiBwcml2YXRlOgogICAgIHN0cnVjdCBSZWNvcmRpbmdPcHRpb25z
IHsKICAgICAgICAgT3B0aW9uYWw8bG9uZz4gZnJhbWVDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggOTJh
ZTYyYWY5OTJhMjI3ZmYyNTI4MzlhZmU2NzhiYTNmYTNjYTQ0Yi4uYWJkM2JmZjc3MDVlNWIyMDll
ZDM1NDAyMTdiMmU4NGMzODRkNDJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTI5MywxMSArMjkzLDcgQEAg
SW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNv
bnRleHQsIEluc3BlY3Rvck92ZXJsYXkKIHsKIH0KIAotSW5zcGVjdG9yRE9NQWdlbnQ6On5JbnNw
ZWN0b3JET01BZ2VudCgpCi17Ci0gICAgcmVzZXQoKTsKLSAgICBBU1NFUlQoIW1fc2VhcmNoaW5n
Rm9yTm9kZSk7Ci19CitJbnNwZWN0b3JET01BZ2VudDo6fkluc3BlY3RvckRPTUFnZW50KCkgPSBk
ZWZhdWx0OwogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3Bh
dGNoZXIqKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JET01BZ2VudC5oCmluZGV4IDczZmUyMDNlZDMyZTQ3MTY1MTZhZWM3ODVmZjg4YWRiMTA0
ZmQ1M2IuLjgwNGYyYmNiMjg5NmZjOTAxYzM1NTRhZDY4MzRhYzFiYWFhNDUzYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgK
QEAgLTg3LDU1ICs4Nyw2NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyB0b0Vycm9yU3Ry
aW5nKEV4Y2VwdGlvbkNvZGUpOwogICAgIHN0YXRpYyBTdHJpbmcgdG9FcnJvclN0cmluZyhFeGNl
cHRpb24mJik7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJy
aWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpE
aXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICBzdGF0aWMgU3RyaW5nIGRvY3VtZW50VVJM
U3RyaW5nKERvY3VtZW50Kik7CiAKLSAgICBWZWN0b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsK
LSAgICB2b2lkIHJlc2V0KCk7CisgICAgLy8gV2UgcmVwcmVzZW50IGVtYmVkZGVkIGRvbXMgYXMg
YSBwYXJ0IG9mIHRoZSBzYW1lIGhpZXJhcmNoeS4gSGVuY2Ugd2UgdHJlYXQgY2hpbGRyZW4gb2Yg
ZnJhbWUgb3duZXJzIGRpZmZlcmVudGx5LgorICAgIC8vIFdlIGFsc28gc2tpcCB3aGl0ZXNwYWNl
IHRleHQgbm9kZXMgY29uZGl0aW9uYWxseS4gRm9sbG93aW5nIG1ldGhvZHMgZW5jYXBzdWxhdGUg
dGhlc2Ugc3BlY2lmaWNzLgorICAgIHN0YXRpYyBOb2RlKiBpbm5lckZpcnN0Q2hpbGQoTm9kZSop
OworICAgIHN0YXRpYyBOb2RlKiBpbm5lck5leHRTaWJsaW5nKE5vZGUqKTsKKyAgICBzdGF0aWMg
Tm9kZSogaW5uZXJQcmV2aW91c1NpYmxpbmcoTm9kZSopOworICAgIHN0YXRpYyB1bnNpZ25lZCBp
bm5lckNoaWxkTm9kZUNvdW50KE5vZGUqKTsKKyAgICBzdGF0aWMgTm9kZSogaW5uZXJQYXJlbnRO
b2RlKE5vZGUqKTsKIAotICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gdGhlIGZyb250ZW5kIGZv
ciBET00gbm9kZXMgaW5zcGVjdGlvbi4KLSAgICB2b2lkIHF1ZXJ5U2VsZWN0b3IoRXJyb3JTdHJp
bmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgaW50KiBlbGVtZW50SWQp
IG92ZXJyaWRlOwotICAgIHZvaWQgcXVlcnlTZWxlY3RvckFsbChFcnJvclN0cmluZyYsIGludCBu
b2RlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+
PiYgcmVzdWx0KSBvdmVycmlkZTsKLSAgICB2b2lkIGdldERvY3VtZW50KEVycm9yU3RyaW5nJiwg
UmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4mIHJvb3QpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcmVxdWVzdENoaWxkTm9kZXMoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25z
dCBpbnQqIGRlcHRoKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEF0dHJpYnV0ZVZhbHVlKEVycm9y
U3RyaW5nJiwgaW50IGVsZW1lbnRJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZhbHVlKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEF0dHJpYnV0ZXNBc1RleHQoRXJyb3JTdHJp
bmcmLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyogbmFt
ZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoRXJyb3JTdHJpbmcmLCBpbnQg
ZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3Zl
Tm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0Tm9k
ZU5hbWUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGludCog
bmV3SWQpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nJiwgaW50
IG5vZGVJZCwgV1RGOjpTdHJpbmcqIG91dGVySFRNTCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRP
dXRlckhUTUwoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIG91dGVySFRN
TCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbnNlcnRBZGphY2VudEhUTUwoRXJyb3JTdHJpbmcmLCBp
bnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHBvc2l0aW9uLCBjb25zdCBTdHJpbmcmIGh0bWwpIG92
ZXJyaWRlOwotICAgIHZvaWQgc2V0Tm9kZVZhbHVlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBnZXRTdXBwb3J0ZWRFdmVu
dE5hbWVzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8U3RyaW5nPj4mIGV2ZW50
TmFtZXMpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0RGF0YUJpbmRpbmdzRm9yTm9kZShFcnJvclN0
cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkRPTTo6RGF0YUJpbmRpbmc+PiYgZGF0YUFycmF5KSBvdmVycmlkZTsKLSAgICB2b2lkIGdl
dEFzc29jaWF0ZWREYXRhRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIE9wdGlvbmFs
PFN0cmluZz4mIGFzc29jaWF0ZWREYXRhKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldEV2ZW50TGlz
dGVuZXJzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJh
eU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5lcj4+JiBsaXN0ZW5lcnNB
cnJheSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRFdmVudExpc3RlbmVyRGlzYWJsZWQoRXJyb3JT
dHJpbmcmLCBpbnQgZXZlbnRMaXN0ZW5lcklkLCBib29sIGRpc2FibGVkKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldEJyZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKEVycm9yU3RyaW5nJiwgaW50IGV2
ZW50TGlzdGVuZXJJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVCcmVha3BvaW50Rm9yRXZl
bnRMaXN0ZW5lcihFcnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwg
aW50IG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6QWNjZXNzaWJpbGl0
eVByb3BlcnRpZXM+JiBheFByb3BlcnRpZXMpIG92ZXJyaWRlOwotICAgIHZvaWQgcGVyZm9ybVNl
YXJjaChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IEpTT046OkFycmF5
KiBub2RlSWRzLCBjb25zdCBib29sKiBjYXNlU2Vuc2l0aXZlLCBTdHJpbmcqIHNlYXJjaElkLCBp
bnQqIHJlc3VsdENvdW50KSBvdmVycmlkZTsKLSAgICB2b2lkIGdldFNlYXJjaFJlc3VsdHMoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHNlYXJjaElkLCBpbnQgZnJvbUluZGV4LCBpbnQgdG9J
bmRleCwgUmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
c2NhcmRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzZWFyY2hJZCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNvbHZlTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQs
IGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpS
dW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgZ2V0QXR0
cmlidXRlcyhFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0
cmluZz4+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0SW5zcGVjdE1vZGVFbmFibGVk
KEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBjb25zdCBKU09OOjpPYmplY3QqIGhpZ2hsaWdo
dENvbmZpZywgY29uc3QgYm9vbCogc2hvd1J1bGVycykgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1
ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGludCogbm9kZUlk
KSBvdmVycmlkZTsKLSAgICB2b2lkIHB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgcGF0aCwgaW50KiBub2RlSWQpIG92ZXJyaWRlOwotICAgIHZvaWQg
aGlkZUhpZ2hsaWdodChFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgaGlnaGxpZ2h0
UmVjdChFcnJvclN0cmluZyYsIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBj
b25zdCBKU09OOjpPYmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xv
ciwgY29uc3QgYm9vbCogdXNlUGFnZUNvb3JkaW5hdGVzKSBvdmVycmlkZTsKLSAgICB2b2lkIGhp
Z2hsaWdodFF1YWQoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYgcXVhZCwgY29uc3Qg
SlNPTjo6T2JqZWN0KiBjb2xvciwgY29uc3QgSlNPTjo6T2JqZWN0KiBvdXRsaW5lQ29sb3IsIGNv
bnN0IGJvb2wqIHVzZVBhZ2VDb29yZGluYXRlcykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWdobGln
aHRTZWxlY3RvcihFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29u
ZmlnLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yU3RyaW5nLCBjb25zdCBTdHJpbmcqIGZyYW1lSWQp
IG92ZXJyaWRlOwotICAgIHZvaWQgaGlnaGxpZ2h0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IEpT
T046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmlnLCBjb25zdCBpbnQqIG5vZGVJZCwgY29uc3QgU3Ry
aW5nKiBvYmplY3RJZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWdobGlnaHROb2RlTGlzdChFcnJv
clN0cmluZyYsIGNvbnN0IEpTT046OkFycmF5JiBub2RlSWRzLCBjb25zdCBKU09OOjpPYmplY3Qm
IGhpZ2hsaWdodENvbmZpZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoaWdobGlnaHRGcmFtZShFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgSlNPTjo6T2JqZWN0KiBjb2xv
ciwgY29uc3QgSlNPTjo6T2JqZWN0KiBvdXRsaW5lQ29sb3IpIG92ZXJyaWRlOwotICAgIHZvaWQg
bW92ZVRvKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgaW50IHRhcmdldE5vZGVJZCwgY29uc3Qg
aW50KiBhbmNob3JOb2RlSWQsIGludCogbmV3Tm9kZUlkKSBvdmVycmlkZTsKLSAgICB2b2lkIHVu
ZG8oRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlZG8oRXJyb3JTdHJpbmcmKSBv
dmVycmlkZTsKLSAgICB2b2lkIG1hcmtVbmRvYWJsZVN0YXRlKEVycm9yU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBmb2N1cyhFcnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlOwot
ICAgIHZvaWQgc2V0SW5zcGVjdGVkTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJy
aWRlOworICAgIHN0YXRpYyBOb2RlKiBzY3JpcHRWYWx1ZUFzTm9kZShKU0M6OkpTVmFsdWUpOwor
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUm
LCBOb2RlKik7CisKKyAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKworICAgIC8vIERPTUJhY2tlbmRE
aXNwYXRjaGVySGFuZGxlcgorICAgIHZvaWQgcXVlcnlTZWxlY3RvcihFcnJvclN0cmluZyYsIGlu
dCBub2RlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBpbnQqIGVsZW1lbnRJZCk7CisgICAg
dm9pZCBxdWVyeVNlbGVjdG9yQWxsKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3Ry
aW5nJiBzZWxlY3RvcnMsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+JiByZXN1bHQpOworICAg
IHZvaWQgZ2V0RG9jdW1lbnQoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6RE9NOjpOb2RlPiYgcm9vdCk7CisgICAgdm9pZCByZXF1ZXN0Q2hpbGROb2RlcyhFcnJvclN0
cmluZyYsIGludCBub2RlSWQsIGNvbnN0IGludCogZGVwdGgpOworICAgIHZvaWQgc2V0QXR0cmli
dXRlVmFsdWUoRXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgc2V0QXR0cmlidXRlc0FzVGV4dChFcnJv
clN0cmluZyYsIGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
KiBuYW1lKTsKKyAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShFcnJvclN0cmluZyYsIGludCBlbGVt
ZW50SWQsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCByZW1vdmVOb2RlKEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCk7CisgICAgdm9pZCBzZXROb2RlTmFtZShFcnJvclN0cmluZyYsIGlu
dCBub2RlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgaW50KiBuZXdJZCk7CisgICAgdm9pZCBnZXRP
dXRlckhUTUwoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBXVEY6OlN0cmluZyogb3V0ZXJIVE1M
KTsKKyAgICB2b2lkIHNldE91dGVySFRNTChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0
IFN0cmluZyYgb3V0ZXJIVE1MKTsKKyAgICB2b2lkIGluc2VydEFkamFjZW50SFRNTChFcnJvclN0
cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgcG9zaXRpb24sIGNvbnN0IFN0cmluZyYg
aHRtbCk7CisgICAgdm9pZCBzZXROb2RlVmFsdWUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIGdldFN1cHBvcnRlZEV2ZW50TmFtZXMoRXJy
b3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgZXZlbnROYW1lcyk7Cisg
ICAgdm9pZCBnZXREYXRhQmluZGluZ3NGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwg
UmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpEYXRhQmluZGlu
Zz4+JiBkYXRhQXJyYXkpOworICAgIHZvaWQgZ2V0QXNzb2NpYXRlZERhdGFGb3JOb2RlKEVycm9y
U3RyaW5nJiwgaW50IG5vZGVJZCwgT3B0aW9uYWw8U3RyaW5nPiYgYXNzb2NpYXRlZERhdGEpOwor
ICAgIHZvaWQgZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJ
ZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVudExp
c3RlbmVyPj4mIGxpc3RlbmVyc0FycmF5KTsKKyAgICB2b2lkIHNldEV2ZW50TGlzdGVuZXJEaXNh
YmxlZChFcnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQsIGJvb2wgZGlzYWJsZWQpOwor
ICAgIHZvaWQgc2V0QnJlYWtwb2ludEZvckV2ZW50TGlzdGVuZXIoRXJyb3JTdHJpbmcmLCBpbnQg
ZXZlbnRMaXN0ZW5lcklkKTsKKyAgICB2b2lkIHJlbW92ZUJyZWFrcG9pbnRGb3JFdmVudExpc3Rl
bmVyKEVycm9yU3RyaW5nJiwgaW50IGV2ZW50TGlzdGVuZXJJZCk7CisgICAgdm9pZCBnZXRBY2Nl
c3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpBY2Nlc3NpYmlsaXR5UHJvcGVydGllcz4mIGF4
UHJvcGVydGllcyk7CisgICAgdm9pZCBwZXJmb3JtU2VhcmNoKEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBxdWVyeSwgY29uc3QgSlNPTjo6QXJyYXkqIG5vZGVJZHMsIGNvbnN0IGJvb2wqIGNh
c2VTZW5zaXRpdmUsIFN0cmluZyogc2VhcmNoSWQsIGludCogcmVzdWx0Q291bnQpOworICAgIHZv
aWQgZ2V0U2VhcmNoUmVzdWx0cyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc2VhcmNoSWQs
IGludCBmcm9tSW5kZXgsIGludCB0b0luZGV4LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYp
OworICAgIHZvaWQgZGlzY2FyZFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIHNlYXJjaElkKTsKKyAgICB2b2lkIHJlc29sdmVOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCk7CisgICAgdm9pZCBnZXRBdHRyaWJ1
dGVzKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8U3RyaW5n
Pj4mIHJlc3VsdCk7CisgICAgdm9pZCBzZXRJbnNwZWN0TW9kZUVuYWJsZWQoRXJyb3JTdHJpbmcm
LCBib29sIGVuYWJsZWQsIGNvbnN0IEpTT046Ok9iamVjdCogaGlnaGxpZ2h0Q29uZmlnLCBjb25z
dCBib29sKiBzaG93UnVsZXJzKTsKKyAgICB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpOworICAgIHZvaWQgcHVzaE5vZGVC
eVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5v
ZGVJZCk7CisgICAgdm9pZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBo
aWdobGlnaHRSZWN0KEVycm9yU3RyaW5nJiwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBo
ZWlnaHQsIGNvbnN0IEpTT046Ok9iamVjdCogY29sb3IsIGNvbnN0IEpTT046Ok9iamVjdCogb3V0
bGluZUNvbG9yLCBjb25zdCBib29sKiB1c2VQYWdlQ29vcmRpbmF0ZXMpOworICAgIHZvaWQgaGln
aGxpZ2h0UXVhZChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046OkFycmF5JiBxdWFkLCBjb25zdCBK
U09OOjpPYmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xvciwgY29u
c3QgYm9vbCogdXNlUGFnZUNvb3JkaW5hdGVzKTsKKyAgICB2b2lkIGhpZ2hsaWdodFNlbGVjdG9y
KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGlnaHRDb25maWcsIGNvbnN0
IFN0cmluZyYgc2VsZWN0b3JTdHJpbmcsIGNvbnN0IFN0cmluZyogZnJhbWVJZCk7CisgICAgdm9p
ZCBoaWdobGlnaHROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGln
aHRDb25maWcsIGNvbnN0IGludCogbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdElkKTsKKyAg
ICB2b2lkIGhpZ2hsaWdodE5vZGVMaXN0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkm
IG5vZGVJZHMsIGNvbnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmlnKTsKKyAgICB2b2lk
IGhpZ2hsaWdodEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25z
dCBKU09OOjpPYmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xvcik7
CisgICAgdm9pZCBtb3ZlVG8oRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBpbnQgdGFyZ2V0Tm9k
ZUlkLCBjb25zdCBpbnQqIGFuY2hvck5vZGVJZCwgaW50KiBuZXdOb2RlSWQpOworICAgIHZvaWQg
dW5kbyhFcnJvclN0cmluZyYpOworICAgIHZvaWQgcmVkbyhFcnJvclN0cmluZyYpOworICAgIHZv
aWQgbWFya1VuZG9hYmxlU3RhdGUoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGZvY3VzKEVycm9y
U3RyaW5nJiwgaW50IG5vZGVJZCk7CisgICAgdm9pZCBzZXRJbnNwZWN0ZWROb2RlKEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCk7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAg
ICBpbnQgaWRlbnRpZmllckZvck5vZGUoTm9kZSYpOwpAQCAtMTcwLDggKzE4MSw2IEBAIHB1Ymxp
YzoKICAgICBOb2RlKiBub2RlRm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJvdW5kTm9kZUlk
KGNvbnN0IE5vZGUqKTsKIAotICAgIHN0YXRpYyBTdHJpbmcgZG9jdW1lbnRVUkxTdHJpbmcoRG9j
dW1lbnQqKTsKLQogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1v
dGVPYmplY3Q+IHJlc29sdmVOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKTsK
ICAgICBib29sIGhhbmRsZU1vdXNlUHJlc3MoKTsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKQEAg
LTE3OSwyMiArMTg4LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGZvY3VzTm9kZSgpOwogCiAgICAg
SW5zcGVjdG9ySGlzdG9yeSogaGlzdG9yeSgpIHsgcmV0dXJuIG1faGlzdG9yeS5nZXQoKTsgfQot
Ci0gICAgLy8gV2UgcmVwcmVzZW50IGVtYmVkZGVkIGRvbXMgYXMgYSBwYXJ0IG9mIHRoZSBzYW1l
IGhpZXJhcmNoeS4gSGVuY2Ugd2UgdHJlYXQgY2hpbGRyZW4gb2YgZnJhbWUgb3duZXJzIGRpZmZl
cmVudGx5LgotICAgIC8vIFdlIGFsc28gc2tpcCB3aGl0ZXNwYWNlIHRleHQgbm9kZXMgY29uZGl0
aW9uYWxseS4gRm9sbG93aW5nIG1ldGhvZHMgZW5jYXBzdWxhdGUgdGhlc2Ugc3BlY2lmaWNzLgot
ICAgIHN0YXRpYyBOb2RlKiBpbm5lckZpcnN0Q2hpbGQoTm9kZSopOwotICAgIHN0YXRpYyBOb2Rl
KiBpbm5lck5leHRTaWJsaW5nKE5vZGUqKTsKLSAgICBzdGF0aWMgTm9kZSogaW5uZXJQcmV2aW91
c1NpYmxpbmcoTm9kZSopOwotICAgIHN0YXRpYyB1bnNpZ25lZCBpbm5lckNoaWxkTm9kZUNvdW50
KE5vZGUqKTsKLSAgICBzdGF0aWMgTm9kZSogaW5uZXJQYXJlbnROb2RlKE5vZGUqKTsKKyAgICBW
ZWN0b3I8RG9jdW1lbnQqPiBkb2N1bWVudHMoKTsKKyAgICB2b2lkIHJlc2V0KCk7CiAKICAgICBO
b2RlKiBhc3NlcnROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCk7CiAgICAgRWxlbWVudCog
YXNzZXJ0RWxlbWVudChFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogICAgIERvY3VtZW50KiBh
c3NlcnREb2N1bWVudChFcnJvclN0cmluZyYsIGludCBub2RlSWQpOwogCi0gICAgc3RhdGljIE5v
ZGUqIHNjcmlwdFZhbHVlQXNOb2RlKEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBub2RlQXNTY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYsIE5vZGUqKTsKLQogICAgIGJv
b2wgaGFzQnJlYWtwb2ludEZvckV2ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQmLCBjb25zdCBBdG9t
U3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOwogICAgIGlu
dCBpZEZvckV2ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVu
dFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50LmNwcAppbmRleCBlNjA1ZjE4OWZiZGQ4OTc5NjAyNmNmMTI5MjliMmJkNjM5OGEwZjYxLi5l
ZTNmYzJmY2QyYzE2ZmFkYTJjOTZiOWMzMmU0NjViYzVkZDA5MjY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudC5jcHAKQEAgLTc0LDExICs3NCw3IEBAIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6
Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0LCBJCiAg
ICAgbV9kZWJ1Z2dlckFnZW50LT5hZGRMaXN0ZW5lcigqdGhpcyk7CiB9CiAKLUluc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQ6On5JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KCkKLXsKLSAgICBBU1NF
UlQoIW1fZGVidWdnZXJBZ2VudCk7Ci0gICAgQVNTRVJUKCFtX2luc3RydW1lbnRpbmdBZ2VudHMu
aW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpKTsKLX0KK0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQ6On5JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KCkgPSBkZWZhdWx0OwogCiAvLyBCcm93c2Vy
IGRlYnVnZ2VyIGFnZW50IGVuYWJsZWQgb25seSB3aGVuIEpTIGRlYnVnZ2VyIGlzIGVuYWJsZWQu
CiB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyV2FzRW5hYmxlZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudC5oCmluZGV4IGQyOGU0N2Q0Yzg1NjhhZDYwOTE5MmUyYWRmMGEwOTUw
N2MxZTNhMmYuLjU1NzYzMjZiMjFlZWIxNDc5NjIwMTU1NWM0MDkwNjY4OGIzZWMyM2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudC5oCkBAIC01MiwyMCArNTIsMjkgQEAgY2xhc3MgUmVnaXN0ZXJlZEV2
ZW50TGlzdGVuZXI7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBJbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwg
cHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVuZXIsIHB1Ymxp
YyBJbnNwZWN0b3I6OkRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsKK2NsYXNz
IEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRC
YXNlLCBwdWJsaWMgSW5zcGVjdG9yOjpET01EZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVySGFuZGxl
ciwgcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVuZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQpOwogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50Kik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpOwogCi0gICAg
Ly8gRE9NRGVidWdnZXIgQVBJCi0gICAgdm9pZCBzZXRVUkxCcmVha3BvaW50KEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNSZWdleCkgZmluYWw7
Ci0gICAgdm9pZCByZW1vdmVVUkxCcmVha3BvaW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiB1cmwpIGZpbmFsOwotICAgIHZvaWQgc2V0RXZlbnRCcmVha3BvaW50KEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBicmVha3BvaW50VHlwZSwgY29uc3QgU3RyaW5nKiBldmVudE5hbWUpIGZp
bmFsOwotICAgIHZvaWQgcmVtb3ZlRXZlbnRCcmVha3BvaW50KEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBicmVha3BvaW50VHlwZSwgY29uc3QgU3RyaW5nKiBldmVudE5hbWUpIGZpbmFsOwot
ICAgIHZvaWQgc2V0RE9NQnJlYWtwb2ludChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0
IFN0cmluZyYgdHlwZSkgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVET01CcmVha3BvaW50KEVycm9y
U3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0eXBlKSBmaW5hbDsKKyAgICAvLyBJ
bnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciop
OworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNj
b25uZWN0UmVhc29uKTsKKyAgICB2b2lkIGRpc2NhcmRBZ2VudCgpOworCisgICAgLy8gRE9NRGVi
dWdnZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKKyAgICB2b2lkIHNldFVSTEJyZWFrcG9pbnQo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1Jl
Z2V4KTsKKyAgICB2b2lkIHJlbW92ZVVSTEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHVybCk7CisgICAgdm9pZCBzZXRFdmVudEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIGJyZWFrcG9pbnRUeXBlLCBjb25zdCBTdHJpbmcqIGV2ZW50TmFtZSk7Cisg
ICAgdm9pZCByZW1vdmVFdmVudEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IGJyZWFrcG9pbnRUeXBlLCBjb25zdCBTdHJpbmcqIGV2ZW50TmFtZSk7CisgICAgdm9pZCBzZXRE
T01CcmVha3BvaW50KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0eXBl
KTsKKyAgICB2b2lkIHJlbW92ZURPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlk
LCBjb25zdCBTdHJpbmcmIHR5cGUpOworCisgICAgLy8gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
TGlzdGVuZXIKKyAgICB2b2lkIGRlYnVnZ2VyV2FzRW5hYmxlZCgpOworICAgIHZvaWQgZGVidWdn
ZXJXYXNEaXNhYmxlZCgpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAg
dm9pZCB3aWxsSW5zZXJ0RE9NTm9kZShOb2RlJiBwYXJlbnQpOwpAQCAtODMsMTYgKzkyLDkgQEAg
cHVibGljOgogICAgIHZvaWQgd2lsbEZpcmVBbmltYXRpb25GcmFtZSgpOwogICAgIHZvaWQgbWFp
bkZyYW1lRE9NQ29udGVudExvYWRlZCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXIqKSBmaW5hbDsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgZmluYWw7Ci0gICAgdm9pZCBkaXNjYXJkQWdl
bnQoKSBmaW5hbDsKLQotcHJpdmF0ZToKLSAgICAvLyBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6Okxpc3RlbmVyIGltcGxlbWVudGF0aW9uLgotICAgIHZvaWQgZGVidWdnZXJXYXNF
bmFibGVkKCkgZmluYWw7Ci0gICAgdm9pZCBkZWJ1Z2dlcldhc0Rpc2FibGVkKCkgZmluYWw7CiAg
ICAgdm9pZCBkaXNhYmxlKCk7CiAKK3ByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBVUkxCcmVha3Bv
aW50U291cmNlIHsgRmV0Y2gsIFhIUiB9OwogICAgIHZvaWQgYnJlYWtPblVSTElmTmVlZGVkKGNv
bnN0IFN0cmluZyYgdXJsLCBVUkxCcmVha3BvaW50U291cmNlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuY3BwCmluZGV4IDZhMTIxNjAzOTQwNzY3ZDQ1NjFkYmI2YWQ0ZWI2MDQ0M2U0MjllZTIuLjUx
MzljMWI3ODY0ZGE1ZjcyOWU5MzQ4ZmJmMzBhMmJjMGY3ZTUyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudC5jcHAKQEAgLTYyLDYgKzYyLDggQEAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAor
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojp+SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCkgPSBk
ZWZhdWx0OworCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tl
bmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCmluZGV4IGZhYTFhODMyM2Yy
ZTBhNjhmMTVkN2E1OTA5ODE1YjU3ZTUwMjczZmEuLmRjMWE5OWE4YzQzNmFlZGMwZWRiNzFlY2E4
Mjc2YzdjYzdlODM0NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaApAQCAtNTIsMjUgKzUyLDI2IEBA
IGNsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JB
Z2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsK
LSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAg
dmlydHVhbCB+SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAg
ICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0
Y2hlciopOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKTsKIAotICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQu
Ci0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2Fi
bGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldERPTVN0b3JhZ2VJdGVtcyhF
cnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBSZWZQdHI8SlNPTjo6
QXJyYXlPZjxKU09OOjpBcnJheU9mPFN0cmluZz4+PiYgaXRlbXMpIG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0RE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0
b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpIG92ZXJyaWRl
OwotICAgIHZvaWQgcmVtb3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcmLCBjb25zdCBKU09O
OjpPYmplY3QmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwotCi0gICAg
Ly8gQ2FsbGVkIGZyb20gdGhlIGluamVjdGVkIHNjcmlwdC4KLSAgICBzdGF0aWMgU3RyaW5nIHN0
b3JhZ2VJZChTdG9yYWdlJik7Ci0gICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpET01TdG9yYWdlOjpTdG9yYWdlSWQ+IHN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiosIGJvb2wg
aXNMb2NhbFN0b3JhZ2UpOworICAgIC8vIERPTVN0b3JhZ2VCYWNrZW5kRGlzcGF0Y2hlckhhbmRs
ZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZGlzYWJsZShFcnJv
clN0cmluZyYpOworICAgIHZvaWQgZ2V0RE9NU3RvcmFnZUl0ZW1zKEVycm9yU3RyaW5nJiwgY29u
c3QgSlNPTjo6T2JqZWN0JiBzdG9yYWdlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEpTT046OkFy
cmF5T2Y8U3RyaW5nPj4+JiBpdGVtcyk7CisgICAgdm9pZCBzZXRET01TdG9yYWdlSXRlbShFcnJv
clN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisgICAgdm9pZCByZW1vdmVET01TdG9yYWdlSXRlbShF
cnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcm
IGtleSk7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRpZERp
c3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmln
aW4qKTsKIAorICAgIC8vIENvbW1hbmRMaW5lQVBJCisgICAgc3RhdGljIFN0cmluZyBzdG9yYWdl
SWQoU3RvcmFnZSYpOworICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9N
U3RvcmFnZTo6U3RvcmFnZUlkPiBzdG9yYWdlSWQoU2VjdXJpdHlPcmlnaW4qLCBib29sIGlzTG9j
YWxTdG9yYWdlKTsKKwogcHJpdmF0ZToKICAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IGZpbmRTdG9y
YWdlQXJlYShFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYsIEZyYW1lKiYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFi
YXNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
YXRhYmFzZUFnZW50LmNwcAppbmRleCBlOWNhYTY2MTA4NzAxMDQ3ZGQ5NTBlMDAwNzViMmExZDk4
NDZhYTI4Li4wODRiYTQwMzBlNGFlNTBmMGRjODc2MTgxNzJmNjJlZjUwNDIwZjg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGF0
YWJhc2VBZ2VudC5jcHAKQEAgLTIyMiw2ICsyMjIsOCBAQCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50
OjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0K
IAorSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6fkluc3BlY3RvckRhdGFiYXNlQWdlbnQoKSA9IGRl
ZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmRE
aXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXggNWM3OTAyZmUwYjZiNjUwZmVj
MzE5N2RmM2I3MjBiMTg5ODc4NzM2Yy4uMmRlYmEzMTkwZTg4OGE3NWE1OGI4YzIwMDljMjE5MTk2
NjIzZTY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JEYXRhYmFzZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKQEAgLTQ3LDI2ICs0NywyNiBAQCBjbGFzcyBJbnNw
ZWN0b3JEYXRhYmFzZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVi
bGljIEluc3BlY3RvcgogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckRhdGFiYXNl
QWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxp
Y2l0IEluc3BlY3RvckRhdGFiYXNlQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVh
bCB+SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBJbnNwZWN0b3JEYXRh
YmFzZUFnZW50KFdlYkFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckRhdGFi
YXNlQWdlbnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQor
ICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRS
b3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwogCi0K
LSAgICAvLyBDYWxsZWQgZnJvbSB0aGUgZnJvbnQtZW5kLgotICAgIHZvaWQgZW5hYmxlKEVycm9y
U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBnZXREYXRhYmFzZVRhYmxlTmFtZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0cmluZz4+JiBuYW1lcykg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBleGVjdXRlU1FMKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZCwg
Y29uc3QgU3RyaW5nJiBxdWVyeSwgUmVmPEV4ZWN1dGVTUUxDYWxsYmFjaz4mJikgb3ZlcnJpZGU7
Ci0KLSAgICAvLyBDYWxsZWQgZnJvbSB0aGUgaW5qZWN0ZWQgc2NyaXB0LgotICAgIFN0cmluZyBk
YXRhYmFzZUlkKERhdGFiYXNlJik7CisgICAgLy8gRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlckhh
bmRsZXIKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZGlzYWJsZShF
cnJvclN0cmluZyYpOworICAgIHZvaWQgZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+
PiYgbmFtZXMpOworICAgIHZvaWQgZXhlY3V0ZVNRTChjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWQs
IGNvbnN0IFN0cmluZyYgcXVlcnksIFJlZjxFeGVjdXRlU1FMQ2FsbGJhY2s+JiYpOwogCiAgICAg
Ly8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkaWRDb21taXRMb2FkKCk7CiAg
ICAgdm9pZCBkaWRPcGVuRGF0YWJhc2UoRGF0YWJhc2UmKTsKIAorICAgIC8vIENvbW1hbmRMaW5l
QVBJCisgICAgU3RyaW5nIGRhdGFiYXNlSWQoRGF0YWJhc2UmKTsKKwogcHJpdmF0ZToKICAgICBE
YXRhYmFzZSogZGF0YWJhc2VGb3JJZChjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWQpOwogICAgIElu
c3BlY3RvckRhdGFiYXNlUmVzb3VyY2UqIGZpbmRCeUZpbGVOYW1lKGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBhMTU1NDVjNTE0ZDYzNDQzNDkyODBm
MDllMzhiMjRhZGM5MGYzMmEyLi45ZmRmOTBiMDY5ZjE1NWFkYjdjNzMzYTVmOTVkZmFkNzE2MWIy
MGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTI3LDYgKzUyNyw4IEBAIEluc3BlY3Rv
ckluZGV4ZWREQkFnZW50OjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudChQYWdlQWdlbnRDb250ZXh0
JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6fkluc3BlY3Rvcklu
ZGV4ZWREQkFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCmlu
ZGV4IDQ1ZmViOTE3ODEwMjgwNmZkYzJmODZjNjdjMjdlZDRjNTJkYWZhYTIuLmI0OWUwYzBlNDcz
NDU0MDQ0ZDk3MDVlYTcwMTc4MDY4OTVlZmQ2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKQEAgLTUy
LDE4ICs1MiwxOSBAQCBjbGFzcyBJbnNwZWN0b3JJbmRleGVkREJBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0bwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvckluZGV4ZWREQkFnZW50KFBhZ2VBZ2Vu
dENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JJbmRleGVkREJBZ2VudCgpID0gZGVm
YXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JJbmRleGVkREJBZ2VudCgpOwogCi0gICAgdm9p
ZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3Zl
cnJpZGU7CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFj
a2VuZERpc3BhdGNoZXIqKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CiAKICAgICAvLyBJbmRleGVkREJCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVx
dWVzdERhdGFiYXNlTmFtZXMoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgUmVmPFJlcXVl
c3REYXRhYmFzZU5hbWVzQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdERh
dGFiYXNlKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VOYW1lLCBSZWY8UmVxdWVzdERhdGFiYXNlQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgcmVxdWVzdERhdGEoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lLCBjb25zdCBTdHJp
bmcmIGluZGV4TmFtZSwgaW50IHNraXBDb3VudCwgaW50IHBhZ2VTaXplLCBjb25zdCBKU09OOjpP
YmplY3QqIGtleVJhbmdlLCBSZWY8UmVxdWVzdERhdGFDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgaW5fc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFN0cmluZyYgaW5fZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGluX29iamVjdFN0
b3JlTmFtZSwgUmVmPENsZWFyT2JqZWN0U3RvcmVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcm
KTsKKyAgICB2b2lkIHJlcXVlc3REYXRhYmFzZU5hbWVzKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlP
cmlnaW4sIFJlZjxSZXF1ZXN0RGF0YWJhc2VOYW1lc0NhbGxiYWNrPiYmKTsKKyAgICB2b2lkIHJl
cXVlc3REYXRhYmFzZShjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgUmVmPFJlcXVlc3REYXRhYmFzZUNhbGxiYWNrPiYmKTsKKyAgICB2b2lk
IHJlcXVlc3REYXRhKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSwgY29uc3QgU3RyaW5n
JiBpbmRleE5hbWUsIGludCBza2lwQ291bnQsIGludCBwYWdlU2l6ZSwgY29uc3QgSlNPTjo6T2Jq
ZWN0KiBrZXlSYW5nZSwgUmVmPFJlcXVlc3REYXRhQ2FsbGJhY2s+JiYpOworICAgIHZvaWQgY2xl
YXJPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUsIFJlZjxDbGVhck9i
amVjdFN0b3JlQ2FsbGJhY2s+JiYpOwogCiBwcml2YXRlOgogICAgIEluc3BlY3Rvcjo6SW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKaW5kZXggYTM1YjQ5YjAzMDNlNzgwNTY3MjExMTA0MDFiMDAyOTM3YTYyZDYwMy4uY2Vj
M2RhY2VkNWU2NzRmNjI1NTdmM2FiMGQxMWUyNTUyNTNhNGE2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKQEAgLTUzLDEwICs1Myw3IEBAIEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpJbnNwZWN0
b3JMYXllclRyZWVBZ2VudChXZWJBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKLUluc3Bl
Y3RvckxheWVyVHJlZUFnZW50Ojp+SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKQotewotICAgIHJl
c2V0KCk7Ci19CitJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6fkluc3BlY3RvckxheWVyVHJlZUFn
ZW50KCkgPSBkZWZhdWx0OwogCiB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rv
cjo6QmFja2VuZERpc3BhdGNoZXIqKQogewpAQCAtODUsNiArODIsOCBAQCB2b2lkIEluc3BlY3Rv
ckxheWVyVHJlZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogdm9pZCBJbnNwZWN0b3JMYXll
clRyZWVBZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyYpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5n
QWdlbnRzLnNldEluc3BlY3RvckxheWVyVHJlZUFnZW50KG51bGxwdHIpOworCisgICAgcmVzZXQo
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6bGF5ZXJUcmVlRGlkQ2hhbmdl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuaAppbmRleCBjMzliMGY2NDdlMWVjZWZkNDQwNGMyYzEyOTg3N2Jj
ZjFkYmExZWJiLi4zYTA2Mjk3ZGIyZjY0YzIyZmQ5MDIyOTIzODk1MWE3ODdlNmE4Y2E2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckxheWVyVHJl
ZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JM
YXllclRyZWVBZ2VudC5oCkBAIC00OCwyMyArNDgsMjQgQEAgY2xhc3MgSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVj
dG8KICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JMYXllclRyZWVBZ2VudCk7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7CisgICAgSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQoKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXQoKTsKKyAgICAvLyBJ
bnNwZWN0b3JBZ2VudEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciop
OworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNj
b25uZWN0UmVhc29uKTsKKworICAgIC8vIExheWVyVHJlZUJhY2tlbmREaXNwYXRjaGVySGFuZGxl
cgorICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9y
U3RyaW5nJik7CisgICAgdm9pZCBsYXllcnNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJ
ZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpM
YXllcj4+Jik7CisgICAgdm9pZCByZWFzb25zRm9yQ29tcG9zaXRpbmdMYXllcihFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgbGF5ZXJJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6Okxh
eWVyVHJlZTo6Q29tcG9zaXRpbmdSZWFzb25zPiYpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uCiAgICAgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2UoKTsKICAgICB2b2lkIHJlbmRl
ckxheWVyRGVzdHJveWVkKGNvbnN0IFJlbmRlckxheWVyJik7CiAgICAgdm9pZCBwc2V1ZG9FbGVt
ZW50RGVzdHJveWVkKFBzZXVkb0VsZW1lbnQmKTsKLQotICAgIC8vIENhbGxlZCBmcm9tIHRoZSBm
cm9udC1lbmQuCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGxheWVyc0Zvck5v
ZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0
b3I6OlByb3RvY29sOjpMYXllclRyZWU6OkxheWVyPj4mKSBvdmVycmlkZTsKLSAgICB2b2lkIHJl
YXNvbnNGb3JDb21wb3NpdGluZ0xheWVyKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBsYXll
cklkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpDb21wb3NpdGluZ1Jl
YXNvbnM+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXNldCgpOwogCiBwcml2YXRlOgogICAgIC8v
IFJlbmRlckxheWVyLXJlbGF0ZWQgbWV0aG9kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggMGNjZmE1
MTQ0NjY5ZWI1N2IxZmVmYWE0OTJkNDQ0ZDNlZWRmZDc5ZS4uMTFhY2IzYmU4ZTVmYWUxMmI1NWNi
YmU5ODU0ZTQ3MGUxNThmZmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAg
SW5zcGVjdG9yTWVtb3J5QWdlbnQ6Okluc3BlY3Rvck1lbW9yeUFnZW50KFBhZ2VBZ2VudENvbnRl
eHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3Rvck1lbW9yeUFnZW50Ojp+SW5zcGVjdG9yTWVt
b3J5QWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgSW5zcGVjdG9yTWVtb3J5QWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVy
KikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTWVtb3J5QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTWVtb3J5QWdlbnQuaAppbmRleCA1YzE0NzExMTU0MGU1Y2Y0MzUxYmI4ZWRlNDAwZTdl
ODQ2ZWE0NjU5Li5mMzEyY2ZjOGQxYmY0MjEyMDk5MjcxNWI4MTUxMDc5ZTFjN2MwN2ZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFn
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1v
cnlBZ2VudC5oCkBAIC00MiwxNiArNDIsMTcgQEAgY2xhc3MgSW5zcGVjdG9yTWVtb3J5QWdlbnQg
ZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjoKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JNZW1vcnlB
Z2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yTWVtb3J5QWdl
bnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yTWVtb3J5QWdlbnQoKTsKIAot
ICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRS
b3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQgZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwogCiAgICAgLy8gTWVtb3J5QmFj
a2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lk
IHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BUcmFj
a2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Jik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBzdGFydFRyYWNr
aW5nKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKTsK
IAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgZGlkSGFuZGxlTWVt
b3J5UHJlc3N1cmUoQ3JpdGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IGU3NmI3NDQwODhl
OTViMjU2MzRjMTdkMzQ1ZDQxOTE4ZDAxNzkyMGMuLjg1ZWU0ZTJiZWI3NGVmODU1Y2M3MDEwNWY5
NzE2MmRiMzRjOGRjOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTE3OSw2ICsxNzksOCBAQCBJ
bnNwZWN0b3JOZXR3b3JrQWdlbnQ6Okluc3BlY3Rvck5ldHdvcmtBZ2VudChXZWJBZ2VudENvbnRl
eHQmIGNvbnRleHQpCiB7CiB9CiAKK0luc3BlY3Rvck5ldHdvcmtBZ2VudDo6fkluc3BlY3Rvck5l
dHdvcmtBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiB9CkBAIC0zOTAsMTUgKzM5Miw2IEBAIFJl
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gSW5zcGVjdG9y
TmV0d29ya0FnZW50OjpidWlsZE9iCiAgICAgcmV0dXJuIHJlc291cmNlT2JqZWN0OwogfQogCi1J
bnNwZWN0b3JOZXR3b3JrQWdlbnQ6On5JbnNwZWN0b3JOZXR3b3JrQWdlbnQoKQotewotICAgIGlm
IChtX2VuYWJsZWQpIHsKLSAgICAgICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKLSAgICAgICAgZGlz
YWJsZShpZ25vcmVkKTsKLSAgICB9Ci0gICAgQVNTRVJUKCFtX2luc3RydW1lbnRpbmdBZ2VudHMu
aW5zcGVjdG9yTmV0d29ya0FnZW50KCkpOwotfQotCiBkb3VibGUgSW5zcGVjdG9yTmV0d29ya0Fn
ZW50Ojp0aW1lc3RhbXAoKQogewogICAgIHJldHVybiBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0
b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpLnNlY29uZHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCmluZGV4IDU4
ZDhjZGVmMWI4ZGYzNTY0ODllZWM3ZjNmNjFiNDg0NzhlYmQ1YTcuLjUyOThiMDkxZTAwOGYzMTk1
OWM1OGRmMzA0ODZlOGE4NzRiZWIxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaApAQCAtNjgsNyArNjgsNiBA
QCBjbGFzcyBJbnNwZWN0b3JOZXR3b3JrQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNl
LCBwdWJsaWMgSW5zcGVjdG9yOjpOZXR3bwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3Bl
Y3Rvck5ldHdvcmtBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgZXhwbGljaXQgSW5zcGVjdG9yTmV0d29ya0FnZW50KFdlYkFnZW50Q29udGV4dCYpOwog
ICAgIHZpcnR1YWwgfkluc3BlY3Rvck5ldHdvcmtBZ2VudCgpOwogCiAgICAgc3RhdGljIGJvb2wg
c2hvdWxkVHJlYXRBc1RleHQoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CkBAIC03Niw4ICs3NSwx
OSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIE9wdGlvbmFsPFN0cmluZz4gdGV4dENvbnRlbnRGb3JD
YWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSYpOwogICAgIHN0YXRpYyBib29sIGNhY2hlZFJl
c291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSYsIFN0cmluZyogcmVzdWx0LCBib29sKiBiYXNl
NjRFbmNvZGVkKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQor
ICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRS
b3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24p
IGZpbmFsOworCisgICAgLy8gTmV0d29ya0JhY2tlbmREaXNwYXRjaGVySGFuZGxlcgorICAgIHZv
aWQgZW5hYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3Ry
aW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRFeHRyYUhUVFBIZWFkZXJzKEVycm9yU3RyaW5nJiwg
Y29uc3QgSlNPTjo6T2JqZWN0JiBoZWFkZXJzKSBmaW5hbDsKKyAgICB2b2lkIGdldFJlc3BvbnNl
Qm9keShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBTdHJpbmcqIGNvbnRl
bnQsIGJvb2wqIGJhc2U2NEVuY29kZWQpIGZpbmFsOworICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNo
aW5nRGlzYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGRpc2FibGVkKSBmaW5hbDsKKyAgICB2b2lk
IGxvYWRSZXNvdXJjZShjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBS
ZWY8TG9hZFJlc291cmNlQ2FsbGJhY2s+JiYpIGZpbmFsOworICAgIHZvaWQgZ2V0U2VyaWFsaXpl
ZENlcnRpZmljYXRlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIFN0cmlu
Zyogc2VyaWFsaXplZENlcnRpZmljYXRlKSBmaW5hbDsKKyAgICB2b2lkIHJlc29sdmVXZWJTb2Nr
ZXQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nKiBv
YmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9i
amVjdD4mKSBmaW5hbDsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZv
aWQgd2lsbFJlY2FsY3VsYXRlU3R5bGUoKTsKQEAgLTEwOCwxNSArMTE4LDggQEAgcHVibGljOgog
ICAgIHZvaWQgc2VhcmNoT3RoZXJSZXF1ZXN0cyhjb25zdCBKU0M6OllhcnI6OlJlZ3VsYXJFeHBy
ZXNzaW9uJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6
U2VhcmNoUmVzdWx0Pj4mKTsKICAgICB2b2lkIHNlYXJjaEluUmVxdWVzdChFcnJvclN0cmluZyYs
IGNvbnN0IFN0cmluZyYgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBib29sIGNhc2VT
ZW5zaXRpdmUsIGJvb2wgaXNSZWdleCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6R2VuZXJpY1R5cGVzOjpTZWFyY2hNYXRjaD4+Jik7CiAKLSAgICAvLyBDYWxsZWQg
ZnJvbSBmcm9udGVuZC4KLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOwotICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgc2V0RXh0cmFIVFRQ
SGVhZGVycyhFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgaGVhZGVycykgZmluYWw7
Ci0gICAgdm9pZCBnZXRSZXNwb25zZUJvZHkoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHJl
cXVlc3RJZCwgU3RyaW5nKiBjb250ZW50LCBib29sKiBiYXNlNjRFbmNvZGVkKSBmaW5hbDsKLSAg
ICB2b2lkIHNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBkaXNh
YmxlZCkgZmluYWw7Ci0gICAgdm9pZCBsb2FkUmVzb3VyY2UoY29uc3QgU3RyaW5nJiBmcmFtZUlk
LCBjb25zdCBTdHJpbmcmIHVybCwgUmVmPExvYWRSZXNvdXJjZUNhbGxiYWNrPiYmKSBmaW5hbDsK
LSAgICB2b2lkIGdldFNlcmlhbGl6ZWRDZXJ0aWZpY2F0ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgcmVxdWVzdElkLCBTdHJpbmcqIHNlcmlhbGl6ZWRDZXJ0aWZpY2F0ZSkgZmluYWw7Ci0g
ICAgdm9pZCByZXNvbHZlV2ViU29ja2V0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiByZXF1
ZXN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JikgZmluYWw7Citwcm90ZWN0ZWQ6CisgICAgSW5z
cGVjdG9yTmV0d29ya0FnZW50KFdlYkFnZW50Q29udGV4dCYpOwogCiAgICAgdmlydHVhbCBTdHJp
bmcgbG9hZGVySWRlbnRpZmllcihEb2N1bWVudExvYWRlciopID0gMDsKICAgICB2aXJ0dWFsIFN0
cmluZyBmcmFtZUlkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5k
ZXggZDhiNzgxMDYyYjk1NjZhNzQ1NGRhYjg3OTVlZWNmMjgyZTc5NmIyZC4uOWZlZGYzMTkwMWUz
MTU1MGQxZGRhZGQ2MjE0MTZjMWFhYmU5OGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzQxLDYgKzM0
MSw4IEBAIEluc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFnZUFnZW50KFBhZ2VBZ2VudENv
bnRleHQmIGNvbnRleHQsIEluc3BlY3RvckNsaWVuCiB7CiB9CiAKK0luc3BlY3RvclBhZ2VBZ2Vu
dDo6fkluc3BlY3RvclBhZ2VBZ2VudCgpID0gZGVmYXVsdDsKKwogdm9pZCBJbnNwZWN0b3JQYWdl
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91
dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCAz
ZWVkMDE5YzlmZWU0NjNiNGVhZmYxMzcwZmIwZWFlMTIwMTc0ODFmLi5jNDYwZGExMGZiZjY4NzY3
ZTJmYzAzZDFkZjYwNDllMTIxMDRkY2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTU3LDYgKzU3LDcgQEAgY2xh
c3MgSW5zcGVjdG9yUGFnZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwg
cHVibGljIEluc3BlY3Rvcjo6UGEKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYsIEluc3BlY3RvckNs
aWVudCosIEluc3BlY3Rvck92ZXJsYXkqKTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JQYWdlQWdl
bnQoKTsKIAogICAgIGVudW0gUmVzb3VyY2VUeXBlIHsKICAgICAgICAgRG9jdW1lbnRSZXNvdXJj
ZSwKQEAgLTg3LDI4ICs4OCwzMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZyYW1lKiBmaW5kRnJh
bWVXaXRoU2VjdXJpdHlPcmlnaW4oUGFnZSYsIGNvbnN0IFN0cmluZyYgb3JpZ2luUmF3U3RyaW5n
KTsKICAgICBzdGF0aWMgRG9jdW1lbnRMb2FkZXIqIGFzc2VydERvY3VtZW50TG9hZGVyKEVycm9y
U3RyaW5nJiwgRnJhbWUqKTsKIAorICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQorICAgIHZvaWQg
ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworCiAgICAgLy8gUGFn
ZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikg
ZmluYWw7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCBy
ZWxvYWQoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBvcHRpb25hbFJlbG9hZEZyb21PcmlnaW4s
IGNvbnN0IGJvb2wqIG9wdGlvbmFsUmV2YWxpZGF0ZUFsbFJlc291cmNlcykgZmluYWw7Ci0gICAg
dm9pZCBuYXZpZ2F0ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJsKSBmaW5hbDsKLSAg
ICB2b2lkIG92ZXJyaWRlVXNlckFnZW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nKiB2YWx1
ZSkgZmluYWw7Ci0gICAgdm9pZCBvdmVycmlkZVNldHRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHNldHRpbmcsIGNvbnN0IGJvb2wqIHZhbHVlKSBmaW5hbDsKLSAgICB2b2lkIGdldENv
b2tpZXMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpQYWdlOjpDb29raWU+PiYgY29va2llcykgZmluYWw7Ci0gICAgdm9pZCBkZWxldGVDb29r
aWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYg
dXJsKSBmaW5hbDsKLSAgICB2b2lkIGdldFJlc291cmNlVHJlZShFcnJvclN0cmluZyYsIFJlZlB0
cjxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdlOjpGcmFtZVJlc291cmNlVHJlZT4mKSBmaW5hbDsK
LSAgICB2b2lkIGdldFJlc291cmNlQ29udGVudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
ZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0
RW5jb2RlZCkgZmluYWw7Ci0gICAgdm9pZCBzZWFyY2hJblJlc291cmNlKEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBx
dWVyeSwgY29uc3QgYm9vbCogb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBvcHRp
b25hbElzUmVnZXgsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxSZXF1ZXN0SWQsIFJlZlB0cjxKU09O
OjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkdlbmVyaWNUeXBlczo6U2VhcmNoTWF0Y2g+
PiYpIGZpbmFsOwotICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJjZXMoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBib29sKiBjYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBpc1JlZ2V4
LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdlOjpTZWFyY2hS
ZXN1bHQ+PiYpIGZpbmFsOwotICAgIHZvaWQgc2V0U2hvd1J1bGVycyhFcnJvclN0cmluZyYsIGJv
b2wpIGZpbmFsOwotICAgIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoRXJyb3JTdHJpbmcmLCBib29s
IHNob3cpIGZpbmFsOwotICAgIHZvaWQgc2V0RW11bGF0ZWRNZWRpYShFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgc2V0Rm9yY2VkQXBwZWFyYW5jZShFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgZ2V0Q29tcG9zaXRpbmdCb3Jk
ZXJzVmlzaWJsZShFcnJvclN0cmluZyYsIGJvb2wqIG91dF9wYXJhbSkgZmluYWw7Ci0gICAgdm9p
ZCBzZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nJiwgYm9vbCkgZmluYWw7
Ci0gICAgdm9pZCBzbmFwc2hvdE5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBTdHJpbmcq
IG91dERhdGFVUkwpIGZpbmFsOwotICAgIHZvaWQgc25hcHNob3RSZWN0KEVycm9yU3RyaW5nJiwg
aW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGNvbnN0IFN0cmluZyYgY29vcmRp
bmF0ZVN5c3RlbSwgU3RyaW5nKiBvdXREYXRhVVJMKSBmaW5hbDsKLSAgICB2b2lkIGFyY2hpdmUo
RXJyb3JTdHJpbmcmLCBTdHJpbmcqIGRhdGEpIGZpbmFsOworICAgIHZvaWQgZW5hYmxlKEVycm9y
U3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCByZWxv
YWQoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBvcHRpb25hbFJlbG9hZEZyb21PcmlnaW4sIGNv
bnN0IGJvb2wqIG9wdGlvbmFsUmV2YWxpZGF0ZUFsbFJlc291cmNlcyk7CisgICAgdm9pZCBuYXZp
Z2F0ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2b2lkIG92ZXJyaWRl
VXNlckFnZW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nKiB2YWx1ZSk7CisgICAgdm9pZCBv
dmVycmlkZVNldHRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHNldHRpbmcsIGNvbnN0
IGJvb2wqIHZhbHVlKTsKKyAgICB2b2lkIGdldENvb2tpZXMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8
SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdlOjpDb29raWU+PiYgY29va2ll
cyk7CisgICAgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNv
b2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2b2lkIGdldFJlc291cmNlVHJlZShF
cnJvclN0cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdlOjpGcmFtZVJlc291
cmNlVHJlZT4mKTsKKyAgICB2b2lkIGdldFJlc291cmNlQ29udGVudChFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIFN0cmluZyogY29udGVudCwg
Ym9vbCogYmFzZTY0RW5jb2RlZCk7CisgICAgdm9pZCBzZWFyY2hJblJlc291cmNlKEVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiBxdWVyeSwgY29uc3QgYm9vbCogb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29s
KiBvcHRpb25hbElzUmVnZXgsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxSZXF1ZXN0SWQsIFJlZlB0
cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkdlbmVyaWNUeXBlczo6U2VhcmNo
TWF0Y2g+PiYpOworICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJjZXMoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBib29sKiBjYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBpc1JlZ2V4
LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdlOjpTZWFyY2hS
ZXN1bHQ+PiYpOworICAgIHZvaWQgc2V0U2hvd1J1bGVycyhFcnJvclN0cmluZyYsIGJvb2wpOwor
ICAgIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoRXJyb3JTdHJpbmcmLCBib29sIHNob3cpOworICAg
IHZvaWQgc2V0RW11bGF0ZWRNZWRpYShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworICAg
IHZvaWQgc2V0Rm9yY2VkQXBwZWFyYW5jZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwor
ICAgIHZvaWQgZ2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyYsIGJvb2wq
IG91dF9wYXJhbSk7CisgICAgdm9pZCBzZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9y
U3RyaW5nJiwgYm9vbCk7CisgICAgdm9pZCBzbmFwc2hvdE5vZGUoRXJyb3JTdHJpbmcmLCBpbnQg
bm9kZUlkLCBTdHJpbmcqIG91dERhdGFVUkwpOworICAgIHZvaWQgc25hcHNob3RSZWN0KEVycm9y
U3RyaW5nJiwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGNvbnN0IFN0cmlu
ZyYgY29vcmRpbmF0ZVN5c3RlbSwgU3RyaW5nKiBvdXREYXRhVVJMKTsKKyAgICB2b2lkIGFyY2hp
dmUoRXJyb3JTdHJpbmcmLCBTdHJpbmcqIGRhdGEpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uCiAgICAgdm9pZCBkb21Db250ZW50RXZlbnRGaXJlZCgpOwpAQCAtMTI4LDExICsx
MzMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTY3JvbGwoKTsKICAgICB2b2lkIGRpZFJlY2Fs
Y3VsYXRlU3R5bGUoKTsKIAotICAgIC8vIEluc3BlY3RvciBDb250cm9sbGVyIEFQSQotICAgIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIq
LCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7Ci0gICAgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIGZpbmFs
OwotCi0gICAgLy8gQ3Jvc3MtYWdlbnRzIEFQSQogICAgIEZyYW1lKiBmcmFtZUZvcklkKGNvbnN0
IFN0cmluZyYgZnJhbWVJZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGZyYW1lSWQoRnJh
bWUqKTsKICAgICBTdHJpbmcgbG9hZGVySWQoRG9jdW1lbnRMb2FkZXIqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwCmluZGV4IDJjMjA2NTE5ZTdmNDNiMzBhMDk1MmY2ZDhkZDE2MjczOTZjMWI3MzkuLjEx
ZGMwZmU4NmM1MDdiNzZhNmUxODgwODU0ZTNiZmZhMjBjNWUyODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmNwcApAQCAtNjE4LDExICs2MTgsNiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRv
Z2dsZVRpbWVsaW5lSW5zdHJ1bWVudChJbnN0cnVtZW50U3RhdGUgc3RhdGUpCiAgICAgICAgIGlu
dGVybmFsU3RvcCgpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbW1p
dExvYWQoKQotewotICAgIGNsZWFyUmVjb3JkU3RhY2soKTsKLX0KLQogdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQsIEZy
YW1lKiBmcmFtZSkKIHsKICAgICBhcHBlbmRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVBbmltYXRpb25GcmFtZURhdGEoY2FsbGJhY2tJZCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6
UmVxdWVzdEFuaW1hdGlvbkZyYW1lLCB0cnVlLCBmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4
IDlmZGJhNGYyNzQ2YzNkNTdlZTIwMmJmZmNlOTU2ZTExMGE2MDI5MTAuLmQxMWI5MGIwMmZjZDk3
YzI1MzUwZDY5M2Q3YTIzZGM1MTczM2QwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC04MSwzNCAr
ODEsMzUgQEAgZW51bSBjbGFzcyBUaW1lbGluZVJlY29yZFR5cGUgewogICAgIE9ic2VydmVyQ2Fs
bGJhY2ssCiB9OwogCi1jbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IGZpbmFsCi0gICAgOiBw
dWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlCi0gICAgLCBwdWJsaWMgSW5zcGVjdG9yOjpUaW1lbGlu
ZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgICwgcHVibGljIEluc3BlY3Rvcjo6U2NyaXB0
RGVidWdMaXN0ZW5lciB7CitjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IGZpbmFsIDogcHVi
bGljIEluc3BlY3RvckFnZW50QmFzZSAsIHB1YmxpYyBJbnNwZWN0b3I6OlRpbWVsaW5lQmFja2Vu
ZERpc3BhdGNoZXJIYW5kbGVyICwgcHVibGljIEluc3BlY3Rvcjo6U2NyaXB0RGVidWdMaXN0ZW5l
ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yVGltZWxp
bmVBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBmaW5h
bDsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlz
Y29ubmVjdFJlYXNvbikgZmluYWw7CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCisgICAgdm9p
ZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CiAKICAgICAvLyBU
aW1lbGluZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3Ry
aW5nJikgZmluYWw7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7Ci0gICAg
dm9pZCBzdGFydChFcnJvclN0cmluZyYsIGNvbnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGggPSBu
dWxscHRyKSBmaW5hbDsKLSAgICB2b2lkIHN0b3AoRXJyb3JTdHJpbmcmKSBmaW5hbDsKLSAgICB2
b2lkIHNldEF1dG9DYXB0dXJlRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wpIGZpbmFsOwotICAg
IHZvaWQgc2V0SW5zdHJ1bWVudHMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYpIGZp
bmFsOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxlKEVy
cm9yU3RyaW5nJik7CisgICAgdm9pZCBzdGFydChFcnJvclN0cmluZyYsIGNvbnN0IGludCogbWF4
Q2FsbFN0YWNrRGVwdGggPSBudWxscHRyKTsKKyAgICB2b2lkIHN0b3AoRXJyb3JTdHJpbmcmKTsK
KyAgICB2b2lkIHNldEF1dG9DYXB0dXJlRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wpOworICAg
IHZvaWQgc2V0SW5zdHJ1bWVudHMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYpOwog
Ci0gICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotCi0gICAgdm9pZCBkaWRDb21t
aXRMb2FkKCk7Ci0KLSAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIFdlYkNvcmUuCi0gICAgdm9p
ZCBzdGFydEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7
Ci0gICAgdm9pZCBzdG9wRnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKTsKKyAgICAvLyBTY3JpcHREZWJ1Z0xpc3RlbmVyCisgICAgdm9pZCBkaWRQYXJzZVNv
dXJjZShKU0M6OlNvdXJjZUlELCBjb25zdCBTY3JpcHQmKSB7IH0KKyAgICB2b2lkIGZhaWxlZFRv
UGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgaW50LCBpbnQsIGNvbnN0
IFN0cmluZyYpIHsgfQorICAgIHZvaWQgd2lsbFJ1bk1pY3JvdGFzaygpIHsgfQorICAgIHZvaWQg
ZGlkUnVuTWljcm90YXNrKCkgeyB9CisgICAgdm9pZCBkaWRQYXVzZShKU0M6OkV4ZWNTdGF0ZSYs
IEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKSB7IH0KKyAgICB2b2lkIGRpZENvbnRpbnVlKCkg
eyB9CisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwgY29uc3Qg
U3RyaW5nJikgeyB9CisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uU291bmQoaW50KSB7IH0KKyAg
ICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Qcm9iZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IEluc3Bl
Y3Rvcjo6U2NyaXB0QnJlYWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIGJhdGNoSWQsIHVuc2lnbmVk
IHNhbXBsZUlkLCBKU0M6OkpTVmFsdWUgcmVzdWx0KTsKIAogICAgIC8vIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbgogICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBTZWNvbmRz
IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsKQEAgLTE0MywxOCArMTQ0LDEzIEBA
IHB1YmxpYzoKICAgICB2b2lkIG1haW5GcmFtZVN0YXJ0ZWRMb2FkaW5nKCk7CiAgICAgdm9pZCBt
YWluRnJhbWVOYXZpZ2F0ZWQoKTsKIAotcHJpdmF0ZToKLSAgICAvLyBKU0M6OlNjcmlwdERlYnVn
TGlzdGVuZXIKLSAgICB2b2lkIGRpZFBhcnNlU291cmNlKEpTQzo6U291cmNlSUQsIGNvbnN0IFNj
cmlwdCYpIGZpbmFsIHsgfQotICAgIHZvaWQgZmFpbGVkVG9QYXJzZVNvdXJjZShjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBpbnQsIGludCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9Ci0g
ICAgdm9pZCB3aWxsUnVuTWljcm90YXNrKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkaWRSdW5NaWNy
b3Rhc2soKSBmaW5hbCB7IH0KLSAgICB2b2lkIGRpZFBhdXNlKEpTQzo6RXhlY1N0YXRlJiwgSlND
OjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpIGZpbmFsIHsgfQotICAgIHZvaWQgZGlkQ29udGludWUo
KSBmaW5hbCB7IH0KLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUm
LCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Tb3Vu
ZChpbnQpIGZpbmFsIHsgfQotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvblByb2JlKEpTQzo6RXhl
Y1N0YXRlJiwgY29uc3QgSW5zcGVjdG9yOjpTY3JpcHRCcmVha3BvaW50QWN0aW9uJiwgdW5zaWdu
ZWQgYmF0Y2hJZCwgdW5zaWduZWQgc2FtcGxlSWQsIEpTQzo6SlNWYWx1ZSByZXN1bHQpIGZpbmFs
OworICAgIC8vIENvbnNvbGUKKyAgICB2b2lkIHN0YXJ0RnJvbUNvbnNvbGUoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICB2b2lkIHN0b3BGcm9tQ29uc29sZShKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogCisgICAgaW50IGlkKCkgY29uc3Qg
eyByZXR1cm4gbV9pZDsgfQorCitwcml2YXRlOgogICAgIHZvaWQgc3RhcnRQcm9ncmFtbWF0aWND
YXB0dXJlKCk7CiAgICAgdm9pZCBzdG9wUHJvZ3JhbW1hdGljQ2FwdHVyZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdl
bnQuY3BwCmluZGV4IGExMDQwMGEwNGI3ZmJjMzE5Y2VmOTlkYjBlYzgwMWJiNmMxNzEwYjQuLjVi
N2QxN2E0MjRiZTQxNzg5ZjczZTc5NTczNmRlZmI4ZmRmNGVkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3Bw
CkBAIC00Miw2ICs0Miw4IEBAIEluc3BlY3RvcldvcmtlckFnZW50OjpJbnNwZWN0b3JXb3JrZXJB
Z2VudChQYWdlQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCitJbnNwZWN0b3JXb3JrZXJB
Z2VudDo6fkluc3BlY3RvcldvcmtlckFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIEluc3BlY3Rv
cldvcmtlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIq
LCBCYWNrZW5kRGlzcGF0Y2hlciopCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldElu
c3BlY3RvcldvcmtlckFnZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IDVlMDQwYzk1NGQ0YjUx
NGExNDkwM2MwNzIwNzBiZWNkZTA2MGNiZDAuLjIyMTFiM2I2MzczNWU0YTEzZjAzMmJlZTg0ZWRj
YTcyODRkOGVlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTQyLDE5ICs0MiwyMCBAQCBjbGFzcyBJbnNw
ZWN0b3JXb3JrZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1Ymxp
YyBJbnNwZWN0b3I6OgogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IEluc3BlY3RvcldvcmtlckFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5J
bnNwZWN0b3JXb3JrZXJBZ2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JX
b3JrZXJBZ2VudCgpOwogCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBv
dmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNl
CisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVu
ZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKKyAgICB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CiAK
ICAgICAvLyBXb3JrZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShF
cnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92
ZXJyaWRlOwotICAgIHZvaWQgaW5pdGlhbGl6ZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHdvcmtlcklkKSBvdmVycmlkZTsKLSAgICB2b2lkIHNlbmRNZXNzYWdlVG9Xb3JrZXIoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHdvcmtlcklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92
ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBkaXNhYmxl
KEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBpbml0aWFsaXplZChFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgd29ya2VySWQpOworICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlcihFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgd29ya2VySWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAK
LSAgICAvLyBQYWdlQ2hhbm5lbAotICAgIHZvaWQgc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9u
dGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgb3ZlcnJp
ZGU7CisgICAgLy8gV29ya2VySW5zcGVjdG9yUHJveHk6OlBhZ2VDaGFubmVsCisgICAgdm9pZCBz
ZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5KiwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgog
ICAgIGJvb2wgc2hvdWxkV2FpdEZvckRlYnVnZ2VyT25TdGFydCgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCmluZGV4
IGMyMDk0Yjk5MmQzNTQxNjBmMTdlZTI4ZjY0MTBhNzkzZGNkZTlmMzQuLmYxNWJkMTE3MGQwMGJj
NTNiN2E2YmJmZmEyOTdkMzIxOTZlNTZiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAKQEAgLTQzLDExICs0MywxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKLVdlYkNv
bnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50KEFnZW50Q29udGV4dCYgY29udGV4dCkKK1dlYkNv
bnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50KFdlYkFnZW50Q29udGV4dCYgY29udGV4dCkKICAg
ICA6IEluc3BlY3RvckNvbnNvbGVBZ2VudChjb250ZXh0KQogewogfQogCitXZWJDb25zb2xlQWdl
bnQ6On5XZWJDb25zb2xlQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgV2ViQ29uc29sZUFnZW50
OjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqIHdpbmRvdykKIHsKICAgICBpZiAoIW1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3BlY3RvckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9XZWJDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2Vi
Q29uc29sZUFnZW50LmgKaW5kZXggNTliZTgxMmQ1OTIyM2Q0MGU0YzAxNjQ5MjExNWQ4OWE3MjQ3
YTM3MC4uOTkzMDhjOGE2ZDVlNWZhM2YyODdlYjMwNTg5Mjc1ZTBlMTcxMzYxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5oCkBAIC0z
OCwxMyArMzgsMTUgQEAgY2xhc3MgV2ViQ29uc29sZUFnZW50IDogcHVibGljIEluc3BlY3Rvcjo6
SW5zcGVjdG9yQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJDb25z
b2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdl
YkNvbnNvbGVBZ2VudChJbnNwZWN0b3I6OkFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfldl
YkNvbnNvbGVBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBXZWJDb25zb2xlQWdlbnQoV2ViQWdlbnRD
b250ZXh0Jik7CisgICAgdmlydHVhbCB+V2ViQ29uc29sZUFnZW50KCk7CiAKKyAgICAvLyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdp
bmRvdyopOwotCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyByZXF1
ZXN0SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkRmFp
bExvYWRpbmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VF
cnJvciYpOworCitwcm90ZWN0ZWQ6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNw
cAppbmRleCBjYWJlNDk1OTc2NGMwODk2N2MxNzk0NDA2YzcyYTEwYmU1YjFiNjQwLi43ODQ0ZjY4
YzhjMGY5YmU1YzNiYzViNDFkYmRkMGViYjdmNmI5MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5jcHAKQEAgLTM5LDYgKzM5
LDggQEAgV2ViRGVidWdnZXJBZ2VudDo6V2ViRGVidWdnZXJBZ2VudChXZWJBZ2VudENvbnRleHQm
IGNvbnRleHQpCiB7CiB9CiAKK1dlYkRlYnVnZ2VyQWdlbnQ6On5XZWJEZWJ1Z2dlckFnZW50KCkg
PSBkZWZhdWx0OworCiB2b2lkIFdlYkRlYnVnZ2VyQWdlbnQ6OmVuYWJsZSgpCiB7CiAgICAgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6ZW5hYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCmluZGV4IDQ2MDQ3NWQ5Y2QzNTYyMzg4
NjRhZTY5NTEwNWI4ODgxNWU2MTg3MzYuLmZhOGEyNmM3ZmZjYzQ5YTY1ZmI3NDdjNDY3Nzc0YTY0
YWMzNTgwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2Vi
RGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2Vi
RGVidWdnZXJBZ2VudC5oCkBAIC0zNywxMCArMzcsMTEgQEAgY2xhc3MgV2ViRGVidWdnZXJBZ2Vu
dCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYkRlYnVnZ2VyQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIFdlYkRlYnVnZ2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7
Ci0gICAgdmlydHVhbCB+V2ViRGVidWdnZXJBZ2VudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFs
IH5XZWJEZWJ1Z2dlckFnZW50KCk7CiAKIHByb3RlY3RlZDoKKyAgICBXZWJEZWJ1Z2dlckFnZW50
KFdlYkFnZW50Q29udGV4dCYpOworCiAgICAgdm9pZCBlbmFibGUoKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQuY3BwCmluZGV4IDg2NWJi
ZDA3YjZmMDk4Y2E3ZTY2NTBkOGFmZWZiY2Y2ZWYwNTE5MjguLjNjYmZiODM3NWU2ZmZkNzZjMDc2
NTlkNzFiOWExOWI0YTFhYmFlM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvV2ViSGVhcEFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL1dlYkhlYXBBZ2VudC5jcHAKQEAgLTEwMSwxMCArMTAxLDcgQEAgV2ViSGVhcEFnZW50
OjpXZWJIZWFwQWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0KQogewogfQogCi1XZWJIZWFw
QWdlbnQ6On5XZWJIZWFwQWdlbnQoKQotewotICAgIG1fc2VuZEdhcmJhZ2VDb2xsZWN0aW9uRXZl
bnRzVGFzay0+cmVzZXQoKTsKLX0KK1dlYkhlYXBBZ2VudDo6fldlYkhlYXBBZ2VudCgpID0gZGVm
YXVsdDsKIAogdm9pZCBXZWJIZWFwQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkhl
YXBBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQu
aAppbmRleCBiYTk2M2I1ZGEyNTNmNmJlZWRiODNhOWNhYWM1YzU4ZWNkY2IwZmZiLi44OGVmNDVh
ZjI3YWJjNGY1ZTQ1N2YxMjZkNzhlZDU5ZTFjMTUxYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50LmgKQEAgLTQzLDEyICs0MywxMiBAQCBwdWJs
aWM6CiAgICAgV2ViSGVhcEFnZW50KFdlYkFnZW50Q29udGV4dCYpOwogICAgIHZpcnR1YWwgfldl
YkhlYXBBZ2VudCgpOwogCi1wcm90ZWN0ZWQ6CisgICAgLy8gSGVhcEJhY2tlbmREaXNwYXRjaGVy
SGFuZGxlcgogICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpc3BhdGNoR2Fy
YmFnZUNvbGxlY3RlZEV2ZW50KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkhlYXA6OkdhcmJhZ2VDb2xs
ZWN0aW9uOjpUeXBlLCBTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUaW1lKSBvdmVycmlk
ZTsKLQorcHJvdGVjdGVkOgorICAgIHZvaWQgZGlzcGF0Y2hHYXJiYWdlQ29sbGVjdGVkRXZlbnQo
SW5zcGVjdG9yOjpQcm90b2NvbDo6SGVhcDo6R2FyYmFnZUNvbGxlY3Rpb246OlR5cGUsIFNlY29u
ZHMgc3RhcnRUaW1lLCBTZWNvbmRzIGVuZFRpbWUpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hH
YXJiYWdlQ29sbGVjdGlvbkV2ZW50c0FmdGVyRGVsYXkoVmVjdG9yPEdhcmJhZ2VDb2xsZWN0aW9u
RGF0YT4mJiBjb2xsZWN0aW9ucyk7CiAKICAgICBJbnN0cnVtZW50aW5nQWdlbnRzJiBtX2luc3Ry
dW1lbnRpbmdBZ2VudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmNwcAppbmRleCA5NGY3YWUxMzdjYjg5MjM1N2E4MTYx
MGFmYWEwYjczZjQ3Yzk1OWY1Li5jZWE5MmNlZGEwMWQ0YzAzYTA0MWQ1YjE3ZTA0NWQ5NTUzNTAz
MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFn
ZUF1ZGl0QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFn
ZS9QYWdlQXVkaXRBZ2VudC5jcHAKQEAgLTU0LDYgKzU0LDggQEAgUGFnZUF1ZGl0QWdlbnQ6OlBh
Z2VBdWRpdEFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK1BhZ2VBdWRp
dEFnZW50Ojp+UGFnZUF1ZGl0QWdlbnQoKSA9IGRlZmF1bHQ7CisKIEluamVjdGVkU2NyaXB0IFBh
Z2VBdWRpdEFnZW50OjppbmplY3RlZFNjcmlwdEZvckV2YWwoY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQpCiB7CiAgICAgaWYgKGV4ZWN1dGlvbkNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmgKaW5kZXgg
YWM0NmY0ZmVjM2NhMTc5ZmEyODBhN2UwNGU2NWVmYmFmOThlYjA3MS4uMGQ1MTQxNDZjZjY0NzYz
MTYyNzM5ZGFlNmNiMmFkYTRkNDQ0ZTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50LmgKQEAgLTM2LDE2ICszNiwxNyBA
QCBjbGFzcyBQYWdlQXVkaXRBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3Rv
ckF1ZGl0QWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VBdWRpdEFnZW50KTsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBQYWdl
QXVkaXRBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7CisgICAgUGFnZUF1ZGl0QWdlbnQoUGFnZUFn
ZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgflBhZ2VBdWRpdEFnZW50KCk7CiAKIHByaXZhdGU6
CiAgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoY29u
c3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwotICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3Jp
cHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBp
bnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7CisgICAgSW5zcGVjdG9yOjpJbmplY3Rl
ZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNv
bnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKTsKIAotICAgIHZvaWQgcG9wdWxhdGVBdWRpdE9i
amVjdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiBhdWRpdE9i
amVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwb3B1bGF0ZUF1ZGl0T2JqZWN0KEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mIGF1ZGl0T2JqZWN0KTsKIAotICAgIHZv
aWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIG11dGVDb25zb2xlKCk7CisgICAgdm9pZCB1bm11dGVDb25zb2xlKCk7
CiAKICAgICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwCmluZGV4
IDc3ZjNkMmMxZmUyZmM5YWI4NDFiOGY1OTRmNDY3OTBjN2I4OTM3ZDkuLmMxYjBiNzMwMDJjMWQ0
N2NiZjVjOTQzODNjMTM5NjA1NTlmZmY5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5jcHAKQEAgLTUyLDYg
KzUyLDggQEAgUGFnZUNvbnNvbGVBZ2VudDo6UGFnZUNvbnNvbGVBZ2VudChQYWdlQWdlbnRDb250
ZXh0JiBjb250ZXh0KQogewogfQogCitQYWdlQ29uc29sZUFnZW50Ojp+UGFnZUNvbnNvbGVBZ2Vu
dCgpID0gZGVmYXVsdDsKKwogdm9pZCBQYWdlQ29uc29sZUFnZW50OjpjbGVhck1lc3NhZ2VzKEVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZykKIHsKICAgICBpZiAoYXV0byogZG9tQWdlbnQgPSBtX2lu
c3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5oCmluZGV4
IGRlYTI0OTRhNzc1ZjU3ZWYyM2I0ZWExNzQ0NTYzMWVjNGM3ZDRlMWIuLmVlNDc0NzI1M2IzZjc0
ODc1NDcyMDY1ZmNmOGNmMWVjMmY1ZjE4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuaApAQCAtNDEsMTQgKzQx
LDE0IEBAIGNsYXNzIFBhZ2VDb25zb2xlQWdlbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29uc29sZUFn
ZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdlQ29u
c29sZUFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZUFn
ZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflBhZ2VDb25zb2xlQWdlbnQoKTsKIAotICAg
IHZvaWQgZ2V0TG9nZ2luZ0NoYW5uZWxzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5
T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbD4+JikgZmluYWw7Ci0gICAg
dm9pZCBzZXRMb2dnaW5nQ2hhbm5lbExldmVsKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBj
aGFubmVsLCBjb25zdCBTdHJpbmcmIGxldmVsKSBmaW5hbDsKKyAgICAvLyBDb25zb2xlQmFja2Vu
ZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nJik7
CisgICAgdm9pZCBnZXRMb2dnaW5nQ2hhbm5lbHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6
QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsPj4mKTsKKyAgICB2
b2lkIHNldExvZ2dpbmdDaGFubmVsTGV2ZWwoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNo
YW5uZWwsIGNvbnN0IFN0cmluZyYgbGV2ZWwpOwogCiBwcml2YXRlOgotICAgIHZvaWQgY2xlYXJN
ZXNzYWdlcyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotCiAgICAgSW5zdHJ1bWVudGluZ0FnZW50
cyYgbV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURl
YnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCA4YmNmODViMjcxMWY4NWI5ZDc2NDI0YjM4MTFlYjVj
YTY3YTFjYmYxLi40YzljZmE1Y2UwZmMyMDA0OTc1NDMwZjAzNzg0ZGM1OGI5M2RjOWVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdl
RGVidWdnZXJBZ2VudC5jcHAKQEAgLTY1LDYgKzY1LDggQEAgUGFnZURlYnVnZ2VyQWdlbnQ6OlBh
Z2VEZWJ1Z2dlckFnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK1BhZ2VE
ZWJ1Z2dlckFnZW50Ojp+UGFnZURlYnVnZ2VyQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgUGFn
ZURlYnVnZ2VyQWdlbnQ6OmV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcmIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24s
IGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGluY2x1ZGVDb21tYW5kTGlu
ZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBj
b25zdCBib29sKiByZXR1cm5CeVZhbHVlLCBjb25zdCBib29sKiBnZW5lcmF0ZVByZXZpZXcsIGNv
bnN0IGJvb2wqIHNhdmVSZXN1bHQsIGNvbnN0IGJvb2wqIGVtdWxhdGVVc2VyR2VzdHVyZSwgUmVm
UHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIE9wdGlvbmFsPGJv
b2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5kZXgpCiB7CiAgICAg
YXV0byYgcGFnZUNocm9tZUNsaWVudCA9IG1faW5zcGVjdGVkUGFnZS5jaHJvbWUoKS5jbGllbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdl
RGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VEZWJ1Z2dlckFnZW50LmgKaW5kZXggMjU3NTBmYzJlMzkzZGM3OGQ4MGVjMDE2YzdhMzE3NGVk
NDhmYWY4Yy4uZTI0MzY0ZjUwN2ZhNThkOGQ4NDI5Y2RiODVmYzhmNDhjMWMxMDQwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFn
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1
Z2dlckFnZW50LmgKQEAgLTQ3LDEwICs0NywxMyBAQCBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudCBm
aW5hbCA6IHB1YmxpYyBXZWJEZWJ1Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBQYWdlRGVidWdnZXJBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7
Ci0gICAgdmlydHVhbCB+UGFnZURlYnVnZ2VyQWdlbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVh
bCB+UGFnZURlYnVnZ2VyQWdlbnQoKTsKIAogICAgIC8vIERlYnVnZ2VyQmFja2VuZERpc3BhdGNo
ZXJIYW5kbGVyCi0gICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBT
dHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNv
bnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgYm9v
bCogcmV0dXJuQnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29s
KiBzYXZlUmVzdWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUsIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIE9wdGlvbmFs
PGJvb2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5kZXgpIGZpbmFs
OworICAgIHZvaWQgZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBv
YmplY3RHcm91cCwgY29uc3QgYm9vbCogaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29s
KiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIGNvbnN0IGJvb2wqIHJldHVy
bkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRlUHJldmlldywgY29uc3QgYm9vbCogc2F2ZVJl
c3VsdCwgY29uc3QgYm9vbCogZW11bGF0ZVVzZXJHZXN0dXJlLCBSZWZQdHI8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxib29sPiYg
d2FzVGhyb3duLCBPcHRpb25hbDxpbnQ+JiBzYXZlZFJlc3VsdEluZGV4KTsKKworICAgIC8vIFNj
cmlwdERlYnVnTGlzdGVuZXIKKyAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVj
U3RhdGUmLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bgogICAgIHZvaWQgZGlkQ2xlYXJNYWluRnJhbWVXaW5kb3dPYmplY3QoKTsKQEAgLTY4LDIyICs3
MSwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRGlzcGF0Y2hQb3N0TWVzc2FnZShjb25zdCBU
aW1lckJhc2UmKTsKICAgICB2b2lkIGRpZERpc3BhdGNoUG9zdE1lc3NhZ2UoY29uc3QgVGltZXJC
YXNlJik7CiAKLXByb3RlY3RlZDoKLSAgICB2b2lkIGVuYWJsZSgpIG92ZXJyaWRlOwotICAgIHZv
aWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpIG92ZXJyaWRlOwotCi0gICAgU3RyaW5n
IHNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQmKSBvdmVycmlkZTsKLQotICAgIHZv
aWQgZGlkQ2xlYXJBc3luY1N0YWNrVHJhY2VEYXRhKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6Ci0g
ICAgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgp
IG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlKCk7CisgICAgdm9pZCBkaXNhYmxlKGJvb2wgaXNC
ZWluZ0Rlc3Ryb3llZCk7CiAKLSAgICAvLyBKU0M6OlNjcmlwdERlYnVnTGlzdGVuZXIKLSAgICB2
b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKKyAgICBTdHJpbmcgc291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0IFNjcmlwdCYp
OwogCi0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwo
RXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRDbGVhckFzeW5jU3RhY2tUcmFjZURhdGEoKTsKKworICAgIHZvaWQgbXV0ZUNv
bnNvbGUoKTsKKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKTsKKworICAgIEluc3BlY3Rvcjo6SW5q
ZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50
KiBleGVjdXRpb25Db250ZXh0SWQpOwogCiAgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUhlYXBB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUhlYXBB
Z2VudC5jcHAKaW5kZXggNzYyNmIzZGQzNDcxODk3MWY2NzgzNWNhOGJiNGVjMmE5OWY1ZDViYS4u
ZjYyZjZlYjA1Y2U5ZmIzNjRkMGNlZjQ4NDE5YzhkMzYzYjg0ZDUyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50LmNwcApA
QCAtMzcsNiArMzcsOCBAQCBQYWdlSGVhcEFnZW50OjpQYWdlSGVhcEFnZW50KFBhZ2VBZ2VudENv
bnRleHQmIGNvbnRleHQpCiB7CiB9CiAKK1BhZ2VIZWFwQWdlbnQ6On5QYWdlSGVhcEFnZW50KCkg
PSBkZWZhdWx0OworCiB2b2lkIFBhZ2VIZWFwQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYgZXJy
b3JTdHJpbmcpCiB7CiAgICAgV2ViSGVhcEFnZW50OjplbmFibGUoZXJyb3JTdHJpbmcpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50
LmgKaW5kZXggOGQxMDE3N2I5OWRlNjYwODRjMzRjNmM5MTY3YzgzOTRjODEzZTg1NC4uNzU2ZmNh
MGYxZWY4ZDliZGQ1MmJhMDlhYzUwNjMzMjFlMDgyMjkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5oCkBAIC0zOCwxMSAr
MzgsMTMgQEAgY2xhc3MgUGFnZUhlYXBBZ2VudCBmaW5hbCA6IHB1YmxpYyBXZWJIZWFwQWdlbnQg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFBhZ2VIZWFwQWdl
bnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflBhZ2VIZWFwQWdlbnQoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+UGFnZUhlYXBBZ2VudCgpOwogCi0gICAgdm9pZCBlbmFibGUo
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBv
dmVycmlkZTsKKyAgICAvLyBIZWFwQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCisgICAgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKTsKIAor
ICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgbWFpbkZyYW1lTmF2aWdh
dGVkKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5jcHAKaW5kZXggNDRmMmRjMGYzY2VkMzVi
MmI3OTk5MjRmMTdkMmJjMWM0MWJlMGU3Ny4uNjk0ZDE2YzA5MzQ1YmJmMGI5ZThmNjcyYzhiZjM4
YmI3ZTNkZTc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VOZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmNwcApAQCAtNDYsNiArNDYsOCBAQCBQYWdlTmV0
d29ya0FnZW50OjpQYWdlTmV0d29ya0FnZW50KFBhZ2VBZ2VudENvbnRleHQmIGNvbnRleHQpCiB7
CiB9CiAKK1BhZ2VOZXR3b3JrQWdlbnQ6On5QYWdlTmV0d29ya0FnZW50KCkgPSBkZWZhdWx0Owor
CiBTdHJpbmcgUGFnZU5ldHdvcmtBZ2VudDo6bG9hZGVySWRlbnRpZmllcihEb2N1bWVudExvYWRl
ciogbG9hZGVyKQogewogICAgIGlmIChsb2FkZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5oCmluZGV4IDVhMTlk
OWFhZDMxNmQ4YTQ5ZjhkZTY2YzY4MDI5YTRkZGI0YjgzYWIuLjRlOGY1NDE5YjZiMmYwODBiMGI3
MmQyOGM5MzQ2ZGZjYTc4NzhkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuaApAQCAtMzYsMTUgKzM2LDE1IEBA
IGNsYXNzIFBhZ2VOZXR3b3JrQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yTmV0d29ya0Fn
ZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdlTmV0
d29ya0FnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5QYWdlTmV0d29ya0Fn
ZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflBhZ2VOZXR3b3JrQWdlbnQoKTsKIAogcHJp
dmF0ZToKLSAgICBTdHJpbmcgbG9hZGVySWRlbnRpZmllcihEb2N1bWVudExvYWRlciopIGZpbmFs
OwotICAgIFN0cmluZyBmcmFtZUlkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsKLSAg
ICBWZWN0b3I8V2ViU29ja2V0Kj4gYWN0aXZlV2ViU29ja2V0cyhjb25zdCBMb2NrSG9sZGVyJikg
ZmluYWw7Ci0gICAgdm9pZCBzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChib29sKSBmaW5hbDsK
LSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKSBmaW5hbDsKLSAgICBib29sIHNob3VsZEZv
cmNlQnVmZmVyaW5nTmV0d29ya1Jlc291cmNlRGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKTsKKyAg
ICBTdHJpbmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKik7CisgICAgVmVjdG9yPFdl
YlNvY2tldCo+IGFjdGl2ZVdlYlNvY2tldHMoY29uc3QgTG9ja0hvbGRlciYpOworICAgIHZvaWQg
c2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoYm9vbCk7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
ZnJhbWVJZCk7CisgICAgYm9vbCBzaG91bGRGb3JjZUJ1ZmZlcmluZ05ldHdvcmtSZXNvdXJjZURh
dGEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgUGFnZSYgbV9pbnNwZWN0ZWRQYWdl
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9Q
YWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFn
ZS9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCA5ODgzNThmZjRmNjU4NWUyYTAxZmE4NmRjYmRi
OTA2NGIyMjYxOWMyLi40YWI0YzkxYTk1OTIxMjI4ZWU1MDc3YWY5NzVlZjRkZGUwM2RlNDE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRp
bWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VSdW50aW1lQWdlbnQuY3BwCkBAIC02NCw2ICs2NCw4IEBAIFBhZ2VSdW50aW1lQWdlbnQ6OlBh
Z2VSdW50aW1lQWdlbnQoUGFnZUFnZW50Q29udGV4dCYgY29udGV4dCkKIHsKIH0KIAorUGFnZVJ1
bnRpbWVBZ2VudDo6flBhZ2VSdW50aW1lQWdlbnQoKSA9IGRlZmF1bHQ7CisKIHZvaWQgUGFnZVJ1
bnRpbWVBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKIHsKICAgICBib29s
IGVuYWJsZWQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMucGFnZVJ1bnRpbWVBZ2VudCgpID09IHRo
aXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFn
ZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VSdW50aW1lQWdlbnQuaAppbmRleCA5M2E3NmNjMTFkMmY1N2EwOWJlYzAyZmNkM2VlOGYzMDEw
N2FkNmQwLi4wYzExZDI4NDNjNTUzYjkwMjIzNjZiYmZmYmVjZjg0OTA3ZjIzNjJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGlt
ZUFnZW50LmgKQEAgLTUxLDIwICs1MSwyMCBAQCBjbGFzcyBQYWdlUnVudGltZUFnZW50IGZpbmFs
IDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yUnVudGltZUFnZW50IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdlUnVudGltZUFnZW50KFBhZ2VBZ2Vu
dENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5QYWdlUnVudGltZUFnZW50KCkgPSBkZWZhdWx0Owor
ICAgIHZpcnR1YWwgflBhZ2VSdW50aW1lQWdlbnQoKTsKIAogICAgIC8vIFJ1bnRpbWVCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgZXZh
bHVhdGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmlu
Zyogb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3Qg
Ym9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBpbnQqIGV4
ZWN1dGlvbkNvbnRleHRJZCwgY29uc3QgYm9vbCogcmV0dXJuQnlWYWx1ZSwgY29uc3QgYm9vbCog
Z2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZlUmVzdWx0LCBjb25zdCBib29sKiBlbXVs
YXRlVXNlckdlc3R1cmUsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1v
dGVPYmplY3Q+JiByZXN1bHQsIE9wdGlvbmFsPGJvb2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGlu
dD4mIHNhdmVkUmVzdWx0SW5kZXgpIGZpbmFsOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Jik7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBldmFsdWF0ZShF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBvYmpl
Y3RHcm91cCwgY29uc3QgYm9vbCogaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29sKiBk
b05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIGNvbnN0IGludCogZXhlY3V0aW9u
Q29udGV4dElkLCBjb25zdCBib29sKiByZXR1cm5CeVZhbHVlLCBjb25zdCBib29sKiBnZW5lcmF0
ZVByZXZpZXcsIGNvbnN0IGJvb2wqIHNhdmVSZXN1bHQsIGNvbnN0IGJvb2wqIGVtdWxhdGVVc2Vy
R2VzdHVyZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVj
dD4mIHJlc3VsdCwgT3B0aW9uYWw8Ym9vbD4mIHdhc1Rocm93biwgT3B0aW9uYWw8aW50PiYgc2F2
ZWRSZXN1bHRJbmRleCk7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2
b2lkIGRpZENyZWF0ZU1haW5Xb3JsZENvbnRleHQoRnJhbWUmKTsKIAogcHJpdmF0ZToKLSAgICBJ
bnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmlu
ZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKLSAgICB2b2lkIG11
dGVDb25zb2xlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGU7
CisgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJy
b3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CisgICAgdm9pZCBtdXRl
Q29uc29sZSgpOworICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpOwogICAgIHZvaWQgcmVwb3J0RXhl
Y3V0aW9uQ29udGV4dENyZWF0aW9uKCk7CiAgICAgdm9pZCBub3RpZnlDb250ZXh0Q3JlYXRlZChj
b25zdCBTdHJpbmcmIGZyYW1lSWQsIEpTQzo6RXhlY1N0YXRlKiwgU2VjdXJpdHlPcmlnaW4qLCBi
b29sIGlzUGFnZUNvbnRleHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmNwcAppbmRleCAyZWQ1
NWNmNTY3OTlmNjUzMDljZDZlZTI5NmJjNWJiNjM4OTBhMmNkLi40N2E5YzVhY2RmZWNhNTcxZWY1
ZjBiZDUyOTNhMmUzYzAxZTFhYjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5jcHAKQEAgLTQ0
LDYgKzQ0LDggQEAgU2VydmljZVdvcmtlckFnZW50OjpTZXJ2aWNlV29ya2VyQWdlbnQoV29ya2Vy
QWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIEFTU0VSVChjb250ZXh0Lndvcmtlckdsb2JhbFNj
b3BlLmlzQ29udGV4dFRocmVhZCgpKTsKIH0KIAorU2VydmljZVdvcmtlckFnZW50Ojp+U2Vydmlj
ZVdvcmtlckFnZW50KCkgPSBkZWZhdWx0OworCiB2b2lkIFNlcnZpY2VXb3JrZXJBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmgKaW5k
ZXggNDE2OGQ5ZDA3MGRkMzg4NzdlNWJkMjM0YjJmMzNkZWQwN2IxYmQ4Mi4uMDkyZGU4ZmJkYWZl
YWZkYzYwMjE0ZTZhMTFlMTA1NzY2MmVhY2I1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmgKQEAg
LTQwLDE0ICs0MCwxNSBAQCBjbGFzcyBTZXJ2aWNlV29ya2VyQWdlbnQgZmluYWwgOiBwdWJsaWMg
SW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjpTZQogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFNlcnZpY2VXb3JrZXJBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2VydmljZVdvcmtlckFnZW50KFdvcmtlckFnZW50
Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflNlcnZpY2VXb3JrZXJBZ2VudCgpID0gZGVmYXVsdDsK
KyAgICBTZXJ2aWNlV29ya2VyQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7CisgICAgdmlydHVh
bCB+U2VydmljZVdvcmtlckFnZW50KCk7CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlz
cGF0Y2hlciopIGZpbmFsOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKKyAgICAvLyBJbnNwZWN0b3JBZ2Vu
dEJhc2UKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZy
b250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOworICAgIHZvaWQg
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29u
KTsKIAogICAgIC8vIFNlcnZpY2VXb3JrZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2
b2lkIGdldEluaXRpYWxpemF0aW9uSW5mbyhFcnJvclN0cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6
OlByb3RvY29sOjpTZXJ2aWNlV29ya2VyOjpDb25maWd1cmF0aW9uPiYpIGZpbmFsOworICAgIHZv
aWQgZ2V0SW5pdGlhbGl6YXRpb25JbmZvKEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OlNlcnZpY2VXb3JrZXI6OkNvbmZpZ3VyYXRpb24+Jik7CiAKIHByaXZhdGU6CiAg
ICAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBtX3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtl
ckF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyQXVkaXRBZ2VudC5jcHAKaW5kZXggN2RlYzBjYjkwY2VmZDU3MzgyNDMxMThhNGI1ZDA0
MTZiYWUxZWI2Yy4uOTdhMGRiOWViOWVmNmMyM2Y1OTJkYmI2MjNlNDk3Njk4ZmNlZDI3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVk
aXRBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyQXVkaXRBZ2VudC5jcHAKQEAgLTQ2LDYgKzQ2LDggQEAgV29ya2VyQXVkaXRBZ2VudDo6
V29ya2VyQXVkaXRBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmIGNvbnRleHQpCiAgICAgQVNTRVJU
KGNvbnRleHQud29ya2VyR2xvYmFsU2NvcGUuaXNDb250ZXh0VGhyZWFkKCkpOwogfQogCitXb3Jr
ZXJBdWRpdEFnZW50Ojp+V29ya2VyQXVkaXRBZ2VudCgpID0gZGVmYXVsdDsKKwogSW5qZWN0ZWRT
Y3JpcHQgV29ya2VyQXVkaXRBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpCiB7CiAgICAgaWYg
KGV4ZWN1dGlvbkNvbnRleHRJZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5oCmluZGV4IDFiOGQ5ZmY3NTk0
MTU0ZTZjYzk0YzYzYzQyZTM5Mjg4ZGEzZTI3ZTMuLmU0NmJmNWZmNTc5NzJhYThkYjJkMzA4Zjhk
OWI3MWViMWI2NDM2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJBdWRpdEFnZW50LmgKQEAgLTM2LDEwICszNiwxMSBAQCBj
bGFzcyBXb3JrZXJBdWRpdEFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9y
QXVkaXRBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyQXVkaXRBZ2VudCk7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgV29y
a2VyQXVkaXRBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKKyAgICBXb3JrZXJBdWRpdEFnZW50
KFdvcmtlckFnZW50Q29udGV4dCYpOworICAgIHZpcnR1YWwgfldvcmtlckF1ZGl0QWdlbnQoKTsK
IAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0
Rm9yRXZhbChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250
ZXh0SWQpIG92ZXJyaWRlOworICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlv
bkNvbnRleHRJZCk7CiAKICAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29w
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtl
ci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvV29ya2VyQ29uc29sZUFnZW50LmNwcAppbmRleCAzODFmNTcyZTkxMjk2YzZiOTRl
MTgzNjQ2ZTAxOGY3ZTIyYTkwODAxLi5lYWQ0MmRjMzNkNjg3ZjA0M2VkNTY3ZTNiOGY0YjE1ODA3
Njk2Njc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtl
ci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5jcHAKQEAgLTM4LDQgKzM4LDYgQEAgV29y
a2VyQ29uc29sZUFnZW50OjpXb3JrZXJDb25zb2xlQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0JiBj
b250ZXh0KQogICAgIEFTU0VSVChjb250ZXh0Lndvcmtlckdsb2JhbFNjb3BlLmlzQ29udGV4dFRo
cmVhZCgpKTsKIH0KIAorV29ya2VyQ29uc29sZUFnZW50Ojp+V29ya2VyQ29uc29sZUFnZW50KCkg
PSBkZWZhdWx0OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5o
CmluZGV4IDdhMmQ2OTU5NzI1MGUzOWZhNGJjODE1ZmVmNjAwODE0MjVmNTdhYTcuLmEyMjdhZGMy
MjcyYzRkYWM3YmUyNzA3MDNkNzliYjg1MzlmZTUxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5o
CkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFdvcmtlckNvbnNvbGVBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBXZWJDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIFdvcmtlckNvbnNvbGVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKLSAgICB+V29y
a2VyQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfldvcmtlckNvbnNvbGVB
Z2VudCgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyRGVidWdnZXJBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyRGVidWdnZXJBZ2Vu
dC5oCmluZGV4IGU5MTMxNDdhOGVjNzE0ZGMwOTBiMzNhYzI5MmNhMTA0OTgwNzljN2YuLmIyNTli
YjQyYmE2MDUyMWY3NDgwOWYxODM5MWY3NDkyMjE5NTkzYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRlYnVnZ2VyQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJEZWJ1Z2dlckFn
ZW50LmgKQEAgLTM2LDE3ICszNiwxNyBAQCBjbGFzcyBXb3JrZXJEZWJ1Z2dlckFnZW50IGZpbmFs
IDogcHVibGljIFdlYkRlYnVnZ2VyQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIFdvcmtlckRlYnVnZ2VyQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7
Ci0gICAgfldvcmtlckRlYnVnZ2VyQWdlbnQoKTsKKyAgICB2aXJ0dWFsIH5Xb3JrZXJEZWJ1Z2dl
ckFnZW50KCk7CisKKyAgICAvLyBTY3JpcHREZWJ1Z0xpc3RlbmVyCisgICAgdm9pZCBicmVha3Bv
aW50QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJik7CiAKIHByaXZhdGU6
CiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNvbGUgZm9yIHdvcmtlcnMuCi0gICAg
dm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgp
IG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSB7IH0KKyAgICB2b2lkIHVubXV0
ZUNvbnNvbGUoKSB7IH0KIAotICAgIC8vIEpTQzo6U2NyaXB0RGVidWdMaXN0ZW5lcgotICAgIHZv
aWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlOwotCi0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZv
ckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJp
ZGU7CisgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwo
RXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CiAKICAgICBXb3Jr
ZXJHbG9iYWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29wZTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyTmV0d29ya0Fn
ZW50LmNwcAppbmRleCBjZmM1Y2QyODM0MjUxNjM0NTNhNjhkNjg4Y2U4MjM2MTNkOWU4ZWM2Li42
OGQzY2Y5YzlmMGMzYTAyYmFmNDVhNzhiYmFiMjFhNGQ0Y2I4MDBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlck5ldHdv
cmtBZ2VudC5jcHAKQEAgLTQxLDYgKzQxLDggQEAgV29ya2VyTmV0d29ya0FnZW50OjpXb3JrZXJO
ZXR3b3JrQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0JiBjb250ZXh0KQogICAgIEFTU0VSVChjb250
ZXh0Lndvcmtlckdsb2JhbFNjb3BlLmlzQ29udGV4dFRocmVhZCgpKTsKIH0KIAorV29ya2VyTmV0
d29ya0FnZW50Ojp+V29ya2VyTmV0d29ya0FnZW50KCkgPSBkZWZhdWx0OworCiBTdHJpbmcgV29y
a2VyTmV0d29ya0FnZW50Ojpsb2FkZXJJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKikKIHsKICAg
ICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvV29ya2VyTmV0d29ya0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuaAppbmRleCA4NjVlMjJiMTlmZTc2MDNk
Mjk2ZDE4MTI5NThlNTJjZDU0OTU3MTkwLi5jM2E4NjY5NjI0ODQ1NGExZDJhODllZjI0Njc5NDNj
NTFiOTEyZTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dv
cmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuaApAQCAtMzMsMTYgKzMzLDE2IEBAIGNs
YXNzIFdvcmtlck5ldHdvcmtBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JOZXR3b3JrQWdl
bnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlck5ldHdvcmtBZ2VudCk7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgV29ya2VyTmV0
d29ya0FnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfldvcmtlck5ldHdv
cmtBZ2VudCgpID0gZGVmYXVsdDsKKyAgICBXb3JrZXJOZXR3b3JrQWdlbnQoV29ya2VyQWdlbnRD
b250ZXh0Jik7CisgICAgdmlydHVhbCB+V29ya2VyTmV0d29ya0FnZW50KCk7CiAKIHByaXZhdGU6
Ci0gICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsKLSAg
ICBTdHJpbmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKikgZmluYWw7Ci0gICAgVmVj
dG9yPFdlYlNvY2tldCo+IGFjdGl2ZVdlYlNvY2tldHMoY29uc3QgTG9ja0hvbGRlciYpIGZpbmFs
OwotICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoYm9vbCkgZmluYWw7Ci0gICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dChFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkgZmluYWw7Ci0gICAgYm9vbCBzaG91bGRGb3JjZUJ1
ZmZlcmluZ05ldHdvcmtSZXNvdXJjZURhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CisgICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKTsKKyAgICBTdHJp
bmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKik7CisgICAgVmVjdG9yPFdlYlNvY2tl
dCo+IGFjdGl2ZVdlYlNvY2tldHMoY29uc3QgTG9ja0hvbGRlciYpOworICAgIHZvaWQgc2V0UmVz
b3VyY2VDYWNoaW5nRGlzYWJsZWQoYm9vbCk7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0RXhlY3V0aW9uQ29udGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCk7CisgICAgYm9vbCBzaG91bGRGb3JjZUJ1ZmZlcmluZ05ldHdvcmtSZXNvdXJjZURhdGEoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV93b3JrZXJH
bG9iYWxTY29wZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL3dvcmtlci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50LmNwcAppbmRleCA0NWE3Y2UwYmM2
MDJiMzhhMGIyZjM4YmUxZjc3NzRjZTk3ZjQxOGYxLi5mMTgyNzM4OTEwNWQ1NDg5YmEyNjc3NGY1
MGMzYTNjYzU1OTA2ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL3dvcmtlci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTQ5LDYgKzQ5
LDggQEAgV29ya2VyUnVudGltZUFnZW50OjpXb3JrZXJSdW50aW1lQWdlbnQoV29ya2VyQWdlbnRD
b250ZXh0JiBjb250ZXh0KQogICAgIEFTU0VSVChjb250ZXh0Lndvcmtlckdsb2JhbFNjb3BlLmlz
Q29udGV4dFRocmVhZCgpKTsKIH0KIAorV29ya2VyUnVudGltZUFnZW50Ojp+V29ya2VyUnVudGlt
ZUFnZW50KCkgPSBkZWZhdWx0OworCiBJbmplY3RlZFNjcmlwdCBXb3JrZXJSdW50aW1lQWdlbnQ6
OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IGlu
dCogZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChleGVjdXRpb25Db250ZXh0SWQpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtl
clJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyUnVudGltZUFnZW50LmgKaW5kZXggZTc1ZmM5YjVlZTcyYzc1MmJjNjkzMjdhNDE0M2Qw
MTE3NjkyMGRiZC4uZTI5MjNiOWY3NWQ4MThkOTk4NGEyZTQ1ZGRjZmY1NmI2OGViYmVkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyUnVu
dGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyUnVudGltZUFnZW50LmgKQEAgLTQ0LDE0ICs0NCwxNCBAQCBjbGFzcyBXb3JrZXJSdW50
aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdvcmtlclJ1bnRp
bWVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKLSAgICB+V29ya2VyUnVudGltZUFnZW50KCkg
PSBkZWZhdWx0OworICAgIHZpcnR1YWwgfldvcmtlclJ1bnRpbWVBZ2VudCgpOwogCiBwcml2YXRl
OgotICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVy
cm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOworICAg
IEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3Ry
aW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwogCiAgICAgLy8gV2UgZG9uJ3Qg
bmVlZCB0byBtdXRlIGNvbnNvbGUgZm9yIHdvcmtlcnMuCi0gICAgdm9pZCBtdXRlQ29uc29sZSgp
IG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQorICAg
IHZvaWQgbXV0ZUNvbnNvbGUoKSB7IH0KKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSB7IH0KIAog
ICAgIFJlZlB0cjxJbnNwZWN0b3I6OlJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5k
RGlzcGF0Y2hlcjsKICAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29wZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JUYXJn
ZXRBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFy
Z2V0QWdlbnQuY3BwCmluZGV4IDRjZmMzOTBhNWRjYzY1MzFjYzNmM2RkYWZjMWM0NjhmZmUwYzA4
YmMuLmJhMDAxYzA4ZDAyZjdlZDZjMDA4NTY2ZjdhZjg5YTM4MWNkZWQyMTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VJbnNwZWN0b3JUYXJnZXRBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdldEFnZW50
LmNwcApAQCAtMzQsNiArMzQsOCBAQCBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQ6OldlYlBh
Z2VJbnNwZWN0b3JUYXJnZXRBZ2VudChJbnNwZWN0b3I6OkZyb250ZW5kUm91dAogewogfQogCitX
ZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQ6On5XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQo
KSA9IGRlZmF1bHQ7CisKIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiBXZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0QWdlbnQ6OmZyb250ZW5kQ2hhbm5lbCgpCiB7CiAgICAgcmV0dXJuICp0aGlzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUluc3BlY3RvclRhcmdl
dEFnZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0
QWdlbnQuaAppbmRleCA5MzhiZmQwMGE5YTBlZDQ5YTI5YmEzNTIzNTczZDU0NjQwNmJjOGJlLi45
NjNmOWMzY2NjZWE1NDg3YTRjZTI5M2VjNWUwODNhOGNjOGI1MTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaApAQCAt
MzMsMTYgKzMzLDE2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZUluc3BlY3Rv
clRhcmdldEFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yVGFyZ2V0QWdl
bnQsIHB1YmxpYyBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCB7CiBwdWJsaWM6CiAgICAgV2Vi
UGFnZUluc3BlY3RvclRhcmdldEFnZW50KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXImLCBJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyJik7Ci0gICAgdmlydHVhbCB+V2ViUGFnZUluc3BlY3Rv
clRhcmdldEFnZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfldlYlBhZ2VJbnNwZWN0b3JU
YXJnZXRBZ2VudCgpOworCisgICAgLy8gSW5zcGVjdG9yVGFyZ2V0QWdlbnQKKyAgICBJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCYgZnJvbnRlbmRDaGFubmVsKCk7CisKKyAgICAvLyBGcm9udGVu
ZENoYW5uZWwKKyAgICBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5cGUg
Y29ubmVjdGlvblR5cGUoKSBjb25zdDsKKyAgICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChj
b25zdCBTdHJpbmcmKTsKIAogcHJpdmF0ZToKLSAgICAvLyBJbnNwZWN0b3I6Okluc3BlY3RvclRh
cmdldEFnZW50Ci0gICAgSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmIGZyb250ZW5kQ2hhbm5l
bCgpIGZpbmFsOwotCi0gICAgLy8gSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwKLSAgICBJbnNw
ZWN0b3I6OkZyb250ZW5kQ2hhbm5lbDo6Q29ubmVjdGlvblR5cGUgY29ubmVjdGlvblR5cGUoKSBj
b25zdCBmaW5hbDsKLSAgICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcm
KSBmaW5hbDsKLQogICAgIEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXImIG1fcm91dGVyOwogfTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379512</attachid>
            <date>2019-09-24 16:24:52 -0700</date>
            <delta_ts>2019-10-10 16:40:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200959-20190924162451.patch</filename>
            <type>text/plain</type>
            <size>96614</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MzYyZmU5MDMxNDgzMjUxMmE0M2E2MTY0OGMxOTg2MTkxNjRmMzljLi4yZmFkN2ZlZjBhZjlmNmJk
MDg5MWJhYWEyMDE4NjJlZmYyNGI2NGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1c2UgbW9yZSBDKysga2V5d29yZHMgZm9y
IGRlZmluaW5nIGFnZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAwOTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDczNTM3ND4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgb3ZlcnJpZGUg
YW5ub3RhdGlvbiB0byBvdmVycmlkZWQgdmlydHVhbCBtZXRob2RzIGluIGluc3BlY3RvciBjb2Rl
LiBUaGlzCisgICAgICAgIGNoYW5nZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUg
Zm9sbG93aW5nIGNvbW1hbmQ6CisgICAgICAgIGNsYW5nLXRpZHkgLWNoZWNrcz0nLSosbW9kZXJu
aXplLXVzZS1vdmVycmlkZScgLWhlYWRlci1maWx0ZXI9Jy4qaW5zcGVjdG9yLionIC1maXggLXAg
V2ViS2l0QnVpbGQvUmVsZWFzZS8KKyAgICAgICAgICAgIFdlYktpdEJ1aWxkL1JlbGVhc2UvRGVy
aXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Ut
ODRjOWY0M2YtKi5jcHAKKyAgICAgICAgICAgIFdlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZS04NGM5ZjQzZi0qLmNw
cAorCisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TW9kdWxlLmg6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9i
amVjdEluc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxP
YmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVk
U2NyaXB0SG9zdC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yVGFyZ2V0QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFs
T2JqZWN0QXVkaXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxP
YmplY3REZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2Jh
bE9iamVjdFJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3Rl
QXV0b21hdGlvblRhcmdldC5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29u
bmVjdGlvblRvVGFyZ2V0Lmg6CisKIDIwMTktMDktMjQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIGNlbGxTaXplKCkgb3V0IG9mIFZNSW5zcGVjdG9y
Ojp2ZXJpZnlDZWxsU2l6ZSgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDEzY2NmMjY2ZTQ0YjUwOGNkNDMxZWU4
NDBkMTBlOTMyNmZmMWRmZjQuLmQ3MDYzZDVmN2I0YTQ1ZDA4NGI0NTc2MDc5ZjFhNTQ2ZWQyNjlm
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1c2Ug
bW9yZSBDKysga2V5d29yZHMgZm9yIGRlZmluaW5nIGFnZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTU5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81NDczNTM3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgb3ZlcnJpZGUgYW5ub3RhdGlvbiB0byBvdmVycmlkZWQgdmlydHVhbCBtZXRo
b2RzIGluIGluc3BlY3RvciBjb2RlLiBUaGlzCisgICAgICAgIGNoYW5nZSBpcyBhdXRvbWF0aWNh
bGx5IGdlbmVyYXRlZCBieSB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisgICAgICAgIGNsYW5nLXRp
ZHkgLWNoZWNrcz0nLSosbW9kZXJuaXplLXVzZS1vdmVycmlkZScgLWhlYWRlci1maWx0ZXI9Jy4q
aW5zcGVjdG9yLionIC1maXggLXAgV2ViS2l0QnVpbGQvUmVsZWFzZS8KKyAgICAgICAgICAgIFdl
YktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvdW5pZmllZC1z
b3VyY2VzL1VuaWZpZWRTb3VyY2UtODRjOWY0M2YtKi5jcHAKKyAgICAgICAgICAgIFdlYktpdEJ1
aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS91bmlmaWVkLXNvdXJjZXMvVW5pZmll
ZFNvdXJjZS04NGM5ZjQzZi0qLmNwcAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gYmVoYXZp
b3IgY2hhbmdlcy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvUGFnZVNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL1dl
YkluamVjdGVkU2NyaXB0TWFuYWdlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclNjcmlwdERlYnVn
U2VydmVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclRvUGFnZUZyb250ZW5kQ2hhbm5l
bC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxl
ckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29y
a2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9wYWdlL1BhZ2VBdWRpdEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3Bh
Z2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3Bh
Z2UvUGFnZURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2Uv
UGFnZUhlYXBBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlTmV0
d29ya0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1l
QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2Vy
QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJBdWRpdEFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQ29uc29sZUFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyRE9NRGVidWdn
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRlYnVn
Z2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3
b3JrQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJSdW50
aW1lQWdlbnQuaDoKKwogMjAxOS0wOS0yNCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgQ29hbGVzY2Ugb3IgcmVtb3ZlIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuaAppbmRleCAwYmYyYzkyNmYwMDgyMTNlYTZmOWU1MGQ5NDhjOGFmOWIwNDk1
NjAzLi5lNTNjYzYwYWFiMzVlYjU1NTY4NTQ0MmRmZWYxNzU5MGI4MzFhNWMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBAIC00OSw3
ICs0OSw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluamVjdGVkU2NyaXB0IDogcHVibGlj
IEluamVjdGVkU2NyaXB0QmFzZSB7CiBwdWJsaWM6CiAgICAgSW5qZWN0ZWRTY3JpcHQoKTsKICAg
ICBJbmplY3RlZFNjcmlwdChEZXByZWNhdGVkOjpTY3JpcHRPYmplY3QsIEluc3BlY3RvckVudmly
b25tZW50Kik7Ci0gICAgdmlydHVhbCB+SW5qZWN0ZWRTY3JpcHQoKTsKKyAgICB+SW5qZWN0ZWRT
Y3JpcHQoKSBvdmVycmlkZTsKIAogICAgIHN0cnVjdCBFeGVjdXRlT3B0aW9ucyB7CiAgICAgICAg
IFN0cmluZyBvYmplY3RHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaAppbmRleCAxZWZjMGFjZDg1YjkyZjlmYmZk
MjhlYjkwZmRlM2ZmYjNmMDgyYmRmLi41ODE2ZjUzZGU1OWYwYzFlYzc5OWMwZDdjYWI1MTUzNjRi
NzU1NDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0TW9kdWxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdE1vZHVsZS5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIEluamVjdGVkU2Ny
aXB0TWFuYWdlcjsKIAogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5qZWN0ZWRTY3JpcHRNb2R1
bGUgOiBwdWJsaWMgSW5qZWN0ZWRTY3JpcHRCYXNlIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5J
bmplY3RlZFNjcmlwdE1vZHVsZSgpOworICAgIH5JbmplY3RlZFNjcmlwdE1vZHVsZSgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgU3RyaW5nIHNvdXJjZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IEpTQzo6SlNWYWx1ZSBob3N0KEluamVjdGVkU2NyaXB0TWFuYWdlciosIEpTQzo6RXhlY1N0YXRl
KikgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaAppbmRleCA0MTEzZDYwNjY1
MDljMDAwMGIxOTJkNTUyNjEyNDc2MTM2NWVhZDhkLi45MDY5MGM4YzA2MDA1ZDNjZjYwNmJmN2Zi
MWY3OTkzMzdmYThhOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgKQEAgLTM5LDcgKzM5
LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50IGZpbmFsIDogcHVibGljIEpT
Qzo6Q29uc29sZUNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50KEluc3BlY3RvckNvbnNv
bGVBZ2VudCopOwotICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudCgpIHsg
fQorICAgIH5KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQoKSBvdmVycmlkZSB7IH0KIAogICAg
IHN0YXRpYyBib29sIGxvZ1RvU3lzdGVtQ29uc29sZSgpOwogICAgIHN0YXRpYyB2b2lkIHNldExv
Z1RvU3lzdGVtQ29uc29sZShib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxl
ci5oCmluZGV4IGYwZmZjNDVkZDlmYTZjZGY2MTdmMDM4MWU0NmY4ZGNlYmZlZjNjOGMuLjFhMDUw
MDAyOGY2N2QyYzI5M2ZmMTc4NGRjZTE4ZDIwMzU5NTc4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdElu
c3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjcsNyArNjcsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIgZmluYWwKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIoSlNDOjpKU0ds
b2JhbE9iamVjdCYpOwotICAgIH5KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIoKTsK
KyAgICB+SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKCkgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGNvbm5lY3RGcm9udGVuZChGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGlj
SW5zcGVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKTsKICAgICB2b2lkIGRpc2Nvbm5lY3RG
cm9udGVuZChGcm9udGVuZENoYW5uZWwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVy
LmgKaW5kZXggNmZmOThkMWFhNGZhYzkyMDVhYTcxMmQ3N2ZkY2UwNDQ3Mzk2Mzc0NC4uNDMxZGRj
ZDljOWYzYjhiOThmMjdjYWFkMmVmZTY3YTY3ZGU3ZWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlw
dERlYnVnU2VydmVyLmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RTY3Jp
cHREZWJ1Z1NlcnZlciBmaW5hbCA6IHB1YmxpYyBTY3JpcHREZWJ1Z1NlcnZlciB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3RTY3JpcHRE
ZWJ1Z1NlcnZlcihKU0M6OkpTR2xvYmFsT2JqZWN0Jik7Ci0gICAgdmlydHVhbCB+SlNHbG9iYWxP
YmplY3RTY3JpcHREZWJ1Z1NlcnZlcigpIHsgfQorICAgIH5KU0dsb2JhbE9iamVjdFNjcmlwdERl
YnVnU2VydmVyKCkgb3ZlcnJpZGUgeyB9CiAKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbE9iamVjdDsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3Qu
Y3BwCmluZGV4IGQxZWFiZjA0YmVhMTAzNmFmMDAzMjY4YWNjNWYyYjVlZmMwZjBlOWUuLjZkN2I5
MmQ5MGUyOGQ3M2Y1ZTU4YzdjMTUyNjcwYzFkMmFjYjkwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCkBA
IC03ODYsNyArNzg2LDcgQEAgcHVibGljOgogCiAgICAgSGFzaFNldDxKU0NlbGwqPiYgaG9sZGVy
cygpIHsgcmV0dXJuIG1faG9sZGVyczsgfQogCi0gICAgdm9pZCBhbmFseXplRWRnZShKU0NlbGwq
IGZyb20sIEpTQ2VsbCogdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbiByZWFzb24pCisg
ICAgdm9pZCBhbmFseXplRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFNsb3RWaXNpdG9y
OjpSb290TWFya1JlYXNvbiByZWFzb24pIG92ZXJyaWRlCiAgICAgewogICAgICAgICBBU1NFUlQo
dG8pOwogICAgICAgICBBU1NFUlQodG8tPnZtKCkuaGVhcFByb2ZpbGVyKCktPmFjdGl2ZUhlYXBB
bmFseXplcigpID09IHRoaXMpOwpAQCAtODExLDE0ICs4MTEsMTQgQEAgcHVibGljOgogICAgICAg
ICBlbHNlIGlmICghZnJvbSB8fCByZWFzb24gIT0gU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29u
OjpOb25lKQogICAgICAgICAgICAgbV9yb290c1RvSW5jbHVkZS5hZGQodG8pOwogICAgIH0KLSAg
ICB2b2lkIGFuYWx5emVQcm9wZXJ0eU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywg
VW5pcXVlZFN0cmluZ0ltcGwqKSB7IGFuYWx5emVFZGdlKGZyb20sIHRvLCBTbG90VmlzaXRvcjo6
Um9vdE1hcmtSZWFzb246Ok5vbmUpOyB9Ci0gICAgdm9pZCBhbmFseXplVmFyaWFibGVOYW1lRWRn
ZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJpbmdJbXBsKikgeyBhbmFseXpl
RWRnZShmcm9tLCB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpOb25lKTsgfQotICAg
IHZvaWQgYW5hbHl6ZUluZGV4RWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIHVpbnQzMl90
KSB7IGFuYWx5emVFZGdlKGZyb20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5v
bmUpOyB9Ci0KLSAgICB2b2lkIGFuYWx5emVOb2RlKEpTQ2VsbCopIHsgfQotICAgIHZvaWQgc2V0
T3BhcXVlUm9vdFJlYWNoYWJpbGl0eVJlYXNvbkZvckNlbGwoSlNDZWxsKiwgY29uc3QgY2hhciop
IHsgfQotICAgIHZvaWQgc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoSlNDZWxsKiwgdm9pZCopIHsg
fQotICAgIHZvaWQgc2V0TGFiZWxGb3JDZWxsKEpTQ2VsbCosIGNvbnN0IFN0cmluZyYpIHsgfQor
ICAgIHZvaWQgYW5hbHl6ZVByb3BlcnR5TmFtZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRv
LCBVbmlxdWVkU3RyaW5nSW1wbCopIG92ZXJyaWRlIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNs
b3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6Tm9uZSk7IH0KKyAgICB2b2lkIGFuYWx5emVWYXJp
YWJsZU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwq
KSBvdmVycmlkZSB7IGFuYWx5emVFZGdlKGZyb20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtS
ZWFzb246Ok5vbmUpOyB9CisgICAgdm9pZCBhbmFseXplSW5kZXhFZGdlKEpTQ2VsbCogZnJvbSwg
SlNDZWxsKiB0bywgdWludDMyX3QpIG92ZXJyaWRlIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNs
b3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6Tm9uZSk7IH0KKworICAgIHZvaWQgYW5hbHl6ZU5v
ZGUoSlNDZWxsKikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBzZXRPcGFxdWVSb290UmVhY2hhYmls
aXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqLCBjb25zdCBjaGFyKikgb3ZlcnJpZGUgeyB9CisgICAg
dm9pZCBzZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChKU0NlbGwqLCB2b2lkKikgb3ZlcnJpZGUgeyB9
CisgICAgdm9pZCBzZXRMYWJlbEZvckNlbGwoSlNDZWxsKiwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGUgeyB9CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1Njcmlw
dERlYnVnU2VydmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERl
YnVnU2VydmVyLmgKaW5kZXggMWVlYjRmOGE4YzY1MzI3NTBkOGUyZjkzM2FhNjA0NjA1MjBhZTE0
MS4uMDE5ZmZmNTYwZmZhYzkyMDE1MmFjYjM5ZThjZWViYzZkMmY5YjdhOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAt
NjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBTY3JpcHREZWJ1Z1NlcnZl
cihKU0M6OlZNJik7Ci0gICAgflNjcmlwdERlYnVnU2VydmVyKCk7CisgICAgflNjcmlwdERlYnVn
U2VydmVyKCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoRGVidWdnZXIoKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaERlYnVnZ2VyKGJvb2wgaXNCZWluZ0Rlc3Ryb3ll
ZCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckFnZW50LmgKaW5kZXggOGM0ZjhjY2YzZWE3ZDkxMWJhZmMzYmQ4NjdjZDRl
ZmMwZDZiZjU1Zi4uYTIxYTU4OTRhYjczMjY0YzhmYTQ3MTZiZmFjNjk4ODgyOGE4ZDQyNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBZ2VudC5oCkBAIC00NywxNiArNDcsMTYgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUg
SW5zcGVjdG9yQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JBZ2Vu
dChBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JBZ2VudCgpOworICAgIH5J
bnNwZWN0b3JBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCi0g
ICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNr
ZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
RGlzY29ubmVjdFJlYXNvbik7CisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
RnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZvaWQg
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7
CiAKICAgICAvLyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVu
YWJsZShFcnJvclN0cmluZyYpOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOwotICAg
IHZvaWQgaW5pdGlhbGl6ZWQoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0
cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRl
OworICAgIHZvaWQgaW5pdGlhbGl6ZWQoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIC8v
IENvbW1hbmRMaW5lQVBJCiAgICAgdm9pZCBpbnNwZWN0KFJlZlB0cjxQcm90b2NvbDo6UnVudGlt
ZTo6UmVtb3RlT2JqZWN0PiYmIG9iamVjdFRvSW5zcGVjdCwgUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBoaW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmgKaW5kZXggYTU2MTRjNWU3YjRjNzA3MWQ1
NmU2YWNiZmEzNTBjODU3YjQ1NjQ1My4uZTFhYzNjYmU1ZmRhMzViMzYzZjEzYmI3YzQzMGIxNDNk
MGIzZmYxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFz
cyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JBdWRpdEFnZW50IDogcHVibGljIEluc3BlY3Rv
ckFnZW50QmFzZSwgcHVibGljCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQXVk
aXRBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdmly
dHVhbCB+SW5zcGVjdG9yQXVkaXRBZ2VudCgpOworICAgIH5JbnNwZWN0b3JBdWRpdEFnZW50KCkg
b3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKICAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmluZGV4IGM4NTdjZGRmZWJkNzcxMzNk
OTMyMWQwYmNmYWM5N2YwYTEyMjM4ZTcuLmZmZjcyYmQ5MDJmZjgyYWJmMzcwMjU4NDg0OWEzZjNm
MWFhOGY2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC01Myw3ICs1Myw3IEBA
IGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvckNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJ
bnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KEFnZW50Q29udGV4dCYpOwotICAgIHZp
cnR1YWwgfkluc3BlY3RvckNvbnNvbGVBZ2VudCgpOworICAgIH5JbnNwZWN0b3JDb25zb2xlQWdl
bnQoKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQogICAgIHZvaWQgZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNo
ZXIqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCAxNmY0YmY4ZTcy
YTM2ZTc1MTlkNzU2MTJkMWY0MGVlYzRmN2U4YTBiLi45MjQ2ZDZjNjQ0NjVhMWM0N2Q3YTU0Y2U2
NDYzMGMwNTdlZDYxMDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC01Myw3
ICs1Myw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQg
OiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsCiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpOworICAgIH5J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogYmFja3RyYWNlT2JqZWN0R3JvdXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKaW5kZXggOWM5
MzY2NzNmYjNlNzcwMGRmMTQ4ZTdhZmJkMjg3YTVmMmNiOGM3MS4uZGVmNmFjZGU5NDYwZTcxMjgw
MDQxZGFhNjVmY2NkNjg1ZTBmN2MwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9ySGVhcEFnZW50IDogcHVi
bGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEgKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JIZWFwQWdlbnQoQWdlbnRDb250ZXh0Jik7Ci0g
ICAgdmlydHVhbCB+SW5zcGVjdG9ySGVhcEFnZW50KCk7CisgICAgfkluc3BlY3RvckhlYXBBZ2Vu
dCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCiAgICAgdm9pZCBkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hl
ciopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCA3MTczMWJkMmJhZmM0
Y2UxMjRkZGNlZDMyMjhhM2VkM2FhODQ3OTYzLi43ZDQ1MDU0NWUwZGI2NTRkNDQyMWE4NmIwNjQ4
ZGIzMWEzOTA5MDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaApAQCAtNTEsNyArNTEs
NyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JSdW50aW1lQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaQogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElu
c3BlY3RvclJ1bnRpbWVBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yUnVudGltZUFnZW50KCk7CisgICAgfkluc3BlY3Rv
clJ1bnRpbWVBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCiAg
ICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJv
dXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFBy
b2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaAppbmRleCA2ZDQzMjdmMzQzMGMxMzhmNmQ5ZTc0
MjBiZDU5YjlkNGM4YTc4YmYzLi45NzkxMDU2YzkyNDA5MGNjNjNiZWY4MTc0Mzk0ZjUxY2I2OGZk
YmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oCkBAIC00NCwy
MCArNDQsMjAgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yU2NyaXB0UHJvZmls
ZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2UKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KEFnZW50
Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQoKTsK
KyAgICB+SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8g
SW5zcGVjdG9yQWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
RnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbik7CisgICAgdm9pZCBkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciop
IG92ZXJyaWRlOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29u
bmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBTY3JpcHRQcm9maWxlckJhY2tlbmREaXNw
YXRjaGVySGFuZGxlcgotICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYsIGNvbnN0
IGJvb2wqIGluY2x1ZGVTYW1wbGVzKTsKLSAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmlu
ZyYpOworICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYsIGNvbnN0IGJvb2wqIGlu
Y2x1ZGVTYW1wbGVzKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmlu
ZyYpIG92ZXJyaWRlOwogCiAgICAgLy8gSlNDOjpEZWJ1Z2dlcjo6UHJvZmlsaW5nQ2xpZW50Ci0g
ICAgYm9vbCBpc0FscmVhZHlQcm9maWxpbmcoKSBjb25zdDsKLSAgICBTZWNvbmRzIHdpbGxFdmFs
dWF0ZVNjcmlwdCgpOwotICAgIHZvaWQgZGlkRXZhbHVhdGVTY3JpcHQoU2Vjb25kcywgSlNDOjpQ
cm9maWxpbmdSZWFzb24pOworICAgIGJvb2wgaXNBbHJlYWR5UHJvZmlsaW5nKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgU2Vjb25kcyB3aWxsRXZhbHVhdGVTY3JpcHQoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZEV2YWx1YXRlU2NyaXB0KFNlY29uZHMsIEpTQzo6UHJvZmlsaW5nUmVhc29uKSBvdmVy
cmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFkZEV2ZW50KFNlY29uZHMgc3RhcnRUaW1lLCBT
ZWNvbmRzIGVuZFRpbWUsIEpTQzo6UHJvZmlsaW5nUmVhc29uKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRB
Z2VudC5oCmluZGV4IDAwZmMzYjAyMTczNDRiZTRjZGZmNzkxMWMyMTM3MThjNWI5NWNlZTMuLjMx
MmViNjAwYWI4ZWI0M2EwYWU3NDc4ZmMxYjcwODRkMDU0NmRjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFy
Z2V0QWdlbnQuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNw
ZWN0b3JUYXJnZXRBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYwogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclRhcmdldEFnZW50KTsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JUYXJnZXRB
Z2VudCgpOworICAgIH5JbnNwZWN0b3JUYXJnZXRBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8g
SW5zcGVjdG9yQWdlbnRCYXNlCiAgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
RnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRp
dEFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2Jh
bE9iamVjdEF1ZGl0QWdlbnQuaAppbmRleCBjN2RhMTkzZTg4ZDM3MjUwNWQ3OGNjNmJmOTI0NWU1
ZDgzMWJjOTU1Li40OTIxZDMzMDZlZDU3YmI0MDljODE2NzFhYzEzYzJmNDMyMTAzYmM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9i
amVjdEF1ZGl0QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaApAQCAtMzgsMTAgKzM4LDEwIEBAIGNsYXNz
IEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBdWRpdEFn
ZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBKU0dsb2Jh
bE9iamVjdEF1ZGl0QWdlbnQoSlNBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5KU0dsb2Jh
bE9iamVjdEF1ZGl0QWdlbnQoKTsKKyAgICB+SlNHbG9iYWxPYmplY3RBdWRpdEFnZW50KCkgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JF
dmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOworICAgIElu
amVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGlu
dCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKIAogICAgIEpTQzo6SlNHbG9iYWxPYmpl
Y3QmIG1fZ2xvYmFsT2JqZWN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFn
ZW50LmgKaW5kZXggYTQ2Yjc2YTNlYjZkM2MzNDM3NDBkZDM3ODZjNDk1YWJjM2NmMmNjMS4uMzU0
NWYxODViZjNhYTI1OGQ3M2JjMTEyYTZjYmU4ZjAyMTgwZjcyYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFn
ZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9i
YWxPYmplY3REZWJ1Z2dlckFnZW50LmgKQEAgLTM2LDE4ICszNiwxOCBAQCBjbGFzcyBKU0dsb2Jh
bE9iamVjdERlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSlNHbG9iYWxP
YmplY3REZWJ1Z2dlckFnZW50KEpTQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yQ29uc29sZUFnZW50
Kik7Ci0gICAgdmlydHVhbCB+SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50KCk7CisgICAgfkpT
R2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gU2NyaXB0RGVi
dWdMaXN0ZW5lcgotICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSYs
IGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNT
dGF0ZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIEluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhl
Y3V0aW9uQ29udGV4dElkKTsKKyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2
YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7
CiAKICAgICAvLyBOT1RFOiBKYXZhU2NyaXB0IGluc3BlY3RvciBkb2VzIG5vdCB5ZXQgbmVlZCB0
byBtdXRlIGEgY29uc29sZSBiZWNhdXNlIG5vIG1lc3NhZ2VzCiAgICAgLy8gYXJlIHNlbnQgdG8g
dGhlIGNvbnNvbGUgb3V0c2lkZSBvZiB0aGUgQVBJIGJvdW5kYXJ5IG9yIGNvbnNvbGUgb2JqZWN0
LgotICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSB7IH0KLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSB7
IH0KKyAgICB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCB1bm11dGVD
b25zb2xlKCkgb3ZlcnJpZGUgeyB9CiAKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIG1fY29u
c29sZUFnZW50IHsgbnVsbHB0ciB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVB
Z2VudC5oCmluZGV4IGVhODU3NGU1YWVmOGYyMmQ3MTE1ZTMxMzVhYTZmYmQ1OTI0YmE0MjkuLmEz
NDdkZTRlZjBhYzg2NDVkZGU1NjVhMzYwYTBkNzVlNWNlOTkyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9i
YWxPYmplY3RSdW50aW1lQWdlbnQuaApAQCAtMzksMTUgKzM5LDE1IEBAIGNsYXNzIEpTR2xvYmFs
T2JqZWN0UnVudGltZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQoSlNBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5KU0dsb2JhbE9i
amVjdFJ1bnRpbWVBZ2VudCgpOworICAgIH5KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudCgpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9y
RXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKTsKKyAgICBJ
bmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBp
bnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7CiAKICAgICAvLyBOT1RFOiBKYXZhU2Ny
aXB0IGluc3BlY3RvciBkb2VzIG5vdCB5ZXQgbmVlZCB0byBtdXRlIGEgY29uc29sZSBiZWNhdXNl
IG5vIG1lc3NhZ2VzCiAgICAgLy8gYXJlIHNlbnQgdG8gdGhlIGNvbnNvbGUgb3V0c2lkZSBvZiB0
aGUgQVBJIGJvdW5kYXJ5IG9yIGNvbnNvbGUgb2JqZWN0LgotICAgIHZvaWQgbXV0ZUNvbnNvbGUo
KSB7IH0KLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSB7IH0KKyAgICB2b2lkIG11dGVDb25zb2xl
KCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGUgeyB9CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVudGltZUZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVu
ZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNr
ZW5kRGlzcGF0Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcmVtb3RlL1JlbW90ZUF1dG9tYXRpb25UYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUF1dG9tYXRpb25UYXJnZXQuaAppbmRleCBjZWM1Mjg4
MzA2ZmUxNzEwN2I2MzlhMTNhZmQ4NjZhYmViMmY2NTgwLi41Yzc0ZmQ0ODNmYTg1ZjJlZDMwNWMz
MWJjMjFkZTZmZjFjNmFhMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9SZW1vdGVBdXRvbWF0aW9uVGFyZ2V0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQXV0b21hdGlvblRhcmdldC5oCkBAIC0z
Niw3ICszNiw3IEBAIGNsYXNzIEZyb250ZW5kQ2hhbm5lbDsKIAogY2xhc3MgSlNfRVhQT1JUX1BS
SVZBVEUgUmVtb3RlQXV0b21hdGlvblRhcmdldCA6IHB1YmxpYyBSZW1vdGVDb250cm9sbGFibGVU
YXJnZXQgewogcHVibGljOgotICAgIHZpcnR1YWwgflJlbW90ZUF1dG9tYXRpb25UYXJnZXQoKTsK
KyAgICB+UmVtb3RlQXV0b21hdGlvblRhcmdldCgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1Bh
aXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFpcmVkOyB9CiAgICAgdm9pZCBzZXRJc1BhaXJlZChi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKaW5kZXggZWVjZWEwZDNjYTJm
MTNmZTY1ZTJiOTUwYWM4ZjNlMTA3MWUxZjU0ZS4uYzg1YjY0YTA1M2Y4ZmYwY2MwMDkyMDdmZTBj
OTdkODEyYTQ3MGM2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKQEAgLTU0
LDcgKzU0LDcgQEAgcHVibGljOgogI2Vsc2UKICAgICBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQo
UmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Jik7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIH5SZW1vdGVD
b25uZWN0aW9uVG9UYXJnZXQoKTsKKyAgICB+UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0KCkgb3Zl
cnJpZGU7CiAKICAgICAvLyBNYWluIEFQSS4KICAgICBib29sIHNldHVwKGJvb2wgaXNBdXRvbWF0
aWNJbnNwZWN0aW9uID0gZmFsc2UsIGJvb2wgYXV0b21hdGljYWxseVBhdXNlID0gZmFsc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXgg
NGJlYTQzMjYzZGE3MDM3ZjE4ODY1OTY2MmRhOGRiZjZkODMxNTk2ZC4uNTE4NmQ1NzAxNzNkZDkx
MWVlNDUxZWJiYmZiMjJiMTNhZWVmNTc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIEluc3BlY3Rv
ckNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JFbnZpcm9ubWVu
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9y
Q29udHJvbGxlcihQYWdlJiwgSW5zcGVjdG9yQ2xpZW50Kik7Ci0gICAgdmlydHVhbCB+SW5zcGVj
dG9yQ29udHJvbGxlcigpOworICAgIH5JbnNwZWN0b3JDb250cm9sbGVyKCkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKaW5kZXgg
NmMxYjUxYWRlZTlhMzg0MjYzMzM4ZjQ1ZDg4ODRhNmQ5YzM3ZWE4Mi4uMTcyNTA2ODI4N2MzNDMz
ZTljNGM5YjQ5ZTg4MWUxY2NkODlhZDM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCkBAIC02MCw3ICs2MCw3
IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0ZWRQYWdlQ29udHJvbGxl
ciwgUGFnZSogZnJvbnRlbmRQYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8U2V0dGluZ3M+KTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgfkluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwoKSBvdmVycmlk
ZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXRTdGF0ZSgpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CmluZGV4IGEwZmQ3NjUyMTk4MDYwMzU5YzY0Nzk0NWM3MzgwYTdlNDBiNGY4MzAuLjVhOTNmM2I0
YWE2NzUyYzViZDdlZDc2NmUzYzhjZGIwZTZlOWEzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCkBAIC04Niw3ICs4Niw3IEBA
IHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgfkZyb250ZW5kTWVudVByb3Zp
ZGVyKCkKKyAgICB+RnJvbnRlbmRNZW51UHJvdmlkZXIoKSBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgY29udGV4dE1lbnVDbGVhcmVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4IDg1M2Y1MzRhNzBhZmY1NTEwY2I0
YzgzY2Y4NTUxMWVlOWVlZjAxMjUuLmY4OTUzMDE3YjM5YjljNzJjMDdiYTYyMmU2MWU4YWY0ZmVl
MmUyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVNjcmlwdERlYnVn
U2VydmVyLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgUGFnZVNjcmlwdERlYnVnU2VydmVyIGZp
bmFsIDogcHVibGljIEluc3BlY3Rvcjo6U2NyaXB0RGVidWdTZXJ2ZXIgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcihQYWdl
Jik7Ci0gICAgdmlydHVhbCB+UGFnZVNjcmlwdERlYnVnU2VydmVyKCkgPSBkZWZhdWx0OworICAg
IH5QYWdlU2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZSA9IGRlZmF1bHQ7CiAKICAgICB2b2lk
IHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaAppbmRleCA1OTQ1Zjhl
Mzc5NTMxNzZlNTJjYzc0YmYwOTA0YzY0OWY3ZjQzZmQwLi5jYWQ5OTg5MDI5ZWI3NGM3NzU3OTdj
MjhiNDZjMDU5ZGM1ZGY3YjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFdlYklu
amVjdGVkU2NyaXB0TWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6OkluamVjdGVkU2Ny
aXB0TWFuYWdlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3BlY3Rvcjo6SW5zcGVjdG9yRW52aXJvbm1lbnQm
LCBSZWY8SW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdEhvc3Q+JiYpOwotICAgIHZpcnR1YWwgfldl
YkluamVjdGVkU2NyaXB0TWFuYWdlcigpID0gZGVmYXVsdDsKKyAgICB+V2ViSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKCkgb3ZlcnJpZGUgPSBkZWZhdWx0OwogCiAgICAgY29uc3QgUmVmUHRyPENvbW1h
bmRMaW5lQVBJSG9zdD4mIGNvbW1hbmRMaW5lQVBJSG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29t
bWFuZExpbmVBUElIb3N0OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDQyMWFjYmJiNmFiMGRiODgwZjhkNzI1
M2ZkMjhiOTE1YmIzNGUxYjcuLjQwOGZjMjI4MjBkMzE3MmY1YTlhNDhhZTBhZWIxYjgyMmU5Y2E1
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBXb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyIGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yRW52aXJvbm1lbnQgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IFdvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUmKTsKLSAgICB2aXJ0dWFsIH5X
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7CisgICAgfldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgd29ya2VyVGVybWluYXRpbmcoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRl
eCBlMzNmZWVlYzRkMmUzOTFiNGI1ZmQyNTI3NWQ5NmY0ZTE1MTY3MTM2Li40NTA4MjcxMDgwOGMx
YWQ2MDc4NzU4NTQ3YzliYjUwYzUxMGRlOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFz
cyBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6OlNjcmlw
dERlYnVnU2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcihXb3JrZXJHbG9iYWxTY29wZSYpOwotICAgIH5Xb3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlcigpID0gZGVmYXVsdDsKKyAgICB+V29ya2VyU2NyaXB0RGVidWdT
ZXJ2ZXIoKSBvdmVycmlkZSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIHJlY29tcGlsZUFsbEpTRnVu
Y3Rpb25zKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJUb1BhZ2VGcm9udGVuZENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJUb1BhZ2VGcm9udGVuZENoYW5uZWwuaAppbmRleCA1ZTYxNmViOTlkNDcyMDlkOTlj
MjU3YTdlN2JhMWEyZjc0ZGFkN2EyLi5jMDI2MjExMzVjNTVlYmQ3MDZlMDQzNTFiNWMxM2Y2MTNi
ZWE2NTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyVG9QYWdl
RnJvbnRlbmRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclRv
UGFnZUZyb250ZW5kQ2hhbm5lbC5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICAgICAg
OiBtX3dvcmtlckdsb2JhbFNjb3BlKHdvcmtlckdsb2JhbFNjb3BlKQogICAgIHsKICAgICB9Ci0g
ICAgfldvcmtlclRvUGFnZUZyb250ZW5kQ2hhbm5lbCgpID0gZGVmYXVsdDsKKyAgICB+V29ya2Vy
VG9QYWdlRnJvbnRlbmRDaGFubmVsKCkgb3ZlcnJpZGUgPSBkZWZhdWx0OwogCiBwcml2YXRlOgog
ICAgIENvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gQ29ubmVjdGlvblR5cGU6OkxvY2FsOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
aAppbmRleCBmMTYxODRmYTY0NzQ0OTdiYmY0YWEzODAxZWI2OWQ5NzRlZDFiMzNiLi41MTk4OGY2
MTdkZTExZWYxMTcwOGE3YjM5MmNmMGNlMTk0YjQ4NmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmgKQEAgLTQ2LDE4ICs0NiwxOCBAQCBjbGFzcyBJbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSQog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCk7CisgICAgfkluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCi0gICAgdm9p
ZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CisgICAgdm9pZCBk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIElu
c3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJp
ZGU7CiAKICAgICAvLyBBcHBsaWNhdGlvbkNhY2hlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0g
ICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJp
bmcmKTsKLSAgICB2b2lkIGdldEZyYW1lc1dpdGhNYW5pZmVzdHMoRXJyb3JTdHJpbmcmLCBSZWZQ
dHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNhdGlvbkNhY2hlOjpG
cmFtZVdpdGhNYW5pZmVzdD4+JiByZXN1bHQpOwotICAgIHZvaWQgZ2V0TWFuaWZlc3RGb3JGcmFt
ZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgU3RyaW5nKiBtYW5pZmVzdFVS
TCk7Ci0gICAgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlRm9yRnJhbWUoRXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIGZyYW1lSWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcHBsaWNh
dGlvbkNhY2hlOjpBcHBsaWNhdGlvbkNhY2hlPiYpOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3Ry
aW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZXRGcmFtZXNXaXRoTWFuaWZlc3RzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpT
T046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6RnJhbWVX
aXRoTWFuaWZlc3Q+PiYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIGdldE1hbmlmZXN0Rm9y
RnJhbWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIFN0cmluZyogbWFuaWZl
c3RVUkwpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZUZvckZyYW1lKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZT4mKSBvdmVycmlkZTsKIAog
ICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgdXBkYXRlQXBwbGljYXRp
b25DYWNoZVN0YXR1cyhGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQuaAppbmRleCA1YmZhYmZh
YTM0MTc0ZTNlZmJmOGIxYmY5NjgwODc2NDE1OGE1ZDQ4Li40ZWU4ZTk3ODUzZDcxMmQzZGE2NDM5
Yjk4OTdlODY1YTg5NmRiZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQuaApAQCAtNDEsMTUgKzQx
LDE1IEBAIGNsYXNzIEluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5z
cGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudChQYWdlQWdlbnRDb250
ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudCgpOworICAgIH5J
bnNwZWN0b3JDUFVQcm9maWxlckFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JB
Z2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZv
aWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVh
c29uKTsKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZy
b250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwor
ICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIENQVVByb2ZpbGVyQmFja2VuZERpc3BhdGNo
ZXJIYW5kbGVyCi0gICAgdm9pZCBzdGFydFRyYWNraW5nKEVycm9yU3RyaW5nJik7Ci0gICAgdm9p
ZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJy
b3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmluZyYp
IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZvaWQgY29sbGVjdFNhbXBsZShjb25zdCBSZXNv
dXJjZVVzYWdlRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IDU2ZGNmYTMzMGM0YjkzMTI0ZjMyNmY0YmFiMjc5
NGVkODI1OGJkYWQuLmU0M2NiNWI3NjEwMzlhYzY3ZjFlOTE2YzFhNmQzNjI0YjgxOWUzYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0Fn
ZW50LmgKQEAgLTU4LDcgKzU4LDcgQEAgY2xhc3MgSW5zcGVjdG9yQ1NTQWdlbnQgZmluYWwgOiBw
dWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlICwgcHVibGljIEluc3BlY3Rvcjo6Q1MKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JDU1NBZ2VudChXZWJB
Z2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDU1NBZ2VudCgpOworICAgIH5J
bnNwZWN0b3JDU1NBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgY2xhc3MgSW5saW5lU3R5bGVPdmVy
cmlkZVNjb3BlIHsKICAgICBwdWJsaWM6CkBAIC04MCwyOSArODAsMjkgQEAgcHVibGljOgogICAg
IHN0YXRpYyBDU1NTdHlsZVJ1bGUqIGFzQ1NTU3R5bGVSdWxlKENTU1J1bGUmKTsKIAogICAgIC8v
IEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
Kik7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQ1NTQmFja2VuZERpc3Bh
dGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGRp
c2FibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGdldENvbXB1dGVkU3R5bGVGb3JOb2RlKEVy
cm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q1NTOjpDU1NDb21wdXRlZFN0eWxlUHJvcGVydHk+PiYpOwotICAgIHZvaWQgZ2V0
SW5saW5lU3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiYgaW5saW5lU3R5bGUsIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiYgYXR0cmlidXRlcyk7Ci0gICAgdm9pZCBn
ZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IGJv
b2wqIGluY2x1ZGVQc2V1ZG8sIGNvbnN0IGJvb2wqIGluY2x1ZGVJbmhlcml0ZWQsIFJlZlB0cjxK
U09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoPj4mIG1hdGNo
ZWRDU1NSdWxlcywgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpQc2V1ZG9JZE1hdGNoZXM+PiYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNTUzo6SW5oZXJpdGVkU3R5bGVFbnRyeT4+JiBpbmhlcml0ZWRFbnRyaWVzKTsKLSAg
ICB2b2lkIGdldEFsbFN0eWxlU2hlZXRzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5
T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZVNoZWV0SGVhZGVyPj4mIHN0eWxl
U2hlZXRJbmZvcyk7Ci0gICAgdm9pZCBnZXRTdHlsZVNoZWV0KEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNT
U1N0eWxlU2hlZXRCb2R5PiYgcmVzdWx0KTsKLSAgICB2b2lkIGdldFN0eWxlU2hlZXRUZXh0KEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0SWQsIFN0cmluZyogcmVzdWx0KTsK
LSAgICB2b2lkIHNldFN0eWxlU2hlZXRUZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBz
dHlsZVNoZWV0SWQsIGNvbnN0IFN0cmluZyYgdGV4dCk7Ci0gICAgdm9pZCBzZXRTdHlsZVRleHQo
RXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+JiByZXN1bHQp
OwotICAgIHZvaWQgc2V0UnVsZVNlbGVjdG9yKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2Jq
ZWN0JiBydWxlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpOwotICAgIHZvaWQgY3JlYXRlU3R5bGVTaGVl
dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgU3RyaW5nKiBzdHlsZVNoZWV0
SWQpOwotICAgIHZvaWQgYWRkUnVsZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVT
aGVldElkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q1NTOjpDU1NSdWxlPiYgcmVzdWx0KTsKLSAgICB2b2lkIGdldFN1cHBvcnRlZENTU1Byb3Bl
cnRpZXMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDU1M6OkNTU1Byb3BlcnR5SW5mbz4+JiByZXN1bHQpOwotICAgIHZvaWQgZ2V0U3VwcG9y
dGVkU3lzdGVtRm9udEZhbWlseU5hbWVzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5
T2Y8U3RyaW5nPj4mIHJlc3VsdCk7Ci0gICAgdm9pZCBmb3JjZVBzZXVkb1N0YXRlKEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCwgY29uc3QgSlNPTjo6QXJyYXkmIGZvcmNlZFBzZXVkb0NsYXNzZXMp
OworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNh
YmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9y
Tm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTQ29tcHV0ZWRTdHlsZVByb3BlcnR5Pj4mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGdldElubGluZVN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIGlubGluZVN0
eWxlLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIGF0dHJpYnV0
ZXMpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoRXJyb3JTdHJp
bmcmLCBpbnQgbm9kZUlkLCBjb25zdCBib29sKiBpbmNsdWRlUHNldWRvLCBjb25zdCBib29sKiBp
bmNsdWRlSW5oZXJpdGVkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29s
OjpDU1M6OlJ1bGVNYXRjaD4+JiBtYXRjaGVkQ1NTUnVsZXMsIFJlZlB0cjxKU09OOjpBcnJheU9m
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UHNldWRvSWRNYXRjaGVzPj4mLCBSZWZQdHI8SlNP
Tjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkluaGVyaXRlZFN0eWxlRW50cnk+
PiYgaW5oZXJpdGVkRW50cmllcykgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRBbGxTdHlsZVNoZWV0
cyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcj4+JiBzdHlsZVNoZWV0SW5mb3MpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0U3R5bGVTaGVldChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVT
aGVldElkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZVNoZWV0Qm9k
eT4mIHJlc3VsdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTdHlsZVNoZWV0VGV4dChFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBTdHJpbmcqIHJlc3VsdCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRTdHlsZVNoZWV0VGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgc3R5bGVTaGVldElkLCBjb25zdCBTdHJpbmcmIHRleHQpIG92ZXJyaWRlOworICAgIHZvaWQg
c2V0U3R5bGVUZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBzdHlsZUlkLCBj
b25zdCBTdHJpbmcmIHRleHQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0
eWxlPiYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFJ1bGVTZWxlY3RvcihFcnJvclN0
cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9y
LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiYgcmVzdWx0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGNyZWF0ZVN0eWxlU2hlZXQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIGZyYW1lSWQsIFN0cmluZyogc3R5bGVTaGVldElkKSBvdmVycmlkZTsKKyAgICB2b2lkIGFk
ZFJ1bGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3Ry
aW5nJiBzZWxlY3RvciwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4m
IHJlc3VsdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKEVy
cm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpDU1NQcm9wZXJ0eUluZm8+PiYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFN1cHBv
cnRlZFN5c3RlbUZvbnRGYW1pbHlOYW1lcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJh
eU9mPFN0cmluZz4+JiByZXN1bHQpIG92ZXJyaWRlOworICAgIHZvaWQgZm9yY2VQc2V1ZG9TdGF0
ZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IEpTT046OkFycmF5JiBmb3JjZWRQc2V1
ZG9DbGFzc2VzKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3RvclN0eWxlU2hlZXQ6Okxpc3Rl
bmVyCi0gICAgdm9pZCBzdHlsZVNoZWV0Q2hhbmdlZChJbnNwZWN0b3JTdHlsZVNoZWV0Kik7Cisg
ICAgdm9pZCBzdHlsZVNoZWV0Q2hhbmdlZChJbnNwZWN0b3JTdHlsZVNoZWV0Kikgb3ZlcnJpZGU7
CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRvY3VtZW50RGV0
YWNoZWQoRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCA2MGM1NmU5NmZiNjUwMTQ5YmM3ZWI3
ODUyYjI1MGJhNzg2ZWNiNzY0Li5hMzBjN2ZjNDc5MmNhZGRhYTRhNjAzOWI1ZGMwZDBjYjhmOWYx
NzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNhbnZhc0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDYW52YXNBZ2VudC5oCkBAIC02MSwzMiArNjEsMzIgQEAgY2xhc3MgSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVj
dG9yOjoKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0
b3JDYW52YXNBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9y
Q2FudmFzQWdlbnQoKTsKKyAgICB+SW5zcGVjdG9yQ2FudmFzQWdlbnQoKSBvdmVycmlkZTsKIAog
ICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNw
YXRjaGVyKik7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwotICAgIHZvaWQgZGlzY2FyZEFnZW50KCk7CisgICAgdm9p
ZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaXNjYXJkQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIENhbnZh
c0JhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7
Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCByZXF1ZXN0Tm9kZShF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIGludCogbm9kZUlkKTsKLSAgICB2
b2lkIHJlcXVlc3RDb250ZW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCwg
U3RyaW5nKiBjb250ZW50KTsKLSAgICB2b2lkIHJlcXVlc3RDbGllbnROb2RlcyhFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+Jik7
Ci0gICAgdm9pZCByZXNvbHZlQ29udGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2Fu
dmFzSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+Jik7Ci0gICAgdm9pZCBzZXRSZWNvcmRpbmdBdXRv
Q2FwdHVyZUZyYW1lQ291bnQoRXJyb3JTdHJpbmcmLCBpbnQgY291bnQpOwotICAgIHZvaWQgc3Rh
cnRSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBjb25zdCBp
bnQqIGZyYW1lQ291bnQsIGNvbnN0IGludCogbWVtb3J5TGltaXQpOwotICAgIHZvaWQgc3RvcFJl
Y29yZGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQpOwotICAgIHZvaWQg
cmVxdWVzdFNoYWRlclNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlk
LCBjb25zdCBTdHJpbmcmIHNoYWRlclR5cGUsIFN0cmluZyogc291cmNlKTsKLSAgICB2b2lkIHVw
ZGF0ZVNoYWRlcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBjb25zdCBT
dHJpbmcmIHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc291cmNlKTsKLSAgICB2b2lkIHNldFNo
YWRlclByb2dyYW1EaXNhYmxlZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlk
LCBib29sIGRpc2FibGVkKTsKLSAgICB2b2lkIHNldFNoYWRlclByb2dyYW1IaWdobGlnaHRlZChF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcHJvZ3JhbUlkLCBib29sIGhpZ2hsaWdodGVkKTsK
KyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJs
ZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdE5vZGUoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBpbnQqIG5vZGVJZCkgb3ZlcnJpZGU7CisgICAg
dm9pZCByZXF1ZXN0Q29udGVudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQs
IFN0cmluZyogY29udGVudCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0Q2xpZW50Tm9kZXMo
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBSZWZQdHI8SlNPTjo6QXJyYXlP
ZjxpbnQ+PiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzb2x2ZUNvbnRleHQoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYpIG92ZXJyaWRl
OworICAgIHZvaWQgc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KEVycm9yU3RyaW5n
JiwgaW50IGNvdW50KSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCwgY29uc3QgaW50KiBmcmFtZUNvdW50LCBjb25z
dCBpbnQqIG1lbW9yeUxpbWl0KSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmcoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkKSBvdmVycmlkZTsKKyAgICB2b2lkIHJl
cXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwg
Y29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBTdHJpbmcqIHNvdXJjZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCB1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwg
Y29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHByb2dyYW1JZCwgYm9vbCBkaXNhYmxlZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRT
aGFkZXJQcm9ncmFtSGlnaGxpZ2h0ZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dy
YW1JZCwgYm9vbCBoaWdobGlnaHRlZCkgb3ZlcnJpZGU7CiAKICAgICAvLyBDYW52YXNPYnNlcnZl
cgotICAgIHZvaWQgY2FudmFzQ2hhbmdlZChDYW52YXNCYXNlJiwgY29uc3QgRmxvYXRSZWN0Jik7
Ci0gICAgdm9pZCBjYW52YXNSZXNpemVkKENhbnZhc0Jhc2UmKSB7IH0KLSAgICB2b2lkIGNhbnZh
c0Rlc3Ryb3llZChDYW52YXNCYXNlJik7CisgICAgdm9pZCBjYW52YXNDaGFuZ2VkKENhbnZhc0Jh
c2UmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNhbnZhc1Jlc2l6ZWQo
Q2FudmFzQmFzZSYpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgY2FudmFzRGVzdHJveWVkKENhbnZh
c0Jhc2UmKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAg
IHZvaWQgZnJhbWVOYXZpZ2F0ZWQoRnJhbWUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCA4MDRmMmJjYjI4OTZmYzkw
MWMzNTU0YWQ2ODM0YWMxYmFhYTQ1M2MwLi5jZWQ5NmZiOTZlMzlhM2JkMTFiODEzNjhmNDAxZWJi
YzVmOGNmYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01BZ2VudC5oCkBAIC04Miw3ICs4Miw3IEBAIGNsYXNzIEluc3BlY3RvckRPTUFn
ZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6
RE9NCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9y
RE9NQWdlbnQoUGFnZUFnZW50Q29udGV4dCYsIEluc3BlY3Rvck92ZXJsYXkqKTsKLSAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JET01BZ2VudCgpOworICAgIH5JbnNwZWN0b3JET01BZ2VudCgpIG92ZXJy
aWRlOwogCiAgICAgc3RhdGljIFN0cmluZyB0b0Vycm9yU3RyaW5nKEV4Y2VwdGlvbkNvZGUpOwog
ICAgIHN0YXRpYyBTdHJpbmcgdG9FcnJvclN0cmluZyhFeGNlcHRpb24mJik7CkBAIC0xMDEsNTIg
KzEwMSw1MiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBub2RlQXNTY3JpcHRW
YWx1ZShKU0M6OkV4ZWNTdGF0ZSYsIE5vZGUqKTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFz
ZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRl
bmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7Ci0gICAgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwor
ICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRS
b3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOwogCiAgICAgLy8gRE9NQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAg
dm9pZCBxdWVyeVNlbGVjdG9yKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5n
JiBzZWxlY3RvcnMsIGludCogZWxlbWVudElkKTsKLSAgICB2b2lkIHF1ZXJ5U2VsZWN0b3JBbGwo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgUmVmUHRy
PEpTT046OkFycmF5T2Y8aW50Pj4mIHJlc3VsdCk7Ci0gICAgdm9pZCBnZXREb2N1bWVudChFcnJv
clN0cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+JiByb290KTsK
LSAgICB2b2lkIHJlcXVlc3RDaGlsZE5vZGVzKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29u
c3QgaW50KiBkZXB0aCk7Ci0gICAgdm9pZCBzZXRBdHRyaWJ1dGVWYWx1ZShFcnJvclN0cmluZyYs
IGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7
Ci0gICAgdm9pZCBzZXRBdHRyaWJ1dGVzQXNUZXh0KEVycm9yU3RyaW5nJiwgaW50IGVsZW1lbnRJ
ZCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcqIG5hbWUpOwotICAgIHZvaWQgcmVt
b3ZlQXR0cmlidXRlKEVycm9yU3RyaW5nJiwgaW50IGVsZW1lbnRJZCwgY29uc3QgU3RyaW5nJiBu
YW1lKTsKLSAgICB2b2lkIHJlbW92ZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKLSAg
ICB2b2lkIHNldE5vZGVOYW1lKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBpbnQqIG5ld0lkKTsKLSAgICB2b2lkIGdldE91dGVySFRNTChFcnJvclN0cmluZyYs
IGludCBub2RlSWQsIFdURjo6U3RyaW5nKiBvdXRlckhUTUwpOwotICAgIHZvaWQgc2V0T3V0ZXJI
VE1MKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBvdXRlckhUTUwpOwot
ICAgIHZvaWQgaW5zZXJ0QWRqYWNlbnRIVE1MKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29u
c3QgU3RyaW5nJiBwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiBodG1sKTsKLSAgICB2b2lkIHNldE5v
ZGVWYWx1ZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwot
ICAgIHZvaWQgZ2V0U3VwcG9ydGVkRXZlbnROYW1lcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09O
OjpBcnJheU9mPFN0cmluZz4+JiBldmVudE5hbWVzKTsKLSAgICB2b2lkIGdldERhdGFCaW5kaW5n
c0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpET006OkRhdGFCaW5kaW5nPj4mIGRhdGFBcnJheSk7Ci0gICAg
dm9pZCBnZXRBc3NvY2lhdGVkRGF0YUZvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBP
cHRpb25hbDxTdHJpbmc+JiBhc3NvY2lhdGVkRGF0YSk7Ci0gICAgdm9pZCBnZXRFdmVudExpc3Rl
bmVyc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlP
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkV2ZW50TGlzdGVuZXI+PiYgbGlzdGVuZXJzQXJy
YXkpOwotICAgIHZvaWQgc2V0RXZlbnRMaXN0ZW5lckRpc2FibGVkKEVycm9yU3RyaW5nJiwgaW50
IGV2ZW50TGlzdGVuZXJJZCwgYm9vbCBkaXNhYmxlZCk7Ci0gICAgdm9pZCBzZXRCcmVha3BvaW50
Rm9yRXZlbnRMaXN0ZW5lcihFcnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQpOwotICAg
IHZvaWQgcmVtb3ZlQnJlYWtwb2ludEZvckV2ZW50TGlzdGVuZXIoRXJyb3JTdHJpbmcmLCBpbnQg
ZXZlbnRMaXN0ZW5lcklkKTsKLSAgICB2b2lkIGdldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9y
Tm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpET006OkFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzPiYgYXhQcm9wZXJ0aWVzKTsKLSAgICB2b2lk
IHBlcmZvcm1TZWFyY2goRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBK
U09OOjpBcnJheSogbm9kZUlkcywgY29uc3QgYm9vbCogY2FzZVNlbnNpdGl2ZSwgU3RyaW5nKiBz
ZWFyY2hJZCwgaW50KiByZXN1bHRDb3VudCk7Ci0gICAgdm9pZCBnZXRTZWFyY2hSZXN1bHRzKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzZWFyY2hJZCwgaW50IGZyb21JbmRleCwgaW50IHRv
SW5kZXgsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+Jik7Ci0gICAgdm9pZCBkaXNjYXJkU2Vh
cmNoUmVzdWx0cyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc2VhcmNoSWQpOwotICAgIHZv
aWQgcmVzb2x2ZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9i
amVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2Jq
ZWN0PiYgcmVzdWx0KTsKLSAgICB2b2lkIGdldEF0dHJpYnV0ZXMoRXJyb3JTdHJpbmcmLCBpbnQg
bm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0KTsKLSAgICB2b2lk
IHNldEluc3BlY3RNb2RlRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCwgY29uc3Qg
SlNPTjo6T2JqZWN0KiBoaWdobGlnaHRDb25maWcsIGNvbnN0IGJvb2wqIHNob3dSdWxlcnMpOwot
ICAgIHZvaWQgcmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIG9iamVjdElk
LCBpbnQqIG5vZGVJZCk7Ci0gICAgdm9pZCBwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHBhdGgsIGludCogbm9kZUlkKTsKLSAgICB2b2lkIGhpZGVI
aWdobGlnaHQoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGhpZ2hsaWdodFJlY3QoRXJyb3JTdHJp
bmcmLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgY29uc3QgSlNPTjo6T2Jq
ZWN0KiBjb2xvciwgY29uc3QgSlNPTjo6T2JqZWN0KiBvdXRsaW5lQ29sb3IsIGNvbnN0IGJvb2wq
IHVzZVBhZ2VDb29yZGluYXRlcyk7Ci0gICAgdm9pZCBoaWdobGlnaHRRdWFkKEVycm9yU3RyaW5n
JiwgY29uc3QgSlNPTjo6QXJyYXkmIHF1YWQsIGNvbnN0IEpTT046Ok9iamVjdCogY29sb3IsIGNv
bnN0IEpTT046Ok9iamVjdCogb3V0bGluZUNvbG9yLCBjb25zdCBib29sKiB1c2VQYWdlQ29vcmRp
bmF0ZXMpOwotICAgIHZvaWQgaGlnaGxpZ2h0U2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBjb25zdCBK
U09OOjpPYmplY3QmIGhpZ2hsaWdodENvbmZpZywgY29uc3QgU3RyaW5nJiBzZWxlY3RvclN0cmlu
ZywgY29uc3QgU3RyaW5nKiBmcmFtZUlkKTsKLSAgICB2b2lkIGhpZ2hsaWdodE5vZGUoRXJyb3JT
dHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIGhpZ2hsaWdodENvbmZpZywgY29uc3QgaW50KiBu
b2RlSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0SWQpOwotICAgIHZvaWQgaGlnaGxpZ2h0Tm9kZUxp
c3QoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYgbm9kZUlkcywgY29uc3QgSlNPTjo6
T2JqZWN0JiBoaWdobGlnaHRDb25maWcpOwotICAgIHZvaWQgaGlnaGxpZ2h0RnJhbWUoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IEpTT046Ok9iamVjdCogY29sb3Is
IGNvbnN0IEpTT046Ok9iamVjdCogb3V0bGluZUNvbG9yKTsKLSAgICB2b2lkIG1vdmVUbyhFcnJv
clN0cmluZyYsIGludCBub2RlSWQsIGludCB0YXJnZXROb2RlSWQsIGNvbnN0IGludCogYW5jaG9y
Tm9kZUlkLCBpbnQqIG5ld05vZGVJZCk7Ci0gICAgdm9pZCB1bmRvKEVycm9yU3RyaW5nJik7Ci0g
ICAgdm9pZCByZWRvKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBtYXJrVW5kb2FibGVTdGF0ZShF
cnJvclN0cmluZyYpOwotICAgIHZvaWQgZm9jdXMoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsK
LSAgICB2b2lkIHNldEluc3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKTsKKyAg
ICB2b2lkIHF1ZXJ5U2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJp
bmcmIHNlbGVjdG9ycywgaW50KiBlbGVtZW50SWQpIG92ZXJyaWRlOworICAgIHZvaWQgcXVlcnlT
ZWxlY3RvckFsbChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0
b3JzLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2
b2lkIGdldERvY3VtZW50KEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkRPTTo6Tm9kZT4mIHJvb3QpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdENoaWxkTm9kZXMo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBpbnQqIGRlcHRoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldEF0dHJpYnV0ZVZhbHVlKEVycm9yU3RyaW5nJiwgaW50IGVsZW1lbnRJZCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldEF0dHJpYnV0ZXNBc1RleHQoRXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVudElkLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyogbmFtZSkgb3ZlcnJpZGU7CisgICAgdm9pZCByZW1v
dmVBdHRyaWJ1dGUoRXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIG5h
bWUpIG92ZXJyaWRlOworICAgIHZvaWQgcmVtb3ZlTm9kZShFcnJvclN0cmluZyYsIGludCBub2Rl
SWQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGludCogbmV3SWQpIG92ZXJyaWRlOworICAgIHZvaWQg
Z2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgV1RGOjpTdHJpbmcqIG91dGVy
SFRNTCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcmLCBpbnQg
bm9kZUlkLCBjb25zdCBTdHJpbmcmIG91dGVySFRNTCkgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnNl
cnRBZGphY2VudEhUTUwoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHBv
c2l0aW9uLCBjb25zdCBTdHJpbmcmIGh0bWwpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Tm9kZVZh
bHVlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBnZXRTdXBwb3J0ZWRFdmVudE5hbWVzKEVycm9yU3RyaW5nJiwgUmVmUHRy
PEpTT046OkFycmF5T2Y8U3RyaW5nPj4mIGV2ZW50TmFtZXMpIG92ZXJyaWRlOworICAgIHZvaWQg
Z2V0RGF0YUJpbmRpbmdzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxK
U09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6RGF0YUJpbmRpbmc+PiYgZGF0
YUFycmF5KSBvdmVycmlkZTsKKyAgICB2b2lkIGdldEFzc29jaWF0ZWREYXRhRm9yTm9kZShFcnJv
clN0cmluZyYsIGludCBub2RlSWQsIE9wdGlvbmFsPFN0cmluZz4mIGFzc29jaWF0ZWREYXRhKSBv
dmVycmlkZTsKKyAgICB2b2lkIGdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShFcnJvclN0cmluZyYs
IGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRP
TTo6RXZlbnRMaXN0ZW5lcj4+JiBsaXN0ZW5lcnNBcnJheSkgb3ZlcnJpZGU7CisgICAgdm9pZCBz
ZXRFdmVudExpc3RlbmVyRGlzYWJsZWQoRXJyb3JTdHJpbmcmLCBpbnQgZXZlbnRMaXN0ZW5lcklk
LCBib29sIGRpc2FibGVkKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEJyZWFrcG9pbnRGb3JFdmVu
dExpc3RlbmVyKEVycm9yU3RyaW5nJiwgaW50IGV2ZW50TGlzdGVuZXJJZCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCByZW1vdmVCcmVha3BvaW50Rm9yRXZlbnRMaXN0ZW5lcihFcnJvclN0cmluZyYsIGlu
dCBldmVudExpc3RlbmVySWQpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0QWNjZXNzaWJpbGl0eVBy
b3BlcnRpZXNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkRPTTo6QWNjZXNzaWJpbGl0eVByb3BlcnRpZXM+JiBheFByb3BlcnRpZXMp
IG92ZXJyaWRlOworICAgIHZvaWQgcGVyZm9ybVNlYXJjaChFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgcXVlcnksIGNvbnN0IEpTT046OkFycmF5KiBub2RlSWRzLCBjb25zdCBib29sKiBjYXNl
U2Vuc2l0aXZlLCBTdHJpbmcqIHNlYXJjaElkLCBpbnQqIHJlc3VsdENvdW50KSBvdmVycmlkZTsK
KyAgICB2b2lkIGdldFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHNl
YXJjaElkLCBpbnQgZnJvbUluZGV4LCBpbnQgdG9JbmRleCwgUmVmUHRyPEpTT046OkFycmF5T2Y8
aW50Pj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2NhcmRTZWFyY2hSZXN1bHRzKEVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBzZWFyY2hJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXNvbHZl
Tm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAs
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1
bHQpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0QXR0cmlidXRlcyhFcnJvclN0cmluZyYsIGludCBu
b2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0cmluZz4+JiByZXN1bHQpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc2V0SW5zcGVjdE1vZGVFbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVk
LCBjb25zdCBKU09OOjpPYmplY3QqIGhpZ2hsaWdodENvbmZpZywgY29uc3QgYm9vbCogc2hvd1J1
bGVycykgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgb2JqZWN0SWQsIGludCogbm9kZUlkKSBvdmVycmlkZTsKKyAgICB2b2lkIHB1c2hO
b2RlQnlQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGF0aCwgaW50
KiBub2RlSWQpIG92ZXJyaWRlOworICAgIHZvaWQgaGlkZUhpZ2hsaWdodChFcnJvclN0cmluZyYp
IG92ZXJyaWRlOworICAgIHZvaWQgaGlnaGxpZ2h0UmVjdChFcnJvclN0cmluZyYsIGludCB4LCBp
bnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBjb25zdCBKU09OOjpPYmplY3QqIGNvbG9yLCBj
b25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xvciwgY29uc3QgYm9vbCogdXNlUGFnZUNvb3Jk
aW5hdGVzKSBvdmVycmlkZTsKKyAgICB2b2lkIGhpZ2hsaWdodFF1YWQoRXJyb3JTdHJpbmcmLCBj
b25zdCBKU09OOjpBcnJheSYgcXVhZCwgY29uc3QgSlNPTjo6T2JqZWN0KiBjb2xvciwgY29uc3Qg
SlNPTjo6T2JqZWN0KiBvdXRsaW5lQ29sb3IsIGNvbnN0IGJvb2wqIHVzZVBhZ2VDb29yZGluYXRl
cykgb3ZlcnJpZGU7CisgICAgdm9pZCBoaWdobGlnaHRTZWxlY3RvcihFcnJvclN0cmluZyYsIGNv
bnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmlnLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9y
U3RyaW5nLCBjb25zdCBTdHJpbmcqIGZyYW1lSWQpIG92ZXJyaWRlOworICAgIHZvaWQgaGlnaGxp
Z2h0Tm9kZShFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmln
LCBjb25zdCBpbnQqIG5vZGVJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RJZCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBoaWdobGlnaHROb2RlTGlzdChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046OkFycmF5
JiBub2RlSWRzLCBjb25zdCBKU09OOjpPYmplY3QmIGhpZ2hsaWdodENvbmZpZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBoaWdobGlnaHRGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJh
bWVJZCwgY29uc3QgSlNPTjo6T2JqZWN0KiBjb2xvciwgY29uc3QgSlNPTjo6T2JqZWN0KiBvdXRs
aW5lQ29sb3IpIG92ZXJyaWRlOworICAgIHZvaWQgbW92ZVRvKEVycm9yU3RyaW5nJiwgaW50IG5v
ZGVJZCwgaW50IHRhcmdldE5vZGVJZCwgY29uc3QgaW50KiBhbmNob3JOb2RlSWQsIGludCogbmV3
Tm9kZUlkKSBvdmVycmlkZTsKKyAgICB2b2lkIHVuZG8oRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlZG8oRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIG1hcmtVbmRv
YWJsZVN0YXRlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBmb2N1cyhFcnJvclN0
cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0SW5zcGVjdGVkTm9kZShF
cnJvclN0cmluZyYsIGludCBub2RlSWQpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uCiAgICAgaW50IGlkZW50aWZpZXJGb3JOb2RlKE5vZGUmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmgKaW5kZXggMzdlNjdlNGIzMTQyNDM4ZTQ3ZGI3OTM0MThlYmMzY2ExMmU3M2Qz
Mi4uMDFlM2JkY2YwMDRhZTY0MGRmYTk2M2ZmOWE1NGMzNWQyYWVjZDA1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmgKQEAgLTUzLDEyICs1MywxMiBAQCBjbGFzcyBJbnNwZWN0b3JET01EZWJ1Z2dl
ckFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6RAog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQpOwogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgfkluc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQoKTsKKyAgICB+SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgpIG92
ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXIqKTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7Ci0gICAgdm9pZCBkaXNjYXJkQWdlbnQo
KTsKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250
ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAg
IHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2NhcmRBZ2VudCgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3Q7CiAKICAgICAvLyBET01EZWJ1Z2dlckJhY2tl
bmREaXNwYXRjaGVySGFuZGxlcgpAQCAtNjgsOCArNjgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZW1vdmVFdmVudEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyZWFrcG9p
bnRUeXBlLCBjb25zdCBTdHJpbmcqIGV2ZW50TmFtZSkgZmluYWw7CiAKICAgICAvLyBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpMaXN0ZW5lcgotICAgIHZvaWQgZGVidWdnZXJXYXNFbmFibGVkKCk7
Ci0gICAgdm9pZCBkZWJ1Z2dlcldhc0Rpc2FibGVkKCk7CisgICAgdm9pZCBkZWJ1Z2dlcldhc0Vu
YWJsZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlYnVnZ2VyV2FzRGlzYWJsZWQoKSBvdmVycmlk
ZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgd2lsbFNlbmRY
TUxIdHRwUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAppbmRl
eCBkYzFhOTlhOGM0MzZhZWRjMGVkYjcxZWNhODI3NmM3Y2M3ZTgzNDY4Li5iNTc4NjYwZmJiM2Nl
MTc2ZTRlMGFlYjVhMjIwMjFkYzg4MGU0N2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKQEAgLTUy
LDE4ICs1MiwxOCBAQCBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQgZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdAogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChQYWdlQWdl
bnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCk7Cisg
ICAgfkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVj
dG9yQWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKLSAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbik7CisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlz
Y29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBET01TdG9yYWdlQmFja2VuZERpc3Bh
dGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGRp
c2FibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGdldERPTVN0b3JhZ2VJdGVtcyhFcnJvclN0
cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlP
ZjxKU09OOjpBcnJheU9mPFN0cmluZz4+PiYgaXRlbXMpOwotICAgIHZvaWQgc2V0RE9NU3RvcmFn
ZUl0ZW0oRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCwgY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAgIHZvaWQgcmVtb3ZlRE9NU3Rv
cmFnZUl0ZW0oRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCwgY29u
c3QgU3RyaW5nJiBrZXkpOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRE
T01TdG9yYWdlSXRlbXMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJ
ZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SlNPTjo6QXJyYXlPZjxTdHJpbmc+Pj4mIGl0ZW1zKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNldERPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nJiwgY29uc3Qg
SlNPTjo6T2JqZWN0JiBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbW92ZURPTVN0b3JhZ2VJdGVtKEVycm9yU3Ry
aW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5KSBv
dmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgZGlk
RGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlLCBTZWN1cml0eU9y
aWdpbiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JEYXRhYmFzZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRhdGFiYXNlQWdlbnQuaAppbmRleCAyZGViYTMxOTBlODg4YTc1YTU4YjhjMjAwOWMy
MTkxOTY2MjNlNjViLi40MzA1MDMxOTFjZGNiOTg3OWZkYjY1NTEzOWMxNGJiNzdhNzM3NDJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFi
YXNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRhdGFiYXNlQWdlbnQuaApAQCAtNDgsMTcgKzQ4LDE3IEBAIGNsYXNzIEluc3BlY3RvckRhdGFi
YXNlQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVj
dG9yCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9y
RGF0YWJhc2VBZ2VudChXZWJBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JE
YXRhYmFzZUFnZW50KCk7CisgICAgfkluc3BlY3RvckRhdGFiYXNlQWdlbnQoKSBvdmVycmlkZTsK
IAogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmRE
aXNwYXRjaGVyKik7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNw
YXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gRGF0YWJh
c2VCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYp
OwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOwotICAgIHZvaWQgZ2V0RGF0YWJhc2VU
YWJsZU5hbWVzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkLCBSZWZQdHI8
SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgbmFtZXMpOwotICAgIHZvaWQgZXhlY3V0ZVNRTChjb25z
dCBTdHJpbmcmIGRhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYgcXVlcnksIFJlZjxFeGVjdXRlU1FM
Q2FsbGJhY2s+JiYpOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXREYXRh
YmFzZVRhYmxlTmFtZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWQsIFJl
ZlB0cjxKU09OOjpBcnJheU9mPFN0cmluZz4+JiBuYW1lcykgb3ZlcnJpZGU7CisgICAgdm9pZCBl
eGVjdXRlU1FMKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5nJiBxdWVyeSwg
UmVmPEV4ZWN1dGVTUUxDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAKaW5kZXggOWZkZjkwYjA2OWYxNTVhZGI3YzczM2E1Zjk1ZGZhZDcxNjFiMjBhZS4uYmRh
ZTU1ZDA1OTM5YTVmOGQ2NmViNDg5N2RhMTM5MmFjY2E1MGVhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERhdGFiYXNlTG9hZGVyKGNvbnRleHQsIFdURk1vdmUocmVxdWVzdENhbGxiYWNrKSkp
OwogICAgIH0KIAotICAgIHZpcnR1YWwgfkRhdGFiYXNlTG9hZGVyKCkgPSBkZWZhdWx0OworICAg
IH5EYXRhYmFzZUxvYWRlcigpIG92ZXJyaWRlID0gZGVmYXVsdDsKIAogICAgIHZvaWQgZXhlY3V0
ZShJREJEYXRhYmFzZSYgZGF0YWJhc2UpIG92ZXJyaWRlCiAgICAgewpAQCAtMzU2LDcgKzM1Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT3BlbkN1cnNvckNhbGxi
YWNrKGluamVjdGVkU2NyaXB0LCBXVEZNb3ZlKHJlcXVlc3RDYWxsYmFjayksIHNraXBDb3VudCwg
cGFnZVNpemUpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5PcGVuQ3Vyc29yQ2FsbGJhY2soKSA9
IGRlZmF1bHQ7CisgICAgfk9wZW5DdXJzb3JDYWxsYmFjaygpIG92ZXJyaWRlID0gZGVmYXVsdDsK
IAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcikgY29uc3Qg
b3ZlcnJpZGUKICAgICB7CkBAIC00NDcsNyArNDQ3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBEYXRhTG9hZGVyKGNvbnRleHQsIFdURk1vdmUocmVxdWVzdENhbGxi
YWNrKSwgaW5qZWN0ZWRTY3JpcHQsIG9iamVjdFN0b3JlTmFtZSwgaW5kZXhOYW1lLCBXVEZNb3Zl
KGlkYktleVJhbmdlKSwgc2tpcENvdW50LCBwYWdlU2l6ZSkpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgfkRhdGFMb2FkZXIoKSA9IGRlZmF1bHQ7CisgICAgfkRhdGFMb2FkZXIoKSBvdmVycmlkZSA9
IGRlZmF1bHQ7CiAKICAgICB2b2lkIGV4ZWN1dGUoSURCRGF0YWJhc2UmIGRhdGFiYXNlKSBvdmVy
cmlkZQogICAgIHsKQEAgLTY1MSw3ICs2NTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IENsZWFyT2JqZWN0U3RvcmVMaXN0ZW5lcihXVEZNb3ZlKHJlcXVlc3RDYWxs
YmFjaykpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5DbGVhck9iamVjdFN0b3JlTGlzdGVuZXIo
KSA9IGRlZmF1bHQ7CisgICAgfkNsZWFyT2JqZWN0U3RvcmVMaXN0ZW5lcigpIG92ZXJyaWRlID0g
ZGVmYXVsdDsKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhl
cikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKaW5kZXggYjQ5ZTBjMGU0
NzM0NTQwNDRkOTcwNWVhNzAxNzgwNjg5NWVmZDZhZC4uZGIyOTdiZDljZGE4ZGE2YzA0N2FiODJm
ZjM1MGEyZjRmNTc0OGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaApAQCAtNTIsMTkgKzUyLDE5IEBA
IGNsYXNzIEluc3BlY3RvckluZGV4ZWREQkFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFn
ZW50QmFzZSwgcHVibGljIEluc3BlY3RvCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwot
ICAgIHZpcnR1YWwgfkluc3BlY3RvckluZGV4ZWREQkFnZW50KCk7CisgICAgfkluc3BlY3Rvcklu
ZGV4ZWREQkFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAg
ICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91
dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKyAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVy
KiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZvaWQgd2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKIAogICAgIC8vIEluZGV4ZWREQkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAg
IHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5n
Jik7Ci0gICAgdm9pZCByZXF1ZXN0RGF0YWJhc2VOYW1lcyhjb25zdCBTdHJpbmcmIHNlY3VyaXR5
T3JpZ2luLCBSZWY8UmVxdWVzdERhdGFiYXNlTmFtZXNDYWxsYmFjaz4mJik7Ci0gICAgdm9pZCBy
ZXF1ZXN0RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIFJlZjxSZXF1ZXN0RGF0YWJhc2VDYWxsYmFjaz4mJik7Ci0gICAgdm9p
ZCByZXF1ZXN0RGF0YShjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUsIGNvbnN0IFN0cmlu
ZyYgaW5kZXhOYW1lLCBpbnQgc2tpcENvdW50LCBpbnQgcGFnZVNpemUsIGNvbnN0IEpTT046Ok9i
amVjdCoga2V5UmFuZ2UsIFJlZjxSZXF1ZXN0RGF0YUNhbGxiYWNrPiYmKTsKLSAgICB2b2lkIGNs
ZWFyT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lLCBSZWY8Q2xlYXJP
YmplY3RTdG9yZUNhbGxiYWNrPiYmKTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZv
aWQgcmVxdWVzdERhdGFiYXNlTmFtZXMoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgUmVm
PFJlcXVlc3REYXRhYmFzZU5hbWVzQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVx
dWVzdERhdGFiYXNlKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VOYW1lLCBSZWY8UmVxdWVzdERhdGFiYXNlQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVxdWVzdERhdGEoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lLCBjb25z
dCBTdHJpbmcmIGluZGV4TmFtZSwgaW50IHNraXBDb3VudCwgaW50IHBhZ2VTaXplLCBjb25zdCBK
U09OOjpPYmplY3QqIGtleVJhbmdlLCBSZWY8UmVxdWVzdERhdGFDYWxsYmFjaz4mJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmln
aW4sIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3Jl
TmFtZSwgUmVmPENsZWFyT2JqZWN0U3RvcmVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JMYXllclRyZWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCmluZGV4IDNhMDYyOTdkYjJmNjRjMjJmZDkwMjI5
MjM4OTUxYTc4N2U2YThjYTYuLjg3MjM1ODBjNjUzMDEwZTFlZWE2MGQ0MGU5Y2Q5ZDczMjM1OGQ5
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckxheWVyVHJlZUFnZW50LmgKQEAgLTQ5LDE3ICs0OSwxNyBAQCBjbGFzcyBJbnNwZWN0
b3JMYXllclRyZWVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1Ymxp
YyBJbnNwZWN0bwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIElu
c3BlY3RvckxheWVyVHJlZUFnZW50KFdlYkFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfklu
c3BlY3RvckxheWVyVHJlZUFnZW50KCk7CisgICAgfkluc3BlY3RvckxheWVyVHJlZUFnZW50KCkg
b3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKyAgICB2b2lkIGRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpC
YWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAg
IC8vIExheWVyVHJlZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVy
cm9yU3RyaW5nJik7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBs
YXllcnNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5
T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpMYXllcj4+Jik7Ci0gICAgdm9pZCBy
ZWFzb25zRm9yQ29tcG9zaXRpbmdMYXllcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgbGF5
ZXJJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkxheWVyVHJlZTo6Q29tcG9zaXRpbmdS
ZWFzb25zPiYpOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYXllcnNGb3JO
b2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVj
dG9yOjpQcm90b2NvbDo6TGF5ZXJUcmVlOjpMYXllcj4+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBy
ZWFzb25zRm9yQ29tcG9zaXRpbmdMYXllcihFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgbGF5
ZXJJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkxheWVyVHJlZTo6Q29tcG9zaXRpbmdS
ZWFzb25zPiYpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAg
ICAgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaAppbmRleCBmMzEyY2ZjOGQx
YmY0MjEyMDk5MjcxNWI4MTUxMDc5ZTFjN2MwN2ZhLi5jNDQ3NzJkYmVhYmY5MTE0Y2ZhNDQ3ZmU5
NmU4NGUzZDJiNTI2MjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCkBAIC00MiwxNyArNDIsMTcgQEAgY2xhc3Mg
SW5zcGVjdG9yTWVtb3J5QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBw
dWJsaWMgSW5zcGVjdG9yOjoKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICBJbnNwZWN0b3JNZW1vcnlBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVh
bCB+SW5zcGVjdG9yTWVtb3J5QWdlbnQoKTsKKyAgICB+SW5zcGVjdG9yTWVtb3J5QWdlbnQoKSBv
dmVycmlkZTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6
OkJhY2tlbmREaXNwYXRjaGVyKik7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAg
Ly8gTWVtb3J5QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JT
dHJpbmcmKTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIHN0YXJ0
VHJhY2tpbmcoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmlu
ZyYpOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydFRyYWNraW5nKEVy
cm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcm
KSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQg
ZGlkSGFuZGxlTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4
IDZhYWIzYjJlMDUxNzFkYWY2YjkzMDA5MjQ4NjY1Y2M0Yjc5OTQzMTYuLmU5MjRiNDg3NzZmNzI2
ZjE0MWUzYmFiZmFlYjU1Mzg1NzBkNGRmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTEwNSw3
ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgfkluc3BlY3Rv
clRocmVhZGFibGVMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7CisgICAgfkluc3BlY3RvclRocmVh
ZGFibGVMb2FkZXJDbGllbnQoKSBvdmVycmlkZSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGRpZFJl
Y2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkgb3ZlcnJpZGUKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaAppbmRleCAwYjlkOWRiZTExOWUyYTMx
MjdiMjQ3ZDM3ZjUzNzQ0YWQ5Nzg4YTc3Li4zMWVmNWUzNDJkZmNmMjdkYjQyZDdmMzI2MGNmNzFj
YzM5NDEwODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3Rvck5ldHdvcmtBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKQEAgLTY4LDcgKzY4LDcgQEAgY2xhc3MgSW5zcGVj
dG9yTmV0d29ya0FnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3Bl
Y3Rvcjo6TmV0d28KICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JOZXR3b3JrQWdl
bnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwg
fkluc3BlY3Rvck5ldHdvcmtBZ2VudCgpOworICAgIH5JbnNwZWN0b3JOZXR3b3JrQWdlbnQoKSBv
dmVycmlkZTsKIAogICAgIHN0YXRpYyBib29sIHNob3VsZFRyZWF0QXNUZXh0KGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpOwogICAgIHN0YXRpYyBSZWY8VGV4dFJlc291cmNlRGVjb2Rlcj4gY3JlYXRl
VGV4dERlY29kZXIoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5j
b2RpbmdOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGM0NjBkYTEwZmJmNjg3NjdlMmZjMDNkMWRmNjA0OWUx
MjEwNGRjY2EuLjhjNzg2ZWMyOThkNjRkMWMwM2I4MzMxMTEyMTA3OGVhNDhjNGZlMWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdl
bnQuaApAQCAtNTcsNyArNTcsNyBAQCBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQgZmluYWwgOiBw
dWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjpQYQogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvclBhZ2VBZ2VudChQYWdl
QWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yQ2xpZW50KiwgSW5zcGVjdG9yT3ZlcmxheSopOwotICAg
IHZpcnR1YWwgfkluc3BlY3RvclBhZ2VBZ2VudCgpOworICAgIH5JbnNwZWN0b3JQYWdlQWdlbnQo
KSBvdmVycmlkZTsKIAogICAgIGVudW0gUmVzb3VyY2VUeXBlIHsKICAgICAgICAgRG9jdW1lbnRS
ZXNvdXJjZSwKQEAgLTg5LDMxICs4OSwzMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIERvY3VtZW50
TG9hZGVyKiBhc3NlcnREb2N1bWVudExvYWRlcihFcnJvclN0cmluZyYsIEZyYW1lKik7CiAKICAg
ICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0
Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKTsKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hl
ciopIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIFBhZ2VCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOwotICAgIHZv
aWQgZGlzYWJsZShFcnJvclN0cmluZyYpOwotICAgIHZvaWQgcmVsb2FkKEVycm9yU3RyaW5nJiwg
Y29uc3QgYm9vbCogb3B0aW9uYWxSZWxvYWRGcm9tT3JpZ2luLCBjb25zdCBib29sKiBvcHRpb25h
bFJldmFsaWRhdGVBbGxSZXNvdXJjZXMpOwotICAgIHZvaWQgbmF2aWdhdGUoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAgdm9pZCBvdmVycmlkZVVzZXJBZ2VudChFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyogdmFsdWUpOwotICAgIHZvaWQgb3ZlcnJpZGVTZXR0aW5nKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzZXR0aW5nLCBjb25zdCBib29sKiB2YWx1ZSk7Ci0g
ICAgdm9pZCBnZXRDb29raWVzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5z
cGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6Q29va2llPj4mIGNvb2tpZXMpOwotICAgIHZvaWQgZGVs
ZXRlQ29va2llKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lLCBjb25zdCBT
dHJpbmcmIHVybCk7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZVRyZWUoRXJyb3JTdHJpbmcmLCBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6RnJhbWVSZXNvdXJjZVRyZWU+Jik7Ci0gICAg
dm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1l
SWQsIGNvbnN0IFN0cmluZyYgdXJsLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJhc2U2NEVuY29k
ZWQpOwotICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0
IGJvb2wqIG9wdGlvbmFsQ2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1JlZ2V4
LCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpHZW5lcmljVHlwZXM6OlNlYXJjaE1hdGNoPj4mKTsKLSAgICB2
b2lkIHNlYXJjaEluUmVzb3VyY2VzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
Ym9vbCogY2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogaXNSZWdleCwgUmVmUHRyPEpTT046OkFy
cmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6U2VhcmNoUmVzdWx0Pj4mKTsKLSAgICB2
b2lkIHNldFNob3dSdWxlcnMoRXJyb3JTdHJpbmcmLCBib29sKTsKLSAgICB2b2lkIHNldFNob3dQ
YWludFJlY3RzKEVycm9yU3RyaW5nJiwgYm9vbCBzaG93KTsKLSAgICB2b2lkIHNldEVtdWxhdGVk
TWVkaWEoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHNldEZvcmNlZEFw
cGVhcmFuY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGdldENvbXBv
c2l0aW5nQm9yZGVyc1Zpc2libGUoRXJyb3JTdHJpbmcmLCBib29sKiBvdXRfcGFyYW0pOwotICAg
IHZvaWQgc2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyYsIGJvb2wpOwot
ICAgIHZvaWQgc25hcHNob3ROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgU3RyaW5nKiBv
dXREYXRhVVJMKTsKLSAgICB2b2lkIHNuYXBzaG90UmVjdChFcnJvclN0cmluZyYsIGludCB4LCBp
bnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBjb25zdCBTdHJpbmcmIGNvb3JkaW5hdGVTeXN0
ZW0sIFN0cmluZyogb3V0RGF0YVVSTCk7Ci0gICAgdm9pZCBhcmNoaXZlKEVycm9yU3RyaW5nJiwg
U3RyaW5nKiBkYXRhKTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVsb2Fk
KEVycm9yU3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxSZWxvYWRGcm9tT3JpZ2luLCBjb25z
dCBib29sKiBvcHRpb25hbFJldmFsaWRhdGVBbGxSZXNvdXJjZXMpIG92ZXJyaWRlOworICAgIHZv
aWQgbmF2aWdhdGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBvdmVycmlkZVVzZXJBZ2VudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyogdmFs
dWUpIG92ZXJyaWRlOworICAgIHZvaWQgb3ZlcnJpZGVTZXR0aW5nKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBzZXR0aW5nLCBjb25zdCBib29sKiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBnZXRDb29raWVzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9y
OjpQcm90b2NvbDo6UGFnZTo6Q29va2llPj4mIGNvb2tpZXMpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGVsZXRlQ29va2llKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lLCBjb25z
dCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRSZXNvdXJjZVRyZWUoRXJyb3JT
dHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UGFnZTo6RnJhbWVSZXNvdXJjZVRy
ZWU+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBTdHJpbmcqIGNvbnRl
bnQsIGJvb2wqIGJhc2U2NEVuY29kZWQpIG92ZXJyaWRlOworICAgIHZvaWQgc2VhcmNoSW5SZXNv
dXJjZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IGJvb2wqIG9wdGlvbmFsQ2FzZVNlbnNpdGl2
ZSwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1JlZ2V4LCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUmVx
dWVzdElkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpHZW5lcmlj
VHlwZXM6OlNlYXJjaE1hdGNoPj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlYXJjaEluUmVzb3Vy
Y2VzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgYm9vbCogY2FzZVNlbnNpdGl2
ZSwgY29uc3QgYm9vbCogaXNSZWdleCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6UGFnZTo6U2VhcmNoUmVzdWx0Pj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNo
b3dSdWxlcnMoRXJyb3JTdHJpbmcmLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNob3dQ
YWludFJlY3RzKEVycm9yU3RyaW5nJiwgYm9vbCBzaG93KSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dEVtdWxhdGVkTWVkaWEoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldEZvcmNlZEFwcGVhcmFuY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGdldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoRXJyb3JTdHJp
bmcmLCBib29sKiBvdXRfcGFyYW0pIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q29tcG9zaXRpbmdC
b3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyYsIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc25h
cHNob3ROb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgU3RyaW5nKiBvdXREYXRhVVJMKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNuYXBzaG90UmVjdChFcnJvclN0cmluZyYsIGludCB4LCBpbnQg
eSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBjb25zdCBTdHJpbmcmIGNvb3JkaW5hdGVTeXN0ZW0s
IFN0cmluZyogb3V0RGF0YVVSTCkgb3ZlcnJpZGU7CisgICAgdm9pZCBhcmNoaXZlKEVycm9yU3Ry
aW5nJiwgU3RyaW5nKiBkYXRhKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbgogICAgIHZvaWQgZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgK
aW5kZXggZDExYjkwYjAyZmNkOTdjMjUzNTBkNjkzZDdhMjNkYzUxNzMzZDAyZC4uNWM5ZDQ2MDBh
YTYzMmUxOTMwODJiNGMwYTA0MDAwZjEzNDY0ZjQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTg2
LDMwICs4NiwzMCBAQCBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IGZpbmFsIDogcHVibGlj
IEluc3BlY3RvckFnZW50QmFzZSAsIHB1YmxpYyBJbnNwZWN0bwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoUGFnZUFnZW50
Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKKyAgICB+
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9yQWdl
bnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpG
cm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKLSAgICB2b2lk
IHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNv
bik7CisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9u
dGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBUaW1lbGluZUJhY2tlbmREaXNwYXRjaGVySGFu
ZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBkaXNhYmxlKEVy
cm9yU3RyaW5nJik7Ci0gICAgdm9pZCBzdGFydChFcnJvclN0cmluZyYsIGNvbnN0IGludCogbWF4
Q2FsbFN0YWNrRGVwdGggPSBudWxscHRyKTsKLSAgICB2b2lkIHN0b3AoRXJyb3JTdHJpbmcmKTsK
LSAgICB2b2lkIHNldEF1dG9DYXB0dXJlRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wpOwotICAg
IHZvaWQgc2V0SW5zdHJ1bWVudHMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYpOwor
ICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxl
KEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydChFcnJvclN0cmluZyYsIGNv
bnN0IGludCogbWF4Q2FsbFN0YWNrRGVwdGggPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICB2b2lk
IHN0b3AoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEF1dG9DYXB0dXJlRW5h
YmxlZChFcnJvclN0cmluZyYsIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0SW5zdHJ1bWVu
dHMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpBcnJheSYpIG92ZXJyaWRlOwogCiAgICAgLy8g
U2NyaXB0RGVidWdMaXN0ZW5lcgotICAgIHZvaWQgZGlkUGFyc2VTb3VyY2UoSlNDOjpTb3VyY2VJ
RCwgY29uc3QgU2NyaXB0JikgeyB9Ci0gICAgdm9pZCBmYWlsZWRUb1BhcnNlU291cmNlKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGludCwgaW50LCBjb25zdCBTdHJpbmcmKSB7IH0KLSAg
ICB2b2lkIHdpbGxSdW5NaWNyb3Rhc2soKSB7IH0KLSAgICB2b2lkIGRpZFJ1bk1pY3JvdGFzaygp
IHsgfQotICAgIHZvaWQgZGlkUGF1c2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6SlNWYWx1ZSkgeyB9Ci0gICAgdm9pZCBkaWRDb250aW51ZSgpIHsgfQotICAgIHZvaWQgYnJl
YWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYpIHsgfQotICAg
IHZvaWQgYnJlYWtwb2ludEFjdGlvblNvdW5kKGludCkgeyB9Ci0gICAgdm9pZCBicmVha3BvaW50
QWN0aW9uUHJvYmUoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBJbnNwZWN0b3I6OlNjcmlwdEJyZWFr
cG9pbnRBY3Rpb24mLCB1bnNpZ25lZCBiYXRjaElkLCB1bnNpZ25lZCBzYW1wbGVJZCwgSlNDOjpK
U1ZhbHVlIHJlc3VsdCk7CisgICAgdm9pZCBkaWRQYXJzZVNvdXJjZShKU0M6OlNvdXJjZUlELCBj
b25zdCBTY3JpcHQmKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2Uo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgaW50LCBpbnQsIGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlIHsgfQorICAgIHZvaWQgd2lsbFJ1bk1pY3JvdGFzaygpIG92ZXJyaWRlIHsgfQorICAg
IHZvaWQgZGlkUnVuTWljcm90YXNrKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBkaWRQYXVzZShK
U0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKSBvdmVycmlkZSB7IH0K
KyAgICB2b2lkIGRpZENvbnRpbnVlKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBicmVha3BvaW50
QWN0aW9uTG9nKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9Cisg
ICAgdm9pZCBicmVha3BvaW50QWN0aW9uU291bmQoaW50KSBvdmVycmlkZSB7IH0KKyAgICB2b2lk
IGJyZWFrcG9pbnRBY3Rpb25Qcm9iZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IEluc3BlY3Rvcjo6
U2NyaXB0QnJlYWtwb2ludEFjdGlvbiYsIHVuc2lnbmVkIGJhdGNoSWQsIHVuc2lnbmVkIHNhbXBs
ZUlkLCBKU0M6OkpTVmFsdWUgcmVzdWx0KSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbgogICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBTZWNv
bmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCwgRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCAy
MjExYjNiNjM3MzVlNGExM2YwMzJiZWU4NGVkY2E3Mjg0ZDhlZTBiLi45NDQ3NDkzZTFmYTRhYzFj
YWJiZGEwNDFhNzhhYTMwOGQ4MzRmNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCkBAIC00MiwyMCArNDIsMjAg
QEAgY2xhc3MgSW5zcGVjdG9yV29ya2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdl
bnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjoKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBJbnNwZWN0b3JXb3JrZXJBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0g
ICAgdmlydHVhbCB+SW5zcGVjdG9yV29ya2VyQWdlbnQoKTsKKyAgICB+SW5zcGVjdG9yV29ya2Vy
QWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQg
ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRl
OwogCiAgICAgLy8gV29ya2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFi
bGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2
b2lkIGluaXRpYWxpemVkKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB3b3JrZXJJZCk7Ci0g
ICAgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2VyKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB3
b3JrZXJJZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0
cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRl
OworICAgIHZvaWQgaW5pdGlhbGl6ZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHdvcmtl
cklkKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlVG9Xb3JrZXIoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIHdvcmtlcklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRl
OwogCiAgICAgLy8gV29ya2VySW5zcGVjdG9yUHJveHk6OlBhZ2VDaGFubmVsCi0gICAgdm9pZCBz
ZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5KiwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJv
bnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJy
aWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgYm9vbCBzaG91bGRX
YWl0Rm9yRGVidWdnZXJPblN0YXJ0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaAppbmRleCBlZmFhYjc3Y2I3OGVlZWVkMTlj
ZDNlMThiYjMxZGU3ODYwZjMyMjUzLi5mN2Q4Mjc4MDcwZmU0NzAyOTlmMmRkNmJhYjY2NDYyZDU4
NTg4OTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNv
bnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29u
c29sZUFnZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgV2ViQ29uc29sZUFnZW50IDogcHVi
bGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXZWJDb25zb2xlQWdlbnQoV2ViQWdlbnRDb250ZXh0
Jik7Ci0gICAgdmlydHVhbCB+V2ViQ29uc29sZUFnZW50KCk7CisgICAgfldlYkNvbnNvbGVBZ2Vu
dCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9p
ZCBmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmgKaW5kZXggZmY0OThmZDEwMmJl
ZDE5NGFhYmI4MzVlYzVlZjVjM2Q0ODcyOTZlYS4uZGY5ZGFiYzc0MWIwZjM0ODc0ODY0NGYyMzdj
NDJjODUyZTg5ZDJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9XZWJEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9XZWJEZWJ1Z2dlckFnZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgV2ViRGVidWdnZXJB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFdlYkRlYnVnZ2VyQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkRlYnVnZ2VyQWdlbnQoKTsKKyAg
ICB+V2ViRGVidWdnZXJBZ2VudCgpIG92ZXJyaWRlOwogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQuaAppbmRleCA4OGVmNDVhZjI3
YWJjNGY1ZTQ1N2YxMjZkNzhlZDU5ZTFjMTUxYTFlLi4wYmM4ZTY0YWY1YTg2YTcyZDVmODA0NDBm
ZGIxMTYzZmUxN2UxNTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL1dlYkhlYXBBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
V2ViSGVhcEFnZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgV2ViSGVhcEFnZW50IDogcHVi
bGljIEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFnZW50IHsKICAgICBmcmllbmQgY2xhc3MgU2Vu
ZEdhcmJhZ2VDb2xsZWN0aW9uRXZlbnRzVGFzazsKIHB1YmxpYzoKICAgICBXZWJIZWFwQWdlbnQo
V2ViQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+V2ViSGVhcEFnZW50KCk7CisgICAgfldl
YkhlYXBBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSGVhcEJhY2tlbmREaXNwYXRjaGVySGFu
ZGxlcgogICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5oCmlu
ZGV4IDBkNTE0MTQ2Y2Y2NDc2MzE2MjczOWRhZTZjYjJhZGE0ZDQ0NGUyZDEuLjc1MWUyYTc3YmE3
MjkxZjFhMjYyMDM0YTZhMDQ5ZGQxN2UyYTAxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQXVkaXRBZ2VudC5oCkBAIC0zNywxNiArMzcs
MTYgQEAgY2xhc3MgUGFnZUF1ZGl0QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNw
ZWN0b3JBdWRpdEFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICBQYWdlQXVkaXRBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+UGFn
ZUF1ZGl0QWdlbnQoKTsKKyAgICB+UGFnZUF1ZGl0QWdlbnQoKSBvdmVycmlkZTsKIAogcHJpdmF0
ZToKICAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChj
b25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7Ci0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNj
cmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0
IGludCogZXhlY3V0aW9uQ29udGV4dElkKTsKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0Rm9yRXZhbChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgaW50
KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBwb3B1bGF0ZUF1ZGl0
T2JqZWN0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mIGF1ZGl0
T2JqZWN0KTsKKyAgICB2b2lkIHBvcHVsYXRlQXVkaXRPYmplY3QoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYgYXVkaXRPYmplY3QpIG92ZXJyaWRlOwogCi0gICAg
dm9pZCBtdXRlQ29uc29sZSgpOwotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpOworICAgIHZvaWQg
bXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlk
ZTsKIAogICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuaAppbmRleCBl
ZTQ3NDcyNTNiM2Y3NDg3NTQ3MjA2NWZjZjhjZjFlYzJmNWYxODA4Li40YzQ1ZjJkYWQwZjdjMWI0
MDQ1MzlmZTRmNTdlNWE4NmRiMjA2MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmgKQEAgLTQxLDEyICs0MSwx
MiBAQCBjbGFzcyBQYWdlQ29uc29sZUFnZW50IGZpbmFsIDogcHVibGljIFdlYkNvbnNvbGVBZ2Vu
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUGFnZUNvbnNv
bGVBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+UGFnZUNvbnNvbGVBZ2Vu
dCgpOworICAgIH5QYWdlQ29uc29sZUFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBDb25zb2xl
QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBjbGVhck1lc3NhZ2VzKEVycm9yU3Ry
aW5nJik7Ci0gICAgdm9pZCBnZXRMb2dnaW5nQ2hhbm5lbHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8
SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsPj4mKTsK
LSAgICB2b2lkIHNldExvZ2dpbmdDaGFubmVsTGV2ZWwoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIGNoYW5uZWwsIGNvbnN0IFN0cmluZyYgbGV2ZWwpOworICAgIHZvaWQgY2xlYXJNZXNzYWdl
cyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0TG9nZ2luZ0NoYW5uZWxzKEVy
cm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q29u
c29sZTo6Q2hhbm5lbD4+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRMb2dnaW5nQ2hhbm5lbExl
dmVsKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjaGFubmVsLCBjb25zdCBTdHJpbmcmIGxl
dmVsKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBJbnN0cnVtZW50aW5nQWdlbnRzJiBtX2lu
c3RydW1lbnRpbmdBZ2VudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5oCmluZGV4IDcyMzU3ZjEyM2Uz
NmFjMjQ4Yzg0MmFlNzE5ZDU2ZWVlYTY4MDYxNDYuLjc3YjFiYmQ1YTgyYjgwNWU4Njc4ZTY2Mjcw
YTM0MDNlYjZkNDlkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5oCkBAIC0zOCwxMyArMzgsMTMg
QEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiBjbGFzcyBQYWdlRE9NRGVidWdnZXJBZ2Vu
dCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50IHsKIHB1YmxpYzoKICAg
ICBQYWdlRE9NRGVidWdnZXJBZ2VudChQYWdlQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yOjpJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50Kik7Ci0gICAgdmlydHVhbCB+UGFnZURPTURlYnVnZ2VyQWdlbnQo
KTsKKyAgICB+UGFnZURPTURlYnVnZ2VyQWdlbnQoKSBvdmVycmlkZTsKIAotICAgIGJvb2wgZW5h
YmxlZCgpIGNvbnN0OworICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
Ly8gRE9NRGVidWdnZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHNldERPTUJy
ZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHR5cGUpOwot
ICAgIHZvaWQgcmVtb3ZlRE9NQnJlYWtwb2ludChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNv
bnN0IFN0cmluZyYgdHlwZSk7CisgICAgdm9pZCBzZXRET01CcmVha3BvaW50KEVycm9yU3RyaW5n
JiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0eXBlKSBvdmVycmlkZTsKKyAgICB2b2lkIHJl
bW92ZURPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcm
IHR5cGUpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAg
dm9pZCBmcmFtZURvY3VtZW50VXBkYXRlZChGcmFtZSYpOwpAQCAtNTcsMTAgKzU3LDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIHdpbGxGaXJlQW5pbWF0aW9uRnJhbWUoKTsKIAogcHJpdmF0ZToKLSAg
ICB2b2lkIGVuYWJsZSgpOwotICAgIHZvaWQgZGlzYWJsZSgpOworICAgIHZvaWQgZW5hYmxlKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldEFu
aW1hdGlvbkZyYW1lQnJlYWtwb2ludChFcnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCk7CisgICAg
dm9pZCBzZXRBbmltYXRpb25GcmFtZUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBib29sIGVuYWJs
ZWQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkZXNjcmlwdGlvbkZvckRPTUV2ZW50KE5vZGUmLCBp
bnQgYnJlYWtwb2ludFR5cGUsIGJvb2wgaW5zZXJ0aW9uLCBKU09OOjpPYmplY3QmIGRlc2NyaXB0
aW9uKTsKICAgICB2b2lkIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50cyhOb2RlKiwgdWludDMyX3Qg
cm9vdE1hc2ssIGJvb2wgc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmgKaW5kZXggM2JkMmE0ODdiMDg0NGE4
OGFjMjQ3N2YyNWM4ZDYxMGIzNGI0ZTY0NS4uMTE1OThkZjFhNTRiMGM5YWY0MzJhMGQyMGNhNDBj
ZGMyNmE3ZmMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmgKQEAgLTQzLDE0ICs0MywxNCBAQCBjbGFzcyBQ
YWdlRGVidWdnZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBXZWJEZWJ1Z2dlckFnZW50IHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdlRGVidWdnZXJBZ2VudChQ
YWdlQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+UGFnZURlYnVnZ2VyQWdlbnQoKTsKKyAg
ICB+UGFnZURlYnVnZ2VyQWdlbnQoKSBvdmVycmlkZTsKICAgICBib29sIGVuYWJsZWQoKSBjb25z
dCBmaW5hbDsKIAogICAgIC8vIERlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAg
dm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYWxs
RnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9iamVjdEdy
b3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGRvTm90
UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgYm9vbCogcmV0dXJuQnlWYWx1
ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBib29sKiBzYXZlUmVzdWx0LCBj
b25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIE9wdGlvbmFsPGJvb2w+JiB3YXNUaHJv
d24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5kZXgpOworICAgIHZvaWQgZXZhbHVhdGVP
bkNhbGxGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgY29uc3QgYm9v
bCogaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRp
b25zQW5kTXV0ZUNvbnNvbGUsIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wq
IGdlbmVyYXRlUHJldmlldywgY29uc3QgYm9vbCogc2F2ZVJlc3VsdCwgY29uc3QgYm9vbCogZW11
bGF0ZVVzZXJHZXN0dXJlLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVt
b3RlT2JqZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxib29sPiYgd2FzVGhyb3duLCBPcHRpb25hbDxp
bnQ+JiBzYXZlZFJlc3VsdEluZGV4KSBvdmVycmlkZTsKIAogICAgIC8vIFNjcmlwdERlYnVnTGlz
dGVuZXIKLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUmLCBjb25z
dCBTdHJpbmcmKTsKKyAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUm
LCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbgogICAgIHZvaWQgZGlkQ2xlYXJNYWluRnJhbWVXaW5kb3dPYmplY3QoKTsKQEAgLTYyLDE1
ICs2MiwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQg
Y2FsbGJhY2tJZCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBlbmFibGUoKTsKLSAgICB2b2lkIGRp
c2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKTsKKyAgICB2b2lkIGVuYWJsZSgpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQpIG92ZXJyaWRlOwogCi0g
ICAgU3RyaW5nIHNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQmKTsKKyAgICBTdHJp
bmcgc291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0IFNjcmlwdCYpIG92ZXJyaWRlOwogCi0gICAg
dm9pZCBtdXRlQ29uc29sZSgpOwotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpOworICAgIHZvaWQg
bXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlk
ZTsKIAotICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFs
KEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOworICAgIEluc3Bl
Y3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwg
Y29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOwogCiAgICAgUGFnZSYgbV9p
bnNwZWN0ZWRQYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlSGVhcEFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5oCmluZGV4IDc1NmZjYTBmMWVmOGQ5YmRkNTJiYTA5YWM1
MDYzMzIxZTA4MjI5MjIuLjFiZDZjYTBmYzllZjE1YTFkN2EyNTI4NDI5NWE4ZTE5ZTg1ZjEwZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVh
cEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VI
ZWFwQWdlbnQuaApAQCAtMzgsMTEgKzM4LDExIEBAIGNsYXNzIFBhZ2VIZWFwQWdlbnQgZmluYWwg
OiBwdWJsaWMgV2ViSGVhcEFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBQYWdlSGVhcEFnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFs
IH5QYWdlSGVhcEFnZW50KCk7CisgICAgflBhZ2VIZWFwQWdlbnQoKSBvdmVycmlkZTsKIAogICAg
IC8vIEhlYXBCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0
cmluZyYpOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOworICAgIHZvaWQgZW5hYmxl
KEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikg
b3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIG1h
aW5GcmFtZU5hdmlnYXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmgKaW5kZXggNGU4ZjU0MTliNmIyZjA4MGIw
YjcyZDI4YzkzNDZkZmNhNzg3OGQwYi4uYmVkY2UzZThkYmI3YzlkMjJiMmUxYjk3MmQyMmIyYTVi
Y2U0MGFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdl
L1BhZ2VOZXR3b3JrQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5oCkBAIC0zNiwxNSArMzYsMTUgQEAgY2xhc3MgUGFnZU5l
dHdvcmtBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JOZXR3b3JrQWdlbnQgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFBhZ2VOZXR3b3JrQWdlbnQoUGFn
ZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflBhZ2VOZXR3b3JrQWdlbnQoKTsKKyAgICB+
UGFnZU5ldHdvcmtBZ2VudCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIFN0cmluZyBsb2Fk
ZXJJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKik7Ci0gICAgU3RyaW5nIGZyYW1lSWRlbnRpZmll
cihEb2N1bWVudExvYWRlciopOwotICAgIFZlY3RvcjxXZWJTb2NrZXQqPiBhY3RpdmVXZWJTb2Nr
ZXRzKGNvbnN0IExvY2tIb2xkZXImKTsKLSAgICB2b2lkIHNldFJlc291cmNlQ2FjaGluZ0Rpc2Fi
bGVkKGJvb2wpOwotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpOwotICAgIGJvb2wgc2hv
dWxkRm9yY2VCdWZmZXJpbmdOZXR3b3JrUmVzb3VyY2VEYXRhKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBTdHJpbmcgbG9hZGVySWRlbnRpZmllcihEb2N1bWVudExvYWRlciopIG92ZXJy
aWRlOworICAgIFN0cmluZyBmcmFtZUlkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKSBvdmVycmlk
ZTsKKyAgICBWZWN0b3I8V2ViU29ja2V0Kj4gYWN0aXZlV2ViU29ja2V0cyhjb25zdCBMb2NrSG9s
ZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChib29s
KSBvdmVycmlkZTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKSBvdmVycmlkZTsKKyAg
ICBib29sIHNob3VsZEZvcmNlQnVmZmVyaW5nTmV0d29ya1Jlc291cmNlRGF0YSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VS
dW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdl
UnVudGltZUFnZW50LmgKaW5kZXggMGMxMWQyODQzYzU1M2I5MDIyMzY2YmJmZmJlY2Y4NDkwN2Yy
MzYyYS4uZTMxYWU5YTNlYTc2NjAwNjlkYzAxMTA2MmYxOTBiYjk1MGMwM2YxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVB
Z2VudC5oCkBAIC01MSwyMCArNTEsMjAgQEAgY2xhc3MgUGFnZVJ1bnRpbWVBZ2VudCBmaW5hbCA6
IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUGFnZVJ1bnRpbWVBZ2VudChQYWdlQWdlbnRD
b250ZXh0Jik7Ci0gICAgdmlydHVhbCB+UGFnZVJ1bnRpbWVBZ2VudCgpOworICAgIH5QYWdlUnVu
dGltZUFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBSdW50aW1lQmFja2VuZERpc3BhdGNoZXJI
YW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGRpc2FibGUo
RXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBp
bmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNB
bmRNdXRlQ29uc29sZSwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQsIGNvbnN0IGJvb2wq
IHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRlUHJldmlldywgY29uc3QgYm9vbCog
c2F2ZVJlc3VsdCwgY29uc3QgYm9vbCogZW11bGF0ZVVzZXJHZXN0dXJlLCBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxi
b29sPiYgd2FzVGhyb3duLCBPcHRpb25hbDxpbnQ+JiBzYXZlZFJlc3VsdEluZGV4KTsKKyAgICB2
b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJv
clN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGJv
b2wqIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0
aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCwgY29uc3Qg
Ym9vbCogcmV0dXJuQnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBjb25zdCBi
b29sKiBzYXZlUmVzdWx0LCBjb25zdCBib29sKiBlbXVsYXRlVXNlckdlc3R1cmUsIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIE9wdGlv
bmFsPGJvb2w+JiB3YXNUaHJvd24sIE9wdGlvbmFsPGludD4mIHNhdmVkUmVzdWx0SW5kZXgpIG92
ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkaWRD
cmVhdGVNYWluV29ybGRDb250ZXh0KEZyYW1lJik7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9y
OjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25z
dCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7Ci0gICAgdm9pZCBtdXRlQ29uc29sZSgpOwotICAg
IHZvaWQgdW5tdXRlQ29uc29sZSgpOworICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5q
ZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250
ZXh0SWQpIG92ZXJyaWRlOworICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlcG9ydEV4ZWN1dGlvbkNv
bnRleHRDcmVhdGlvbigpOwogICAgIHZvaWQgbm90aWZ5Q29udGV4dENyZWF0ZWQoY29uc3QgU3Ry
aW5nJiBmcmFtZUlkLCBKU0M6OkV4ZWNTdGF0ZSosIFNlY3VyaXR5T3JpZ2luKiwgYm9vbCBpc1Bh
Z2VDb250ZXh0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2VyQWdlbnQuaAppbmRleCAwOTJkZThmYmRhZmVhZmRj
NjAyMTRlNmExMWUxMDU3NjYyZWFjYjUzLi44MTQ5ZmYzZGFjMzU3OGZjMDQ4YjY1OGU2MzE3ZGUz
MmIxOTdkNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dv
cmtlci9TZXJ2aWNlV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3dvcmtlci9TZXJ2aWNlV29ya2VyQWdlbnQuaApAQCAtNDEsMTQgKzQxLDE0IEBAIGNs
YXNzIFNlcnZpY2VXb3JrZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2Us
IHB1YmxpYyBJbnNwZWN0b3I6OlNlCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgU2VydmljZVdvcmtlckFnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOwotICAgIHZp
cnR1YWwgflNlcnZpY2VXb3JrZXJBZ2VudCgpOworICAgIH5TZXJ2aWNlV29ya2VyQWdlbnQoKSBv
dmVycmlkZTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6
OkJhY2tlbmREaXNwYXRjaGVyKik7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAg
Ly8gU2VydmljZVdvcmtlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZ2V0SW5p
dGlhbGl6YXRpb25JbmZvKEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OlNlcnZpY2VXb3JrZXI6OkNvbmZpZ3VyYXRpb24+Jik7CisgICAgdm9pZCBnZXRJbml0aWFsaXph
dGlvbkluZm8oRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6U2Vydmlj
ZVdvcmtlcjo6Q29uZmlndXJhdGlvbj4mKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUmIG1fc2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVkaXRB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVk
aXRBZ2VudC5oCmluZGV4IGU0NmJmNWZmNTc5NzJhYThkYjJkMzA4ZjhkOWI3MWViMWI2NDM2YTcu
LmQ2YWNkYzBlYTNlODlmMGZhZDMxY2NiMmQ3NjhlMGUxNDZiZDMyMzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckF1ZGl0QWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJBdWRpdEFn
ZW50LmgKQEAgLTM3LDEwICszNywxMCBAQCBjbGFzcyBXb3JrZXJBdWRpdEFnZW50IGZpbmFsIDog
cHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yQXVkaXRBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgV29ya2VyQXVkaXRBZ2VudChXb3JrZXJBZ2VudENv
bnRleHQmKTsKLSAgICB2aXJ0dWFsIH5Xb3JrZXJBdWRpdEFnZW50KCk7CisgICAgfldvcmtlckF1
ZGl0QWdlbnQoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3I6OkluamVjdGVk
U2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29u
c3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOworICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3Jp
cHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBp
bnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7CiAKICAgICBXb3JrZXJHbG9iYWxTY29w
ZSYgbV93b3JrZXJHbG9iYWxTY29wZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5oCmluZGV4IGEy
MjdhZGMyMjcyYzRkYWM3YmUyNzA3MDNkNzliYjg1MzlmZTUxOGQuLmI3YjU1ZDAwNjU5MGVmYjA4
M2ZlYmI5NGU0M2I0MTJkNjNjZWFmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIFdvcmtlckNvbnNvbGVBZ2VudCBmaW5hbCA6IHB1YmxpYyBXZWJDb25z
b2xlQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdv
cmtlckNvbnNvbGVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5Xb3Jr
ZXJDb25zb2xlQWdlbnQoKTsKKyAgICB+V29ya2VyQ29uc29sZUFnZW50KCkgb3ZlcnJpZGU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJET01EZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJET01EZWJ1Z2dlckFnZW50LmgK
aW5kZXggNjRhZmZkZWZlNTIyMzFiOGJiOWNlODkyNTA1M2E1NDEzMjUyOTg1NS4uYjExMjg1ZTA0
NjJkYTIxMTBmODk1NjY4NjdkNWYwMjk2MTczMmViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyRE9NRGVidWdnZXJBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRPTURlYnVnZ2Vy
QWdlbnQuaApAQCAtMzQsMTQgKzM0LDE0IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwog
Y2xhc3MgV29ya2VyRE9NRGVidWdnZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50IHsKIHB1YmxpYzoKICAgICBXb3JrZXJET01EZWJ1Z2dlckFnZW50KFdvcmtl
ckFnZW50Q29udGV4dCYsIEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudCopOwotICAg
IHZpcnR1YWwgfldvcmtlckRPTURlYnVnZ2VyQWdlbnQoKTsKKyAgICB+V29ya2VyRE9NRGVidWdn
ZXJBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gRE9NRGVidWdnZXJCYWNrZW5kRGlzcGF0Y2hl
ckhhbmRsZXIKLSAgICB2b2lkIHNldERPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkLCBjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHZvaWQgcmVtb3ZlRE9NQnJlYWtwb2ludChF
cnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgdm9pZCBz
ZXRET01CcmVha3BvaW50KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0
eXBlKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbW92ZURPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcm
LCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHR5cGUpIG92ZXJyaWRlOwogCiBwcml2YXRlOgot
ICAgIHZvaWQgc2V0QW5pbWF0aW9uRnJhbWVCcmVha3BvaW50KEVycm9yU3RyaW5nJiwgYm9vbCBl
bmFibGVkKTsKKyAgICB2b2lkIHNldEFuaW1hdGlvbkZyYW1lQnJlYWtwb2ludChFcnJvclN0cmlu
ZyYsIGJvb2wgZW5hYmxlZCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtl
ci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKaW5kZXggYjI1OWJiNDJiYTYwNTIxZjc0ODA5ZjE4Mzkx
Zjc0OTIyMTk1OTNhZC4uODkwYWM0MjIwOTJkNTM3YjJiNWZkZThiODMxOGM5ZTE0Y2Q5NTE4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2Vy
RGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29y
a2VyL1dvcmtlckRlYnVnZ2VyQWdlbnQuaApAQCAtMzYsMTcgKzM2LDE3IEBAIGNsYXNzIFdvcmtl
ckRlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgV2ViRGVidWdnZXJBZ2VudCB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgV29ya2VyRGVidWdnZXJBZ2VudChX
b3JrZXJBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5Xb3JrZXJEZWJ1Z2dlckFnZW50KCk7
CisgICAgfldvcmtlckRlYnVnZ2VyQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIFNjcmlwdERl
YnVnTGlzdGVuZXIKLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUm
LCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVj
U3RhdGUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICAvLyBXZSBk
b24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29ya2Vycy4KLSAgICB2b2lkIG11dGVDb25z
b2xlKCkgeyB9Ci0gICAgdm9pZCB1bm11dGVDb25zb2xlKCkgeyB9CisgICAgdm9pZCBtdXRlQ29u
c29sZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsg
fQogCi0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwo
RXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CisgICAgSW5zcGVj
dG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBj
b25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7CiAKICAgICBXb3JrZXJHbG9i
YWxTY29wZSYgbV93b3JrZXJHbG9iYWxTY29wZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2VudC5oCmlu
ZGV4IGMzYTg2Njk2MjQ4NDU0YTFkMmE4OWVmMjQ2Nzk0M2M1MWI5MTJlNDAuLjg5OWYwYTU2ZmQx
YjdkYTk0M2E0NTUzYjhjOTRjZjNjN2JmYjBiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlck5ldHdvcmtBZ2VudC5oCkBA
IC0zNCwxNSArMzQsMTUgQEAgY2xhc3MgV29ya2VyTmV0d29ya0FnZW50IGZpbmFsIDogcHVibGlj
IEluc3BlY3Rvck5ldHdvcmtBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgV29ya2VyTmV0d29ya0FnZW50KFdvcmtlckFnZW50Q29udGV4dCYpOwotICAg
IHZpcnR1YWwgfldvcmtlck5ldHdvcmtBZ2VudCgpOworICAgIH5Xb3JrZXJOZXR3b3JrQWdlbnQo
KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBTdHJpbmcgbG9hZGVySWRlbnRpZmllcihEb2N1
bWVudExvYWRlciopOwotICAgIFN0cmluZyBmcmFtZUlkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIq
KTsKLSAgICBWZWN0b3I8V2ViU29ja2V0Kj4gYWN0aXZlV2ViU29ja2V0cyhjb25zdCBMb2NrSG9s
ZGVyJik7Ci0gICAgdm9pZCBzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChib29sKTsKLSAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKTsKLSAgICBib29sIHNob3VsZEZvcmNlQnVmZmVyaW5n
TmV0d29ya1Jlc291cmNlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBTdHJpbmcg
bG9hZGVySWRlbnRpZmllcihEb2N1bWVudExvYWRlciopIG92ZXJyaWRlOworICAgIFN0cmluZyBm
cmFtZUlkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8V2Vi
U29ja2V0Kj4gYWN0aXZlV2ViU29ja2V0cyhjb25zdCBMb2NrSG9sZGVyJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChib29sKSBvdmVycmlkZTsKKyAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKSBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZEZvcmNl
QnVmZmVyaW5nTmV0d29ya1Jlc291cmNlRGF0YSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAogICAgIFdvcmtlckdsb2JhbFNjb3BlJiBtX3dvcmtlckdsb2JhbFNjb3BlOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtl
clJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyUnVudGltZUFnZW50LmgKaW5kZXggZTI5MjNiOWY3NWQ4MThkOTk4NGEyZTQ1ZGRjZmY1
NmI2OGViYmVkMC4uNTMwOGViNDM4OGQ0ZDEwNTJlYzc0NTg1MDQ3YTFlODhlN2Q0M2I0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyUnVu
dGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyUnVudGltZUFnZW50LmgKQEAgLTQ0LDE0ICs0NCwxNCBAQCBjbGFzcyBXb3JrZXJSdW50
aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdvcmtlclJ1bnRp
bWVBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1l
QWdlbnQoKTsKKyAgICB+V29ya2VyUnVudGltZUFnZW50KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
Ci0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJy
b3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CisgICAgSW5zcGVjdG9y
OjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25z
dCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7CiAKICAgICAvLyBXZSBkb24ndCBu
ZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29ya2Vycy4KLSAgICB2b2lkIG11dGVDb25zb2xlKCkg
eyB9Ci0gICAgdm9pZCB1bm11dGVDb25zb2xlKCkgeyB9CisgICAgdm9pZCBtdXRlQ29uc29sZSgp
IG92ZXJyaWRlIHsgfQorICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQogCiAg
ICAgUmVmUHRyPEluc3BlY3Rvcjo6UnVudGltZUJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmRE
aXNwYXRjaGVyOwogICAgIFdvcmtlckdsb2JhbFNjb3BlJiBtX3dvcmtlckdsb2JhbFNjb3BlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380699</attachid>
            <date>2019-10-10 16:40:40 -0700</date>
            <delta_ts>2019-10-10 17:25:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-200959-20191010164039.patch</filename>
            <type>text/plain</type>
            <size>96684</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwOTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
YmZmNzUwNTEyNzBmNjY2MzdiNWRlNTQxZjkyM2MxNzI0NTQwOTkwLi5mZjE1MzU2NTFiMWIzOWZk
MDA0NTlkMjhkNmQ3YjNjZmQ3NzkwYWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1c2UgbW9yZSBDKysga2V5d29yZHMgZm9y
IGRlZmluaW5nIGFnZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAwOTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDczNTM3ND4KKworICAg
ICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgQWRkIG92ZXJyaWRl
IGFubm90YXRpb24gdG8gb3ZlcnJpZGVkIHZpcnR1YWwgbWV0aG9kcyBpbiBpbnNwZWN0b3IgY29k
ZS4gVGhpcworICAgICAgICBjaGFuZ2UgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhl
IGZvbGxvd2luZyBjb21tYW5kOgorICAgICAgICBjbGFuZy10aWR5IC1jaGVja3M9Jy0qLG1vZGVy
bml6ZS11c2Utb3ZlcnJpZGUnIC1oZWFkZXItZmlsdGVyPScuKmluc3BlY3Rvci4qJyAtZml4IC1w
IFdlYktpdEJ1aWxkL1JlbGVhc2UvCisgICAgICAgICAgICBXZWJLaXRCdWlsZC9SZWxlYXNlL0Rl
cml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNl
LTg0YzlmNDNmLSouY3BwCisgICAgICAgICAgICBXZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UtODRjOWY0M2YtKi5j
cHAKKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdE1vZHVsZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9KU0ds
b2JhbE9iamVjdENvbnNvbGVDbGllbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxP
YmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNJbmplY3Rl
ZFNjcmlwdEhvc3QuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5o
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9ySGVhcEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclRhcmdldEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2Jh
bE9iamVjdEF1ZGl0QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFs
T2JqZWN0RGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9i
YWxPYmplY3RSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90
ZUF1dG9tYXRpb25UYXJnZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNv
bm5lY3Rpb25Ub1RhcmdldC5oOgorCiAyMDE5LTEwLTEwICBCYXN1a2UgU3V6dWtpICA8QmFzdWtl
LlN1enVraUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIE1vdmUgcmVtb3RlIGNvbW11
bmljYXRpb24gaGFuZGxpbmcgZnJvbSBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIgdG8gUmVtb3RlSW5z
cGVjdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM2MzM1YmM2Nzc0NWFmYTA5ODVjNmJiNGFiMTQ1ZjkzNzNi
MTQxMTYuLjQ1MWI1OTNhZjdmMGY2MDg3YWEwNzA0NTVjNWI3NjdlMjRlYjdhYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2MiBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlz
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1c2UgbW9yZSBDKysga2V5
d29yZHMgZm9yIGRlZmluaW5nIGFnZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDczNTM3
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgQWRk
IG92ZXJyaWRlIGFubm90YXRpb24gdG8gb3ZlcnJpZGVkIHZpcnR1YWwgbWV0aG9kcyBpbiBpbnNw
ZWN0b3IgY29kZS4gVGhpcworICAgICAgICBjaGFuZ2UgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0
ZWQgYnkgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorICAgICAgICBjbGFuZy10aWR5IC1jaGVja3M9
Jy0qLG1vZGVybml6ZS11c2Utb3ZlcnJpZGUnIC1oZWFkZXItZmlsdGVyPScuKmluc3BlY3Rvci4q
JyAtZml4IC1wIFdlYktpdEJ1aWxkL1JlbGVhc2UvCisgICAgICAgICAgICBXZWJLaXRCdWlsZC9S
ZWxlYXNlL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL3VuaWZpZWQtc291cmNlcy9Vbmlm
aWVkU291cmNlLTg0YzlmNDNmLSouY3BwCisgICAgICAgICAgICBXZWJLaXRCdWlsZC9SZWxlYXNl
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UtODRj
OWY0M2YtKi5jcHAKKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yIGNoYW5nZXMu
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9XZWJJbmplY3RlZFNj
cmlwdE1hbmFnZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJUb1BhZ2VGcm9udGVuZENoYW5uZWwuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3Rvck1lbW9yeUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
TmV0d29ya0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdl
QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvcGFn
ZS9QYWdlQXVkaXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdl
Q29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VET01E
ZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VEZWJ1
Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdl
bnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQXVkaXRBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRPTURlYnVnZ2VyQWdlbnQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJEZWJ1Z2dlckFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyTmV0d29ya0FnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50Lmg6
CisKIDIwMTktMTAtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVXNlIEhBVkUoSU9TVVJGQUNFX1JHQjEwKSBpbnN0ZWFkIG9mIFBMQVRGT1JNKElP
U19GQU1JTFkpIHdoZXJlIGFwcHJvcHJpYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggMGJmMmM5MjZmMDA4MjEzZWE2ZjllNTBk
OTQ4YzhhZjliMDQ5NTYwMy4uZTUzY2M2MGFhYjM1ZWI1NTU2ODU0NDJkZmVmMTc1OTBiODMxYTVj
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHQuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbmplY3RlZFNj
cmlwdCA6IHB1YmxpYyBJbmplY3RlZFNjcmlwdEJhc2UgewogcHVibGljOgogICAgIEluamVjdGVk
U2NyaXB0KCk7CiAgICAgSW5qZWN0ZWRTY3JpcHQoRGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0LCBJ
bnNwZWN0b3JFbnZpcm9ubWVudCopOwotICAgIHZpcnR1YWwgfkluamVjdGVkU2NyaXB0KCk7Cisg
ICAgfkluamVjdGVkU2NyaXB0KCkgb3ZlcnJpZGU7CiAKICAgICBzdHJ1Y3QgRXhlY3V0ZU9wdGlv
bnMgewogICAgICAgICBTdHJpbmcgb2JqZWN0R3JvdXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TW9kdWxlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TW9kdWxlLmgKaW5kZXggMWVmYzBh
Y2Q4NWI5MmY5ZmJmZDI4ZWI5MGZkZTNmZmIzZjA4MmJkZi4uNTgxNmY1M2RlNTlmMGMxZWM3OTlj
MGQ3Y2FiNTE1MzY0Yjc1NTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdE1vZHVsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFz
cyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiAKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluamVj
dGVkU2NyaXB0TW9kdWxlIDogcHVibGljIEluamVjdGVkU2NyaXB0QmFzZSB7CiBwdWJsaWM6Ci0g
ICAgdmlydHVhbCB+SW5qZWN0ZWRTY3JpcHRNb2R1bGUoKTsKKyAgICB+SW5qZWN0ZWRTY3JpcHRN
b2R1bGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBzb3VyY2UoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgaG9zdChJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBK
U0M6OkV4ZWNTdGF0ZSopIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgKaW5k
ZXggNDExM2Q2MDY2NTA5YzAwMDBiMTkyZDU1MjYxMjQ3NjEzNjVlYWQ4ZC4uOTA2OTBjOGMwNjAw
NWQzY2Y2MDZiZjdmYjFmNzk5MzM3ZmE4YThjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
CkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudCBmaW5h
bCA6IHB1YmxpYyBKU0M6OkNvbnNvbGVDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudChJ
bnNwZWN0b3JDb25zb2xlQWdlbnQqKTsKLSAgICB2aXJ0dWFsIH5KU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQoKSB7IH0KKyAgICB+SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50KCkgb3ZlcnJp
ZGUgeyB9CiAKICAgICBzdGF0aWMgYm9vbCBsb2dUb1N5c3RlbUNvbnNvbGUoKTsKICAgICBzdGF0
aWMgdm9pZCBzZXRMb2dUb1N5c3RlbUNvbnNvbGUoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuaAppbmRleCAyMzc4N2VhN2M5MWIxMzkzYjdhNDhhZDE1MDE0MDI1NzNh
OTBhMjZjLi40NGYxZjQ2YTdkM2E4MDlkZGI1MjQ1ODA4NzQ3YTFhNDFkNjNkYjUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVj
dG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTY4LDcgKzY4LDcgQEAgY2xhc3Mg
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyIGZpbmFsCiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyKEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKLSAgICB+SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyKCk7CisgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcigpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiwgYm9v
bCBpc0F1dG9tYXRpY0luc3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSk7CiAgICAgdm9p
ZCBkaXNjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3Jp
cHREZWJ1Z1NlcnZlci5oCmluZGV4IDZmZjk4ZDFhYTRmYWM5MjA1YWE3MTJkNzdmZGNlMDQ0NzM5
NjM3NDQuLjQzMWRkY2Q5YzlmM2I4Yjk4ZjI3Y2FhZDJlZmU2N2E2N2RlN2VjMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHRE
ZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9i
YWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEpTR2xv
YmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIgZmluYWwgOiBwdWJsaWMgU2NyaXB0RGVidWdTZXJ2
ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEpTR2xvYmFs
T2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCYpOwotICAgIHZpcnR1
YWwgfkpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIoKSB7IH0KKyAgICB+SlNHbG9iYWxP
YmplY3RTY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlIHsgfQogCiAgICAgSlNDOjpKU0dsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxPYmplY3Q7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVk
U2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0
ZWRTY3JpcHRIb3N0LmNwcAppbmRleCBkMWVhYmYwNGJlYTEwMzZhZjAwMzI2OGFjYzVmMmI1ZWZj
MGYwZTllLi42ZDdiOTJkOTBlMjhkNzNmNWU1OGM3YzE1MjY3MGMxZDJhY2I5MDViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3Jp
cHRIb3N0LmNwcApAQCAtNzg2LDcgKzc4Niw3IEBAIHB1YmxpYzoKIAogICAgIEhhc2hTZXQ8SlND
ZWxsKj4mIGhvbGRlcnMoKSB7IHJldHVybiBtX2hvbGRlcnM7IH0KIAotICAgIHZvaWQgYW5hbHl6
ZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFz
b24gcmVhc29uKQorICAgIHZvaWQgYW5hbHl6ZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRv
LCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb24gcmVhc29uKSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgQVNTRVJUKHRvKTsKICAgICAgICAgQVNTRVJUKHRvLT52bSgpLmhlYXBQcm9maWxlcigp
LT5hY3RpdmVIZWFwQW5hbHl6ZXIoKSA9PSB0aGlzKTsKQEAgLTgxMSwxNCArODExLDE0IEBAIHB1
YmxpYzoKICAgICAgICAgZWxzZSBpZiAoIWZyb20gfHwgcmVhc29uICE9IFNsb3RWaXNpdG9yOjpS
b290TWFya1JlYXNvbjo6Tm9uZSkKICAgICAgICAgICAgIG1fcm9vdHNUb0luY2x1ZGUuYWRkKHRv
KTsKICAgICB9Ci0gICAgdm9pZCBhbmFseXplUHJvcGVydHlOYW1lRWRnZShKU0NlbGwqIGZyb20s
IEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJpbmdJbXBsKikgeyBhbmFseXplRWRnZShmcm9tLCB0bywg
U2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpOb25lKTsgfQotICAgIHZvaWQgYW5hbHl6ZVZh
cmlhYmxlTmFtZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1w
bCopIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
Tm9uZSk7IH0KLSAgICB2b2lkIGFuYWx5emVJbmRleEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwq
IHRvLCB1aW50MzJfdCkgeyBhbmFseXplRWRnZShmcm9tLCB0bywgU2xvdFZpc2l0b3I6OlJvb3RN
YXJrUmVhc29uOjpOb25lKTsgfQotCi0gICAgdm9pZCBhbmFseXplTm9kZShKU0NlbGwqKSB7IH0K
LSAgICB2b2lkIHNldE9wYXF1ZVJvb3RSZWFjaGFiaWxpdHlSZWFzb25Gb3JDZWxsKEpTQ2VsbCos
IGNvbnN0IGNoYXIqKSB7IH0KLSAgICB2b2lkIHNldFdyYXBwZWRPYmplY3RGb3JDZWxsKEpTQ2Vs
bCosIHZvaWQqKSB7IH0KLSAgICB2b2lkIHNldExhYmVsRm9yQ2VsbChKU0NlbGwqLCBjb25zdCBT
dHJpbmcmKSB7IH0KKyAgICB2b2lkIGFuYWx5emVQcm9wZXJ0eU5hbWVFZGdlKEpTQ2VsbCogZnJv
bSwgSlNDZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwqKSBvdmVycmlkZSB7IGFuYWx5emVFZGdl
KGZyb20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmUpOyB9CisgICAgdm9p
ZCBhbmFseXplVmFyaWFibGVOYW1lRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFVuaXF1
ZWRTdHJpbmdJbXBsKikgb3ZlcnJpZGUgeyBhbmFseXplRWRnZShmcm9tLCB0bywgU2xvdFZpc2l0
b3I6OlJvb3RNYXJrUmVhc29uOjpOb25lKTsgfQorICAgIHZvaWQgYW5hbHl6ZUluZGV4RWRnZShK
U0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIHVpbnQzMl90KSBvdmVycmlkZSB7IGFuYWx5emVFZGdl
KGZyb20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmUpOyB9CisKKyAgICB2
b2lkIGFuYWx5emVOb2RlKEpTQ2VsbCopIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgc2V0T3BhcXVl
Um9vdFJlYWNoYWJpbGl0eVJlYXNvbkZvckNlbGwoSlNDZWxsKiwgY29uc3QgY2hhciopIG92ZXJy
aWRlIHsgfQorICAgIHZvaWQgc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoSlNDZWxsKiwgdm9pZCop
IG92ZXJyaWRlIHsgfQorICAgIHZvaWQgc2V0TGFiZWxGb3JDZWxsKEpTQ2VsbCosIGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlIHsgfQogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQgZHVtcChQcmlu
dFN0cmVhbSYgb3V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4IDdlYTJmOWMyZjUzNDRhNWQ3ODBlM2E1MDc4
MDVkOTdiZTZkYTRiN2MuLmI5Y2Y5ZmQxYTI0M2U4MTJiMjYzYjEzNGFjYmIwNDgxZWIwZGYzYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdT
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVn
U2VydmVyLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgU2Ny
aXB0RGVidWdTZXJ2ZXIoSlNDOjpWTSYpOwotICAgIH5TY3JpcHREZWJ1Z1NlcnZlcigpOworICAg
IH5TY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFj
aERlYnVnZ2VyKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hEZWJ1Z2dlcihib29sIGlz
QmVpbmdEZXN0cm95ZWQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCmluZGV4IDhjNGY4Y2NmM2VhN2Q5MTFi
YWZjM2JkODY3Y2Q0ZWZjMGQ2YmY1NWYuLmEyMWE1ODk0YWI3MzI2NGM4ZmE0NzE2YmZhYzY5ODg4
MjhhOGQ0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaApAQCAtNDcsMTYgKzQ3LDE2IEBAIGNsYXNzIEpTX0VY
UE9SVF9QUklWQVRFIEluc3BlY3RvckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50
QmFzZSwgcHVibGljCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
SW5zcGVjdG9yQWdlbnQoQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yQWdl
bnQoKTsKKyAgICB+SW5zcGVjdG9yQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rv
ckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5k
Um91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJIYW5kbGVy
Ci0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JT
dHJpbmcmKTsKLSAgICB2b2lkIGluaXRpYWxpemVkKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVkKEVycm9yU3RyaW5nJikgb3ZlcnJp
ZGU7CiAKICAgICAvLyBDb21tYW5kTGluZUFQSQogICAgIHZvaWQgaW5zcGVjdChSZWZQdHI8UHJv
dG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mJiBvYmplY3RUb0luc3BlY3QsIFJlZlB0cjxK
U09OOjpPYmplY3Q+JiYgaGludHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5oCmluZGV4IGE1NjE0
YzVlN2I0YzcwNzFkNTZlNmFjYmZhMzUwYzg1N2I0NTY0NTMuLmUxYWMzY2JlNWZkYTM1YjM2M2Yx
M2JiN2M0MzBiMTQzZDBiM2ZmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmgKQEAgLTQzLDcg
KzQzLDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yQXVkaXRBZ2VudCA6IHB1
YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEluc3BlY3RvckF1ZGl0QWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHZpcnR1YWwgfkluc3BlY3RvckF1ZGl0QWdlbnQoKTsKKyAgICB+SW5zcGVjdG9y
QXVkaXRBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCiAgICAg
dm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5k
RGlzcGF0Y2hlciopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCBiYmYx
OGI1NTVmZjgzZjJkZGQ0MjNmMGJhNTVmNmZmY2FhYmMxOWY3Li5kMzUxMDAwZWFlMjIzYzdlNzNm
M2E4YjZhZWE2OTU5Y2I5OWM5MTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAt
NTQsNyArNTQsNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JDb25zb2xlQWdl
bnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaQogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRl
eHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JDb25zb2xlQWdlbnQoKTsKKyAgICB+SW5zcGVj
dG9yQ29uc29sZUFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UK
ICAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJh
Y2tlbmREaXNwYXRjaGVyKikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5k
ZXggMTZmNGJmOGU3MmEzNmU3NTE5ZDc1NjEyZDFmNDBlZWM0ZjdlOGEwYi4uOTI0NmQ2YzY0NDY1
YTFjNDdkN2E1NGNlNjQ2MzBjMDU3ZWQ2MTA3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibAogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOwogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgfkluc3BlY3RvckRlYnVnZ2VyQWdl
bnQoKTsKKyAgICB+SW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGJhY2t0cmFjZU9iamVjdEdyb3VwOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2Vu
dC5oCmluZGV4IDljOTM2NjczZmIzZTc3MDBkZjE0OGU3YWZiZDI4N2E1ZjJjYjhjNzEuLmRlZjZh
Y2RlOTQ2MGU3MTI4MDA0MWRhYTY1ZmNjZDY4NWUwZjdjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2Vu
dC5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3Rvckhl
YXBBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBICiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9ySGVhcEFnZW50KEFnZW50
Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvckhlYXBBZ2VudCgpOworICAgIH5JbnNw
ZWN0b3JIZWFwQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQog
ICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFj
a2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKaW5kZXgg
NzE3MzFiZDJiYWZjNGNlMTI0ZGRjZWQzMjI4YTNlZDNhYTg0Nzk2My4uN2Q0NTA1NDVlMGRiNjU0
ZDQ0MjFhODZiMDY0OGRiMzFhMzkwOTAzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgK
QEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yUnVudGlt
ZUFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGkKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShJbnNwZWN0b3JSdW50aW1lQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgfkluc3BlY3RvclJ1bnRpbWVBZ2VudCgpOwor
ICAgIH5JbnNwZWN0b3JSdW50aW1lQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rv
ckFnZW50QmFzZQogICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmgKaW5kZXggNmQ0MzI3ZjM0
MzBjMTM4ZjZkOWU3NDIwYmQ1OWI5ZDRjOGE3OGJmMy4uOTc5MTA1NmM5MjQwOTBjYzYzYmVmODE3
NDM5NGY1MWNiNjhmZGJjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdl
bnQuaApAQCAtNDQsMjAgKzQ0LDIwIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3Rv
clNjcmlwdFByb2ZpbGVyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlCiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yU2NyaXB0UHJvZmls
ZXJBZ2VudChBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JTY3JpcHRQcm9m
aWxlckFnZW50KCk7CisgICAgfkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQoKSBvdmVycmlk
ZTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKTsKLSAgICB2
b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pOworICAg
IHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2Vu
ZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gU2NyaXB0UHJvZmls
ZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JT
dHJpbmcmLCBjb25zdCBib29sKiBpbmNsdWRlU2FtcGxlcyk7Ci0gICAgdm9pZCBzdG9wVHJhY2tp
bmcoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmLCBj
b25zdCBib29sKiBpbmNsdWRlU2FtcGxlcykgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wVHJhY2tp
bmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIC8vIEpTQzo6RGVidWdnZXI6OlByb2Zp
bGluZ0NsaWVudAotICAgIGJvb2wgaXNBbHJlYWR5UHJvZmlsaW5nKCkgY29uc3Q7Ci0gICAgU2Vj
b25kcyB3aWxsRXZhbHVhdGVTY3JpcHQoKTsKLSAgICB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0KFNl
Y29uZHMsIEpTQzo6UHJvZmlsaW5nUmVhc29uKTsKKyAgICBib29sIGlzQWxyZWFkeVByb2ZpbGlu
ZygpIGNvbnN0IG92ZXJyaWRlOworICAgIFNlY29uZHMgd2lsbEV2YWx1YXRlU2NyaXB0KCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdChTZWNvbmRzLCBKU0M6OlByb2ZpbGlu
Z1JlYXNvbikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhZGRFdmVudChTZWNvbmRz
IHN0YXJ0VGltZSwgU2Vjb25kcyBlbmRUaW1lLCBKU0M6OlByb2ZpbGluZ1JlYXNvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JU
YXJnZXRBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yVGFyZ2V0QWdlbnQuaAppbmRleCAwMGZjM2IwMjE3MzQ0YmU0Y2RmZjc5MTFjMjEzNzE4
YzViOTVjZWUzLi4zMTJlYjYwMGFiOGViNDNhMGFlNzQ3OGZjMWI3MDg0ZDA1NDZkYzdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JU
YXJnZXRBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclRhcmdldEFnZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgSW5zcGVjdG9yVGFyZ2V0QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNl
LCBwdWJsaWMKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JUYXJnZXRBZ2VudCk7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+SW5z
cGVjdG9yVGFyZ2V0QWdlbnQoKTsKKyAgICB+SW5zcGVjdG9yVGFyZ2V0QWdlbnQoKSBvdmVycmlk
ZTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQogICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xv
YmFsT2JqZWN0QXVkaXRBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmgKaW5kZXggYzdkYTE5M2U4OGQzNzI1MDVk
NzhjYzZiZjkyNDVlNWQ4MzFiYzk1NS4uNDkyMWQzMzA2ZWQ1N2JiNDA5YzgxNjcxYWMxM2MyZjQz
MjEwM2JjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmgKQEAgLTM4LDEwICsz
OCwxMCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5z
cGVjdG9yQXVkaXRBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50KEpTQWdlbnRDb250ZXh0Jik7Ci0gICAgdmly
dHVhbCB+SlNHbG9iYWxPYmplY3RBdWRpdEFnZW50KCk7CisgICAgfkpTR2xvYmFsT2JqZWN0QXVk
aXRBZ2VudCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIEluamVjdGVkU2NyaXB0IGluamVj
dGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4
dElkKTsKKyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJp
bmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7CiAKICAgICBKU0M6
OkpTR2xvYmFsT2JqZWN0JiBtX2dsb2JhbE9iamVjdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdl
bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2Jq
ZWN0RGVidWdnZXJBZ2VudC5oCmluZGV4IGE0NmI3NmEzZWI2ZDNjMzQzNzQwZGQzNzg2YzQ5NWFi
YzNjZjJjYzEuLjM1NDVmMTg1YmYzYWEyNThkNzNiYzExMmE2Y2JlOGYwMjE4MGY3MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2Jq
ZWN0RGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCkBAIC0zNiwxOCArMzYsMTggQEAg
Y2xhc3MgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudChKU0FnZW50Q29udGV4dCYsIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudCopOwotICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2Vu
dCgpOworICAgIH5KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQoKSBvdmVycmlkZTsKIAogICAg
IC8vIFNjcmlwdERlYnVnTGlzdGVuZXIKLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlND
OjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25M
b2coSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToK
LSAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBj
b25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0
ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0
SWQpIG92ZXJyaWRlOwogCiAgICAgLy8gTk9URTogSmF2YVNjcmlwdCBpbnNwZWN0b3IgZG9lcyBu
b3QgeWV0IG5lZWQgdG8gbXV0ZSBhIGNvbnNvbGUgYmVjYXVzZSBubyBtZXNzYWdlcwogICAgIC8v
IGFyZSBzZW50IHRvIHRoZSBjb25zb2xlIG91dHNpZGUgb2YgdGhlIEFQSSBib3VuZGFyeSBvciBj
b25zb2xlIG9iamVjdC4KLSAgICB2b2lkIG11dGVDb25zb2xlKCkgeyB9Ci0gICAgdm9pZCB1bm11
dGVDb25zb2xlKCkgeyB9CisgICAgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQorICAg
IHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQogCiAgICAgSW5zcGVjdG9yQ29uc29s
ZUFnZW50KiBtX2NvbnNvbGVBZ2VudCB7IG51bGxwdHIgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVB
Z2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQuaAppbmRleCBlYTg1NzRlNWFlZjhmMjJkNzExNWUzMTM1YWE2ZmJk
NTkyNGJhNDI5Li5hMzQ3ZGU0ZWYwYWM4NjQ1ZGRlNTY1YTM2MGEwZDc1ZTVjZTk5MmY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9i
amVjdFJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmgKQEAgLTM5LDE1ICszOSwxNSBAQCBj
bGFzcyBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JS
dW50aW1lQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50KEpTQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVh
bCB+SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQoKTsKKyAgICB+SlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBJbmplY3RlZFNjcmlwdCBpbmpl
Y3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRl
eHRJZCk7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3Ry
aW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOwogCiAgICAgLy8g
Tk9URTogSmF2YVNjcmlwdCBpbnNwZWN0b3IgZG9lcyBub3QgeWV0IG5lZWQgdG8gbXV0ZSBhIGNv
bnNvbGUgYmVjYXVzZSBubyBtZXNzYWdlcwogICAgIC8vIGFyZSBzZW50IHRvIHRoZSBjb25zb2xl
IG91dHNpZGUgb2YgdGhlIEFQSSBib3VuZGFyeSBvciBjb25zb2xlIG9iamVjdC4KLSAgICB2b2lk
IG11dGVDb25zb2xlKCkgeyB9Ci0gICAgdm9pZCB1bm11dGVDb25zb2xlKCkgeyB9CisgICAgdm9p
ZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92
ZXJyaWRlIHsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ1bnRpbWVGcm9udGVuZERpc3BhdGNo
ZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwogICAgIFJlZlB0cjxSdW50aW1lQmFja2VuZERpc3Bh
dGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVBdXRvbWF0aW9uVGFyZ2V0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVBdXRvbWF0aW9uVGFyZ2V0LmgK
aW5kZXggY2VjNTI4ODMwNmZlMTcxMDdiNjM5YTEzYWZkODY2YWJlYjJmNjU4MC4uNWM3NGZkNDgz
ZmE4NWYyZWQzMDVjMzFiYzIxZGU2ZmYxYzZhYTIxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQXV0b21hdGlvblRhcmdldC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUF1dG9tYXRpb25U
YXJnZXQuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBGcm9udGVuZENoYW5uZWw7CiAKIGNsYXNz
IEpTX0VYUE9SVF9QUklWQVRFIFJlbW90ZUF1dG9tYXRpb25UYXJnZXQgOiBwdWJsaWMgUmVtb3Rl
Q29udHJvbGxhYmxlVGFyZ2V0IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SZW1vdGVBdXRvbWF0
aW9uVGFyZ2V0KCk7CisgICAgflJlbW90ZUF1dG9tYXRpb25UYXJnZXQoKSBvdmVycmlkZTsKIAog
ICAgIGJvb2wgaXNQYWlyZWQoKSBjb25zdCB7IHJldHVybiBtX3BhaXJlZDsgfQogICAgIHZvaWQg
c2V0SXNQYWlyZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCmluZGV4
IGVlY2VhMGQzY2EyZjEzZmU2NWUyYjk1MGFjOGYzZTEwNzFlMWY1NGUuLmM4NWI2NGEwNTNmOGZm
MGNjMDA5MjA3ZmUwYzk3ZDgxMmE0NzBjNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1Rh
cmdldC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICNlbHNlCiAgICAgUmVtb3RlQ29ubmVj
dGlvblRvVGFyZ2V0KFJlbW90ZUNvbnRyb2xsYWJsZVRhcmdldCYpOwogI2VuZGlmCi0gICAgdmly
dHVhbCB+UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0KCk7CisgICAgflJlbW90ZUNvbm5lY3Rpb25U
b1RhcmdldCgpIG92ZXJyaWRlOwogCiAgICAgLy8gTWFpbiBBUEkuCiAgICAgYm9vbCBzZXR1cChi
b29sIGlzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlLCBib29sIGF1dG9tYXRpY2FsbHlQYXVz
ZSA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5oCmluZGV4IDRiZWE0MzI2M2RhNzAzN2YxODg2NTk2NjJkYThkYmY2ZDgzMTU5NmQuLjUx
ODZkNTcwMTczZGQ5MTFlZTQ1MWViYmJmYjIyYjEzYWVlZjU3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjcsNyArNjcsNyBAQCBj
bGFzcyBJbnNwZWN0b3JDb250cm9sbGVyIGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVj
dG9yRW52aXJvbm1lbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIEluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSYsIEluc3BlY3RvckNsaWVudCopOwotICAgIHZp
cnR1YWwgfkluc3BlY3RvckNvbnRyb2xsZXIoKTsKKyAgICB+SW5zcGVjdG9yQ29udHJvbGxlcigp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGVzdHJveWVkKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbC5oCmluZGV4IDZjMWI1MWFkZWU5YTM4NDI2MzMzOGY0NWQ4ODg0YTZkOWMzN2VhODIuLjE3
MjUwNjgyODdjMzQzM2U5YzRjOWI0OWU4ODFlMWNjZDg5YWQzNzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaApA
QCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdGVk
UGFnZUNvbnRyb2xsZXIsIFBhZ2UqIGZyb250ZW5kUGFnZSwgc3RkOjp1bmlxdWVfcHRyPFNldHRp
bmdzPik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbCgpOworICAgIFdFQkNPUkVfRVhQT1JUIH5JbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsKCkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0U3RhdGUoKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmNwcAppbmRleCBhMGZkNzY1MjE5ODA2MDM1OWM2NDc5NDVjNzM4MGE3ZTQwYjRm
ODMwLi41YTkzZjNiNGFhNjc1MmM1YmQ3ZWQ3NjZlM2M4Y2RiMGU2ZTlhMzFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcApAQCAt
ODYsNyArODYsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5Gcm9u
dGVuZE1lbnVQcm92aWRlcigpCisgICAgfkZyb250ZW5kTWVudVByb3ZpZGVyKCkgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIGNvbnRleHRNZW51Q2xlYXJlZCgpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCA4NTNmNTM0
YTcwYWZmNTUxMGNiNGM4M2NmODU1MTFlZTllZWYwMTI1Li5mODk1MzAxN2IzOWI5YzcyYzA3YmE2
MjJlNjFlOGFmNGZlZTJlMjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
UGFnZVNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFBhZ2VTY3JpcHRE
ZWJ1Z1NlcnZlciBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIoUGFnZSYpOwotICAgIHZpcnR1YWwgflBhZ2VTY3JpcHREZWJ1Z1NlcnZlcigpID0g
ZGVmYXVsdDsKKyAgICB+UGFnZVNjcmlwdERlYnVnU2VydmVyKCkgb3ZlcnJpZGUgPSBkZWZhdWx0
OwogCiAgICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpIG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgK
aW5kZXggNTk0NWY4ZTM3OTUzMTc2ZTUyY2M3NGJmMDkwNGM2NDlmN2Y0M2ZkMC4uY2FkOTk4OTAy
OWViNzRjNzc1Nzk3YzI4YjQ2YzA1OWRjNWRmN2I3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaApAQCAtMzgsNyArMzgsNyBA
QCBjbGFzcyBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9y
OjpJbmplY3RlZFNjcmlwdE1hbmFnZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcihJbnNwZWN0b3I6Okluc3BlY3Rv
ckVudmlyb25tZW50JiwgUmVmPEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRIb3N0PiYmKTsKLSAg
ICB2aXJ0dWFsIH5XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgfldl
YkluamVjdGVkU2NyaXB0TWFuYWdlcigpIG92ZXJyaWRlID0gZGVmYXVsdDsKIAogICAgIGNvbnN0
IFJlZlB0cjxDb21tYW5kTGluZUFQSUhvc3Q+JiBjb21tYW5kTGluZUFQSUhvc3QoKSBjb25zdCB7
IHJldHVybiBtX2NvbW1hbmRMaW5lQVBJSG9zdDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA0MjFhY2JiYjZh
YjBkYjg4MGY4ZDcyNTNmZDI4YjkxNWJiMzRlMWI3Li40MDhmYzIyODIwZDMxNzJmNWE5YTQ4YWUw
YWViMWI4MjJlOWNhNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckVu
dmlyb25tZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlJik7Ci0g
ICAgdmlydHVhbCB+V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpOworICAgIH5Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHdvcmtlclRlcm1pbmF0aW5n
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclNjcmlwdERlYnVn
U2VydmVyLmgKaW5kZXggZTMzZmVlZWM0ZDJlMzkxYjRiNWZkMjUyNzVkOTZmNGUxNTE2NzEzNi4u
NDUwODI3MTA4MDhjMWFkNjA3ODc1ODU0N2M5YmI1MGM1MTBkZTk2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTQyLDcg
KzQyLDcgQEAgY2xhc3MgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIgZmluYWwgOiBwdWJsaWMgSW5z
cGVjdG9yOjpTY3JpcHREZWJ1Z1NlcnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIoV29ya2VyR2xvYmFsU2NvcGUm
KTsKLSAgICB+V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIoKSA9IGRlZmF1bHQ7CisgICAgfldvcmtl
clNjcmlwdERlYnVnU2VydmVyKCkgb3ZlcnJpZGUgPSBkZWZhdWx0OwogCiAgICAgdm9pZCByZWNv
bXBpbGVBbGxKU0Z1bmN0aW9ucygpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyVG9QYWdlRnJvbnRlbmRDaGFubmVsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyVG9QYWdlRnJvbnRlbmRDaGFubmVsLmgKaW5kZXggNWU2MTZl
Yjk5ZDQ3MjA5ZDk5YzI1N2E3ZTdiYTFhMmY3NGRhZDdhMi4uYzAyNjIxMTM1YzU1ZWJkNzA2ZTA0
MzUxYjVjMTNmNjEzYmVhNjUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlclRvUGFnZUZyb250ZW5kQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJUb1BhZ2VGcm9udGVuZENoYW5uZWwuaApAQCAtMzksNyArMzksNyBAQCBwdWJs
aWM6CiAgICAgICAgIDogbV93b3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSkKICAg
ICB7CiAgICAgfQotICAgIH5Xb3JrZXJUb1BhZ2VGcm9udGVuZENoYW5uZWwoKSA9IGRlZmF1bHQ7
CisgICAgfldvcmtlclRvUGFnZUZyb250ZW5kQ2hhbm5lbCgpIG92ZXJyaWRlID0gZGVmYXVsdDsK
IAogcHJpdmF0ZToKICAgICBDb25uZWN0aW9uVHlwZSBjb25uZWN0aW9uVHlwZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIENvbm5lY3Rpb25UeXBlOjpMb2NhbDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmgKaW5kZXggZjE2MTg0ZmE2NDc0NDk3YmJmNGFhMzgwMWViNjlkOTc0ZWQx
YjMzYi4uNTE5ODhmNjE3ZGUxMWVmMTE3MDhhN2IzOTJjZjBjZTE5NGI0ODZlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCkBAIC00NiwxOCArNDYsMTggQEAgY2xhc3MgSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFz
ZSwgcHVibGljIEkKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZp
cnR1YWwgfkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpOworICAgIH5JbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50
QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJv
bnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7Ci0gICAgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24p
OworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRl
bmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gQXBwbGljYXRpb25DYWNoZUJhY2tlbmREaXNwYXRj
aGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBkaXNh
YmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBnZXRGcmFtZXNXaXRoTWFuaWZlc3RzKEVycm9y
U3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXBwbGlj
YXRpb25DYWNoZTo6RnJhbWVXaXRoTWFuaWZlc3Q+PiYgcmVzdWx0KTsKLSAgICB2b2lkIGdldE1h
bmlmZXN0Rm9yRnJhbWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIFN0cmlu
ZyogbWFuaWZlc3RVUkwpOwotICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZUZvckZyYW1lKEVy
cm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZT4mKTsKKyAgICB2b2lkIGVu
YWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0RnJhbWVzV2l0aE1hbmlmZXN0cyhFcnJvclN0cmlu
ZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9u
Q2FjaGU6OkZyYW1lV2l0aE1hbmlmZXN0Pj4mIHJlc3VsdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBn
ZXRNYW5pZmVzdEZvckZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBT
dHJpbmcqIG1hbmlmZXN0VVJMKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldEFwcGxpY2F0aW9uQ2Fj
aGVGb3JGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgUmVmUHRyPElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGU+Jikg
b3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIHVw
ZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50LmgK
aW5kZXggNWJmYWJmYWEzNDE3NGUzZWZiZjhiMWJmOTY4MDg3NjQxNThhNWQ0OC4uNGVlOGU5Nzg1
M2Q3MTJkM2RhNjQzOWI5ODk3ZTg2NWE4OTZkYmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDUFVQcm9maWxlckFnZW50LmgK
QEAgLTQxLDE1ICs0MSwxNSBAQCBjbGFzcyBJbnNwZWN0b3JDUFVQcm9maWxlckFnZW50IGZpbmFs
IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlYwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvckNQVVByb2ZpbGVyQWdlbnQo
UGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvckNQVVByb2ZpbGVyQWdl
bnQoKTsKKyAgICB+SW5zcGVjdG9yQ1BVUHJvZmlsZXJBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAg
Ly8gSW5zcGVjdG9yQWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNo
ZXIqKTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlYXNvbik7CisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIq
KSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBDUFVQcm9maWxlckJh
Y2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmlu
ZyYpOwotICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJik7CisgICAgdm9pZCBzdGFy
dFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wVHJhY2tpbmco
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbGxlY3RTYW1w
bGUoY29uc3QgUmVzb3VyY2VVc2FnZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuaAppbmRleCA1NmRjZmEzMzBjNGI5MzEy
NGYzMjZmNGJhYjI3OTRlZDgyNThiZGFkLi5lNDNjYjViNzYxMDM5YWM2N2YxZTkxNmMxYTZkMzYy
NGI4MTllM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDU1NBZ2VudC5oCkBAIC01OCw3ICs1OCw3IEBAIGNsYXNzIEluc3BlY3RvckNTU0Fn
ZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSAsIHB1YmxpYyBJbnNwZWN0b3I6
OkNTCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9y
Q1NTQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yQ1NTQWdl
bnQoKTsKKyAgICB+SW5zcGVjdG9yQ1NTQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIGNsYXNzIElu
bGluZVN0eWxlT3ZlcnJpZGVTY29wZSB7CiAgICAgcHVibGljOgpAQCAtODAsMjkgKzgwLDI5IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0eWxlUnVsZShDU1NSdWxl
Jik7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNr
ZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5k
RGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIENT
U0JhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7
Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBnZXRDb21wdXRlZFN0
eWxlRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9m
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTQ29tcHV0ZWRTdHlsZVByb3BlcnR5Pj4mKTsK
LSAgICB2b2lkIGdldElubGluZVN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlk
LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIGlubGluZVN0eWxl
LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIGF0dHJpYnV0ZXMp
OwotICAgIHZvaWQgZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkLCBjb25zdCBib29sKiBpbmNsdWRlUHNldWRvLCBjb25zdCBib29sKiBpbmNsdWRlSW5oZXJp
dGVkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlJ1bGVN
YXRjaD4+JiBtYXRjaGVkQ1NTUnVsZXMsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkNTUzo6UHNldWRvSWRNYXRjaGVzPj4mLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkluaGVyaXRlZFN0eWxlRW50cnk+PiYgaW5oZXJpdGVk
RW50cmllcyk7Ci0gICAgdm9pZCBnZXRBbGxTdHlsZVNoZWV0cyhFcnJvclN0cmluZyYsIFJlZlB0
cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEhl
YWRlcj4+JiBzdHlsZVNoZWV0SW5mb3MpOwotICAgIHZvaWQgZ2V0U3R5bGVTaGVldChFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpDU1NTdHlsZVNoZWV0Qm9keT4mIHJlc3VsdCk7Ci0gICAgdm9pZCBnZXRTdHls
ZVNoZWV0VGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBTdHJp
bmcqIHJlc3VsdCk7Ci0gICAgdm9pZCBzZXRTdHlsZVNoZWV0VGV4dChFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBjb25zdCBTdHJpbmcmIHRleHQpOwotICAgIHZvaWQg
c2V0U3R5bGVUZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBzdHlsZUlkLCBj
b25zdCBTdHJpbmcmIHRleHQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0
eWxlPiYgcmVzdWx0KTsKLSAgICB2b2lkIHNldFJ1bGVTZWxlY3RvcihFcnJvclN0cmluZyYsIGNv
bnN0IEpTT046Ok9iamVjdCYgcnVsZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiYgcmVzdWx0KTsKLSAgICB2b2lkIGNy
ZWF0ZVN0eWxlU2hlZXQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIFN0cmlu
Zyogc3R5bGVTaGVldElkKTsKLSAgICB2b2lkIGFkZFJ1bGUoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4mIHJlc3VsdCk7Ci0gICAgdm9pZCBnZXRTdXBw
b3J0ZWRDU1NQcm9wZXJ0aWVzKEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5z
cGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NQcm9wZXJ0eUluZm8+PiYgcmVzdWx0KTsKLSAgICB2
b2lkIGdldFN1cHBvcnRlZFN5c3RlbUZvbnRGYW1pbHlOYW1lcyhFcnJvclN0cmluZyYsIFJlZlB0
cjxKU09OOjpBcnJheU9mPFN0cmluZz4+JiByZXN1bHQpOwotICAgIHZvaWQgZm9yY2VQc2V1ZG9T
dGF0ZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IEpTT046OkFycmF5JiBmb3JjZWRQ
c2V1ZG9DbGFzc2VzKTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0Q29t
cHV0ZWRTdHlsZUZvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6
QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU0NvbXB1dGVkU3R5bGVQcm9wZXJ0
eT4+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRJbmxpbmVTdHlsZXNGb3JOb2RlKEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5
bGU+JiBpbmxpbmVTdHlsZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5
bGU+JiBhdHRyaWJ1dGVzKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldE1hdGNoZWRTdHlsZXNGb3JO
b2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgYm9vbCogaW5jbHVkZVBzZXVkbywg
Y29uc3QgYm9vbCogaW5jbHVkZUluaGVyaXRlZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVj
dG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiYgbWF0Y2hlZENTU1J1bGVzLCBSZWZQdHI8
SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz4+
JiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0
ZWRTdHlsZUVudHJ5Pj4mIGluaGVyaXRlZEVudHJpZXMpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0
QWxsU3R5bGVTaGVldHMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0
b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+PiYgc3R5bGVTaGVldEluZm9z
KSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFN0eWxlU2hlZXQoRXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NT
U3R5bGVTaGVldEJvZHk+JiByZXN1bHQpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0U3R5bGVTaGVl
dFRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgU3RyaW5nKiBy
ZXN1bHQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U3R5bGVTaGVldFRleHQoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXRJZCwgY29uc3QgU3RyaW5nJiB0ZXh0KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldFN0eWxlVGV4dChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVj
dCYgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q1NTOjpDU1NTdHlsZT4mIHJlc3VsdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRSdWxlU2Vs
ZWN0b3IoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVJZCwgY29uc3QgU3Ry
aW5nJiBzZWxlY3RvciwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4m
IHJlc3VsdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjcmVhdGVTdHlsZVNoZWV0KEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBTdHJpbmcqIHN0eWxlU2hlZXRJZCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBhZGRSdWxlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0
SWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpD
U1M6OkNTU1J1bGU+JiByZXN1bHQpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0U3VwcG9ydGVkQ1NT
UHJvcGVydGllcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkNTUzo6Q1NTUHJvcGVydHlJbmZvPj4mIHJlc3VsdCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBnZXRTdXBwb3J0ZWRTeXN0ZW1Gb250RmFtaWx5TmFtZXMoRXJyb3JTdHJpbmcmLCBSZWZQ
dHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIGZv
cmNlUHNldWRvU3RhdGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBKU09OOjpBcnJh
eSYgZm9yY2VkUHNldWRvQ2xhc3Nlcykgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JTdHls
ZVNoZWV0OjpMaXN0ZW5lcgotICAgIHZvaWQgc3R5bGVTaGVldENoYW5nZWQoSW5zcGVjdG9yU3R5
bGVTaGVldCopOworICAgIHZvaWQgc3R5bGVTaGVldENoYW5nZWQoSW5zcGVjdG9yU3R5bGVTaGVl
dCopIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9p
ZCBkb2N1bWVudERldGFjaGVkKERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKaW5kZXggNjBjNTZlOTZm
YjY1MDE0OWJjN2ViNzg1MmIyNTBiYTc4NmVjYjc2NC4uYTMwYzdmYzQ3OTJjYWRkYWE0YTYwMzli
NWRjMGQwY2I4ZjlmMTcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaApAQCAtNjEsMzIgKzYxLDMyIEBAIGNsYXNz
IEluc3BlY3RvckNhbnZhc0FnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwg
cHVibGljIEluc3BlY3Rvcjo6CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgSW5zcGVjdG9yQ2FudmFzQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1
YWwgfkluc3BlY3RvckNhbnZhc0FnZW50KCk7CisgICAgfkluc3BlY3RvckNhbnZhc0FnZW50KCkg
b3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKLSAgICB2b2lkIGRpc2NhcmRBZ2Vu
dCgpOworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJv
bnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pIG92ZXJyaWRlOworICAgIHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CiAK
ICAgICAvLyBDYW52YXNCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShF
cnJvclN0cmluZyYpOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpOwotICAgIHZvaWQg
cmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBpbnQqIG5v
ZGVJZCk7Ci0gICAgdm9pZCByZXF1ZXN0Q29udGVudChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgY2FudmFzSWQsIFN0cmluZyogY29udGVudCk7Ci0gICAgdm9pZCByZXF1ZXN0Q2xpZW50Tm9k
ZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lkLCBSZWZQdHI8SlNPTjo6QXJy
YXlPZjxpbnQ+PiYpOwotICAgIHZvaWQgcmVzb2x2ZUNvbnRleHQoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGNhbnZhc0lkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYpOwotICAgIHZvaWQgc2V0
UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KEVycm9yU3RyaW5nJiwgaW50IGNvdW50KTsK
LSAgICB2b2lkIHN0YXJ0UmVjb3JkaW5nKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52
YXNJZCwgY29uc3QgaW50KiBmcmFtZUNvdW50LCBjb25zdCBpbnQqIG1lbW9yeUxpbWl0KTsKLSAg
ICB2b2lkIHN0b3BSZWNvcmRpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbnZhc0lk
KTsKLSAgICB2b2lkIHJlcXVlc3RTaGFkZXJTb3VyY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIHByb2dyYW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBTdHJpbmcqIHNvdXJjZSk7
Ci0gICAgdm9pZCB1cGRhdGVTaGFkZXIoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dy
YW1JZCwgY29uc3QgU3RyaW5nJiBzaGFkZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNvdXJjZSk7Ci0g
ICAgdm9pZCBzZXRTaGFkZXJQcm9ncmFtRGlzYWJsZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIHByb2dyYW1JZCwgYm9vbCBkaXNhYmxlZCk7Ci0gICAgdm9pZCBzZXRTaGFkZXJQcm9ncmFt
SGlnaGxpZ2h0ZWQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHByb2dyYW1JZCwgYm9vbCBo
aWdobGlnaHRlZCk7CisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RO
b2RlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCwgaW50KiBub2RlSWQpIG92
ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdENvbnRlbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIGNhbnZhc0lkLCBTdHJpbmcqIGNvbnRlbnQpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVz
dENsaWVudE5vZGVzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCwgUmVmUHRy
PEpTT046OkFycmF5T2Y8aW50Pj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc29sdmVDb250ZXh0
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCwgY29uc3QgU3RyaW5nKiBvYmpl
Y3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVj
dD4mKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3Vu
dChFcnJvclN0cmluZyYsIGludCBjb3VudCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydFJlY29y
ZGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2FudmFzSWQsIGNvbnN0IGludCogZnJh
bWVDb3VudCwgY29uc3QgaW50KiBtZW1vcnlMaW1pdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9w
UmVjb3JkaW5nKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjYW52YXNJZCkgb3ZlcnJpZGU7
CisgICAgdm9pZCByZXF1ZXN0U2hhZGVyU291cmNlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgU3RyaW5nKiBzb3VyY2UpIG92
ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlU2hhZGVyKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBwcm9ncmFtSWQsIGNvbnN0IFN0cmluZyYgc2hhZGVyVHlwZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2UpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbURpc2FibGVkKEVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgZGlzYWJsZWQpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc2V0U2hhZGVyUHJvZ3JhbUhpZ2hsaWdodGVkKEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBwcm9ncmFtSWQsIGJvb2wgaGlnaGxpZ2h0ZWQpIG92ZXJyaWRlOwogCiAgICAgLy8g
Q2FudmFzT2JzZXJ2ZXIKLSAgICB2b2lkIGNhbnZhc0NoYW5nZWQoQ2FudmFzQmFzZSYsIGNvbnN0
IEZsb2F0UmVjdCYpOwotICAgIHZvaWQgY2FudmFzUmVzaXplZChDYW52YXNCYXNlJikgeyB9Ci0g
ICAgdm9pZCBjYW52YXNEZXN0cm95ZWQoQ2FudmFzQmFzZSYpOworICAgIHZvaWQgY2FudmFzQ2hh
bmdlZChDYW52YXNCYXNlJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBj
YW52YXNSZXNpemVkKENhbnZhc0Jhc2UmKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGNhbnZhc0Rl
c3Ryb3llZChDYW52YXNCYXNlJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24KICAgICB2b2lkIGZyYW1lTmF2aWdhdGVkKEZyYW1lJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggMDM0
ZTFlZjQ3MTU4MWY0NzFiZmY4MjhiNWQxMzZjZjczOTYxMmM0Yi4uZjM0OTk0ZTY3YTJhYjgxYmE1
OGM4MjE2ZTgyMDI0M2E3MmNjZThmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtODMsNyArODMsNyBAQCBjbGFzcyBJ
bnNwZWN0b3JET01BZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1Ymxp
YyBJbnNwZWN0b3I6OkRPTQogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIEluc3BlY3RvckRPTUFnZW50KFBhZ2VBZ2VudENvbnRleHQmLCBJbnNwZWN0b3JPdmVybGF5
Kik7Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yRE9NQWdlbnQoKTsKKyAgICB+SW5zcGVjdG9yRE9N
QWdlbnQoKSBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBTdHJpbmcgdG9FcnJvclN0cmluZyhFeGNl
cHRpb25Db2RlKTsKICAgICBzdGF0aWMgU3RyaW5nIHRvRXJyb3JTdHJpbmcoRXhjZXB0aW9uJiYp
OwpAQCAtMTAyLDUyICsxMDIsNTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
bm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBOb2RlKik7CiAKICAgICAvLyBJbnNw
ZWN0b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNw
ZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOwot
ICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKTsKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJy
aWRlOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpE
aXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vIERPTUJhY2tlbmREaXNwYXRjaGVy
SGFuZGxlcgotICAgIHZvaWQgcXVlcnlTZWxlY3RvcihFcnJvclN0cmluZyYsIGludCBub2RlSWQs
IGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBpbnQqIGVsZW1lbnRJZCk7Ci0gICAgdm9pZCBxdWVy
eVNlbGVjdG9yQWxsKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxl
Y3RvcnMsIFJlZlB0cjxKU09OOjpBcnJheU9mPGludD4+JiByZXN1bHQpOwotICAgIHZvaWQgZ2V0
RG9jdW1lbnQoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpO
b2RlPiYgcm9vdCk7Ci0gICAgdm9pZCByZXF1ZXN0Q2hpbGROb2RlcyhFcnJvclN0cmluZyYsIGlu
dCBub2RlSWQsIGNvbnN0IGludCogZGVwdGgpOwotICAgIHZvaWQgc2V0QXR0cmlidXRlVmFsdWUo
RXJyb3JTdHJpbmcmLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUpOwotICAgIHZvaWQgc2V0QXR0cmlidXRlc0FzVGV4dChFcnJvclN0cmluZyYs
IGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nKiBuYW1lKTsK
LSAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShFcnJvclN0cmluZyYsIGludCBlbGVtZW50SWQsIGNv
bnN0IFN0cmluZyYgbmFtZSk7Ci0gICAgdm9pZCByZW1vdmVOb2RlKEVycm9yU3RyaW5nJiwgaW50
IG5vZGVJZCk7Ci0gICAgdm9pZCBzZXROb2RlTmFtZShFcnJvclN0cmluZyYsIGludCBub2RlSWQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgaW50KiBuZXdJZCk7Ci0gICAgdm9pZCBnZXRPdXRlckhUTUwo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBXVEY6OlN0cmluZyogb3V0ZXJIVE1MKTsKLSAgICB2
b2lkIHNldE91dGVySFRNTChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYg
b3V0ZXJIVE1MKTsKLSAgICB2b2lkIGluc2VydEFkamFjZW50SFRNTChFcnJvclN0cmluZyYsIGlu
dCBub2RlSWQsIGNvbnN0IFN0cmluZyYgcG9zaXRpb24sIGNvbnN0IFN0cmluZyYgaHRtbCk7Ci0g
ICAgdm9pZCBzZXROb2RlVmFsdWUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJp
bmcmIHZhbHVlKTsKLSAgICB2b2lkIGdldFN1cHBvcnRlZEV2ZW50TmFtZXMoRXJyb3JTdHJpbmcm
LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgZXZlbnROYW1lcyk7Ci0gICAgdm9pZCBn
ZXREYXRhQmluZGluZ3NGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpT
T046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpEYXRhQmluZGluZz4+JiBkYXRh
QXJyYXkpOwotICAgIHZvaWQgZ2V0QXNzb2NpYXRlZERhdGFGb3JOb2RlKEVycm9yU3RyaW5nJiwg
aW50IG5vZGVJZCwgT3B0aW9uYWw8U3RyaW5nPiYgYXNzb2NpYXRlZERhdGEpOwotICAgIHZvaWQg
Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRy
PEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVudExpc3RlbmVyPj4m
IGxpc3RlbmVyc0FycmF5KTsKLSAgICB2b2lkIHNldEV2ZW50TGlzdGVuZXJEaXNhYmxlZChFcnJv
clN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQsIGJvb2wgZGlzYWJsZWQpOwotICAgIHZvaWQg
c2V0QnJlYWtwb2ludEZvckV2ZW50TGlzdGVuZXIoRXJyb3JTdHJpbmcmLCBpbnQgZXZlbnRMaXN0
ZW5lcklkKTsKLSAgICB2b2lkIHJlbW92ZUJyZWFrcG9pbnRGb3JFdmVudExpc3RlbmVyKEVycm9y
U3RyaW5nJiwgaW50IGV2ZW50TGlzdGVuZXJJZCk7Ci0gICAgdm9pZCBnZXRBY2Nlc3NpYmlsaXR5
UHJvcGVydGllc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6RE9NOjpBY2Nlc3NpYmlsaXR5UHJvcGVydGllcz4mIGF4UHJvcGVydGll
cyk7Ci0gICAgdm9pZCBwZXJmb3JtU2VhcmNoKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBx
dWVyeSwgY29uc3QgSlNPTjo6QXJyYXkqIG5vZGVJZHMsIGNvbnN0IGJvb2wqIGNhc2VTZW5zaXRp
dmUsIFN0cmluZyogc2VhcmNoSWQsIGludCogcmVzdWx0Q291bnQpOwotICAgIHZvaWQgZ2V0U2Vh
cmNoUmVzdWx0cyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc2VhcmNoSWQsIGludCBmcm9t
SW5kZXgsIGludCB0b0luZGV4LCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxpbnQ+PiYpOwotICAgIHZv
aWQgZGlzY2FyZFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHNlYXJj
aElkKTsKLSAgICB2b2lkIHJlc29sdmVOb2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29u
c3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRp
bWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCk7Ci0gICAgdm9pZCBnZXRBdHRyaWJ1dGVzKEVycm9y
U3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8U3RyaW5nPj4mIHJlc3Vs
dCk7Ci0gICAgdm9pZCBzZXRJbnNwZWN0TW9kZUVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGVu
YWJsZWQsIGNvbnN0IEpTT046Ok9iamVjdCogaGlnaGxpZ2h0Q29uZmlnLCBjb25zdCBib29sKiBz
aG93UnVsZXJzKTsKLSAgICB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpOwotICAgIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zy
b250ZW5kKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5vZGVJZCk7Ci0g
ICAgdm9pZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBoaWdobGlnaHRS
ZWN0KEVycm9yU3RyaW5nJiwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGNv
bnN0IEpTT046Ok9iamVjdCogY29sb3IsIGNvbnN0IEpTT046Ok9iamVjdCogb3V0bGluZUNvbG9y
LCBjb25zdCBib29sKiB1c2VQYWdlQ29vcmRpbmF0ZXMpOwotICAgIHZvaWQgaGlnaGxpZ2h0UXVh
ZChFcnJvclN0cmluZyYsIGNvbnN0IEpTT046OkFycmF5JiBxdWFkLCBjb25zdCBKU09OOjpPYmpl
Y3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xvciwgY29uc3QgYm9vbCog
dXNlUGFnZUNvb3JkaW5hdGVzKTsKLSAgICB2b2lkIGhpZ2hsaWdodFNlbGVjdG9yKEVycm9yU3Ry
aW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGlnaHRDb25maWcsIGNvbnN0IFN0cmluZyYg
c2VsZWN0b3JTdHJpbmcsIGNvbnN0IFN0cmluZyogZnJhbWVJZCk7Ci0gICAgdm9pZCBoaWdobGln
aHROb2RlKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGlnaHRDb25maWcs
IGNvbnN0IGludCogbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdElkKTsKLSAgICB2b2lkIGhp
Z2hsaWdodE5vZGVMaXN0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkmIG5vZGVJZHMs
IGNvbnN0IEpTT046Ok9iamVjdCYgaGlnaGxpZ2h0Q29uZmlnKTsKLSAgICB2b2lkIGhpZ2hsaWdo
dEZyYW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBKU09OOjpP
YmplY3QqIGNvbG9yLCBjb25zdCBKU09OOjpPYmplY3QqIG91dGxpbmVDb2xvcik7Ci0gICAgdm9p
ZCBtb3ZlVG8oRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBpbnQgdGFyZ2V0Tm9kZUlkLCBjb25z
dCBpbnQqIGFuY2hvck5vZGVJZCwgaW50KiBuZXdOb2RlSWQpOwotICAgIHZvaWQgdW5kbyhFcnJv
clN0cmluZyYpOwotICAgIHZvaWQgcmVkbyhFcnJvclN0cmluZyYpOwotICAgIHZvaWQgbWFya1Vu
ZG9hYmxlU3RhdGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGZvY3VzKEVycm9yU3RyaW5nJiwg
aW50IG5vZGVJZCk7Ci0gICAgdm9pZCBzZXRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nJiwgaW50
IG5vZGVJZCk7CisgICAgdm9pZCBxdWVyeVNlbGVjdG9yKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJ
ZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIGludCogZWxlbWVudElkKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHF1ZXJ5U2VsZWN0b3JBbGwoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBT
dHJpbmcmIHNlbGVjdG9ycywgUmVmUHRyPEpTT046OkFycmF5T2Y8aW50Pj4mIHJlc3VsdCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBnZXREb2N1bWVudChFcnJvclN0cmluZyYsIFJlZlB0cjxJbnNwZWN0
b3I6OlByb3RvY29sOjpET006Ok5vZGU+JiByb290KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVl
c3RDaGlsZE5vZGVzKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgaW50KiBkZXB0aCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRBdHRyaWJ1dGVWYWx1ZShFcnJvclN0cmluZyYsIGludCBl
bGVtZW50SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRBdHRyaWJ1dGVzQXNUZXh0KEVycm9yU3RyaW5nJiwgaW50IGVsZW1l
bnRJZCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcqIG5hbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKEVycm9yU3RyaW5nJiwgaW50IGVsZW1lbnRJZCwgY29u
c3QgU3RyaW5nJiBuYW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbW92ZU5vZGUoRXJyb3JTdHJp
bmcmLCBpbnQgbm9kZUlkKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldE5vZGVOYW1lKEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQqIG5ld0lkKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGdldE91dGVySFRNTChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFdURjo6
U3RyaW5nKiBvdXRlckhUTUwpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0T3V0ZXJIVE1MKEVycm9y
U3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBvdXRlckhUTUwpIG92ZXJyaWRlOwor
ICAgIHZvaWQgaW5zZXJ0QWRqYWNlbnRIVE1MKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29u
c3QgU3RyaW5nJiBwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiBodG1sKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldE5vZGVWYWx1ZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYg
dmFsdWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0U3VwcG9ydGVkRXZlbnROYW1lcyhFcnJvclN0
cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPFN0cmluZz4+JiBldmVudE5hbWVzKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGdldERhdGFCaW5kaW5nc0Zvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9k
ZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkRhdGFC
aW5kaW5nPj4mIGRhdGFBcnJheSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRBc3NvY2lhdGVkRGF0
YUZvck5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBPcHRpb25hbDxTdHJpbmc+JiBhc3Nv
Y2lhdGVkRGF0YSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUo
RXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpET006OkV2ZW50TGlzdGVuZXI+PiYgbGlzdGVuZXJzQXJyYXkpIG92ZXJyaWRl
OworICAgIHZvaWQgc2V0RXZlbnRMaXN0ZW5lckRpc2FibGVkKEVycm9yU3RyaW5nJiwgaW50IGV2
ZW50TGlzdGVuZXJJZCwgYm9vbCBkaXNhYmxlZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRCcmVh
a3BvaW50Rm9yRXZlbnRMaXN0ZW5lcihFcnJvclN0cmluZyYsIGludCBldmVudExpc3RlbmVySWQp
IG92ZXJyaWRlOworICAgIHZvaWQgcmVtb3ZlQnJlYWtwb2ludEZvckV2ZW50TGlzdGVuZXIoRXJy
b3JTdHJpbmcmLCBpbnQgZXZlbnRMaXN0ZW5lcklkKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldEFj
Y2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzPiYg
YXhQcm9wZXJ0aWVzKSBvdmVycmlkZTsKKyAgICB2b2lkIHBlcmZvcm1TZWFyY2goRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBKU09OOjpBcnJheSogbm9kZUlkcywgY29u
c3QgYm9vbCogY2FzZVNlbnNpdGl2ZSwgU3RyaW5nKiBzZWFyY2hJZCwgaW50KiByZXN1bHRDb3Vu
dCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBzZWFyY2hJZCwgaW50IGZyb21JbmRleCwgaW50IHRvSW5kZXgsIFJlZlB0cjxK
U09OOjpBcnJheU9mPGludD4+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNjYXJkU2VhcmNoUmVz
dWx0cyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc2VhcmNoSWQpIG92ZXJyaWRlOworICAg
IHZvaWQgcmVzb2x2ZU5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcq
IG9iamVjdEdyb3VwLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3Rl
T2JqZWN0PiYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIGdldEF0dHJpYnV0ZXMoRXJyb3JT
dHJpbmcmLCBpbnQgbm9kZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgcmVzdWx0
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEluc3BlY3RNb2RlRW5hYmxlZChFcnJvclN0cmluZyYs
IGJvb2wgZW5hYmxlZCwgY29uc3QgSlNPTjo6T2JqZWN0KiBoaWdobGlnaHRDb25maWcsIGNvbnN0
IGJvb2wqIHNob3dSdWxlcnMpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdE5vZGUoRXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBpbnQqIG5vZGVJZCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIHBhdGgsIGludCogbm9kZUlkKSBvdmVycmlkZTsKKyAgICB2b2lkIGhpZGVIaWdobGlnaHQo
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGhpZ2hsaWdodFJlY3QoRXJyb3JTdHJp
bmcmLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgY29uc3QgSlNPTjo6T2Jq
ZWN0KiBjb2xvciwgY29uc3QgSlNPTjo6T2JqZWN0KiBvdXRsaW5lQ29sb3IsIGNvbnN0IGJvb2wq
IHVzZVBhZ2VDb29yZGluYXRlcykgb3ZlcnJpZGU7CisgICAgdm9pZCBoaWdobGlnaHRRdWFkKEVy
cm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkmIHF1YWQsIGNvbnN0IEpTT046Ok9iamVjdCog
Y29sb3IsIGNvbnN0IEpTT046Ok9iamVjdCogb3V0bGluZUNvbG9yLCBjb25zdCBib29sKiB1c2VQ
YWdlQ29vcmRpbmF0ZXMpIG92ZXJyaWRlOworICAgIHZvaWQgaGlnaGxpZ2h0U2VsZWN0b3IoRXJy
b3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIGhpZ2hsaWdodENvbmZpZywgY29uc3QgU3Ry
aW5nJiBzZWxlY3RvclN0cmluZywgY29uc3QgU3RyaW5nKiBmcmFtZUlkKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGhpZ2hsaWdodE5vZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIGhp
Z2hsaWdodENvbmZpZywgY29uc3QgaW50KiBub2RlSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0SWQp
IG92ZXJyaWRlOworICAgIHZvaWQgaGlnaGxpZ2h0Tm9kZUxpc3QoRXJyb3JTdHJpbmcmLCBjb25z
dCBKU09OOjpBcnJheSYgbm9kZUlkcywgY29uc3QgSlNPTjo6T2JqZWN0JiBoaWdobGlnaHRDb25m
aWcpIG92ZXJyaWRlOworICAgIHZvaWQgaGlnaGxpZ2h0RnJhbWUoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IEpTT046Ok9iamVjdCogY29sb3IsIGNvbnN0IEpTT046
Ok9iamVjdCogb3V0bGluZUNvbG9yKSBvdmVycmlkZTsKKyAgICB2b2lkIG1vdmVUbyhFcnJvclN0
cmluZyYsIGludCBub2RlSWQsIGludCB0YXJnZXROb2RlSWQsIGNvbnN0IGludCogYW5jaG9yTm9k
ZUlkLCBpbnQqIG5ld05vZGVJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmRvKEVycm9yU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCByZWRvKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBtYXJrVW5kb2FibGVTdGF0ZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQg
Zm9jdXMoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldElu
c3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkKSBvdmVycmlkZTsKIAogICAgIC8v
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIGludCBpZGVudGlmaWVyRm9yTm9kZShOb2Rl
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCmluZGV4IDM3ZTY3ZTRiMzE0MjQzOGU0N2RiNzkzNDE4
ZWJjM2NhMTJlNzNkMzIuLjAxZTNiZGNmMDA0YWU2NDBkZmE5NjNmZjlhNTRjMzVkMmFlY2QwNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC01MywxMiArNTMsMTIgQEAgY2xhc3MgSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJ
bnNwZWN0b3I6OkQKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JET01EZWJ1Z2dl
ckFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KCk7CisgICAgfkluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIq
LCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKik7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pOwotICAgIHZvaWQg
ZGlzY2FyZEFnZW50KCk7CisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBv
dmVycmlkZTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNjYXJkQWdlbnQoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIGNvbnN0OwogCiAgICAgLy8gRE9N
RGVidWdnZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKQEAgLTY4LDggKzY4LDggQEAgcHVibGlj
OgogICAgIHZvaWQgcmVtb3ZlRXZlbnRCcmVha3BvaW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBicmVha3BvaW50VHlwZSwgY29uc3QgU3RyaW5nKiBldmVudE5hbWUpIGZpbmFsOwogCiAg
ICAgLy8gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVuZXIKLSAgICB2b2lkIGRlYnVnZ2Vy
V2FzRW5hYmxlZCgpOwotICAgIHZvaWQgZGVidWdnZXJXYXNEaXNhYmxlZCgpOworICAgIHZvaWQg
ZGVidWdnZXJXYXNFbmFibGVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWJ1Z2dlcldhc0Rpc2Fi
bGVkKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2
b2lkIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmgKaW5kZXggZGMxYTk5YThjNDM2YWVkYzBlZGI3MWVjYTgyNzZjN2NjN2U4MzQ2OC4u
YjU3ODY2MGZiYjNjZTE3NmU0ZTBhZWI1YTIyMDIxZGM4ODBlNDdmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudC5oCkBAIC01MiwxOCArNTIsMTggQEAgY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3QKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudCgpOworICAgIH5JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoKSBvdmVycmlkZTsKIAog
ICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNw
YXRjaGVyKik7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkRpc2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gRE9NU3RvcmFn
ZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7
Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBnZXRET01TdG9yYWdl
SXRlbXMoRXJyb3JTdHJpbmcmLCBjb25zdCBKU09OOjpPYmplY3QmIHN0b3JhZ2VJZCwgUmVmUHRy
PEpTT046OkFycmF5T2Y8SlNPTjo6QXJyYXlPZjxTdHJpbmc+Pj4mIGl0ZW1zKTsKLSAgICB2b2lk
IHNldERPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBzdG9y
YWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKLSAgICB2b2lk
IHJlbW92ZURPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2JqZWN0JiBz
dG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5KTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0RE9NU3RvcmFnZUl0ZW1zKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6T2Jq
ZWN0JiBzdG9yYWdlSWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEpTT046OkFycmF5T2Y8U3RyaW5n
Pj4+JiBpdGVtcykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRET01TdG9yYWdlSXRlbShFcnJvclN0
cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCByZW1vdmVET01TdG9yYWdl
SXRlbShFcnJvclN0cmluZyYsIGNvbnN0IEpTT046Ok9iamVjdCYgc3RvcmFnZUlkLCBjb25zdCBT
dHJpbmcmIGtleSkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24K
ICAgICB2b2lkIGRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlw
ZSwgU2VjdXJpdHlPcmlnaW4qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXggMmRlYmEzMTkwZTg4OGE3
NWE1OGI4YzIwMDljMjE5MTk2NjIzZTY1Yi4uNDMwNTAzMTkxY2RjYjk4NzlmZGI2NTUxMzljMTRi
Yjc3YTczNzQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKQEAgLTQ4LDE3ICs0OCwxNyBAQCBjbGFzcyBJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwg
cHVibGljIEluc3BlY3RvcgogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIEluc3BlY3RvckRhdGFiYXNlQWdlbnQoV2ViQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVh
bCB+SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgpOworICAgIH5JbnNwZWN0b3JEYXRhYmFzZUFnZW50
KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVj
dG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKyAgICB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwgSW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKIAog
ICAgIC8vIERhdGFiYXNlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUo
RXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lk
IGdldERhdGFiYXNlVGFibGVOYW1lcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8U3RyaW5nPj4mIG5hbWVzKTsKLSAgICB2b2lkIGV4
ZWN1dGVTUUwoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBS
ZWY8RXhlY3V0ZVNRTENhbGxiYWNrPiYmKTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZvaWQgZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZUlkLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxTdHJpbmc+PiYgbmFtZXMpIG92ZXJyaWRl
OworICAgIHZvaWQgZXhlY3V0ZVNRTChjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWQsIGNvbnN0IFN0
cmluZyYgcXVlcnksIFJlZjxFeGVjdXRlU1FMQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkaWRDb21taXRMb2FkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4
ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IDlmZGY5MGIwNjlmMTU1YWRiN2M3MzNhNWY5NWRmYWQ3
MTYxYjIwYWUuLmJkYWU1NWQwNTkzOWE1ZjhkNjZlYjQ4OTdkYTEzOTJhY2NhNTBlYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCkBAIC0yMjIsNyArMjIyLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRhYmFzZUxvYWRlcihjb250ZXh0LCBXVEZNb3ZlKHJlcXVl
c3RDYWxsYmFjaykpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5EYXRhYmFzZUxvYWRlcigpID0g
ZGVmYXVsdDsKKyAgICB+RGF0YWJhc2VMb2FkZXIoKSBvdmVycmlkZSA9IGRlZmF1bHQ7CiAKICAg
ICB2b2lkIGV4ZWN1dGUoSURCRGF0YWJhc2UmIGRhdGFiYXNlKSBvdmVycmlkZQogICAgIHsKQEAg
LTM1Niw3ICszNTYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9w
ZW5DdXJzb3JDYWxsYmFjayhpbmplY3RlZFNjcmlwdCwgV1RGTW92ZShyZXF1ZXN0Q2FsbGJhY2sp
LCBza2lwQ291bnQsIHBhZ2VTaXplKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+T3BlbkN1cnNv
ckNhbGxiYWNrKCkgPSBkZWZhdWx0OworICAgIH5PcGVuQ3Vyc29yQ2FsbGJhY2soKSBvdmVycmlk
ZSA9IGRlZmF1bHQ7CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYg
b3RoZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YUxvYWRlcihjb250ZXh0LCBXVEZNb3Zl
KHJlcXVlc3RDYWxsYmFjayksIGluamVjdGVkU2NyaXB0LCBvYmplY3RTdG9yZU5hbWUsIGluZGV4
TmFtZSwgV1RGTW92ZShpZGJLZXlSYW5nZSksIHNraXBDb3VudCwgcGFnZVNpemUpKTsKICAgICB9
CiAKLSAgICB2aXJ0dWFsIH5EYXRhTG9hZGVyKCkgPSBkZWZhdWx0OworICAgIH5EYXRhTG9hZGVy
KCkgb3ZlcnJpZGUgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBleGVjdXRlKElEQkRhdGFiYXNlJiBk
YXRhYmFzZSkgb3ZlcnJpZGUKICAgICB7CkBAIC02NTEsNyArNjUxLDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDbGVhck9iamVjdFN0b3JlTGlzdGVuZXIoV1RGTW92
ZShyZXF1ZXN0Q2FsbGJhY2spKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+Q2xlYXJPYmplY3RT
dG9yZUxpc3RlbmVyKCkgPSBkZWZhdWx0OworICAgIH5DbGVhck9iamVjdFN0b3JlTGlzdGVuZXIo
KSBvdmVycmlkZSA9IGRlZmF1bHQ7CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRM
aXN0ZW5lciYgb3RoZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCmlu
ZGV4IGI0OWUwYzBlNDczNDU0MDQ0ZDk3MDVlYTcwMTc4MDY4OTVlZmQ2YWQuLmRiMjk3YmQ5Y2Rh
OGRhNmMwNDdhYjgyZmYzNTBhMmY0ZjU3NDhmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKQEAgLTUy
LDE5ICs1MiwxOSBAQCBjbGFzcyBJbnNwZWN0b3JJbmRleGVkREJBZ2VudCBmaW5hbCA6IHB1Ymxp
YyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0bwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIEluc3BlY3RvckluZGV4ZWREQkFnZW50KFBhZ2VBZ2Vu
dENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JJbmRleGVkREJBZ2VudCgpOworICAg
IH5JbnNwZWN0b3JJbmRleGVkREJBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9y
QWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKLSAgICB2
b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
YXNvbik7CisgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpG
cm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsK
KyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBJbmRleGVkREJCYWNrZW5kRGlzcGF0Y2hl
ckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOwotICAgIHZvaWQgZGlzYWJs
ZShFcnJvclN0cmluZyYpOwotICAgIHZvaWQgcmVxdWVzdERhdGFiYXNlTmFtZXMoY29uc3QgU3Ry
aW5nJiBzZWN1cml0eU9yaWdpbiwgUmVmPFJlcXVlc3REYXRhYmFzZU5hbWVzQ2FsbGJhY2s+JiYp
OwotICAgIHZvaWQgcmVxdWVzdERhdGFiYXNlKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBSZWY8UmVxdWVzdERhdGFiYXNlQ2FsbGJhY2s+
JiYpOwotICAgIHZvaWQgcmVxdWVzdERhdGEoY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1l
LCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSwgaW50IHNraXBDb3VudCwgaW50IHBhZ2VTaXplLCBj
b25zdCBKU09OOjpPYmplY3QqIGtleVJhbmdlLCBSZWY8UmVxdWVzdERhdGFDYWxsYmFjaz4mJik7
Ci0gICAgdm9pZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFt
ZSwgUmVmPENsZWFyT2JqZWN0U3RvcmVDYWxsYmFjaz4mJik7CisgICAgdm9pZCBlbmFibGUoRXJy
b3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHJlcXVlc3REYXRhYmFzZU5hbWVzKGNvbnN0IFN0cmluZyYgc2VjdXJp
dHlPcmlnaW4sIFJlZjxSZXF1ZXN0RGF0YWJhc2VOYW1lc0NhbGxiYWNrPiYmKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlcXVlc3REYXRhYmFzZShjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLCBj
b25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgUmVmPFJlcXVlc3REYXRhYmFzZUNhbGxiYWNrPiYm
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3REYXRhKGNvbnN0IFN0cmluZyYgc2VjdXJpdHlP
cmlnaW4sIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0
b3JlTmFtZSwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUsIGludCBza2lwQ291bnQsIGludCBwYWdl
U2l6ZSwgY29uc3QgSlNPTjo6T2JqZWN0KiBrZXlSYW5nZSwgUmVmPFJlcXVlc3REYXRhQ2FsbGJh
Y2s+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJPYmplY3RTdG9yZShjb25zdCBTdHJpbmcm
IHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5n
JiBvYmplY3RTdG9yZU5hbWUsIFJlZjxDbGVhck9iamVjdFN0b3JlQ2FsbGJhY2s+JiYpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgogICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBt
X2luamVjdGVkU2NyaXB0TWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaAppbmRleCAzYTA2Mjk3ZGIy
ZjY0YzIyZmQ5MDIyOTIzODk1MWE3ODdlNmE4Y2E2Li44NzIzNTgwYzY1MzAxMGUxZWVhNjBkNDBl
OWNkOWQ3MzIzNThkOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oCkBAIC00OSwxNyArNDksMTcgQEAg
Y2xhc3MgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdl
bnRCYXNlLCBwdWJsaWMgSW5zcGVjdG8KICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBJbnNwZWN0b3JMYXllclRyZWVBZ2VudChXZWJBZ2VudENvbnRleHQmKTsKLSAg
ICB2aXJ0dWFsIH5JbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpOworICAgIH5JbnNwZWN0b3JMYXll
clRyZWVBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCi0gICAg
dm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRl
ciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKTsKLSAgICB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CisgICAgdm9p
ZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlcios
IEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3Zl
cnJpZGU7CiAKICAgICAvLyBMYXllclRyZWVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2
b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYp
OwotICAgIHZvaWQgbGF5ZXJzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0
cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkxheWVyVHJlZTo6TGF5ZXI+PiYp
OwotICAgIHZvaWQgcmVhc29uc0ZvckNvbXBvc2l0aW5nTGF5ZXIoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGxheWVySWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpMYXllclRyZWU6
OkNvbXBvc2l0aW5nUmVhc29ucz4mKTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZv
aWQgbGF5ZXJzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFJlZlB0cjxKU09OOjpB
cnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkxheWVyVHJlZTo6TGF5ZXI+PiYpIG92ZXJyaWRl
OworICAgIHZvaWQgcmVhc29uc0ZvckNvbXBvc2l0aW5nTGF5ZXIoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIGxheWVySWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpMYXllclRyZWU6
OkNvbXBvc2l0aW5nUmVhc29ucz4mKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbgogICAgIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKaW5k
ZXggZjMxMmNmYzhkMWJmNDIxMjA5OTI3MTViODE1MTA3OWUxYzdjMDdmYS4uYzQ0NzcyZGJlYWJm
OTExNGNmYTQ0N2ZlOTZlODRlM2QyYjUyNjI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JNZW1vcnlBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaApAQCAtNDIsMTcgKzQy
LDE3IEBAIGNsYXNzIEluc3BlY3Rvck1lbW9yeUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rv
ckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yTWVtb3J5QWdlbnQoUGFnZUFnZW50Q29udGV4dCYp
OwotICAgIHZpcnR1YWwgfkluc3BlY3Rvck1lbW9yeUFnZW50KCk7CisgICAgfkluc3BlY3Rvck1l
bW9yeUFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVy
KiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKyAgICB2b2lk
IGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwg
SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVy
cmlkZTsKIAogICAgIC8vIE1lbW9yeUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQg
ZW5hYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7Ci0g
ICAgdm9pZCBzdGFydFRyYWNraW5nKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBzdG9wVHJhY2tp
bmcoRXJyb3JTdHJpbmcmKTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgc3Rh
cnRUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcFRyYWNraW5n
KEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24KICAgICB2b2lkIGRpZEhhbmRsZU1lbW9yeVByZXNzdXJlKENyaXRpY2FsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0Fn
ZW50LmNwcAppbmRleCA2YWFiM2IyZTA1MTcxZGFmNmI5MzAwOTI0ODY2NWNjNGI3OTk0MzE2Li5l
OTI0YjQ4Nzc2ZjcyNmYxNDFlM2JhYmZhZWI1NTM4NTcwZDRkZjNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQu
Y3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgPSBkZWZhdWx0OworICAgIH5J
bnNwZWN0b3JUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgb3ZlcnJpZGUgPSBkZWZhdWx0OwogCiAg
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpIG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmgKaW5kZXggMGI5
ZDlkYmUxMTllMmEzMTI3YjI0N2QzN2Y1Mzc0NGFkOTc4OGE3Ny4uMzFlZjVlMzQyZGZjZjI3ZGI0
MmQ3ZjMyNjBjZjcxY2MzOTQxMDgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCkBAIC02OCw3ICs2OCw3IEBA
IGNsYXNzIEluc3BlY3Rvck5ldHdvcmtBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2Us
IHB1YmxpYyBJbnNwZWN0b3I6Ok5ldHdvCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVj
dG9yTmV0d29ya0FnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JOZXR3b3JrQWdlbnQoKTsKKyAgICB+SW5zcGVjdG9yTmV0
d29ya0FnZW50KCkgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdEFzVGV4
dChjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKICAgICBzdGF0aWMgUmVmPFRleHRSZXNvdXJjZURl
Y29kZXI+IGNyZWF0ZVRleHREZWNvZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0
cmluZyYgdGV4dEVuY29kaW5nTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCBjNDYwZGExMGZiZjY4NzY3ZTJm
YzAzZDFkZjYwNDllMTIxMDRkY2NhLi44Yzc4NmVjMjk4ZDY0ZDFjMDNiODMzMTExMjEwNzhlYTQ4
YzRmZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclBhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmgKQEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgSW5zcGVjdG9yUGFnZUFn
ZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6
UGEKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JQ
YWdlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYsIEluc3BlY3RvckNsaWVudCosIEluc3BlY3Rvck92
ZXJsYXkqKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JQYWdlQWdlbnQoKTsKKyAgICB+SW5zcGVj
dG9yUGFnZUFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICBlbnVtIFJlc291cmNlVHlwZSB7CiAgICAg
ICAgIERvY3VtZW50UmVzb3VyY2UsCkBAIC04OSwzMSArODksMzEgQEAgcHVibGljOgogICAgIHN0
YXRpYyBEb2N1bWVudExvYWRlciogYXNzZXJ0RG9jdW1lbnRMb2FkZXIoRXJyb3JTdHJpbmcmLCBG
cmFtZSopOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXIqKTsKLSAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbik7CisgICAgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFj
a2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICAv
LyBQYWdlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBlbmFibGUoRXJyb3JTdHJp
bmcmKTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIHJlbG9hZChF
cnJvclN0cmluZyYsIGNvbnN0IGJvb2wqIG9wdGlvbmFsUmVsb2FkRnJvbU9yaWdpbiwgY29uc3Qg
Ym9vbCogb3B0aW9uYWxSZXZhbGlkYXRlQWxsUmVzb3VyY2VzKTsKLSAgICB2b2lkIG5hdmlnYXRl
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHZvaWQgb3ZlcnJpZGVVc2Vy
QWdlbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcqIHZhbHVlKTsKLSAgICB2b2lkIG92ZXJy
aWRlU2V0dGluZyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc2V0dGluZywgY29uc3QgYm9v
bCogdmFsdWUpOwotICAgIHZvaWQgZ2V0Q29va2llcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09O
OjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OkNvb2tpZT4+JiBjb29raWVzKTsK
LSAgICB2b2lkIGRlbGV0ZUNvb2tpZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY29va2ll
TmFtZSwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHZvaWQgZ2V0UmVzb3VyY2VUcmVlKEVycm9y
U3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OkZyYW1lUmVzb3VyY2VU
cmVlPiYpOwotICAgIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwgU3RyaW5nKiBjb250ZW50LCBib29s
KiBiYXNlNjRFbmNvZGVkKTsKLSAgICB2b2lkIHNlYXJjaEluUmVzb3VyY2UoRXJyb3JTdHJpbmcm
LCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcm
IHF1ZXJ5LCBjb25zdCBib29sKiBvcHRpb25hbENhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIG9w
dGlvbmFsSXNSZWdleCwgY29uc3QgU3RyaW5nKiBvcHRpb25hbFJlcXVlc3RJZCwgUmVmUHRyPEpT
T046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6R2VuZXJpY1R5cGVzOjpTZWFyY2hNYXRj
aD4+Jik7Ci0gICAgdm9pZCBzZWFyY2hJblJlc291cmNlcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IGJvb2wqIGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGlzUmVnZXgsIFJl
ZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OlNlYXJjaFJlc3Vs
dD4+Jik7Ci0gICAgdm9pZCBzZXRTaG93UnVsZXJzKEVycm9yU3RyaW5nJiwgYm9vbCk7Ci0gICAg
dm9pZCBzZXRTaG93UGFpbnRSZWN0cyhFcnJvclN0cmluZyYsIGJvb2wgc2hvdyk7Ci0gICAgdm9p
ZCBzZXRFbXVsYXRlZE1lZGlhKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9p
ZCBzZXRGb3JjZWRBcHBlYXJhbmNlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7Ci0gICAg
dm9pZCBnZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nJiwgYm9vbCogb3V0
X3BhcmFtKTsKLSAgICB2b2lkIHNldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoRXJyb3JTdHJp
bmcmLCBib29sKTsKLSAgICB2b2lkIHNuYXBzaG90Tm9kZShFcnJvclN0cmluZyYsIGludCBub2Rl
SWQsIFN0cmluZyogb3V0RGF0YVVSTCk7Ci0gICAgdm9pZCBzbmFwc2hvdFJlY3QoRXJyb3JTdHJp
bmcmLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgY29uc3QgU3RyaW5nJiBj
b29yZGluYXRlU3lzdGVtLCBTdHJpbmcqIG91dERhdGFVUkwpOwotICAgIHZvaWQgYXJjaGl2ZShF
cnJvclN0cmluZyYsIFN0cmluZyogZGF0YSk7CisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHJlbG9hZChFcnJvclN0cmluZyYsIGNvbnN0IGJvb2wqIG9wdGlvbmFsUmVsb2FkRnJv
bU9yaWdpbiwgY29uc3QgYm9vbCogb3B0aW9uYWxSZXZhbGlkYXRlQWxsUmVzb3VyY2VzKSBvdmVy
cmlkZTsKKyAgICB2b2lkIG5hdmlnYXRlKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwp
IG92ZXJyaWRlOworICAgIHZvaWQgb3ZlcnJpZGVVc2VyQWdlbnQoRXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcqIHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIG92ZXJyaWRlU2V0dGluZyhFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgc2V0dGluZywgY29uc3QgYm9vbCogdmFsdWUpIG92ZXJy
aWRlOworICAgIHZvaWQgZ2V0Q29va2llcyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJh
eU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OkNvb2tpZT4+JiBjb29raWVzKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY29v
a2llTmFtZSwgY29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0UmVzb3Vy
Y2VUcmVlKEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OkZy
YW1lUmVzb3VyY2VUcmVlPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIHVybCwg
U3RyaW5nKiBjb250ZW50LCBib29sKiBiYXNlNjRFbmNvZGVkKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNlYXJjaEluUmVzb3VyY2UoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBib29sKiBvcHRpb25h
bENhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNSZWdleCwgY29uc3QgU3RyaW5n
KiBvcHRpb25hbFJlcXVlc3RJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90
b2NvbDo6R2VuZXJpY1R5cGVzOjpTZWFyY2hNYXRjaD4+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBz
ZWFyY2hJblJlc291cmNlcyhFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IGJvb2wq
IGNhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGlzUmVnZXgsIFJlZlB0cjxKU09OOjpBcnJheU9m
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OlNlYXJjaFJlc3VsdD4+Jikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzZXRTaG93UnVsZXJzKEVycm9yU3RyaW5nJiwgYm9vbCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXRTaG93UGFpbnRSZWN0cyhFcnJvclN0cmluZyYsIGJvb2wgc2hvdykgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRFbXVsYXRlZE1lZGlhKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRGb3JjZWRBcHBlYXJhbmNlKEVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNp
YmxlKEVycm9yU3RyaW5nJiwgYm9vbCogb3V0X3BhcmFtKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoRXJyb3JTdHJpbmcmLCBib29sKSBvdmVycmlkZTsK
KyAgICB2b2lkIHNuYXBzaG90Tm9kZShFcnJvclN0cmluZyYsIGludCBub2RlSWQsIFN0cmluZyog
b3V0RGF0YVVSTCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzbmFwc2hvdFJlY3QoRXJyb3JTdHJpbmcm
LCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgY29uc3QgU3RyaW5nJiBjb29y
ZGluYXRlU3lzdGVtLCBTdHJpbmcqIG91dERhdGFVUkwpIG92ZXJyaWRlOworICAgIHZvaWQgYXJj
aGl2ZShFcnJvclN0cmluZyYsIFN0cmluZyogZGF0YSkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oCmluZGV4IGI0MzM5YTUxNzk3NGRlMjIyZmY0MmMwNjIxNjg5ZjM1NWYyOTdj
ZTAuLjEzOTg5NDg2NmNkYzVkMWFjZDJiZDg4YzVmYWY4YjYwMmU1YzAzMjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oCkBAIC04NiwzMCArODYsMzAgQEAgY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCBm
aW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UgLCBwdWJsaWMgSW5zcGVjdG8KICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JUaW1lbGluZUFn
ZW50KCk7CisgICAgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8v
IEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
Kik7Ci0gICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24pOworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RnJvbnRlbmRSb3V0ZXIqLCBJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCiAgICAgLy8gVGltZWxpbmVCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpOwotICAgIHZv
aWQgZGlzYWJsZShFcnJvclN0cmluZyYpOwotICAgIHZvaWQgc3RhcnQoRXJyb3JTdHJpbmcmLCBj
b25zdCBpbnQqIG1heENhbGxTdGFja0RlcHRoID0gbnVsbHB0cik7Ci0gICAgdm9pZCBzdG9wKEVy
cm9yU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRBdXRvQ2FwdHVyZUVuYWJsZWQoRXJyb3JTdHJpbmcm
LCBib29sKTsKLSAgICB2b2lkIHNldEluc3RydW1lbnRzKEVycm9yU3RyaW5nJiwgY29uc3QgSlNP
Tjo6QXJyYXkmKTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgc3RhcnQoRXJy
b3JTdHJpbmcmLCBjb25zdCBpbnQqIG1heENhbGxTdGFja0RlcHRoID0gbnVsbHB0cikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzdG9wKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRB
dXRvQ2FwdHVyZUVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldEluc3RydW1lbnRzKEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6QXJyYXkmKSBvdmVycmlk
ZTsKIAogICAgIC8vIFNjcmlwdERlYnVnTGlzdGVuZXIKLSAgICB2b2lkIGRpZFBhcnNlU291cmNl
KEpTQzo6U291cmNlSUQsIGNvbnN0IFNjcmlwdCYpIHsgfQotICAgIHZvaWQgZmFpbGVkVG9QYXJz
ZVNvdXJjZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBpbnQsIGludCwgY29uc3QgU3Ry
aW5nJikgeyB9Ci0gICAgdm9pZCB3aWxsUnVuTWljcm90YXNrKCkgeyB9Ci0gICAgdm9pZCBkaWRS
dW5NaWNyb3Rhc2soKSB7IH0KLSAgICB2b2lkIGRpZFBhdXNlKEpTQzo6RXhlY1N0YXRlJiwgSlND
OjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpIHsgfQotICAgIHZvaWQgZGlkQ29udGludWUoKSB7IH0K
LSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBTdHJp
bmcmKSB7IH0KLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChpbnQpIHsgfQotICAgIHZv
aWQgYnJlYWtwb2ludEFjdGlvblByb2JlKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgSW5zcGVjdG9y
OjpTY3JpcHRCcmVha3BvaW50QWN0aW9uJiwgdW5zaWduZWQgYmF0Y2hJZCwgdW5zaWduZWQgc2Ft
cGxlSWQsIEpTQzo6SlNWYWx1ZSByZXN1bHQpOworICAgIHZvaWQgZGlkUGFyc2VTb3VyY2UoSlND
OjpTb3VyY2VJRCwgY29uc3QgU2NyaXB0Jikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBmYWlsZWRU
b1BhcnNlU291cmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGludCwgaW50LCBjb25z
dCBTdHJpbmcmKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHdpbGxSdW5NaWNyb3Rhc2soKSBvdmVy
cmlkZSB7IH0KKyAgICB2b2lkIGRpZFJ1bk1pY3JvdGFzaygpIG92ZXJyaWRlIHsgfQorICAgIHZv
aWQgZGlkUGF1c2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSkg
b3ZlcnJpZGUgeyB9CisgICAgdm9pZCBkaWRDb250aW51ZSgpIG92ZXJyaWRlIHsgfQorICAgIHZv
aWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlIHsgfQorICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvblNvdW5kKGludCkgb3ZlcnJpZGUg
eyB9CisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uUHJvYmUoSlNDOjpFeGVjU3RhdGUmLCBjb25z
dCBJbnNwZWN0b3I6OlNjcmlwdEJyZWFrcG9pbnRBY3Rpb24mLCB1bnNpZ25lZCBiYXRjaElkLCB1
bnNpZ25lZCBzYW1wbGVJZCwgSlNDOjpKU1ZhbHVlIHJlc3VsdCkgb3ZlcnJpZGU7CiAKICAgICAv
LyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRpZEluc3RhbGxUaW1lcihpbnQg
dGltZXJJZCwgU2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIEZyYW1lKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFn
ZW50LmgKaW5kZXggMjIxMWIzYjYzNzM1ZTRhMTNmMDMyYmVlODRlZGNhNzI4NGQ4ZWUwYi4uOTQ0
NzQ5M2UxZmE0YWMxY2FiYmRhMDQxYTc4YWEzMDhkODM0ZjQwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAt
NDIsMjAgKzQyLDIwIEBAIGNsYXNzIEluc3BlY3RvcldvcmtlckFnZW50IGZpbmFsIDogcHVibGlj
IEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yV29ya2VyQWdlbnQoUGFnZUFnZW50
Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfkluc3BlY3RvcldvcmtlckFnZW50KCk7CisgICAgfklu
c3BlY3RvcldvcmtlckFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJh
c2UKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250
ZW5kUm91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsK
KyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5k
Um91dGVyKiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZv
aWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVh
c29uKSBvdmVycmlkZTsKIAogICAgIC8vIFdvcmtlckJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgot
ICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBkaXNhYmxlKEVycm9yU3Ry
aW5nJik7Ci0gICAgdm9pZCBpbml0aWFsaXplZChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYg
d29ya2VySWQpOwotICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlcihFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgd29ya2VySWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGluaXRpYWxpemVkKEVycm9yU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiB3b3JrZXJJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2Vy
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB3b3JrZXJJZCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKSBvdmVycmlkZTsKIAogICAgIC8vIFdvcmtlckluc3BlY3RvclByb3h5OjpQYWdlQ2hhbm5l
bAotICAgIHZvaWQgc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChXb3JrZXJJbnNwZWN0
b3JQcm94eSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9pZCBzZW5kTWVzc2FnZUZy
b21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5KiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAg
IGJvb2wgc2hvdWxkV2FpdEZvckRlYnVnZ2VyT25TdGFydCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmgKaW5kZXggZWZhYWI3
N2NiNzhlZWVlZDE5Y2QzZTE4YmIzMWRlNzg2MGYzMjI1My4uZjdkODI3ODA3MGZlNDcwMjk5ZjJk
ZDZiYWI2NjQ2MmQ1ODU4ODkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9XZWJDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFdlYkNvbnNv
bGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgV2ViQ29uc29sZUFnZW50KFdl
YkFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfldlYkNvbnNvbGVBZ2VudCgpOworICAgIH5X
ZWJDb25zb2xlQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbgogICAgIHZvaWQgZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9NV2luZG93Kik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkRlYnVnZ2VyQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCmluZGV4
IGZmNDk4ZmQxMDJiZWQxOTRhYWJiODM1ZWM1ZWY1YzNkNDg3Mjk2ZWEuLmRmOWRhYmM3NDFiMGYz
NDg3NDg2NDRmMjM3YzQyYzg1MmU4OWQyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvV2ViRGVidWdnZXJBZ2VudC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNz
IFdlYkRlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJEZWJ1Z2dlckFnZW50KTsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJEZWJ1Z2dl
ckFnZW50KCk7CisgICAgfldlYkRlYnVnZ2VyQWdlbnQoKSBvdmVycmlkZTsKICAgICBib29sIGVu
YWJsZWQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViSGVhcEFnZW50LmgKaW5k
ZXggODhlZjQ1YWYyN2FiYzRmNWU0NTdmMTI2ZDc4ZWQ1OWUxYzE1MWExZS4uMGJjOGU2NGFmNWE4
NmE3MmQ1ZjgwNDQwZmRiMTE2M2ZlMTdlMTU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9XZWJIZWFwQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL1dlYkhlYXBBZ2VudC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFdlYkhl
YXBBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckhlYXBBZ2VudCB7CiAgICAgZnJp
ZW5kIGNsYXNzIFNlbmRHYXJiYWdlQ29sbGVjdGlvbkV2ZW50c1Rhc2s7CiBwdWJsaWM6CiAgICAg
V2ViSGVhcEFnZW50KFdlYkFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgfldlYkhlYXBBZ2Vu
dCgpOworICAgIH5XZWJIZWFwQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIEhlYXBCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VB
dWRpdEFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1
ZGl0QWdlbnQuaAppbmRleCAwZDUxNDE0NmNmNjQ3NjMxNjI3MzlkYWU2Y2IyYWRhNGQ0NDRlMmQx
Li43NTFlMmE3N2JhNzI5MWYxYTI2MjAzNGE2YTA0OWRkMTdlMmEwMWNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQuaApA
QCAtMzcsMTYgKzM3LDE2IEBAIGNsYXNzIFBhZ2VBdWRpdEFnZW50IGZpbmFsIDogcHVibGljIElu
c3BlY3Rvcjo6SW5zcGVjdG9yQXVkaXRBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgUGFnZUF1ZGl0QWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAg
IHZpcnR1YWwgflBhZ2VBdWRpdEFnZW50KCk7CisgICAgflBhZ2VBdWRpdEFnZW50KCkgb3ZlcnJp
ZGU7CiAKIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNj
cmlwdEZvckV2YWwoY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwotICAgIEluc3BlY3Rv
cjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEluc3BlY3Rvcjo6RXJyb3JT
dHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CisgICAgSW5zcGVjdG9yOjpJ
bmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKIAotICAgIHZvaWQg
cG9wdWxhdGVBdWRpdE9iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6U3Ryb25nPEpTQzo6SlNP
YmplY3Q+JiBhdWRpdE9iamVjdCk7CisgICAgdm9pZCBwb3B1bGF0ZUF1ZGl0T2JqZWN0KEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mIGF1ZGl0T2JqZWN0KSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgbXV0ZUNvbnNvbGUoKTsKLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUo
KTsKKyAgICB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1bm11dGVDb25z
b2xlKCkgb3ZlcnJpZGU7CiAKICAgICBQYWdlJiBtX2luc3BlY3RlZFBhZ2U7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFn
ZW50LmgKaW5kZXggZWU0NzQ3MjUzYjNmNzQ4NzU0NzIwNjVmY2Y4Y2YxZWMyZjVmMTgwOC4uNGM0
NWYyZGFkMGY3YzFiNDA0NTM5ZmU0ZjU3ZTVhODZkYjIwNjMxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5oCkBA
IC00MSwxMiArNDEsMTIgQEAgY2xhc3MgUGFnZUNvbnNvbGVBZ2VudCBmaW5hbCA6IHB1YmxpYyBX
ZWJDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIFBhZ2VDb25zb2xlQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflBh
Z2VDb25zb2xlQWdlbnQoKTsKKyAgICB+UGFnZUNvbnNvbGVBZ2VudCgpIG92ZXJyaWRlOwogCiAg
ICAgLy8gQ29uc29sZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgY2xlYXJNZXNz
YWdlcyhFcnJvclN0cmluZyYpOwotICAgIHZvaWQgZ2V0TG9nZ2luZ0NoYW5uZWxzKEVycm9yU3Ry
aW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6
Q2hhbm5lbD4+Jik7Ci0gICAgdm9pZCBzZXRMb2dnaW5nQ2hhbm5lbExldmVsKEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBjaGFubmVsLCBjb25zdCBTdHJpbmcmIGxldmVsKTsKKyAgICB2b2lk
IGNsZWFyTWVzc2FnZXMoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldExvZ2dp
bmdDaGFubmVscyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWw+PiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0TG9n
Z2luZ0NoYW5uZWxMZXZlbChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgY2hhbm5lbCwgY29u
c3QgU3RyaW5nJiBsZXZlbCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgSW5zdHJ1bWVudGlu
Z0FnZW50cyYgbV9pbnN0cnVtZW50aW5nQWdlbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VET01EZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuaAppbmRl
eCA3MjM1N2YxMjNlMzZhYzI0OGM4NDJhZTcxOWQ1NmVlZWE2ODA2MTQ2Li43N2IxYmJkNWE4MmI4
MDVlODY3OGU2NjI3MGEzNDAzZWI2ZDQ5ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURPTURlYnVnZ2VyQWdlbnQuaApAQCAt
MzgsMTMgKzM4LDEzIEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgUGFnZURP
TURlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCB7
CiBwdWJsaWM6CiAgICAgUGFnZURPTURlYnVnZ2VyQWdlbnQoUGFnZUFnZW50Q29udGV4dCYsIElu
c3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudCopOwotICAgIHZpcnR1YWwgflBhZ2VET01E
ZWJ1Z2dlckFnZW50KCk7CisgICAgflBhZ2VET01EZWJ1Z2dlckFnZW50KCkgb3ZlcnJpZGU7CiAK
LSAgICBib29sIGVuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIGVuYWJsZWQoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIC8vIERPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAg
dm9pZCBzZXRET01CcmVha3BvaW50KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3Ry
aW5nJiB0eXBlKTsKLSAgICB2b2lkIHJlbW92ZURPTUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBp
bnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHR5cGUpOworICAgIHZvaWQgc2V0RE9NQnJlYWtwb2lu
dChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgdHlwZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCByZW1vdmVET01CcmVha3BvaW50KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwg
Y29uc3QgU3RyaW5nJiB0eXBlKSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbgogICAgIHZvaWQgZnJhbWVEb2N1bWVudFVwZGF0ZWQoRnJhbWUmKTsKQEAgLTU3LDEw
ICs1NywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRmlyZUFuaW1hdGlvbkZyYW1lKCk7CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCBlbmFibGUoKTsKLSAgICB2b2lkIGRpc2FibGUoKTsKKyAgICB2
b2lkIGVuYWJsZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZSgpIG92ZXJyaWRlOwogCi0g
ICAgdm9pZCBzZXRBbmltYXRpb25GcmFtZUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBib29sIGVu
YWJsZWQpOworICAgIHZvaWQgc2V0QW5pbWF0aW9uRnJhbWVCcmVha3BvaW50KEVycm9yU3RyaW5n
JiwgYm9vbCBlbmFibGVkKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGVzY3JpcHRpb25Gb3JET01F
dmVudChOb2RlJiwgaW50IGJyZWFrcG9pbnRUeXBlLCBib29sIGluc2VydGlvbiwgSlNPTjo6T2Jq
ZWN0JiBkZXNjcmlwdGlvbik7CiAgICAgdm9pZCB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoTm9k
ZSosIHVpbnQzMl90IHJvb3RNYXNrLCBib29sIHNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5oCmluZGV4IDNi
ZDJhNDg3YjA4NDRhODhhYzI0NzdmMjVjOGQ2MTBiMzRiNGU2NDUuLjExNTk4ZGYxYTU0YjBjOWFm
NDMyYTBkMjBjYTQwY2RjMjZhN2ZjMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5oCkBAIC00MywxNCArNDMs
MTQgQEAgY2xhc3MgUGFnZURlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgV2ViRGVidWdnZXJB
Z2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUGFnZURl
YnVnZ2VyQWdlbnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflBhZ2VEZWJ1Z2dl
ckFnZW50KCk7CisgICAgflBhZ2VEZWJ1Z2dlckFnZW50KCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBl
bmFibGVkKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBEZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVy
SGFuZGxlcgotICAgIHZvaWQgZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3Ry
aW5nKiBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25z
dCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIGNvbnN0IGJvb2wq
IHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRlUHJldmlldywgY29uc3QgYm9vbCog
c2F2ZVJlc3VsdCwgY29uc3QgYm9vbCogZW11bGF0ZVVzZXJHZXN0dXJlLCBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBPcHRpb25hbDxi
b29sPiYgd2FzVGhyb3duLCBPcHRpb25hbDxpbnQ+JiBzYXZlZFJlc3VsdEluZGV4KTsKKyAgICB2
b2lkIGV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNhbGxG
cmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3Jv
dXAsIGNvbnN0IGJvb2wqIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQ
YXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBib29sKiByZXR1cm5CeVZhbHVl
LCBjb25zdCBib29sKiBnZW5lcmF0ZVByZXZpZXcsIGNvbnN0IGJvb2wqIHNhdmVSZXN1bHQsIGNv
bnN0IGJvb2wqIGVtdWxhdGVVc2VyR2VzdHVyZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgT3B0aW9uYWw8Ym9vbD4mIHdhc1Rocm93
biwgT3B0aW9uYWw8aW50PiYgc2F2ZWRSZXN1bHRJbmRleCkgb3ZlcnJpZGU7CiAKICAgICAvLyBT
Y3JpcHREZWJ1Z0xpc3RlbmVyCi0gICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpTQzo6RXhl
Y1N0YXRlJiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpT
Qzo6RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRpZENsZWFyTWFpbkZyYW1lV2luZG93T2JqZWN0
KCk7CkBAIC02MiwxNSArNjIsMTUgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2FuY2VsQW5pbWF0
aW9uRnJhbWUoaW50IGNhbGxiYWNrSWQpOwogCiBwcml2YXRlOgotICAgIHZvaWQgZW5hYmxlKCk7
Ci0gICAgdm9pZCBkaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCk7CisgICAgdm9pZCBlbmFi
bGUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKSBv
dmVycmlkZTsKIAotICAgIFN0cmluZyBzb3VyY2VNYXBVUkxGb3JTY3JpcHQoY29uc3QgU2NyaXB0
Jik7CisgICAgU3RyaW5nIHNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBTY3JpcHQmKSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgbXV0ZUNvbnNvbGUoKTsKLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUo
KTsKKyAgICB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1bm11dGVDb25z
b2xlKCkgb3ZlcnJpZGU7CiAKLSAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVk
U2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElk
KTsKKyAgICBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChF
cnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKIAog
ICAgIFBhZ2UmIG1faW5zcGVjdGVkUGFnZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuaAppbmRleCA3NTZmY2EwZjFlZjhk
OWJkZDUyYmEwOWFjNTA2MzMyMWUwODIyOTIyLi4xYmQ2Y2EwZmM5ZWYxNWExZDdhMjUyODQyOTVh
OGUxOWU4NWYxMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L3BhZ2UvUGFnZUhlYXBBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvcGFnZS9QYWdlSGVhcEFnZW50LmgKQEAgLTM4LDExICszOCwxMSBAQCBjbGFzcyBQYWdlSGVh
cEFnZW50IGZpbmFsIDogcHVibGljIFdlYkhlYXBBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUGFnZUhlYXBBZ2VudChQYWdlQWdlbnRDb250ZXh0Jik7
Ci0gICAgdmlydHVhbCB+UGFnZUhlYXBBZ2VudCgpOworICAgIH5QYWdlSGVhcEFnZW50KCkgb3Zl
cnJpZGU7CiAKICAgICAvLyBIZWFwQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBl
bmFibGUoRXJyb3JTdHJpbmcmKTsKLSAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcmKTsKKyAg
ICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZShF
cnJvclN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
CiAgICAgdm9pZCBtYWluRnJhbWVOYXZpZ2F0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZU5ldHdvcmtBZ2VudC5oCmluZGV4IDRlOGY1
NDE5YjZiMmYwODBiMGI3MmQyOGM5MzQ2ZGZjYTc4NzhkMGIuLmJlZGNlM2U4ZGJiN2M5ZDIyYjJl
MWI5NzJkMjJiMmE1YmNlNDBhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlTmV0d29ya0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuaApAQCAtMzYsMTUgKzM2LDE1IEBA
IGNsYXNzIFBhZ2VOZXR3b3JrQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yTmV0d29ya0Fn
ZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdlTmV0
d29ya0FnZW50KFBhZ2VBZ2VudENvbnRleHQmKTsKLSAgICB2aXJ0dWFsIH5QYWdlTmV0d29ya0Fn
ZW50KCk7CisgICAgflBhZ2VOZXR3b3JrQWdlbnQoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAg
ICBTdHJpbmcgbG9hZGVySWRlbnRpZmllcihEb2N1bWVudExvYWRlciopOwotICAgIFN0cmluZyBm
cmFtZUlkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKTsKLSAgICBWZWN0b3I8V2ViU29ja2V0Kj4g
YWN0aXZlV2ViU29ja2V0cyhjb25zdCBMb2NrSG9sZGVyJik7Ci0gICAgdm9pZCBzZXRSZXNvdXJj
ZUNhY2hpbmdEaXNhYmxlZChib29sKTsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKTsK
LSAgICBib29sIHNob3VsZEZvcmNlQnVmZmVyaW5nTmV0d29ya1Jlc291cmNlRGF0YSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIoRG9jdW1lbnRM
b2FkZXIqKSBvdmVycmlkZTsKKyAgICBTdHJpbmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50TG9h
ZGVyKikgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFdlYlNvY2tldCo+IGFjdGl2ZVdlYlNvY2tldHMo
Y29uc3QgTG9ja0hvbGRlciYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5n
RGlzYWJsZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkg
b3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRGb3JjZUJ1ZmZlcmluZ05ldHdvcmtSZXNvdXJjZURh
dGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgUGFnZSYgbV9pbnNw
ZWN0ZWRQYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5oCmluZGV4IDE0ODdiMTMxZTZiOWY2ODBhOGIyMmNk
Y2YzYjk0ZjE1NDUzNzVjNGYuLjMyMmE0Y2JlNzI1NDQwNTQ1NDEwMDIwYmU0ZjVmOGYwMjA0MzNj
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdl
UnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdl
L1BhZ2VSdW50aW1lQWdlbnQuaApAQCAtNTIsMjAgKzUyLDIwIEBAIGNsYXNzIFBhZ2VSdW50aW1l
QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFBhZ2VSdW50aW1lQWdl
bnQoUGFnZUFnZW50Q29udGV4dCYpOwotICAgIHZpcnR1YWwgflBhZ2VSdW50aW1lQWdlbnQoKTsK
KyAgICB+UGFnZVJ1bnRpbWVBZ2VudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gUnVudGltZUJhY2tl
bmREaXNwYXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJik7Ci0gICAg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJik7Ci0gICAgdm9pZCBldmFsdWF0ZShFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwg
Y29uc3QgYm9vbCogaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29sKiBkb05vdFBhdXNl
T25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElk
LCBjb25zdCBib29sKiByZXR1cm5CeVZhbHVlLCBjb25zdCBib29sKiBnZW5lcmF0ZVByZXZpZXcs
IGNvbnN0IGJvb2wqIHNhdmVSZXN1bHQsIGNvbnN0IGJvb2wqIGVtdWxhdGVVc2VyR2VzdHVyZSwg
UmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3Vs
dCwgT3B0aW9uYWw8Ym9vbD4mIHdhc1Rocm93biwgT3B0aW9uYWw8aW50PiYgc2F2ZWRSZXN1bHRJ
bmRleCk7CisgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpc2FibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGV2YWx1YXRlKEVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9iamVjdEdy
b3VwLCBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGRvTm90
UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgY29uc3QgaW50KiBleGVjdXRpb25Db250
ZXh0SWQsIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRlUHJl
dmlldywgY29uc3QgYm9vbCogc2F2ZVJlc3VsdCwgY29uc3QgYm9vbCogZW11bGF0ZVVzZXJHZXN0
dXJlLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYg
cmVzdWx0LCBPcHRpb25hbDxib29sPiYgd2FzVGhyb3duLCBPcHRpb25hbDxpbnQ+JiBzYXZlZFJl
c3VsdEluZGV4KSBvdmVycmlkZTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgog
ICAgIHZvaWQgZGlkQ3JlYXRlTWFpbldvcmxkQ29udGV4dChGcmFtZSYpOwogCiBwcml2YXRlOgot
ICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9y
U3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwotICAgIHZvaWQgbXV0ZUNv
bnNvbGUoKTsKLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKTsKKyAgICBJbnNwZWN0b3I6OkluamVj
dGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsKKyAgICB2b2lkIG11dGVDb25zb2xlKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBv
cnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKTsKICAgICB2b2lkIG5vdGlmeUNvbnRleHRDcmVh
dGVkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgSlNDOjpFeGVjU3RhdGUqLCBTZWN1cml0eU9yaWdp
biosIGJvb2wgaXNQYWdlQ29udGV4dCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvd29ya2VyL1NlcnZpY2VXb3JrZXJBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmgKaW5kZXggMDky
ZGU4ZmJkYWZlYWZkYzYwMjE0ZTZhMTFlMTA1NzY2MmVhY2I1My4uODE0OWZmM2RhYzM1NzhmYzA0
OGI2NThlNjMxN2RlMzJiMTk3ZDQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmgKQEAgLTQxLDE0
ICs0MSwxNCBAQCBjbGFzcyBTZXJ2aWNlV29ya2VyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVj
dG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5zcGVjdG9yOjpTZQogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIFNlcnZpY2VXb3JrZXJBZ2VudChXb3JrZXJBZ2VudENvbnRl
eHQmKTsKLSAgICB2aXJ0dWFsIH5TZXJ2aWNlV29ya2VyQWdlbnQoKTsKKyAgICB+U2VydmljZVdv
cmtlckFnZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVy
KiwgSW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopOwotICAgIHZvaWQgd2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKTsKKyAgICB2b2lk
IGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kUm91dGVyKiwg
SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKSBvdmVy
cmlkZTsKIAogICAgIC8vIFNlcnZpY2VXb3JrZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAg
ICB2b2lkIGdldEluaXRpYWxpemF0aW9uSW5mbyhFcnJvclN0cmluZyYsIFJlZlB0cjxJbnNwZWN0
b3I6OlByb3RvY29sOjpTZXJ2aWNlV29ya2VyOjpDb25maWd1cmF0aW9uPiYpOworICAgIHZvaWQg
Z2V0SW5pdGlhbGl6YXRpb25JbmZvKEVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OlNlcnZpY2VXb3JrZXI6OkNvbmZpZ3VyYXRpb24+Jikgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBtX3NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2Vy
L1dvcmtlckF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29y
a2VyL1dvcmtlckF1ZGl0QWdlbnQuaAppbmRleCBlNDZiZjVmZjU3OTcyYWE4ZGIyZDMwOGY4ZDli
NzFlYjFiNjQzNmE3Li5kNmFjZGMwZWEzZTg5ZjBmYWQzMWNjYjJkNzY4ZTBlMTQ2YmQzMjM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJB
dWRpdEFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIv
V29ya2VyQXVkaXRBZ2VudC5oCkBAIC0zNywxMCArMzcsMTAgQEAgY2xhc3MgV29ya2VyQXVkaXRB
Z2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvckF1ZGl0QWdlbnQgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdvcmtlckF1ZGl0QWdlbnQo
V29ya2VyQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+V29ya2VyQXVkaXRBZ2VudCgpOwor
ICAgIH5Xb3JrZXJBdWRpdEFnZW50KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVj
dG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoSW5zcGVjdG9yOjpFcnJv
clN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKTsKKyAgICBJbnNwZWN0b3I6
OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChJbnNwZWN0b3I6OkVycm9yU3Ry
aW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOwogCiAgICAgV29y
a2VyR2xvYmFsU2NvcGUmIG1fd29ya2VyR2xvYmFsU2NvcGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyQ29uc29sZUFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdl
bnQuaAppbmRleCBhMjI3YWRjMjI3MmM0ZGFjN2JlMjcwNzAzZDc5YmI4NTM5ZmU1MThkLi5iN2I1
NWQwMDY1OTBlZmIwODNmZWJiOTRlNDNiNDEyZDYzY2VhZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJDb25zb2xlQWdl
bnQuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBXb3JrZXJDb25zb2xlQWdlbnQgZmluYWwgOiBw
dWJsaWMgV2ViQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBXb3JrZXJDb25zb2xlQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7Ci0gICAg
dmlydHVhbCB+V29ya2VyQ29uc29sZUFnZW50KCk7CisgICAgfldvcmtlckNvbnNvbGVBZ2VudCgp
IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyRE9NRGVidWdnZXJBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyRE9NRGVi
dWdnZXJBZ2VudC5oCmluZGV4IDY0YWZmZGVmZTUyMjMxYjhiYjljZTg5MjUwNTNhNTQxMzI1Mjk4
NTUuLmIxMTI4NWUwNDYyZGEyMTEwZjg5NTY2ODY3ZDVmMDI5NjE3MzJlYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRPTURlYnVnZ2Vy
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3Jr
ZXJET01EZWJ1Z2dlckFnZW50LmgKQEAgLTM0LDE0ICszNCwxNCBAQCB0eXBlZGVmIFN0cmluZyBF
cnJvclN0cmluZzsKIGNsYXNzIFdvcmtlckRPTURlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJsaWMg
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCB7CiBwdWJsaWM6CiAgICAgV29ya2VyRE9NRGVidWdn
ZXJBZ2VudChXb3JrZXJBZ2VudENvbnRleHQmLCBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQqKTsKLSAgICB2aXJ0dWFsIH5Xb3JrZXJET01EZWJ1Z2dlckFnZW50KCk7CisgICAgfldv
cmtlckRPTURlYnVnZ2VyQWdlbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIERPTURlYnVnZ2VyQmFj
a2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBzZXRET01CcmVha3BvaW50KEVycm9yU3Ry
aW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0eXBlKTsKLSAgICB2b2lkIHJlbW92ZURP
TUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHR5cGUp
OworICAgIHZvaWQgc2V0RE9NQnJlYWtwb2ludChFcnJvclN0cmluZyYsIGludCBub2RlSWQsIGNv
bnN0IFN0cmluZyYgdHlwZSkgb3ZlcnJpZGU7CisgICAgdm9pZCByZW1vdmVET01CcmVha3BvaW50
KEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0eXBlKSBvdmVycmlkZTsK
IAogcHJpdmF0ZToKLSAgICB2b2lkIHNldEFuaW1hdGlvbkZyYW1lQnJlYWtwb2ludChFcnJvclN0
cmluZyYsIGJvb2wgZW5hYmxlZCk7CisgICAgdm9pZCBzZXRBbmltYXRpb25GcmFtZUJyZWFrcG9p
bnQoRXJyb3JTdHJpbmcmLCBib29sIGVuYWJsZWQpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy93b3JrZXIvV29ya2VyRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy93b3JrZXIvV29ya2VyRGVidWdnZXJBZ2VudC5oCmluZGV4IGIyNTliYjQyYmE2MDUy
MWY3NDgwOWYxODM5MWY3NDkyMjE5NTkzYWQuLjg5MGFjNDIyMDkyZDUzN2IyYjVmZGU4YjgzMThj
OWUxNGNkOTUxODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
d29ya2VyL1dvcmtlckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKQEAgLTM2LDE3ICszNiwxNyBA
QCBjbGFzcyBXb3JrZXJEZWJ1Z2dlckFnZW50IGZpbmFsIDogcHVibGljIFdlYkRlYnVnZ2VyQWdl
bnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdvcmtlckRl
YnVnZ2VyQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+V29ya2VyRGVi
dWdnZXJBZ2VudCgpOworICAgIH5Xb3JrZXJEZWJ1Z2dlckFnZW50KCkgb3ZlcnJpZGU7CiAKICAg
ICAvLyBTY3JpcHREZWJ1Z0xpc3RlbmVyCi0gICAgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpT
Qzo6RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBicmVha3BvaW50QWN0aW9u
TG9nKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
CiAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNvbGUgZm9yIHdvcmtlcnMuCi0gICAg
dm9pZCBtdXRlQ29uc29sZSgpIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIHsgfQorICAg
IHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUo
KSBvdmVycmlkZSB7IH0KIAotICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQp
OworICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVy
cm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOwogCiAg
ICAgV29ya2VyR2xvYmFsU2NvcGUmIG1fd29ya2VyR2xvYmFsU2NvcGU7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyTmV0d29ya0Fn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3
b3JrQWdlbnQuaAppbmRleCBjM2E4NjY5NjI0ODQ1NGExZDJhODllZjI0Njc5NDNjNTFiOTEyZTQw
Li44OTlmMGE1NmZkMWI3ZGE5NDNhNDU1M2I4Yzk0Y2YzYzdiZmIwYjk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3b3JrQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJOZXR3
b3JrQWdlbnQuaApAQCAtMzQsMTUgKzM0LDE1IEBAIGNsYXNzIFdvcmtlck5ldHdvcmtBZ2VudCBm
aW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JOZXR3b3JrQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIFdvcmtlck5ldHdvcmtBZ2VudChXb3JrZXJBZ2VudENv
bnRleHQmKTsKLSAgICB2aXJ0dWFsIH5Xb3JrZXJOZXR3b3JrQWdlbnQoKTsKKyAgICB+V29ya2Vy
TmV0d29ya0FnZW50KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgU3RyaW5nIGxvYWRlcklk
ZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKTsKLSAgICBTdHJpbmcgZnJhbWVJZGVudGlmaWVyKERv
Y3VtZW50TG9hZGVyKik7Ci0gICAgVmVjdG9yPFdlYlNvY2tldCo+IGFjdGl2ZVdlYlNvY2tldHMo
Y29uc3QgTG9ja0hvbGRlciYpOwotICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQo
Ym9vbCk7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7Ci0gICAgYm9vbCBzaG91bGRG
b3JjZUJ1ZmZlcmluZ05ldHdvcmtSZXNvdXJjZURhdGEoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CisgICAgU3RyaW5nIGxvYWRlcklkZW50aWZpZXIoRG9jdW1lbnRMb2FkZXIqKSBvdmVycmlkZTsK
KyAgICBTdHJpbmcgZnJhbWVJZGVudGlmaWVyKERvY3VtZW50TG9hZGVyKikgb3ZlcnJpZGU7Cisg
ICAgVmVjdG9yPFdlYlNvY2tldCo+IGFjdGl2ZVdlYlNvY2tldHMoY29uc3QgTG9ja0hvbGRlciYp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoYm9vbCkgb3Zl
cnJpZGU7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkgb3ZlcnJpZGU7CisgICAgYm9v
bCBzaG91bGRGb3JjZUJ1ZmZlcmluZ05ldHdvcmtSZXNvdXJjZURhdGEoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV93b3JrZXJHbG9i
YWxTY29wZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L3dvcmtlci9Xb3JrZXJSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvd29ya2VyL1dvcmtlclJ1bnRpbWVBZ2VudC5oCmluZGV4IGUyOTIzYjlmNzVkODE4ZDk5
ODRhMmU0NWRkY2ZmNTZiNjhlYmJlZDAuLjUzMDhlYjQzODhkNGQxMDUyZWM3NDU4NTA0N2ExZTg4
ZTdkNDNiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvd29y
a2VyL1dvcmtlclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvd29ya2VyL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC00NCwxNCArNDQsMTQgQEAgY2xh
c3MgV29ya2VyUnVudGltZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9y
UnVudGltZUFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBXb3JrZXJSdW50aW1lQWdlbnQoV29ya2VyQWdlbnRDb250ZXh0Jik7Ci0gICAgdmlydHVhbCB+
V29ya2VyUnVudGltZUFnZW50KCk7CisgICAgfldvcmtlclJ1bnRpbWVBZ2VudCgpIG92ZXJyaWRl
OwogCiBwcml2YXRlOgotICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpOwor
ICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9y
U3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92ZXJyaWRlOwogCiAgICAg
Ly8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNvbGUgZm9yIHdvcmtlcnMuCi0gICAgdm9pZCBt
dXRlQ29uc29sZSgpIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIHsgfQorICAgIHZvaWQg
bXV0ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVy
cmlkZSB7IH0KIAogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hl
cj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKICAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV93b3JrZXJH
bG9iYWxTY29wZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>